From a499290f0fb5ae18d8dfb0af2d11abd37b6ee89a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E7=AB=8B=E5=B8=AE?= <3294713004@qq.com> Date: Tue, 23 Jul 2024 21:49:42 +0800 Subject: [PATCH] =?UTF-8?q?Update:=20=E6=9B=B4=E6=96=B0=E6=9D=BF=E5=8D=A1e?= =?UTF-8?q?xamples?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../01-LED闪烁.mix} | 0 .../02-开关灯.mix} | 0 .../03-调光灯.mix} | 0 .../04-多功能按键.mix} | 0 .../05-硬件中断.mix} | 0 .../06-软件中断.mix} | 0 .../07-声控灯.mix} | 0 .../08-脉冲.mix} | 0 .../09-软件模拟PWM.mix} | 0 .../10-ShiftOut数字骰子.mix} | 0 .../11-ShiftOut流水灯.mix} | 0 .../8qdA_km51x.mix => 02-控制/01-初始化.mix} | 0 .../02-LED流水灯.mix} | 0 .../03-While循环.mix} | 0 .../eG_83pHrwau.mix => 02-控制/04-延时灯.mix} | 0 .../05-定时器控制灯亮灭.mix} | 0 .../06-简单定时器.mix} | 0 .../07-随机亮灯.mix} | 0 .../08-Scoop多线程.mix} | 0 .../09-硬件中断-秒表.mix} | 0 .../01-模拟输入和模拟输出.mix} | 0 .../02-绘制三角函数曲线.mix} | 0 .../Gs_c0omRYb0.mix => 03-数学/03-映射.mix} | 0 .../4U0BswEHkaV.mix => 03-数学/04-随机数.mix} | 0 .../05-约束运算.mix} | 0 .../06-移位计算.mix} | 0 .../01-serial_string-1.mix} | 0 .../02-serial_string-2.mix} | 0 .../03-serial_string-3.mix} | 0 .../04-serial_string-4.mix} | 0 .../URL和Base64编解码.mix} | 0 .../01-一维数组输出.mix} | 0 .../02-二维数组输出.mix} | 0 .../01-比较运算符.mix} | 0 .../02-逻辑运算符.mix} | 0 .../v9IU0WTE--n.mix => 06-逻辑/03-?语句.mix} | 0 .../01-串口交互.mix} | 0 .../02-串口控制开关灯.mix} | 0 .../03-打印ASCII值.mix} | 0 .../01-IRremote红外控制灯.mix} | 0 .../02-IICMaster_字符.mix} | 0 .../02-IICMaster_字符串.mix} | 0 .../02-IICMaster_请求数据.mix} | 0 .../02-IICSlave_字符.mix} | 0 .../02-IICSlave_字符串.mix} | 0 .../03-SPI_Master.mix} | 0 .../03-SPI_Master_1.mix} | 0 .../03-SPI_Master_2.mix} | 0 .../03-SPI_Master_字符串.mix} | 0 .../03-SPI_Slave.mix} | 0 .../03-SPI_Slave_1.mix} | 0 .../03-SPI_Slave_2.mix} | 0 .../03-SPI_Slave_字符串.mix} | 0 .../04-RFID_写卡&读卡.mix} | 0 .../04-RFID_写卡.mix} | 0 .../04-RFID_读卡.mix} | 0 .../04-RFID_读取RFID卡号.mix} | 0 .../Fvf71QL6WS5.mix => 09-存储/02-EEPROM.mix} | 0 .../02-EEPROM_写入和读取字符数组.mix} | 0 .../02-EEPROM_写入和读取字节数组.mix} | 0 .../02-EEPROM_写入和读取小数.mix} | 0 .../02-EEPROM_写入和读取长整数.mix} | 0 .../01-超声波测距.mix} | 0 .../02-LCD1602显示温湿度.mix} | 0 .../04-DS18B20温度传感器.mix} | 0 .../05-MLX90614测温.mix} | 0 .../06-TCS34725颜色识别传感器.mix} | 0 .../07-TCS230颜色识别传感器.mix} | 0 .../11-旋转编码器读取数据.mix} | 0 .../12-DS1302液晶时钟.mix} | 0 .../12-DS1302输出日期.mix} | 0 .../13-矩阵键盘密码灯.mix} | 0 .../13-矩阵键盘打印按键值.mix} | 0 .../13-矩阵键盘简易密码锁.mix} | 0 .../15-MPU6050打印数值.mix} | 0 .../16-BME280打印温度值.mix} | 0 .../16-BME280气象站.mix} | 0 .../17-PS2手柄_打印摇杆值.mix} | 0 .../B01-声控舵机.mix} | 0 .../3EoT50pAjWE.mix => 11-执行器/01-门铃.mix} | 0 .../02-蜂鸣器播放简单声音.mix} | 0 .../03-按键钢琴.mix} | 0 .../04-两只老虎.mix} | 0 .../05-Alarm.mix} | 0 .../06-WS2812.mix} | 0 .../07-mini MP3_播放音乐.mix} | 0 .../09-七彩流水灯.mix} | 0 .../01-TM1650_显示变化的数字.mix} | 0 .../03-LCD1602_显示Hello Mixly.mix} | 0 .../04-OLED_多页切换.mix} | 0 .../04-OLED_显示Mixly Logo.mix} | 0 .../04-OLED_显示奥运五环图案.mix} | 0 .../04-OLED_显示文本.mix} | 0 .../04-OLED_显示汉字(取模).mix} | 0 .../04-OLED_显示汉字.mix} | 0 .../04-OLED_显示表情图片.mix} | 0 .../04-OLED_显示表情图片1.mix} | 0 .../05-NOKIA5110_显示汉字(取模).mix} | 0 .../06-LCD12864 8080_显示汉字(取模).mix} | 0 .../06-LCD12864 SPI_显示汉字(取模).mix} | 0 .../07-MAX7219_显示笑脸和哭脸.mix} | 0 ...07-MAX7219_水平方向四块级联滚动显示Mixly.mix} | 0 .../01-函数法SOS.mix} | 0 .../02-含参数无返回值呼吸灯.mix} | 0 .../(在2.0下编译报错)01-Factory.mix} | 0 .../01_Light_up_the_on_board_indicator.mix} | 0 .../02_On_board_indicator_flashes.mix} | 0 .../03_Digital_Inputs.mix} | 0 .../04_Pin_output_state_switching.mix} | 0 .../05_PWMAnalog_Output.mix} | 0 .../01_input_and_Output/06_Analog_Inputs.mix} | 0 .../07_Software_analog_output.mix} | 0 .../08_Multi_functional_keys.mix} | 0 .../09_Hardware_Interrupts.mix} | 0 .../10_Software_Interruptions.mix} | 0 .../11_Pulse_measurement.mix} | 0 .../01_input_and_Output/12_Pin_up_mode.mix} | 0 .../13_Serial_Data_Output.mix} | 0 .../02_Control/01_Stop_the_program.mix} | 0 ...Difference_between_while_and_do_while.mix} | 0 .../03_if_elseConditional_Judgment.mix} | 0 ...tch_Multi_branching_condition_control.mix} | 0 .../05_for_Circular_breathing_light.mix} | 0 .../02_Control/06_Jump_out_of_the_loop.mix} | 0 .../02_Control/07_System_runtime.mix} | 0 .../02_Control/08_Hardware_Timer.mix} | 0 .../02_Control/09_Simple_Timer.mix} | 0 .../10_Register_delay_function.mix} | 0 .../02_Control/11_SCoop_Multi-threaded.mix} | 0 .../01_Algebraic_operations.mix} | 0 .../03_Mathematics/02_Bit_Operations.mix} | 0 .../03_Trigonometric_functions.mix} | 0 .../04_Variable_self-adding.mix} | 0 ...athematical_operations(Rounding_etc.).mix} | 0 ...s_occupied_by_different_types_of_data.mix} | 0 .../07_Maximum_and_minimum_values.mix} | 0 .../03_Mathematics/08_Get_random_number.mix} | 0 .../09_Mathematical_constraints.mix} | 0 .../10_Mathematical_mapping.mix} | 0 .../04_Logic/01_Logical_relationships.mix} | 0 .../04_Logic/02_Logical_operations.mix} | 0 .../04_Logic/03_Logical_non-operations.mix} | 0 .../04_Logic/04_Conditional_return_value.mix} | 0 .../05_Text/01_String_Splicing.mix} | 0 .../02_String_to_integer_or_decimal.mix} | 0 .../05_Text/03_String_Index.mix} | 0 .../05_Text/04_Intercepting_strings.mix} | 0 .../05_String_conversion_and_replacement.mix} | 0 ...etermination_and_Data_Type_Conversion.mix} | 0 .../07_Character_to_ascii_conversion.mix} | 0 .../05_Text/08_Incremental_conversion.mix} | 0 ...ting_the_specified_position_character.mix} | 0 .../10_String_relations _and_comparisons.mix} | 0 .../01_One-dimensional_array_declaration.mix} | 0 .../02_Array_reading_and_writing.mix} | 0 .../06_Arrays/03_Array_circular_shift.mix} | 0 .../04_Two-dimensional_array_declaration.mix} | 0 ...dimensional_array_reading_and_writing.mix} | 0 ..._between_variable_declaration_and_use.mix} | 0 ...no-return-value-no-parameter_function.mix} | 0 ...return-value_function_with_parameters.mix} | 0 ...tion_with_return_value_and_parameters.mix} | 0 ..._function_declaration_with_parameters.mix} | 0 .../09_Serial_port/01_Serial_printout.mix} | 0 .../09_Serial_port/02_Serial_input_1.mix} | 0 .../09_Serial_port/02_Serial_input_2.mix} | 0 .../09_Serial_port/02_Serial_input_3.mix} | 0 .../09_Serial_port/02_Serial_input_4.mix} | 0 .../03_Serial_port_send_wait.mix} | 0 .../09_Serial_port/04_Serial_Interrupt.mix} | 0 .../05_Use_of_soft_serial_port.mix} | 0 .../01_Ultrasonic_distance_measurement.mix} | 0 ...02_Get_DHT11_temperature_and_humidity.mix} | 0 .../10_Sensors/03_get_LM35_temperature.mix} | 0 .../04_Get_DS18B20_temperature.mix} | 0 .../10_Sensors/05_Get_BME280_parameters.mix} | 0 ...06_get_SHT20_temperature_and_humidity.mix} | 0 ...0614_Infrared_temperature_measurement.mix} | 0 .../08_tcs34725_color_extraction.mix} | 0 .../09_tcs230_color_extraction.mix} | 0 .../10_Sensors/10_MPU6050_Gyroscope.mix} | 0 .../11_MPU9250_acceleration_sensor.mix} | 0 .../01_Infrared_data_reception.mix} | 0 .../02_Infrared_data_transmission.mix} | 0 ..._Infrared_data_simulation_transceiver.mix} | 0 .../14_Storage/01_SD_card_read_test.mix} | 0 .../02_EEPROM_power_down_storage.mix} | 0 .../01-输入输出/01-点亮板载指示灯13.mix} | 0 .../01-输入输出/02-板载指示灯13闪烁.mix} | 0 .../01-输入输出/03-数字输入.mix} | 0 .../01-输入输出/04-管脚输出状态切换.mix} | 0 .../01-输入输出/05-PWM模拟输出.mix} | 0 .../01-输入输出/06-模拟输入.mix} | 0 .../01-输入输出/07-软件模拟输出.mix} | 0 .../01-输入输出/08-多功能按键.mix} | 0 .../01-输入输出/09-硬件中断.mix} | 0 .../01-输入输出/10-软件中断.mix} | 0 .../01-输入输出/11-脉冲测量.mix} | 0 .../01-输入输出/12-管脚上拉模式.mix} | 0 .../01-输入输出/13-串行数据输出.mix} | 0 .../02-控制/01-停止程序.mix} | 0 .../02-控制/02-while与do while区别.mix} | 0 .../02-控制/03-if else条件判断.mix} | 0 .../02-控制/04-switch多分枝条件控制.mix} | 0 .../02-控制/05-for循环呼吸灯.mix} | 0 .../02-控制/06-跳出循环.mix} | 0 .../02-控制/07-系统运行时间.mix} | 0 .../02-控制/08-硬件定时器.mix} | 0 .../02-控制/09-简单定时器.mix} | 0 .../02-控制/10-注册延时函数.mix} | 0 .../02-控制/11-SCoop多线程.mix} | 0 .../03-数学/01-代数运算.mix} | 0 .../03-数学/02-位运算.mix} | 0 .../03-数学/03-三角函数.mix} | 0 .../03-数学/04-变量自加.mix} | 0 .../03-数学/05-常见数学运算(四舍五入等).mix} | 0 .../03-数学/06-获取不同类型数据占用的字节数.mix} | 0 .../03-数学/07-最大值与最小值.mix} | 0 .../03-数学/08-获取随机数.mix} | 0 .../03-数学/09-数学约束.mix} | 0 .../03-数学/10-数学映射.mix} | 0 .../04-逻辑/01-逻辑关系.mix} | 0 .../04-逻辑/02-逻辑运算.mix} | 0 .../04-逻辑/03-逻辑非运算.mix} | 0 .../04-逻辑/04-条件返回值.mix} | 0 .../05-文本/01-字符串拼接.mix} | 0 .../05-文本/02-字符串转整数或小数.mix} | 0 .../05-文本/03-字符串索引.mix} | 0 .../05-文本/04-截取字符串.mix} | 0 .../05-文本/05-字符串转换与替换.mix} | 0 .../05-文本/06-字符串首位判断与数据类型转换.mix} | 0 .../05-文本/07-字符与ascii码互相转换.mix} | 0 .../05-文本/08-进制转换.mix} | 0 .../05-文本/09-字符串长度与获取指定位置字符.mix} | 0 .../05-文本/10-字符串关系与比较.mix} | 0 .../06-数组/01-一维数组声明.mix} | 0 .../06-数组/02-数组读写.mix} | 0 .../06-数组/03-数组循环移位.mix} | 0 .../06-数组/04-二维数组声明.mix} | 0 .../06-数组/05-二维数组读写.mix} | 0 .../07-变量/01-变量声明与使用区别.mix} | 0 .../08-函数/01-无返回值无参数函数.mix} | 0 .../08-函数/02-无返回值带参数函数.mix} | 0 .../08-函数/03-带返回值带参数函数声明.mix} | 0 .../08-函数/04-多返回值带参数函数声明.mix} | 0 .../09-串口/01-串口打印输出.mix} | 0 .../09-串口/02-串口输入1.mix} | 0 .../09-串口/02-串口输入2.mix} | 0 .../09-串口/02-串口输入3.mix} | 0 .../09-串口/02-串口输入4.mix} | 0 .../09-串口/03-串口发送等待.mix} | 0 .../09-串口/04-串口中断.mix} | 0 .../09-串口/05-软串口的使用.mix} | 0 .../10-传感器/01-超声波测距.mix} | 0 .../10-传感器/02-获取DHT11温湿度.mix} | 0 .../10-传感器/03-获取LM35温度.mix} | 0 .../10-传感器/04-获取DS18B20温度.mix} | 0 .../10-传感器/05-获取BME280参数.mix} | 0 .../10-传感器/06-获取SHT20温湿度.mix} | 0 .../10-传感器/07-BMLX90614红外温度测量.mix} | 0 .../10-传感器/08-tcs34725颜色提取.mix} | 0 .../10-传感器/09-tcs230颜色提取.mix} | 0 .../10-传感器/10-MPU6050陀螺仪.mix} | 0 .../10-传感器/11-MPU9250加速度传感器.mix} | 0 .../13-通信/01-红外数据接收.mix} | 0 .../13-通信/02-红外数据发送.mix} | 0 .../13-通信/03-红外数据模拟收发.mix} | 0 .../14-存储/01-SD卡读写测试.mix} | 0 .../14-存储/02-EEPROM掉电存储.mix} | 0 boards/default/arduino_avr/examples/map.json | 694 ++++++++--------- .../创意电子/03按钮指示灯_buttonindator_2.mix} | 0 .../创意电子/03按钮指示灯_flashinglight_2.mix} | 0 .../创意电子/04渐变灯_buttonindator_3.mix} | 0 .../创意电子/04渐变灯_gradientlamp_1.mix} | 0 .../创意电子/05反应测试_gradientlamp_2.mix} | 0 .../创意电子/05反应测试_reactiontest_2.mix} | 0 .../创意电子/06遥控灯_remotecontrollight_2.mix} | 0 .../创意电子/07遥控门锁_keylessentry_1.mix} | 0 .../创意电子/07遥控门锁_keylessentry_2.mix} | 0 .../08温度指示器_temperatureindator_1.mix} | 0 .../08温度指示器_temperatureindator_2.mix} | 0 .../创意电子/09报警器_alarm_1.mix} | 0 .../创意电子/09报警器_alarm_2.mix} | 0 .../创意电子/09报警器_lib_alarm_lib2.mix} | 0 .../创意电子/10可调报警器_adjustablealarm_1.mix} | 0 .../创意电子/10可调报警器_adjustablealarm_2.mix} | 0 .../10可调报警器_lib_adjustablealarm_lib2.mix} | 0 .../创意电子/11倒车雷达_reversingradar_1.mix} | 0 .../创意电子/11倒车雷达_reversingradar_2.mix} | 0 .../创意电子/12计时器_timer_1.mix} | 0 .../创意电子/12计时器_timer_2.mix} | 0 .../创意电子/1闪烁灯_1 flashing light.mix} | 0 .../创意电子/2闪烁灯_2 flashing lights.mix} | 0 .../“保卫”消防通道_Secure Fire Passage.mix} | 0 .../智能机器/你抢我答_You rob me to answer.mix} | 0 .../智能机器/噪声监控_Noise monitoring.mix} | 0 .../图书消毒柜_Book disinfection cabinet.mix} | 0 .../智能机器/太阳能发电机_Solar generator.mix} | 0 .../智能机器/彩色手电筒_Color flashlight.mix} | 0 .../智能机器/无人驾驶_unmanned.mix} | 0 .../智能机器/智能停车场_Smart parking.mix} | 0 .../智能机器/眼疾手快_Eye disease hand fast.mix} | 0 .../智能机器/瞄准狐狸_Aiming at the fox.mix} | 0 .../智能机器/节电风扇_Power-saving fan.mix} | 0 .../超市储物箱_Supermarket storage box.mix} | 0 .../Handbit/RGB LED.mix} | 0 .../Handbit/buzzer play two tigers.mix} | 0 .../Handbit/display Chinese.mix} | 0 .../Handbit/display Text.mix} | 0 .../MPU6050打印数值.mix} | 0 .../MixGo/MPU9250.mix} | 0 .../PWM模拟输出.mix} | 0 .../SPIFFS读写数据测试.mix} | 0 .../URL和Base64编解码.mix} | 0 .../WiFi事件.mix} | 0 .../wifi控制小车.mix} | 0 .../中断控制.mix} | 0 .../使用http发送POST请求.mix} | 0 .../定时器.mix} | 0 .../心知天气.mix} | 0 .../旋转编码器读取数据.mix} | 0 .../简明教程/ESP32双核的简单使用.mix} | 0 .../简明教程/ESPnow无线通讯简单案例.mix} | 0 .../触摸中断.mix} | 0 .../URL和Base64编解码.mix} | 0 .../使用http发送POST请求.mix} | 0 .../心知天气.mix} | 0 .../URL和Base64编解码.mix} | 0 .../使用http发送POST请求.mix} | 0 .../心知天气.mix} | 0 .../URL和Base64编解码.mix} | 0 .../使用http发送POST请求.mix} | 0 .../心知天气.mix} | 0 .../default/arduino_esp32/examples/map.json | 70 +- ...rn9jFRfTa.mix => 15-MQTT Send Message.mix} | 0 ...{JUtx9ytugjaC.mix => Blynk-远程七彩灯.mix} | 0 .../{KreH8WIF_Yda.mix => Blynk控制舵机.mix} | 0 ...pK2MXikzoQx6.mix => Blynk无线桥接通信.mix} | 0 .../{z4J4JHukkSVQ.mix => Blynk气象站.mix} | 0 .../{3Wihz97xuOCP.mix => Blynk留言机.mix} | 0 .../{ipupXmtAYaGu.mix => Blynk连接服务器.mix} | 0 .../{COCWdBNocNHD.mix => MAX7219点阵时钟.mix} | 0 ...xyUzMogSu-.mix => MQTT连接DF EASY_IOT.mix} | 0 .../{yjn4I_LfPi4K.mix => NTP时间服务器.mix} | 0 .../{s4jq2m5fMgj4.mix => OLED网络时钟.mix} | 0 .../{t3iQzkI4Ce97.mix => TM1637网络时钟.mix} | 0 ...Hw0tvoR_sUVA.mix => URL和Base64编解码.mix} | 0 .../default/arduino_esp8266/examples/map.json | 40 +- ...khd5OTLZX.mix => 使用http发送POST请求.mix} | 0 .../{kU29WE1YwmyS.mix => 心知天气.mix} | 0 ...bxSfuusHNwe.mix => 旋转编码器读取数据.mix} | 0 .../AP模式一键配置网络与清除网络信息.mix} | 0 .../MQTT断线反馈与重连.mix} | 0 .../网络连接超时优化.mix} | 0 .../micropython/build/lib/spl06_001.py | 7 +- .../1-1 滚动显示mixly.mix} | 0 .../1-2 滚动显示两句话.mix} | 0 .../10-传按键数据上云端.mix} | 0 .../11-1 云端控制LED灯.mix} | 0 .../11-2 云端控制rgb灯.mix} | 0 .../12-1 应用开关控制LED灯.mix} | 0 .../12-2 应用旋钮控制LED灯.mix} | 0 .../12-3 应用点亮显示屏.mix} | 0 .../2-1 心情晴雨表-按下.mix} | 0 .../2-1 心情晴雨表-按着.mix} | 0 .../2-2 心情晴雨表-联合图形.mix} | 0 .../fLqRgpSftdty.mix => MixGo/3-1 抢答器.mix} | 0 .../3-2 倒计时抢答器.mix} | 0 .../4-1可调报警器.mix} | 0 .../4-2音乐门铃.mix} | 0 .../5-1创建基准音.mix} | 0 .../5-2录音电子琴.mix} | 0 .../qCV4FEc5Gj8X.mix => MixGo/6-1闹钟.mix} | 0 .../6-2实时时钟.mix} | 0 .../7-1光电密码锁.mix} | 0 .../SjT_JAdEFmUi.mix => MixGo/7-2密码锁.mix} | 0 .../7-3密码锁-可修改密码.mix} | 0 .../8-1磁场魔术.mix} | 0 .../8-2扫雷法宝.mix} | 0 .../CB-HIDWuNuR7.mix => MixGo/9-1平衡仪.mix} | 0 .../9-2平衡仪升级版.mix} | 0 .../9-3平衡仪小小精灵快快跑.mix} | 0 .../9-4平衡仪左右前后移动.mix} | 0 .../01-1-快速入门-你好世界.mix} | 0 .../01-2-快速入门-你好世界2.mix} | 0 .../02-1-快速入门-跳动的心.mix} | 0 .../02-2-快速入门-为你心动.mix} | 0 .../03-1-快速入门-心随我动.mix} | 0 .../03-2-快速入门-心随我动2.mix} | 0 .../04-1-快速入门-流动的灯.mix} | 0 .../04-2-快速入门-流动的灯2.mix} | 0 .../05-1-过程控制-双键开关.mix} | 0 .../05-2-过程控制-单键开关.mix} | 0 .../05-3-过程控制-IPO概念.mix} | 0 .../06-1-过程控制-声音采集.mix} | 0 .../06-2-过程控制-看见声音.mix} | 0 .../07-1-过程控制-光强采集.mix} | 0 .../07-2-过程控制-自动补光.mix} | 0 .../08-1-过程控制-接近检测.mix} | 0 .../08-2-过程控制-入侵报警.mix} | 0 .../09-1-输入输出-加速度.mix} | 0 .../09-2-输入输出-平衡仪.mix} | 0 .../10-1-输入输出-地磁强度.mix} | 0 .../10-2-输入输出-金属探测.mix} | 0 .../12-1-输入输出-实时时钟.mix} | 0 .../12-2-输入输出-实时时钟2.mix} | 0 .../13-1-逻辑计算-手速测试.mix} | 0 .../14-1-逻辑计算-反应测试.mix} | 0 .../14-2-逻辑计算-反应测试2.mix} | 0 .../17-0-复杂控制-非中断效果.mix} | 0 .../17-2-复杂控制-单键中断.mix} | 0 .../18-1-复杂控制-定时计时.mix} | 0 .../18-2-复杂控制-循环计时.mix} | 0 .../19-1-复杂控制-多线程.mix} | 0 .../19-2-复杂控制-多线程与中断.mix} | 0 .../20-1-复杂控制-异常.mix} | 0 .../20-2-复杂控制-异常处理.mix} | 0 .../23-1-蓝牙通讯-主机模式.mix} | 0 .../23-1-蓝牙通讯-从机模式.mix} | 0 .../24-1-无线广播-通讯测试.mix} | 0 .../24-2-无线广播-防丢检测.mix} | 0 .../29-1-物联网-简单数据定时上报.mix} | 0 .../29-2-物联网-复杂数据定时上报.mix} | 0 .../30-1-物联网-简单数据按需上报.mix} | 0 .../30-2-物联网-高级数据按需上报.mix} | 0 .../31-1-物联网-单主题数据订阅.mix} | 0 .../31-1-物联网-单主题数据订阅2.mix} | 0 .../32-1-物联网-多主题数据订.mix} | 0 .../32-2-物联网-多主题数据订2.mix} | 0 .../37-1-文件操作-列出文件.mix} | 0 .../37-2-文件操作-列出文件2.mix} | 0 .../38-1-文件操作-文件读写.mix} | 0 .../38-2-文件操作-文件读写2.mix} | 0 .../micropython_esp32/examples/map.json | 408 +++++----- boards/default/micropython_esp32/index.xml | 2 +- .../default/micropython_esp32/main.bundle.js | 2 +- .../{main.fc544ac3.css => main.f3b76c12.css} | 0 .../01-1-快速入门-你好世界.mix} | 0 .../01-2-快速入门-你好世界2.mix} | 0 .../02-1-快速入门-跳动的心.mix} | 0 .../02-2-快速入门-为你心动.mix} | 0 .../03-1-快速入门-心随我动.mix} | 0 .../03-2-快速入门-心随我动2.mix} | 0 .../04-1-快速入门-流动的灯.mix} | 0 .../04-2-快速入门-流动的灯2.mix} | 0 .../05-1-过程控制-双键开关.mix} | 0 .../05-2-过程控制-单键开关.mix} | 0 .../05-3-过程控制-IPO概念.mix} | 0 .../06-1-过程控制-声音采集.mix} | 0 .../06-2-过程控制-看见声音.mix} | 0 .../07-1-过程控制-光强采集.mix} | 0 .../07-2-过程控制-自动补光.mix} | 0 .../08-1-过程控制-接近检测.mix} | 0 .../08-2-过程控制-入侵报警.mix} | 0 .../09-1-输入输出-加速度.mix} | 0 .../09-2-输入输出-平衡仪.mix} | 0 .../10-1-输入输出-地磁强度.mix} | 0 .../10-2-输入输出-金属探测.mix} | 0 .../11-1-输入输出-点阵控制.mix} | 0 .../11-2-输入输出-光标控制.mix} | 0 .../12-1-输入输出-实时时钟.mix} | 0 .../12-2-输入输出-实时时钟2.mix} | 0 .../13-1-逻辑计算-手速测试.mix} | 0 .../13-2-逻辑计算-手速测试2.mix} | 0 .../14-1-逻辑计算-反应测试.mix} | 0 .../14-2-逻辑计算-反应测试2.mix} | 0 .../15-1-逻辑计算-简单打地鼠.mix} | 0 .../15-2-逻辑计算-计时打地鼠.mix} | 0 .../16-1-逻辑计算-开始打地鼠.mix} | 0 .../16-2-逻辑计算-循环打地鼠.mix} | 0 .../17-0-复杂控制-非中断效果.mix} | 0 .../17-2-复杂控制-单键中断.mix} | 0 .../18-1-复杂控制-定时计时.mix} | 0 .../18-2-复杂控制-循环计时.mix} | 0 .../19-1-复杂控制-多线程.mix} | 0 .../19-2-复杂控制-多线程与中断.mix} | 0 .../20-1-复杂控制-异常.mix} | 0 .../20-2-复杂控制-异常处理.mix} | 0 .../21-1-射频识别-读取测试(MEG1).mix} | 0 .../21-2-射频识别-读取卡号(MEG1).mix} | 0 .../22-1-射频识别-写卡测试(MEG1).mix} | 0 .../22-2-射频识别-持续写卡(MEG1).mix} | 0 .../23-1-蓝牙通讯-主机模式.mix} | 0 .../23-1-蓝牙通讯-从机模式.mix} | 0 .../24-1-无线广播-通讯测试.mix} | 0 .../24-2-无线广播-防丢检测.mix} | 0 .../25-1-飞机游戏-显示飞机.mix} | 0 .../25-2-飞机游戏-移动飞机.mix} | 0 .../26-1-飞机游戏-发射子弹.mix} | 0 .../26-2-飞机游戏-移动音效.mix} | 0 .../27-1-飞机游戏-显示敌机.mix} | 0 .../27-2-飞机游戏-消灭敌机.mix} | 0 .../28-1-飞机游戏-显示得分.mix} | 0 .../28-2-飞机游戏-结束游戏.mix} | 0 .../29-1-物联网-简单数据定时上报.mix} | 0 .../29-2-物联网-复杂数据定时上报.mix} | 0 .../30-1-物联网-简单数据按需上报.mix} | 0 .../30-2-物联网-高级数据按需上报.mix} | 0 .../31-1-物联网-单主题数据订阅.mix} | 0 .../31-1-物联网-单主题数据订阅2.mix} | 0 .../32-1-物联网-多主题数据订.mix} | 0 .../32-2-物联网-多主题数据订2.mix} | 0 .../33-1-课堂互动-自由签到.mix} | 0 .../33-2-课堂互动-按需签到.mix} | 0 .../34-1-课堂互动-一人抢答.mix} | 0 .../34-2-课堂互动-多人抢答.mix} | 0 .../35-1-课堂互动-单选答题.mix} | 0 .../35-2-课堂互动-多选答题.mix} | 0 .../36-1-课堂互动-点名答题.mix} | 0 .../36-2-课堂互动-多人点答.mix} | 0 .../37-1-文件操作-列出文件.mix} | 0 .../37-2-文件操作-列出文件2.mix} | 0 .../38-1-文件操作-文件读写.mix} | 0 .../38-2-文件操作-文件读写2.mix} | 0 .../39-1-文件操作-录音采集.mix} | 0 .../39-2-文件操作-录音重现.mix} | 0 .../40-1-文件操作-震动采集.mix} | 0 .../40-2-文件操作-震动重现.mix} | 0 .../41-1-智能小车-前进转弯(MEGO).mix} | 0 .../41-2-智能小车-圆圈转弯(MEGO).mix} | 0 .../42-1-智能小车-智能避障(MEGO).mix} | 0 .../42-2-智能小车-智能避障2(MEGO).mix} | 0 .../43-1-智能小车-遥控小车(MEGO).mix} | 0 .../43-2-智能小车-体感遥控(MEGO).mix} | 0 .../44-1-智能小车-P单巡线(MEGO).mix} | 0 .../44-2-智能小车-P双巡线(MEGO).mix} | 0 .../micropython_esp32c2/examples/map.json | 180 ++--- boards/default/micropython_esp32c2/index.xml | 2 +- .../{main.cdf64bec.css => main.25d89b66.css} | 0 .../01-1-快速入门-你好世界.mix} | 0 .../01-2-快速入门-你好世界2.mix} | 0 .../02-1-快速入门-跳动的心.mix} | 0 .../02-2-快速入门-为你心动.mix} | 0 .../03-1-快速入门-心随我动.mix} | 0 .../03-2-快速入门-心随我动2.mix} | 0 .../04-1-快速入门-流动的灯.mix} | 0 .../04-2-快速入门-流动的灯2.mix} | 0 .../05-1-过程控制-双键开关.mix} | 0 .../05-2-过程控制-单键开关.mix} | 0 .../05-3-过程控制-IPO概念.mix} | 0 .../06-1-过程控制-声音采集.mix} | 0 .../06-2-过程控制-看见声音.mix} | 0 .../07-1-过程控制-光强采集.mix} | 0 .../07-2-过程控制-自动补光.mix} | 0 .../08-1-过程控制-接近检测.mix} | 0 .../08-2-过程控制-入侵报警.mix} | 0 .../09-1-输入输出-加速度.mix} | 0 .../09-2-输入输出-平衡仪.mix} | 0 .../10-1-输入输出-温湿度.mix} | 0 .../10-2-输入输出-大气压.mix} | 0 .../11-1-输入输出-点阵控制.mix} | 0 .../11-2-输入输出-光标控制.mix} | 0 .../12-1-输入输出-实时时钟.mix} | 0 .../12-2-输入输出-实时时钟2.mix} | 0 .../13-1-逻辑计算-手速测试.mix} | 0 .../13-2-逻辑计算-手速测试2.mix} | 0 .../14-1-逻辑计算-反应测试.mix} | 0 .../14-2-逻辑计算-反应测试2.mix} | 0 .../15-1-逻辑计算-简单打地鼠.mix} | 0 .../15-2-逻辑计算-计时打地鼠.mix} | 0 .../16-1-逻辑计算-开始打地鼠.mix} | 0 .../16-2-逻辑计算-循环打地鼠.mix} | 0 .../17-0-复杂控制-非中断效果.mix} | 0 .../17-1-复杂控制-双键中断.mix} | 0 .../17-2-复杂控制-单键中断.mix} | 0 .../18-1-复杂控制-定时计时.mix} | 0 .../18-2-复杂控制-循环计时.mix} | 0 .../19-1-复杂控制-多线程.mix} | 0 .../19-2-复杂控制-多线程与中断.mix} | 0 .../20-1-复杂控制-异常.mix} | 0 .../20-2-复杂控制-异常处理.mix} | 0 .../21-1-射频识别-读取测试.mix} | 0 .../21-2-射频识别-读取卡号.mix} | 0 .../22-1-射频识别-写卡测试.mix} | 0 .../22-2-射频识别-持续写卡.mix} | 0 .../23-1-蓝牙通讯-主机模式.mix} | 0 .../23-1-蓝牙通讯-从机模式.mix} | 0 .../24-1-无线广播-通讯测试.mix} | 0 .../24-2-无线广播-防丢检测.mix} | 0 .../25-1-飞机游戏-显示飞机.mix} | 0 .../25-2-飞机游戏-移动飞机.mix} | 0 .../26-1-飞机游戏-发射子弹.mix} | 0 .../26-2-飞机游戏-移动音效.mix} | 0 .../27-1-飞机游戏-显示敌机.mix} | 0 .../27-2-飞机游戏-消灭敌机.mix} | 0 .../28-1-飞机游戏-显示得分.mix} | 0 .../28-2-飞机游戏-结束游戏.mix} | 0 .../29-1-物联网-简单数据定时上报.mix} | 0 .../29-2-物联网-复杂数据定时上报.mix} | 0 .../30-1-物联网-简单数据按需上报.mix} | 0 .../30-2-物联网-高级数据按需上报.mix} | 0 .../31-1-物联网-单主题数据订阅.mix} | 0 .../31-1-物联网-单主题数据订阅2.mix} | 0 .../32-1-物联网-多主题数据订.mix} | 0 .../32-2-物联网-多主题数据订2.mix} | 0 .../33-1-课堂互动-自由签到.mix} | 0 .../33-2-课堂互动-按需签到.mix} | 0 .../34-1-课堂互动-一人抢答.mix} | 0 .../34-2-课堂互动-多人抢答.mix} | 0 .../35-1-课堂互动-单选答题.mix} | 0 .../35-2-课堂互动-多选答题.mix} | 0 .../36-1-课堂互动-点名答题.mix} | 0 .../36-2-课堂互动-多人点答.mix} | 0 .../37-1-文件操作-列出文件.mix} | 0 .../37-2-文件操作-列出文件2.mix} | 0 .../38-1-文件操作-文件读写.mix} | 0 .../38-2-文件操作-文件读写2.mix} | 0 .../39-1-文件操作-录音采集.mix} | 0 .../39-2-文件操作-录音重现.mix} | 0 .../40-1-文件操作-震动采集.mix} | 0 .../40-2-文件操作-震动重现.mix} | 0 .../41-1-智能小车-前进转弯(MEGO).mix} | 0 .../41-2-智能小车-圆圈转弯(MEGO).mix} | 0 .../42-1-智能小车-智能避障(MEGO).mix} | 0 .../42-2-智能小车-智能避障2(MEGO).mix} | 0 .../43-1-智能小车-遥控小车(MEGO).mix} | 0 .../43-2-智能小车-体感遥控(MEGO).mix} | 0 .../44-1-智能小车-P单巡线(MEGO).mix} | 0 .../44-2-智能小车-P双巡线(MEGO).mix} | 0 .../01-1-快速入门-你好世界.mix} | 0 .../01-2-快速入门-你好世界2.mix} | 0 .../02-1-快速入门-跳动的心.mix} | 0 .../02-2-快速入门-为你心动.mix} | 0 .../03-1-快速入门-心随我动.mix} | 0 .../03-2-快速入门-心随我动2.mix} | 0 .../04-1-快速入门-流动的灯.mix} | 0 .../04-2-快速入门-流动的灯2.mix} | 0 .../05-1-过程控制-双键开关.mix} | 0 .../05-2-过程控制-单键开关.mix} | 0 .../05-3-过程控制-IPO概念.mix} | 0 .../06-1-过程控制-声音采集.mix} | 0 .../06-2-过程控制-看见声音.mix} | 0 .../07-1-过程控制-光强采集.mix} | 0 .../07-2-过程控制-自动补光.mix} | 0 .../08-1-过程控制-接近检测.mix} | 0 .../08-2-过程控制-入侵报警.mix} | 0 .../09-1-输入输出-加速度.mix} | 0 .../09-2-输入输出-平衡仪.mix} | 0 .../10-1-输入输出-地磁强度.mix} | 0 .../10-2-输入输出-金属探测.mix} | 0 .../11-1-输入输出-点阵控制.mix} | 0 .../11-2-输入输出-光标控制.mix} | 0 .../12-1-输入输出-实时时钟.mix} | 0 .../12-2-输入输出-实时时钟2.mix} | 0 .../13-1-逻辑计算-手速测试.mix} | 0 .../13-2-逻辑计算-手速测试2.mix} | 0 .../14-1-逻辑计算-反应测试.mix} | 0 .../14-2-逻辑计算-反应测试2.mix} | 0 .../15-1-逻辑计算-简单打地鼠.mix} | 0 .../15-2-逻辑计算-计时打地鼠.mix} | 0 .../16-1-逻辑计算-开始打地鼠.mix} | 0 .../16-2-逻辑计算-循环打地鼠.mix} | 0 .../17-0-复杂控制-非中断效果.mix} | 0 .../17-2-复杂控制-单键中断.mix} | 0 .../18-1-复杂控制-定时计时.mix} | 0 .../18-2-复杂控制-循环计时.mix} | 0 .../19-1-复杂控制-多线程.mix} | 0 .../19-2-复杂控制-多线程与中断.mix} | 0 .../20-1-复杂控制-异常.mix} | 0 .../20-2-复杂控制-异常处理.mix} | 0 .../21-1-射频识别-读取测试(MEG1).mix} | 0 .../21-2-射频识别-读取卡号(MEG1).mix} | 0 .../22-1-射频识别-写卡测试(MEG1).mix} | 0 .../22-2-射频识别-持续写卡(MEG1).mix} | 0 .../23-1-蓝牙通讯-主机模式.mix} | 0 .../23-1-蓝牙通讯-从机模式.mix} | 0 .../24-1-无线广播-通讯测试.mix} | 0 .../24-2-无线广播-防丢检测.mix} | 0 .../25-1-飞机游戏-显示飞机.mix} | 0 .../25-2-飞机游戏-移动飞机.mix} | 0 .../26-1-飞机游戏-发射子弹.mix} | 0 .../26-2-飞机游戏-移动音效.mix} | 0 .../27-1-飞机游戏-显示敌机.mix} | 0 .../27-2-飞机游戏-消灭敌机.mix} | 0 .../28-1-飞机游戏-显示得分.mix} | 0 .../28-2-飞机游戏-结束游戏.mix} | 0 .../29-1-物联网-简单数据定时上报.mix} | 0 .../29-2-物联网-复杂数据定时上报.mix} | 0 .../30-1-物联网-简单数据按需上报.mix} | 0 .../30-2-物联网-高级数据按需上报.mix} | 0 .../31-1-物联网-单主题数据订阅.mix} | 0 .../31-1-物联网-单主题数据订阅2.mix} | 0 .../32-1-物联网-多主题数据订.mix} | 0 .../32-2-物联网-多主题数据订2.mix} | 0 .../33-1-课堂互动-自由签到.mix} | 0 .../33-2-课堂互动-按需签到.mix} | 0 .../34-1-课堂互动-一人抢答.mix} | 0 .../34-2-课堂互动-多人抢答.mix} | 0 .../35-1-课堂互动-单选答题.mix} | 0 .../35-2-课堂互动-多选答题.mix} | 0 .../36-1-课堂互动-点名答题.mix} | 0 .../36-2-课堂互动-多人点答.mix} | 0 .../37-1-文件操作-列出文件.mix} | 0 .../37-2-文件操作-列出文件2.mix} | 0 .../38-1-文件操作-文件读写.mix} | 0 .../38-2-文件操作-文件读写2.mix} | 0 .../39-1-文件操作-录音采集.mix} | 0 .../39-2-文件操作-录音重现.mix} | 0 .../40-1-文件操作-震动采集.mix} | 0 .../40-2-文件操作-震动重现.mix} | 0 .../41-1-智能小车-前进转弯(MEGO).mix} | 0 .../41-2-智能小车-圆圈转弯(MEGO).mix} | 0 .../42-1-智能小车-智能避障(MEGO).mix} | 0 .../42-2-智能小车-智能避障2(MEGO).mix} | 0 .../43-1-智能小车-遥控小车(MEGO).mix} | 0 .../43-2-智能小车-体感遥控(MEGO).mix} | 0 .../44-1-智能小车-P单巡线(MEGO).mix} | 0 .../44-2-智能小车-P双巡线(MEGO).mix} | 0 .../micropython_esp32c3/examples/map.json | 724 +++++++++--------- boards/default/micropython_esp32c3/index.xml | 2 +- .../micropython_esp32c3/main.bundle.js | 2 +- .../{main.6980044f.css => main.3bd7dce0.css} | 0 ...OuQNbjZ.mix => 01-1-快速入门-你好世界.mix} | 0 ...iOBX8C.mix => 01-2-快速入门-你好世界2.mix} | 0 ...571hj9g.mix => 02-1-快速入门-跳动的心.mix} | 0 ...UlWKPs4.mix => 02-2-快速入门-为你心动.mix} | 0 ...FvcDVQN.mix => 03-1-快速入门-心随我动.mix} | 0 ...UUCJ1n.mix => 03-2-快速入门-心随我动2.mix} | 0 ...XxoEKx2.mix => 04-1-快速入门-流动的灯.mix} | 0 ...tbIha7.mix => 04-2-快速入门-流动的灯2.mix} | 0 ...zRwVImC.mix => 05-1-过程控制-双键开关.mix} | 0 ...nqoy2Gv.mix => 05-2-过程控制-单键开关.mix} | 0 ...0KHQrREy.mix => 05-3-过程控制-IPO概念.mix} | 0 ...iIURWwK.mix => 06-1-过程控制-声音采集.mix} | 0 ...TBN-Nbj.mix => 06-2-过程控制-看见声音.mix} | 0 ...bH1vPC6.mix => 07-1-过程控制-光强采集.mix} | 0 ...yjT4xRJ.mix => 07-2-过程控制-自动补光.mix} | 0 ...aDJgbve.mix => 08-1-过程控制-接近检测.mix} | 0 ...Aj9vBT4.mix => 08-2-过程控制-入侵报警.mix} | 0 ...XtAj9bk_Z.mix => 09-1-输入输出-加速度.mix} | 0 ...bQh39meB8.mix => 09-2-输入输出-平衡仪.mix} | 0 ...ntEBnDJ.mix => 10-1-输入输出-触摸按键.mix} | 0 ...Ky30MA4.mix => 10-2-输入输出-减压神器.mix} | 0 ...b_DzhoO.mix => 11-1-输入输出-点阵控制.mix} | 0 ...gcz2rTZ.mix => 11-2-输入输出-光标控制.mix} | 0 ...kLbsJKq.mix => 12-1-输入输出-实时时钟.mix} | 0 ...9TBNk3.mix => 12-2-输入输出-实时时钟2.mix} | 0 ..._c1Kr4D.mix => 13-1-逻辑计算-手速测试.mix} | 0 ...TXgIZP.mix => 13-2-逻辑计算-手速测试2.mix} | 0 ...AO3z53Z.mix => 14-1-逻辑计算-反应测试.mix} | 0 ...zkQM7y.mix => 14-2-逻辑计算-反应测试2.mix} | 0 ...aKmhQ.mix => 15-1-逻辑计算-简单打地鼠.mix} | 0 ...x6p2W.mix => 15-2-逻辑计算-计时打地鼠.mix} | 0 ...9Y_10.mix => 16-1-逻辑计算-开始打地鼠.mix} | 0 ...a9m3v.mix => 16-2-逻辑计算-循环打地鼠.mix} | 0 ...FG-CE.mix => 17-0-复杂控制-非中断效果.mix} | 0 ...xib7udN.mix => 17-1-复杂控制-双键中断.mix} | 0 ...kuBaJk1.mix => 17-2-复杂控制-单键中断.mix} | 0 ...dZuq1vN.mix => 18-1-复杂控制-定时计时.mix} | 0 ...cPLc7RW.mix => 18-2-复杂控制-循环计时.mix} | 0 ...xVNx50qP1.mix => 19-1-复杂控制-多线程.mix} | 0 ...r5Y.mix => 19-2-复杂控制-多线程与中断.mix} | 0 ...5Z_PB2Mmvo4.mix => 20-1-复杂控制-异常.mix} | 0 ...mU-KQyE.mix => 20-2-复杂控制-异常处理.mix} | 0 ...h_THU.mix => 21-1-红外接近-单挥手测试.mix} | 0 ...Jly6h.mix => 21-2-红外接近-双挥手测试.mix} | 0 ...9DV.mix => 22-1-红外接近-双门人数统计.mix} | 0 ...zgj.mix => 22-2-红外接近-单门人数统计.mix} | 0 ...Nsq6_lP.mix => 23-1-红外遥控-数据收发.mix} | 0 ...kNEJgxt.mix => 23-2-红外遥控-遥控点灯.mix} | 0 ...dQ28htj.mix => 24-1-无线广播-通讯测试.mix} | 0 ...efSA6iM.mix => 24-2-无线广播-防丢检测.mix} | 0 ...kUHmRH5.mix => 25-1-飞机游戏-显示飞机.mix} | 0 ...9BzXvjT.mix => 25-2-飞机游戏-移动飞机.mix} | 0 ...Qs83Leu.mix => 26-1-飞机游戏-发射子弹.mix} | 0 ...anU_E1L.mix => 26-2-飞机游戏-移动音效.mix} | 0 ...mrnCRfU.mix => 27-1-飞机游戏-显示敌机.mix} | 0 ...NAjqFox.mix => 27-2-飞机游戏-消灭敌机.mix} | 0 ..._Wsacbm.mix => 28-1-飞机游戏-显示得分.mix} | 0 ...CIKNVQF.mix => 28-2-飞机游戏-结束游戏.mix} | 0 ...C.mix => 29-1-物联网-简单数据定时上报.mix} | 0 ...I.mix => 29-2-物联网-复杂数据定时上报.mix} | 0 ...5.mix => 30-1-物联网-简单数据按需上报.mix} | 0 ...x.mix => 30-2-物联网-高级数据按需上报.mix} | 0 ...2B_.mix => 31-1-物联网-单主题数据订阅.mix} | 0 ...PN.mix => 31-1-物联网-单主题数据订阅2.mix} | 0 ...8jJqM.mix => 32-1-物联网-多主题数据订.mix} | 0 ...4tlq.mix => 32-2-物联网-多主题数据订2.mix} | 0 ...SFkLh7P.mix => 33-1-课堂互动-自由签到.mix} | 0 ...tlxSlMT.mix => 33-2-课堂互动-按需签到.mix} | 0 ...e5EMks4.mix => 34-1-课堂互动-一人抢答.mix} | 0 ...4EtPaVS.mix => 34-2-课堂互动-多人抢答.mix} | 0 ...90legDU.mix => 35-1-课堂互动-单选答题.mix} | 0 ...5MPnMEh.mix => 35-2-课堂互动-多选答题.mix} | 0 ...laGOpAG.mix => 36-1-课堂互动-点名答题.mix} | 0 ...0QzsfrA.mix => 36-2-课堂互动-多人点答.mix} | 0 ...fTR_Nfo.mix => 37-1-文件操作-列出文件.mix} | 0 ...Ioo51c.mix => 37-2-文件操作-列出文件2.mix} | 0 ...QQsmlyu.mix => 38-1-文件操作-文件读写.mix} | 0 ...yuMjzX.mix => 38-2-文件操作-文件读写2.mix} | 0 ...ufR4STG.mix => 39-1-文件操作-录音采集.mix} | 0 ...2BiTf3V.mix => 39-2-文件操作-录音重现.mix} | 0 ...cuYXynW.mix => 40-1-文件操作-震动采集.mix} | 0 ...s_kowjv.mix => 40-2-文件操作-震动重现.mix} | 0 ...j.mix => 41-1-智能小车-前进转弯(MEGO).mix} | 0 ...5.mix => 41-2-智能小车-圆圈转弯(MEGO).mix} | 0 ...t.mix => 42-1-智能小车-智能避障(MEGO).mix} | 0 ....mix => 42-2-智能小车-智能避障2(MEGO).mix} | 0 ...t.mix => 43-1-智能小车-遥控小车(MEGO).mix} | 0 ...e.mix => 43-2-智能小车-体感遥控(MEGO).mix} | 0 ...Ad.mix => 44-1-智能小车-P单巡线(MEGO).mix} | 0 ...Lo.mix => 44-2-智能小车-P双巡线(MEGO).mix} | 0 .../micropython_esp32s2/examples/map.json | 360 ++++----- boards/default/micropython_esp32s2/index.xml | 2 +- .../micropython_esp32s2/main.bundle.js | 2 +- .../{main.c124fb9c.css => main.31d1eaa2.css} | 0 .../01-1-快速入门-你好世界.mix} | 0 .../01-2-快速入门-你好世界2.mix} | 0 .../02-1-快速入门-跳动的心.mix} | 0 .../02-2-快速入门-为你心动.mix} | 0 .../03-1-快速入门-心随我动.mix} | 0 .../03-2-快速入门-心随我动2.mix} | 0 .../04-1-快速入门-流动的灯.mix} | 0 .../04-2-快速入门-流动的灯2.mix} | 0 .../05-1-过程控制-双键开关.mix} | 0 .../05-2-过程控制-单键开关.mix} | 0 .../05-3-过程控制-IPO概念.mix} | 0 .../06-1-过程控制-声音采集.mix} | 0 .../06-2-过程控制-看见声音.mix} | 0 .../07-1-过程控制-光强采集.mix} | 0 .../07-2-过程控制-自动补光.mix} | 0 .../08-1-过程控制-接近检测.mix} | 0 .../08-2-过程控制-入侵报警.mix} | 0 .../09-1-输入输出-加速度.mix} | 0 .../09-2-输入输出-平衡仪.mix} | 0 .../10-1-输入输出-温湿度.mix} | 0 .../10-2-输入输出-地磁金属探测.mix} | 0 .../11-1-输入输出-数字触摸.mix} | 0 .../11-2-输入输出-模拟触摸.mix} | 0 .../12-1-输入输出-实时时钟.mix} | 0 .../12-2-输入输出-实时时钟2.mix} | 0 .../13-1-逻辑计算-手速测试.mix} | 0 .../13-2-逻辑计算-手速测试2.mix} | 0 .../14-1-逻辑计算-反应测试.mix} | 0 .../14-2-逻辑计算-反应测试2.mix} | 0 .../15-1-逻辑计算-简单打地鼠.mix} | 0 .../15-2-逻辑计算-计时打地鼠.mix} | 0 .../16-1-逻辑计算-开始打地鼠.mix} | 0 .../16-2-逻辑计算-循环打地鼠.mix} | 0 .../17-0-复杂控制-非中断效果.mix} | 0 .../17-1-复杂控制-双键中断.mix} | 0 .../17-2-复杂控制-单键中断.mix} | 0 .../18-1-复杂控制-定时计时.mix} | 0 .../18-2-复杂控制-循环计时.mix} | 0 .../19-1-复杂控制-多线程.mix} | 0 .../19-2-复杂控制-多线程与中断.mix} | 0 .../20-1-复杂控制-异常.mix} | 0 .../20-2-复杂控制-异常处理.mix} | 0 .../21-1-射频识别-读取测试.mix} | 0 .../21-2-射频识别-读取卡号.mix} | 0 .../22-1-射频识别-写卡测试.mix} | 0 .../22-2-射频识别-持续写卡.mix} | 0 .../23-1-蓝牙通讯-主机模式.mix} | 0 .../23-1-蓝牙通讯-从机模式.mix} | 0 .../24-1-无线广播-通讯测试.mix} | 0 .../24-2-无线广播-防丢检测.mix} | 0 .../25-1-红外遥控-收发测试.mix} | 0 .../25-2-红外遥控-遥控点灯.mix} | 0 .../26-1-红外遥控-学习编码.mix} | 0 .../26-2-红外遥控-万能遥控.mix} | 0 .../27-1-红外接近-挥手速度.mix} | 0 .../27-2-红外接近-双挥手速度.mix} | 0 .../28-1-红外接近-双门人数统计.mix} | 0 .../28-2-红外接近-单门人数统计.mix} | 0 .../29-1-物联网-简单数据定时上报.mix} | 0 .../29-2-物联网-复杂数据定时上报.mix} | 0 .../30-1-物联网-简单数据按需上报.mix} | 0 .../30-2-物联网-高级数据按需上报.mix} | 0 .../31-1-物联网-单主题数据订阅.mix} | 0 .../31-2-物联网-单主题数据订阅2.mix} | 0 .../32-1-物联网-多主题数据订.mix} | 0 .../32-2-物联网-多主题数据订2.mix} | 0 .../33-1-课堂互动-自由签到.mix} | 0 .../33-2-课堂互动-按需签到.mix} | 0 .../34-1-课堂互动-一人抢答.mix} | 0 .../34-2-课堂互动-多人抢答.mix} | 0 .../35-1-课堂互动-单选答题.mix} | 0 .../35-2-课堂互动-多选答题.mix} | 0 .../36-1-课堂互动-点名答题.mix} | 0 .../36-2-课堂互动-多人点答.mix} | 0 .../37-1-文件操作-列出文件.mix} | 0 .../37-2-文件操作-列出文件2.mix} | 0 .../38-1-文件操作-文件读写.mix} | 0 .../38-2-文件操作-文件读写2.mix} | 0 .../39-1-文件操作-录音播放.mix} | 0 .../39-1-文件操作-录音播放2.mix} | 0 .../40-1-文件操作-SD录音播放2.mix} | 0 .../40-2-文件操作-SD采集重现.mix} | 0 .../micropython_esp32s3/examples/map.json | 332 ++++---- boards/default/micropython_esp32s3/index.xml | 2 +- .../micropython_esp32s3/main.bundle.js | 2 +- .../{main.858ee96b.css => main.c506cb3b.css} | 0 ...RBBP7V.mix => 00-KEY irp_按键中断响应.mix} | 0 ...VZ.mix => 01-LED Blink_数字输出控制灯.mix} | 0 ...C4xd.mix => 02-LED PWM_模拟输出控制灯.mix} | 0 ...Q8W.mix => 04-Time_定时器执行定时打印.mix} | 0 ...k4JYHNzdK.mix => 07-UART_外部串口通信.mix} | 0 ...mix => 08-舵机_定时器调用控制多路舵机.mix} | 0 ...ymtdlO.mix => 09-LCD_屏幕显示累加计数.mix} | 0 ...TYJr.mix => 10-LCD_屏幕显示切砖块过程.mix} | 0 ...=> 11-Audio Play_加载SD卡音频文件播放.mix} | 0 ...=> 12-Video Play_加载SD卡视频文件播放.mix} | 0 ... 13-Video record_录制视频并存放于SD卡.mix} | 0 ... => 14-Camera 拍照_持续拍照显示屏幕上.mix} | 0 ...15-Imge 显示图片_加载SD卡图片文件显示.mix} | 0 ...e 灰度图片_加载SD卡图片文件转换灰度图.mix} | 0 ...17-Imge 绘制文本_在屏幕上绘制文本信息.mix} | 0 ...-Imge 绘制圆形_在屏幕上一直绘制小圈圈.mix} | 0 ...-Imge 绘制滤波_采集图形并洪水填充处理.mix} | 0 ...直线识别_识别摄像头采集图片中直线线条.mix} | 0 ...圆形识别_识别摄像头采集图片中圆形图案.mix} | 0 ...矩形识别_识别摄像头采集图片中矩形图案.mix} | 0 ...颜色追踪_追踪采集图片中设定色域的颜色.mix} | 0 ...色识别_识别采集图片中间框区域的颜色值.mix} | 0 ...采集图形中心物体颜色,然后自动追踪寻找此颜色.mix} | 0 ...特征识别_识别采集图片的特征点并绘画出.mix} | 0 ...码识别_识别采集图片的二维码并解析信息.mix} | 0 ...码识别_识别采集图片的条形码并解析信息.mix} | 0 ...29-AI 人脸追踪_识别追踪采集图片的人脸.mix} | 0 ...物体识别_识别采集图片的20种物体的类别.mix} | 0 ...网络模型-1_加载SD中网络模型并运行解析.mix} | 0 ...I 网络模型_加载SD中网络模型并运行解析.mix} | 0 ...网络模型-2_加载SD中网络模型并运行解析.mix} | 0 ...r 超声波测距_串口打印超声波测算的距离.mix} | 0 ...> 33-Irremote 红外接收_遥控控制灯亮灭.mix} | 0 ...0 大气压_读取大气压传感器数字串口打印.mix} | 0 ...x => 34-DHT11 温湿度_采集温湿度并显示.mix} | 0 ...r 超声波测距_串口打印超声波测算的距离.mix} | 0 ...> 36-Irremote 红外接收_遥控控制灯亮灭.mix} | 0 ...36-SHT20_读取温湿度传感器数字串口打印.mix} | 0 ...0 大气压_读取大气压传感器数字串口打印.mix} | 0 ...U9250 九轴_读取九轴传感器数字串口打印.mix} | 0 ...39-SHT20_读取温湿度传感器数字串口打印.mix} | 0 ...-AIOnenet_中国移动云端网络平台API调用.mix} | 0 ...t_按键按一下调用人体检测API并框出位置.mix} | 0 ...-AILocal_本地模型训练后保存并调用模型.mix} | 0 ...43-AILocal_调用训练好的模型并运行模型.mix} | 0 ...识别-加载SD中模型并识别出带没有带口罩.mix} | 0 ...Z.mix => 45-WiFi_扫描附近WiFi热点信息.mix} | 0 ....mix => 46-WiFi-连接网络_配置WiFi上网.mix} | 0 ...ix => 47-WiFi-打开热点_分享热点AP模式.mix} | 0 ....mix => 48-Socket-_套接字发送接收数据.mix} | 0 ...ket-_套接字发送摄像头拍照图形值服务器.mix} | 0 ...=> 50-IOT_Onenet_上传数据值物联网平台.mix} | 0 ...x => 51-IOT_mixiot_接收物联网平台数据.mix} | 0 ...=> 52-IOT_mixiot_上传数据到物联网平台.mix} | 0 ...mge 中文显示_加载字库显示更多类型文字.mix} | 0 ...开)APDS9960 手势识别_识别识别控制灯亮度.mix} | 0 ...ASR 语音识别_根据识别语音点亮屏幕颜色.mix} | 0 .../{pJ3WxHhTn71j => SD_file}/20class.kmodel | Bin .../{pJ3WxHhTn71j => SD_file}/FD.kmodel | Bin .../{pJ3WxHhTn71j => SD_file}/FE.kmodel | Bin .../{pJ3WxHhTn71j => SD_file}/LD.kmodel | Bin .../facedetect.kmodel | Bin .../{pJ3WxHhTn71j => SD_file}/labels.txt | 0 .../{pJ3WxHhTn71j => SD_file}/masks.kmodel | Bin .../examples/map.json | 228 +++--- .../micropython_k210_mixgoai/index.xml | 2 +- .../{main.04cb6fd2.css => main.26eee374.css} | 0 .../examples/map.json | 4 +- .../{-80bSp5oispO.mix => 七彩RGB灯.mix} | 0 .../01-1-快速入门-你好世界.mix} | 0 .../01-2-快速入门-你好世界2.mix} | 0 .../02-1-快速入门-跳动的心.mix} | 0 .../02-2-快速入门-为你心动.mix} | 0 .../03-1-快速入门-心随我动.mix} | 0 .../03-2-快速入门-心随我动2.mix} | 0 .../04-1-快速入门-流动的灯.mix} | 0 .../04-2-快速入门-流动的灯2.mix} | 0 .../05-1-过程控制-双键开关.mix} | 0 .../05-2-过程控制-单键开关.mix} | 0 .../05-3-过程控制-IPO概念.mix} | 0 .../06-1-过程控制-声音采集.mix} | 0 .../06-2-过程控制-看见声音.mix} | 0 .../07-1-过程控制-光强采集.mix} | 0 .../07-2-过程控制-自动补光.mix} | 0 .../08-1-过程控制-接近检测.mix} | 0 .../08-2-过程控制-入侵报警.mix} | 0 .../09-1-输入输出-加速度.mix} | 0 .../09-2-输入输出-平衡仪.mix} | 0 .../10-1-输入输出-地磁强度.mix} | 0 .../10-2-输入输出-金属探测.mix} | 0 .../11-1-输入输出-模拟光强.mix} | 0 .../11-2-输入输出-光强映射.mix} | 0 .../12-1-输入输出-实时时钟.mix} | 0 .../12-2-输入输出-实时时钟2.mix} | 0 .../13-1-逻辑计算-手速测试.mix} | 0 .../13-2-逻辑计算-手速测试2.mix} | 0 .../14-1-逻辑计算-反应测试.mix} | 0 .../14-2-逻辑计算-反应测试2.mix} | 0 .../15-1-逻辑计算-简单打地鼠.mix} | 0 .../15-2-逻辑计算-计时打地鼠.mix} | 0 .../16-1-逻辑计算-开始打地鼠.mix} | 0 .../16-2-逻辑计算-循环打地鼠.mix} | 0 .../17-0-复杂控制-非中断效果.mix} | 0 .../17-1-复杂控制-双键中断.mix} | 0 .../17-2-复杂控制-单键中断.mix} | 0 .../18-1-复杂控制-定时计时.mix} | 0 .../18-2-复杂控制-循环计时.mix} | 0 .../19-1-复杂控制-多线程.mix} | 0 .../19-2-复杂控制-多线程与中断.mix} | 0 .../20-1-复杂控制-异常.mix} | 0 .../20-2-复杂控制-异常处理.mix} | 0 .../21-1-射频识别-读取测试.mix} | 0 .../21-2-射频识别-读取卡号.mix} | 0 .../22-1-射频识别-写卡测试.mix} | 0 .../22-2-射频识别-持续写卡.mix} | 0 .../23-1-蓝牙通讯-主机模式.mix} | 0 .../23-1-蓝牙通讯-从机模式.mix} | 0 .../24-1-无线广播-通讯测试.mix} | 0 .../24-2-无线广播-防丢检测.mix} | 0 .../25-1-飞机游戏-显示飞机.mix} | 0 .../25-2-飞机游戏-移动飞机.mix} | 0 .../26-1-飞机游戏-发射子弹.mix} | 0 .../26-2-飞机游戏-移动音效.mix} | 0 .../27-1-飞机游戏-显示敌机.mix} | 0 .../27-2-飞机游戏-消灭敌机.mix} | 0 .../28-1-飞机游戏-显示得分.mix} | 0 .../28-2-飞机游戏-结束游戏.mix} | 0 .../29-1-物联网-简单数据定时上报.mix} | 0 .../29-2-物联网-复杂数据定时上报.mix} | 0 .../30-1-物联网-简单数据按需上报.mix} | 0 .../30-2-物联网-高级数据按需上报.mix} | 0 .../31-1-物联网-单主题数据订阅.mix} | 0 .../31-1-物联网-单主题数据订阅2.mix} | 0 .../32-1-物联网-多主题数据订.mix} | 0 .../32-2-物联网-多主题数据订2.mix} | 0 .../33-1-课堂互动-自由签到.mix} | 0 .../33-2-课堂互动-按需签到.mix} | 0 .../34-1-课堂互动-一人抢答.mix} | 0 .../34-2-课堂互动-多人抢答.mix} | 0 .../35-1-课堂互动-单选答题.mix} | 0 .../35-2-课堂互动-多选答题.mix} | 0 .../36-1-课堂互动-点名答题.mix} | 0 .../36-2-课堂互动-多人点答.mix} | 0 .../37-1-文件操作-列出文件.mix} | 0 .../37-2-文件操作-列出文件2.mix} | 0 .../38-1-文件操作-文件读写.mix} | 0 .../38-2-文件操作-文件读写2.mix} | 0 .../39-1-文件操作-录音采集.mix} | 0 .../39-2-文件操作-录音重现.mix} | 0 .../40-1-文件操作-震动采集.mix} | 0 .../40-2-文件操作-震动重现.mix} | 0 .../41-1-智能小车-前进转弯.mix} | 0 .../41-2-智能小车-圆圈转弯.mix} | 0 .../42-1-智能小车-智能避障.mix} | 0 .../43-1-智能小车-遥控小车.mix} | 0 .../43-2-智能小车-体感遥控.mix} | 0 .../44-1-智能小车-P单巡线.mix} | 0 .../44-2-智能小车-P双巡线.mix} | 0 .../45-1-外接红外-单挥手测速.mix} | 0 .../45-2-外接红外-双挥手测速.mix} | 0 .../46-1-外接红外-双门人数统计.mix} | 0 .../46-2-外接红外-单门人数统计.mix} | 0 .../47-1-外接红外-简单车库门.mix} | 0 .../47-2-外接红外-反馈车库门.mix} | 0 .../48-1-外接红外-转速统计.mix} | 0 .../48-2-外接红外-多速转速统计.mix} | 0 .../balance.mix} | 0 .../parkgate.jpg | Bin .../jSvhE5WW-nY1.mix => MixGo Feiyi/pid.mix} | 0 .../micropython_robot/examples/map.json | 400 +++++----- boards/default/micropython_robot/index.xml | 2 +- .../default/micropython_robot/main.bundle.js | 2 +- .../{main.75aef604.css => main.7e5d3949.css} | 0 .../{Mdsk7jAZBjm.mix => AipImage.mix} | 0 .../examples/{T47hqJc8J_q.mix => AipNlp.mix} | 0 .../{raFYx_jctQl.mix => AipNlp_simnet.mix} | 0 .../examples/{1WIUKv0gjMo.mix => AipOcr.mix} | 0 .../{10cJbNokP4k.mix => AipSpeech.mix} | 0 .../examples/{YVEdC03EKZf.mix => guoqi.mix} | 0 boards/default/python_mixpy/examples/map.json | 208 ++--- .../examples/{vcTp80aR9Fd.mix => sin.mix} | 0 .../02语音合成-1.py | 0 .../03语音识别-1.py | 0 .../03语音识别-2.py | 0 .../04图片识别-1.py | 0 .../04图片识别-2.py | 0 .../05人脸识别-1.py | 0 .../05人脸识别-2.py | 0 .../06文字识别-1.py | 0 .../06文字识别-2.py | 0 .../07拓展发现-1.py | 0 .../07拓展发现-2.py | 0 .../08文本纠错-1.py | 0 .../08文本纠错-2.py | 0 .../09词法分析-1.py | 0 .../09词法分析-2.py | 0 .../02语音合成-1.mix} | 0 .../03语音识别-1.mix} | 0 .../03语音识别-2.mix} | 0 .../04图片识别-1.mix} | 0 .../04图片识别-2.mix} | 0 .../05人脸识别-1.mix} | 0 .../05人脸识别-2.mix} | 0 .../06文字识别-1.mix} | 0 .../06文字识别-2.mix} | 0 .../07拓展发现-1.mix} | 0 .../07拓展发现-2.mix} | 0 .../08文本纠错-1.mix} | 0 .../08文本纠错-2.mix} | 0 .../09词法分析-2.mix} | 0 .../09词法分析.mix} | 0 .../mix/海龟画图01小房子_01小房子.mix} | 0 .../mix/海龟画图02小汽车_01正五边形.mix} | 0 .../mix/海龟画图02小汽车_02小汽车.mix} | 0 .../mix/海龟画图03小橙子_01完整橙子.mix} | 0 .../mix/海龟画图03小橙子_02切开的橙子.mix} | 0 .../mix/海龟画图04盛开的向日葵_01太阳公公.mix} | 0 .../mix/海龟画图04盛开的向日葵_02向日葵.mix} | 0 .../mix/海龟画图05炫彩螺旋线_01螺旋四边形.mix} | 0 .../mix/海龟画图05炫彩螺旋线_02彩色螺旋线.mix} | 0 .../mix/海龟画图06米思齐Logo_01米思齐Logo.mix} | 0 .../mix/海龟画图07闪烁星星_01正五角星.mix} | 0 .../mix/海龟画图07闪烁星星_02正n角星.mix} | 0 .../mix/海龟画图08猜一猜_01猜性别.mix} | 0 .../mix/海龟画图08猜一猜_02猜年龄.mix} | 0 .../mix/海龟画图09大树的年龄_01年轮.mix} | 0 .../mix/海龟画图09大树的年龄_02树年龄.mix} | 0 .../mix/海龟画图10公共汽车_01公共汽车.mix} | 0 .../mix/海龟画图11美丽星空_01星空.mix} | 0 ...龟画图12斐波那契数列_01输出斐波那契额数列.mix} | 0 ...海龟画图12斐波那契数列_02斐波那契额螺旋线.mix} | 0 .../py}/海龟画图01小房子_01小房子.py | 0 .../py}/海龟画图02小汽车_01正五边形.py | 0 .../py}/海龟画图02小汽车_02小汽车.py | 0 .../py}/海龟画图03小橙子_01完整橙子.py | 0 .../py}/海龟画图03小橙子_02切开的橙子.py | 0 .../py}/海龟画图04盛开的向日葵_01太阳公公.py | 0 .../py}/海龟画图04盛开的向日葵_02向日葵.py | 0 .../py}/海龟画图05炫彩螺旋线_01螺旋四边形.py | 0 .../py}/海龟画图05炫彩螺旋线_02彩色螺旋线.py | 0 .../py}/海龟画图06米思齐Logo_01米思齐Logo.py | 0 .../py}/海龟画图07闪烁星星_01正五角星.py | 0 .../py}/海龟画图07闪烁星星_02正n角星.py | 0 .../py}/海龟画图08猜一猜_01猜性别.py | 0 .../py}/海龟画图08猜一猜_02猜年龄.py | 0 .../py}/海龟画图09大树的年龄_01年轮.py | 0 .../py}/海龟画图09大树的年龄_02树年龄.py | 0 .../py}/海龟画图10公共汽车_01公共汽车.py | 0 .../py}/海龟画图11美丽星空_01星空.py | 0 ...海龟画图12斐波那契数列_01输出斐波那契额数列.py | 0 .../海龟画图12斐波那契数列_02斐波那契额螺旋线.py | 0 ...234tQL40cR.mix => 01-1 海归画图初体验.mix} | 0 .../{DvwGAvuOFHd.mix => 01-2 绘制四边形.mix} | 0 ...{k43pthT5wWU.mix => 01-2-2 绘制四边形.mix} | 0 .../{hMFerzbSWiN.mix => 01-3 绘制多边形.mix} | 0 ...{_4RMzteZfID.mix => 01-3-2 绘制多边形.mix} | 0 ...{F0f7ZEGHV8i.mix => 02-1 一笔画五角形.mix} | 0 ...I-8w93ysTf.mix => 02-1-2 一笔画五角形.mix} | 0 .../{fvECqhFoXSi.mix => 02-2 绘制红心.mix} | 0 .../{RWZnm1sFsc7.mix => 02-2-2 绘制红心.mix} | 0 .../{VLLpgULOuZc.mix => 03-1 绘制螺旋线.mix} | 0 ...{l3MR8lJvKZN.mix => 03-1-2 绘制螺旋线.mix} | 0 ...kplULCROb.mix => 03-2 绘制螺旋线-字典.mix} | 0 .../{t3MCnRK9ZOQ.mix => 03-2 绘制螺旋线.mix} | 0 .../{buK6TZhRsxt.mix => 04-0 投票选举.mix} | 0 .../{gV7-k1mst4N.mix => 04-1 投票选举.mix} | 0 ...lKG-.mix => 05-1 凯撒加密(一位密码).mix} | 0 ... 05-2 凯撒加密(ASCII码补充解密验证).mix} | 0 ...1eIR8.mix => 05-2 凯撒加密(ASCII码).mix} | 0 ...lcsp.mix => 05-2 凯撒加密(多位密码).mix} | 0 ...pLJqWnOs.mix => 06-1 人机出数字比大小.mix} | 0 .../{2UPx_l37c3o.mix => 06-1 猜数字游戏.mix} | 0 ...glEJ_2.mix => 06-1-2 人机出数字比大小.mix} | 0 ...3jesFRtS.mix => 06-2-2 猜数字限定次数.mix} | 0 .../{aGhCEJGUXvi.mix => 06-2-3 二分法.mix} | 0 .../{D9fjDKIm2RT.mix => 07-1 鸡兔同笼.mix} | 0 .../{gTynjKBXNni.mix => 07-2 韩信点兵.mix} | 0 .../{qc2eFL5ccia.mix => 08-1 冒泡排序.mix} | 0 .../{65O3f_6kHza.mix => 08-2 选择排序.mix} | 0 .../{WVChOpwoqPg.mix => 08-3 插入排序.mix} | 0 .../{TCLFiQ-gtFU.mix => 08-4 快速排序.mix} | 0 ...9oyrhn5Y4Bu.mix => 09-1 2层汉诺塔算法.mix} | 0 ...5elTun8FtDI.mix => 09-2 3层汉诺塔算法.mix} | 0 ...Tfq4Ff3heO.mix => 09-2 多层汉诺塔算法.mix} | 0 .../{2PYz0Azqahv.mix => 10-1 回溯算法.mix} | 0 .../{n1tw4oV3O0T.mix => 11-1 贪心算法.mix} | 0 ... 2-2-3凯撒加密(ASCII码补充解密验证).mix} | 0 .../default/python_skulpt/examples/map.json | 144 ++-- ...GSPimen4.mix => 1644591921-1-filename.mix} | 0 ...3nSfgAroL3Z.mix => 1644592048-1-first.mix} | 0 ...q2v5XkPCF.mix => 1644835576-57-第一关.mix} | 0 ...YzzrGWKFT.mix => 1644835589-57-第二关.mix} | 0 ...ByvEMiJSy.mix => 1644835604-57-第三关.mix} | 0 ...aQGlMkX9Gi.mix => 1646029690-1-地图11.mix} | 0 ...jzK2XT740F.mix => 1646030057-1-地图11.mix} | 0 .../{ew__SSE6Rrp.mix => 1646031090-1-1-1.mix} | 0 .../{CxmcuHKe3Vb.mix => 1646031217-1-1-1.mix} | 0 .../{ak_ZTizAUuh.mix => 1646031510-1-1-2.mix} | 0 .../{YkAQA4xsDht.mix => 1646031571-1-1-3.mix} | 0 .../{Vjq_hbZjCOe.mix => 1646031798-1-2-1.mix} | 0 ...{mFqFngfKdWc.mix => 1647180522-60-3-1.mix} | 0 ...{ObLZhz3JepZ.mix => 1647180554-60-3-2.mix} | 0 ...{saLaToxrRv7.mix => 1647180673-60-3-3.mix} | 0 ...{vgWxwNTZI88.mix => 1647181126-60-3-3.mix} | 0 ...{EVWJ69CXN-W.mix => 1647181709-60-4-2.mix} | 0 ...{P2pVyYwQlgK.mix => 1647181760-60-4-2.mix} | 0 ...{5mcine76ol7.mix => 1647182686-60-4-1.mix} | 0 ...{Yd6pC72BIxy.mix => 1647182723-60-4-2.mix} | 0 ...{LAVKMZZGxlo.mix => 1647182843-60-4-1.mix} | 0 .../{SbP4-RJU2ns.mix => 1647183296-1-4-1.mix} | 0 .../{nrvLFdf3glb.mix => 1647183320-1-4-2.mix} | 0 .../python_skulpt_mixtoy/examples/map.json | 92 +-- boards/default_src/arduino/package.json | 1 + boards/default_src/arduino_avr/package.json | 1 + boards/default_src/arduino_esp32/package.json | 1 + .../default_src/arduino_esp8266/package.json | 1 + boards/default_src/micropython/package.json | 1 + .../micropython_esp32/package.json | 1 + .../micropython_esp32c2/package.json | 1 + .../micropython_esp32c3/package.json | 1 + .../micropython_esp32s2/package.json | 1 + .../micropython_esp32s3/package.json | 1 + .../micropython_k210_mixgoai/package.json | 1 + .../package.json | 1 + .../package.json | 1 + .../micropython_robot/package.json | 1 + boards/default_src/python/package.json | 1 + boards/default_src/python_mixpy/package.json | 1 + boards/default_src/python_skulpt/package.json | 1 + .../python_skulpt_car/package.json | 1 + .../python_skulpt_mixtoy/package.json | 1 + package.json | 4 +- scripts/build-examples.js | 38 +- 1225 files changed, 2013 insertions(+), 1963 deletions(-) rename boards/default/arduino_avr/examples/{VmCIa9vFu/pMT2pAHsfY.mix => 01-输入输出/01-LED闪烁.mix} (100%) rename boards/default/arduino_avr/examples/{VmCIa9vFu/zUZ4c9ijbl.mix => 01-输入输出/02-开关灯.mix} (100%) rename boards/default/arduino_avr/examples/{VmCIa9vFu/uYS2aVJafq.mix => 01-输入输出/03-调光灯.mix} (100%) rename boards/default/arduino_avr/examples/{VmCIa9vFu/sRTn0RaK28.mix => 01-输入输出/04-多功能按键.mix} (100%) rename boards/default/arduino_avr/examples/{VmCIa9vFu/7E5zww0kJ0.mix => 01-输入输出/05-硬件中断.mix} (100%) rename boards/default/arduino_avr/examples/{VmCIa9vFu/_M4NzmxMKA.mix => 01-输入输出/06-软件中断.mix} (100%) rename boards/default/arduino_avr/examples/{VmCIa9vFu/SbQeizosCF.mix => 01-输入输出/07-声控灯.mix} (100%) rename boards/default/arduino_avr/examples/{VmCIa9vFu/tUHS4KiX4u.mix => 01-输入输出/08-脉冲.mix} (100%) rename boards/default/arduino_avr/examples/{VmCIa9vFu/ChyvF1aKj-.mix => 01-输入输出/09-软件模拟PWM.mix} (100%) rename boards/default/arduino_avr/examples/{VmCIa9vFu/vLT4OExD9t.mix => 01-输入输出/10-ShiftOut数字骰子.mix} (100%) rename boards/default/arduino_avr/examples/{VmCIa9vFu/77LMTUiV3Z.mix => 01-输入输出/11-ShiftOut流水灯.mix} (100%) rename boards/default/arduino_avr/examples/{W7bfVPXbhz/8qdA_km51x.mix => 02-控制/01-初始化.mix} (100%) rename boards/default/arduino_avr/examples/{W7bfVPXbhz/8rn4OF-7L3.mix => 02-控制/02-LED流水灯.mix} (100%) rename boards/default/arduino_avr/examples/{W7bfVPXbhz/dlJKD3xLxr.mix => 02-控制/03-While循环.mix} (100%) rename boards/default/arduino_avr/examples/{W7bfVPXbhz/eG_83pHrwau.mix => 02-控制/04-延时灯.mix} (100%) rename boards/default/arduino_avr/examples/{W7bfVPXbhz/0ZUXb2NJ-iH.mix => 02-控制/05-定时器控制灯亮灭.mix} (100%) rename boards/default/arduino_avr/examples/{W7bfVPXbhz/W9GJM7CkOTs.mix => 02-控制/06-简单定时器.mix} (100%) rename boards/default/arduino_avr/examples/{W7bfVPXbhz/0umD1uEew6g.mix => 02-控制/07-随机亮灯.mix} (100%) rename boards/default/arduino_avr/examples/{W7bfVPXbhz/4rwdgoZ_SIl.mix => 02-控制/08-Scoop多线程.mix} (100%) rename boards/default/arduino_avr/examples/{W7bfVPXbhz/Z0Z_7jp4ar0.mix => 02-控制/09-硬件中断-秒表.mix} (100%) rename boards/default/arduino_avr/examples/{9exFAce4ay4/YfyYgzXzUdc.mix => 03-数学/01-模拟输入和模拟输出.mix} (100%) rename boards/default/arduino_avr/examples/{9exFAce4ay4/9SoJjKPxcd9.mix => 03-数学/02-绘制三角函数曲线.mix} (100%) rename boards/default/arduino_avr/examples/{9exFAce4ay4/Gs_c0omRYb0.mix => 03-数学/03-映射.mix} (100%) rename boards/default/arduino_avr/examples/{9exFAce4ay4/4U0BswEHkaV.mix => 03-数学/04-随机数.mix} (100%) rename boards/default/arduino_avr/examples/{9exFAce4ay4/bgTD9nSjoSc.mix => 03-数学/05-约束运算.mix} (100%) rename boards/default/arduino_avr/examples/{9exFAce4ay4/95AWt09AHI6.mix => 03-数学/06-移位计算.mix} (100%) rename boards/default/arduino_avr/examples/{M-nipJ0aU2i/3YRW0N5vCuz.mix => 04-文本/01-serial_string-1.mix} (100%) rename boards/default/arduino_avr/examples/{M-nipJ0aU2i/_6RAsFOP56o.mix => 04-文本/02-serial_string-2.mix} (100%) rename boards/default/arduino_avr/examples/{M-nipJ0aU2i/KTYxBgMSxn0.mix => 04-文本/03-serial_string-3.mix} (100%) rename boards/default/arduino_avr/examples/{M-nipJ0aU2i/f7x_VUvx21h.mix => 04-文本/04-serial_string-4.mix} (100%) rename boards/default/arduino_avr/examples/{M-nipJ0aU2i/P1JdCLGmX-B.mix => 04-文本/URL和Base64编解码.mix} (100%) rename boards/default/arduino_avr/examples/{iCEBVcyclSR/egilfftJQYl.mix => 05-数组/01-一维数组输出.mix} (100%) rename boards/default/arduino_avr/examples/{iCEBVcyclSR/LIqnlgTdyYm.mix => 05-数组/02-二维数组输出.mix} (100%) rename boards/default/arduino_avr/examples/{tdb7h3NzC8y/7ss9laal9hL.mix => 06-逻辑/01-比较运算符.mix} (100%) rename boards/default/arduino_avr/examples/{tdb7h3NzC8y/mqJSnRZPS5U.mix => 06-逻辑/02-逻辑运算符.mix} (100%) rename boards/default/arduino_avr/examples/{tdb7h3NzC8y/v9IU0WTE--n.mix => 06-逻辑/03-?语句.mix} (100%) rename boards/default/arduino_avr/examples/{n5-2G5wMeIV/q9nUBvNJBGz.mix => 07-串口/01-串口交互.mix} (100%) rename boards/default/arduino_avr/examples/{n5-2G5wMeIV/xcwlZp_4RNm.mix => 07-串口/02-串口控制开关灯.mix} (100%) rename boards/default/arduino_avr/examples/{n5-2G5wMeIV/YGMLkJSiHHL.mix => 07-串口/03-打印ASCII值.mix} (100%) rename boards/default/arduino_avr/examples/{XKStl2DT2st/Hx8us0x7lx5.mix => 08-通信/01-IRremote红外控制灯.mix} (100%) rename boards/default/arduino_avr/examples/{XKStl2DT2st/2_SDuRhZLOk.mix => 08-通信/02-IICMaster_字符.mix} (100%) rename boards/default/arduino_avr/examples/{XKStl2DT2st/iRgvFHOw_8k.mix => 08-通信/02-IICMaster_字符串.mix} (100%) rename boards/default/arduino_avr/examples/{XKStl2DT2st/HJMDCgeUrKk.mix => 08-通信/02-IICMaster_请求数据.mix} (100%) rename boards/default/arduino_avr/examples/{XKStl2DT2st/Hg0Ijn2Vq5s.mix => 08-通信/02-IICSlave_字符.mix} (100%) rename boards/default/arduino_avr/examples/{XKStl2DT2st/WofI2vrF_4N.mix => 08-通信/02-IICSlave_字符串.mix} (100%) rename boards/default/arduino_avr/examples/{XKStl2DT2st/Kx1z4ByiMdV.mix => 08-通信/03-SPI_Master.mix} (100%) rename boards/default/arduino_avr/examples/{XKStl2DT2st/zPDgwDsF135.mix => 08-通信/03-SPI_Master_1.mix} (100%) rename boards/default/arduino_avr/examples/{XKStl2DT2st/zsYpiEg9GJp.mix => 08-通信/03-SPI_Master_2.mix} (100%) rename boards/default/arduino_avr/examples/{XKStl2DT2st/IKGeHdkTMiZ.mix => 08-通信/03-SPI_Master_字符串.mix} (100%) rename boards/default/arduino_avr/examples/{XKStl2DT2st/DjEv3KlTXeF.mix => 08-通信/03-SPI_Slave.mix} (100%) rename boards/default/arduino_avr/examples/{XKStl2DT2st/CC4nii5o-di.mix => 08-通信/03-SPI_Slave_1.mix} (100%) rename boards/default/arduino_avr/examples/{XKStl2DT2st/jFc3eJUyjij.mix => 08-通信/03-SPI_Slave_2.mix} (100%) rename boards/default/arduino_avr/examples/{XKStl2DT2st/Upe5bWmLmMq.mix => 08-通信/03-SPI_Slave_字符串.mix} (100%) rename boards/default/arduino_avr/examples/{XKStl2DT2st/6LHcNGYkHoK.mix => 08-通信/04-RFID_写卡&读卡.mix} (100%) rename boards/default/arduino_avr/examples/{XKStl2DT2st/V7eTxbD2wmL.mix => 08-通信/04-RFID_写卡.mix} (100%) rename boards/default/arduino_avr/examples/{XKStl2DT2st/KSusAOZ-uqv.mix => 08-通信/04-RFID_读卡.mix} (100%) rename boards/default/arduino_avr/examples/{XKStl2DT2st/-jC-ICp3gwt.mix => 08-通信/04-RFID_读取RFID卡号.mix} (100%) rename boards/default/arduino_avr/examples/{U7GeddKNqYn/Fvf71QL6WS5.mix => 09-存储/02-EEPROM.mix} (100%) rename boards/default/arduino_avr/examples/{U7GeddKNqYn/kmu74p0zI1i.mix => 09-存储/02-EEPROM_写入和读取字符数组.mix} (100%) rename boards/default/arduino_avr/examples/{U7GeddKNqYn/7zXgHRWQ6D_.mix => 09-存储/02-EEPROM_写入和读取字节数组.mix} (100%) rename boards/default/arduino_avr/examples/{U7GeddKNqYn/O2VC1CXoNkO.mix => 09-存储/02-EEPROM_写入和读取小数.mix} (100%) rename boards/default/arduino_avr/examples/{U7GeddKNqYn/WhuyVSZmhVD.mix => 09-存储/02-EEPROM_写入和读取长整数.mix} (100%) rename boards/default/arduino_avr/examples/{KAu0EuYckzj/Xwfs32jT1sK.mix => 10-传感器/01-超声波测距.mix} (100%) rename boards/default/arduino_avr/examples/{KAu0EuYckzj/OoW6xX6hKKd.mix => 10-传感器/02-LCD1602显示温湿度.mix} (100%) rename boards/default/arduino_avr/examples/{KAu0EuYckzj/RUu2p7XY821.mix => 10-传感器/04-DS18B20温度传感器.mix} (100%) rename boards/default/arduino_avr/examples/{KAu0EuYckzj/to1VV_62lsv.mix => 10-传感器/05-MLX90614测温.mix} (100%) rename boards/default/arduino_avr/examples/{KAu0EuYckzj/588KT_itA4J.mix => 10-传感器/06-TCS34725颜色识别传感器.mix} (100%) rename boards/default/arduino_avr/examples/{KAu0EuYckzj/m-t_swQIBAT.mix => 10-传感器/07-TCS230颜色识别传感器.mix} (100%) rename boards/default/arduino_avr/examples/{KAu0EuYckzj/x-17bPGlHlk.mix => 10-传感器/11-旋转编码器读取数据.mix} (100%) rename boards/default/arduino_avr/examples/{KAu0EuYckzj/tn819yT0Eab.mix => 10-传感器/12-DS1302液晶时钟.mix} (100%) rename boards/default/arduino_avr/examples/{KAu0EuYckzj/AAn6BQVImia.mix => 10-传感器/12-DS1302输出日期.mix} (100%) rename boards/default/arduino_avr/examples/{KAu0EuYckzj/a_x79oPPmMm.mix => 10-传感器/13-矩阵键盘密码灯.mix} (100%) rename boards/default/arduino_avr/examples/{KAu0EuYckzj/nAA-8wOZWx7.mix => 10-传感器/13-矩阵键盘打印按键值.mix} (100%) rename boards/default/arduino_avr/examples/{KAu0EuYckzj/xGGu--tGH7x.mix => 10-传感器/13-矩阵键盘简易密码锁.mix} (100%) rename boards/default/arduino_avr/examples/{KAu0EuYckzj/PL-KpP8pTTA.mix => 10-传感器/15-MPU6050打印数值.mix} (100%) rename boards/default/arduino_avr/examples/{KAu0EuYckzj/UrnokGjSyQ6.mix => 10-传感器/16-BME280打印温度值.mix} (100%) rename boards/default/arduino_avr/examples/{KAu0EuYckzj/tTHeCIAHuGE.mix => 10-传感器/16-BME280气象站.mix} (100%) rename boards/default/arduino_avr/examples/{KAu0EuYckzj/fugAoyTvQRz.mix => 10-传感器/17-PS2手柄_打印摇杆值.mix} (100%) rename boards/default/arduino_avr/examples/{KAu0EuYckzj/oCJ5rUm6ZZZ.mix => 10-传感器/B01-声控舵机.mix} (100%) rename boards/default/arduino_avr/examples/{d0xJgjVqzEr/3EoT50pAjWE.mix => 11-执行器/01-门铃.mix} (100%) rename boards/default/arduino_avr/examples/{d0xJgjVqzEr/-FoDI8qh7XI.mix => 11-执行器/02-蜂鸣器播放简单声音.mix} (100%) rename boards/default/arduino_avr/examples/{d0xJgjVqzEr/txGnArLFqSf.mix => 11-执行器/03-按键钢琴.mix} (100%) rename boards/default/arduino_avr/examples/{d0xJgjVqzEr/O9-fa_XFk75.mix => 11-执行器/04-两只老虎.mix} (100%) rename boards/default/arduino_avr/examples/{d0xJgjVqzEr/QGFM74k2idZ.mix => 11-执行器/05-Alarm.mix} (100%) rename boards/default/arduino_avr/examples/{d0xJgjVqzEr/h2Fg3GrBKhU.mix => 11-执行器/06-WS2812.mix} (100%) rename boards/default/arduino_avr/examples/{d0xJgjVqzEr/tj6KTWMUrC7.mix => 11-执行器/07-mini MP3_播放音乐.mix} (100%) rename boards/default/arduino_avr/examples/{d0xJgjVqzEr/xSIqI48njEw.mix => 11-执行器/09-七彩流水灯.mix} (100%) rename boards/default/arduino_avr/examples/{O6PPIPjRtY9/V4jtrDKO7Qy.mix => 12-显示器/01-TM1650_显示变化的数字.mix} (100%) rename boards/default/arduino_avr/examples/{O6PPIPjRtY9/Cb778mrOBEM.mix => 12-显示器/03-LCD1602_显示Hello Mixly.mix} (100%) rename boards/default/arduino_avr/examples/{O6PPIPjRtY9/UbDalhz26o4.mix => 12-显示器/04-OLED_多页切换.mix} (100%) rename boards/default/arduino_avr/examples/{O6PPIPjRtY9/h2d_5S5t1L2.mix => 12-显示器/04-OLED_显示Mixly Logo.mix} (100%) rename boards/default/arduino_avr/examples/{O6PPIPjRtY9/EjaMDt0whe8.mix => 12-显示器/04-OLED_显示奥运五环图案.mix} (100%) rename boards/default/arduino_avr/examples/{O6PPIPjRtY9/BaNc_vAvy-3.mix => 12-显示器/04-OLED_显示文本.mix} (100%) rename boards/default/arduino_avr/examples/{O6PPIPjRtY9/23Z2-qhqL1x.mix => 12-显示器/04-OLED_显示汉字(取模).mix} (100%) rename boards/default/arduino_avr/examples/{O6PPIPjRtY9/BzN9qfkyefI.mix => 12-显示器/04-OLED_显示汉字.mix} (100%) rename boards/default/arduino_avr/examples/{O6PPIPjRtY9/Tg6HtM3wFzO.mix => 12-显示器/04-OLED_显示表情图片.mix} (100%) rename boards/default/arduino_avr/examples/{O6PPIPjRtY9/YEPjq6XYYSU.mix => 12-显示器/04-OLED_显示表情图片1.mix} (100%) rename boards/default/arduino_avr/examples/{O6PPIPjRtY9/2f_GDf83N_z.mix => 12-显示器/05-NOKIA5110_显示汉字(取模).mix} (100%) rename boards/default/arduino_avr/examples/{O6PPIPjRtY9/YXu_ysGFBA9.mix => 12-显示器/06-LCD12864 8080_显示汉字(取模).mix} (100%) rename boards/default/arduino_avr/examples/{O6PPIPjRtY9/lfR78n3Xlxd.mix => 12-显示器/06-LCD12864 SPI_显示汉字(取模).mix} (100%) rename boards/default/arduino_avr/examples/{O6PPIPjRtY9/UknLidU3S1j.mix => 12-显示器/07-MAX7219_显示笑脸和哭脸.mix} (100%) rename boards/default/arduino_avr/examples/{O6PPIPjRtY9/Z_FWnzp5VOQ.mix => 12-显示器/07-MAX7219_水平方向四块级联滚动显示Mixly.mix} (100%) rename boards/default/arduino_avr/examples/{bjb4mxSZcFZ/-PJ2XH0qz-r.mix => 15-函数/01-函数法SOS.mix} (100%) rename boards/default/arduino_avr/examples/{bjb4mxSZcFZ/bE1ner5NHqs.mix => 15-函数/02-含参数无返回值呼吸灯.mix} (100%) rename boards/default/arduino_avr/examples/{hQUiFgtRPaB/upV-7XFNmsa.mix => 16-自定义模块/(在2.0下编译报错)01-Factory.mix} (100%) rename boards/default/arduino_avr/examples/{kyUNPkQOBM7/9uFWiRbsVGD/KVpVqz8ndQr.mix => Mixly2.0_simple_tutorial/01_input_and_Output/01_Light_up_the_on_board_indicator.mix} (100%) rename boards/default/arduino_avr/examples/{kyUNPkQOBM7/9uFWiRbsVGD/7K1XcVJmg3R.mix => Mixly2.0_simple_tutorial/01_input_and_Output/02_On_board_indicator_flashes.mix} (100%) rename boards/default/arduino_avr/examples/{kyUNPkQOBM7/9uFWiRbsVGD/2-4OBHyy14O.mix => Mixly2.0_simple_tutorial/01_input_and_Output/03_Digital_Inputs.mix} (100%) rename boards/default/arduino_avr/examples/{kyUNPkQOBM7/9uFWiRbsVGD/gNxGGQRjjQd.mix => Mixly2.0_simple_tutorial/01_input_and_Output/04_Pin_output_state_switching.mix} (100%) rename boards/default/arduino_avr/examples/{kyUNPkQOBM7/9uFWiRbsVGD/kAI9JzXDEYN.mix => Mixly2.0_simple_tutorial/01_input_and_Output/05_PWMAnalog_Output.mix} (100%) rename boards/default/arduino_avr/examples/{kyUNPkQOBM7/9uFWiRbsVGD/XgXEfST6-fl.mix => Mixly2.0_simple_tutorial/01_input_and_Output/06_Analog_Inputs.mix} (100%) rename boards/default/arduino_avr/examples/{kyUNPkQOBM7/9uFWiRbsVGD/UjCwhwMkYsC.mix => Mixly2.0_simple_tutorial/01_input_and_Output/07_Software_analog_output.mix} (100%) rename boards/default/arduino_avr/examples/{kyUNPkQOBM7/9uFWiRbsVGD/qhmJJQDZuli.mix => Mixly2.0_simple_tutorial/01_input_and_Output/08_Multi_functional_keys.mix} (100%) rename boards/default/arduino_avr/examples/{kyUNPkQOBM7/9uFWiRbsVGD/zbLpnvbBxqQ.mix => Mixly2.0_simple_tutorial/01_input_and_Output/09_Hardware_Interrupts.mix} (100%) rename boards/default/arduino_avr/examples/{kyUNPkQOBM7/9uFWiRbsVGD/hyQMpND2Omj.mix => Mixly2.0_simple_tutorial/01_input_and_Output/10_Software_Interruptions.mix} (100%) rename boards/default/arduino_avr/examples/{kyUNPkQOBM7/9uFWiRbsVGD/STHibFzQH-D.mix => Mixly2.0_simple_tutorial/01_input_and_Output/11_Pulse_measurement.mix} (100%) rename boards/default/arduino_avr/examples/{kyUNPkQOBM7/9uFWiRbsVGD/YjhOYmHq1LE.mix => Mixly2.0_simple_tutorial/01_input_and_Output/12_Pin_up_mode.mix} (100%) rename boards/default/arduino_avr/examples/{kyUNPkQOBM7/9uFWiRbsVGD/9xGMFoHnKqr.mix => Mixly2.0_simple_tutorial/01_input_and_Output/13_Serial_Data_Output.mix} (100%) rename boards/default/arduino_avr/examples/{kyUNPkQOBM7/4mSC9fi3yUP/J1BCdtb9iLA.mix => Mixly2.0_simple_tutorial/02_Control/01_Stop_the_program.mix} (100%) rename boards/default/arduino_avr/examples/{kyUNPkQOBM7/4mSC9fi3yUP/8Mei53U0v5B.mix => Mixly2.0_simple_tutorial/02_Control/02_Difference_between_while_and_do_while.mix} (100%) rename boards/default/arduino_avr/examples/{kyUNPkQOBM7/4mSC9fi3yUP/0VXVBz6MIhK.mix => Mixly2.0_simple_tutorial/02_Control/03_if_elseConditional_Judgment.mix} (100%) rename boards/default/arduino_avr/examples/{kyUNPkQOBM7/4mSC9fi3yUP/gGao0z9V369.mix => Mixly2.0_simple_tutorial/02_Control/04_switch_Multi_branching_condition_control.mix} (100%) rename boards/default/arduino_avr/examples/{kyUNPkQOBM7/4mSC9fi3yUP/uJrNyaR92Dv.mix => Mixly2.0_simple_tutorial/02_Control/05_for_Circular_breathing_light.mix} (100%) rename boards/default/arduino_avr/examples/{kyUNPkQOBM7/4mSC9fi3yUP/YV0F8tffYfm.mix => Mixly2.0_simple_tutorial/02_Control/06_Jump_out_of_the_loop.mix} (100%) rename boards/default/arduino_avr/examples/{kyUNPkQOBM7/4mSC9fi3yUP/rUTYwXWOHLy.mix => Mixly2.0_simple_tutorial/02_Control/07_System_runtime.mix} (100%) rename boards/default/arduino_avr/examples/{kyUNPkQOBM7/4mSC9fi3yUP/LsJO6HHngcM.mix => Mixly2.0_simple_tutorial/02_Control/08_Hardware_Timer.mix} (100%) rename boards/default/arduino_avr/examples/{kyUNPkQOBM7/4mSC9fi3yUP/VZ0_o4Cwo_7.mix => Mixly2.0_simple_tutorial/02_Control/09_Simple_Timer.mix} (100%) rename boards/default/arduino_avr/examples/{kyUNPkQOBM7/4mSC9fi3yUP/PtQFj6oWt4g.mix => Mixly2.0_simple_tutorial/02_Control/10_Register_delay_function.mix} (100%) rename boards/default/arduino_avr/examples/{kyUNPkQOBM7/4mSC9fi3yUP/O6Wi8Z0-DxD.mix => Mixly2.0_simple_tutorial/02_Control/11_SCoop_Multi-threaded.mix} (100%) rename boards/default/arduino_avr/examples/{kyUNPkQOBM7/WsqDZULt-kV/vyr6hojn8Ht.mix => Mixly2.0_simple_tutorial/03_Mathematics/01_Algebraic_operations.mix} (100%) rename boards/default/arduino_avr/examples/{kyUNPkQOBM7/WsqDZULt-kV/AhuaIjCNrtB.mix => Mixly2.0_simple_tutorial/03_Mathematics/02_Bit_Operations.mix} (100%) rename boards/default/arduino_avr/examples/{kyUNPkQOBM7/WsqDZULt-kV/TMYCacGk8bC.mix => Mixly2.0_simple_tutorial/03_Mathematics/03_Trigonometric_functions.mix} (100%) rename boards/default/arduino_avr/examples/{kyUNPkQOBM7/WsqDZULt-kV/RKV6hRgu6oZ.mix => Mixly2.0_simple_tutorial/03_Mathematics/04_Variable_self-adding.mix} (100%) rename boards/default/arduino_avr/examples/{kyUNPkQOBM7/WsqDZULt-kV/PF-uEF3paA3.mix => Mixly2.0_simple_tutorial/03_Mathematics/05_Common_mathematical_operations(Rounding_etc.).mix} (100%) rename boards/default/arduino_avr/examples/{kyUNPkQOBM7/WsqDZULt-kV/c2FMV3TffQo.mix => Mixly2.0_simple_tutorial/03_Mathematics/06_Get_the_number_of_bytes_occupied_by_different_types_of_data.mix} (100%) rename boards/default/arduino_avr/examples/{kyUNPkQOBM7/WsqDZULt-kV/G5A5RbLsSIo.mix => Mixly2.0_simple_tutorial/03_Mathematics/07_Maximum_and_minimum_values.mix} (100%) rename boards/default/arduino_avr/examples/{kyUNPkQOBM7/WsqDZULt-kV/AQsKnbBnkv5.mix => Mixly2.0_simple_tutorial/03_Mathematics/08_Get_random_number.mix} (100%) rename boards/default/arduino_avr/examples/{kyUNPkQOBM7/WsqDZULt-kV/Km9Q8uGcvOu.mix => Mixly2.0_simple_tutorial/03_Mathematics/09_Mathematical_constraints.mix} (100%) rename boards/default/arduino_avr/examples/{kyUNPkQOBM7/WsqDZULt-kV/WVKtgBltFLC.mix => Mixly2.0_simple_tutorial/03_Mathematics/10_Mathematical_mapping.mix} (100%) rename boards/default/arduino_avr/examples/{kyUNPkQOBM7/AEMprih0sQ0/mQxoYfW5UXo.mix => Mixly2.0_simple_tutorial/04_Logic/01_Logical_relationships.mix} (100%) rename boards/default/arduino_avr/examples/{kyUNPkQOBM7/AEMprih0sQ0/I2gngWKO4SF.mix => Mixly2.0_simple_tutorial/04_Logic/02_Logical_operations.mix} (100%) rename boards/default/arduino_avr/examples/{kyUNPkQOBM7/AEMprih0sQ0/5WU6MRDvIrQ.mix => Mixly2.0_simple_tutorial/04_Logic/03_Logical_non-operations.mix} (100%) rename boards/default/arduino_avr/examples/{kyUNPkQOBM7/AEMprih0sQ0/74-At-xbJHL.mix => Mixly2.0_simple_tutorial/04_Logic/04_Conditional_return_value.mix} (100%) rename boards/default/arduino_avr/examples/{kyUNPkQOBM7/2WIPqJl5DxI/BleZ2ejL-Tq.mix => Mixly2.0_simple_tutorial/05_Text/01_String_Splicing.mix} (100%) rename boards/default/arduino_avr/examples/{kyUNPkQOBM7/2WIPqJl5DxI/YYc96lgYgLc.mix => Mixly2.0_simple_tutorial/05_Text/02_String_to_integer_or_decimal.mix} (100%) rename boards/default/arduino_avr/examples/{kyUNPkQOBM7/2WIPqJl5DxI/n450KNSxy6u.mix => Mixly2.0_simple_tutorial/05_Text/03_String_Index.mix} (100%) rename boards/default/arduino_avr/examples/{kyUNPkQOBM7/2WIPqJl5DxI/nUFL_McLt60.mix => Mixly2.0_simple_tutorial/05_Text/04_Intercepting_strings.mix} (100%) rename boards/default/arduino_avr/examples/{kyUNPkQOBM7/2WIPqJl5DxI/ZtdmaAiY_mQ.mix => Mixly2.0_simple_tutorial/05_Text/05_String_conversion_and_replacement.mix} (100%) rename boards/default/arduino_avr/examples/{kyUNPkQOBM7/2WIPqJl5DxI/4MD4-mvfY2J.mix => Mixly2.0_simple_tutorial/05_Text/06_String_First_Determination_and_Data_Type_Conversion.mix} (100%) rename boards/default/arduino_avr/examples/{kyUNPkQOBM7/2WIPqJl5DxI/WdKR0gqEH-N.mix => Mixly2.0_simple_tutorial/05_Text/07_Character_to_ascii_conversion.mix} (100%) rename boards/default/arduino_avr/examples/{kyUNPkQOBM7/2WIPqJl5DxI/C8Db9d1xjAn.mix => Mixly2.0_simple_tutorial/05_Text/08_Incremental_conversion.mix} (100%) rename boards/default/arduino_avr/examples/{kyUNPkQOBM7/2WIPqJl5DxI/YEBO4r5Of0r.mix => Mixly2.0_simple_tutorial/05_Text/09_String_length_and_getting_the_specified_position_character.mix} (100%) rename boards/default/arduino_avr/examples/{kyUNPkQOBM7/2WIPqJl5DxI/6q_eN9MiUXW.mix => Mixly2.0_simple_tutorial/05_Text/10_String_relations _and_comparisons.mix} (100%) rename boards/default/arduino_avr/examples/{kyUNPkQOBM7/11dZjM8XY_z/4rZjfa8hT1Q.mix => Mixly2.0_simple_tutorial/06_Arrays/01_One-dimensional_array_declaration.mix} (100%) rename boards/default/arduino_avr/examples/{kyUNPkQOBM7/11dZjM8XY_z/LPC4Ossk_Xu.mix => Mixly2.0_simple_tutorial/06_Arrays/02_Array_reading_and_writing.mix} (100%) rename boards/default/arduino_avr/examples/{kyUNPkQOBM7/11dZjM8XY_z/CERTgzaOD8O.mix => Mixly2.0_simple_tutorial/06_Arrays/03_Array_circular_shift.mix} (100%) rename boards/default/arduino_avr/examples/{kyUNPkQOBM7/11dZjM8XY_z/K-v4JlzpsZ5.mix => Mixly2.0_simple_tutorial/06_Arrays/04_Two-dimensional_array_declaration.mix} (100%) rename boards/default/arduino_avr/examples/{kyUNPkQOBM7/11dZjM8XY_z/1lQrty29k2g.mix => Mixly2.0_simple_tutorial/06_Arrays/05_Two-dimensional_array_reading_and_writing.mix} (100%) rename boards/default/arduino_avr/examples/{kyUNPkQOBM7/inypGWSdWPH/9Y68GjDi_zI.mix => Mixly2.0_simple_tutorial/07_Variables/01_Difference_between_variable_declaration_and_use.mix} (100%) rename boards/default/arduino_avr/examples/{kyUNPkQOBM7/6EhGG8v_DwF/_HTmqkWOMZD.mix => Mixly2.0_simple_tutorial/08_Function/01_no-return-value-no-parameter_function.mix} (100%) rename boards/default/arduino_avr/examples/{kyUNPkQOBM7/6EhGG8v_DwF/aQwwUs06c7L.mix => Mixly2.0_simple_tutorial/08_Function/02_no-return-value_function_with_parameters.mix} (100%) rename boards/default/arduino_avr/examples/{kyUNPkQOBM7/6EhGG8v_DwF/o3GuXJTiGMg.mix => Mixly2.0_simple_tutorial/08_Function/03_Function_declaration_with_return_value_and_parameters.mix} (100%) rename boards/default/arduino_avr/examples/{kyUNPkQOBM7/6EhGG8v_DwF/8vrAJInTIRZ.mix => Mixly2.0_simple_tutorial/08_Function/04_Multiple_return_value_function_declaration_with_parameters.mix} (100%) rename boards/default/arduino_avr/examples/{kyUNPkQOBM7/kU15criu7CK/D4L-0Yu37uz.mix => Mixly2.0_simple_tutorial/09_Serial_port/01_Serial_printout.mix} (100%) rename boards/default/arduino_avr/examples/{kyUNPkQOBM7/kU15criu7CK/KZFlrooind7.mix => Mixly2.0_simple_tutorial/09_Serial_port/02_Serial_input_1.mix} (100%) rename boards/default/arduino_avr/examples/{kyUNPkQOBM7/kU15criu7CK/Wc1wzso2KCT.mix => Mixly2.0_simple_tutorial/09_Serial_port/02_Serial_input_2.mix} (100%) rename boards/default/arduino_avr/examples/{kyUNPkQOBM7/kU15criu7CK/mBC0KBZUpCi.mix => Mixly2.0_simple_tutorial/09_Serial_port/02_Serial_input_3.mix} (100%) rename boards/default/arduino_avr/examples/{kyUNPkQOBM7/kU15criu7CK/9JCRtUCBuN8.mix => Mixly2.0_simple_tutorial/09_Serial_port/02_Serial_input_4.mix} (100%) rename boards/default/arduino_avr/examples/{kyUNPkQOBM7/kU15criu7CK/mVVInJLot_g.mix => Mixly2.0_simple_tutorial/09_Serial_port/03_Serial_port_send_wait.mix} (100%) rename boards/default/arduino_avr/examples/{kyUNPkQOBM7/kU15criu7CK/XscElcU5MHM.mix => Mixly2.0_simple_tutorial/09_Serial_port/04_Serial_Interrupt.mix} (100%) rename boards/default/arduino_avr/examples/{kyUNPkQOBM7/kU15criu7CK/oh5xen7XwZD.mix => Mixly2.0_simple_tutorial/09_Serial_port/05_Use_of_soft_serial_port.mix} (100%) rename boards/default/arduino_avr/examples/{kyUNPkQOBM7/9VLH0RUfLsM/AQ_2_hczu2G.mix => Mixly2.0_simple_tutorial/10_Sensors/01_Ultrasonic_distance_measurement.mix} (100%) rename boards/default/arduino_avr/examples/{kyUNPkQOBM7/9VLH0RUfLsM/9nos11M8lTT.mix => Mixly2.0_simple_tutorial/10_Sensors/02_Get_DHT11_temperature_and_humidity.mix} (100%) rename boards/default/arduino_avr/examples/{kyUNPkQOBM7/9VLH0RUfLsM/-WSPaBJ4MH8.mix => Mixly2.0_simple_tutorial/10_Sensors/03_get_LM35_temperature.mix} (100%) rename boards/default/arduino_avr/examples/{kyUNPkQOBM7/9VLH0RUfLsM/eU8HiPsi2br.mix => Mixly2.0_simple_tutorial/10_Sensors/04_Get_DS18B20_temperature.mix} (100%) rename boards/default/arduino_avr/examples/{kyUNPkQOBM7/9VLH0RUfLsM/dk2L9-VfsqG.mix => Mixly2.0_simple_tutorial/10_Sensors/05_Get_BME280_parameters.mix} (100%) rename boards/default/arduino_avr/examples/{kyUNPkQOBM7/9VLH0RUfLsM/xSkPXEtQHud.mix => Mixly2.0_simple_tutorial/10_Sensors/06_get_SHT20_temperature_and_humidity.mix} (100%) rename boards/default/arduino_avr/examples/{kyUNPkQOBM7/9VLH0RUfLsM/yb2ecCne2Aw.mix => Mixly2.0_simple_tutorial/10_Sensors/07_BMLX90614_Infrared_temperature_measurement.mix} (100%) rename boards/default/arduino_avr/examples/{kyUNPkQOBM7/9VLH0RUfLsM/pbfd8OYvTxQ.mix => Mixly2.0_simple_tutorial/10_Sensors/08_tcs34725_color_extraction.mix} (100%) rename boards/default/arduino_avr/examples/{kyUNPkQOBM7/9VLH0RUfLsM/nUAQyLzPiX-.mix => Mixly2.0_simple_tutorial/10_Sensors/09_tcs230_color_extraction.mix} (100%) rename boards/default/arduino_avr/examples/{kyUNPkQOBM7/9VLH0RUfLsM/jZnpeeeJTl3.mix => Mixly2.0_simple_tutorial/10_Sensors/10_MPU6050_Gyroscope.mix} (100%) rename boards/default/arduino_avr/examples/{kyUNPkQOBM7/9VLH0RUfLsM/3lIpx13r7Si.mix => Mixly2.0_simple_tutorial/10_Sensors/11_MPU9250_acceleration_sensor.mix} (100%) rename boards/default/arduino_avr/examples/{kyUNPkQOBM7/IUagh-JkHHT/dewnQW-bD7F.mix => Mixly2.0_simple_tutorial/13_Communication/01_Infrared_data_reception.mix} (100%) rename boards/default/arduino_avr/examples/{kyUNPkQOBM7/IUagh-JkHHT/2doyYS6DA3f.mix => Mixly2.0_simple_tutorial/13_Communication/02_Infrared_data_transmission.mix} (100%) rename boards/default/arduino_avr/examples/{kyUNPkQOBM7/IUagh-JkHHT/S5_VC47ltHo.mix => Mixly2.0_simple_tutorial/13_Communication/03_Infrared_data_simulation_transceiver.mix} (100%) rename boards/default/arduino_avr/examples/{kyUNPkQOBM7/Npd91izpaxd/ennCdfZgqie.mix => Mixly2.0_simple_tutorial/14_Storage/01_SD_card_read_test.mix} (100%) rename boards/default/arduino_avr/examples/{kyUNPkQOBM7/Npd91izpaxd/-x8aqCLjqEl.mix => Mixly2.0_simple_tutorial/14_Storage/02_EEPROM_power_down_storage.mix} (100%) rename boards/default/arduino_avr/examples/{sG_W03pyJzQ/zyLXcW3DAPd/9IVpTZJAS92.mix => Mixly2.0简明教程/01-输入输出/01-点亮板载指示灯13.mix} (100%) rename boards/default/arduino_avr/examples/{sG_W03pyJzQ/zyLXcW3DAPd/JRI99t2oYVC.mix => Mixly2.0简明教程/01-输入输出/02-板载指示灯13闪烁.mix} (100%) rename boards/default/arduino_avr/examples/{sG_W03pyJzQ/zyLXcW3DAPd/4rJpEo3QxA_.mix => Mixly2.0简明教程/01-输入输出/03-数字输入.mix} (100%) rename boards/default/arduino_avr/examples/{sG_W03pyJzQ/zyLXcW3DAPd/EtyAP1gR35L.mix => Mixly2.0简明教程/01-输入输出/04-管脚输出状态切换.mix} (100%) rename boards/default/arduino_avr/examples/{sG_W03pyJzQ/zyLXcW3DAPd/f1W7Qy1G9Uw.mix => Mixly2.0简明教程/01-输入输出/05-PWM模拟输出.mix} (100%) rename boards/default/arduino_avr/examples/{sG_W03pyJzQ/zyLXcW3DAPd/eDGovRRpRq9.mix => Mixly2.0简明教程/01-输入输出/06-模拟输入.mix} (100%) rename boards/default/arduino_avr/examples/{sG_W03pyJzQ/zyLXcW3DAPd/dj4vOUhcI98.mix => Mixly2.0简明教程/01-输入输出/07-软件模拟输出.mix} (100%) rename boards/default/arduino_avr/examples/{sG_W03pyJzQ/zyLXcW3DAPd/PfqkE7I5dxw.mix => Mixly2.0简明教程/01-输入输出/08-多功能按键.mix} (100%) rename boards/default/arduino_avr/examples/{sG_W03pyJzQ/zyLXcW3DAPd/-VJ15cIzAzS.mix => Mixly2.0简明教程/01-输入输出/09-硬件中断.mix} (100%) rename boards/default/arduino_avr/examples/{sG_W03pyJzQ/zyLXcW3DAPd/C6tRMhMqpZm.mix => Mixly2.0简明教程/01-输入输出/10-软件中断.mix} (100%) rename boards/default/arduino_avr/examples/{sG_W03pyJzQ/zyLXcW3DAPd/76C-zKdAMjb.mix => Mixly2.0简明教程/01-输入输出/11-脉冲测量.mix} (100%) rename boards/default/arduino_avr/examples/{sG_W03pyJzQ/zyLXcW3DAPd/5DXwj6xnxlb.mix => Mixly2.0简明教程/01-输入输出/12-管脚上拉模式.mix} (100%) rename boards/default/arduino_avr/examples/{sG_W03pyJzQ/zyLXcW3DAPd/0p7-ZmwX0z6.mix => Mixly2.0简明教程/01-输入输出/13-串行数据输出.mix} (100%) rename boards/default/arduino_avr/examples/{sG_W03pyJzQ/9M4j6Kk0ifi/L9-40juTN8a.mix => Mixly2.0简明教程/02-控制/01-停止程序.mix} (100%) rename boards/default/arduino_avr/examples/{sG_W03pyJzQ/9M4j6Kk0ifi/SY0lqWStx4F.mix => Mixly2.0简明教程/02-控制/02-while与do while区别.mix} (100%) rename boards/default/arduino_avr/examples/{sG_W03pyJzQ/9M4j6Kk0ifi/4htlbr2cyp6.mix => Mixly2.0简明教程/02-控制/03-if else条件判断.mix} (100%) rename boards/default/arduino_avr/examples/{sG_W03pyJzQ/9M4j6Kk0ifi/OsJyKlMgnB_.mix => Mixly2.0简明教程/02-控制/04-switch多分枝条件控制.mix} (100%) rename boards/default/arduino_avr/examples/{sG_W03pyJzQ/9M4j6Kk0ifi/IghpMVqTIh-.mix => Mixly2.0简明教程/02-控制/05-for循环呼吸灯.mix} (100%) rename boards/default/arduino_avr/examples/{sG_W03pyJzQ/9M4j6Kk0ifi/_cAjY5kKXkl.mix => Mixly2.0简明教程/02-控制/06-跳出循环.mix} (100%) rename boards/default/arduino_avr/examples/{sG_W03pyJzQ/9M4j6Kk0ifi/Iih5hy7w834.mix => Mixly2.0简明教程/02-控制/07-系统运行时间.mix} (100%) rename boards/default/arduino_avr/examples/{sG_W03pyJzQ/9M4j6Kk0ifi/QghyQu4TbHL.mix => Mixly2.0简明教程/02-控制/08-硬件定时器.mix} (100%) rename boards/default/arduino_avr/examples/{sG_W03pyJzQ/9M4j6Kk0ifi/w1W0noPqHKB.mix => Mixly2.0简明教程/02-控制/09-简单定时器.mix} (100%) rename boards/default/arduino_avr/examples/{sG_W03pyJzQ/9M4j6Kk0ifi/3irgJ1X_LDq.mix => Mixly2.0简明教程/02-控制/10-注册延时函数.mix} (100%) rename boards/default/arduino_avr/examples/{sG_W03pyJzQ/9M4j6Kk0ifi/jtRBDN-KIBk.mix => Mixly2.0简明教程/02-控制/11-SCoop多线程.mix} (100%) rename boards/default/arduino_avr/examples/{sG_W03pyJzQ/EQRznV_EdoC/94QvwqAykHH.mix => Mixly2.0简明教程/03-数学/01-代数运算.mix} (100%) rename boards/default/arduino_avr/examples/{sG_W03pyJzQ/EQRznV_EdoC/1QqTou5XTIb.mix => Mixly2.0简明教程/03-数学/02-位运算.mix} (100%) rename boards/default/arduino_avr/examples/{sG_W03pyJzQ/EQRznV_EdoC/41Ji3K1emnD.mix => Mixly2.0简明教程/03-数学/03-三角函数.mix} (100%) rename boards/default/arduino_avr/examples/{sG_W03pyJzQ/EQRznV_EdoC/dvV0fozR2qy.mix => Mixly2.0简明教程/03-数学/04-变量自加.mix} (100%) rename boards/default/arduino_avr/examples/{sG_W03pyJzQ/EQRznV_EdoC/pKdG_01YXCR.mix => Mixly2.0简明教程/03-数学/05-常见数学运算(四舍五入等).mix} (100%) rename boards/default/arduino_avr/examples/{sG_W03pyJzQ/EQRznV_EdoC/tYcWxNcC4yu.mix => Mixly2.0简明教程/03-数学/06-获取不同类型数据占用的字节数.mix} (100%) rename boards/default/arduino_avr/examples/{sG_W03pyJzQ/EQRznV_EdoC/i8GNfghhchF.mix => Mixly2.0简明教程/03-数学/07-最大值与最小值.mix} (100%) rename boards/default/arduino_avr/examples/{sG_W03pyJzQ/EQRznV_EdoC/CSlrW-WkBhE.mix => Mixly2.0简明教程/03-数学/08-获取随机数.mix} (100%) rename boards/default/arduino_avr/examples/{sG_W03pyJzQ/EQRznV_EdoC/yjErwxvy_PL.mix => Mixly2.0简明教程/03-数学/09-数学约束.mix} (100%) rename boards/default/arduino_avr/examples/{sG_W03pyJzQ/EQRznV_EdoC/5gMSrbsl_IA.mix => Mixly2.0简明教程/03-数学/10-数学映射.mix} (100%) rename boards/default/arduino_avr/examples/{sG_W03pyJzQ/6QrokY_Ea8R/g5SQTzQvaEs.mix => Mixly2.0简明教程/04-逻辑/01-逻辑关系.mix} (100%) rename boards/default/arduino_avr/examples/{sG_W03pyJzQ/6QrokY_Ea8R/XqmVPjvJhbI.mix => Mixly2.0简明教程/04-逻辑/02-逻辑运算.mix} (100%) rename boards/default/arduino_avr/examples/{sG_W03pyJzQ/6QrokY_Ea8R/6VUve83biSS.mix => Mixly2.0简明教程/04-逻辑/03-逻辑非运算.mix} (100%) rename boards/default/arduino_avr/examples/{sG_W03pyJzQ/6QrokY_Ea8R/tWWIZyjcTlKp.mix => Mixly2.0简明教程/04-逻辑/04-条件返回值.mix} (100%) rename boards/default/arduino_avr/examples/{sG_W03pyJzQ/uHKMG6FYAqx2/rCcGlL82TIpj.mix => Mixly2.0简明教程/05-文本/01-字符串拼接.mix} (100%) rename boards/default/arduino_avr/examples/{sG_W03pyJzQ/uHKMG6FYAqx2/bpvFk1ZS9-6b.mix => Mixly2.0简明教程/05-文本/02-字符串转整数或小数.mix} (100%) rename boards/default/arduino_avr/examples/{sG_W03pyJzQ/uHKMG6FYAqx2/ARbon0fYPERQ.mix => Mixly2.0简明教程/05-文本/03-字符串索引.mix} (100%) rename boards/default/arduino_avr/examples/{sG_W03pyJzQ/uHKMG6FYAqx2/iaPqDixnIaEa.mix => Mixly2.0简明教程/05-文本/04-截取字符串.mix} (100%) rename boards/default/arduino_avr/examples/{sG_W03pyJzQ/uHKMG6FYAqx2/IwqZOOL9LFVQ.mix => Mixly2.0简明教程/05-文本/05-字符串转换与替换.mix} (100%) rename boards/default/arduino_avr/examples/{sG_W03pyJzQ/uHKMG6FYAqx2/qGWUNel7s6lv.mix => Mixly2.0简明教程/05-文本/06-字符串首位判断与数据类型转换.mix} (100%) rename boards/default/arduino_avr/examples/{sG_W03pyJzQ/uHKMG6FYAqx2/fYHcE7owacre.mix => Mixly2.0简明教程/05-文本/07-字符与ascii码互相转换.mix} (100%) rename boards/default/arduino_avr/examples/{sG_W03pyJzQ/uHKMG6FYAqx2/b14bii9q0QMs.mix => Mixly2.0简明教程/05-文本/08-进制转换.mix} (100%) rename boards/default/arduino_avr/examples/{sG_W03pyJzQ/uHKMG6FYAqx2/8gv6_lvRsqc3.mix => Mixly2.0简明教程/05-文本/09-字符串长度与获取指定位置字符.mix} (100%) rename boards/default/arduino_avr/examples/{sG_W03pyJzQ/uHKMG6FYAqx2/GPmcKn8nKcAm.mix => Mixly2.0简明教程/05-文本/10-字符串关系与比较.mix} (100%) rename boards/default/arduino_avr/examples/{sG_W03pyJzQ/ChlHi83NbG6b/rj_yRzWK1Wkr.mix => Mixly2.0简明教程/06-数组/01-一维数组声明.mix} (100%) rename boards/default/arduino_avr/examples/{sG_W03pyJzQ/ChlHi83NbG6b/uTcE0mPFbAkH.mix => Mixly2.0简明教程/06-数组/02-数组读写.mix} (100%) rename boards/default/arduino_avr/examples/{sG_W03pyJzQ/ChlHi83NbG6b/aBhedmx3o8Af.mix => Mixly2.0简明教程/06-数组/03-数组循环移位.mix} (100%) rename boards/default/arduino_avr/examples/{sG_W03pyJzQ/ChlHi83NbG6b/MGYmVL6xEfos.mix => Mixly2.0简明教程/06-数组/04-二维数组声明.mix} (100%) rename boards/default/arduino_avr/examples/{sG_W03pyJzQ/ChlHi83NbG6b/6rhRD_n5octd.mix => Mixly2.0简明教程/06-数组/05-二维数组读写.mix} (100%) rename boards/default/arduino_avr/examples/{sG_W03pyJzQ/YseLD0bZGW8M/bETVWal4c1dz.mix => Mixly2.0简明教程/07-变量/01-变量声明与使用区别.mix} (100%) rename boards/default/arduino_avr/examples/{sG_W03pyJzQ/t4IeYWAx6kA1/PIXEGI8nEp30.mix => Mixly2.0简明教程/08-函数/01-无返回值无参数函数.mix} (100%) rename boards/default/arduino_avr/examples/{sG_W03pyJzQ/t4IeYWAx6kA1/31A3tJkubjTx.mix => Mixly2.0简明教程/08-函数/02-无返回值带参数函数.mix} (100%) rename boards/default/arduino_avr/examples/{sG_W03pyJzQ/t4IeYWAx6kA1/Pp62dBvj4G0Z.mix => Mixly2.0简明教程/08-函数/03-带返回值带参数函数声明.mix} (100%) rename boards/default/arduino_avr/examples/{sG_W03pyJzQ/t4IeYWAx6kA1/yycMkPzIyqdx.mix => Mixly2.0简明教程/08-函数/04-多返回值带参数函数声明.mix} (100%) rename boards/default/arduino_avr/examples/{sG_W03pyJzQ/S4inhf5Bh54Q/t_HARRsNZwf1.mix => Mixly2.0简明教程/09-串口/01-串口打印输出.mix} (100%) rename boards/default/arduino_avr/examples/{sG_W03pyJzQ/S4inhf5Bh54Q/S9HKiBHR6jS5.mix => Mixly2.0简明教程/09-串口/02-串口输入1.mix} (100%) rename boards/default/arduino_avr/examples/{sG_W03pyJzQ/S4inhf5Bh54Q/TSWLx1_1NRmP.mix => Mixly2.0简明教程/09-串口/02-串口输入2.mix} (100%) rename boards/default/arduino_avr/examples/{sG_W03pyJzQ/S4inhf5Bh54Q/pW7Xz-3vrbyO.mix => Mixly2.0简明教程/09-串口/02-串口输入3.mix} (100%) rename boards/default/arduino_avr/examples/{sG_W03pyJzQ/S4inhf5Bh54Q/43wOPIF2LY1V.mix => Mixly2.0简明教程/09-串口/02-串口输入4.mix} (100%) rename boards/default/arduino_avr/examples/{sG_W03pyJzQ/S4inhf5Bh54Q/Em2gHJq_A_LA.mix => Mixly2.0简明教程/09-串口/03-串口发送等待.mix} (100%) rename boards/default/arduino_avr/examples/{sG_W03pyJzQ/S4inhf5Bh54Q/qlnUVGa5j78T.mix => Mixly2.0简明教程/09-串口/04-串口中断.mix} (100%) rename boards/default/arduino_avr/examples/{sG_W03pyJzQ/S4inhf5Bh54Q/Szuqv_2oeSnu.mix => Mixly2.0简明教程/09-串口/05-软串口的使用.mix} (100%) rename boards/default/arduino_avr/examples/{sG_W03pyJzQ/6AGw1yXgLprT/gVoZfsWHjzCC.mix => Mixly2.0简明教程/10-传感器/01-超声波测距.mix} (100%) rename boards/default/arduino_avr/examples/{sG_W03pyJzQ/6AGw1yXgLprT/r8aKeuYueZBE.mix => Mixly2.0简明教程/10-传感器/02-获取DHT11温湿度.mix} (100%) rename boards/default/arduino_avr/examples/{sG_W03pyJzQ/6AGw1yXgLprT/uWuikaYG5EFb.mix => Mixly2.0简明教程/10-传感器/03-获取LM35温度.mix} (100%) rename boards/default/arduino_avr/examples/{sG_W03pyJzQ/6AGw1yXgLprT/uJJlma8h9D9q.mix => Mixly2.0简明教程/10-传感器/04-获取DS18B20温度.mix} (100%) rename boards/default/arduino_avr/examples/{sG_W03pyJzQ/6AGw1yXgLprT/MivLnGE7wu5B.mix => Mixly2.0简明教程/10-传感器/05-获取BME280参数.mix} (100%) rename boards/default/arduino_avr/examples/{sG_W03pyJzQ/6AGw1yXgLprT/Nc5rHxFUNdH6.mix => Mixly2.0简明教程/10-传感器/06-获取SHT20温湿度.mix} (100%) rename boards/default/arduino_avr/examples/{sG_W03pyJzQ/6AGw1yXgLprT/46iQe4E-DOhi.mix => Mixly2.0简明教程/10-传感器/07-BMLX90614红外温度测量.mix} (100%) rename boards/default/arduino_avr/examples/{sG_W03pyJzQ/6AGw1yXgLprT/zv03hJZhMxHO.mix => Mixly2.0简明教程/10-传感器/08-tcs34725颜色提取.mix} (100%) rename boards/default/arduino_avr/examples/{sG_W03pyJzQ/6AGw1yXgLprT/QA8fnXR5_ndx.mix => Mixly2.0简明教程/10-传感器/09-tcs230颜色提取.mix} (100%) rename boards/default/arduino_avr/examples/{sG_W03pyJzQ/6AGw1yXgLprT/gymEPeibkRzn.mix => Mixly2.0简明教程/10-传感器/10-MPU6050陀螺仪.mix} (100%) rename boards/default/arduino_avr/examples/{sG_W03pyJzQ/6AGw1yXgLprT/ikRd_Z4OPkBN.mix => Mixly2.0简明教程/10-传感器/11-MPU9250加速度传感器.mix} (100%) rename boards/default/arduino_avr/examples/{sG_W03pyJzQ/r0LXb-VZvIEO/GsEhMzFO_q9c.mix => Mixly2.0简明教程/13-通信/01-红外数据接收.mix} (100%) rename boards/default/arduino_avr/examples/{sG_W03pyJzQ/r0LXb-VZvIEO/qlbRrTgiyu3W.mix => Mixly2.0简明教程/13-通信/02-红外数据发送.mix} (100%) rename boards/default/arduino_avr/examples/{sG_W03pyJzQ/r0LXb-VZvIEO/vJT_gXYcZgHT.mix => Mixly2.0简明教程/13-通信/03-红外数据模拟收发.mix} (100%) rename boards/default/arduino_avr/examples/{sG_W03pyJzQ/Vg3zj7Pk-gkc/feckGQcBVn-A.mix => Mixly2.0简明教程/14-存储/01-SD卡读写测试.mix} (100%) rename boards/default/arduino_avr/examples/{sG_W03pyJzQ/Vg3zj7Pk-gkc/gRmiLcS3fwr-.mix => Mixly2.0简明教程/14-存储/02-EEPROM掉电存储.mix} (100%) rename boards/default/arduino_avr/examples/{oKteXz3xeIWa/ddza7_FJbQse/VbERBlAzQVKa.mix => 教材范例/创意电子/03按钮指示灯_buttonindator_2.mix} (100%) rename boards/default/arduino_avr/examples/{oKteXz3xeIWa/ddza7_FJbQse/xfGPZPUEQ35A.mix => 教材范例/创意电子/03按钮指示灯_flashinglight_2.mix} (100%) rename boards/default/arduino_avr/examples/{oKteXz3xeIWa/ddza7_FJbQse/sdHrRixG66Ks.mix => 教材范例/创意电子/04渐变灯_buttonindator_3.mix} (100%) rename boards/default/arduino_avr/examples/{oKteXz3xeIWa/ddza7_FJbQse/3Yh0PaVvBoql.mix => 教材范例/创意电子/04渐变灯_gradientlamp_1.mix} (100%) rename boards/default/arduino_avr/examples/{oKteXz3xeIWa/ddza7_FJbQse/nIYmSMgvHYLh.mix => 教材范例/创意电子/05反应测试_gradientlamp_2.mix} (100%) rename boards/default/arduino_avr/examples/{oKteXz3xeIWa/ddza7_FJbQse/3WJagauftNaN.mix => 教材范例/创意电子/05反应测试_reactiontest_2.mix} (100%) rename boards/default/arduino_avr/examples/{oKteXz3xeIWa/ddza7_FJbQse/51Tfm_6rpMR_.mix => 教材范例/创意电子/06遥控灯_remotecontrollight_2.mix} (100%) rename boards/default/arduino_avr/examples/{oKteXz3xeIWa/ddza7_FJbQse/8EVJikjkMqca.mix => 教材范例/创意电子/07遥控门锁_keylessentry_1.mix} (100%) rename boards/default/arduino_avr/examples/{oKteXz3xeIWa/ddza7_FJbQse/Q4QM3qiNFwoA.mix => 教材范例/创意电子/07遥控门锁_keylessentry_2.mix} (100%) rename boards/default/arduino_avr/examples/{oKteXz3xeIWa/ddza7_FJbQse/0j5Rbk_U04um.mix => 教材范例/创意电子/08温度指示器_temperatureindator_1.mix} (100%) rename boards/default/arduino_avr/examples/{oKteXz3xeIWa/ddza7_FJbQse/bTJwaTnIRdkG.mix => 教材范例/创意电子/08温度指示器_temperatureindator_2.mix} (100%) rename boards/default/arduino_avr/examples/{oKteXz3xeIWa/ddza7_FJbQse/amNANW1Otrks.mix => 教材范例/创意电子/09报警器_alarm_1.mix} (100%) rename boards/default/arduino_avr/examples/{oKteXz3xeIWa/ddza7_FJbQse/Isgfk7bQWakx.mix => 教材范例/创意电子/09报警器_alarm_2.mix} (100%) rename boards/default/arduino_avr/examples/{oKteXz3xeIWa/ddza7_FJbQse/NhgmfpPqLudS.mix => 教材范例/创意电子/09报警器_lib_alarm_lib2.mix} (100%) rename boards/default/arduino_avr/examples/{oKteXz3xeIWa/ddza7_FJbQse/nh4BDjFC7NVJ.mix => 教材范例/创意电子/10可调报警器_adjustablealarm_1.mix} (100%) rename boards/default/arduino_avr/examples/{oKteXz3xeIWa/ddza7_FJbQse/K64dwVPj8ANF.mix => 教材范例/创意电子/10可调报警器_adjustablealarm_2.mix} (100%) rename boards/default/arduino_avr/examples/{oKteXz3xeIWa/ddza7_FJbQse/UUney3DMWLzK.mix => 教材范例/创意电子/10可调报警器_lib_adjustablealarm_lib2.mix} (100%) rename boards/default/arduino_avr/examples/{oKteXz3xeIWa/ddza7_FJbQse/UNinMG38cdZz.mix => 教材范例/创意电子/11倒车雷达_reversingradar_1.mix} (100%) rename boards/default/arduino_avr/examples/{oKteXz3xeIWa/ddza7_FJbQse/rtbEJnT1mE1J.mix => 教材范例/创意电子/11倒车雷达_reversingradar_2.mix} (100%) rename boards/default/arduino_avr/examples/{oKteXz3xeIWa/ddza7_FJbQse/5M7j9mhJ4PvT.mix => 教材范例/创意电子/12计时器_timer_1.mix} (100%) rename boards/default/arduino_avr/examples/{oKteXz3xeIWa/ddza7_FJbQse/vM3m-CD5UQi9.mix => 教材范例/创意电子/12计时器_timer_2.mix} (100%) rename boards/default/arduino_avr/examples/{oKteXz3xeIWa/ddza7_FJbQse/xFDLH7q5Hr95.mix => 教材范例/创意电子/1闪烁灯_1 flashing light.mix} (100%) rename boards/default/arduino_avr/examples/{oKteXz3xeIWa/ddza7_FJbQse/jlQJIviOk1g-.mix => 教材范例/创意电子/2闪烁灯_2 flashing lights.mix} (100%) rename boards/default/arduino_avr/examples/{oKteXz3xeIWa/iL9vTAmPQNDs/8EbfGN6MjrDY.mix => 教材范例/智能机器/“保卫”消防通道_Secure Fire Passage.mix} (100%) rename boards/default/arduino_avr/examples/{oKteXz3xeIWa/iL9vTAmPQNDs/7zRjVGW73NUA.mix => 教材范例/智能机器/你抢我答_You rob me to answer.mix} (100%) rename boards/default/arduino_avr/examples/{oKteXz3xeIWa/iL9vTAmPQNDs/CgZAS9tpEN6M.mix => 教材范例/智能机器/噪声监控_Noise monitoring.mix} (100%) rename boards/default/arduino_avr/examples/{oKteXz3xeIWa/iL9vTAmPQNDs/oOjE8d-FBBWj.mix => 教材范例/智能机器/图书消毒柜_Book disinfection cabinet.mix} (100%) rename boards/default/arduino_avr/examples/{oKteXz3xeIWa/iL9vTAmPQNDs/yLXF1UPVdqQd.mix => 教材范例/智能机器/太阳能发电机_Solar generator.mix} (100%) rename boards/default/arduino_avr/examples/{oKteXz3xeIWa/iL9vTAmPQNDs/4pi7CZhDTKtl.mix => 教材范例/智能机器/彩色手电筒_Color flashlight.mix} (100%) rename boards/default/arduino_avr/examples/{oKteXz3xeIWa/iL9vTAmPQNDs/Ko3F4ypU9PF4.mix => 教材范例/智能机器/无人驾驶_unmanned.mix} (100%) rename boards/default/arduino_avr/examples/{oKteXz3xeIWa/iL9vTAmPQNDs/6bYviIZmOjDv.mix => 教材范例/智能机器/智能停车场_Smart parking.mix} (100%) rename boards/default/arduino_avr/examples/{oKteXz3xeIWa/iL9vTAmPQNDs/vr-cyHfPjgMj.mix => 教材范例/智能机器/眼疾手快_Eye disease hand fast.mix} (100%) rename boards/default/arduino_avr/examples/{oKteXz3xeIWa/iL9vTAmPQNDs/lIgMY8sAKf0P.mix => 教材范例/智能机器/瞄准狐狸_Aiming at the fox.mix} (100%) rename boards/default/arduino_avr/examples/{oKteXz3xeIWa/iL9vTAmPQNDs/P8lK2at5LSIg.mix => 教材范例/智能机器/节电风扇_Power-saving fan.mix} (100%) rename boards/default/arduino_avr/examples/{oKteXz3xeIWa/iL9vTAmPQNDs/1iJji3BCSKN6.mix => 教材范例/智能机器/超市储物箱_Supermarket storage box.mix} (100%) rename boards/default/arduino_esp32/examples/{G30m9tsDU2_m/Up55ORqxgbsO/SOMz8OdcYG0m.mix => ESP32 Dev Module/Handbit/RGB LED.mix} (100%) rename boards/default/arduino_esp32/examples/{G30m9tsDU2_m/Up55ORqxgbsO/vhw3MAALaWdB.mix => ESP32 Dev Module/Handbit/buzzer play two tigers.mix} (100%) rename boards/default/arduino_esp32/examples/{G30m9tsDU2_m/Up55ORqxgbsO/Abn0vmTvNqdu.mix => ESP32 Dev Module/Handbit/display Chinese.mix} (100%) rename boards/default/arduino_esp32/examples/{G30m9tsDU2_m/Up55ORqxgbsO/meBqwHfzXhYu.mix => ESP32 Dev Module/Handbit/display Text.mix} (100%) rename boards/default/arduino_esp32/examples/{G30m9tsDU2_m/A2KP27J6Js4a.mix => ESP32 Dev Module/MPU6050打印数值.mix} (100%) rename boards/default/arduino_esp32/examples/{G30m9tsDU2_m/S7EIzIX8CTRs/BtxCDUckNkfP.mix => ESP32 Dev Module/MixGo/MPU9250.mix} (100%) rename boards/default/arduino_esp32/examples/{G30m9tsDU2_m/EoDQjAfIfJFO.mix => ESP32 Dev Module/PWM模拟输出.mix} (100%) rename boards/default/arduino_esp32/examples/{G30m9tsDU2_m/NgO1NNDjlIFp.mix => ESP32 Dev Module/SPIFFS读写数据测试.mix} (100%) rename boards/default/arduino_esp32/examples/{G30m9tsDU2_m/PU07z8p9TFSB.mix => ESP32 Dev Module/URL和Base64编解码.mix} (100%) rename boards/default/arduino_esp32/examples/{G30m9tsDU2_m/FFAn8vK7-1He.mix => ESP32 Dev Module/WiFi事件.mix} (100%) rename boards/default/arduino_esp32/examples/{G30m9tsDU2_m/MIMEFdrAnrQZ.mix => ESP32 Dev Module/wifi控制小车.mix} (100%) rename boards/default/arduino_esp32/examples/{G30m9tsDU2_m/qQXqjt7JykRB.mix => ESP32 Dev Module/中断控制.mix} (100%) rename boards/default/arduino_esp32/examples/{G30m9tsDU2_m/2Zb4HUXjVfcx.mix => ESP32 Dev Module/使用http发送POST请求.mix} (100%) rename boards/default/arduino_esp32/examples/{G30m9tsDU2_m/mitaGpmRhAW4.mix => ESP32 Dev Module/定时器.mix} (100%) rename boards/default/arduino_esp32/examples/{G30m9tsDU2_m/NmMxfCH-38pu.mix => ESP32 Dev Module/心知天气.mix} (100%) rename boards/default/arduino_esp32/examples/{G30m9tsDU2_m/r8RmWob1qp6i.mix => ESP32 Dev Module/旋转编码器读取数据.mix} (100%) rename boards/default/arduino_esp32/examples/{G30m9tsDU2_m/NgEbW9bwfuDh/BY4jo5JaZen5.mix => ESP32 Dev Module/简明教程/ESP32双核的简单使用.mix} (100%) rename boards/default/arduino_esp32/examples/{G30m9tsDU2_m/NgEbW9bwfuDh/ZJRKswbhwZ4W.mix => ESP32 Dev Module/简明教程/ESPnow无线通讯简单案例.mix} (100%) rename boards/default/arduino_esp32/examples/{G30m9tsDU2_m/AXxqqKN_VkB_.mix => ESP32 Dev Module/触摸中断.mix} (100%) rename boards/default/arduino_esp32/examples/{6uqJfrBT-lwq/t_7KuurbAHFr.mix => ESP32C3 Dev Module/URL和Base64编解码.mix} (100%) rename boards/default/arduino_esp32/examples/{6uqJfrBT-lwq/T_D9WNxbVFJk.mix => ESP32C3 Dev Module/使用http发送POST请求.mix} (100%) rename boards/default/arduino_esp32/examples/{6uqJfrBT-lwq/QfiD7GtmOkwt.mix => ESP32C3 Dev Module/心知天气.mix} (100%) rename boards/default/arduino_esp32/examples/{PPk_qQfciyS-/ZYJ-M9Mc4wcF.mix => ESP32S2 Dev Module/URL和Base64编解码.mix} (100%) rename boards/default/arduino_esp32/examples/{PPk_qQfciyS-/KwAvI54AZGxv.mix => ESP32S2 Dev Module/使用http发送POST请求.mix} (100%) rename boards/default/arduino_esp32/examples/{PPk_qQfciyS-/PcyNjQlfeCvu.mix => ESP32S2 Dev Module/心知天气.mix} (100%) rename boards/default/arduino_esp32/examples/{OENFEKukx1pp/iEHxnyN9tb_P.mix => ESP32S3 Dev Module/URL和Base64编解码.mix} (100%) rename boards/default/arduino_esp32/examples/{OENFEKukx1pp/6sX2CyaHZQew.mix => ESP32S3 Dev Module/使用http发送POST请求.mix} (100%) rename boards/default/arduino_esp32/examples/{OENFEKukx1pp/_opo2QrVQpzO.mix => ESP32S3 Dev Module/心知天气.mix} (100%) rename boards/default/arduino_esp8266/examples/{JJmrn9jFRfTa.mix => 15-MQTT Send Message.mix} (100%) rename boards/default/arduino_esp8266/examples/{JUtx9ytugjaC.mix => Blynk-远程七彩灯.mix} (100%) rename boards/default/arduino_esp8266/examples/{KreH8WIF_Yda.mix => Blynk控制舵机.mix} (100%) rename boards/default/arduino_esp8266/examples/{pK2MXikzoQx6.mix => Blynk无线桥接通信.mix} (100%) rename boards/default/arduino_esp8266/examples/{z4J4JHukkSVQ.mix => Blynk气象站.mix} (100%) rename boards/default/arduino_esp8266/examples/{3Wihz97xuOCP.mix => Blynk留言机.mix} (100%) rename boards/default/arduino_esp8266/examples/{ipupXmtAYaGu.mix => Blynk连接服务器.mix} (100%) rename boards/default/arduino_esp8266/examples/{COCWdBNocNHD.mix => MAX7219点阵时钟.mix} (100%) rename boards/default/arduino_esp8266/examples/{_YxyUzMogSu-.mix => MQTT连接DF EASY_IOT.mix} (100%) rename boards/default/arduino_esp8266/examples/{yjn4I_LfPi4K.mix => NTP时间服务器.mix} (100%) rename boards/default/arduino_esp8266/examples/{s4jq2m5fMgj4.mix => OLED网络时钟.mix} (100%) rename boards/default/arduino_esp8266/examples/{t3iQzkI4Ce97.mix => TM1637网络时钟.mix} (100%) rename boards/default/arduino_esp8266/examples/{Hw0tvoR_sUVA.mix => URL和Base64编解码.mix} (100%) rename boards/default/arduino_esp8266/examples/{vRikhd5OTLZX.mix => 使用http发送POST请求.mix} (100%) rename boards/default/arduino_esp8266/examples/{kU29WE1YwmyS.mix => 心知天气.mix} (100%) rename boards/default/arduino_esp8266/examples/{mbxSfuusHNwe.mix => 旋转编码器读取数据.mix} (100%) rename boards/default/arduino_esp8266/examples/{qC7av3_A2n_C/uAxS1JxA80oc.mix => 简明教程/AP模式一键配置网络与清除网络信息.mix} (100%) rename boards/default/arduino_esp8266/examples/{qC7av3_A2n_C/75PFkhTFmnvA.mix => 简明教程/MQTT断线反馈与重连.mix} (100%) rename boards/default/arduino_esp8266/examples/{qC7av3_A2n_C/aevTPM--8bhW.mix => 简明教程/网络连接超时优化.mix} (100%) rename boards/default/micropython_esp32/examples/{JNIUPdLpnuXM/wg0zdldUHcVJ.mix => MixGo/1-1 滚动显示mixly.mix} (100%) rename boards/default/micropython_esp32/examples/{JNIUPdLpnuXM/4TjvpntWQwB3.mix => MixGo/1-2 滚动显示两句话.mix} (100%) rename boards/default/micropython_esp32/examples/{JNIUPdLpnuXM/qWjV-Mt5-GZK.mix => MixGo/10-传按键数据上云端.mix} (100%) rename boards/default/micropython_esp32/examples/{JNIUPdLpnuXM/Zyxyd5BYuoiK.mix => MixGo/11-1 云端控制LED灯.mix} (100%) rename boards/default/micropython_esp32/examples/{JNIUPdLpnuXM/_WiZHtar-e1y.mix => MixGo/11-2 云端控制rgb灯.mix} (100%) rename boards/default/micropython_esp32/examples/{JNIUPdLpnuXM/3yAfwPbSUtGJ.mix => MixGo/12-1 应用开关控制LED灯.mix} (100%) rename boards/default/micropython_esp32/examples/{JNIUPdLpnuXM/TUMtfrAeb-BF.mix => MixGo/12-2 应用旋钮控制LED灯.mix} (100%) rename boards/default/micropython_esp32/examples/{JNIUPdLpnuXM/-SI1g_44ZFdF.mix => MixGo/12-3 应用点亮显示屏.mix} (100%) rename boards/default/micropython_esp32/examples/{JNIUPdLpnuXM/X6uBmAn9JDGr.mix => MixGo/2-1 心情晴雨表-按下.mix} (100%) rename boards/default/micropython_esp32/examples/{JNIUPdLpnuXM/TiCLlByCsrL1.mix => MixGo/2-1 心情晴雨表-按着.mix} (100%) rename boards/default/micropython_esp32/examples/{JNIUPdLpnuXM/YPepX4uni8YX.mix => MixGo/2-2 心情晴雨表-联合图形.mix} (100%) rename boards/default/micropython_esp32/examples/{JNIUPdLpnuXM/fLqRgpSftdty.mix => MixGo/3-1 抢答器.mix} (100%) rename boards/default/micropython_esp32/examples/{JNIUPdLpnuXM/1QFkQEJ2g0Tp.mix => MixGo/3-2 倒计时抢答器.mix} (100%) rename boards/default/micropython_esp32/examples/{JNIUPdLpnuXM/o93HoDYuXduw.mix => MixGo/4-1可调报警器.mix} (100%) rename boards/default/micropython_esp32/examples/{JNIUPdLpnuXM/8nqu1AR3Ajx4.mix => MixGo/4-2音乐门铃.mix} (100%) rename boards/default/micropython_esp32/examples/{JNIUPdLpnuXM/BTxSR-fso3e7.mix => MixGo/5-1创建基准音.mix} (100%) rename boards/default/micropython_esp32/examples/{JNIUPdLpnuXM/tGAyzCJzPMze.mix => MixGo/5-2录音电子琴.mix} (100%) rename boards/default/micropython_esp32/examples/{JNIUPdLpnuXM/qCV4FEc5Gj8X.mix => MixGo/6-1闹钟.mix} (100%) rename boards/default/micropython_esp32/examples/{JNIUPdLpnuXM/oG7iPp6wgg_v.mix => MixGo/6-2实时时钟.mix} (100%) rename boards/default/micropython_esp32/examples/{JNIUPdLpnuXM/ANsv6_57IJV8.mix => MixGo/7-1光电密码锁.mix} (100%) rename boards/default/micropython_esp32/examples/{JNIUPdLpnuXM/SjT_JAdEFmUi.mix => MixGo/7-2密码锁.mix} (100%) rename boards/default/micropython_esp32/examples/{JNIUPdLpnuXM/1YnKwJdM1DX-.mix => MixGo/7-3密码锁-可修改密码.mix} (100%) rename boards/default/micropython_esp32/examples/{JNIUPdLpnuXM/BOC_ZyhdkZk0.mix => MixGo/8-1磁场魔术.mix} (100%) rename boards/default/micropython_esp32/examples/{JNIUPdLpnuXM/D-FhDFfzJgv9.mix => MixGo/8-2扫雷法宝.mix} (100%) rename boards/default/micropython_esp32/examples/{JNIUPdLpnuXM/CB-HIDWuNuR7.mix => MixGo/9-1平衡仪.mix} (100%) rename boards/default/micropython_esp32/examples/{JNIUPdLpnuXM/pAul6pcS_juR.mix => MixGo/9-2平衡仪升级版.mix} (100%) rename boards/default/micropython_esp32/examples/{JNIUPdLpnuXM/6BJDpazzwqNO.mix => MixGo/9-3平衡仪小小精灵快快跑.mix} (100%) rename boards/default/micropython_esp32/examples/{JNIUPdLpnuXM/2FNITzim5eaA.mix => MixGo/9-4平衡仪左右前后移动.mix} (100%) rename boards/default/micropython_esp32/examples/{DtJ9jw-02HkG/y2dSViFZxdCo.mix => mPython/01-1-快速入门-你好世界.mix} (100%) rename boards/default/micropython_esp32/examples/{DtJ9jw-02HkG/fzk1qMPBqOs2.mix => mPython/01-2-快速入门-你好世界2.mix} (100%) rename boards/default/micropython_esp32/examples/{DtJ9jw-02HkG/B8MmHV9HRiqP.mix => mPython/02-1-快速入门-跳动的心.mix} (100%) rename boards/default/micropython_esp32/examples/{DtJ9jw-02HkG/3NEADxsqL1gu.mix => mPython/02-2-快速入门-为你心动.mix} (100%) rename boards/default/micropython_esp32/examples/{DtJ9jw-02HkG/CsnJ8a3jo_pf.mix => mPython/03-1-快速入门-心随我动.mix} (100%) rename boards/default/micropython_esp32/examples/{DtJ9jw-02HkG/eNXOx6LV6fmR.mix => mPython/03-2-快速入门-心随我动2.mix} (100%) rename boards/default/micropython_esp32/examples/{DtJ9jw-02HkG/XmylWMPztgAD.mix => mPython/04-1-快速入门-流动的灯.mix} (100%) rename boards/default/micropython_esp32/examples/{DtJ9jw-02HkG/ocJfrxAitI1E.mix => mPython/04-2-快速入门-流动的灯2.mix} (100%) rename boards/default/micropython_esp32/examples/{DtJ9jw-02HkG/3vSkffMeo6tG.mix => mPython/05-1-过程控制-双键开关.mix} (100%) rename boards/default/micropython_esp32/examples/{DtJ9jw-02HkG/A-TXf_zDUSiZ.mix => mPython/05-2-过程控制-单键开关.mix} (100%) rename boards/default/micropython_esp32/examples/{DtJ9jw-02HkG/SGmRr2iuZtuM.mix => mPython/05-3-过程控制-IPO概念.mix} (100%) rename boards/default/micropython_esp32/examples/{DtJ9jw-02HkG/9m6-cBGvKNYm.mix => mPython/06-1-过程控制-声音采集.mix} (100%) rename boards/default/micropython_esp32/examples/{DtJ9jw-02HkG/MWTyiOQWJdRA.mix => mPython/06-2-过程控制-看见声音.mix} (100%) rename boards/default/micropython_esp32/examples/{DtJ9jw-02HkG/nQqzMjFYynUr.mix => mPython/07-1-过程控制-光强采集.mix} (100%) rename boards/default/micropython_esp32/examples/{DtJ9jw-02HkG/13yJZe8ZqH9h.mix => mPython/07-2-过程控制-自动补光.mix} (100%) rename boards/default/micropython_esp32/examples/{DtJ9jw-02HkG/FjcMOWEw9duZ.mix => mPython/08-1-过程控制-接近检测.mix} (100%) rename boards/default/micropython_esp32/examples/{DtJ9jw-02HkG/0umoMDyQSLzs.mix => mPython/08-2-过程控制-入侵报警.mix} (100%) rename boards/default/micropython_esp32/examples/{DtJ9jw-02HkG/nlTwFKJsdQCw.mix => mPython/09-1-输入输出-加速度.mix} (100%) rename boards/default/micropython_esp32/examples/{DtJ9jw-02HkG/Xhw9rV63JON5.mix => mPython/09-2-输入输出-平衡仪.mix} (100%) rename boards/default/micropython_esp32/examples/{DtJ9jw-02HkG/NxNhAYovYtYm.mix => mPython/10-1-输入输出-地磁强度.mix} (100%) rename boards/default/micropython_esp32/examples/{DtJ9jw-02HkG/PQt-yoSt1qng.mix => mPython/10-2-输入输出-金属探测.mix} (100%) rename boards/default/micropython_esp32/examples/{DtJ9jw-02HkG/Jy7MItUwIIcs.mix => mPython/12-1-输入输出-实时时钟.mix} (100%) rename boards/default/micropython_esp32/examples/{DtJ9jw-02HkG/taq2d8-19NJk.mix => mPython/12-2-输入输出-实时时钟2.mix} (100%) rename boards/default/micropython_esp32/examples/{DtJ9jw-02HkG/Z_HHY8dUmDe0.mix => mPython/13-1-逻辑计算-手速测试.mix} (100%) rename boards/default/micropython_esp32/examples/{DtJ9jw-02HkG/7ysNkmQQL8Mq.mix => mPython/14-1-逻辑计算-反应测试.mix} (100%) rename boards/default/micropython_esp32/examples/{DtJ9jw-02HkG/OFg1LozijgOw.mix => mPython/14-2-逻辑计算-反应测试2.mix} (100%) rename boards/default/micropython_esp32/examples/{DtJ9jw-02HkG/jaAs1HfbFPEP.mix => mPython/17-0-复杂控制-非中断效果.mix} (100%) rename boards/default/micropython_esp32/examples/{DtJ9jw-02HkG/QqcCODHkXGkv.mix => mPython/17-2-复杂控制-单键中断.mix} (100%) rename boards/default/micropython_esp32/examples/{DtJ9jw-02HkG/LdoXr18AuGbD.mix => mPython/18-1-复杂控制-定时计时.mix} (100%) rename boards/default/micropython_esp32/examples/{DtJ9jw-02HkG/YbAlfdKlOZWr.mix => mPython/18-2-复杂控制-循环计时.mix} (100%) rename boards/default/micropython_esp32/examples/{DtJ9jw-02HkG/d3-AjvdcWjWL.mix => mPython/19-1-复杂控制-多线程.mix} (100%) rename boards/default/micropython_esp32/examples/{DtJ9jw-02HkG/SMg_ZAqcFE2r.mix => mPython/19-2-复杂控制-多线程与中断.mix} (100%) rename boards/default/micropython_esp32/examples/{DtJ9jw-02HkG/S_haB0shc0Hx.mix => mPython/20-1-复杂控制-异常.mix} (100%) rename boards/default/micropython_esp32/examples/{DtJ9jw-02HkG/3QCig7DAW6d4.mix => mPython/20-2-复杂控制-异常处理.mix} (100%) rename boards/default/micropython_esp32/examples/{DtJ9jw-02HkG/k9ZAGuBM1NAj.mix => mPython/23-1-蓝牙通讯-主机模式.mix} (100%) rename boards/default/micropython_esp32/examples/{DtJ9jw-02HkG/yo8mmzPv9X9T.mix => mPython/23-1-蓝牙通讯-从机模式.mix} (100%) rename boards/default/micropython_esp32/examples/{DtJ9jw-02HkG/PDLurxyyxP81.mix => mPython/24-1-无线广播-通讯测试.mix} (100%) rename boards/default/micropython_esp32/examples/{DtJ9jw-02HkG/zDjB6GPwPAX2.mix => mPython/24-2-无线广播-防丢检测.mix} (100%) rename boards/default/micropython_esp32/examples/{DtJ9jw-02HkG/8zPdM3BDzm8N.mix => mPython/29-1-物联网-简单数据定时上报.mix} (100%) rename boards/default/micropython_esp32/examples/{DtJ9jw-02HkG/Hx2fRKp_13Rt.mix => mPython/29-2-物联网-复杂数据定时上报.mix} (100%) rename boards/default/micropython_esp32/examples/{DtJ9jw-02HkG/IMh2-ewY4Rim.mix => mPython/30-1-物联网-简单数据按需上报.mix} (100%) rename boards/default/micropython_esp32/examples/{DtJ9jw-02HkG/yVIkKEuzw0zo.mix => mPython/30-2-物联网-高级数据按需上报.mix} (100%) rename boards/default/micropython_esp32/examples/{DtJ9jw-02HkG/_aeVrRDacbKB.mix => mPython/31-1-物联网-单主题数据订阅.mix} (100%) rename boards/default/micropython_esp32/examples/{DtJ9jw-02HkG/5YaF6Rnvr6iM.mix => mPython/31-1-物联网-单主题数据订阅2.mix} (100%) rename boards/default/micropython_esp32/examples/{DtJ9jw-02HkG/oVnPIRh-zKTP.mix => mPython/32-1-物联网-多主题数据订.mix} (100%) rename boards/default/micropython_esp32/examples/{DtJ9jw-02HkG/-WR7iUjoRmKt.mix => mPython/32-2-物联网-多主题数据订2.mix} (100%) rename boards/default/micropython_esp32/examples/{DtJ9jw-02HkG/mEC4ucRTGKrE.mix => mPython/37-1-文件操作-列出文件.mix} (100%) rename boards/default/micropython_esp32/examples/{DtJ9jw-02HkG/WCVai2YgPKHN.mix => mPython/37-2-文件操作-列出文件2.mix} (100%) rename boards/default/micropython_esp32/examples/{DtJ9jw-02HkG/mkmkJDHKJEUh.mix => mPython/38-1-文件操作-文件读写.mix} (100%) rename boards/default/micropython_esp32/examples/{DtJ9jw-02HkG/0x6k54txJFtt.mix => mPython/38-2-文件操作-文件读写2.mix} (100%) rename boards/default/micropython_esp32/styles/{main.fc544ac3.css => main.f3b76c12.css} (100%) rename boards/default/micropython_esp32c2/examples/{-FxsJyL8OSfB/v5xvbx0_7d8E.mix => MixGo MINI/01-1-快速入门-你好世界.mix} (100%) rename boards/default/micropython_esp32c2/examples/{-FxsJyL8OSfB/BNH2ldHY7iqn.mix => MixGo MINI/01-2-快速入门-你好世界2.mix} (100%) rename boards/default/micropython_esp32c2/examples/{-FxsJyL8OSfB/Ml5oibxE6oQn.mix => MixGo MINI/02-1-快速入门-跳动的心.mix} (100%) rename boards/default/micropython_esp32c2/examples/{-FxsJyL8OSfB/Bg_jX1muJsL-.mix => MixGo MINI/02-2-快速入门-为你心动.mix} (100%) rename boards/default/micropython_esp32c2/examples/{-FxsJyL8OSfB/BMh3Na7bR930.mix => MixGo MINI/03-1-快速入门-心随我动.mix} (100%) rename boards/default/micropython_esp32c2/examples/{-FxsJyL8OSfB/kQ_-UGIApAkQ.mix => MixGo MINI/03-2-快速入门-心随我动2.mix} (100%) rename boards/default/micropython_esp32c2/examples/{-FxsJyL8OSfB/S11X1zJHzSUE.mix => MixGo MINI/04-1-快速入门-流动的灯.mix} (100%) rename boards/default/micropython_esp32c2/examples/{-FxsJyL8OSfB/o7IUGaHP_2m-.mix => MixGo MINI/04-2-快速入门-流动的灯2.mix} (100%) rename boards/default/micropython_esp32c2/examples/{-FxsJyL8OSfB/kcPg88lLLMaf.mix => MixGo MINI/05-1-过程控制-双键开关.mix} (100%) rename boards/default/micropython_esp32c2/examples/{-FxsJyL8OSfB/Kr4aE0YXj4Ta.mix => MixGo MINI/05-2-过程控制-单键开关.mix} (100%) rename boards/default/micropython_esp32c2/examples/{-FxsJyL8OSfB/5Ff-WL15x-zr.mix => MixGo MINI/05-3-过程控制-IPO概念.mix} (100%) rename boards/default/micropython_esp32c2/examples/{-FxsJyL8OSfB/Snul41ZJu3ZF.mix => MixGo MINI/06-1-过程控制-声音采集.mix} (100%) rename boards/default/micropython_esp32c2/examples/{-FxsJyL8OSfB/pIL7b5UyioYi.mix => MixGo MINI/06-2-过程控制-看见声音.mix} (100%) rename boards/default/micropython_esp32c2/examples/{-FxsJyL8OSfB/Gkrj8tilp1cw.mix => MixGo MINI/07-1-过程控制-光强采集.mix} (100%) rename boards/default/micropython_esp32c2/examples/{-FxsJyL8OSfB/14ksjIrtCI3x.mix => MixGo MINI/07-2-过程控制-自动补光.mix} (100%) rename boards/default/micropython_esp32c2/examples/{-FxsJyL8OSfB/R2sW6Uf_pfzs.mix => MixGo MINI/08-1-过程控制-接近检测.mix} (100%) rename boards/default/micropython_esp32c2/examples/{-FxsJyL8OSfB/rlrpbxINNllD.mix => MixGo MINI/08-2-过程控制-入侵报警.mix} (100%) rename boards/default/micropython_esp32c2/examples/{-FxsJyL8OSfB/HoPx1IXk7y_5.mix => MixGo MINI/09-1-输入输出-加速度.mix} (100%) rename boards/default/micropython_esp32c2/examples/{-FxsJyL8OSfB/WovoVKt5Xjz9.mix => MixGo MINI/09-2-输入输出-平衡仪.mix} (100%) rename boards/default/micropython_esp32c2/examples/{-FxsJyL8OSfB/4x50SGHLg9XY.mix => MixGo MINI/10-1-输入输出-地磁强度.mix} (100%) rename boards/default/micropython_esp32c2/examples/{-FxsJyL8OSfB/QbljH4De2wH0.mix => MixGo MINI/10-2-输入输出-金属探测.mix} (100%) rename boards/default/micropython_esp32c2/examples/{-FxsJyL8OSfB/BD0rIs0go2B9.mix => MixGo MINI/11-1-输入输出-点阵控制.mix} (100%) rename boards/default/micropython_esp32c2/examples/{-FxsJyL8OSfB/_I78W4dqP8eb.mix => MixGo MINI/11-2-输入输出-光标控制.mix} (100%) rename boards/default/micropython_esp32c2/examples/{-FxsJyL8OSfB/os2hauIx3ft4.mix => MixGo MINI/12-1-输入输出-实时时钟.mix} (100%) rename boards/default/micropython_esp32c2/examples/{-FxsJyL8OSfB/oOZixEdanzVD.mix => MixGo MINI/12-2-输入输出-实时时钟2.mix} (100%) rename boards/default/micropython_esp32c2/examples/{-FxsJyL8OSfB/zaRQJyjS471A.mix => MixGo MINI/13-1-逻辑计算-手速测试.mix} (100%) rename boards/default/micropython_esp32c2/examples/{-FxsJyL8OSfB/Bngmx4Zuf9yC.mix => MixGo MINI/13-2-逻辑计算-手速测试2.mix} (100%) rename boards/default/micropython_esp32c2/examples/{-FxsJyL8OSfB/axRkYNjiF_-M.mix => MixGo MINI/14-1-逻辑计算-反应测试.mix} (100%) rename boards/default/micropython_esp32c2/examples/{-FxsJyL8OSfB/o_DN1lTF9g1k.mix => MixGo MINI/14-2-逻辑计算-反应测试2.mix} (100%) rename boards/default/micropython_esp32c2/examples/{-FxsJyL8OSfB/epskwfXM98hX.mix => MixGo MINI/15-1-逻辑计算-简单打地鼠.mix} (100%) rename boards/default/micropython_esp32c2/examples/{-FxsJyL8OSfB/FY9RhD-Ad7za.mix => MixGo MINI/15-2-逻辑计算-计时打地鼠.mix} (100%) rename boards/default/micropython_esp32c2/examples/{-FxsJyL8OSfB/2lW1lsocM3t4.mix => MixGo MINI/16-1-逻辑计算-开始打地鼠.mix} (100%) rename boards/default/micropython_esp32c2/examples/{-FxsJyL8OSfB/glryKf4mqxkC.mix => MixGo MINI/16-2-逻辑计算-循环打地鼠.mix} (100%) rename boards/default/micropython_esp32c2/examples/{-FxsJyL8OSfB/DGpAXB9S5clc.mix => MixGo MINI/17-0-复杂控制-非中断效果.mix} (100%) rename boards/default/micropython_esp32c2/examples/{-FxsJyL8OSfB/_U-__vWNOH4O.mix => MixGo MINI/17-2-复杂控制-单键中断.mix} (100%) rename boards/default/micropython_esp32c2/examples/{-FxsJyL8OSfB/kesRtD_78pi3.mix => MixGo MINI/18-1-复杂控制-定时计时.mix} (100%) rename boards/default/micropython_esp32c2/examples/{-FxsJyL8OSfB/QFhv56741Cv4.mix => MixGo MINI/18-2-复杂控制-循环计时.mix} (100%) rename boards/default/micropython_esp32c2/examples/{-FxsJyL8OSfB/imuyq1__8070.mix => MixGo MINI/19-1-复杂控制-多线程.mix} (100%) rename boards/default/micropython_esp32c2/examples/{-FxsJyL8OSfB/VOhMnYsLKkaY.mix => MixGo MINI/19-2-复杂控制-多线程与中断.mix} (100%) rename boards/default/micropython_esp32c2/examples/{-FxsJyL8OSfB/rYlYB4f8iThF.mix => MixGo MINI/20-1-复杂控制-异常.mix} (100%) rename boards/default/micropython_esp32c2/examples/{-FxsJyL8OSfB/uIroR2GkfeHK.mix => MixGo MINI/20-2-复杂控制-异常处理.mix} (100%) rename boards/default/micropython_esp32c2/examples/{-FxsJyL8OSfB/8esCzp8Wx0dF.mix => MixGo MINI/21-1-射频识别-读取测试(MEG1).mix} (100%) rename boards/default/micropython_esp32c2/examples/{-FxsJyL8OSfB/MsZzCbSOopr1.mix => MixGo MINI/21-2-射频识别-读取卡号(MEG1).mix} (100%) rename boards/default/micropython_esp32c2/examples/{-FxsJyL8OSfB/Y85kA46EL7TE.mix => MixGo MINI/22-1-射频识别-写卡测试(MEG1).mix} (100%) rename boards/default/micropython_esp32c2/examples/{-FxsJyL8OSfB/fOTGHqC6FoAl.mix => MixGo MINI/22-2-射频识别-持续写卡(MEG1).mix} (100%) rename boards/default/micropython_esp32c2/examples/{-FxsJyL8OSfB/xqAlnAbXFkKR.mix => MixGo MINI/23-1-蓝牙通讯-主机模式.mix} (100%) rename boards/default/micropython_esp32c2/examples/{-FxsJyL8OSfB/h6IjYVQzj5nE.mix => MixGo MINI/23-1-蓝牙通讯-从机模式.mix} (100%) rename boards/default/micropython_esp32c2/examples/{-FxsJyL8OSfB/77KuDaXIwnY9.mix => MixGo MINI/24-1-无线广播-通讯测试.mix} (100%) rename boards/default/micropython_esp32c2/examples/{-FxsJyL8OSfB/0ki7HNWvmdvM.mix => MixGo MINI/24-2-无线广播-防丢检测.mix} (100%) rename boards/default/micropython_esp32c2/examples/{-FxsJyL8OSfB/8Rs6yYffazNM.mix => MixGo MINI/25-1-飞机游戏-显示飞机.mix} (100%) rename boards/default/micropython_esp32c2/examples/{-FxsJyL8OSfB/dYccuxCcJIN_.mix => MixGo MINI/25-2-飞机游戏-移动飞机.mix} (100%) rename boards/default/micropython_esp32c2/examples/{-FxsJyL8OSfB/1vdw4Ccf4KD3.mix => MixGo MINI/26-1-飞机游戏-发射子弹.mix} (100%) rename boards/default/micropython_esp32c2/examples/{-FxsJyL8OSfB/WVvUwNsaOVIv.mix => MixGo MINI/26-2-飞机游戏-移动音效.mix} (100%) rename boards/default/micropython_esp32c2/examples/{-FxsJyL8OSfB/EuXNN4sCJMwp.mix => MixGo MINI/27-1-飞机游戏-显示敌机.mix} (100%) rename boards/default/micropython_esp32c2/examples/{-FxsJyL8OSfB/-xJn-5ONX3DN.mix => MixGo MINI/27-2-飞机游戏-消灭敌机.mix} (100%) rename boards/default/micropython_esp32c2/examples/{-FxsJyL8OSfB/yV-rOwT8RHF1.mix => MixGo MINI/28-1-飞机游戏-显示得分.mix} (100%) rename boards/default/micropython_esp32c2/examples/{-FxsJyL8OSfB/LZR-vku3JjdO.mix => MixGo MINI/28-2-飞机游戏-结束游戏.mix} (100%) rename boards/default/micropython_esp32c2/examples/{-FxsJyL8OSfB/yCYWEKyzY0LC.mix => MixGo MINI/29-1-物联网-简单数据定时上报.mix} (100%) rename boards/default/micropython_esp32c2/examples/{-FxsJyL8OSfB/lywJZLOHFjxN.mix => MixGo MINI/29-2-物联网-复杂数据定时上报.mix} (100%) rename boards/default/micropython_esp32c2/examples/{-FxsJyL8OSfB/G0e5UjR0ZACo.mix => MixGo MINI/30-1-物联网-简单数据按需上报.mix} (100%) rename boards/default/micropython_esp32c2/examples/{-FxsJyL8OSfB/M0c-DIaA1187.mix => MixGo MINI/30-2-物联网-高级数据按需上报.mix} (100%) rename boards/default/micropython_esp32c2/examples/{-FxsJyL8OSfB/aT0CzIUBaNMG.mix => MixGo MINI/31-1-物联网-单主题数据订阅.mix} (100%) rename boards/default/micropython_esp32c2/examples/{-FxsJyL8OSfB/vTBqhn3GAMXF.mix => MixGo MINI/31-1-物联网-单主题数据订阅2.mix} (100%) rename boards/default/micropython_esp32c2/examples/{-FxsJyL8OSfB/IDOpl8aXg6JZ.mix => MixGo MINI/32-1-物联网-多主题数据订.mix} (100%) rename boards/default/micropython_esp32c2/examples/{-FxsJyL8OSfB/mfJCsiOgEuO4.mix => MixGo MINI/32-2-物联网-多主题数据订2.mix} (100%) rename boards/default/micropython_esp32c2/examples/{-FxsJyL8OSfB/0fM8RZ4TFGYi.mix => MixGo MINI/33-1-课堂互动-自由签到.mix} (100%) rename boards/default/micropython_esp32c2/examples/{-FxsJyL8OSfB/CPXvIi7vr6Dh.mix => MixGo MINI/33-2-课堂互动-按需签到.mix} (100%) rename boards/default/micropython_esp32c2/examples/{-FxsJyL8OSfB/97mpvd_UBUs3.mix => MixGo MINI/34-1-课堂互动-一人抢答.mix} (100%) rename boards/default/micropython_esp32c2/examples/{-FxsJyL8OSfB/KRDY3BaMVwGd.mix => MixGo MINI/34-2-课堂互动-多人抢答.mix} (100%) rename boards/default/micropython_esp32c2/examples/{-FxsJyL8OSfB/UEJbqbuF1bei.mix => MixGo MINI/35-1-课堂互动-单选答题.mix} (100%) rename boards/default/micropython_esp32c2/examples/{-FxsJyL8OSfB/vc7gAwdcmd5Y.mix => MixGo MINI/35-2-课堂互动-多选答题.mix} (100%) rename boards/default/micropython_esp32c2/examples/{-FxsJyL8OSfB/EYcB2laI3Eja.mix => MixGo MINI/36-1-课堂互动-点名答题.mix} (100%) rename boards/default/micropython_esp32c2/examples/{-FxsJyL8OSfB/96CcVmmg3sK5.mix => MixGo MINI/36-2-课堂互动-多人点答.mix} (100%) rename boards/default/micropython_esp32c2/examples/{-FxsJyL8OSfB/Gv7hKJp2pxKS.mix => MixGo MINI/37-1-文件操作-列出文件.mix} (100%) rename boards/default/micropython_esp32c2/examples/{-FxsJyL8OSfB/SWuLqHpHgbAC.mix => MixGo MINI/37-2-文件操作-列出文件2.mix} (100%) rename boards/default/micropython_esp32c2/examples/{-FxsJyL8OSfB/Ycb6LSHp9PmC.mix => MixGo MINI/38-1-文件操作-文件读写.mix} (100%) rename boards/default/micropython_esp32c2/examples/{-FxsJyL8OSfB/oY1oLiFzQ5nL.mix => MixGo MINI/38-2-文件操作-文件读写2.mix} (100%) rename boards/default/micropython_esp32c2/examples/{-FxsJyL8OSfB/BtkzuLE4ZYUS.mix => MixGo MINI/39-1-文件操作-录音采集.mix} (100%) rename boards/default/micropython_esp32c2/examples/{-FxsJyL8OSfB/x0BWAoFUZSZX.mix => MixGo MINI/39-2-文件操作-录音重现.mix} (100%) rename boards/default/micropython_esp32c2/examples/{-FxsJyL8OSfB/iCvTfaqrqgZT.mix => MixGo MINI/40-1-文件操作-震动采集.mix} (100%) rename boards/default/micropython_esp32c2/examples/{-FxsJyL8OSfB/x3i1R-n5AlWE.mix => MixGo MINI/40-2-文件操作-震动重现.mix} (100%) rename boards/default/micropython_esp32c2/examples/{-FxsJyL8OSfB/E243OGrdrBjV.mix => MixGo MINI/41-1-智能小车-前进转弯(MEGO).mix} (100%) rename boards/default/micropython_esp32c2/examples/{-FxsJyL8OSfB/HWwIr4ywBI8J.mix => MixGo MINI/41-2-智能小车-圆圈转弯(MEGO).mix} (100%) rename boards/default/micropython_esp32c2/examples/{-FxsJyL8OSfB/mYGJDtxCqsq8.mix => MixGo MINI/42-1-智能小车-智能避障(MEGO).mix} (100%) rename boards/default/micropython_esp32c2/examples/{-FxsJyL8OSfB/s_4eEyKVTp3A.mix => MixGo MINI/42-2-智能小车-智能避障2(MEGO).mix} (100%) rename boards/default/micropython_esp32c2/examples/{-FxsJyL8OSfB/uoemzausHEpK.mix => MixGo MINI/43-1-智能小车-遥控小车(MEGO).mix} (100%) rename boards/default/micropython_esp32c2/examples/{-FxsJyL8OSfB/_MH0Jh-WoGFx.mix => MixGo MINI/43-2-智能小车-体感遥控(MEGO).mix} (100%) rename boards/default/micropython_esp32c2/examples/{-FxsJyL8OSfB/bzQhVR-ziY27.mix => MixGo MINI/44-1-智能小车-P单巡线(MEGO).mix} (100%) rename boards/default/micropython_esp32c2/examples/{-FxsJyL8OSfB/ywDTIgZw5zz_.mix => MixGo MINI/44-2-智能小车-P双巡线(MEGO).mix} (100%) rename boards/default/micropython_esp32c2/styles/{main.cdf64bec.css => main.25d89b66.css} (100%) rename boards/default/micropython_esp32c3/examples/{3xtn-eVfIEev/cwm7i6hsAlP3.mix => MixGo CC/01-1-快速入门-你好世界.mix} (100%) rename boards/default/micropython_esp32c3/examples/{3xtn-eVfIEev/lQRSrbXYYvEm.mix => MixGo CC/01-2-快速入门-你好世界2.mix} (100%) rename boards/default/micropython_esp32c3/examples/{3xtn-eVfIEev/bj1Y8vk4k-Oh.mix => MixGo CC/02-1-快速入门-跳动的心.mix} (100%) rename boards/default/micropython_esp32c3/examples/{3xtn-eVfIEev/9bXVKEzs9Jhx.mix => MixGo CC/02-2-快速入门-为你心动.mix} (100%) rename boards/default/micropython_esp32c3/examples/{3xtn-eVfIEev/tmf2CozYl_FN.mix => MixGo CC/03-1-快速入门-心随我动.mix} (100%) rename boards/default/micropython_esp32c3/examples/{3xtn-eVfIEev/S1g26DNW9muO.mix => MixGo CC/03-2-快速入门-心随我动2.mix} (100%) rename boards/default/micropython_esp32c3/examples/{3xtn-eVfIEev/YrzDcIqSLtyr.mix => MixGo CC/04-1-快速入门-流动的灯.mix} (100%) rename boards/default/micropython_esp32c3/examples/{3xtn-eVfIEev/KKWROTxJwwhe.mix => MixGo CC/04-2-快速入门-流动的灯2.mix} (100%) rename boards/default/micropython_esp32c3/examples/{3xtn-eVfIEev/jltm62sBZtp8.mix => MixGo CC/05-1-过程控制-双键开关.mix} (100%) rename boards/default/micropython_esp32c3/examples/{3xtn-eVfIEev/sahHJ4Yz72Xf.mix => MixGo CC/05-2-过程控制-单键开关.mix} (100%) rename boards/default/micropython_esp32c3/examples/{3xtn-eVfIEev/3LXfiOG5fJZY.mix => MixGo CC/05-3-过程控制-IPO概念.mix} (100%) rename boards/default/micropython_esp32c3/examples/{3xtn-eVfIEev/m3S_qkesHrfb.mix => MixGo CC/06-1-过程控制-声音采集.mix} (100%) rename boards/default/micropython_esp32c3/examples/{3xtn-eVfIEev/ZpU6LyXvc6_6.mix => MixGo CC/06-2-过程控制-看见声音.mix} (100%) rename boards/default/micropython_esp32c3/examples/{3xtn-eVfIEev/b-1WLYwPggUl.mix => MixGo CC/07-1-过程控制-光强采集.mix} (100%) rename boards/default/micropython_esp32c3/examples/{3xtn-eVfIEev/t2nFswXRZdaG.mix => MixGo CC/07-2-过程控制-自动补光.mix} (100%) rename boards/default/micropython_esp32c3/examples/{3xtn-eVfIEev/u1dlumoHEFjq.mix => MixGo CC/08-1-过程控制-接近检测.mix} (100%) rename boards/default/micropython_esp32c3/examples/{3xtn-eVfIEev/29R2V74GpsNX.mix => MixGo CC/08-2-过程控制-入侵报警.mix} (100%) rename boards/default/micropython_esp32c3/examples/{3xtn-eVfIEev/M9j0cJYqpk_d.mix => MixGo CC/09-1-输入输出-加速度.mix} (100%) rename boards/default/micropython_esp32c3/examples/{3xtn-eVfIEev/C-qT6fZ02oZU.mix => MixGo CC/09-2-输入输出-平衡仪.mix} (100%) rename boards/default/micropython_esp32c3/examples/{3xtn-eVfIEev/nW_koMxANmY8.mix => MixGo CC/10-1-输入输出-温湿度.mix} (100%) rename boards/default/micropython_esp32c3/examples/{3xtn-eVfIEev/jrN6Ig0FGoVO.mix => MixGo CC/10-2-输入输出-大气压.mix} (100%) rename boards/default/micropython_esp32c3/examples/{3xtn-eVfIEev/SJj8Bp6gLL8g.mix => MixGo CC/11-1-输入输出-点阵控制.mix} (100%) rename boards/default/micropython_esp32c3/examples/{3xtn-eVfIEev/MI2Hnnr3ovVc.mix => MixGo CC/11-2-输入输出-光标控制.mix} (100%) rename boards/default/micropython_esp32c3/examples/{3xtn-eVfIEev/YSBs-nhEknKo.mix => MixGo CC/12-1-输入输出-实时时钟.mix} (100%) rename boards/default/micropython_esp32c3/examples/{3xtn-eVfIEev/xhBJ-oTaR3v3.mix => MixGo CC/12-2-输入输出-实时时钟2.mix} (100%) rename boards/default/micropython_esp32c3/examples/{3xtn-eVfIEev/-uoQhrB8xqID.mix => MixGo CC/13-1-逻辑计算-手速测试.mix} (100%) rename boards/default/micropython_esp32c3/examples/{3xtn-eVfIEev/xx-ouuZjSvOS.mix => MixGo CC/13-2-逻辑计算-手速测试2.mix} (100%) rename boards/default/micropython_esp32c3/examples/{3xtn-eVfIEev/vhzCw2xG3l9-.mix => MixGo CC/14-1-逻辑计算-反应测试.mix} (100%) rename boards/default/micropython_esp32c3/examples/{3xtn-eVfIEev/Rm7lcIiRVGlj.mix => MixGo CC/14-2-逻辑计算-反应测试2.mix} (100%) rename boards/default/micropython_esp32c3/examples/{3xtn-eVfIEev/aCdhiAwjvd6n.mix => MixGo CC/15-1-逻辑计算-简单打地鼠.mix} (100%) rename boards/default/micropython_esp32c3/examples/{3xtn-eVfIEev/2VIBG-DEtFuf.mix => MixGo CC/15-2-逻辑计算-计时打地鼠.mix} (100%) rename boards/default/micropython_esp32c3/examples/{3xtn-eVfIEev/L8xvIiPciC1t.mix => MixGo CC/16-1-逻辑计算-开始打地鼠.mix} (100%) rename boards/default/micropython_esp32c3/examples/{3xtn-eVfIEev/fFxyBFTS7BLn.mix => MixGo CC/16-2-逻辑计算-循环打地鼠.mix} (100%) rename boards/default/micropython_esp32c3/examples/{3xtn-eVfIEev/b8b-BP6wzcFN.mix => MixGo CC/17-0-复杂控制-非中断效果.mix} (100%) rename boards/default/micropython_esp32c3/examples/{3xtn-eVfIEev/Lx81wGw3Z7Jh.mix => MixGo CC/17-1-复杂控制-双键中断.mix} (100%) rename boards/default/micropython_esp32c3/examples/{3xtn-eVfIEev/HD2JsKuDy5KC.mix => MixGo CC/17-2-复杂控制-单键中断.mix} (100%) rename boards/default/micropython_esp32c3/examples/{3xtn-eVfIEev/SAt354m5iWRE.mix => MixGo CC/18-1-复杂控制-定时计时.mix} (100%) rename boards/default/micropython_esp32c3/examples/{3xtn-eVfIEev/i3eoqrtLGtlJ.mix => MixGo CC/18-2-复杂控制-循环计时.mix} (100%) rename boards/default/micropython_esp32c3/examples/{3xtn-eVfIEev/xiJmR6nRc2fu.mix => MixGo CC/19-1-复杂控制-多线程.mix} (100%) rename boards/default/micropython_esp32c3/examples/{3xtn-eVfIEev/47ZsBNmRMj3p.mix => MixGo CC/19-2-复杂控制-多线程与中断.mix} (100%) rename boards/default/micropython_esp32c3/examples/{3xtn-eVfIEev/aByMfkp8SOx2.mix => MixGo CC/20-1-复杂控制-异常.mix} (100%) rename boards/default/micropython_esp32c3/examples/{3xtn-eVfIEev/lQnfJ7ASWqZP.mix => MixGo CC/20-2-复杂控制-异常处理.mix} (100%) rename boards/default/micropython_esp32c3/examples/{3xtn-eVfIEev/QHY9D736eXEg.mix => MixGo CC/21-1-射频识别-读取测试.mix} (100%) rename boards/default/micropython_esp32c3/examples/{3xtn-eVfIEev/v7GsSxvkKHcD.mix => MixGo CC/21-2-射频识别-读取卡号.mix} (100%) rename boards/default/micropython_esp32c3/examples/{3xtn-eVfIEev/rtNnMobWEUPI.mix => MixGo CC/22-1-射频识别-写卡测试.mix} (100%) rename boards/default/micropython_esp32c3/examples/{3xtn-eVfIEev/QTRh6ZFju3f7.mix => MixGo CC/22-2-射频识别-持续写卡.mix} (100%) rename boards/default/micropython_esp32c3/examples/{3xtn-eVfIEev/816Aq2ngF982.mix => MixGo CC/23-1-蓝牙通讯-主机模式.mix} (100%) rename boards/default/micropython_esp32c3/examples/{3xtn-eVfIEev/jUM3ojDC2k8a.mix => MixGo CC/23-1-蓝牙通讯-从机模式.mix} (100%) rename boards/default/micropython_esp32c3/examples/{3xtn-eVfIEev/dIMx2UhIYy67.mix => MixGo CC/24-1-无线广播-通讯测试.mix} (100%) rename boards/default/micropython_esp32c3/examples/{3xtn-eVfIEev/F2fwFYrTZFZR.mix => MixGo CC/24-2-无线广播-防丢检测.mix} (100%) rename boards/default/micropython_esp32c3/examples/{3xtn-eVfIEev/xrn0Atbp2tXE.mix => MixGo CC/25-1-飞机游戏-显示飞机.mix} (100%) rename boards/default/micropython_esp32c3/examples/{3xtn-eVfIEev/lEwcsS6dzs__.mix => MixGo CC/25-2-飞机游戏-移动飞机.mix} (100%) rename boards/default/micropython_esp32c3/examples/{3xtn-eVfIEev/VHsxkGG_mde4.mix => MixGo CC/26-1-飞机游戏-发射子弹.mix} (100%) rename boards/default/micropython_esp32c3/examples/{3xtn-eVfIEev/4kQUHz8cH0m5.mix => MixGo CC/26-2-飞机游戏-移动音效.mix} (100%) rename boards/default/micropython_esp32c3/examples/{3xtn-eVfIEev/pNT7q9FxV_bv.mix => MixGo CC/27-1-飞机游戏-显示敌机.mix} (100%) rename boards/default/micropython_esp32c3/examples/{3xtn-eVfIEev/oJCThQYrEbaX.mix => MixGo CC/27-2-飞机游戏-消灭敌机.mix} (100%) rename boards/default/micropython_esp32c3/examples/{3xtn-eVfIEev/hPdTgE5edaSf.mix => MixGo CC/28-1-飞机游戏-显示得分.mix} (100%) rename boards/default/micropython_esp32c3/examples/{3xtn-eVfIEev/c_3rztjiR0y4.mix => MixGo CC/28-2-飞机游戏-结束游戏.mix} (100%) rename boards/default/micropython_esp32c3/examples/{3xtn-eVfIEev/Fx-iDmtzfoJS.mix => MixGo CC/29-1-物联网-简单数据定时上报.mix} (100%) rename boards/default/micropython_esp32c3/examples/{3xtn-eVfIEev/7Yp5XG1hDpT2.mix => MixGo CC/29-2-物联网-复杂数据定时上报.mix} (100%) rename boards/default/micropython_esp32c3/examples/{3xtn-eVfIEev/6qfCTYRdBHeX.mix => MixGo CC/30-1-物联网-简单数据按需上报.mix} (100%) rename boards/default/micropython_esp32c3/examples/{3xtn-eVfIEev/yFHaWkAJkSPJ.mix => MixGo CC/30-2-物联网-高级数据按需上报.mix} (100%) rename boards/default/micropython_esp32c3/examples/{3xtn-eVfIEev/FYx5o2zoc8Wx.mix => MixGo CC/31-1-物联网-单主题数据订阅.mix} (100%) rename boards/default/micropython_esp32c3/examples/{3xtn-eVfIEev/yGBfUioCXDeX.mix => MixGo CC/31-1-物联网-单主题数据订阅2.mix} (100%) rename boards/default/micropython_esp32c3/examples/{3xtn-eVfIEev/gDPgd5Wp4j6G.mix => MixGo CC/32-1-物联网-多主题数据订.mix} (100%) rename boards/default/micropython_esp32c3/examples/{3xtn-eVfIEev/eIEJPAGjiBQJ.mix => MixGo CC/32-2-物联网-多主题数据订2.mix} (100%) rename boards/default/micropython_esp32c3/examples/{3xtn-eVfIEev/AL9u16qgPStW.mix => MixGo CC/33-1-课堂互动-自由签到.mix} (100%) rename boards/default/micropython_esp32c3/examples/{3xtn-eVfIEev/KOU17E-hTq1v.mix => MixGo CC/33-2-课堂互动-按需签到.mix} (100%) rename boards/default/micropython_esp32c3/examples/{3xtn-eVfIEev/AMPzHuPagwwB.mix => MixGo CC/34-1-课堂互动-一人抢答.mix} (100%) rename boards/default/micropython_esp32c3/examples/{3xtn-eVfIEev/yzppbh-KbqDl.mix => MixGo CC/34-2-课堂互动-多人抢答.mix} (100%) rename boards/default/micropython_esp32c3/examples/{3xtn-eVfIEev/TujAYJLyVvsO.mix => MixGo CC/35-1-课堂互动-单选答题.mix} (100%) rename boards/default/micropython_esp32c3/examples/{3xtn-eVfIEev/ua3RFTTcI5O_.mix => MixGo CC/35-2-课堂互动-多选答题.mix} (100%) rename boards/default/micropython_esp32c3/examples/{3xtn-eVfIEev/9LB-41zf1BY3.mix => MixGo CC/36-1-课堂互动-点名答题.mix} (100%) rename boards/default/micropython_esp32c3/examples/{3xtn-eVfIEev/T4Tyb8x0Yccb.mix => MixGo CC/36-2-课堂互动-多人点答.mix} (100%) rename boards/default/micropython_esp32c3/examples/{3xtn-eVfIEev/I-YC9CBEqlmH.mix => MixGo CC/37-1-文件操作-列出文件.mix} (100%) rename boards/default/micropython_esp32c3/examples/{3xtn-eVfIEev/uZiJz9zx9v3k.mix => MixGo CC/37-2-文件操作-列出文件2.mix} (100%) rename boards/default/micropython_esp32c3/examples/{3xtn-eVfIEev/Bc0R4zqZpGF5.mix => MixGo CC/38-1-文件操作-文件读写.mix} (100%) rename boards/default/micropython_esp32c3/examples/{3xtn-eVfIEev/CvGBJ7fkiauq.mix => MixGo CC/38-2-文件操作-文件读写2.mix} (100%) rename boards/default/micropython_esp32c3/examples/{3xtn-eVfIEev/a7FZD1CFY0Qn.mix => MixGo CC/39-1-文件操作-录音采集.mix} (100%) rename boards/default/micropython_esp32c3/examples/{3xtn-eVfIEev/OxVHP5kF8Cpf.mix => MixGo CC/39-2-文件操作-录音重现.mix} (100%) rename boards/default/micropython_esp32c3/examples/{3xtn-eVfIEev/TY9QmEmiRzaP.mix => MixGo CC/40-1-文件操作-震动采集.mix} (100%) rename boards/default/micropython_esp32c3/examples/{3xtn-eVfIEev/XDTx5dX4GUuL.mix => MixGo CC/40-2-文件操作-震动重现.mix} (100%) rename boards/default/micropython_esp32c3/examples/{3xtn-eVfIEev/gulPPrxNEb5Y.mix => MixGo CC/41-1-智能小车-前进转弯(MEGO).mix} (100%) rename boards/default/micropython_esp32c3/examples/{3xtn-eVfIEev/esHlIqwvGYAQ.mix => MixGo CC/41-2-智能小车-圆圈转弯(MEGO).mix} (100%) rename boards/default/micropython_esp32c3/examples/{3xtn-eVfIEev/t-Abbo-VifVC.mix => MixGo CC/42-1-智能小车-智能避障(MEGO).mix} (100%) rename boards/default/micropython_esp32c3/examples/{3xtn-eVfIEev/muObLV9PSwro.mix => MixGo CC/42-2-智能小车-智能避障2(MEGO).mix} (100%) rename boards/default/micropython_esp32c3/examples/{3xtn-eVfIEev/4H0N0n3C-Ykv.mix => MixGo CC/43-1-智能小车-遥控小车(MEGO).mix} (100%) rename boards/default/micropython_esp32c3/examples/{3xtn-eVfIEev/m4p27kg2YgMQ.mix => MixGo CC/43-2-智能小车-体感遥控(MEGO).mix} (100%) rename boards/default/micropython_esp32c3/examples/{3xtn-eVfIEev/vluFMCOC1R_Y.mix => MixGo CC/44-1-智能小车-P单巡线(MEGO).mix} (100%) rename boards/default/micropython_esp32c3/examples/{3xtn-eVfIEev/T-a8E012uvsw.mix => MixGo CC/44-2-智能小车-P双巡线(MEGO).mix} (100%) rename boards/default/micropython_esp32c3/examples/{pM1GyYPLf4md/JuxAfLycf4XM.mix => MixGo ME/01-1-快速入门-你好世界.mix} (100%) rename boards/default/micropython_esp32c3/examples/{pM1GyYPLf4md/ZOHJC11soikB.mix => MixGo ME/01-2-快速入门-你好世界2.mix} (100%) rename boards/default/micropython_esp32c3/examples/{pM1GyYPLf4md/GIjCNWASNJYH.mix => MixGo ME/02-1-快速入门-跳动的心.mix} (100%) rename boards/default/micropython_esp32c3/examples/{pM1GyYPLf4md/8AE2FaILJGuY.mix => MixGo ME/02-2-快速入门-为你心动.mix} (100%) rename boards/default/micropython_esp32c3/examples/{pM1GyYPLf4md/ZZgTWb2G5nD5.mix => MixGo ME/03-1-快速入门-心随我动.mix} (100%) rename boards/default/micropython_esp32c3/examples/{pM1GyYPLf4md/BrBf2v4UBxfx.mix => MixGo ME/03-2-快速入门-心随我动2.mix} (100%) rename boards/default/micropython_esp32c3/examples/{pM1GyYPLf4md/eAujaOKbiNUU.mix => MixGo ME/04-1-快速入门-流动的灯.mix} (100%) rename boards/default/micropython_esp32c3/examples/{pM1GyYPLf4md/WGREBp0lD_Oi.mix => MixGo ME/04-2-快速入门-流动的灯2.mix} (100%) rename boards/default/micropython_esp32c3/examples/{pM1GyYPLf4md/WYlQFyAx8cZL.mix => MixGo ME/05-1-过程控制-双键开关.mix} (100%) rename boards/default/micropython_esp32c3/examples/{pM1GyYPLf4md/RExfgUNdSL5T.mix => MixGo ME/05-2-过程控制-单键开关.mix} (100%) rename boards/default/micropython_esp32c3/examples/{pM1GyYPLf4md/Iru0tabUxyVA.mix => MixGo ME/05-3-过程控制-IPO概念.mix} (100%) rename boards/default/micropython_esp32c3/examples/{pM1GyYPLf4md/nMbZUc2N_MFf.mix => MixGo ME/06-1-过程控制-声音采集.mix} (100%) rename boards/default/micropython_esp32c3/examples/{pM1GyYPLf4md/aqQwDJ5rvyMR.mix => MixGo ME/06-2-过程控制-看见声音.mix} (100%) rename boards/default/micropython_esp32c3/examples/{pM1GyYPLf4md/e36oJbb9-jr4.mix => MixGo ME/07-1-过程控制-光强采集.mix} (100%) rename boards/default/micropython_esp32c3/examples/{pM1GyYPLf4md/2cNr1Z-ObB3K.mix => MixGo ME/07-2-过程控制-自动补光.mix} (100%) rename boards/default/micropython_esp32c3/examples/{pM1GyYPLf4md/xuMF8pgEDvsm.mix => MixGo ME/08-1-过程控制-接近检测.mix} (100%) rename boards/default/micropython_esp32c3/examples/{pM1GyYPLf4md/xL-O-lwqfd17.mix => MixGo ME/08-2-过程控制-入侵报警.mix} (100%) rename boards/default/micropython_esp32c3/examples/{pM1GyYPLf4md/ePoAHlKNkdUQ.mix => MixGo ME/09-1-输入输出-加速度.mix} (100%) rename boards/default/micropython_esp32c3/examples/{pM1GyYPLf4md/IXFFTvJ3cEHa.mix => MixGo ME/09-2-输入输出-平衡仪.mix} (100%) rename boards/default/micropython_esp32c3/examples/{pM1GyYPLf4md/G8mA6hp9mNPj.mix => MixGo ME/10-1-输入输出-地磁强度.mix} (100%) rename boards/default/micropython_esp32c3/examples/{pM1GyYPLf4md/bF9yMhmriYUW.mix => MixGo ME/10-2-输入输出-金属探测.mix} (100%) rename boards/default/micropython_esp32c3/examples/{pM1GyYPLf4md/bQ6rQdy51030.mix => MixGo ME/11-1-输入输出-点阵控制.mix} (100%) rename boards/default/micropython_esp32c3/examples/{pM1GyYPLf4md/20GkZUZNaMxl.mix => MixGo ME/11-2-输入输出-光标控制.mix} (100%) rename boards/default/micropython_esp32c3/examples/{pM1GyYPLf4md/SP9CBOn0MRHT.mix => MixGo ME/12-1-输入输出-实时时钟.mix} (100%) rename boards/default/micropython_esp32c3/examples/{pM1GyYPLf4md/dx_Gq8Hj81EB.mix => MixGo ME/12-2-输入输出-实时时钟2.mix} (100%) rename boards/default/micropython_esp32c3/examples/{pM1GyYPLf4md/4-F9vgJ_Rcq-.mix => MixGo ME/13-1-逻辑计算-手速测试.mix} (100%) rename boards/default/micropython_esp32c3/examples/{pM1GyYPLf4md/0jz4RUTD9J3B.mix => MixGo ME/13-2-逻辑计算-手速测试2.mix} (100%) rename boards/default/micropython_esp32c3/examples/{pM1GyYPLf4md/NhjMkAwsLjVl.mix => MixGo ME/14-1-逻辑计算-反应测试.mix} (100%) rename boards/default/micropython_esp32c3/examples/{pM1GyYPLf4md/gqux4ECn-mto.mix => MixGo ME/14-2-逻辑计算-反应测试2.mix} (100%) rename boards/default/micropython_esp32c3/examples/{pM1GyYPLf4md/VLVIlccU7Dsr.mix => MixGo ME/15-1-逻辑计算-简单打地鼠.mix} (100%) rename boards/default/micropython_esp32c3/examples/{pM1GyYPLf4md/AbKS6SqIZNM0.mix => MixGo ME/15-2-逻辑计算-计时打地鼠.mix} (100%) rename boards/default/micropython_esp32c3/examples/{pM1GyYPLf4md/CyzQsleYzPiw.mix => MixGo ME/16-1-逻辑计算-开始打地鼠.mix} (100%) rename boards/default/micropython_esp32c3/examples/{pM1GyYPLf4md/lSyDuvyYQ9MS.mix => MixGo ME/16-2-逻辑计算-循环打地鼠.mix} (100%) rename boards/default/micropython_esp32c3/examples/{pM1GyYPLf4md/BwALJYMkYTgD.mix => MixGo ME/17-0-复杂控制-非中断效果.mix} (100%) rename boards/default/micropython_esp32c3/examples/{pM1GyYPLf4md/HcikkM8lXYNB.mix => MixGo ME/17-2-复杂控制-单键中断.mix} (100%) rename boards/default/micropython_esp32c3/examples/{pM1GyYPLf4md/Ek_TBvqkCoeF.mix => MixGo ME/18-1-复杂控制-定时计时.mix} (100%) rename boards/default/micropython_esp32c3/examples/{pM1GyYPLf4md/NgBAbVnM8tsA.mix => MixGo ME/18-2-复杂控制-循环计时.mix} (100%) rename boards/default/micropython_esp32c3/examples/{pM1GyYPLf4md/RyUFym9fDskL.mix => MixGo ME/19-1-复杂控制-多线程.mix} (100%) rename boards/default/micropython_esp32c3/examples/{pM1GyYPLf4md/xSm5j10RjLy4.mix => MixGo ME/19-2-复杂控制-多线程与中断.mix} (100%) rename boards/default/micropython_esp32c3/examples/{pM1GyYPLf4md/rOISlIounrSj.mix => MixGo ME/20-1-复杂控制-异常.mix} (100%) rename boards/default/micropython_esp32c3/examples/{pM1GyYPLf4md/YtFuA4Q0FPc-.mix => MixGo ME/20-2-复杂控制-异常处理.mix} (100%) rename boards/default/micropython_esp32c3/examples/{pM1GyYPLf4md/MSFROSxWiyfP.mix => MixGo ME/21-1-射频识别-读取测试(MEG1).mix} (100%) rename boards/default/micropython_esp32c3/examples/{pM1GyYPLf4md/acv4vztvxe31.mix => MixGo ME/21-2-射频识别-读取卡号(MEG1).mix} (100%) rename boards/default/micropython_esp32c3/examples/{pM1GyYPLf4md/Qwa5Wq4_BtcF.mix => MixGo ME/22-1-射频识别-写卡测试(MEG1).mix} (100%) rename boards/default/micropython_esp32c3/examples/{pM1GyYPLf4md/hR9Os1HLu0NN.mix => MixGo ME/22-2-射频识别-持续写卡(MEG1).mix} (100%) rename boards/default/micropython_esp32c3/examples/{pM1GyYPLf4md/dFwtc5evqVnK.mix => MixGo ME/23-1-蓝牙通讯-主机模式.mix} (100%) rename boards/default/micropython_esp32c3/examples/{pM1GyYPLf4md/XTbEdueEetoV.mix => MixGo ME/23-1-蓝牙通讯-从机模式.mix} (100%) rename boards/default/micropython_esp32c3/examples/{pM1GyYPLf4md/ygF272fmeQ9Q.mix => MixGo ME/24-1-无线广播-通讯测试.mix} (100%) rename boards/default/micropython_esp32c3/examples/{pM1GyYPLf4md/O1EI4zTz7-32.mix => MixGo ME/24-2-无线广播-防丢检测.mix} (100%) rename boards/default/micropython_esp32c3/examples/{pM1GyYPLf4md/6v3IjA6yrbzK.mix => MixGo ME/25-1-飞机游戏-显示飞机.mix} (100%) rename boards/default/micropython_esp32c3/examples/{pM1GyYPLf4md/yo52SfDx2Zcl.mix => MixGo ME/25-2-飞机游戏-移动飞机.mix} (100%) rename boards/default/micropython_esp32c3/examples/{pM1GyYPLf4md/bk0YRrO0uW4J.mix => MixGo ME/26-1-飞机游戏-发射子弹.mix} (100%) rename boards/default/micropython_esp32c3/examples/{pM1GyYPLf4md/x_COPBhpu0eG.mix => MixGo ME/26-2-飞机游戏-移动音效.mix} (100%) rename boards/default/micropython_esp32c3/examples/{pM1GyYPLf4md/6W6ha0br_xGt.mix => MixGo ME/27-1-飞机游戏-显示敌机.mix} (100%) rename boards/default/micropython_esp32c3/examples/{pM1GyYPLf4md/YwZJEA0XTnfg.mix => MixGo ME/27-2-飞机游戏-消灭敌机.mix} (100%) rename boards/default/micropython_esp32c3/examples/{pM1GyYPLf4md/aHzC0WyuN18P.mix => MixGo ME/28-1-飞机游戏-显示得分.mix} (100%) rename boards/default/micropython_esp32c3/examples/{pM1GyYPLf4md/bscUBuAQmNoX.mix => MixGo ME/28-2-飞机游戏-结束游戏.mix} (100%) rename boards/default/micropython_esp32c3/examples/{pM1GyYPLf4md/3fq4QDwX_Cza.mix => MixGo ME/29-1-物联网-简单数据定时上报.mix} (100%) rename boards/default/micropython_esp32c3/examples/{pM1GyYPLf4md/xDj4udwpodWl.mix => MixGo ME/29-2-物联网-复杂数据定时上报.mix} (100%) rename boards/default/micropython_esp32c3/examples/{pM1GyYPLf4md/2dK-f3oliXG5.mix => MixGo ME/30-1-物联网-简单数据按需上报.mix} (100%) rename boards/default/micropython_esp32c3/examples/{pM1GyYPLf4md/v6q60HQQXbKP.mix => MixGo ME/30-2-物联网-高级数据按需上报.mix} (100%) rename boards/default/micropython_esp32c3/examples/{pM1GyYPLf4md/cEVEK-PvCGYW.mix => MixGo ME/31-1-物联网-单主题数据订阅.mix} (100%) rename boards/default/micropython_esp32c3/examples/{pM1GyYPLf4md/4HhGE6AkvHCy.mix => MixGo ME/31-1-物联网-单主题数据订阅2.mix} (100%) rename boards/default/micropython_esp32c3/examples/{pM1GyYPLf4md/99Yv_eSC0vyO.mix => MixGo ME/32-1-物联网-多主题数据订.mix} (100%) rename boards/default/micropython_esp32c3/examples/{pM1GyYPLf4md/Zhd2Dw13zffr.mix => MixGo ME/32-2-物联网-多主题数据订2.mix} (100%) rename boards/default/micropython_esp32c3/examples/{pM1GyYPLf4md/doV9jZB6RkEa.mix => MixGo ME/33-1-课堂互动-自由签到.mix} (100%) rename boards/default/micropython_esp32c3/examples/{pM1GyYPLf4md/m78gq17R2AHH.mix => MixGo ME/33-2-课堂互动-按需签到.mix} (100%) rename boards/default/micropython_esp32c3/examples/{pM1GyYPLf4md/l2l_cOpx8ApQ.mix => MixGo ME/34-1-课堂互动-一人抢答.mix} (100%) rename boards/default/micropython_esp32c3/examples/{pM1GyYPLf4md/naMxZcgk2Bbf.mix => MixGo ME/34-2-课堂互动-多人抢答.mix} (100%) rename boards/default/micropython_esp32c3/examples/{pM1GyYPLf4md/W1uMzDTU0NZ-.mix => MixGo ME/35-1-课堂互动-单选答题.mix} (100%) rename boards/default/micropython_esp32c3/examples/{pM1GyYPLf4md/sZiKMkm5va8d.mix => MixGo ME/35-2-课堂互动-多选答题.mix} (100%) rename boards/default/micropython_esp32c3/examples/{pM1GyYPLf4md/7UmViJx9QkeR.mix => MixGo ME/36-1-课堂互动-点名答题.mix} (100%) rename boards/default/micropython_esp32c3/examples/{pM1GyYPLf4md/9G6o8PZjF8RH.mix => MixGo ME/36-2-课堂互动-多人点答.mix} (100%) rename boards/default/micropython_esp32c3/examples/{pM1GyYPLf4md/VF7Y8AvVconj.mix => MixGo ME/37-1-文件操作-列出文件.mix} (100%) rename boards/default/micropython_esp32c3/examples/{pM1GyYPLf4md/nMliuWN1zdEq.mix => MixGo ME/37-2-文件操作-列出文件2.mix} (100%) rename boards/default/micropython_esp32c3/examples/{pM1GyYPLf4md/hv3imnzFunSZ.mix => MixGo ME/38-1-文件操作-文件读写.mix} (100%) rename boards/default/micropython_esp32c3/examples/{pM1GyYPLf4md/xQmVvnnfc2Mo.mix => MixGo ME/38-2-文件操作-文件读写2.mix} (100%) rename boards/default/micropython_esp32c3/examples/{pM1GyYPLf4md/4ENRzu9PAb0A.mix => MixGo ME/39-1-文件操作-录音采集.mix} (100%) rename boards/default/micropython_esp32c3/examples/{pM1GyYPLf4md/sYXD1yYH-dQf.mix => MixGo ME/39-2-文件操作-录音重现.mix} (100%) rename boards/default/micropython_esp32c3/examples/{pM1GyYPLf4md/qP8ezACznzXd.mix => MixGo ME/40-1-文件操作-震动采集.mix} (100%) rename boards/default/micropython_esp32c3/examples/{pM1GyYPLf4md/mnbAzPMKLgvJ.mix => MixGo ME/40-2-文件操作-震动重现.mix} (100%) rename boards/default/micropython_esp32c3/examples/{pM1GyYPLf4md/_DjMEoL7OaDA.mix => MixGo ME/41-1-智能小车-前进转弯(MEGO).mix} (100%) rename boards/default/micropython_esp32c3/examples/{pM1GyYPLf4md/MsEEyshYwYhZ.mix => MixGo ME/41-2-智能小车-圆圈转弯(MEGO).mix} (100%) rename boards/default/micropython_esp32c3/examples/{pM1GyYPLf4md/RyCuBZU-qpgC.mix => MixGo ME/42-1-智能小车-智能避障(MEGO).mix} (100%) rename boards/default/micropython_esp32c3/examples/{pM1GyYPLf4md/8fIzKKdZWA_1.mix => MixGo ME/42-2-智能小车-智能避障2(MEGO).mix} (100%) rename boards/default/micropython_esp32c3/examples/{pM1GyYPLf4md/eYnZLunMtPN9.mix => MixGo ME/43-1-智能小车-遥控小车(MEGO).mix} (100%) rename boards/default/micropython_esp32c3/examples/{pM1GyYPLf4md/6rx-15SWmGOv.mix => MixGo ME/43-2-智能小车-体感遥控(MEGO).mix} (100%) rename boards/default/micropython_esp32c3/examples/{pM1GyYPLf4md/m_LeL5WcSQa7.mix => MixGo ME/44-1-智能小车-P单巡线(MEGO).mix} (100%) rename boards/default/micropython_esp32c3/examples/{pM1GyYPLf4md/b7tqJ1xsjSa7.mix => MixGo ME/44-2-智能小车-P双巡线(MEGO).mix} (100%) rename boards/default/micropython_esp32c3/styles/{main.6980044f.css => main.3bd7dce0.css} (100%) rename boards/default/micropython_esp32s2/examples/{Ft_3dOuQNbjZ.mix => 01-1-快速入门-你好世界.mix} (100%) rename boards/default/micropython_esp32s2/examples/{nhrkAXiOBX8C.mix => 01-2-快速入门-你好世界2.mix} (100%) rename boards/default/micropython_esp32s2/examples/{XneMa571hj9g.mix => 02-1-快速入门-跳动的心.mix} (100%) rename boards/default/micropython_esp32s2/examples/{QpZ9MUlWKPs4.mix => 02-2-快速入门-为你心动.mix} (100%) rename boards/default/micropython_esp32s2/examples/{5hwQBFvcDVQN.mix => 03-1-快速入门-心随我动.mix} (100%) rename boards/default/micropython_esp32s2/examples/{0J2iONUUCJ1n.mix => 03-2-快速入门-心随我动2.mix} (100%) rename boards/default/micropython_esp32s2/examples/{impjKXxoEKx2.mix => 04-1-快速入门-流动的灯.mix} (100%) rename boards/default/micropython_esp32s2/examples/{HYFg8ytbIha7.mix => 04-2-快速入门-流动的灯2.mix} (100%) rename boards/default/micropython_esp32s2/examples/{xgVqPzRwVImC.mix => 05-1-过程控制-双键开关.mix} (100%) rename boards/default/micropython_esp32s2/examples/{d9ysZnqoy2Gv.mix => 05-2-过程控制-单键开关.mix} (100%) rename boards/default/micropython_esp32s2/examples/{fyG-0KHQrREy.mix => 05-3-过程控制-IPO概念.mix} (100%) rename boards/default/micropython_esp32s2/examples/{9aXbEiIURWwK.mix => 06-1-过程控制-声音采集.mix} (100%) rename boards/default/micropython_esp32s2/examples/{1xNCtTBN-Nbj.mix => 06-2-过程控制-看见声音.mix} (100%) rename boards/default/micropython_esp32s2/examples/{NWIlLbH1vPC6.mix => 07-1-过程控制-光强采集.mix} (100%) rename boards/default/micropython_esp32s2/examples/{f5o1myjT4xRJ.mix => 07-2-过程控制-自动补光.mix} (100%) rename boards/default/micropython_esp32s2/examples/{aYy8aaDJgbve.mix => 08-1-过程控制-接近检测.mix} (100%) rename boards/default/micropython_esp32s2/examples/{toOxmAj9vBT4.mix => 08-2-过程控制-入侵报警.mix} (100%) rename boards/default/micropython_esp32s2/examples/{bWOXtAj9bk_Z.mix => 09-1-输入输出-加速度.mix} (100%) rename boards/default/micropython_esp32s2/examples/{bP9bQh39meB8.mix => 09-2-输入输出-平衡仪.mix} (100%) rename boards/default/micropython_esp32s2/examples/{NecientEBnDJ.mix => 10-1-输入输出-触摸按键.mix} (100%) rename boards/default/micropython_esp32s2/examples/{gfD5_Ky30MA4.mix => 10-2-输入输出-减压神器.mix} (100%) rename boards/default/micropython_esp32s2/examples/{O3zTXb_DzhoO.mix => 11-1-输入输出-点阵控制.mix} (100%) rename boards/default/micropython_esp32s2/examples/{XQ7E8gcz2rTZ.mix => 11-2-输入输出-光标控制.mix} (100%) rename boards/default/micropython_esp32s2/examples/{bSNB5kLbsJKq.mix => 12-1-输入输出-实时时钟.mix} (100%) rename boards/default/micropython_esp32s2/examples/{buHQQB9TBNk3.mix => 12-2-输入输出-实时时钟2.mix} (100%) rename boards/default/micropython_esp32s2/examples/{edHsB_c1Kr4D.mix => 13-1-逻辑计算-手速测试.mix} (100%) rename boards/default/micropython_esp32s2/examples/{oby3iTTXgIZP.mix => 13-2-逻辑计算-手速测试2.mix} (100%) rename boards/default/micropython_esp32s2/examples/{qW_pzAO3z53Z.mix => 14-1-逻辑计算-反应测试.mix} (100%) rename boards/default/micropython_esp32s2/examples/{_q4-VqzkQM7y.mix => 14-2-逻辑计算-反应测试2.mix} (100%) rename boards/default/micropython_esp32s2/examples/{r76FVTyaKmhQ.mix => 15-1-逻辑计算-简单打地鼠.mix} (100%) rename boards/default/micropython_esp32s2/examples/{8EqCJ2ux6p2W.mix => 15-2-逻辑计算-计时打地鼠.mix} (100%) rename boards/default/micropython_esp32s2/examples/{d6OhCvx9Y_10.mix => 16-1-逻辑计算-开始打地鼠.mix} (100%) rename boards/default/micropython_esp32s2/examples/{S_VMvUxa9m3v.mix => 16-2-逻辑计算-循环打地鼠.mix} (100%) rename boards/default/micropython_esp32s2/examples/{zLu1vs_FG-CE.mix => 17-0-复杂控制-非中断效果.mix} (100%) rename boards/default/micropython_esp32s2/examples/{469F_xib7udN.mix => 17-1-复杂控制-双键中断.mix} (100%) rename boards/default/micropython_esp32s2/examples/{fMw6hkuBaJk1.mix => 17-2-复杂控制-单键中断.mix} (100%) rename boards/default/micropython_esp32s2/examples/{OiLlhdZuq1vN.mix => 18-1-复杂控制-定时计时.mix} (100%) rename boards/default/micropython_esp32s2/examples/{GL-J9cPLc7RW.mix => 18-2-复杂控制-循环计时.mix} (100%) rename boards/default/micropython_esp32s2/examples/{llGxVNx50qP1.mix => 19-1-复杂控制-多线程.mix} (100%) rename boards/default/micropython_esp32s2/examples/{nHNrYU-ltr5Y.mix => 19-2-复杂控制-多线程与中断.mix} (100%) rename boards/default/micropython_esp32s2/examples/{f5Z_PB2Mmvo4.mix => 20-1-复杂控制-异常.mix} (100%) rename boards/default/micropython_esp32s2/examples/{-ZVn0mU-KQyE.mix => 20-2-复杂控制-异常处理.mix} (100%) rename boards/default/micropython_esp32s2/examples/{SMpCxyoh_THU.mix => 21-1-红外接近-单挥手测试.mix} (100%) rename boards/default/micropython_esp32s2/examples/{NaLcmfKJly6h.mix => 21-2-红外接近-双挥手测试.mix} (100%) rename boards/default/micropython_esp32s2/examples/{k2RwPzAyy9DV.mix => 22-1-红外接近-双门人数统计.mix} (100%) rename boards/default/micropython_esp32s2/examples/{ZBH-6wVjTzgj.mix => 22-2-红外接近-单门人数统计.mix} (100%) rename boards/default/micropython_esp32s2/examples/{cqqq_Nsq6_lP.mix => 23-1-红外遥控-数据收发.mix} (100%) rename boards/default/micropython_esp32s2/examples/{hsGz9kNEJgxt.mix => 23-2-红外遥控-遥控点灯.mix} (100%) rename boards/default/micropython_esp32s2/examples/{GPzVIdQ28htj.mix => 24-1-无线广播-通讯测试.mix} (100%) rename boards/default/micropython_esp32s2/examples/{tBFheefSA6iM.mix => 24-2-无线广播-防丢检测.mix} (100%) rename boards/default/micropython_esp32s2/examples/{vZ0aFkUHmRH5.mix => 25-1-飞机游戏-显示飞机.mix} (100%) rename boards/default/micropython_esp32s2/examples/{nQ9AL9BzXvjT.mix => 25-2-飞机游戏-移动飞机.mix} (100%) rename boards/default/micropython_esp32s2/examples/{RaZoJQs83Leu.mix => 26-1-飞机游戏-发射子弹.mix} (100%) rename boards/default/micropython_esp32s2/examples/{dLjTSanU_E1L.mix => 26-2-飞机游戏-移动音效.mix} (100%) rename boards/default/micropython_esp32s2/examples/{JZQdcmrnCRfU.mix => 27-1-飞机游戏-显示敌机.mix} (100%) rename boards/default/micropython_esp32s2/examples/{9wwH6NAjqFox.mix => 27-2-飞机游戏-消灭敌机.mix} (100%) rename boards/default/micropython_esp32s2/examples/{yAmca_Wsacbm.mix => 28-1-飞机游戏-显示得分.mix} (100%) rename boards/default/micropython_esp32s2/examples/{ue5IbCIKNVQF.mix => 28-2-飞机游戏-结束游戏.mix} (100%) rename boards/default/micropython_esp32s2/examples/{EiaEQhIJwTEC.mix => 29-1-物联网-简单数据定时上报.mix} (100%) rename boards/default/micropython_esp32s2/examples/{ZZwcbu7llDCI.mix => 29-2-物联网-复杂数据定时上报.mix} (100%) rename boards/default/micropython_esp32s2/examples/{jSqHU2tyrbe5.mix => 30-1-物联网-简单数据按需上报.mix} (100%) rename boards/default/micropython_esp32s2/examples/{oxQp-IcPwoFx.mix => 30-2-物联网-高级数据按需上报.mix} (100%) rename boards/default/micropython_esp32s2/examples/{6hMcDGgJY2B_.mix => 31-1-物联网-单主题数据订阅.mix} (100%) rename boards/default/micropython_esp32s2/examples/{h8P0KrxXc6PN.mix => 31-1-物联网-单主题数据订阅2.mix} (100%) rename boards/default/micropython_esp32s2/examples/{BYh2UUq8jJqM.mix => 32-1-物联网-多主题数据订.mix} (100%) rename boards/default/micropython_esp32s2/examples/{2DLZcEpK4tlq.mix => 32-2-物联网-多主题数据订2.mix} (100%) rename boards/default/micropython_esp32s2/examples/{SjSkwSFkLh7P.mix => 33-1-课堂互动-自由签到.mix} (100%) rename boards/default/micropython_esp32s2/examples/{MoYIOtlxSlMT.mix => 33-2-课堂互动-按需签到.mix} (100%) rename boards/default/micropython_esp32s2/examples/{huvk_e5EMks4.mix => 34-1-课堂互动-一人抢答.mix} (100%) rename boards/default/micropython_esp32s2/examples/{43JuL4EtPaVS.mix => 34-2-课堂互动-多人抢答.mix} (100%) rename boards/default/micropython_esp32s2/examples/{NKvJ490legDU.mix => 35-1-课堂互动-单选答题.mix} (100%) rename boards/default/micropython_esp32s2/examples/{rHJX95MPnMEh.mix => 35-2-课堂互动-多选答题.mix} (100%) rename boards/default/micropython_esp32s2/examples/{De2mslaGOpAG.mix => 36-1-课堂互动-点名答题.mix} (100%) rename boards/default/micropython_esp32s2/examples/{6E3fv0QzsfrA.mix => 36-2-课堂互动-多人点答.mix} (100%) rename boards/default/micropython_esp32s2/examples/{W80o5fTR_Nfo.mix => 37-1-文件操作-列出文件.mix} (100%) rename boards/default/micropython_esp32s2/examples/{VEVNFoIoo51c.mix => 37-2-文件操作-列出文件2.mix} (100%) rename boards/default/micropython_esp32s2/examples/{bAV8wQQsmlyu.mix => 38-1-文件操作-文件读写.mix} (100%) rename boards/default/micropython_esp32s2/examples/{WkWE0xyuMjzX.mix => 38-2-文件操作-文件读写2.mix} (100%) rename boards/default/micropython_esp32s2/examples/{6_mPOufR4STG.mix => 39-1-文件操作-录音采集.mix} (100%) rename boards/default/micropython_esp32s2/examples/{-VulE2BiTf3V.mix => 39-2-文件操作-录音重现.mix} (100%) rename boards/default/micropython_esp32s2/examples/{lIEpHcuYXynW.mix => 40-1-文件操作-震动采集.mix} (100%) rename boards/default/micropython_esp32s2/examples/{VmEJCs_kowjv.mix => 40-2-文件操作-震动重现.mix} (100%) rename boards/default/micropython_esp32s2/examples/{w08r8fYZ0cZj.mix => 41-1-智能小车-前进转弯(MEGO).mix} (100%) rename boards/default/micropython_esp32s2/examples/{GpFna73kNGE5.mix => 41-2-智能小车-圆圈转弯(MEGO).mix} (100%) rename boards/default/micropython_esp32s2/examples/{Jb-WGE11wPMt.mix => 42-1-智能小车-智能避障(MEGO).mix} (100%) rename boards/default/micropython_esp32s2/examples/{gPtzunGmbNex.mix => 42-2-智能小车-智能避障2(MEGO).mix} (100%) rename boards/default/micropython_esp32s2/examples/{xb7pLim5KQdt.mix => 43-1-智能小车-遥控小车(MEGO).mix} (100%) rename boards/default/micropython_esp32s2/examples/{1l80Ir4XUkKe.mix => 43-2-智能小车-体感遥控(MEGO).mix} (100%) rename boards/default/micropython_esp32s2/examples/{b7kbC7kSy8Ad.mix => 44-1-智能小车-P单巡线(MEGO).mix} (100%) rename boards/default/micropython_esp32s2/examples/{RKAjR0gs6rLo.mix => 44-2-智能小车-P双巡线(MEGO).mix} (100%) rename boards/default/micropython_esp32s2/styles/{main.c124fb9c.css => main.31d1eaa2.css} (100%) rename boards/default/micropython_esp32s3/examples/{spaL08kpMjzN/x41WSrAxF71W.mix => MixGo Nova/01-1-快速入门-你好世界.mix} (100%) rename boards/default/micropython_esp32s3/examples/{spaL08kpMjzN/bK5kY2I5LWmg.mix => MixGo Nova/01-2-快速入门-你好世界2.mix} (100%) rename boards/default/micropython_esp32s3/examples/{spaL08kpMjzN/e-iJ94EI20CB.mix => MixGo Nova/02-1-快速入门-跳动的心.mix} (100%) rename boards/default/micropython_esp32s3/examples/{spaL08kpMjzN/0tf0NL2QIf83.mix => MixGo Nova/02-2-快速入门-为你心动.mix} (100%) rename boards/default/micropython_esp32s3/examples/{spaL08kpMjzN/siBFg3T4u82Y.mix => MixGo Nova/03-1-快速入门-心随我动.mix} (100%) rename boards/default/micropython_esp32s3/examples/{spaL08kpMjzN/6sxoFcwWmpxQ.mix => MixGo Nova/03-2-快速入门-心随我动2.mix} (100%) rename boards/default/micropython_esp32s3/examples/{spaL08kpMjzN/WTXHzHc1EaMe.mix => MixGo Nova/04-1-快速入门-流动的灯.mix} (100%) rename boards/default/micropython_esp32s3/examples/{spaL08kpMjzN/luEYbAUPAyaA.mix => MixGo Nova/04-2-快速入门-流动的灯2.mix} (100%) rename boards/default/micropython_esp32s3/examples/{spaL08kpMjzN/jDxwGSvQK9oc.mix => MixGo Nova/05-1-过程控制-双键开关.mix} (100%) rename boards/default/micropython_esp32s3/examples/{spaL08kpMjzN/Z7wvmTL_Mva2.mix => MixGo Nova/05-2-过程控制-单键开关.mix} (100%) rename boards/default/micropython_esp32s3/examples/{spaL08kpMjzN/rCWebX-xC9DT.mix => MixGo Nova/05-3-过程控制-IPO概念.mix} (100%) rename boards/default/micropython_esp32s3/examples/{spaL08kpMjzN/ZnfHO4V6wT9S.mix => MixGo Nova/06-1-过程控制-声音采集.mix} (100%) rename boards/default/micropython_esp32s3/examples/{spaL08kpMjzN/87xZNVSTv5Eg.mix => MixGo Nova/06-2-过程控制-看见声音.mix} (100%) rename boards/default/micropython_esp32s3/examples/{spaL08kpMjzN/VxVKsTZ-aA7J.mix => MixGo Nova/07-1-过程控制-光强采集.mix} (100%) rename boards/default/micropython_esp32s3/examples/{spaL08kpMjzN/qMnDxP1KYyQD.mix => MixGo Nova/07-2-过程控制-自动补光.mix} (100%) rename boards/default/micropython_esp32s3/examples/{spaL08kpMjzN/KCJLca0vfj94.mix => MixGo Nova/08-1-过程控制-接近检测.mix} (100%) rename boards/default/micropython_esp32s3/examples/{spaL08kpMjzN/K5Sf-kL172z5.mix => MixGo Nova/08-2-过程控制-入侵报警.mix} (100%) rename boards/default/micropython_esp32s3/examples/{spaL08kpMjzN/WTWqNQ8RU2Ud.mix => MixGo Nova/09-1-输入输出-加速度.mix} (100%) rename boards/default/micropython_esp32s3/examples/{spaL08kpMjzN/k4rVi2Xkl0pS.mix => MixGo Nova/09-2-输入输出-平衡仪.mix} (100%) rename boards/default/micropython_esp32s3/examples/{spaL08kpMjzN/D6STOxOWIWL8.mix => MixGo Nova/10-1-输入输出-温湿度.mix} (100%) rename boards/default/micropython_esp32s3/examples/{spaL08kpMjzN/flM_BeyF8FQD.mix => MixGo Nova/10-2-输入输出-地磁金属探测.mix} (100%) rename boards/default/micropython_esp32s3/examples/{spaL08kpMjzN/CWP4dJheZFNE.mix => MixGo Nova/11-1-输入输出-数字触摸.mix} (100%) rename boards/default/micropython_esp32s3/examples/{spaL08kpMjzN/w60HVu-6Dep1.mix => MixGo Nova/11-2-输入输出-模拟触摸.mix} (100%) rename boards/default/micropython_esp32s3/examples/{spaL08kpMjzN/uS-sBOb5XCIE.mix => MixGo Nova/12-1-输入输出-实时时钟.mix} (100%) rename boards/default/micropython_esp32s3/examples/{spaL08kpMjzN/PFgXAkebBnua.mix => MixGo Nova/12-2-输入输出-实时时钟2.mix} (100%) rename boards/default/micropython_esp32s3/examples/{spaL08kpMjzN/WLqYAgO3pdOM.mix => MixGo Nova/13-1-逻辑计算-手速测试.mix} (100%) rename boards/default/micropython_esp32s3/examples/{spaL08kpMjzN/XrW2uX2Zptan.mix => MixGo Nova/13-2-逻辑计算-手速测试2.mix} (100%) rename boards/default/micropython_esp32s3/examples/{spaL08kpMjzN/pq3VHI8-c2RW.mix => MixGo Nova/14-1-逻辑计算-反应测试.mix} (100%) rename boards/default/micropython_esp32s3/examples/{spaL08kpMjzN/GSYCNfaDc28O.mix => MixGo Nova/14-2-逻辑计算-反应测试2.mix} (100%) rename boards/default/micropython_esp32s3/examples/{spaL08kpMjzN/tAzlGTSOl3ry.mix => MixGo Nova/15-1-逻辑计算-简单打地鼠.mix} (100%) rename boards/default/micropython_esp32s3/examples/{spaL08kpMjzN/aITWlr5gYzj1.mix => MixGo Nova/15-2-逻辑计算-计时打地鼠.mix} (100%) rename boards/default/micropython_esp32s3/examples/{spaL08kpMjzN/j9Qp54T2m64C.mix => MixGo Nova/16-1-逻辑计算-开始打地鼠.mix} (100%) rename boards/default/micropython_esp32s3/examples/{spaL08kpMjzN/sd_SD9Jm9Wsp.mix => MixGo Nova/16-2-逻辑计算-循环打地鼠.mix} (100%) rename boards/default/micropython_esp32s3/examples/{spaL08kpMjzN/4aCX3jmeyUyR.mix => MixGo Nova/17-0-复杂控制-非中断效果.mix} (100%) rename boards/default/micropython_esp32s3/examples/{spaL08kpMjzN/7EtYEaaF5M8E.mix => MixGo Nova/17-1-复杂控制-双键中断.mix} (100%) rename boards/default/micropython_esp32s3/examples/{spaL08kpMjzN/MiZZhu34-Tyx.mix => MixGo Nova/17-2-复杂控制-单键中断.mix} (100%) rename boards/default/micropython_esp32s3/examples/{spaL08kpMjzN/WobxgIvbS8pO.mix => MixGo Nova/18-1-复杂控制-定时计时.mix} (100%) rename boards/default/micropython_esp32s3/examples/{spaL08kpMjzN/CKuhx-72Z5m9.mix => MixGo Nova/18-2-复杂控制-循环计时.mix} (100%) rename boards/default/micropython_esp32s3/examples/{spaL08kpMjzN/hJGbUMEUa-D7.mix => MixGo Nova/19-1-复杂控制-多线程.mix} (100%) rename boards/default/micropython_esp32s3/examples/{spaL08kpMjzN/UQ_dPe1euAS6.mix => MixGo Nova/19-2-复杂控制-多线程与中断.mix} (100%) rename boards/default/micropython_esp32s3/examples/{spaL08kpMjzN/fS15ejySXLCp.mix => MixGo Nova/20-1-复杂控制-异常.mix} (100%) rename boards/default/micropython_esp32s3/examples/{spaL08kpMjzN/ny-xhUGiXnhD.mix => MixGo Nova/20-2-复杂控制-异常处理.mix} (100%) rename boards/default/micropython_esp32s3/examples/{spaL08kpMjzN/VUk8vKPvoubB.mix => MixGo Nova/21-1-射频识别-读取测试.mix} (100%) rename boards/default/micropython_esp32s3/examples/{spaL08kpMjzN/BrVLyJMKXmyz.mix => MixGo Nova/21-2-射频识别-读取卡号.mix} (100%) rename boards/default/micropython_esp32s3/examples/{spaL08kpMjzN/0iJY_sZn5jnf.mix => MixGo Nova/22-1-射频识别-写卡测试.mix} (100%) rename boards/default/micropython_esp32s3/examples/{spaL08kpMjzN/t43CgO-gyp2y.mix => MixGo Nova/22-2-射频识别-持续写卡.mix} (100%) rename boards/default/micropython_esp32s3/examples/{spaL08kpMjzN/EuMSzNpPXYcx.mix => MixGo Nova/23-1-蓝牙通讯-主机模式.mix} (100%) rename boards/default/micropython_esp32s3/examples/{spaL08kpMjzN/FC4Pel0yCDim.mix => MixGo Nova/23-1-蓝牙通讯-从机模式.mix} (100%) rename boards/default/micropython_esp32s3/examples/{spaL08kpMjzN/BauO5qjy9SYS.mix => MixGo Nova/24-1-无线广播-通讯测试.mix} (100%) rename boards/default/micropython_esp32s3/examples/{spaL08kpMjzN/SotT5LP22ao9.mix => MixGo Nova/24-2-无线广播-防丢检测.mix} (100%) rename boards/default/micropython_esp32s3/examples/{spaL08kpMjzN/EdnCkcpnfpKR.mix => MixGo Nova/25-1-红外遥控-收发测试.mix} (100%) rename boards/default/micropython_esp32s3/examples/{spaL08kpMjzN/jqG-L05ZMHV5.mix => MixGo Nova/25-2-红外遥控-遥控点灯.mix} (100%) rename boards/default/micropython_esp32s3/examples/{spaL08kpMjzN/BNUFk_p1vtLW.mix => MixGo Nova/26-1-红外遥控-学习编码.mix} (100%) rename boards/default/micropython_esp32s3/examples/{spaL08kpMjzN/Zb5fpYUH1jOm.mix => MixGo Nova/26-2-红外遥控-万能遥控.mix} (100%) rename boards/default/micropython_esp32s3/examples/{spaL08kpMjzN/pLU-XJHG3ZqJ.mix => MixGo Nova/27-1-红外接近-挥手速度.mix} (100%) rename boards/default/micropython_esp32s3/examples/{spaL08kpMjzN/so_LgFUBKRWX.mix => MixGo Nova/27-2-红外接近-双挥手速度.mix} (100%) rename boards/default/micropython_esp32s3/examples/{spaL08kpMjzN/3rS2ASPndUR3.mix => MixGo Nova/28-1-红外接近-双门人数统计.mix} (100%) rename boards/default/micropython_esp32s3/examples/{spaL08kpMjzN/0u5H7K49wtbf.mix => MixGo Nova/28-2-红外接近-单门人数统计.mix} (100%) rename boards/default/micropython_esp32s3/examples/{spaL08kpMjzN/hpMVGcmBfXin.mix => MixGo Nova/29-1-物联网-简单数据定时上报.mix} (100%) rename boards/default/micropython_esp32s3/examples/{spaL08kpMjzN/h1ygMRDTQXbC.mix => MixGo Nova/29-2-物联网-复杂数据定时上报.mix} (100%) rename boards/default/micropython_esp32s3/examples/{spaL08kpMjzN/n0RCAlZYAXcp.mix => MixGo Nova/30-1-物联网-简单数据按需上报.mix} (100%) rename boards/default/micropython_esp32s3/examples/{spaL08kpMjzN/KZOaVuS6F2jF.mix => MixGo Nova/30-2-物联网-高级数据按需上报.mix} (100%) rename boards/default/micropython_esp32s3/examples/{spaL08kpMjzN/PML8ASaXgM2i.mix => MixGo Nova/31-1-物联网-单主题数据订阅.mix} (100%) rename boards/default/micropython_esp32s3/examples/{spaL08kpMjzN/eqdpt6K1jbC7.mix => MixGo Nova/31-2-物联网-单主题数据订阅2.mix} (100%) rename boards/default/micropython_esp32s3/examples/{spaL08kpMjzN/m82lixdqqoMx.mix => MixGo Nova/32-1-物联网-多主题数据订.mix} (100%) rename boards/default/micropython_esp32s3/examples/{spaL08kpMjzN/LW3Ej0lt94ey.mix => MixGo Nova/32-2-物联网-多主题数据订2.mix} (100%) rename boards/default/micropython_esp32s3/examples/{spaL08kpMjzN/iCA8w9TQUHSJ.mix => MixGo Nova/33-1-课堂互动-自由签到.mix} (100%) rename boards/default/micropython_esp32s3/examples/{spaL08kpMjzN/OmkzHeP1zWzx.mix => MixGo Nova/33-2-课堂互动-按需签到.mix} (100%) rename boards/default/micropython_esp32s3/examples/{spaL08kpMjzN/DbEkDCzfl7jN.mix => MixGo Nova/34-1-课堂互动-一人抢答.mix} (100%) rename boards/default/micropython_esp32s3/examples/{spaL08kpMjzN/TQlNSWk-q_59.mix => MixGo Nova/34-2-课堂互动-多人抢答.mix} (100%) rename boards/default/micropython_esp32s3/examples/{spaL08kpMjzN/8YQ-b86-HrZ4.mix => MixGo Nova/35-1-课堂互动-单选答题.mix} (100%) rename boards/default/micropython_esp32s3/examples/{spaL08kpMjzN/hmTzIO---HSA.mix => MixGo Nova/35-2-课堂互动-多选答题.mix} (100%) rename boards/default/micropython_esp32s3/examples/{spaL08kpMjzN/uCQjoiliEAF4.mix => MixGo Nova/36-1-课堂互动-点名答题.mix} (100%) rename boards/default/micropython_esp32s3/examples/{spaL08kpMjzN/ixn2yBQ9Obwb.mix => MixGo Nova/36-2-课堂互动-多人点答.mix} (100%) rename boards/default/micropython_esp32s3/examples/{spaL08kpMjzN/DgUde-qzHDhC.mix => MixGo Nova/37-1-文件操作-列出文件.mix} (100%) rename boards/default/micropython_esp32s3/examples/{spaL08kpMjzN/o9SJa9CSpLqd.mix => MixGo Nova/37-2-文件操作-列出文件2.mix} (100%) rename boards/default/micropython_esp32s3/examples/{spaL08kpMjzN/Oz43p97RhtSV.mix => MixGo Nova/38-1-文件操作-文件读写.mix} (100%) rename boards/default/micropython_esp32s3/examples/{spaL08kpMjzN/oZ0XuoTxtfNl.mix => MixGo Nova/38-2-文件操作-文件读写2.mix} (100%) rename boards/default/micropython_esp32s3/examples/{spaL08kpMjzN/89iWLS-yEmRG.mix => MixGo Nova/39-1-文件操作-录音播放.mix} (100%) rename boards/default/micropython_esp32s3/examples/{spaL08kpMjzN/bcunn6nYyFdF.mix => MixGo Nova/39-1-文件操作-录音播放2.mix} (100%) rename boards/default/micropython_esp32s3/examples/{spaL08kpMjzN/gu_pzQ88rT88.mix => MixGo Nova/40-1-文件操作-SD录音播放2.mix} (100%) rename boards/default/micropython_esp32s3/examples/{spaL08kpMjzN/6gPGSjzc3pvl.mix => MixGo Nova/40-2-文件操作-SD采集重现.mix} (100%) rename boards/default/micropython_esp32s3/styles/{main.858ee96b.css => main.c506cb3b.css} (100%) rename boards/default/micropython_k210_mixgoai/examples/{cCfWEtRBBP7V.mix => 00-KEY irp_按键中断响应.mix} (100%) rename boards/default/micropython_k210_mixgoai/examples/{Ej0GrzieUcVZ.mix => 01-LED Blink_数字输出控制灯.mix} (100%) rename boards/default/micropython_k210_mixgoai/examples/{5tS6MZDFC4xd.mix => 02-LED PWM_模拟输出控制灯.mix} (100%) rename boards/default/micropython_k210_mixgoai/examples/{PSc2X0RIxQ8W.mix => 04-Time_定时器执行定时打印.mix} (100%) rename boards/default/micropython_k210_mixgoai/examples/{Lonk4JYHNzdK.mix => 07-UART_外部串口通信.mix} (100%) rename boards/default/micropython_k210_mixgoai/examples/{UEjMDAK58ynf.mix => 08-舵机_定时器调用控制多路舵机.mix} (100%) rename boards/default/micropython_k210_mixgoai/examples/{DhzTitymtdlO.mix => 09-LCD_屏幕显示累加计数.mix} (100%) rename boards/default/micropython_k210_mixgoai/examples/{RDHedjqzTYJr.mix => 10-LCD_屏幕显示切砖块过程.mix} (100%) rename boards/default/micropython_k210_mixgoai/examples/{jFsQecrCDD91.mix => 11-Audio Play_加载SD卡音频文件播放.mix} (100%) rename boards/default/micropython_k210_mixgoai/examples/{4RTba0Pol8oK.mix => 12-Video Play_加载SD卡视频文件播放.mix} (100%) rename boards/default/micropython_k210_mixgoai/examples/{ekdQzrh2uee9.mix => 13-Video record_录制视频并存放于SD卡.mix} (100%) rename boards/default/micropython_k210_mixgoai/examples/{4W4SMQGDfsy2.mix => 14-Camera 拍照_持续拍照显示屏幕上.mix} (100%) rename boards/default/micropython_k210_mixgoai/examples/{5EgQkaflhCYK.mix => 15-Imge 显示图片_加载SD卡图片文件显示.mix} (100%) rename boards/default/micropython_k210_mixgoai/examples/{FEMOP2cE7D7S.mix => 16-Imge 灰度图片_加载SD卡图片文件转换灰度图.mix} (100%) rename boards/default/micropython_k210_mixgoai/examples/{e5-c9AVDbw2a.mix => 17-Imge 绘制文本_在屏幕上绘制文本信息.mix} (100%) rename boards/default/micropython_k210_mixgoai/examples/{mIM68Xwi-xsD.mix => 18-Imge 绘制圆形_在屏幕上一直绘制小圈圈.mix} (100%) rename boards/default/micropython_k210_mixgoai/examples/{iN6wlswhscjr.mix => 19-Imge 绘制滤波_采集图形并洪水填充处理.mix} (100%) rename boards/default/micropython_k210_mixgoai/examples/{qeG0-VNGATcQ.mix => 20-Imge 直线识别_识别摄像头采集图片中直线线条.mix} (100%) rename boards/default/micropython_k210_mixgoai/examples/{9xXUdbtByruZ.mix => 21-Imge 圆形识别_识别摄像头采集图片中圆形图案.mix} (100%) rename boards/default/micropython_k210_mixgoai/examples/{x8euk6Ys8A9J.mix => 22-Imge 矩形识别_识别摄像头采集图片中矩形图案.mix} (100%) rename boards/default/micropython_k210_mixgoai/examples/{Oza8dI7MJUis.mix => 23-Imge 颜色追踪_追踪采集图片中设定色域的颜色.mix} (100%) rename boards/default/micropython_k210_mixgoai/examples/{rR3LOiLMx0rR.mix => 24-Imge 颜色识别_识别采集图片中间框区域的颜色值.mix} (100%) rename boards/default/micropython_k210_mixgoai/examples/{wv3Lv32ovmvK.mix => 25-Imge 颜色自动识别追踪_先采集图形中心物体颜色,然后自动追踪寻找此颜色.mix} (100%) rename boards/default/micropython_k210_mixgoai/examples/{xgEks836RojJ.mix => 26-Imge 特征识别_识别采集图片的特征点并绘画出.mix} (100%) rename boards/default/micropython_k210_mixgoai/examples/{OemZNycP3Z1M.mix => 27-Imge 二维码识别_识别采集图片的二维码并解析信息.mix} (100%) rename boards/default/micropython_k210_mixgoai/examples/{KkeF30q2rHxE.mix => 28-Imge 条形码识别_识别采集图片的条形码并解析信息.mix} (100%) rename boards/default/micropython_k210_mixgoai/examples/{MoRdXD3S6MVD.mix => 29-AI 人脸追踪_识别追踪采集图片的人脸.mix} (100%) rename boards/default/micropython_k210_mixgoai/examples/{N3YGFZfxssiT.mix => 30-AI 20种物体识别_识别采集图片的20种物体的类别.mix} (100%) rename boards/default/micropython_k210_mixgoai/examples/{UYnrk39H3KIW.mix => 31-AI 网络模型-1_加载SD中网络模型并运行解析.mix} (100%) rename boards/default/micropython_k210_mixgoai/examples/{0VayXpUPGKE-.mix => 31-AI 网络模型_加载SD中网络模型并运行解析.mix} (100%) rename boards/default/micropython_k210_mixgoai/examples/{ECKSY-TMpS5i.mix => 32-AI 网络模型-2_加载SD中网络模型并运行解析.mix} (100%) rename boards/default/micropython_k210_mixgoai/examples/{OaciuH4yeJfT.mix => 32-Sonar 超声波测距_串口打印超声波测算的距离.mix} (100%) rename boards/default/micropython_k210_mixgoai/examples/{n8OzfoYKiwfH.mix => 33-Irremote 红外接收_遥控控制灯亮灭.mix} (100%) rename boards/default/micropython_k210_mixgoai/examples/{U7vpiT7KOy_P.mix => 34-Bmp280 大气压_读取大气压传感器数字串口打印.mix} (100%) rename boards/default/micropython_k210_mixgoai/examples/{Z8shSdf8L_XS.mix => 34-DHT11 温湿度_采集温湿度并显示.mix} (100%) rename boards/default/micropython_k210_mixgoai/examples/{jTaVxO_pdgCt.mix => 35-Sonar 超声波测距_串口打印超声波测算的距离.mix} (100%) rename boards/default/micropython_k210_mixgoai/examples/{RbRW3IMD68-a.mix => 36-Irremote 红外接收_遥控控制灯亮灭.mix} (100%) rename boards/default/micropython_k210_mixgoai/examples/{2qyUcOL8i3Yz.mix => 36-SHT20_读取温湿度传感器数字串口打印.mix} (100%) rename boards/default/micropython_k210_mixgoai/examples/{FPHE4-oEsow8.mix => 37-Bmp280 大气压_读取大气压传感器数字串口打印.mix} (100%) rename boards/default/micropython_k210_mixgoai/examples/{FCs-0Nqe2Xg4.mix => 38-MPU9250 九轴_读取九轴传感器数字串口打印.mix} (100%) rename boards/default/micropython_k210_mixgoai/examples/{rqH_TEr5NPh9.mix => 39-SHT20_读取温湿度传感器数字串口打印.mix} (100%) rename boards/default/micropython_k210_mixgoai/examples/{msKRWlwSA_IM.mix => 40-AIOnenet_中国移动云端网络平台API调用.mix} (100%) rename boards/default/micropython_k210_mixgoai/examples/{X9zBnWEEggbM.mix => 41-AIOnenet_按键按一下调用人体检测API并框出位置.mix} (100%) rename boards/default/micropython_k210_mixgoai/examples/{bRQdoVzhPE2P.mix => 42-AILocal_本地模型训练后保存并调用模型.mix} (100%) rename boards/default/micropython_k210_mixgoai/examples/{v_Q1PyDqzn1C.mix => 43-AILocal_调用训练好的模型并运行模型.mix} (100%) rename boards/default/micropython_k210_mixgoai/examples/{8q3qF8AndRKY.mix => 44-AI 口罩识别-加载SD中模型并识别出带没有带口罩.mix} (100%) rename boards/default/micropython_k210_mixgoai/examples/{8_QbzXzh8zPZ.mix => 45-WiFi_扫描附近WiFi热点信息.mix} (100%) rename boards/default/micropython_k210_mixgoai/examples/{ZgQTS26jokvK.mix => 46-WiFi-连接网络_配置WiFi上网.mix} (100%) rename boards/default/micropython_k210_mixgoai/examples/{OU4qKWOtDvd7.mix => 47-WiFi-打开热点_分享热点AP模式.mix} (100%) rename boards/default/micropython_k210_mixgoai/examples/{4LC7h6BGpsNJ.mix => 48-Socket-_套接字发送接收数据.mix} (100%) rename boards/default/micropython_k210_mixgoai/examples/{gjqYFm00Duhp.mix => 49-Socket-_套接字发送摄像头拍照图形值服务器.mix} (100%) rename boards/default/micropython_k210_mixgoai/examples/{E9oxgBXF6q5K.mix => 50-IOT_Onenet_上传数据值物联网平台.mix} (100%) rename boards/default/micropython_k210_mixgoai/examples/{LJYgZDHUjIAU.mix => 51-IOT_mixiot_接收物联网平台数据.mix} (100%) rename boards/default/micropython_k210_mixgoai/examples/{uc8h6D9-N6Pr.mix => 52-IOT_mixiot_上传数据到物联网平台.mix} (100%) rename boards/default/micropython_k210_mixgoai/examples/{lCrNGUVAiWa2.mix => 53-Imge 中文显示_加载字库显示更多类型文字.mix} (100%) rename boards/default/micropython_k210_mixgoai/examples/{N5roQuq5JvJJ.mix => 55-(Mixly2.0下无法打开)APDS9960 手势识别_识别识别控制灯亮度.mix} (100%) rename boards/default/micropython_k210_mixgoai/examples/{l5CS81qc-b1F.mix => 57-ASR 语音识别_根据识别语音点亮屏幕颜色.mix} (100%) rename boards/default/micropython_k210_mixgoai/examples/{pJ3WxHhTn71j => SD_file}/20class.kmodel (100%) rename boards/default/micropython_k210_mixgoai/examples/{pJ3WxHhTn71j => SD_file}/FD.kmodel (100%) rename boards/default/micropython_k210_mixgoai/examples/{pJ3WxHhTn71j => SD_file}/FE.kmodel (100%) rename boards/default/micropython_k210_mixgoai/examples/{pJ3WxHhTn71j => SD_file}/LD.kmodel (100%) rename boards/default/micropython_k210_mixgoai/examples/{pJ3WxHhTn71j => SD_file}/facedetect.kmodel (100%) rename boards/default/micropython_k210_mixgoai/examples/{pJ3WxHhTn71j => SD_file}/labels.txt (100%) rename boards/default/micropython_k210_mixgoai/examples/{pJ3WxHhTn71j => SD_file}/masks.kmodel (100%) rename boards/default/micropython_k210_mixgoai/styles/{main.04cb6fd2.css => main.26eee374.css} (100%) rename boards/default/micropython_nrf51822_mithoncc/examples/{-80bSp5oispO.mix => 七彩RGB灯.mix} (100%) rename boards/default/micropython_robot/examples/{0tAPk7aoL8zm/BWZmbbE4cBkH.mix => MixGo Feiyi/01-1-快速入门-你好世界.mix} (100%) rename boards/default/micropython_robot/examples/{0tAPk7aoL8zm/2EuDHAAk4jrh.mix => MixGo Feiyi/01-2-快速入门-你好世界2.mix} (100%) rename boards/default/micropython_robot/examples/{0tAPk7aoL8zm/WEqfefimcSRC.mix => MixGo Feiyi/02-1-快速入门-跳动的心.mix} (100%) rename boards/default/micropython_robot/examples/{0tAPk7aoL8zm/S_mmWF58B-sI.mix => MixGo Feiyi/02-2-快速入门-为你心动.mix} (100%) rename boards/default/micropython_robot/examples/{0tAPk7aoL8zm/-2_GC9_BiOuK.mix => MixGo Feiyi/03-1-快速入门-心随我动.mix} (100%) rename boards/default/micropython_robot/examples/{0tAPk7aoL8zm/RKlxP0nRmjEp.mix => MixGo Feiyi/03-2-快速入门-心随我动2.mix} (100%) rename boards/default/micropython_robot/examples/{0tAPk7aoL8zm/yj_VGwvNLmCF.mix => MixGo Feiyi/04-1-快速入门-流动的灯.mix} (100%) rename boards/default/micropython_robot/examples/{0tAPk7aoL8zm/Dt8SPw40HQHO.mix => MixGo Feiyi/04-2-快速入门-流动的灯2.mix} (100%) rename boards/default/micropython_robot/examples/{0tAPk7aoL8zm/tOsJO-3FeGOo.mix => MixGo Feiyi/05-1-过程控制-双键开关.mix} (100%) rename boards/default/micropython_robot/examples/{0tAPk7aoL8zm/aaCwGyBBdLkr.mix => MixGo Feiyi/05-2-过程控制-单键开关.mix} (100%) rename boards/default/micropython_robot/examples/{0tAPk7aoL8zm/ofc3QYn9b0S2.mix => MixGo Feiyi/05-3-过程控制-IPO概念.mix} (100%) rename boards/default/micropython_robot/examples/{0tAPk7aoL8zm/wXJagaNfxOB_.mix => MixGo Feiyi/06-1-过程控制-声音采集.mix} (100%) rename boards/default/micropython_robot/examples/{0tAPk7aoL8zm/ZdEwJcV9_Qvs.mix => MixGo Feiyi/06-2-过程控制-看见声音.mix} (100%) rename boards/default/micropython_robot/examples/{0tAPk7aoL8zm/B9nQ3ELFF-dv.mix => MixGo Feiyi/07-1-过程控制-光强采集.mix} (100%) rename boards/default/micropython_robot/examples/{0tAPk7aoL8zm/6EoI1V7lztMS.mix => MixGo Feiyi/07-2-过程控制-自动补光.mix} (100%) rename boards/default/micropython_robot/examples/{0tAPk7aoL8zm/T7K2SR24iGq8.mix => MixGo Feiyi/08-1-过程控制-接近检测.mix} (100%) rename boards/default/micropython_robot/examples/{0tAPk7aoL8zm/5myqwhaxebRb.mix => MixGo Feiyi/08-2-过程控制-入侵报警.mix} (100%) rename boards/default/micropython_robot/examples/{0tAPk7aoL8zm/QVccVO4RtI46.mix => MixGo Feiyi/09-1-输入输出-加速度.mix} (100%) rename boards/default/micropython_robot/examples/{0tAPk7aoL8zm/86EMiYxkbEM3.mix => MixGo Feiyi/09-2-输入输出-平衡仪.mix} (100%) rename boards/default/micropython_robot/examples/{0tAPk7aoL8zm/dGZSW-MGIxKX.mix => MixGo Feiyi/10-1-输入输出-地磁强度.mix} (100%) rename boards/default/micropython_robot/examples/{0tAPk7aoL8zm/eqOEDHRkoVYC.mix => MixGo Feiyi/10-2-输入输出-金属探测.mix} (100%) rename boards/default/micropython_robot/examples/{0tAPk7aoL8zm/88SoMLEQTxWT.mix => MixGo Feiyi/11-1-输入输出-模拟光强.mix} (100%) rename boards/default/micropython_robot/examples/{0tAPk7aoL8zm/SHvtOd8K8DuO.mix => MixGo Feiyi/11-2-输入输出-光强映射.mix} (100%) rename boards/default/micropython_robot/examples/{0tAPk7aoL8zm/2Y1G6Sv14vB5.mix => MixGo Feiyi/12-1-输入输出-实时时钟.mix} (100%) rename boards/default/micropython_robot/examples/{0tAPk7aoL8zm/lvSA1PkvE7dJ.mix => MixGo Feiyi/12-2-输入输出-实时时钟2.mix} (100%) rename boards/default/micropython_robot/examples/{0tAPk7aoL8zm/JxJtlW-55GeM.mix => MixGo Feiyi/13-1-逻辑计算-手速测试.mix} (100%) rename boards/default/micropython_robot/examples/{0tAPk7aoL8zm/7Wmb37_ei.mix => MixGo Feiyi/13-2-逻辑计算-手速测试2.mix} (100%) rename boards/default/micropython_robot/examples/{0tAPk7aoL8zm/U8cF7_m1wda6.mix => MixGo Feiyi/14-1-逻辑计算-反应测试.mix} (100%) rename boards/default/micropython_robot/examples/{0tAPk7aoL8zm/Javy8ZepaMXh.mix => MixGo Feiyi/14-2-逻辑计算-反应测试2.mix} (100%) rename boards/default/micropython_robot/examples/{0tAPk7aoL8zm/wUFPoa8rKx_6.mix => MixGo Feiyi/15-1-逻辑计算-简单打地鼠.mix} (100%) rename boards/default/micropython_robot/examples/{0tAPk7aoL8zm/Msr4u3Jd5O85.mix => MixGo Feiyi/15-2-逻辑计算-计时打地鼠.mix} (100%) rename boards/default/micropython_robot/examples/{0tAPk7aoL8zm/B60kSHQXpAUW.mix => MixGo Feiyi/16-1-逻辑计算-开始打地鼠.mix} (100%) rename boards/default/micropython_robot/examples/{0tAPk7aoL8zm/FH_1vct9Saj-.mix => MixGo Feiyi/16-2-逻辑计算-循环打地鼠.mix} (100%) rename boards/default/micropython_robot/examples/{0tAPk7aoL8zm/K54EnbPe3FGs.mix => MixGo Feiyi/17-0-复杂控制-非中断效果.mix} (100%) rename boards/default/micropython_robot/examples/{0tAPk7aoL8zm/C_gSpJxTay45.mix => MixGo Feiyi/17-1-复杂控制-双键中断.mix} (100%) rename boards/default/micropython_robot/examples/{0tAPk7aoL8zm/jSjyQn3fr32Y.mix => MixGo Feiyi/17-2-复杂控制-单键中断.mix} (100%) rename boards/default/micropython_robot/examples/{0tAPk7aoL8zm/eWHVO5fVtuea.mix => MixGo Feiyi/18-1-复杂控制-定时计时.mix} (100%) rename boards/default/micropython_robot/examples/{0tAPk7aoL8zm/JSiCGWyQMK5q.mix => MixGo Feiyi/18-2-复杂控制-循环计时.mix} (100%) rename boards/default/micropython_robot/examples/{0tAPk7aoL8zm/gg6RG4tQFzd7.mix => MixGo Feiyi/19-1-复杂控制-多线程.mix} (100%) rename boards/default/micropython_robot/examples/{0tAPk7aoL8zm/mE0Cip4miF3t.mix => MixGo Feiyi/19-2-复杂控制-多线程与中断.mix} (100%) rename boards/default/micropython_robot/examples/{0tAPk7aoL8zm/N6e7mDuNINma.mix => MixGo Feiyi/20-1-复杂控制-异常.mix} (100%) rename boards/default/micropython_robot/examples/{0tAPk7aoL8zm/AnzW8wUL5s7M.mix => MixGo Feiyi/20-2-复杂控制-异常处理.mix} (100%) rename boards/default/micropython_robot/examples/{0tAPk7aoL8zm/O7i8VA2Ckbd_.mix => MixGo Feiyi/21-1-射频识别-读取测试.mix} (100%) rename boards/default/micropython_robot/examples/{0tAPk7aoL8zm/U1SYtWjEg9ND.mix => MixGo Feiyi/21-2-射频识别-读取卡号.mix} (100%) rename boards/default/micropython_robot/examples/{0tAPk7aoL8zm/dSCJ3Xk-PJLT.mix => MixGo Feiyi/22-1-射频识别-写卡测试.mix} (100%) rename boards/default/micropython_robot/examples/{0tAPk7aoL8zm/LqlW2FourYvj.mix => MixGo Feiyi/22-2-射频识别-持续写卡.mix} (100%) rename boards/default/micropython_robot/examples/{0tAPk7aoL8zm/F2WoBlT1OLip.mix => MixGo Feiyi/23-1-蓝牙通讯-主机模式.mix} (100%) rename boards/default/micropython_robot/examples/{0tAPk7aoL8zm/f3iPaipRA_Nb.mix => MixGo Feiyi/23-1-蓝牙通讯-从机模式.mix} (100%) rename boards/default/micropython_robot/examples/{0tAPk7aoL8zm/XVnevsDK_1Bj.mix => MixGo Feiyi/24-1-无线广播-通讯测试.mix} (100%) rename boards/default/micropython_robot/examples/{0tAPk7aoL8zm/ttX2eVZ7BAWj.mix => MixGo Feiyi/24-2-无线广播-防丢检测.mix} (100%) rename boards/default/micropython_robot/examples/{0tAPk7aoL8zm/80-0m32P6EUb.mix => MixGo Feiyi/25-1-飞机游戏-显示飞机.mix} (100%) rename boards/default/micropython_robot/examples/{0tAPk7aoL8zm/QXjvSHHDk0Ek.mix => MixGo Feiyi/25-2-飞机游戏-移动飞机.mix} (100%) rename boards/default/micropython_robot/examples/{0tAPk7aoL8zm/6YnO30y2lA9D.mix => MixGo Feiyi/26-1-飞机游戏-发射子弹.mix} (100%) rename boards/default/micropython_robot/examples/{0tAPk7aoL8zm/ZbeOkwLrP4rX.mix => MixGo Feiyi/26-2-飞机游戏-移动音效.mix} (100%) rename boards/default/micropython_robot/examples/{0tAPk7aoL8zm/CPifVGG7ZemZ.mix => MixGo Feiyi/27-1-飞机游戏-显示敌机.mix} (100%) rename boards/default/micropython_robot/examples/{0tAPk7aoL8zm/tiiOwL6uMSQI.mix => MixGo Feiyi/27-2-飞机游戏-消灭敌机.mix} (100%) rename boards/default/micropython_robot/examples/{0tAPk7aoL8zm/i3jOD3vXie8i.mix => MixGo Feiyi/28-1-飞机游戏-显示得分.mix} (100%) rename boards/default/micropython_robot/examples/{0tAPk7aoL8zm/B6ll9VLMmzqE.mix => MixGo Feiyi/28-2-飞机游戏-结束游戏.mix} (100%) rename boards/default/micropython_robot/examples/{0tAPk7aoL8zm/LdMbbtz16I3e.mix => MixGo Feiyi/29-1-物联网-简单数据定时上报.mix} (100%) rename boards/default/micropython_robot/examples/{0tAPk7aoL8zm/ZPOLzevasoIp.mix => MixGo Feiyi/29-2-物联网-复杂数据定时上报.mix} (100%) rename boards/default/micropython_robot/examples/{0tAPk7aoL8zm/8t2XK6ZeI2p9.mix => MixGo Feiyi/30-1-物联网-简单数据按需上报.mix} (100%) rename boards/default/micropython_robot/examples/{0tAPk7aoL8zm/3MevaqxcJ5w1.mix => MixGo Feiyi/30-2-物联网-高级数据按需上报.mix} (100%) rename boards/default/micropython_robot/examples/{0tAPk7aoL8zm/pgbrpsBExd2J.mix => MixGo Feiyi/31-1-物联网-单主题数据订阅.mix} (100%) rename boards/default/micropython_robot/examples/{0tAPk7aoL8zm/uV1K3O_9p_qV.mix => MixGo Feiyi/31-1-物联网-单主题数据订阅2.mix} (100%) rename boards/default/micropython_robot/examples/{0tAPk7aoL8zm/trBKgAScq-_3.mix => MixGo Feiyi/32-1-物联网-多主题数据订.mix} (100%) rename boards/default/micropython_robot/examples/{0tAPk7aoL8zm/N8T-XWdUfJYW.mix => MixGo Feiyi/32-2-物联网-多主题数据订2.mix} (100%) rename boards/default/micropython_robot/examples/{0tAPk7aoL8zm/f5MpUoyKQxui.mix => MixGo Feiyi/33-1-课堂互动-自由签到.mix} (100%) rename boards/default/micropython_robot/examples/{0tAPk7aoL8zm/UMVBBvwZ-YLe.mix => MixGo Feiyi/33-2-课堂互动-按需签到.mix} (100%) rename boards/default/micropython_robot/examples/{0tAPk7aoL8zm/dg9vaXa7DD56.mix => MixGo Feiyi/34-1-课堂互动-一人抢答.mix} (100%) rename boards/default/micropython_robot/examples/{0tAPk7aoL8zm/YksAerv7TNeP.mix => MixGo Feiyi/34-2-课堂互动-多人抢答.mix} (100%) rename boards/default/micropython_robot/examples/{0tAPk7aoL8zm/Beb1TG6bagMU.mix => MixGo Feiyi/35-1-课堂互动-单选答题.mix} (100%) rename boards/default/micropython_robot/examples/{0tAPk7aoL8zm/9CLekchHWt7J.mix => MixGo Feiyi/35-2-课堂互动-多选答题.mix} (100%) rename boards/default/micropython_robot/examples/{0tAPk7aoL8zm/dE6OrD_1bjF1.mix => MixGo Feiyi/36-1-课堂互动-点名答题.mix} (100%) rename boards/default/micropython_robot/examples/{0tAPk7aoL8zm/aSL80IA4E2TH.mix => MixGo Feiyi/36-2-课堂互动-多人点答.mix} (100%) rename boards/default/micropython_robot/examples/{0tAPk7aoL8zm/Dzck-J9UKcEg.mix => MixGo Feiyi/37-1-文件操作-列出文件.mix} (100%) rename boards/default/micropython_robot/examples/{0tAPk7aoL8zm/_7Y-bw4Rigq9.mix => MixGo Feiyi/37-2-文件操作-列出文件2.mix} (100%) rename boards/default/micropython_robot/examples/{0tAPk7aoL8zm/1mhrelWB3V12.mix => MixGo Feiyi/38-1-文件操作-文件读写.mix} (100%) rename boards/default/micropython_robot/examples/{0tAPk7aoL8zm/3P3lLi4Gt8Rd.mix => MixGo Feiyi/38-2-文件操作-文件读写2.mix} (100%) rename boards/default/micropython_robot/examples/{0tAPk7aoL8zm/5SjY_Ymi8OlF.mix => MixGo Feiyi/39-1-文件操作-录音采集.mix} (100%) rename boards/default/micropython_robot/examples/{0tAPk7aoL8zm/wi9fRUkcJKkF.mix => MixGo Feiyi/39-2-文件操作-录音重现.mix} (100%) rename boards/default/micropython_robot/examples/{0tAPk7aoL8zm/TRIoGN3rWvbG.mix => MixGo Feiyi/40-1-文件操作-震动采集.mix} (100%) rename boards/default/micropython_robot/examples/{0tAPk7aoL8zm/wfXaNatFybdy.mix => MixGo Feiyi/40-2-文件操作-震动重现.mix} (100%) rename boards/default/micropython_robot/examples/{0tAPk7aoL8zm/gfB_cLzHkaMS.mix => MixGo Feiyi/41-1-智能小车-前进转弯.mix} (100%) rename boards/default/micropython_robot/examples/{0tAPk7aoL8zm/qHUMK--qkNfJ.mix => MixGo Feiyi/41-2-智能小车-圆圈转弯.mix} (100%) rename boards/default/micropython_robot/examples/{0tAPk7aoL8zm/5iqRw9z_taDH.mix => MixGo Feiyi/42-1-智能小车-智能避障.mix} (100%) rename boards/default/micropython_robot/examples/{0tAPk7aoL8zm/LqddGkVwosjz.mix => MixGo Feiyi/43-1-智能小车-遥控小车.mix} (100%) rename boards/default/micropython_robot/examples/{0tAPk7aoL8zm/X83I1zvbdtvN.mix => MixGo Feiyi/43-2-智能小车-体感遥控.mix} (100%) rename boards/default/micropython_robot/examples/{0tAPk7aoL8zm/QFOrRMyJOwZR.mix => MixGo Feiyi/44-1-智能小车-P单巡线.mix} (100%) rename boards/default/micropython_robot/examples/{0tAPk7aoL8zm/yTtYeVlCS4oy.mix => MixGo Feiyi/44-2-智能小车-P双巡线.mix} (100%) rename boards/default/micropython_robot/examples/{0tAPk7aoL8zm/rUJcmk6C-Ew5.mix => MixGo Feiyi/45-1-外接红外-单挥手测速.mix} (100%) rename boards/default/micropython_robot/examples/{0tAPk7aoL8zm/1R44JUQUSFKb.mix => MixGo Feiyi/45-2-外接红外-双挥手测速.mix} (100%) rename boards/default/micropython_robot/examples/{0tAPk7aoL8zm/xZourKdQ2Tel.mix => MixGo Feiyi/46-1-外接红外-双门人数统计.mix} (100%) rename boards/default/micropython_robot/examples/{0tAPk7aoL8zm/6zB-xnbwLyqb.mix => MixGo Feiyi/46-2-外接红外-单门人数统计.mix} (100%) rename boards/default/micropython_robot/examples/{0tAPk7aoL8zm/eYsTKe70LdO7.mix => MixGo Feiyi/47-1-外接红外-简单车库门.mix} (100%) rename boards/default/micropython_robot/examples/{0tAPk7aoL8zm/BurNuDQyGhqE.mix => MixGo Feiyi/47-2-外接红外-反馈车库门.mix} (100%) rename boards/default/micropython_robot/examples/{0tAPk7aoL8zm/f0BwdEyCv_cX.mix => MixGo Feiyi/48-1-外接红外-转速统计.mix} (100%) rename boards/default/micropython_robot/examples/{0tAPk7aoL8zm/Piiw26lHT4MY.mix => MixGo Feiyi/48-2-外接红外-多速转速统计.mix} (100%) rename boards/default/micropython_robot/examples/{0tAPk7aoL8zm/-76BrzOINsK6.mix => MixGo Feiyi/balance.mix} (100%) rename boards/default/micropython_robot/examples/{0tAPk7aoL8zm => MixGo Feiyi}/parkgate.jpg (100%) rename boards/default/micropython_robot/examples/{0tAPk7aoL8zm/jSvhE5WW-nY1.mix => MixGo Feiyi/pid.mix} (100%) rename boards/default/micropython_robot/styles/{main.75aef604.css => main.7e5d3949.css} (100%) rename boards/default/python_mixpy/examples/{Mdsk7jAZBjm.mix => AipImage.mix} (100%) rename boards/default/python_mixpy/examples/{T47hqJc8J_q.mix => AipNlp.mix} (100%) rename boards/default/python_mixpy/examples/{raFYx_jctQl.mix => AipNlp_simnet.mix} (100%) rename boards/default/python_mixpy/examples/{1WIUKv0gjMo.mix => AipOcr.mix} (100%) rename boards/default/python_mixpy/examples/{10cJbNokP4k.mix => AipSpeech.mix} (100%) rename boards/default/python_mixpy/examples/{YVEdC03EKZf.mix => guoqi.mix} (100%) rename boards/default/python_mixpy/examples/{vcTp80aR9Fd.mix => sin.mix} (100%) rename boards/default/python_mixpy/examples/{pu5oovP6zx4 => 人工智能Py}/02语音合成-1.py (100%) rename boards/default/python_mixpy/examples/{pu5oovP6zx4 => 人工智能Py}/03语音识别-1.py (100%) rename boards/default/python_mixpy/examples/{pu5oovP6zx4 => 人工智能Py}/03语音识别-2.py (100%) rename boards/default/python_mixpy/examples/{pu5oovP6zx4 => 人工智能Py}/04图片识别-1.py (100%) rename boards/default/python_mixpy/examples/{pu5oovP6zx4 => 人工智能Py}/04图片识别-2.py (100%) rename boards/default/python_mixpy/examples/{pu5oovP6zx4 => 人工智能Py}/05人脸识别-1.py (100%) rename boards/default/python_mixpy/examples/{pu5oovP6zx4 => 人工智能Py}/05人脸识别-2.py (100%) rename boards/default/python_mixpy/examples/{pu5oovP6zx4 => 人工智能Py}/06文字识别-1.py (100%) rename boards/default/python_mixpy/examples/{pu5oovP6zx4 => 人工智能Py}/06文字识别-2.py (100%) rename boards/default/python_mixpy/examples/{pu5oovP6zx4 => 人工智能Py}/07拓展发现-1.py (100%) rename boards/default/python_mixpy/examples/{pu5oovP6zx4 => 人工智能Py}/07拓展发现-2.py (100%) rename boards/default/python_mixpy/examples/{pu5oovP6zx4 => 人工智能Py}/08文本纠错-1.py (100%) rename boards/default/python_mixpy/examples/{pu5oovP6zx4 => 人工智能Py}/08文本纠错-2.py (100%) rename boards/default/python_mixpy/examples/{pu5oovP6zx4 => 人工智能Py}/09词法分析-1.py (100%) rename boards/default/python_mixpy/examples/{pu5oovP6zx4 => 人工智能Py}/09词法分析-2.py (100%) rename boards/default/python_mixpy/examples/{xLXJkGIjZG/kQp-cpQToz.mix => 人工智能mix/02语音合成-1.mix} (100%) rename boards/default/python_mixpy/examples/{xLXJkGIjZG/OwwRhSjA-G.mix => 人工智能mix/03语音识别-1.mix} (100%) rename boards/default/python_mixpy/examples/{xLXJkGIjZG/IZkqRawoFx.mix => 人工智能mix/03语音识别-2.mix} (100%) rename boards/default/python_mixpy/examples/{xLXJkGIjZG/7ylel8SmF2.mix => 人工智能mix/04图片识别-1.mix} (100%) rename boards/default/python_mixpy/examples/{xLXJkGIjZG/w4h80h8f52.mix => 人工智能mix/04图片识别-2.mix} (100%) rename boards/default/python_mixpy/examples/{xLXJkGIjZG/0iYWy_skv7.mix => 人工智能mix/05人脸识别-1.mix} (100%) rename boards/default/python_mixpy/examples/{xLXJkGIjZG/TfX4Y1crsX.mix => 人工智能mix/05人脸识别-2.mix} (100%) rename boards/default/python_mixpy/examples/{xLXJkGIjZG/E0fWmiGKFP.mix => 人工智能mix/06文字识别-1.mix} (100%) rename boards/default/python_mixpy/examples/{xLXJkGIjZG/x2ZHUuMgtZ.mix => 人工智能mix/06文字识别-2.mix} (100%) rename boards/default/python_mixpy/examples/{xLXJkGIjZG/Phfo2m0HoF.mix => 人工智能mix/07拓展发现-1.mix} (100%) rename boards/default/python_mixpy/examples/{xLXJkGIjZG/rK5SW3TcCes.mix => 人工智能mix/07拓展发现-2.mix} (100%) rename boards/default/python_mixpy/examples/{xLXJkGIjZG/bIBO6zZeHs.mix => 人工智能mix/08文本纠错-1.mix} (100%) rename boards/default/python_mixpy/examples/{xLXJkGIjZG/OdwPbsdVM5.mix => 人工智能mix/08文本纠错-2.mix} (100%) rename boards/default/python_mixpy/examples/{xLXJkGIjZG/SgfW8m_m9q.mix => 人工智能mix/09词法分析-2.mix} (100%) rename boards/default/python_mixpy/examples/{xLXJkGIjZG/-CXLJ1YmeB.mix => 人工智能mix/09词法分析.mix} (100%) rename boards/default/python_mixpy/examples/{r-kPuWQ_WC_/talrIyHDJCK/6VzdHQea_8p.mix => 海龟画图/mix/海龟画图01小房子_01小房子.mix} (100%) rename boards/default/python_mixpy/examples/{r-kPuWQ_WC_/talrIyHDJCK/HuWZOhuChBE.mix => 海龟画图/mix/海龟画图02小汽车_01正五边形.mix} (100%) rename boards/default/python_mixpy/examples/{r-kPuWQ_WC_/talrIyHDJCK/rRP-DIv90Br.mix => 海龟画图/mix/海龟画图02小汽车_02小汽车.mix} (100%) rename boards/default/python_mixpy/examples/{r-kPuWQ_WC_/talrIyHDJCK/q1aiOaiEdFr.mix => 海龟画图/mix/海龟画图03小橙子_01完整橙子.mix} (100%) rename boards/default/python_mixpy/examples/{r-kPuWQ_WC_/talrIyHDJCK/j27npVInBgM.mix => 海龟画图/mix/海龟画图03小橙子_02切开的橙子.mix} (100%) rename boards/default/python_mixpy/examples/{r-kPuWQ_WC_/talrIyHDJCK/JBVOPqmi2ia.mix => 海龟画图/mix/海龟画图04盛开的向日葵_01太阳公公.mix} (100%) rename boards/default/python_mixpy/examples/{r-kPuWQ_WC_/talrIyHDJCK/-wiw-clT4NO.mix => 海龟画图/mix/海龟画图04盛开的向日葵_02向日葵.mix} (100%) rename boards/default/python_mixpy/examples/{r-kPuWQ_WC_/talrIyHDJCK/h1RgHVv2rzZ.mix => 海龟画图/mix/海龟画图05炫彩螺旋线_01螺旋四边形.mix} (100%) rename boards/default/python_mixpy/examples/{r-kPuWQ_WC_/talrIyHDJCK/tlKOdEef5YX.mix => 海龟画图/mix/海龟画图05炫彩螺旋线_02彩色螺旋线.mix} (100%) rename boards/default/python_mixpy/examples/{r-kPuWQ_WC_/talrIyHDJCK/6Dau8G9MxqN.mix => 海龟画图/mix/海龟画图06米思齐Logo_01米思齐Logo.mix} (100%) rename boards/default/python_mixpy/examples/{r-kPuWQ_WC_/talrIyHDJCK/4R1mW9U0LQD.mix => 海龟画图/mix/海龟画图07闪烁星星_01正五角星.mix} (100%) rename boards/default/python_mixpy/examples/{r-kPuWQ_WC_/talrIyHDJCK/yEIwo21tqgZ.mix => 海龟画图/mix/海龟画图07闪烁星星_02正n角星.mix} (100%) rename boards/default/python_mixpy/examples/{r-kPuWQ_WC_/talrIyHDJCK/_n_2ndQOFpc.mix => 海龟画图/mix/海龟画图08猜一猜_01猜性别.mix} (100%) rename boards/default/python_mixpy/examples/{r-kPuWQ_WC_/talrIyHDJCK/Mp6asHUh3KW.mix => 海龟画图/mix/海龟画图08猜一猜_02猜年龄.mix} (100%) rename boards/default/python_mixpy/examples/{r-kPuWQ_WC_/talrIyHDJCK/a6UD2CPrWIq.mix => 海龟画图/mix/海龟画图09大树的年龄_01年轮.mix} (100%) rename boards/default/python_mixpy/examples/{r-kPuWQ_WC_/talrIyHDJCK/acPfdoPv1Pf.mix => 海龟画图/mix/海龟画图09大树的年龄_02树年龄.mix} (100%) rename boards/default/python_mixpy/examples/{r-kPuWQ_WC_/talrIyHDJCK/7DemSDbXdjz.mix => 海龟画图/mix/海龟画图10公共汽车_01公共汽车.mix} (100%) rename boards/default/python_mixpy/examples/{r-kPuWQ_WC_/talrIyHDJCK/_JngRO1aXNP.mix => 海龟画图/mix/海龟画图11美丽星空_01星空.mix} (100%) rename boards/default/python_mixpy/examples/{r-kPuWQ_WC_/talrIyHDJCK/mz26Cgs-WJJ.mix => 海龟画图/mix/海龟画图12斐波那契数列_01输出斐波那契额数列.mix} (100%) rename boards/default/python_mixpy/examples/{r-kPuWQ_WC_/talrIyHDJCK/D8sktkU4L1b.mix => 海龟画图/mix/海龟画图12斐波那契数列_02斐波那契额螺旋线.mix} (100%) rename boards/default/python_mixpy/examples/{r-kPuWQ_WC_/mHgGeciabM7 => 海龟画图/py}/海龟画图01小房子_01小房子.py (100%) rename boards/default/python_mixpy/examples/{r-kPuWQ_WC_/mHgGeciabM7 => 海龟画图/py}/海龟画图02小汽车_01正五边形.py (100%) rename boards/default/python_mixpy/examples/{r-kPuWQ_WC_/mHgGeciabM7 => 海龟画图/py}/海龟画图02小汽车_02小汽车.py (100%) rename boards/default/python_mixpy/examples/{r-kPuWQ_WC_/mHgGeciabM7 => 海龟画图/py}/海龟画图03小橙子_01完整橙子.py (100%) rename boards/default/python_mixpy/examples/{r-kPuWQ_WC_/mHgGeciabM7 => 海龟画图/py}/海龟画图03小橙子_02切开的橙子.py (100%) rename boards/default/python_mixpy/examples/{r-kPuWQ_WC_/mHgGeciabM7 => 海龟画图/py}/海龟画图04盛开的向日葵_01太阳公公.py (100%) rename boards/default/python_mixpy/examples/{r-kPuWQ_WC_/mHgGeciabM7 => 海龟画图/py}/海龟画图04盛开的向日葵_02向日葵.py (100%) rename boards/default/python_mixpy/examples/{r-kPuWQ_WC_/mHgGeciabM7 => 海龟画图/py}/海龟画图05炫彩螺旋线_01螺旋四边形.py (100%) rename boards/default/python_mixpy/examples/{r-kPuWQ_WC_/mHgGeciabM7 => 海龟画图/py}/海龟画图05炫彩螺旋线_02彩色螺旋线.py (100%) rename boards/default/python_mixpy/examples/{r-kPuWQ_WC_/mHgGeciabM7 => 海龟画图/py}/海龟画图06米思齐Logo_01米思齐Logo.py (100%) rename boards/default/python_mixpy/examples/{r-kPuWQ_WC_/mHgGeciabM7 => 海龟画图/py}/海龟画图07闪烁星星_01正五角星.py (100%) rename boards/default/python_mixpy/examples/{r-kPuWQ_WC_/mHgGeciabM7 => 海龟画图/py}/海龟画图07闪烁星星_02正n角星.py (100%) rename boards/default/python_mixpy/examples/{r-kPuWQ_WC_/mHgGeciabM7 => 海龟画图/py}/海龟画图08猜一猜_01猜性别.py (100%) rename boards/default/python_mixpy/examples/{r-kPuWQ_WC_/mHgGeciabM7 => 海龟画图/py}/海龟画图08猜一猜_02猜年龄.py (100%) rename boards/default/python_mixpy/examples/{r-kPuWQ_WC_/mHgGeciabM7 => 海龟画图/py}/海龟画图09大树的年龄_01年轮.py (100%) rename boards/default/python_mixpy/examples/{r-kPuWQ_WC_/mHgGeciabM7 => 海龟画图/py}/海龟画图09大树的年龄_02树年龄.py (100%) rename boards/default/python_mixpy/examples/{r-kPuWQ_WC_/mHgGeciabM7 => 海龟画图/py}/海龟画图10公共汽车_01公共汽车.py (100%) rename boards/default/python_mixpy/examples/{r-kPuWQ_WC_/mHgGeciabM7 => 海龟画图/py}/海龟画图11美丽星空_01星空.py (100%) rename boards/default/python_mixpy/examples/{r-kPuWQ_WC_/mHgGeciabM7 => 海龟画图/py}/海龟画图12斐波那契数列_01输出斐波那契额数列.py (100%) rename boards/default/python_mixpy/examples/{r-kPuWQ_WC_/mHgGeciabM7 => 海龟画图/py}/海龟画图12斐波那契数列_02斐波那契额螺旋线.py (100%) rename boards/default/python_skulpt/examples/{e234tQL40cR.mix => 01-1 海归画图初体验.mix} (100%) rename boards/default/python_skulpt/examples/{DvwGAvuOFHd.mix => 01-2 绘制四边形.mix} (100%) rename boards/default/python_skulpt/examples/{k43pthT5wWU.mix => 01-2-2 绘制四边形.mix} (100%) rename boards/default/python_skulpt/examples/{hMFerzbSWiN.mix => 01-3 绘制多边形.mix} (100%) rename boards/default/python_skulpt/examples/{_4RMzteZfID.mix => 01-3-2 绘制多边形.mix} (100%) rename boards/default/python_skulpt/examples/{F0f7ZEGHV8i.mix => 02-1 一笔画五角形.mix} (100%) rename boards/default/python_skulpt/examples/{8I-8w93ysTf.mix => 02-1-2 一笔画五角形.mix} (100%) rename boards/default/python_skulpt/examples/{fvECqhFoXSi.mix => 02-2 绘制红心.mix} (100%) rename boards/default/python_skulpt/examples/{RWZnm1sFsc7.mix => 02-2-2 绘制红心.mix} (100%) rename boards/default/python_skulpt/examples/{VLLpgULOuZc.mix => 03-1 绘制螺旋线.mix} (100%) rename boards/default/python_skulpt/examples/{l3MR8lJvKZN.mix => 03-1-2 绘制螺旋线.mix} (100%) rename boards/default/python_skulpt/examples/{B1kplULCROb.mix => 03-2 绘制螺旋线-字典.mix} (100%) rename boards/default/python_skulpt/examples/{t3MCnRK9ZOQ.mix => 03-2 绘制螺旋线.mix} (100%) rename boards/default/python_skulpt/examples/{buK6TZhRsxt.mix => 04-0 投票选举.mix} (100%) rename boards/default/python_skulpt/examples/{gV7-k1mst4N.mix => 04-1 投票选举.mix} (100%) rename boards/default/python_skulpt/examples/{CAu4Jv7lKG-.mix => 05-1 凯撒加密(一位密码).mix} (100%) rename boards/default/python_skulpt/examples/{2ExY-RIRK-Q.mix => 05-2 凯撒加密(ASCII码补充解密验证).mix} (100%) rename boards/default/python_skulpt/examples/{5q17X-1eIR8.mix => 05-2 凯撒加密(ASCII码).mix} (100%) rename boards/default/python_skulpt/examples/{_PhgfyKlcsp.mix => 05-2 凯撒加密(多位密码).mix} (100%) rename boards/default/python_skulpt/examples/{HHrpLJqWnOs.mix => 06-1 人机出数字比大小.mix} (100%) rename boards/default/python_skulpt/examples/{2UPx_l37c3o.mix => 06-1 猜数字游戏.mix} (100%) rename boards/default/python_skulpt/examples/{qQoRIglEJ_2.mix => 06-1-2 人机出数字比大小.mix} (100%) rename boards/default/python_skulpt/examples/{uNN3jesFRtS.mix => 06-2-2 猜数字限定次数.mix} (100%) rename boards/default/python_skulpt/examples/{aGhCEJGUXvi.mix => 06-2-3 二分法.mix} (100%) rename boards/default/python_skulpt/examples/{D9fjDKIm2RT.mix => 07-1 鸡兔同笼.mix} (100%) rename boards/default/python_skulpt/examples/{gTynjKBXNni.mix => 07-2 韩信点兵.mix} (100%) rename boards/default/python_skulpt/examples/{qc2eFL5ccia.mix => 08-1 冒泡排序.mix} (100%) rename boards/default/python_skulpt/examples/{65O3f_6kHza.mix => 08-2 选择排序.mix} (100%) rename boards/default/python_skulpt/examples/{WVChOpwoqPg.mix => 08-3 插入排序.mix} (100%) rename boards/default/python_skulpt/examples/{TCLFiQ-gtFU.mix => 08-4 快速排序.mix} (100%) rename boards/default/python_skulpt/examples/{9oyrhn5Y4Bu.mix => 09-1 2层汉诺塔算法.mix} (100%) rename boards/default/python_skulpt/examples/{5elTun8FtDI.mix => 09-2 3层汉诺塔算法.mix} (100%) rename boards/default/python_skulpt/examples/{vTfq4Ff3heO.mix => 09-2 多层汉诺塔算法.mix} (100%) rename boards/default/python_skulpt/examples/{2PYz0Azqahv.mix => 10-1 回溯算法.mix} (100%) rename boards/default/python_skulpt/examples/{n1tw4oV3O0T.mix => 11-1 贪心算法.mix} (100%) rename boards/default/python_skulpt/examples/{YzgJYaXpODt.mix => 2-2-3凯撒加密(ASCII码补充解密验证).mix} (100%) rename boards/default/python_skulpt_mixtoy/examples/{2XiGSPimen4.mix => 1644591921-1-filename.mix} (100%) rename boards/default/python_skulpt_mixtoy/examples/{3nSfgAroL3Z.mix => 1644592048-1-first.mix} (100%) rename boards/default/python_skulpt_mixtoy/examples/{s4q2v5XkPCF.mix => 1644835576-57-第一关.mix} (100%) rename boards/default/python_skulpt_mixtoy/examples/{yIYzzrGWKFT.mix => 1644835589-57-第二关.mix} (100%) rename boards/default/python_skulpt_mixtoy/examples/{oXByvEMiJSy.mix => 1644835604-57-第三关.mix} (100%) rename boards/default/python_skulpt_mixtoy/examples/{7aQGlMkX9Gi.mix => 1646029690-1-地图11.mix} (100%) rename boards/default/python_skulpt_mixtoy/examples/{njzK2XT740F.mix => 1646030057-1-地图11.mix} (100%) rename boards/default/python_skulpt_mixtoy/examples/{ew__SSE6Rrp.mix => 1646031090-1-1-1.mix} (100%) rename boards/default/python_skulpt_mixtoy/examples/{CxmcuHKe3Vb.mix => 1646031217-1-1-1.mix} (100%) rename boards/default/python_skulpt_mixtoy/examples/{ak_ZTizAUuh.mix => 1646031510-1-1-2.mix} (100%) rename boards/default/python_skulpt_mixtoy/examples/{YkAQA4xsDht.mix => 1646031571-1-1-3.mix} (100%) rename boards/default/python_skulpt_mixtoy/examples/{Vjq_hbZjCOe.mix => 1646031798-1-2-1.mix} (100%) rename boards/default/python_skulpt_mixtoy/examples/{mFqFngfKdWc.mix => 1647180522-60-3-1.mix} (100%) rename boards/default/python_skulpt_mixtoy/examples/{ObLZhz3JepZ.mix => 1647180554-60-3-2.mix} (100%) rename boards/default/python_skulpt_mixtoy/examples/{saLaToxrRv7.mix => 1647180673-60-3-3.mix} (100%) rename boards/default/python_skulpt_mixtoy/examples/{vgWxwNTZI88.mix => 1647181126-60-3-3.mix} (100%) rename boards/default/python_skulpt_mixtoy/examples/{EVWJ69CXN-W.mix => 1647181709-60-4-2.mix} (100%) rename boards/default/python_skulpt_mixtoy/examples/{P2pVyYwQlgK.mix => 1647181760-60-4-2.mix} (100%) rename boards/default/python_skulpt_mixtoy/examples/{5mcine76ol7.mix => 1647182686-60-4-1.mix} (100%) rename boards/default/python_skulpt_mixtoy/examples/{Yd6pC72BIxy.mix => 1647182723-60-4-2.mix} (100%) rename boards/default/python_skulpt_mixtoy/examples/{LAVKMZZGxlo.mix => 1647182843-60-4-1.mix} (100%) rename boards/default/python_skulpt_mixtoy/examples/{SbP4-RJU2ns.mix => 1647183296-1-4-1.mix} (100%) rename boards/default/python_skulpt_mixtoy/examples/{nrvLFdf3glb.mix => 1647183320-1-4-2.mix} (100%) diff --git a/boards/default/arduino_avr/examples/VmCIa9vFu/pMT2pAHsfY.mix b/boards/default/arduino_avr/examples/01-输入输出/01-LED闪烁.mix similarity index 100% rename from boards/default/arduino_avr/examples/VmCIa9vFu/pMT2pAHsfY.mix rename to boards/default/arduino_avr/examples/01-输入输出/01-LED闪烁.mix diff --git a/boards/default/arduino_avr/examples/VmCIa9vFu/zUZ4c9ijbl.mix b/boards/default/arduino_avr/examples/01-输入输出/02-开关灯.mix similarity index 100% rename from boards/default/arduino_avr/examples/VmCIa9vFu/zUZ4c9ijbl.mix rename to boards/default/arduino_avr/examples/01-输入输出/02-开关灯.mix diff --git a/boards/default/arduino_avr/examples/VmCIa9vFu/uYS2aVJafq.mix b/boards/default/arduino_avr/examples/01-输入输出/03-调光灯.mix similarity index 100% rename from boards/default/arduino_avr/examples/VmCIa9vFu/uYS2aVJafq.mix rename to boards/default/arduino_avr/examples/01-输入输出/03-调光灯.mix diff --git a/boards/default/arduino_avr/examples/VmCIa9vFu/sRTn0RaK28.mix b/boards/default/arduino_avr/examples/01-输入输出/04-多功能按键.mix similarity index 100% rename from boards/default/arduino_avr/examples/VmCIa9vFu/sRTn0RaK28.mix rename to boards/default/arduino_avr/examples/01-输入输出/04-多功能按键.mix diff --git a/boards/default/arduino_avr/examples/VmCIa9vFu/7E5zww0kJ0.mix b/boards/default/arduino_avr/examples/01-输入输出/05-硬件中断.mix similarity index 100% rename from boards/default/arduino_avr/examples/VmCIa9vFu/7E5zww0kJ0.mix rename to boards/default/arduino_avr/examples/01-输入输出/05-硬件中断.mix diff --git a/boards/default/arduino_avr/examples/VmCIa9vFu/_M4NzmxMKA.mix b/boards/default/arduino_avr/examples/01-输入输出/06-软件中断.mix similarity index 100% rename from boards/default/arduino_avr/examples/VmCIa9vFu/_M4NzmxMKA.mix rename to boards/default/arduino_avr/examples/01-输入输出/06-软件中断.mix diff --git a/boards/default/arduino_avr/examples/VmCIa9vFu/SbQeizosCF.mix b/boards/default/arduino_avr/examples/01-输入输出/07-声控灯.mix similarity index 100% rename from boards/default/arduino_avr/examples/VmCIa9vFu/SbQeizosCF.mix rename to boards/default/arduino_avr/examples/01-输入输出/07-声控灯.mix diff --git a/boards/default/arduino_avr/examples/VmCIa9vFu/tUHS4KiX4u.mix b/boards/default/arduino_avr/examples/01-输入输出/08-脉冲.mix similarity index 100% rename from boards/default/arduino_avr/examples/VmCIa9vFu/tUHS4KiX4u.mix rename to boards/default/arduino_avr/examples/01-输入输出/08-脉冲.mix diff --git a/boards/default/arduino_avr/examples/VmCIa9vFu/ChyvF1aKj-.mix b/boards/default/arduino_avr/examples/01-输入输出/09-软件模拟PWM.mix similarity index 100% rename from boards/default/arduino_avr/examples/VmCIa9vFu/ChyvF1aKj-.mix rename to boards/default/arduino_avr/examples/01-输入输出/09-软件模拟PWM.mix diff --git a/boards/default/arduino_avr/examples/VmCIa9vFu/vLT4OExD9t.mix b/boards/default/arduino_avr/examples/01-输入输出/10-ShiftOut数字骰子.mix similarity index 100% rename from boards/default/arduino_avr/examples/VmCIa9vFu/vLT4OExD9t.mix rename to boards/default/arduino_avr/examples/01-输入输出/10-ShiftOut数字骰子.mix diff --git a/boards/default/arduino_avr/examples/VmCIa9vFu/77LMTUiV3Z.mix b/boards/default/arduino_avr/examples/01-输入输出/11-ShiftOut流水灯.mix similarity index 100% rename from boards/default/arduino_avr/examples/VmCIa9vFu/77LMTUiV3Z.mix rename to boards/default/arduino_avr/examples/01-输入输出/11-ShiftOut流水灯.mix diff --git a/boards/default/arduino_avr/examples/W7bfVPXbhz/8qdA_km51x.mix b/boards/default/arduino_avr/examples/02-控制/01-初始化.mix similarity index 100% rename from boards/default/arduino_avr/examples/W7bfVPXbhz/8qdA_km51x.mix rename to boards/default/arduino_avr/examples/02-控制/01-初始化.mix diff --git a/boards/default/arduino_avr/examples/W7bfVPXbhz/8rn4OF-7L3.mix b/boards/default/arduino_avr/examples/02-控制/02-LED流水灯.mix similarity index 100% rename from boards/default/arduino_avr/examples/W7bfVPXbhz/8rn4OF-7L3.mix rename to boards/default/arduino_avr/examples/02-控制/02-LED流水灯.mix diff --git a/boards/default/arduino_avr/examples/W7bfVPXbhz/dlJKD3xLxr.mix b/boards/default/arduino_avr/examples/02-控制/03-While循环.mix similarity index 100% rename from boards/default/arduino_avr/examples/W7bfVPXbhz/dlJKD3xLxr.mix rename to boards/default/arduino_avr/examples/02-控制/03-While循环.mix diff --git a/boards/default/arduino_avr/examples/W7bfVPXbhz/eG_83pHrwau.mix b/boards/default/arduino_avr/examples/02-控制/04-延时灯.mix similarity index 100% rename from boards/default/arduino_avr/examples/W7bfVPXbhz/eG_83pHrwau.mix rename to boards/default/arduino_avr/examples/02-控制/04-延时灯.mix diff --git a/boards/default/arduino_avr/examples/W7bfVPXbhz/0ZUXb2NJ-iH.mix b/boards/default/arduino_avr/examples/02-控制/05-定时器控制灯亮灭.mix similarity index 100% rename from boards/default/arduino_avr/examples/W7bfVPXbhz/0ZUXb2NJ-iH.mix rename to boards/default/arduino_avr/examples/02-控制/05-定时器控制灯亮灭.mix diff --git a/boards/default/arduino_avr/examples/W7bfVPXbhz/W9GJM7CkOTs.mix b/boards/default/arduino_avr/examples/02-控制/06-简单定时器.mix similarity index 100% rename from boards/default/arduino_avr/examples/W7bfVPXbhz/W9GJM7CkOTs.mix rename to boards/default/arduino_avr/examples/02-控制/06-简单定时器.mix diff --git a/boards/default/arduino_avr/examples/W7bfVPXbhz/0umD1uEew6g.mix b/boards/default/arduino_avr/examples/02-控制/07-随机亮灯.mix similarity index 100% rename from boards/default/arduino_avr/examples/W7bfVPXbhz/0umD1uEew6g.mix rename to boards/default/arduino_avr/examples/02-控制/07-随机亮灯.mix diff --git a/boards/default/arduino_avr/examples/W7bfVPXbhz/4rwdgoZ_SIl.mix b/boards/default/arduino_avr/examples/02-控制/08-Scoop多线程.mix similarity index 100% rename from boards/default/arduino_avr/examples/W7bfVPXbhz/4rwdgoZ_SIl.mix rename to boards/default/arduino_avr/examples/02-控制/08-Scoop多线程.mix diff --git a/boards/default/arduino_avr/examples/W7bfVPXbhz/Z0Z_7jp4ar0.mix b/boards/default/arduino_avr/examples/02-控制/09-硬件中断-秒表.mix similarity index 100% rename from boards/default/arduino_avr/examples/W7bfVPXbhz/Z0Z_7jp4ar0.mix rename to boards/default/arduino_avr/examples/02-控制/09-硬件中断-秒表.mix diff --git a/boards/default/arduino_avr/examples/9exFAce4ay4/YfyYgzXzUdc.mix b/boards/default/arduino_avr/examples/03-数学/01-模拟输入和模拟输出.mix similarity index 100% rename from boards/default/arduino_avr/examples/9exFAce4ay4/YfyYgzXzUdc.mix rename to boards/default/arduino_avr/examples/03-数学/01-模拟输入和模拟输出.mix diff --git a/boards/default/arduino_avr/examples/9exFAce4ay4/9SoJjKPxcd9.mix b/boards/default/arduino_avr/examples/03-数学/02-绘制三角函数曲线.mix similarity index 100% rename from boards/default/arduino_avr/examples/9exFAce4ay4/9SoJjKPxcd9.mix rename to boards/default/arduino_avr/examples/03-数学/02-绘制三角函数曲线.mix diff --git a/boards/default/arduino_avr/examples/9exFAce4ay4/Gs_c0omRYb0.mix b/boards/default/arduino_avr/examples/03-数学/03-映射.mix similarity index 100% rename from boards/default/arduino_avr/examples/9exFAce4ay4/Gs_c0omRYb0.mix rename to boards/default/arduino_avr/examples/03-数学/03-映射.mix diff --git a/boards/default/arduino_avr/examples/9exFAce4ay4/4U0BswEHkaV.mix b/boards/default/arduino_avr/examples/03-数学/04-随机数.mix similarity index 100% rename from boards/default/arduino_avr/examples/9exFAce4ay4/4U0BswEHkaV.mix rename to boards/default/arduino_avr/examples/03-数学/04-随机数.mix diff --git a/boards/default/arduino_avr/examples/9exFAce4ay4/bgTD9nSjoSc.mix b/boards/default/arduino_avr/examples/03-数学/05-约束运算.mix similarity index 100% rename from boards/default/arduino_avr/examples/9exFAce4ay4/bgTD9nSjoSc.mix rename to boards/default/arduino_avr/examples/03-数学/05-约束运算.mix diff --git a/boards/default/arduino_avr/examples/9exFAce4ay4/95AWt09AHI6.mix b/boards/default/arduino_avr/examples/03-数学/06-移位计算.mix similarity index 100% rename from boards/default/arduino_avr/examples/9exFAce4ay4/95AWt09AHI6.mix rename to boards/default/arduino_avr/examples/03-数学/06-移位计算.mix diff --git a/boards/default/arduino_avr/examples/M-nipJ0aU2i/3YRW0N5vCuz.mix b/boards/default/arduino_avr/examples/04-文本/01-serial_string-1.mix similarity index 100% rename from boards/default/arduino_avr/examples/M-nipJ0aU2i/3YRW0N5vCuz.mix rename to boards/default/arduino_avr/examples/04-文本/01-serial_string-1.mix diff --git a/boards/default/arduino_avr/examples/M-nipJ0aU2i/_6RAsFOP56o.mix b/boards/default/arduino_avr/examples/04-文本/02-serial_string-2.mix similarity index 100% rename from boards/default/arduino_avr/examples/M-nipJ0aU2i/_6RAsFOP56o.mix rename to boards/default/arduino_avr/examples/04-文本/02-serial_string-2.mix diff --git a/boards/default/arduino_avr/examples/M-nipJ0aU2i/KTYxBgMSxn0.mix b/boards/default/arduino_avr/examples/04-文本/03-serial_string-3.mix similarity index 100% rename from boards/default/arduino_avr/examples/M-nipJ0aU2i/KTYxBgMSxn0.mix rename to boards/default/arduino_avr/examples/04-文本/03-serial_string-3.mix diff --git a/boards/default/arduino_avr/examples/M-nipJ0aU2i/f7x_VUvx21h.mix b/boards/default/arduino_avr/examples/04-文本/04-serial_string-4.mix similarity index 100% rename from boards/default/arduino_avr/examples/M-nipJ0aU2i/f7x_VUvx21h.mix rename to boards/default/arduino_avr/examples/04-文本/04-serial_string-4.mix diff --git a/boards/default/arduino_avr/examples/M-nipJ0aU2i/P1JdCLGmX-B.mix b/boards/default/arduino_avr/examples/04-文本/URL和Base64编解码.mix similarity index 100% rename from boards/default/arduino_avr/examples/M-nipJ0aU2i/P1JdCLGmX-B.mix rename to boards/default/arduino_avr/examples/04-文本/URL和Base64编解码.mix diff --git a/boards/default/arduino_avr/examples/iCEBVcyclSR/egilfftJQYl.mix b/boards/default/arduino_avr/examples/05-数组/01-一维数组输出.mix similarity index 100% rename from boards/default/arduino_avr/examples/iCEBVcyclSR/egilfftJQYl.mix rename to boards/default/arduino_avr/examples/05-数组/01-一维数组输出.mix diff --git a/boards/default/arduino_avr/examples/iCEBVcyclSR/LIqnlgTdyYm.mix b/boards/default/arduino_avr/examples/05-数组/02-二维数组输出.mix similarity index 100% rename from boards/default/arduino_avr/examples/iCEBVcyclSR/LIqnlgTdyYm.mix rename to boards/default/arduino_avr/examples/05-数组/02-二维数组输出.mix diff --git a/boards/default/arduino_avr/examples/tdb7h3NzC8y/7ss9laal9hL.mix b/boards/default/arduino_avr/examples/06-逻辑/01-比较运算符.mix similarity index 100% rename from boards/default/arduino_avr/examples/tdb7h3NzC8y/7ss9laal9hL.mix rename to boards/default/arduino_avr/examples/06-逻辑/01-比较运算符.mix diff --git a/boards/default/arduino_avr/examples/tdb7h3NzC8y/mqJSnRZPS5U.mix b/boards/default/arduino_avr/examples/06-逻辑/02-逻辑运算符.mix similarity index 100% rename from boards/default/arduino_avr/examples/tdb7h3NzC8y/mqJSnRZPS5U.mix rename to boards/default/arduino_avr/examples/06-逻辑/02-逻辑运算符.mix diff --git a/boards/default/arduino_avr/examples/tdb7h3NzC8y/v9IU0WTE--n.mix b/boards/default/arduino_avr/examples/06-逻辑/03-?语句.mix similarity index 100% rename from boards/default/arduino_avr/examples/tdb7h3NzC8y/v9IU0WTE--n.mix rename to boards/default/arduino_avr/examples/06-逻辑/03-?语句.mix diff --git a/boards/default/arduino_avr/examples/n5-2G5wMeIV/q9nUBvNJBGz.mix b/boards/default/arduino_avr/examples/07-串口/01-串口交互.mix similarity index 100% rename from boards/default/arduino_avr/examples/n5-2G5wMeIV/q9nUBvNJBGz.mix rename to boards/default/arduino_avr/examples/07-串口/01-串口交互.mix diff --git a/boards/default/arduino_avr/examples/n5-2G5wMeIV/xcwlZp_4RNm.mix b/boards/default/arduino_avr/examples/07-串口/02-串口控制开关灯.mix similarity index 100% rename from boards/default/arduino_avr/examples/n5-2G5wMeIV/xcwlZp_4RNm.mix rename to boards/default/arduino_avr/examples/07-串口/02-串口控制开关灯.mix diff --git a/boards/default/arduino_avr/examples/n5-2G5wMeIV/YGMLkJSiHHL.mix b/boards/default/arduino_avr/examples/07-串口/03-打印ASCII值.mix similarity index 100% rename from boards/default/arduino_avr/examples/n5-2G5wMeIV/YGMLkJSiHHL.mix rename to boards/default/arduino_avr/examples/07-串口/03-打印ASCII值.mix diff --git a/boards/default/arduino_avr/examples/XKStl2DT2st/Hx8us0x7lx5.mix b/boards/default/arduino_avr/examples/08-通信/01-IRremote红外控制灯.mix similarity index 100% rename from boards/default/arduino_avr/examples/XKStl2DT2st/Hx8us0x7lx5.mix rename to boards/default/arduino_avr/examples/08-通信/01-IRremote红外控制灯.mix diff --git a/boards/default/arduino_avr/examples/XKStl2DT2st/2_SDuRhZLOk.mix b/boards/default/arduino_avr/examples/08-通信/02-IICMaster_字符.mix similarity index 100% rename from boards/default/arduino_avr/examples/XKStl2DT2st/2_SDuRhZLOk.mix rename to boards/default/arduino_avr/examples/08-通信/02-IICMaster_字符.mix diff --git a/boards/default/arduino_avr/examples/XKStl2DT2st/iRgvFHOw_8k.mix b/boards/default/arduino_avr/examples/08-通信/02-IICMaster_字符串.mix similarity index 100% rename from boards/default/arduino_avr/examples/XKStl2DT2st/iRgvFHOw_8k.mix rename to boards/default/arduino_avr/examples/08-通信/02-IICMaster_字符串.mix diff --git a/boards/default/arduino_avr/examples/XKStl2DT2st/HJMDCgeUrKk.mix b/boards/default/arduino_avr/examples/08-通信/02-IICMaster_请求数据.mix similarity index 100% rename from boards/default/arduino_avr/examples/XKStl2DT2st/HJMDCgeUrKk.mix rename to boards/default/arduino_avr/examples/08-通信/02-IICMaster_请求数据.mix diff --git a/boards/default/arduino_avr/examples/XKStl2DT2st/Hg0Ijn2Vq5s.mix b/boards/default/arduino_avr/examples/08-通信/02-IICSlave_字符.mix similarity index 100% rename from boards/default/arduino_avr/examples/XKStl2DT2st/Hg0Ijn2Vq5s.mix rename to boards/default/arduino_avr/examples/08-通信/02-IICSlave_字符.mix diff --git a/boards/default/arduino_avr/examples/XKStl2DT2st/WofI2vrF_4N.mix b/boards/default/arduino_avr/examples/08-通信/02-IICSlave_字符串.mix similarity index 100% rename from boards/default/arduino_avr/examples/XKStl2DT2st/WofI2vrF_4N.mix rename to boards/default/arduino_avr/examples/08-通信/02-IICSlave_字符串.mix diff --git a/boards/default/arduino_avr/examples/XKStl2DT2st/Kx1z4ByiMdV.mix b/boards/default/arduino_avr/examples/08-通信/03-SPI_Master.mix similarity index 100% rename from boards/default/arduino_avr/examples/XKStl2DT2st/Kx1z4ByiMdV.mix rename to boards/default/arduino_avr/examples/08-通信/03-SPI_Master.mix diff --git a/boards/default/arduino_avr/examples/XKStl2DT2st/zPDgwDsF135.mix b/boards/default/arduino_avr/examples/08-通信/03-SPI_Master_1.mix similarity index 100% rename from boards/default/arduino_avr/examples/XKStl2DT2st/zPDgwDsF135.mix rename to boards/default/arduino_avr/examples/08-通信/03-SPI_Master_1.mix diff --git a/boards/default/arduino_avr/examples/XKStl2DT2st/zsYpiEg9GJp.mix b/boards/default/arduino_avr/examples/08-通信/03-SPI_Master_2.mix similarity index 100% rename from boards/default/arduino_avr/examples/XKStl2DT2st/zsYpiEg9GJp.mix rename to boards/default/arduino_avr/examples/08-通信/03-SPI_Master_2.mix diff --git a/boards/default/arduino_avr/examples/XKStl2DT2st/IKGeHdkTMiZ.mix b/boards/default/arduino_avr/examples/08-通信/03-SPI_Master_字符串.mix similarity index 100% rename from boards/default/arduino_avr/examples/XKStl2DT2st/IKGeHdkTMiZ.mix rename to boards/default/arduino_avr/examples/08-通信/03-SPI_Master_字符串.mix diff --git a/boards/default/arduino_avr/examples/XKStl2DT2st/DjEv3KlTXeF.mix b/boards/default/arduino_avr/examples/08-通信/03-SPI_Slave.mix similarity index 100% rename from boards/default/arduino_avr/examples/XKStl2DT2st/DjEv3KlTXeF.mix rename to boards/default/arduino_avr/examples/08-通信/03-SPI_Slave.mix diff --git a/boards/default/arduino_avr/examples/XKStl2DT2st/CC4nii5o-di.mix b/boards/default/arduino_avr/examples/08-通信/03-SPI_Slave_1.mix similarity index 100% rename from boards/default/arduino_avr/examples/XKStl2DT2st/CC4nii5o-di.mix rename to boards/default/arduino_avr/examples/08-通信/03-SPI_Slave_1.mix diff --git a/boards/default/arduino_avr/examples/XKStl2DT2st/jFc3eJUyjij.mix b/boards/default/arduino_avr/examples/08-通信/03-SPI_Slave_2.mix similarity index 100% rename from boards/default/arduino_avr/examples/XKStl2DT2st/jFc3eJUyjij.mix rename to boards/default/arduino_avr/examples/08-通信/03-SPI_Slave_2.mix diff --git a/boards/default/arduino_avr/examples/XKStl2DT2st/Upe5bWmLmMq.mix b/boards/default/arduino_avr/examples/08-通信/03-SPI_Slave_字符串.mix similarity index 100% rename from boards/default/arduino_avr/examples/XKStl2DT2st/Upe5bWmLmMq.mix rename to boards/default/arduino_avr/examples/08-通信/03-SPI_Slave_字符串.mix diff --git a/boards/default/arduino_avr/examples/XKStl2DT2st/6LHcNGYkHoK.mix b/boards/default/arduino_avr/examples/08-通信/04-RFID_写卡&读卡.mix similarity index 100% rename from boards/default/arduino_avr/examples/XKStl2DT2st/6LHcNGYkHoK.mix rename to boards/default/arduino_avr/examples/08-通信/04-RFID_写卡&读卡.mix diff --git a/boards/default/arduino_avr/examples/XKStl2DT2st/V7eTxbD2wmL.mix b/boards/default/arduino_avr/examples/08-通信/04-RFID_写卡.mix similarity index 100% rename from boards/default/arduino_avr/examples/XKStl2DT2st/V7eTxbD2wmL.mix rename to boards/default/arduino_avr/examples/08-通信/04-RFID_写卡.mix diff --git a/boards/default/arduino_avr/examples/XKStl2DT2st/KSusAOZ-uqv.mix b/boards/default/arduino_avr/examples/08-通信/04-RFID_读卡.mix similarity index 100% rename from boards/default/arduino_avr/examples/XKStl2DT2st/KSusAOZ-uqv.mix rename to boards/default/arduino_avr/examples/08-通信/04-RFID_读卡.mix diff --git a/boards/default/arduino_avr/examples/XKStl2DT2st/-jC-ICp3gwt.mix b/boards/default/arduino_avr/examples/08-通信/04-RFID_读取RFID卡号.mix similarity index 100% rename from boards/default/arduino_avr/examples/XKStl2DT2st/-jC-ICp3gwt.mix rename to boards/default/arduino_avr/examples/08-通信/04-RFID_读取RFID卡号.mix diff --git a/boards/default/arduino_avr/examples/U7GeddKNqYn/Fvf71QL6WS5.mix b/boards/default/arduino_avr/examples/09-存储/02-EEPROM.mix similarity index 100% rename from boards/default/arduino_avr/examples/U7GeddKNqYn/Fvf71QL6WS5.mix rename to boards/default/arduino_avr/examples/09-存储/02-EEPROM.mix diff --git a/boards/default/arduino_avr/examples/U7GeddKNqYn/kmu74p0zI1i.mix b/boards/default/arduino_avr/examples/09-存储/02-EEPROM_写入和读取字符数组.mix similarity index 100% rename from boards/default/arduino_avr/examples/U7GeddKNqYn/kmu74p0zI1i.mix rename to boards/default/arduino_avr/examples/09-存储/02-EEPROM_写入和读取字符数组.mix diff --git a/boards/default/arduino_avr/examples/U7GeddKNqYn/7zXgHRWQ6D_.mix b/boards/default/arduino_avr/examples/09-存储/02-EEPROM_写入和读取字节数组.mix similarity index 100% rename from boards/default/arduino_avr/examples/U7GeddKNqYn/7zXgHRWQ6D_.mix rename to boards/default/arduino_avr/examples/09-存储/02-EEPROM_写入和读取字节数组.mix diff --git a/boards/default/arduino_avr/examples/U7GeddKNqYn/O2VC1CXoNkO.mix b/boards/default/arduino_avr/examples/09-存储/02-EEPROM_写入和读取小数.mix similarity index 100% rename from boards/default/arduino_avr/examples/U7GeddKNqYn/O2VC1CXoNkO.mix rename to boards/default/arduino_avr/examples/09-存储/02-EEPROM_写入和读取小数.mix diff --git a/boards/default/arduino_avr/examples/U7GeddKNqYn/WhuyVSZmhVD.mix b/boards/default/arduino_avr/examples/09-存储/02-EEPROM_写入和读取长整数.mix similarity index 100% rename from boards/default/arduino_avr/examples/U7GeddKNqYn/WhuyVSZmhVD.mix rename to boards/default/arduino_avr/examples/09-存储/02-EEPROM_写入和读取长整数.mix diff --git a/boards/default/arduino_avr/examples/KAu0EuYckzj/Xwfs32jT1sK.mix b/boards/default/arduino_avr/examples/10-传感器/01-超声波测距.mix similarity index 100% rename from boards/default/arduino_avr/examples/KAu0EuYckzj/Xwfs32jT1sK.mix rename to boards/default/arduino_avr/examples/10-传感器/01-超声波测距.mix diff --git a/boards/default/arduino_avr/examples/KAu0EuYckzj/OoW6xX6hKKd.mix b/boards/default/arduino_avr/examples/10-传感器/02-LCD1602显示温湿度.mix similarity index 100% rename from boards/default/arduino_avr/examples/KAu0EuYckzj/OoW6xX6hKKd.mix rename to boards/default/arduino_avr/examples/10-传感器/02-LCD1602显示温湿度.mix diff --git a/boards/default/arduino_avr/examples/KAu0EuYckzj/RUu2p7XY821.mix b/boards/default/arduino_avr/examples/10-传感器/04-DS18B20温度传感器.mix similarity index 100% rename from boards/default/arduino_avr/examples/KAu0EuYckzj/RUu2p7XY821.mix rename to boards/default/arduino_avr/examples/10-传感器/04-DS18B20温度传感器.mix diff --git a/boards/default/arduino_avr/examples/KAu0EuYckzj/to1VV_62lsv.mix b/boards/default/arduino_avr/examples/10-传感器/05-MLX90614测温.mix similarity index 100% rename from boards/default/arduino_avr/examples/KAu0EuYckzj/to1VV_62lsv.mix rename to boards/default/arduino_avr/examples/10-传感器/05-MLX90614测温.mix diff --git a/boards/default/arduino_avr/examples/KAu0EuYckzj/588KT_itA4J.mix b/boards/default/arduino_avr/examples/10-传感器/06-TCS34725颜色识别传感器.mix similarity index 100% rename from boards/default/arduino_avr/examples/KAu0EuYckzj/588KT_itA4J.mix rename to boards/default/arduino_avr/examples/10-传感器/06-TCS34725颜色识别传感器.mix diff --git a/boards/default/arduino_avr/examples/KAu0EuYckzj/m-t_swQIBAT.mix b/boards/default/arduino_avr/examples/10-传感器/07-TCS230颜色识别传感器.mix similarity index 100% rename from boards/default/arduino_avr/examples/KAu0EuYckzj/m-t_swQIBAT.mix rename to boards/default/arduino_avr/examples/10-传感器/07-TCS230颜色识别传感器.mix diff --git a/boards/default/arduino_avr/examples/KAu0EuYckzj/x-17bPGlHlk.mix b/boards/default/arduino_avr/examples/10-传感器/11-旋转编码器读取数据.mix similarity index 100% rename from boards/default/arduino_avr/examples/KAu0EuYckzj/x-17bPGlHlk.mix rename to boards/default/arduino_avr/examples/10-传感器/11-旋转编码器读取数据.mix diff --git a/boards/default/arduino_avr/examples/KAu0EuYckzj/tn819yT0Eab.mix b/boards/default/arduino_avr/examples/10-传感器/12-DS1302液晶时钟.mix similarity index 100% rename from boards/default/arduino_avr/examples/KAu0EuYckzj/tn819yT0Eab.mix rename to boards/default/arduino_avr/examples/10-传感器/12-DS1302液晶时钟.mix diff --git a/boards/default/arduino_avr/examples/KAu0EuYckzj/AAn6BQVImia.mix b/boards/default/arduino_avr/examples/10-传感器/12-DS1302输出日期.mix similarity index 100% rename from boards/default/arduino_avr/examples/KAu0EuYckzj/AAn6BQVImia.mix rename to boards/default/arduino_avr/examples/10-传感器/12-DS1302输出日期.mix diff --git a/boards/default/arduino_avr/examples/KAu0EuYckzj/a_x79oPPmMm.mix b/boards/default/arduino_avr/examples/10-传感器/13-矩阵键盘密码灯.mix similarity index 100% rename from boards/default/arduino_avr/examples/KAu0EuYckzj/a_x79oPPmMm.mix rename to boards/default/arduino_avr/examples/10-传感器/13-矩阵键盘密码灯.mix diff --git a/boards/default/arduino_avr/examples/KAu0EuYckzj/nAA-8wOZWx7.mix b/boards/default/arduino_avr/examples/10-传感器/13-矩阵键盘打印按键值.mix similarity index 100% rename from boards/default/arduino_avr/examples/KAu0EuYckzj/nAA-8wOZWx7.mix rename to boards/default/arduino_avr/examples/10-传感器/13-矩阵键盘打印按键值.mix diff --git a/boards/default/arduino_avr/examples/KAu0EuYckzj/xGGu--tGH7x.mix b/boards/default/arduino_avr/examples/10-传感器/13-矩阵键盘简易密码锁.mix similarity index 100% rename from boards/default/arduino_avr/examples/KAu0EuYckzj/xGGu--tGH7x.mix rename to boards/default/arduino_avr/examples/10-传感器/13-矩阵键盘简易密码锁.mix diff --git a/boards/default/arduino_avr/examples/KAu0EuYckzj/PL-KpP8pTTA.mix b/boards/default/arduino_avr/examples/10-传感器/15-MPU6050打印数值.mix similarity index 100% rename from boards/default/arduino_avr/examples/KAu0EuYckzj/PL-KpP8pTTA.mix rename to boards/default/arduino_avr/examples/10-传感器/15-MPU6050打印数值.mix diff --git a/boards/default/arduino_avr/examples/KAu0EuYckzj/UrnokGjSyQ6.mix b/boards/default/arduino_avr/examples/10-传感器/16-BME280打印温度值.mix similarity index 100% rename from boards/default/arduino_avr/examples/KAu0EuYckzj/UrnokGjSyQ6.mix rename to boards/default/arduino_avr/examples/10-传感器/16-BME280打印温度值.mix diff --git a/boards/default/arduino_avr/examples/KAu0EuYckzj/tTHeCIAHuGE.mix b/boards/default/arduino_avr/examples/10-传感器/16-BME280气象站.mix similarity index 100% rename from boards/default/arduino_avr/examples/KAu0EuYckzj/tTHeCIAHuGE.mix rename to boards/default/arduino_avr/examples/10-传感器/16-BME280气象站.mix diff --git a/boards/default/arduino_avr/examples/KAu0EuYckzj/fugAoyTvQRz.mix b/boards/default/arduino_avr/examples/10-传感器/17-PS2手柄_打印摇杆值.mix similarity index 100% rename from boards/default/arduino_avr/examples/KAu0EuYckzj/fugAoyTvQRz.mix rename to boards/default/arduino_avr/examples/10-传感器/17-PS2手柄_打印摇杆值.mix diff --git a/boards/default/arduino_avr/examples/KAu0EuYckzj/oCJ5rUm6ZZZ.mix b/boards/default/arduino_avr/examples/10-传感器/B01-声控舵机.mix similarity index 100% rename from boards/default/arduino_avr/examples/KAu0EuYckzj/oCJ5rUm6ZZZ.mix rename to boards/default/arduino_avr/examples/10-传感器/B01-声控舵机.mix diff --git a/boards/default/arduino_avr/examples/d0xJgjVqzEr/3EoT50pAjWE.mix b/boards/default/arduino_avr/examples/11-执行器/01-门铃.mix similarity index 100% rename from boards/default/arduino_avr/examples/d0xJgjVqzEr/3EoT50pAjWE.mix rename to boards/default/arduino_avr/examples/11-执行器/01-门铃.mix diff --git a/boards/default/arduino_avr/examples/d0xJgjVqzEr/-FoDI8qh7XI.mix b/boards/default/arduino_avr/examples/11-执行器/02-蜂鸣器播放简单声音.mix similarity index 100% rename from boards/default/arduino_avr/examples/d0xJgjVqzEr/-FoDI8qh7XI.mix rename to boards/default/arduino_avr/examples/11-执行器/02-蜂鸣器播放简单声音.mix diff --git a/boards/default/arduino_avr/examples/d0xJgjVqzEr/txGnArLFqSf.mix b/boards/default/arduino_avr/examples/11-执行器/03-按键钢琴.mix similarity index 100% rename from boards/default/arduino_avr/examples/d0xJgjVqzEr/txGnArLFqSf.mix rename to boards/default/arduino_avr/examples/11-执行器/03-按键钢琴.mix diff --git a/boards/default/arduino_avr/examples/d0xJgjVqzEr/O9-fa_XFk75.mix b/boards/default/arduino_avr/examples/11-执行器/04-两只老虎.mix similarity index 100% rename from boards/default/arduino_avr/examples/d0xJgjVqzEr/O9-fa_XFk75.mix rename to boards/default/arduino_avr/examples/11-执行器/04-两只老虎.mix diff --git a/boards/default/arduino_avr/examples/d0xJgjVqzEr/QGFM74k2idZ.mix b/boards/default/arduino_avr/examples/11-执行器/05-Alarm.mix similarity index 100% rename from boards/default/arduino_avr/examples/d0xJgjVqzEr/QGFM74k2idZ.mix rename to boards/default/arduino_avr/examples/11-执行器/05-Alarm.mix diff --git a/boards/default/arduino_avr/examples/d0xJgjVqzEr/h2Fg3GrBKhU.mix b/boards/default/arduino_avr/examples/11-执行器/06-WS2812.mix similarity index 100% rename from boards/default/arduino_avr/examples/d0xJgjVqzEr/h2Fg3GrBKhU.mix rename to boards/default/arduino_avr/examples/11-执行器/06-WS2812.mix diff --git a/boards/default/arduino_avr/examples/d0xJgjVqzEr/tj6KTWMUrC7.mix b/boards/default/arduino_avr/examples/11-执行器/07-mini MP3_播放音乐.mix similarity index 100% rename from boards/default/arduino_avr/examples/d0xJgjVqzEr/tj6KTWMUrC7.mix rename to boards/default/arduino_avr/examples/11-执行器/07-mini MP3_播放音乐.mix diff --git a/boards/default/arduino_avr/examples/d0xJgjVqzEr/xSIqI48njEw.mix b/boards/default/arduino_avr/examples/11-执行器/09-七彩流水灯.mix similarity index 100% rename from boards/default/arduino_avr/examples/d0xJgjVqzEr/xSIqI48njEw.mix rename to boards/default/arduino_avr/examples/11-执行器/09-七彩流水灯.mix diff --git a/boards/default/arduino_avr/examples/O6PPIPjRtY9/V4jtrDKO7Qy.mix b/boards/default/arduino_avr/examples/12-显示器/01-TM1650_显示变化的数字.mix similarity index 100% rename from boards/default/arduino_avr/examples/O6PPIPjRtY9/V4jtrDKO7Qy.mix rename to boards/default/arduino_avr/examples/12-显示器/01-TM1650_显示变化的数字.mix diff --git a/boards/default/arduino_avr/examples/O6PPIPjRtY9/Cb778mrOBEM.mix b/boards/default/arduino_avr/examples/12-显示器/03-LCD1602_显示Hello Mixly.mix similarity index 100% rename from boards/default/arduino_avr/examples/O6PPIPjRtY9/Cb778mrOBEM.mix rename to boards/default/arduino_avr/examples/12-显示器/03-LCD1602_显示Hello Mixly.mix diff --git a/boards/default/arduino_avr/examples/O6PPIPjRtY9/UbDalhz26o4.mix b/boards/default/arduino_avr/examples/12-显示器/04-OLED_多页切换.mix similarity index 100% rename from boards/default/arduino_avr/examples/O6PPIPjRtY9/UbDalhz26o4.mix rename to boards/default/arduino_avr/examples/12-显示器/04-OLED_多页切换.mix diff --git a/boards/default/arduino_avr/examples/O6PPIPjRtY9/h2d_5S5t1L2.mix b/boards/default/arduino_avr/examples/12-显示器/04-OLED_显示Mixly Logo.mix similarity index 100% rename from boards/default/arduino_avr/examples/O6PPIPjRtY9/h2d_5S5t1L2.mix rename to boards/default/arduino_avr/examples/12-显示器/04-OLED_显示Mixly Logo.mix diff --git a/boards/default/arduino_avr/examples/O6PPIPjRtY9/EjaMDt0whe8.mix b/boards/default/arduino_avr/examples/12-显示器/04-OLED_显示奥运五环图案.mix similarity index 100% rename from boards/default/arduino_avr/examples/O6PPIPjRtY9/EjaMDt0whe8.mix rename to boards/default/arduino_avr/examples/12-显示器/04-OLED_显示奥运五环图案.mix diff --git a/boards/default/arduino_avr/examples/O6PPIPjRtY9/BaNc_vAvy-3.mix b/boards/default/arduino_avr/examples/12-显示器/04-OLED_显示文本.mix similarity index 100% rename from boards/default/arduino_avr/examples/O6PPIPjRtY9/BaNc_vAvy-3.mix rename to boards/default/arduino_avr/examples/12-显示器/04-OLED_显示文本.mix diff --git a/boards/default/arduino_avr/examples/O6PPIPjRtY9/23Z2-qhqL1x.mix b/boards/default/arduino_avr/examples/12-显示器/04-OLED_显示汉字(取模).mix similarity index 100% rename from boards/default/arduino_avr/examples/O6PPIPjRtY9/23Z2-qhqL1x.mix rename to boards/default/arduino_avr/examples/12-显示器/04-OLED_显示汉字(取模).mix diff --git a/boards/default/arduino_avr/examples/O6PPIPjRtY9/BzN9qfkyefI.mix b/boards/default/arduino_avr/examples/12-显示器/04-OLED_显示汉字.mix similarity index 100% rename from boards/default/arduino_avr/examples/O6PPIPjRtY9/BzN9qfkyefI.mix rename to boards/default/arduino_avr/examples/12-显示器/04-OLED_显示汉字.mix diff --git a/boards/default/arduino_avr/examples/O6PPIPjRtY9/Tg6HtM3wFzO.mix b/boards/default/arduino_avr/examples/12-显示器/04-OLED_显示表情图片.mix similarity index 100% rename from boards/default/arduino_avr/examples/O6PPIPjRtY9/Tg6HtM3wFzO.mix rename to boards/default/arduino_avr/examples/12-显示器/04-OLED_显示表情图片.mix diff --git a/boards/default/arduino_avr/examples/O6PPIPjRtY9/YEPjq6XYYSU.mix b/boards/default/arduino_avr/examples/12-显示器/04-OLED_显示表情图片1.mix similarity index 100% rename from boards/default/arduino_avr/examples/O6PPIPjRtY9/YEPjq6XYYSU.mix rename to boards/default/arduino_avr/examples/12-显示器/04-OLED_显示表情图片1.mix diff --git a/boards/default/arduino_avr/examples/O6PPIPjRtY9/2f_GDf83N_z.mix b/boards/default/arduino_avr/examples/12-显示器/05-NOKIA5110_显示汉字(取模).mix similarity index 100% rename from boards/default/arduino_avr/examples/O6PPIPjRtY9/2f_GDf83N_z.mix rename to boards/default/arduino_avr/examples/12-显示器/05-NOKIA5110_显示汉字(取模).mix diff --git a/boards/default/arduino_avr/examples/O6PPIPjRtY9/YXu_ysGFBA9.mix b/boards/default/arduino_avr/examples/12-显示器/06-LCD12864 8080_显示汉字(取模).mix similarity index 100% rename from boards/default/arduino_avr/examples/O6PPIPjRtY9/YXu_ysGFBA9.mix rename to boards/default/arduino_avr/examples/12-显示器/06-LCD12864 8080_显示汉字(取模).mix diff --git a/boards/default/arduino_avr/examples/O6PPIPjRtY9/lfR78n3Xlxd.mix b/boards/default/arduino_avr/examples/12-显示器/06-LCD12864 SPI_显示汉字(取模).mix similarity index 100% rename from boards/default/arduino_avr/examples/O6PPIPjRtY9/lfR78n3Xlxd.mix rename to boards/default/arduino_avr/examples/12-显示器/06-LCD12864 SPI_显示汉字(取模).mix diff --git a/boards/default/arduino_avr/examples/O6PPIPjRtY9/UknLidU3S1j.mix b/boards/default/arduino_avr/examples/12-显示器/07-MAX7219_显示笑脸和哭脸.mix similarity index 100% rename from boards/default/arduino_avr/examples/O6PPIPjRtY9/UknLidU3S1j.mix rename to boards/default/arduino_avr/examples/12-显示器/07-MAX7219_显示笑脸和哭脸.mix diff --git a/boards/default/arduino_avr/examples/O6PPIPjRtY9/Z_FWnzp5VOQ.mix b/boards/default/arduino_avr/examples/12-显示器/07-MAX7219_水平方向四块级联滚动显示Mixly.mix similarity index 100% rename from boards/default/arduino_avr/examples/O6PPIPjRtY9/Z_FWnzp5VOQ.mix rename to boards/default/arduino_avr/examples/12-显示器/07-MAX7219_水平方向四块级联滚动显示Mixly.mix diff --git a/boards/default/arduino_avr/examples/bjb4mxSZcFZ/-PJ2XH0qz-r.mix b/boards/default/arduino_avr/examples/15-函数/01-函数法SOS.mix similarity index 100% rename from boards/default/arduino_avr/examples/bjb4mxSZcFZ/-PJ2XH0qz-r.mix rename to boards/default/arduino_avr/examples/15-函数/01-函数法SOS.mix diff --git a/boards/default/arduino_avr/examples/bjb4mxSZcFZ/bE1ner5NHqs.mix b/boards/default/arduino_avr/examples/15-函数/02-含参数无返回值呼吸灯.mix similarity index 100% rename from boards/default/arduino_avr/examples/bjb4mxSZcFZ/bE1ner5NHqs.mix rename to boards/default/arduino_avr/examples/15-函数/02-含参数无返回值呼吸灯.mix diff --git a/boards/default/arduino_avr/examples/hQUiFgtRPaB/upV-7XFNmsa.mix b/boards/default/arduino_avr/examples/16-自定义模块/(在2.0下编译报错)01-Factory.mix similarity index 100% rename from boards/default/arduino_avr/examples/hQUiFgtRPaB/upV-7XFNmsa.mix rename to boards/default/arduino_avr/examples/16-自定义模块/(在2.0下编译报错)01-Factory.mix diff --git a/boards/default/arduino_avr/examples/kyUNPkQOBM7/9uFWiRbsVGD/KVpVqz8ndQr.mix b/boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/01_input_and_Output/01_Light_up_the_on_board_indicator.mix similarity index 100% rename from boards/default/arduino_avr/examples/kyUNPkQOBM7/9uFWiRbsVGD/KVpVqz8ndQr.mix rename to boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/01_input_and_Output/01_Light_up_the_on_board_indicator.mix diff --git a/boards/default/arduino_avr/examples/kyUNPkQOBM7/9uFWiRbsVGD/7K1XcVJmg3R.mix b/boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/01_input_and_Output/02_On_board_indicator_flashes.mix similarity index 100% rename from boards/default/arduino_avr/examples/kyUNPkQOBM7/9uFWiRbsVGD/7K1XcVJmg3R.mix rename to boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/01_input_and_Output/02_On_board_indicator_flashes.mix diff --git a/boards/default/arduino_avr/examples/kyUNPkQOBM7/9uFWiRbsVGD/2-4OBHyy14O.mix b/boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/01_input_and_Output/03_Digital_Inputs.mix similarity index 100% rename from boards/default/arduino_avr/examples/kyUNPkQOBM7/9uFWiRbsVGD/2-4OBHyy14O.mix rename to boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/01_input_and_Output/03_Digital_Inputs.mix diff --git a/boards/default/arduino_avr/examples/kyUNPkQOBM7/9uFWiRbsVGD/gNxGGQRjjQd.mix b/boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/01_input_and_Output/04_Pin_output_state_switching.mix similarity index 100% rename from boards/default/arduino_avr/examples/kyUNPkQOBM7/9uFWiRbsVGD/gNxGGQRjjQd.mix rename to boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/01_input_and_Output/04_Pin_output_state_switching.mix diff --git a/boards/default/arduino_avr/examples/kyUNPkQOBM7/9uFWiRbsVGD/kAI9JzXDEYN.mix b/boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/01_input_and_Output/05_PWMAnalog_Output.mix similarity index 100% rename from boards/default/arduino_avr/examples/kyUNPkQOBM7/9uFWiRbsVGD/kAI9JzXDEYN.mix rename to boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/01_input_and_Output/05_PWMAnalog_Output.mix diff --git a/boards/default/arduino_avr/examples/kyUNPkQOBM7/9uFWiRbsVGD/XgXEfST6-fl.mix b/boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/01_input_and_Output/06_Analog_Inputs.mix similarity index 100% rename from boards/default/arduino_avr/examples/kyUNPkQOBM7/9uFWiRbsVGD/XgXEfST6-fl.mix rename to boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/01_input_and_Output/06_Analog_Inputs.mix diff --git a/boards/default/arduino_avr/examples/kyUNPkQOBM7/9uFWiRbsVGD/UjCwhwMkYsC.mix b/boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/01_input_and_Output/07_Software_analog_output.mix similarity index 100% rename from boards/default/arduino_avr/examples/kyUNPkQOBM7/9uFWiRbsVGD/UjCwhwMkYsC.mix rename to boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/01_input_and_Output/07_Software_analog_output.mix diff --git a/boards/default/arduino_avr/examples/kyUNPkQOBM7/9uFWiRbsVGD/qhmJJQDZuli.mix b/boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/01_input_and_Output/08_Multi_functional_keys.mix similarity index 100% rename from boards/default/arduino_avr/examples/kyUNPkQOBM7/9uFWiRbsVGD/qhmJJQDZuli.mix rename to boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/01_input_and_Output/08_Multi_functional_keys.mix diff --git a/boards/default/arduino_avr/examples/kyUNPkQOBM7/9uFWiRbsVGD/zbLpnvbBxqQ.mix b/boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/01_input_and_Output/09_Hardware_Interrupts.mix similarity index 100% rename from boards/default/arduino_avr/examples/kyUNPkQOBM7/9uFWiRbsVGD/zbLpnvbBxqQ.mix rename to boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/01_input_and_Output/09_Hardware_Interrupts.mix diff --git a/boards/default/arduino_avr/examples/kyUNPkQOBM7/9uFWiRbsVGD/hyQMpND2Omj.mix b/boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/01_input_and_Output/10_Software_Interruptions.mix similarity index 100% rename from boards/default/arduino_avr/examples/kyUNPkQOBM7/9uFWiRbsVGD/hyQMpND2Omj.mix rename to boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/01_input_and_Output/10_Software_Interruptions.mix diff --git a/boards/default/arduino_avr/examples/kyUNPkQOBM7/9uFWiRbsVGD/STHibFzQH-D.mix b/boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/01_input_and_Output/11_Pulse_measurement.mix similarity index 100% rename from boards/default/arduino_avr/examples/kyUNPkQOBM7/9uFWiRbsVGD/STHibFzQH-D.mix rename to boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/01_input_and_Output/11_Pulse_measurement.mix diff --git a/boards/default/arduino_avr/examples/kyUNPkQOBM7/9uFWiRbsVGD/YjhOYmHq1LE.mix b/boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/01_input_and_Output/12_Pin_up_mode.mix similarity index 100% rename from boards/default/arduino_avr/examples/kyUNPkQOBM7/9uFWiRbsVGD/YjhOYmHq1LE.mix rename to boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/01_input_and_Output/12_Pin_up_mode.mix diff --git a/boards/default/arduino_avr/examples/kyUNPkQOBM7/9uFWiRbsVGD/9xGMFoHnKqr.mix b/boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/01_input_and_Output/13_Serial_Data_Output.mix similarity index 100% rename from boards/default/arduino_avr/examples/kyUNPkQOBM7/9uFWiRbsVGD/9xGMFoHnKqr.mix rename to boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/01_input_and_Output/13_Serial_Data_Output.mix diff --git a/boards/default/arduino_avr/examples/kyUNPkQOBM7/4mSC9fi3yUP/J1BCdtb9iLA.mix b/boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/02_Control/01_Stop_the_program.mix similarity index 100% rename from boards/default/arduino_avr/examples/kyUNPkQOBM7/4mSC9fi3yUP/J1BCdtb9iLA.mix rename to boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/02_Control/01_Stop_the_program.mix diff --git a/boards/default/arduino_avr/examples/kyUNPkQOBM7/4mSC9fi3yUP/8Mei53U0v5B.mix b/boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/02_Control/02_Difference_between_while_and_do_while.mix similarity index 100% rename from boards/default/arduino_avr/examples/kyUNPkQOBM7/4mSC9fi3yUP/8Mei53U0v5B.mix rename to boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/02_Control/02_Difference_between_while_and_do_while.mix diff --git a/boards/default/arduino_avr/examples/kyUNPkQOBM7/4mSC9fi3yUP/0VXVBz6MIhK.mix b/boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/02_Control/03_if_elseConditional_Judgment.mix similarity index 100% rename from boards/default/arduino_avr/examples/kyUNPkQOBM7/4mSC9fi3yUP/0VXVBz6MIhK.mix rename to boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/02_Control/03_if_elseConditional_Judgment.mix diff --git a/boards/default/arduino_avr/examples/kyUNPkQOBM7/4mSC9fi3yUP/gGao0z9V369.mix b/boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/02_Control/04_switch_Multi_branching_condition_control.mix similarity index 100% rename from boards/default/arduino_avr/examples/kyUNPkQOBM7/4mSC9fi3yUP/gGao0z9V369.mix rename to boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/02_Control/04_switch_Multi_branching_condition_control.mix diff --git a/boards/default/arduino_avr/examples/kyUNPkQOBM7/4mSC9fi3yUP/uJrNyaR92Dv.mix b/boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/02_Control/05_for_Circular_breathing_light.mix similarity index 100% rename from boards/default/arduino_avr/examples/kyUNPkQOBM7/4mSC9fi3yUP/uJrNyaR92Dv.mix rename to boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/02_Control/05_for_Circular_breathing_light.mix diff --git a/boards/default/arduino_avr/examples/kyUNPkQOBM7/4mSC9fi3yUP/YV0F8tffYfm.mix b/boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/02_Control/06_Jump_out_of_the_loop.mix similarity index 100% rename from boards/default/arduino_avr/examples/kyUNPkQOBM7/4mSC9fi3yUP/YV0F8tffYfm.mix rename to boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/02_Control/06_Jump_out_of_the_loop.mix diff --git a/boards/default/arduino_avr/examples/kyUNPkQOBM7/4mSC9fi3yUP/rUTYwXWOHLy.mix b/boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/02_Control/07_System_runtime.mix similarity index 100% rename from boards/default/arduino_avr/examples/kyUNPkQOBM7/4mSC9fi3yUP/rUTYwXWOHLy.mix rename to boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/02_Control/07_System_runtime.mix diff --git a/boards/default/arduino_avr/examples/kyUNPkQOBM7/4mSC9fi3yUP/LsJO6HHngcM.mix b/boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/02_Control/08_Hardware_Timer.mix similarity index 100% rename from boards/default/arduino_avr/examples/kyUNPkQOBM7/4mSC9fi3yUP/LsJO6HHngcM.mix rename to boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/02_Control/08_Hardware_Timer.mix diff --git a/boards/default/arduino_avr/examples/kyUNPkQOBM7/4mSC9fi3yUP/VZ0_o4Cwo_7.mix b/boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/02_Control/09_Simple_Timer.mix similarity index 100% rename from boards/default/arduino_avr/examples/kyUNPkQOBM7/4mSC9fi3yUP/VZ0_o4Cwo_7.mix rename to boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/02_Control/09_Simple_Timer.mix diff --git a/boards/default/arduino_avr/examples/kyUNPkQOBM7/4mSC9fi3yUP/PtQFj6oWt4g.mix b/boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/02_Control/10_Register_delay_function.mix similarity index 100% rename from boards/default/arduino_avr/examples/kyUNPkQOBM7/4mSC9fi3yUP/PtQFj6oWt4g.mix rename to boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/02_Control/10_Register_delay_function.mix diff --git a/boards/default/arduino_avr/examples/kyUNPkQOBM7/4mSC9fi3yUP/O6Wi8Z0-DxD.mix b/boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/02_Control/11_SCoop_Multi-threaded.mix similarity index 100% rename from boards/default/arduino_avr/examples/kyUNPkQOBM7/4mSC9fi3yUP/O6Wi8Z0-DxD.mix rename to boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/02_Control/11_SCoop_Multi-threaded.mix diff --git a/boards/default/arduino_avr/examples/kyUNPkQOBM7/WsqDZULt-kV/vyr6hojn8Ht.mix b/boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/03_Mathematics/01_Algebraic_operations.mix similarity index 100% rename from boards/default/arduino_avr/examples/kyUNPkQOBM7/WsqDZULt-kV/vyr6hojn8Ht.mix rename to boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/03_Mathematics/01_Algebraic_operations.mix diff --git a/boards/default/arduino_avr/examples/kyUNPkQOBM7/WsqDZULt-kV/AhuaIjCNrtB.mix b/boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/03_Mathematics/02_Bit_Operations.mix similarity index 100% rename from boards/default/arduino_avr/examples/kyUNPkQOBM7/WsqDZULt-kV/AhuaIjCNrtB.mix rename to boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/03_Mathematics/02_Bit_Operations.mix diff --git a/boards/default/arduino_avr/examples/kyUNPkQOBM7/WsqDZULt-kV/TMYCacGk8bC.mix b/boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/03_Mathematics/03_Trigonometric_functions.mix similarity index 100% rename from boards/default/arduino_avr/examples/kyUNPkQOBM7/WsqDZULt-kV/TMYCacGk8bC.mix rename to boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/03_Mathematics/03_Trigonometric_functions.mix diff --git a/boards/default/arduino_avr/examples/kyUNPkQOBM7/WsqDZULt-kV/RKV6hRgu6oZ.mix b/boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/03_Mathematics/04_Variable_self-adding.mix similarity index 100% rename from boards/default/arduino_avr/examples/kyUNPkQOBM7/WsqDZULt-kV/RKV6hRgu6oZ.mix rename to boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/03_Mathematics/04_Variable_self-adding.mix diff --git a/boards/default/arduino_avr/examples/kyUNPkQOBM7/WsqDZULt-kV/PF-uEF3paA3.mix b/boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/03_Mathematics/05_Common_mathematical_operations(Rounding_etc.).mix similarity index 100% rename from boards/default/arduino_avr/examples/kyUNPkQOBM7/WsqDZULt-kV/PF-uEF3paA3.mix rename to boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/03_Mathematics/05_Common_mathematical_operations(Rounding_etc.).mix diff --git a/boards/default/arduino_avr/examples/kyUNPkQOBM7/WsqDZULt-kV/c2FMV3TffQo.mix b/boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/03_Mathematics/06_Get_the_number_of_bytes_occupied_by_different_types_of_data.mix similarity index 100% rename from boards/default/arduino_avr/examples/kyUNPkQOBM7/WsqDZULt-kV/c2FMV3TffQo.mix rename to boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/03_Mathematics/06_Get_the_number_of_bytes_occupied_by_different_types_of_data.mix diff --git a/boards/default/arduino_avr/examples/kyUNPkQOBM7/WsqDZULt-kV/G5A5RbLsSIo.mix b/boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/03_Mathematics/07_Maximum_and_minimum_values.mix similarity index 100% rename from boards/default/arduino_avr/examples/kyUNPkQOBM7/WsqDZULt-kV/G5A5RbLsSIo.mix rename to boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/03_Mathematics/07_Maximum_and_minimum_values.mix diff --git a/boards/default/arduino_avr/examples/kyUNPkQOBM7/WsqDZULt-kV/AQsKnbBnkv5.mix b/boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/03_Mathematics/08_Get_random_number.mix similarity index 100% rename from boards/default/arduino_avr/examples/kyUNPkQOBM7/WsqDZULt-kV/AQsKnbBnkv5.mix rename to boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/03_Mathematics/08_Get_random_number.mix diff --git a/boards/default/arduino_avr/examples/kyUNPkQOBM7/WsqDZULt-kV/Km9Q8uGcvOu.mix b/boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/03_Mathematics/09_Mathematical_constraints.mix similarity index 100% rename from boards/default/arduino_avr/examples/kyUNPkQOBM7/WsqDZULt-kV/Km9Q8uGcvOu.mix rename to boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/03_Mathematics/09_Mathematical_constraints.mix diff --git a/boards/default/arduino_avr/examples/kyUNPkQOBM7/WsqDZULt-kV/WVKtgBltFLC.mix b/boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/03_Mathematics/10_Mathematical_mapping.mix similarity index 100% rename from boards/default/arduino_avr/examples/kyUNPkQOBM7/WsqDZULt-kV/WVKtgBltFLC.mix rename to boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/03_Mathematics/10_Mathematical_mapping.mix diff --git a/boards/default/arduino_avr/examples/kyUNPkQOBM7/AEMprih0sQ0/mQxoYfW5UXo.mix b/boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/04_Logic/01_Logical_relationships.mix similarity index 100% rename from boards/default/arduino_avr/examples/kyUNPkQOBM7/AEMprih0sQ0/mQxoYfW5UXo.mix rename to boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/04_Logic/01_Logical_relationships.mix diff --git a/boards/default/arduino_avr/examples/kyUNPkQOBM7/AEMprih0sQ0/I2gngWKO4SF.mix b/boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/04_Logic/02_Logical_operations.mix similarity index 100% rename from boards/default/arduino_avr/examples/kyUNPkQOBM7/AEMprih0sQ0/I2gngWKO4SF.mix rename to boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/04_Logic/02_Logical_operations.mix diff --git a/boards/default/arduino_avr/examples/kyUNPkQOBM7/AEMprih0sQ0/5WU6MRDvIrQ.mix b/boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/04_Logic/03_Logical_non-operations.mix similarity index 100% rename from boards/default/arduino_avr/examples/kyUNPkQOBM7/AEMprih0sQ0/5WU6MRDvIrQ.mix rename to boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/04_Logic/03_Logical_non-operations.mix diff --git a/boards/default/arduino_avr/examples/kyUNPkQOBM7/AEMprih0sQ0/74-At-xbJHL.mix b/boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/04_Logic/04_Conditional_return_value.mix similarity index 100% rename from boards/default/arduino_avr/examples/kyUNPkQOBM7/AEMprih0sQ0/74-At-xbJHL.mix rename to boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/04_Logic/04_Conditional_return_value.mix diff --git a/boards/default/arduino_avr/examples/kyUNPkQOBM7/2WIPqJl5DxI/BleZ2ejL-Tq.mix b/boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/05_Text/01_String_Splicing.mix similarity index 100% rename from boards/default/arduino_avr/examples/kyUNPkQOBM7/2WIPqJl5DxI/BleZ2ejL-Tq.mix rename to boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/05_Text/01_String_Splicing.mix diff --git a/boards/default/arduino_avr/examples/kyUNPkQOBM7/2WIPqJl5DxI/YYc96lgYgLc.mix b/boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/05_Text/02_String_to_integer_or_decimal.mix similarity index 100% rename from boards/default/arduino_avr/examples/kyUNPkQOBM7/2WIPqJl5DxI/YYc96lgYgLc.mix rename to boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/05_Text/02_String_to_integer_or_decimal.mix diff --git a/boards/default/arduino_avr/examples/kyUNPkQOBM7/2WIPqJl5DxI/n450KNSxy6u.mix b/boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/05_Text/03_String_Index.mix similarity index 100% rename from boards/default/arduino_avr/examples/kyUNPkQOBM7/2WIPqJl5DxI/n450KNSxy6u.mix rename to boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/05_Text/03_String_Index.mix diff --git a/boards/default/arduino_avr/examples/kyUNPkQOBM7/2WIPqJl5DxI/nUFL_McLt60.mix b/boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/05_Text/04_Intercepting_strings.mix similarity index 100% rename from boards/default/arduino_avr/examples/kyUNPkQOBM7/2WIPqJl5DxI/nUFL_McLt60.mix rename to boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/05_Text/04_Intercepting_strings.mix diff --git a/boards/default/arduino_avr/examples/kyUNPkQOBM7/2WIPqJl5DxI/ZtdmaAiY_mQ.mix b/boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/05_Text/05_String_conversion_and_replacement.mix similarity index 100% rename from boards/default/arduino_avr/examples/kyUNPkQOBM7/2WIPqJl5DxI/ZtdmaAiY_mQ.mix rename to boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/05_Text/05_String_conversion_and_replacement.mix diff --git a/boards/default/arduino_avr/examples/kyUNPkQOBM7/2WIPqJl5DxI/4MD4-mvfY2J.mix b/boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/05_Text/06_String_First_Determination_and_Data_Type_Conversion.mix similarity index 100% rename from boards/default/arduino_avr/examples/kyUNPkQOBM7/2WIPqJl5DxI/4MD4-mvfY2J.mix rename to boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/05_Text/06_String_First_Determination_and_Data_Type_Conversion.mix diff --git a/boards/default/arduino_avr/examples/kyUNPkQOBM7/2WIPqJl5DxI/WdKR0gqEH-N.mix b/boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/05_Text/07_Character_to_ascii_conversion.mix similarity index 100% rename from boards/default/arduino_avr/examples/kyUNPkQOBM7/2WIPqJl5DxI/WdKR0gqEH-N.mix rename to boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/05_Text/07_Character_to_ascii_conversion.mix diff --git a/boards/default/arduino_avr/examples/kyUNPkQOBM7/2WIPqJl5DxI/C8Db9d1xjAn.mix b/boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/05_Text/08_Incremental_conversion.mix similarity index 100% rename from boards/default/arduino_avr/examples/kyUNPkQOBM7/2WIPqJl5DxI/C8Db9d1xjAn.mix rename to boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/05_Text/08_Incremental_conversion.mix diff --git a/boards/default/arduino_avr/examples/kyUNPkQOBM7/2WIPqJl5DxI/YEBO4r5Of0r.mix b/boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/05_Text/09_String_length_and_getting_the_specified_position_character.mix similarity index 100% rename from boards/default/arduino_avr/examples/kyUNPkQOBM7/2WIPqJl5DxI/YEBO4r5Of0r.mix rename to boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/05_Text/09_String_length_and_getting_the_specified_position_character.mix diff --git a/boards/default/arduino_avr/examples/kyUNPkQOBM7/2WIPqJl5DxI/6q_eN9MiUXW.mix b/boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/05_Text/10_String_relations _and_comparisons.mix similarity index 100% rename from boards/default/arduino_avr/examples/kyUNPkQOBM7/2WIPqJl5DxI/6q_eN9MiUXW.mix rename to boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/05_Text/10_String_relations _and_comparisons.mix diff --git a/boards/default/arduino_avr/examples/kyUNPkQOBM7/11dZjM8XY_z/4rZjfa8hT1Q.mix b/boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/06_Arrays/01_One-dimensional_array_declaration.mix similarity index 100% rename from boards/default/arduino_avr/examples/kyUNPkQOBM7/11dZjM8XY_z/4rZjfa8hT1Q.mix rename to boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/06_Arrays/01_One-dimensional_array_declaration.mix diff --git a/boards/default/arduino_avr/examples/kyUNPkQOBM7/11dZjM8XY_z/LPC4Ossk_Xu.mix b/boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/06_Arrays/02_Array_reading_and_writing.mix similarity index 100% rename from boards/default/arduino_avr/examples/kyUNPkQOBM7/11dZjM8XY_z/LPC4Ossk_Xu.mix rename to boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/06_Arrays/02_Array_reading_and_writing.mix diff --git a/boards/default/arduino_avr/examples/kyUNPkQOBM7/11dZjM8XY_z/CERTgzaOD8O.mix b/boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/06_Arrays/03_Array_circular_shift.mix similarity index 100% rename from boards/default/arduino_avr/examples/kyUNPkQOBM7/11dZjM8XY_z/CERTgzaOD8O.mix rename to boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/06_Arrays/03_Array_circular_shift.mix diff --git a/boards/default/arduino_avr/examples/kyUNPkQOBM7/11dZjM8XY_z/K-v4JlzpsZ5.mix b/boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/06_Arrays/04_Two-dimensional_array_declaration.mix similarity index 100% rename from boards/default/arduino_avr/examples/kyUNPkQOBM7/11dZjM8XY_z/K-v4JlzpsZ5.mix rename to boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/06_Arrays/04_Two-dimensional_array_declaration.mix diff --git a/boards/default/arduino_avr/examples/kyUNPkQOBM7/11dZjM8XY_z/1lQrty29k2g.mix b/boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/06_Arrays/05_Two-dimensional_array_reading_and_writing.mix similarity index 100% rename from boards/default/arduino_avr/examples/kyUNPkQOBM7/11dZjM8XY_z/1lQrty29k2g.mix rename to boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/06_Arrays/05_Two-dimensional_array_reading_and_writing.mix diff --git a/boards/default/arduino_avr/examples/kyUNPkQOBM7/inypGWSdWPH/9Y68GjDi_zI.mix b/boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/07_Variables/01_Difference_between_variable_declaration_and_use.mix similarity index 100% rename from boards/default/arduino_avr/examples/kyUNPkQOBM7/inypGWSdWPH/9Y68GjDi_zI.mix rename to boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/07_Variables/01_Difference_between_variable_declaration_and_use.mix diff --git a/boards/default/arduino_avr/examples/kyUNPkQOBM7/6EhGG8v_DwF/_HTmqkWOMZD.mix b/boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/08_Function/01_no-return-value-no-parameter_function.mix similarity index 100% rename from boards/default/arduino_avr/examples/kyUNPkQOBM7/6EhGG8v_DwF/_HTmqkWOMZD.mix rename to boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/08_Function/01_no-return-value-no-parameter_function.mix diff --git a/boards/default/arduino_avr/examples/kyUNPkQOBM7/6EhGG8v_DwF/aQwwUs06c7L.mix b/boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/08_Function/02_no-return-value_function_with_parameters.mix similarity index 100% rename from boards/default/arduino_avr/examples/kyUNPkQOBM7/6EhGG8v_DwF/aQwwUs06c7L.mix rename to boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/08_Function/02_no-return-value_function_with_parameters.mix diff --git a/boards/default/arduino_avr/examples/kyUNPkQOBM7/6EhGG8v_DwF/o3GuXJTiGMg.mix b/boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/08_Function/03_Function_declaration_with_return_value_and_parameters.mix similarity index 100% rename from boards/default/arduino_avr/examples/kyUNPkQOBM7/6EhGG8v_DwF/o3GuXJTiGMg.mix rename to boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/08_Function/03_Function_declaration_with_return_value_and_parameters.mix diff --git a/boards/default/arduino_avr/examples/kyUNPkQOBM7/6EhGG8v_DwF/8vrAJInTIRZ.mix b/boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/08_Function/04_Multiple_return_value_function_declaration_with_parameters.mix similarity index 100% rename from boards/default/arduino_avr/examples/kyUNPkQOBM7/6EhGG8v_DwF/8vrAJInTIRZ.mix rename to boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/08_Function/04_Multiple_return_value_function_declaration_with_parameters.mix diff --git a/boards/default/arduino_avr/examples/kyUNPkQOBM7/kU15criu7CK/D4L-0Yu37uz.mix b/boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/09_Serial_port/01_Serial_printout.mix similarity index 100% rename from boards/default/arduino_avr/examples/kyUNPkQOBM7/kU15criu7CK/D4L-0Yu37uz.mix rename to boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/09_Serial_port/01_Serial_printout.mix diff --git a/boards/default/arduino_avr/examples/kyUNPkQOBM7/kU15criu7CK/KZFlrooind7.mix b/boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/09_Serial_port/02_Serial_input_1.mix similarity index 100% rename from boards/default/arduino_avr/examples/kyUNPkQOBM7/kU15criu7CK/KZFlrooind7.mix rename to boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/09_Serial_port/02_Serial_input_1.mix diff --git a/boards/default/arduino_avr/examples/kyUNPkQOBM7/kU15criu7CK/Wc1wzso2KCT.mix b/boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/09_Serial_port/02_Serial_input_2.mix similarity index 100% rename from boards/default/arduino_avr/examples/kyUNPkQOBM7/kU15criu7CK/Wc1wzso2KCT.mix rename to boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/09_Serial_port/02_Serial_input_2.mix diff --git a/boards/default/arduino_avr/examples/kyUNPkQOBM7/kU15criu7CK/mBC0KBZUpCi.mix b/boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/09_Serial_port/02_Serial_input_3.mix similarity index 100% rename from boards/default/arduino_avr/examples/kyUNPkQOBM7/kU15criu7CK/mBC0KBZUpCi.mix rename to boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/09_Serial_port/02_Serial_input_3.mix diff --git a/boards/default/arduino_avr/examples/kyUNPkQOBM7/kU15criu7CK/9JCRtUCBuN8.mix b/boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/09_Serial_port/02_Serial_input_4.mix similarity index 100% rename from boards/default/arduino_avr/examples/kyUNPkQOBM7/kU15criu7CK/9JCRtUCBuN8.mix rename to boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/09_Serial_port/02_Serial_input_4.mix diff --git a/boards/default/arduino_avr/examples/kyUNPkQOBM7/kU15criu7CK/mVVInJLot_g.mix b/boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/09_Serial_port/03_Serial_port_send_wait.mix similarity index 100% rename from boards/default/arduino_avr/examples/kyUNPkQOBM7/kU15criu7CK/mVVInJLot_g.mix rename to boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/09_Serial_port/03_Serial_port_send_wait.mix diff --git a/boards/default/arduino_avr/examples/kyUNPkQOBM7/kU15criu7CK/XscElcU5MHM.mix b/boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/09_Serial_port/04_Serial_Interrupt.mix similarity index 100% rename from boards/default/arduino_avr/examples/kyUNPkQOBM7/kU15criu7CK/XscElcU5MHM.mix rename to boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/09_Serial_port/04_Serial_Interrupt.mix diff --git a/boards/default/arduino_avr/examples/kyUNPkQOBM7/kU15criu7CK/oh5xen7XwZD.mix b/boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/09_Serial_port/05_Use_of_soft_serial_port.mix similarity index 100% rename from boards/default/arduino_avr/examples/kyUNPkQOBM7/kU15criu7CK/oh5xen7XwZD.mix rename to boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/09_Serial_port/05_Use_of_soft_serial_port.mix diff --git a/boards/default/arduino_avr/examples/kyUNPkQOBM7/9VLH0RUfLsM/AQ_2_hczu2G.mix b/boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/10_Sensors/01_Ultrasonic_distance_measurement.mix similarity index 100% rename from boards/default/arduino_avr/examples/kyUNPkQOBM7/9VLH0RUfLsM/AQ_2_hczu2G.mix rename to boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/10_Sensors/01_Ultrasonic_distance_measurement.mix diff --git a/boards/default/arduino_avr/examples/kyUNPkQOBM7/9VLH0RUfLsM/9nos11M8lTT.mix b/boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/10_Sensors/02_Get_DHT11_temperature_and_humidity.mix similarity index 100% rename from boards/default/arduino_avr/examples/kyUNPkQOBM7/9VLH0RUfLsM/9nos11M8lTT.mix rename to boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/10_Sensors/02_Get_DHT11_temperature_and_humidity.mix diff --git a/boards/default/arduino_avr/examples/kyUNPkQOBM7/9VLH0RUfLsM/-WSPaBJ4MH8.mix b/boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/10_Sensors/03_get_LM35_temperature.mix similarity index 100% rename from boards/default/arduino_avr/examples/kyUNPkQOBM7/9VLH0RUfLsM/-WSPaBJ4MH8.mix rename to boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/10_Sensors/03_get_LM35_temperature.mix diff --git a/boards/default/arduino_avr/examples/kyUNPkQOBM7/9VLH0RUfLsM/eU8HiPsi2br.mix b/boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/10_Sensors/04_Get_DS18B20_temperature.mix similarity index 100% rename from boards/default/arduino_avr/examples/kyUNPkQOBM7/9VLH0RUfLsM/eU8HiPsi2br.mix rename to boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/10_Sensors/04_Get_DS18B20_temperature.mix diff --git a/boards/default/arduino_avr/examples/kyUNPkQOBM7/9VLH0RUfLsM/dk2L9-VfsqG.mix b/boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/10_Sensors/05_Get_BME280_parameters.mix similarity index 100% rename from boards/default/arduino_avr/examples/kyUNPkQOBM7/9VLH0RUfLsM/dk2L9-VfsqG.mix rename to boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/10_Sensors/05_Get_BME280_parameters.mix diff --git a/boards/default/arduino_avr/examples/kyUNPkQOBM7/9VLH0RUfLsM/xSkPXEtQHud.mix b/boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/10_Sensors/06_get_SHT20_temperature_and_humidity.mix similarity index 100% rename from boards/default/arduino_avr/examples/kyUNPkQOBM7/9VLH0RUfLsM/xSkPXEtQHud.mix rename to boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/10_Sensors/06_get_SHT20_temperature_and_humidity.mix diff --git a/boards/default/arduino_avr/examples/kyUNPkQOBM7/9VLH0RUfLsM/yb2ecCne2Aw.mix b/boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/10_Sensors/07_BMLX90614_Infrared_temperature_measurement.mix similarity index 100% rename from boards/default/arduino_avr/examples/kyUNPkQOBM7/9VLH0RUfLsM/yb2ecCne2Aw.mix rename to boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/10_Sensors/07_BMLX90614_Infrared_temperature_measurement.mix diff --git a/boards/default/arduino_avr/examples/kyUNPkQOBM7/9VLH0RUfLsM/pbfd8OYvTxQ.mix b/boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/10_Sensors/08_tcs34725_color_extraction.mix similarity index 100% rename from boards/default/arduino_avr/examples/kyUNPkQOBM7/9VLH0RUfLsM/pbfd8OYvTxQ.mix rename to boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/10_Sensors/08_tcs34725_color_extraction.mix diff --git a/boards/default/arduino_avr/examples/kyUNPkQOBM7/9VLH0RUfLsM/nUAQyLzPiX-.mix b/boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/10_Sensors/09_tcs230_color_extraction.mix similarity index 100% rename from boards/default/arduino_avr/examples/kyUNPkQOBM7/9VLH0RUfLsM/nUAQyLzPiX-.mix rename to boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/10_Sensors/09_tcs230_color_extraction.mix diff --git a/boards/default/arduino_avr/examples/kyUNPkQOBM7/9VLH0RUfLsM/jZnpeeeJTl3.mix b/boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/10_Sensors/10_MPU6050_Gyroscope.mix similarity index 100% rename from boards/default/arduino_avr/examples/kyUNPkQOBM7/9VLH0RUfLsM/jZnpeeeJTl3.mix rename to boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/10_Sensors/10_MPU6050_Gyroscope.mix diff --git a/boards/default/arduino_avr/examples/kyUNPkQOBM7/9VLH0RUfLsM/3lIpx13r7Si.mix b/boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/10_Sensors/11_MPU9250_acceleration_sensor.mix similarity index 100% rename from boards/default/arduino_avr/examples/kyUNPkQOBM7/9VLH0RUfLsM/3lIpx13r7Si.mix rename to boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/10_Sensors/11_MPU9250_acceleration_sensor.mix diff --git a/boards/default/arduino_avr/examples/kyUNPkQOBM7/IUagh-JkHHT/dewnQW-bD7F.mix b/boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/13_Communication/01_Infrared_data_reception.mix similarity index 100% rename from boards/default/arduino_avr/examples/kyUNPkQOBM7/IUagh-JkHHT/dewnQW-bD7F.mix rename to boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/13_Communication/01_Infrared_data_reception.mix diff --git a/boards/default/arduino_avr/examples/kyUNPkQOBM7/IUagh-JkHHT/2doyYS6DA3f.mix b/boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/13_Communication/02_Infrared_data_transmission.mix similarity index 100% rename from boards/default/arduino_avr/examples/kyUNPkQOBM7/IUagh-JkHHT/2doyYS6DA3f.mix rename to boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/13_Communication/02_Infrared_data_transmission.mix diff --git a/boards/default/arduino_avr/examples/kyUNPkQOBM7/IUagh-JkHHT/S5_VC47ltHo.mix b/boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/13_Communication/03_Infrared_data_simulation_transceiver.mix similarity index 100% rename from boards/default/arduino_avr/examples/kyUNPkQOBM7/IUagh-JkHHT/S5_VC47ltHo.mix rename to boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/13_Communication/03_Infrared_data_simulation_transceiver.mix diff --git a/boards/default/arduino_avr/examples/kyUNPkQOBM7/Npd91izpaxd/ennCdfZgqie.mix b/boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/14_Storage/01_SD_card_read_test.mix similarity index 100% rename from boards/default/arduino_avr/examples/kyUNPkQOBM7/Npd91izpaxd/ennCdfZgqie.mix rename to boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/14_Storage/01_SD_card_read_test.mix diff --git a/boards/default/arduino_avr/examples/kyUNPkQOBM7/Npd91izpaxd/-x8aqCLjqEl.mix b/boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/14_Storage/02_EEPROM_power_down_storage.mix similarity index 100% rename from boards/default/arduino_avr/examples/kyUNPkQOBM7/Npd91izpaxd/-x8aqCLjqEl.mix rename to boards/default/arduino_avr/examples/Mixly2.0_simple_tutorial/14_Storage/02_EEPROM_power_down_storage.mix diff --git a/boards/default/arduino_avr/examples/sG_W03pyJzQ/zyLXcW3DAPd/9IVpTZJAS92.mix b/boards/default/arduino_avr/examples/Mixly2.0简明教程/01-输入输出/01-点亮板载指示灯13.mix similarity index 100% rename from boards/default/arduino_avr/examples/sG_W03pyJzQ/zyLXcW3DAPd/9IVpTZJAS92.mix rename to boards/default/arduino_avr/examples/Mixly2.0简明教程/01-输入输出/01-点亮板载指示灯13.mix diff --git a/boards/default/arduino_avr/examples/sG_W03pyJzQ/zyLXcW3DAPd/JRI99t2oYVC.mix b/boards/default/arduino_avr/examples/Mixly2.0简明教程/01-输入输出/02-板载指示灯13闪烁.mix similarity index 100% rename from boards/default/arduino_avr/examples/sG_W03pyJzQ/zyLXcW3DAPd/JRI99t2oYVC.mix rename to boards/default/arduino_avr/examples/Mixly2.0简明教程/01-输入输出/02-板载指示灯13闪烁.mix diff --git a/boards/default/arduino_avr/examples/sG_W03pyJzQ/zyLXcW3DAPd/4rJpEo3QxA_.mix b/boards/default/arduino_avr/examples/Mixly2.0简明教程/01-输入输出/03-数字输入.mix similarity index 100% rename from boards/default/arduino_avr/examples/sG_W03pyJzQ/zyLXcW3DAPd/4rJpEo3QxA_.mix rename to boards/default/arduino_avr/examples/Mixly2.0简明教程/01-输入输出/03-数字输入.mix diff --git a/boards/default/arduino_avr/examples/sG_W03pyJzQ/zyLXcW3DAPd/EtyAP1gR35L.mix b/boards/default/arduino_avr/examples/Mixly2.0简明教程/01-输入输出/04-管脚输出状态切换.mix similarity index 100% rename from boards/default/arduino_avr/examples/sG_W03pyJzQ/zyLXcW3DAPd/EtyAP1gR35L.mix rename to boards/default/arduino_avr/examples/Mixly2.0简明教程/01-输入输出/04-管脚输出状态切换.mix diff --git a/boards/default/arduino_avr/examples/sG_W03pyJzQ/zyLXcW3DAPd/f1W7Qy1G9Uw.mix b/boards/default/arduino_avr/examples/Mixly2.0简明教程/01-输入输出/05-PWM模拟输出.mix similarity index 100% rename from boards/default/arduino_avr/examples/sG_W03pyJzQ/zyLXcW3DAPd/f1W7Qy1G9Uw.mix rename to boards/default/arduino_avr/examples/Mixly2.0简明教程/01-输入输出/05-PWM模拟输出.mix diff --git a/boards/default/arduino_avr/examples/sG_W03pyJzQ/zyLXcW3DAPd/eDGovRRpRq9.mix b/boards/default/arduino_avr/examples/Mixly2.0简明教程/01-输入输出/06-模拟输入.mix similarity index 100% rename from boards/default/arduino_avr/examples/sG_W03pyJzQ/zyLXcW3DAPd/eDGovRRpRq9.mix rename to boards/default/arduino_avr/examples/Mixly2.0简明教程/01-输入输出/06-模拟输入.mix diff --git a/boards/default/arduino_avr/examples/sG_W03pyJzQ/zyLXcW3DAPd/dj4vOUhcI98.mix b/boards/default/arduino_avr/examples/Mixly2.0简明教程/01-输入输出/07-软件模拟输出.mix similarity index 100% rename from boards/default/arduino_avr/examples/sG_W03pyJzQ/zyLXcW3DAPd/dj4vOUhcI98.mix rename to boards/default/arduino_avr/examples/Mixly2.0简明教程/01-输入输出/07-软件模拟输出.mix diff --git a/boards/default/arduino_avr/examples/sG_W03pyJzQ/zyLXcW3DAPd/PfqkE7I5dxw.mix b/boards/default/arduino_avr/examples/Mixly2.0简明教程/01-输入输出/08-多功能按键.mix similarity index 100% rename from boards/default/arduino_avr/examples/sG_W03pyJzQ/zyLXcW3DAPd/PfqkE7I5dxw.mix rename to boards/default/arduino_avr/examples/Mixly2.0简明教程/01-输入输出/08-多功能按键.mix diff --git a/boards/default/arduino_avr/examples/sG_W03pyJzQ/zyLXcW3DAPd/-VJ15cIzAzS.mix b/boards/default/arduino_avr/examples/Mixly2.0简明教程/01-输入输出/09-硬件中断.mix similarity index 100% rename from boards/default/arduino_avr/examples/sG_W03pyJzQ/zyLXcW3DAPd/-VJ15cIzAzS.mix rename to boards/default/arduino_avr/examples/Mixly2.0简明教程/01-输入输出/09-硬件中断.mix diff --git a/boards/default/arduino_avr/examples/sG_W03pyJzQ/zyLXcW3DAPd/C6tRMhMqpZm.mix b/boards/default/arduino_avr/examples/Mixly2.0简明教程/01-输入输出/10-软件中断.mix similarity index 100% rename from boards/default/arduino_avr/examples/sG_W03pyJzQ/zyLXcW3DAPd/C6tRMhMqpZm.mix rename to boards/default/arduino_avr/examples/Mixly2.0简明教程/01-输入输出/10-软件中断.mix diff --git a/boards/default/arduino_avr/examples/sG_W03pyJzQ/zyLXcW3DAPd/76C-zKdAMjb.mix b/boards/default/arduino_avr/examples/Mixly2.0简明教程/01-输入输出/11-脉冲测量.mix similarity index 100% rename from boards/default/arduino_avr/examples/sG_W03pyJzQ/zyLXcW3DAPd/76C-zKdAMjb.mix rename to boards/default/arduino_avr/examples/Mixly2.0简明教程/01-输入输出/11-脉冲测量.mix diff --git a/boards/default/arduino_avr/examples/sG_W03pyJzQ/zyLXcW3DAPd/5DXwj6xnxlb.mix b/boards/default/arduino_avr/examples/Mixly2.0简明教程/01-输入输出/12-管脚上拉模式.mix similarity index 100% rename from boards/default/arduino_avr/examples/sG_W03pyJzQ/zyLXcW3DAPd/5DXwj6xnxlb.mix rename to boards/default/arduino_avr/examples/Mixly2.0简明教程/01-输入输出/12-管脚上拉模式.mix diff --git a/boards/default/arduino_avr/examples/sG_W03pyJzQ/zyLXcW3DAPd/0p7-ZmwX0z6.mix b/boards/default/arduino_avr/examples/Mixly2.0简明教程/01-输入输出/13-串行数据输出.mix similarity index 100% rename from boards/default/arduino_avr/examples/sG_W03pyJzQ/zyLXcW3DAPd/0p7-ZmwX0z6.mix rename to boards/default/arduino_avr/examples/Mixly2.0简明教程/01-输入输出/13-串行数据输出.mix diff --git a/boards/default/arduino_avr/examples/sG_W03pyJzQ/9M4j6Kk0ifi/L9-40juTN8a.mix b/boards/default/arduino_avr/examples/Mixly2.0简明教程/02-控制/01-停止程序.mix similarity index 100% rename from boards/default/arduino_avr/examples/sG_W03pyJzQ/9M4j6Kk0ifi/L9-40juTN8a.mix rename to boards/default/arduino_avr/examples/Mixly2.0简明教程/02-控制/01-停止程序.mix diff --git a/boards/default/arduino_avr/examples/sG_W03pyJzQ/9M4j6Kk0ifi/SY0lqWStx4F.mix b/boards/default/arduino_avr/examples/Mixly2.0简明教程/02-控制/02-while与do while区别.mix similarity index 100% rename from boards/default/arduino_avr/examples/sG_W03pyJzQ/9M4j6Kk0ifi/SY0lqWStx4F.mix rename to boards/default/arduino_avr/examples/Mixly2.0简明教程/02-控制/02-while与do while区别.mix diff --git a/boards/default/arduino_avr/examples/sG_W03pyJzQ/9M4j6Kk0ifi/4htlbr2cyp6.mix b/boards/default/arduino_avr/examples/Mixly2.0简明教程/02-控制/03-if else条件判断.mix similarity index 100% rename from boards/default/arduino_avr/examples/sG_W03pyJzQ/9M4j6Kk0ifi/4htlbr2cyp6.mix rename to boards/default/arduino_avr/examples/Mixly2.0简明教程/02-控制/03-if else条件判断.mix diff --git a/boards/default/arduino_avr/examples/sG_W03pyJzQ/9M4j6Kk0ifi/OsJyKlMgnB_.mix b/boards/default/arduino_avr/examples/Mixly2.0简明教程/02-控制/04-switch多分枝条件控制.mix similarity index 100% rename from boards/default/arduino_avr/examples/sG_W03pyJzQ/9M4j6Kk0ifi/OsJyKlMgnB_.mix rename to boards/default/arduino_avr/examples/Mixly2.0简明教程/02-控制/04-switch多分枝条件控制.mix diff --git a/boards/default/arduino_avr/examples/sG_W03pyJzQ/9M4j6Kk0ifi/IghpMVqTIh-.mix b/boards/default/arduino_avr/examples/Mixly2.0简明教程/02-控制/05-for循环呼吸灯.mix similarity index 100% rename from boards/default/arduino_avr/examples/sG_W03pyJzQ/9M4j6Kk0ifi/IghpMVqTIh-.mix rename to boards/default/arduino_avr/examples/Mixly2.0简明教程/02-控制/05-for循环呼吸灯.mix diff --git a/boards/default/arduino_avr/examples/sG_W03pyJzQ/9M4j6Kk0ifi/_cAjY5kKXkl.mix b/boards/default/arduino_avr/examples/Mixly2.0简明教程/02-控制/06-跳出循环.mix similarity index 100% rename from boards/default/arduino_avr/examples/sG_W03pyJzQ/9M4j6Kk0ifi/_cAjY5kKXkl.mix rename to boards/default/arduino_avr/examples/Mixly2.0简明教程/02-控制/06-跳出循环.mix diff --git a/boards/default/arduino_avr/examples/sG_W03pyJzQ/9M4j6Kk0ifi/Iih5hy7w834.mix b/boards/default/arduino_avr/examples/Mixly2.0简明教程/02-控制/07-系统运行时间.mix similarity index 100% rename from boards/default/arduino_avr/examples/sG_W03pyJzQ/9M4j6Kk0ifi/Iih5hy7w834.mix rename to boards/default/arduino_avr/examples/Mixly2.0简明教程/02-控制/07-系统运行时间.mix diff --git a/boards/default/arduino_avr/examples/sG_W03pyJzQ/9M4j6Kk0ifi/QghyQu4TbHL.mix b/boards/default/arduino_avr/examples/Mixly2.0简明教程/02-控制/08-硬件定时器.mix similarity index 100% rename from boards/default/arduino_avr/examples/sG_W03pyJzQ/9M4j6Kk0ifi/QghyQu4TbHL.mix rename to boards/default/arduino_avr/examples/Mixly2.0简明教程/02-控制/08-硬件定时器.mix diff --git a/boards/default/arduino_avr/examples/sG_W03pyJzQ/9M4j6Kk0ifi/w1W0noPqHKB.mix b/boards/default/arduino_avr/examples/Mixly2.0简明教程/02-控制/09-简单定时器.mix similarity index 100% rename from boards/default/arduino_avr/examples/sG_W03pyJzQ/9M4j6Kk0ifi/w1W0noPqHKB.mix rename to boards/default/arduino_avr/examples/Mixly2.0简明教程/02-控制/09-简单定时器.mix diff --git a/boards/default/arduino_avr/examples/sG_W03pyJzQ/9M4j6Kk0ifi/3irgJ1X_LDq.mix b/boards/default/arduino_avr/examples/Mixly2.0简明教程/02-控制/10-注册延时函数.mix similarity index 100% rename from boards/default/arduino_avr/examples/sG_W03pyJzQ/9M4j6Kk0ifi/3irgJ1X_LDq.mix rename to boards/default/arduino_avr/examples/Mixly2.0简明教程/02-控制/10-注册延时函数.mix diff --git a/boards/default/arduino_avr/examples/sG_W03pyJzQ/9M4j6Kk0ifi/jtRBDN-KIBk.mix b/boards/default/arduino_avr/examples/Mixly2.0简明教程/02-控制/11-SCoop多线程.mix similarity index 100% rename from boards/default/arduino_avr/examples/sG_W03pyJzQ/9M4j6Kk0ifi/jtRBDN-KIBk.mix rename to boards/default/arduino_avr/examples/Mixly2.0简明教程/02-控制/11-SCoop多线程.mix diff --git a/boards/default/arduino_avr/examples/sG_W03pyJzQ/EQRznV_EdoC/94QvwqAykHH.mix b/boards/default/arduino_avr/examples/Mixly2.0简明教程/03-数学/01-代数运算.mix similarity index 100% rename from boards/default/arduino_avr/examples/sG_W03pyJzQ/EQRznV_EdoC/94QvwqAykHH.mix rename to boards/default/arduino_avr/examples/Mixly2.0简明教程/03-数学/01-代数运算.mix diff --git a/boards/default/arduino_avr/examples/sG_W03pyJzQ/EQRznV_EdoC/1QqTou5XTIb.mix b/boards/default/arduino_avr/examples/Mixly2.0简明教程/03-数学/02-位运算.mix similarity index 100% rename from boards/default/arduino_avr/examples/sG_W03pyJzQ/EQRznV_EdoC/1QqTou5XTIb.mix rename to boards/default/arduino_avr/examples/Mixly2.0简明教程/03-数学/02-位运算.mix diff --git a/boards/default/arduino_avr/examples/sG_W03pyJzQ/EQRznV_EdoC/41Ji3K1emnD.mix b/boards/default/arduino_avr/examples/Mixly2.0简明教程/03-数学/03-三角函数.mix similarity index 100% rename from boards/default/arduino_avr/examples/sG_W03pyJzQ/EQRznV_EdoC/41Ji3K1emnD.mix rename to boards/default/arduino_avr/examples/Mixly2.0简明教程/03-数学/03-三角函数.mix diff --git a/boards/default/arduino_avr/examples/sG_W03pyJzQ/EQRznV_EdoC/dvV0fozR2qy.mix b/boards/default/arduino_avr/examples/Mixly2.0简明教程/03-数学/04-变量自加.mix similarity index 100% rename from boards/default/arduino_avr/examples/sG_W03pyJzQ/EQRznV_EdoC/dvV0fozR2qy.mix rename to boards/default/arduino_avr/examples/Mixly2.0简明教程/03-数学/04-变量自加.mix diff --git a/boards/default/arduino_avr/examples/sG_W03pyJzQ/EQRznV_EdoC/pKdG_01YXCR.mix b/boards/default/arduino_avr/examples/Mixly2.0简明教程/03-数学/05-常见数学运算(四舍五入等).mix similarity index 100% rename from boards/default/arduino_avr/examples/sG_W03pyJzQ/EQRznV_EdoC/pKdG_01YXCR.mix rename to boards/default/arduino_avr/examples/Mixly2.0简明教程/03-数学/05-常见数学运算(四舍五入等).mix diff --git a/boards/default/arduino_avr/examples/sG_W03pyJzQ/EQRznV_EdoC/tYcWxNcC4yu.mix b/boards/default/arduino_avr/examples/Mixly2.0简明教程/03-数学/06-获取不同类型数据占用的字节数.mix similarity index 100% rename from boards/default/arduino_avr/examples/sG_W03pyJzQ/EQRznV_EdoC/tYcWxNcC4yu.mix rename to boards/default/arduino_avr/examples/Mixly2.0简明教程/03-数学/06-获取不同类型数据占用的字节数.mix diff --git a/boards/default/arduino_avr/examples/sG_W03pyJzQ/EQRznV_EdoC/i8GNfghhchF.mix b/boards/default/arduino_avr/examples/Mixly2.0简明教程/03-数学/07-最大值与最小值.mix similarity index 100% rename from boards/default/arduino_avr/examples/sG_W03pyJzQ/EQRznV_EdoC/i8GNfghhchF.mix rename to boards/default/arduino_avr/examples/Mixly2.0简明教程/03-数学/07-最大值与最小值.mix diff --git a/boards/default/arduino_avr/examples/sG_W03pyJzQ/EQRznV_EdoC/CSlrW-WkBhE.mix b/boards/default/arduino_avr/examples/Mixly2.0简明教程/03-数学/08-获取随机数.mix similarity index 100% rename from boards/default/arduino_avr/examples/sG_W03pyJzQ/EQRznV_EdoC/CSlrW-WkBhE.mix rename to boards/default/arduino_avr/examples/Mixly2.0简明教程/03-数学/08-获取随机数.mix diff --git a/boards/default/arduino_avr/examples/sG_W03pyJzQ/EQRznV_EdoC/yjErwxvy_PL.mix b/boards/default/arduino_avr/examples/Mixly2.0简明教程/03-数学/09-数学约束.mix similarity index 100% rename from boards/default/arduino_avr/examples/sG_W03pyJzQ/EQRznV_EdoC/yjErwxvy_PL.mix rename to boards/default/arduino_avr/examples/Mixly2.0简明教程/03-数学/09-数学约束.mix diff --git a/boards/default/arduino_avr/examples/sG_W03pyJzQ/EQRznV_EdoC/5gMSrbsl_IA.mix b/boards/default/arduino_avr/examples/Mixly2.0简明教程/03-数学/10-数学映射.mix similarity index 100% rename from boards/default/arduino_avr/examples/sG_W03pyJzQ/EQRznV_EdoC/5gMSrbsl_IA.mix rename to boards/default/arduino_avr/examples/Mixly2.0简明教程/03-数学/10-数学映射.mix diff --git a/boards/default/arduino_avr/examples/sG_W03pyJzQ/6QrokY_Ea8R/g5SQTzQvaEs.mix b/boards/default/arduino_avr/examples/Mixly2.0简明教程/04-逻辑/01-逻辑关系.mix similarity index 100% rename from boards/default/arduino_avr/examples/sG_W03pyJzQ/6QrokY_Ea8R/g5SQTzQvaEs.mix rename to boards/default/arduino_avr/examples/Mixly2.0简明教程/04-逻辑/01-逻辑关系.mix diff --git a/boards/default/arduino_avr/examples/sG_W03pyJzQ/6QrokY_Ea8R/XqmVPjvJhbI.mix b/boards/default/arduino_avr/examples/Mixly2.0简明教程/04-逻辑/02-逻辑运算.mix similarity index 100% rename from boards/default/arduino_avr/examples/sG_W03pyJzQ/6QrokY_Ea8R/XqmVPjvJhbI.mix rename to boards/default/arduino_avr/examples/Mixly2.0简明教程/04-逻辑/02-逻辑运算.mix diff --git a/boards/default/arduino_avr/examples/sG_W03pyJzQ/6QrokY_Ea8R/6VUve83biSS.mix b/boards/default/arduino_avr/examples/Mixly2.0简明教程/04-逻辑/03-逻辑非运算.mix similarity index 100% rename from boards/default/arduino_avr/examples/sG_W03pyJzQ/6QrokY_Ea8R/6VUve83biSS.mix rename to boards/default/arduino_avr/examples/Mixly2.0简明教程/04-逻辑/03-逻辑非运算.mix diff --git a/boards/default/arduino_avr/examples/sG_W03pyJzQ/6QrokY_Ea8R/tWWIZyjcTlKp.mix b/boards/default/arduino_avr/examples/Mixly2.0简明教程/04-逻辑/04-条件返回值.mix similarity index 100% rename from boards/default/arduino_avr/examples/sG_W03pyJzQ/6QrokY_Ea8R/tWWIZyjcTlKp.mix rename to boards/default/arduino_avr/examples/Mixly2.0简明教程/04-逻辑/04-条件返回值.mix diff --git a/boards/default/arduino_avr/examples/sG_W03pyJzQ/uHKMG6FYAqx2/rCcGlL82TIpj.mix b/boards/default/arduino_avr/examples/Mixly2.0简明教程/05-文本/01-字符串拼接.mix similarity index 100% rename from boards/default/arduino_avr/examples/sG_W03pyJzQ/uHKMG6FYAqx2/rCcGlL82TIpj.mix rename to boards/default/arduino_avr/examples/Mixly2.0简明教程/05-文本/01-字符串拼接.mix diff --git a/boards/default/arduino_avr/examples/sG_W03pyJzQ/uHKMG6FYAqx2/bpvFk1ZS9-6b.mix b/boards/default/arduino_avr/examples/Mixly2.0简明教程/05-文本/02-字符串转整数或小数.mix similarity index 100% rename from boards/default/arduino_avr/examples/sG_W03pyJzQ/uHKMG6FYAqx2/bpvFk1ZS9-6b.mix rename to boards/default/arduino_avr/examples/Mixly2.0简明教程/05-文本/02-字符串转整数或小数.mix diff --git a/boards/default/arduino_avr/examples/sG_W03pyJzQ/uHKMG6FYAqx2/ARbon0fYPERQ.mix b/boards/default/arduino_avr/examples/Mixly2.0简明教程/05-文本/03-字符串索引.mix similarity index 100% rename from boards/default/arduino_avr/examples/sG_W03pyJzQ/uHKMG6FYAqx2/ARbon0fYPERQ.mix rename to boards/default/arduino_avr/examples/Mixly2.0简明教程/05-文本/03-字符串索引.mix diff --git a/boards/default/arduino_avr/examples/sG_W03pyJzQ/uHKMG6FYAqx2/iaPqDixnIaEa.mix b/boards/default/arduino_avr/examples/Mixly2.0简明教程/05-文本/04-截取字符串.mix similarity index 100% rename from boards/default/arduino_avr/examples/sG_W03pyJzQ/uHKMG6FYAqx2/iaPqDixnIaEa.mix rename to boards/default/arduino_avr/examples/Mixly2.0简明教程/05-文本/04-截取字符串.mix diff --git a/boards/default/arduino_avr/examples/sG_W03pyJzQ/uHKMG6FYAqx2/IwqZOOL9LFVQ.mix b/boards/default/arduino_avr/examples/Mixly2.0简明教程/05-文本/05-字符串转换与替换.mix similarity index 100% rename from boards/default/arduino_avr/examples/sG_W03pyJzQ/uHKMG6FYAqx2/IwqZOOL9LFVQ.mix rename to boards/default/arduino_avr/examples/Mixly2.0简明教程/05-文本/05-字符串转换与替换.mix diff --git a/boards/default/arduino_avr/examples/sG_W03pyJzQ/uHKMG6FYAqx2/qGWUNel7s6lv.mix b/boards/default/arduino_avr/examples/Mixly2.0简明教程/05-文本/06-字符串首位判断与数据类型转换.mix similarity index 100% rename from boards/default/arduino_avr/examples/sG_W03pyJzQ/uHKMG6FYAqx2/qGWUNel7s6lv.mix rename to boards/default/arduino_avr/examples/Mixly2.0简明教程/05-文本/06-字符串首位判断与数据类型转换.mix diff --git a/boards/default/arduino_avr/examples/sG_W03pyJzQ/uHKMG6FYAqx2/fYHcE7owacre.mix b/boards/default/arduino_avr/examples/Mixly2.0简明教程/05-文本/07-字符与ascii码互相转换.mix similarity index 100% rename from boards/default/arduino_avr/examples/sG_W03pyJzQ/uHKMG6FYAqx2/fYHcE7owacre.mix rename to boards/default/arduino_avr/examples/Mixly2.0简明教程/05-文本/07-字符与ascii码互相转换.mix diff --git a/boards/default/arduino_avr/examples/sG_W03pyJzQ/uHKMG6FYAqx2/b14bii9q0QMs.mix b/boards/default/arduino_avr/examples/Mixly2.0简明教程/05-文本/08-进制转换.mix similarity index 100% rename from boards/default/arduino_avr/examples/sG_W03pyJzQ/uHKMG6FYAqx2/b14bii9q0QMs.mix rename to boards/default/arduino_avr/examples/Mixly2.0简明教程/05-文本/08-进制转换.mix diff --git a/boards/default/arduino_avr/examples/sG_W03pyJzQ/uHKMG6FYAqx2/8gv6_lvRsqc3.mix b/boards/default/arduino_avr/examples/Mixly2.0简明教程/05-文本/09-字符串长度与获取指定位置字符.mix similarity index 100% rename from boards/default/arduino_avr/examples/sG_W03pyJzQ/uHKMG6FYAqx2/8gv6_lvRsqc3.mix rename to boards/default/arduino_avr/examples/Mixly2.0简明教程/05-文本/09-字符串长度与获取指定位置字符.mix diff --git a/boards/default/arduino_avr/examples/sG_W03pyJzQ/uHKMG6FYAqx2/GPmcKn8nKcAm.mix b/boards/default/arduino_avr/examples/Mixly2.0简明教程/05-文本/10-字符串关系与比较.mix similarity index 100% rename from boards/default/arduino_avr/examples/sG_W03pyJzQ/uHKMG6FYAqx2/GPmcKn8nKcAm.mix rename to boards/default/arduino_avr/examples/Mixly2.0简明教程/05-文本/10-字符串关系与比较.mix diff --git a/boards/default/arduino_avr/examples/sG_W03pyJzQ/ChlHi83NbG6b/rj_yRzWK1Wkr.mix b/boards/default/arduino_avr/examples/Mixly2.0简明教程/06-数组/01-一维数组声明.mix similarity index 100% rename from boards/default/arduino_avr/examples/sG_W03pyJzQ/ChlHi83NbG6b/rj_yRzWK1Wkr.mix rename to boards/default/arduino_avr/examples/Mixly2.0简明教程/06-数组/01-一维数组声明.mix diff --git a/boards/default/arduino_avr/examples/sG_W03pyJzQ/ChlHi83NbG6b/uTcE0mPFbAkH.mix b/boards/default/arduino_avr/examples/Mixly2.0简明教程/06-数组/02-数组读写.mix similarity index 100% rename from boards/default/arduino_avr/examples/sG_W03pyJzQ/ChlHi83NbG6b/uTcE0mPFbAkH.mix rename to boards/default/arduino_avr/examples/Mixly2.0简明教程/06-数组/02-数组读写.mix diff --git a/boards/default/arduino_avr/examples/sG_W03pyJzQ/ChlHi83NbG6b/aBhedmx3o8Af.mix b/boards/default/arduino_avr/examples/Mixly2.0简明教程/06-数组/03-数组循环移位.mix similarity index 100% rename from boards/default/arduino_avr/examples/sG_W03pyJzQ/ChlHi83NbG6b/aBhedmx3o8Af.mix rename to boards/default/arduino_avr/examples/Mixly2.0简明教程/06-数组/03-数组循环移位.mix diff --git a/boards/default/arduino_avr/examples/sG_W03pyJzQ/ChlHi83NbG6b/MGYmVL6xEfos.mix b/boards/default/arduino_avr/examples/Mixly2.0简明教程/06-数组/04-二维数组声明.mix similarity index 100% rename from boards/default/arduino_avr/examples/sG_W03pyJzQ/ChlHi83NbG6b/MGYmVL6xEfos.mix rename to boards/default/arduino_avr/examples/Mixly2.0简明教程/06-数组/04-二维数组声明.mix diff --git a/boards/default/arduino_avr/examples/sG_W03pyJzQ/ChlHi83NbG6b/6rhRD_n5octd.mix b/boards/default/arduino_avr/examples/Mixly2.0简明教程/06-数组/05-二维数组读写.mix similarity index 100% rename from boards/default/arduino_avr/examples/sG_W03pyJzQ/ChlHi83NbG6b/6rhRD_n5octd.mix rename to boards/default/arduino_avr/examples/Mixly2.0简明教程/06-数组/05-二维数组读写.mix diff --git a/boards/default/arduino_avr/examples/sG_W03pyJzQ/YseLD0bZGW8M/bETVWal4c1dz.mix b/boards/default/arduino_avr/examples/Mixly2.0简明教程/07-变量/01-变量声明与使用区别.mix similarity index 100% rename from boards/default/arduino_avr/examples/sG_W03pyJzQ/YseLD0bZGW8M/bETVWal4c1dz.mix rename to boards/default/arduino_avr/examples/Mixly2.0简明教程/07-变量/01-变量声明与使用区别.mix diff --git a/boards/default/arduino_avr/examples/sG_W03pyJzQ/t4IeYWAx6kA1/PIXEGI8nEp30.mix b/boards/default/arduino_avr/examples/Mixly2.0简明教程/08-函数/01-无返回值无参数函数.mix similarity index 100% rename from boards/default/arduino_avr/examples/sG_W03pyJzQ/t4IeYWAx6kA1/PIXEGI8nEp30.mix rename to boards/default/arduino_avr/examples/Mixly2.0简明教程/08-函数/01-无返回值无参数函数.mix diff --git a/boards/default/arduino_avr/examples/sG_W03pyJzQ/t4IeYWAx6kA1/31A3tJkubjTx.mix b/boards/default/arduino_avr/examples/Mixly2.0简明教程/08-函数/02-无返回值带参数函数.mix similarity index 100% rename from boards/default/arduino_avr/examples/sG_W03pyJzQ/t4IeYWAx6kA1/31A3tJkubjTx.mix rename to boards/default/arduino_avr/examples/Mixly2.0简明教程/08-函数/02-无返回值带参数函数.mix diff --git a/boards/default/arduino_avr/examples/sG_W03pyJzQ/t4IeYWAx6kA1/Pp62dBvj4G0Z.mix b/boards/default/arduino_avr/examples/Mixly2.0简明教程/08-函数/03-带返回值带参数函数声明.mix similarity index 100% rename from boards/default/arduino_avr/examples/sG_W03pyJzQ/t4IeYWAx6kA1/Pp62dBvj4G0Z.mix rename to boards/default/arduino_avr/examples/Mixly2.0简明教程/08-函数/03-带返回值带参数函数声明.mix diff --git a/boards/default/arduino_avr/examples/sG_W03pyJzQ/t4IeYWAx6kA1/yycMkPzIyqdx.mix b/boards/default/arduino_avr/examples/Mixly2.0简明教程/08-函数/04-多返回值带参数函数声明.mix similarity index 100% rename from boards/default/arduino_avr/examples/sG_W03pyJzQ/t4IeYWAx6kA1/yycMkPzIyqdx.mix rename to boards/default/arduino_avr/examples/Mixly2.0简明教程/08-函数/04-多返回值带参数函数声明.mix diff --git a/boards/default/arduino_avr/examples/sG_W03pyJzQ/S4inhf5Bh54Q/t_HARRsNZwf1.mix b/boards/default/arduino_avr/examples/Mixly2.0简明教程/09-串口/01-串口打印输出.mix similarity index 100% rename from boards/default/arduino_avr/examples/sG_W03pyJzQ/S4inhf5Bh54Q/t_HARRsNZwf1.mix rename to boards/default/arduino_avr/examples/Mixly2.0简明教程/09-串口/01-串口打印输出.mix diff --git a/boards/default/arduino_avr/examples/sG_W03pyJzQ/S4inhf5Bh54Q/S9HKiBHR6jS5.mix b/boards/default/arduino_avr/examples/Mixly2.0简明教程/09-串口/02-串口输入1.mix similarity index 100% rename from boards/default/arduino_avr/examples/sG_W03pyJzQ/S4inhf5Bh54Q/S9HKiBHR6jS5.mix rename to boards/default/arduino_avr/examples/Mixly2.0简明教程/09-串口/02-串口输入1.mix diff --git a/boards/default/arduino_avr/examples/sG_W03pyJzQ/S4inhf5Bh54Q/TSWLx1_1NRmP.mix b/boards/default/arduino_avr/examples/Mixly2.0简明教程/09-串口/02-串口输入2.mix similarity index 100% rename from boards/default/arduino_avr/examples/sG_W03pyJzQ/S4inhf5Bh54Q/TSWLx1_1NRmP.mix rename to boards/default/arduino_avr/examples/Mixly2.0简明教程/09-串口/02-串口输入2.mix diff --git a/boards/default/arduino_avr/examples/sG_W03pyJzQ/S4inhf5Bh54Q/pW7Xz-3vrbyO.mix b/boards/default/arduino_avr/examples/Mixly2.0简明教程/09-串口/02-串口输入3.mix similarity index 100% rename from boards/default/arduino_avr/examples/sG_W03pyJzQ/S4inhf5Bh54Q/pW7Xz-3vrbyO.mix rename to boards/default/arduino_avr/examples/Mixly2.0简明教程/09-串口/02-串口输入3.mix diff --git a/boards/default/arduino_avr/examples/sG_W03pyJzQ/S4inhf5Bh54Q/43wOPIF2LY1V.mix b/boards/default/arduino_avr/examples/Mixly2.0简明教程/09-串口/02-串口输入4.mix similarity index 100% rename from boards/default/arduino_avr/examples/sG_W03pyJzQ/S4inhf5Bh54Q/43wOPIF2LY1V.mix rename to boards/default/arduino_avr/examples/Mixly2.0简明教程/09-串口/02-串口输入4.mix diff --git a/boards/default/arduino_avr/examples/sG_W03pyJzQ/S4inhf5Bh54Q/Em2gHJq_A_LA.mix b/boards/default/arduino_avr/examples/Mixly2.0简明教程/09-串口/03-串口发送等待.mix similarity index 100% rename from boards/default/arduino_avr/examples/sG_W03pyJzQ/S4inhf5Bh54Q/Em2gHJq_A_LA.mix rename to boards/default/arduino_avr/examples/Mixly2.0简明教程/09-串口/03-串口发送等待.mix diff --git a/boards/default/arduino_avr/examples/sG_W03pyJzQ/S4inhf5Bh54Q/qlnUVGa5j78T.mix b/boards/default/arduino_avr/examples/Mixly2.0简明教程/09-串口/04-串口中断.mix similarity index 100% rename from boards/default/arduino_avr/examples/sG_W03pyJzQ/S4inhf5Bh54Q/qlnUVGa5j78T.mix rename to boards/default/arduino_avr/examples/Mixly2.0简明教程/09-串口/04-串口中断.mix diff --git a/boards/default/arduino_avr/examples/sG_W03pyJzQ/S4inhf5Bh54Q/Szuqv_2oeSnu.mix b/boards/default/arduino_avr/examples/Mixly2.0简明教程/09-串口/05-软串口的使用.mix similarity index 100% rename from boards/default/arduino_avr/examples/sG_W03pyJzQ/S4inhf5Bh54Q/Szuqv_2oeSnu.mix rename to boards/default/arduino_avr/examples/Mixly2.0简明教程/09-串口/05-软串口的使用.mix diff --git a/boards/default/arduino_avr/examples/sG_W03pyJzQ/6AGw1yXgLprT/gVoZfsWHjzCC.mix b/boards/default/arduino_avr/examples/Mixly2.0简明教程/10-传感器/01-超声波测距.mix similarity index 100% rename from boards/default/arduino_avr/examples/sG_W03pyJzQ/6AGw1yXgLprT/gVoZfsWHjzCC.mix rename to boards/default/arduino_avr/examples/Mixly2.0简明教程/10-传感器/01-超声波测距.mix diff --git a/boards/default/arduino_avr/examples/sG_W03pyJzQ/6AGw1yXgLprT/r8aKeuYueZBE.mix b/boards/default/arduino_avr/examples/Mixly2.0简明教程/10-传感器/02-获取DHT11温湿度.mix similarity index 100% rename from boards/default/arduino_avr/examples/sG_W03pyJzQ/6AGw1yXgLprT/r8aKeuYueZBE.mix rename to boards/default/arduino_avr/examples/Mixly2.0简明教程/10-传感器/02-获取DHT11温湿度.mix diff --git a/boards/default/arduino_avr/examples/sG_W03pyJzQ/6AGw1yXgLprT/uWuikaYG5EFb.mix b/boards/default/arduino_avr/examples/Mixly2.0简明教程/10-传感器/03-获取LM35温度.mix similarity index 100% rename from boards/default/arduino_avr/examples/sG_W03pyJzQ/6AGw1yXgLprT/uWuikaYG5EFb.mix rename to boards/default/arduino_avr/examples/Mixly2.0简明教程/10-传感器/03-获取LM35温度.mix diff --git a/boards/default/arduino_avr/examples/sG_W03pyJzQ/6AGw1yXgLprT/uJJlma8h9D9q.mix b/boards/default/arduino_avr/examples/Mixly2.0简明教程/10-传感器/04-获取DS18B20温度.mix similarity index 100% rename from boards/default/arduino_avr/examples/sG_W03pyJzQ/6AGw1yXgLprT/uJJlma8h9D9q.mix rename to boards/default/arduino_avr/examples/Mixly2.0简明教程/10-传感器/04-获取DS18B20温度.mix diff --git a/boards/default/arduino_avr/examples/sG_W03pyJzQ/6AGw1yXgLprT/MivLnGE7wu5B.mix b/boards/default/arduino_avr/examples/Mixly2.0简明教程/10-传感器/05-获取BME280参数.mix similarity index 100% rename from boards/default/arduino_avr/examples/sG_W03pyJzQ/6AGw1yXgLprT/MivLnGE7wu5B.mix rename to boards/default/arduino_avr/examples/Mixly2.0简明教程/10-传感器/05-获取BME280参数.mix diff --git a/boards/default/arduino_avr/examples/sG_W03pyJzQ/6AGw1yXgLprT/Nc5rHxFUNdH6.mix b/boards/default/arduino_avr/examples/Mixly2.0简明教程/10-传感器/06-获取SHT20温湿度.mix similarity index 100% rename from boards/default/arduino_avr/examples/sG_W03pyJzQ/6AGw1yXgLprT/Nc5rHxFUNdH6.mix rename to boards/default/arduino_avr/examples/Mixly2.0简明教程/10-传感器/06-获取SHT20温湿度.mix diff --git a/boards/default/arduino_avr/examples/sG_W03pyJzQ/6AGw1yXgLprT/46iQe4E-DOhi.mix b/boards/default/arduino_avr/examples/Mixly2.0简明教程/10-传感器/07-BMLX90614红外温度测量.mix similarity index 100% rename from boards/default/arduino_avr/examples/sG_W03pyJzQ/6AGw1yXgLprT/46iQe4E-DOhi.mix rename to boards/default/arduino_avr/examples/Mixly2.0简明教程/10-传感器/07-BMLX90614红外温度测量.mix diff --git a/boards/default/arduino_avr/examples/sG_W03pyJzQ/6AGw1yXgLprT/zv03hJZhMxHO.mix b/boards/default/arduino_avr/examples/Mixly2.0简明教程/10-传感器/08-tcs34725颜色提取.mix similarity index 100% rename from boards/default/arduino_avr/examples/sG_W03pyJzQ/6AGw1yXgLprT/zv03hJZhMxHO.mix rename to boards/default/arduino_avr/examples/Mixly2.0简明教程/10-传感器/08-tcs34725颜色提取.mix diff --git a/boards/default/arduino_avr/examples/sG_W03pyJzQ/6AGw1yXgLprT/QA8fnXR5_ndx.mix b/boards/default/arduino_avr/examples/Mixly2.0简明教程/10-传感器/09-tcs230颜色提取.mix similarity index 100% rename from boards/default/arduino_avr/examples/sG_W03pyJzQ/6AGw1yXgLprT/QA8fnXR5_ndx.mix rename to boards/default/arduino_avr/examples/Mixly2.0简明教程/10-传感器/09-tcs230颜色提取.mix diff --git a/boards/default/arduino_avr/examples/sG_W03pyJzQ/6AGw1yXgLprT/gymEPeibkRzn.mix b/boards/default/arduino_avr/examples/Mixly2.0简明教程/10-传感器/10-MPU6050陀螺仪.mix similarity index 100% rename from boards/default/arduino_avr/examples/sG_W03pyJzQ/6AGw1yXgLprT/gymEPeibkRzn.mix rename to boards/default/arduino_avr/examples/Mixly2.0简明教程/10-传感器/10-MPU6050陀螺仪.mix diff --git a/boards/default/arduino_avr/examples/sG_W03pyJzQ/6AGw1yXgLprT/ikRd_Z4OPkBN.mix b/boards/default/arduino_avr/examples/Mixly2.0简明教程/10-传感器/11-MPU9250加速度传感器.mix similarity index 100% rename from boards/default/arduino_avr/examples/sG_W03pyJzQ/6AGw1yXgLprT/ikRd_Z4OPkBN.mix rename to boards/default/arduino_avr/examples/Mixly2.0简明教程/10-传感器/11-MPU9250加速度传感器.mix diff --git a/boards/default/arduino_avr/examples/sG_W03pyJzQ/r0LXb-VZvIEO/GsEhMzFO_q9c.mix b/boards/default/arduino_avr/examples/Mixly2.0简明教程/13-通信/01-红外数据接收.mix similarity index 100% rename from boards/default/arduino_avr/examples/sG_W03pyJzQ/r0LXb-VZvIEO/GsEhMzFO_q9c.mix rename to boards/default/arduino_avr/examples/Mixly2.0简明教程/13-通信/01-红外数据接收.mix diff --git a/boards/default/arduino_avr/examples/sG_W03pyJzQ/r0LXb-VZvIEO/qlbRrTgiyu3W.mix b/boards/default/arduino_avr/examples/Mixly2.0简明教程/13-通信/02-红外数据发送.mix similarity index 100% rename from boards/default/arduino_avr/examples/sG_W03pyJzQ/r0LXb-VZvIEO/qlbRrTgiyu3W.mix rename to boards/default/arduino_avr/examples/Mixly2.0简明教程/13-通信/02-红外数据发送.mix diff --git a/boards/default/arduino_avr/examples/sG_W03pyJzQ/r0LXb-VZvIEO/vJT_gXYcZgHT.mix b/boards/default/arduino_avr/examples/Mixly2.0简明教程/13-通信/03-红外数据模拟收发.mix similarity index 100% rename from boards/default/arduino_avr/examples/sG_W03pyJzQ/r0LXb-VZvIEO/vJT_gXYcZgHT.mix rename to boards/default/arduino_avr/examples/Mixly2.0简明教程/13-通信/03-红外数据模拟收发.mix diff --git a/boards/default/arduino_avr/examples/sG_W03pyJzQ/Vg3zj7Pk-gkc/feckGQcBVn-A.mix b/boards/default/arduino_avr/examples/Mixly2.0简明教程/14-存储/01-SD卡读写测试.mix similarity index 100% rename from boards/default/arduino_avr/examples/sG_W03pyJzQ/Vg3zj7Pk-gkc/feckGQcBVn-A.mix rename to boards/default/arduino_avr/examples/Mixly2.0简明教程/14-存储/01-SD卡读写测试.mix diff --git a/boards/default/arduino_avr/examples/sG_W03pyJzQ/Vg3zj7Pk-gkc/gRmiLcS3fwr-.mix b/boards/default/arduino_avr/examples/Mixly2.0简明教程/14-存储/02-EEPROM掉电存储.mix similarity index 100% rename from boards/default/arduino_avr/examples/sG_W03pyJzQ/Vg3zj7Pk-gkc/gRmiLcS3fwr-.mix rename to boards/default/arduino_avr/examples/Mixly2.0简明教程/14-存储/02-EEPROM掉电存储.mix diff --git a/boards/default/arduino_avr/examples/map.json b/boards/default/arduino_avr/examples/map.json index 0964d309..c17e549a 100644 --- a/boards/default/arduino_avr/examples/map.json +++ b/boards/default/arduino_avr/examples/map.json @@ -1,851 +1,851 @@ { - "VmCIa9vFu": { - "pMT2pAHsfY.mix": { + "01-输入输出": { + "01-LED闪烁.mix": { "__file__": true, "__name__": "01-LED闪烁.mix" }, - "zUZ4c9ijbl.mix": { + "02-开关灯.mix": { "__file__": true, "__name__": "02-开关灯.mix" }, - "uYS2aVJafq.mix": { + "03-调光灯.mix": { "__file__": true, "__name__": "03-调光灯.mix" }, - "sRTn0RaK28.mix": { + "04-多功能按键.mix": { "__file__": true, "__name__": "04-多功能按键.mix" }, - "7E5zww0kJ0.mix": { + "05-硬件中断.mix": { "__file__": true, "__name__": "05-硬件中断.mix" }, - "_M4NzmxMKA.mix": { + "06-软件中断.mix": { "__file__": true, "__name__": "06-软件中断.mix" }, - "SbQeizosCF.mix": { + "07-声控灯.mix": { "__file__": true, "__name__": "07-声控灯.mix" }, - "tUHS4KiX4u.mix": { + "08-脉冲.mix": { "__file__": true, "__name__": "08-脉冲.mix" }, - "ChyvF1aKj-.mix": { + "09-软件模拟PWM.mix": { "__file__": true, "__name__": "09-软件模拟PWM.mix" }, - "vLT4OExD9t.mix": { + "10-ShiftOut数字骰子.mix": { "__file__": true, "__name__": "10-ShiftOut数字骰子.mix" }, - "77LMTUiV3Z.mix": { + "11-ShiftOut流水灯.mix": { "__file__": true, "__name__": "11-ShiftOut流水灯.mix" }, "__file__": false, "__name__": "01-输入输出" }, - "W7bfVPXbhz": { - "8qdA_km51x.mix": { + "02-控制": { + "01-初始化.mix": { "__file__": true, "__name__": "01-初始化.mix" }, - "8rn4OF-7L3.mix": { + "02-LED流水灯.mix": { "__file__": true, "__name__": "02-LED流水灯.mix" }, - "dlJKD3xLxr.mix": { + "03-While循环.mix": { "__file__": true, "__name__": "03-While循环.mix" }, - "eG_83pHrwau.mix": { + "04-延时灯.mix": { "__file__": true, "__name__": "04-延时灯.mix" }, - "0ZUXb2NJ-iH.mix": { + "05-定时器控制灯亮灭.mix": { "__file__": true, "__name__": "05-定时器控制灯亮灭.mix" }, - "W9GJM7CkOTs.mix": { + "06-简单定时器.mix": { "__file__": true, "__name__": "06-简单定时器.mix" }, - "0umD1uEew6g.mix": { + "07-随机亮灯.mix": { "__file__": true, "__name__": "07-随机亮灯.mix" }, - "4rwdgoZ_SIl.mix": { + "08-Scoop多线程.mix": { "__file__": true, "__name__": "08-Scoop多线程.mix" }, - "Z0Z_7jp4ar0.mix": { + "09-硬件中断-秒表.mix": { "__file__": true, "__name__": "09-硬件中断-秒表.mix" }, "__file__": false, "__name__": "02-控制" }, - "9exFAce4ay4": { - "YfyYgzXzUdc.mix": { + "03-数学": { + "01-模拟输入和模拟输出.mix": { "__file__": true, "__name__": "01-模拟输入和模拟输出.mix" }, - "9SoJjKPxcd9.mix": { + "02-绘制三角函数曲线.mix": { "__file__": true, "__name__": "02-绘制三角函数曲线.mix" }, - "Gs_c0omRYb0.mix": { + "03-映射.mix": { "__file__": true, "__name__": "03-映射.mix" }, - "4U0BswEHkaV.mix": { + "04-随机数.mix": { "__file__": true, "__name__": "04-随机数.mix" }, - "bgTD9nSjoSc.mix": { + "05-约束运算.mix": { "__file__": true, "__name__": "05-约束运算.mix" }, - "95AWt09AHI6.mix": { + "06-移位计算.mix": { "__file__": true, "__name__": "06-移位计算.mix" }, "__file__": false, "__name__": "03-数学" }, - "M-nipJ0aU2i": { - "3YRW0N5vCuz.mix": { + "04-文本": { + "01-serial_string-1.mix": { "__file__": true, "__name__": "01-serial_string-1.mix" }, - "_6RAsFOP56o.mix": { + "02-serial_string-2.mix": { "__file__": true, "__name__": "02-serial_string-2.mix" }, - "KTYxBgMSxn0.mix": { + "03-serial_string-3.mix": { "__file__": true, "__name__": "03-serial_string-3.mix" }, - "f7x_VUvx21h.mix": { + "04-serial_string-4.mix": { "__file__": true, "__name__": "04-serial_string-4.mix" }, - "P1JdCLGmX-B.mix": { + "URL和Base64编解码.mix": { "__file__": true, "__name__": "URL和Base64编解码.mix" }, "__file__": false, "__name__": "04-文本" }, - "iCEBVcyclSR": { - "egilfftJQYl.mix": { + "05-数组": { + "01-一维数组输出.mix": { "__file__": true, "__name__": "01-一维数组输出.mix" }, - "LIqnlgTdyYm.mix": { + "02-二维数组输出.mix": { "__file__": true, "__name__": "02-二维数组输出.mix" }, "__file__": false, "__name__": "05-数组" }, - "tdb7h3NzC8y": { - "7ss9laal9hL.mix": { + "06-逻辑": { + "01-比较运算符.mix": { "__file__": true, "__name__": "01-比较运算符.mix" }, - "mqJSnRZPS5U.mix": { + "02-逻辑运算符.mix": { "__file__": true, "__name__": "02-逻辑运算符.mix" }, - "v9IU0WTE--n.mix": { + "03-?语句.mix": { "__file__": true, "__name__": "03-?语句.mix" }, "__file__": false, "__name__": "06-逻辑" }, - "n5-2G5wMeIV": { - "q9nUBvNJBGz.mix": { + "07-串口": { + "01-串口交互.mix": { "__file__": true, "__name__": "01-串口交互.mix" }, - "xcwlZp_4RNm.mix": { + "02-串口控制开关灯.mix": { "__file__": true, "__name__": "02-串口控制开关灯.mix" }, - "YGMLkJSiHHL.mix": { + "03-打印ASCII值.mix": { "__file__": true, "__name__": "03-打印ASCII值.mix" }, "__file__": false, "__name__": "07-串口" }, - "XKStl2DT2st": { - "Hx8us0x7lx5.mix": { + "08-通信": { + "01-IRremote红外控制灯.mix": { "__file__": true, "__name__": "01-IRremote红外控制灯.mix" }, - "2_SDuRhZLOk.mix": { + "02-IICMaster_字符.mix": { "__file__": true, "__name__": "02-IICMaster_字符.mix" }, - "iRgvFHOw_8k.mix": { + "02-IICMaster_字符串.mix": { "__file__": true, "__name__": "02-IICMaster_字符串.mix" }, - "HJMDCgeUrKk.mix": { + "02-IICMaster_请求数据.mix": { "__file__": true, "__name__": "02-IICMaster_请求数据.mix" }, - "Hg0Ijn2Vq5s.mix": { + "02-IICSlave_字符.mix": { "__file__": true, "__name__": "02-IICSlave_字符.mix" }, - "WofI2vrF_4N.mix": { + "02-IICSlave_字符串.mix": { "__file__": true, "__name__": "02-IICSlave_字符串.mix" }, - "Kx1z4ByiMdV.mix": { + "03-SPI_Master.mix": { "__file__": true, "__name__": "03-SPI_Master.mix" }, - "zPDgwDsF135.mix": { + "03-SPI_Master_1.mix": { "__file__": true, "__name__": "03-SPI_Master_1.mix" }, - "zsYpiEg9GJp.mix": { + "03-SPI_Master_2.mix": { "__file__": true, "__name__": "03-SPI_Master_2.mix" }, - "IKGeHdkTMiZ.mix": { + "03-SPI_Master_字符串.mix": { "__file__": true, "__name__": "03-SPI_Master_字符串.mix" }, - "DjEv3KlTXeF.mix": { + "03-SPI_Slave.mix": { "__file__": true, "__name__": "03-SPI_Slave.mix" }, - "CC4nii5o-di.mix": { + "03-SPI_Slave_1.mix": { "__file__": true, "__name__": "03-SPI_Slave_1.mix" }, - "jFc3eJUyjij.mix": { + "03-SPI_Slave_2.mix": { "__file__": true, "__name__": "03-SPI_Slave_2.mix" }, - "Upe5bWmLmMq.mix": { + "03-SPI_Slave_字符串.mix": { "__file__": true, "__name__": "03-SPI_Slave_字符串.mix" }, - "6LHcNGYkHoK.mix": { + "04-RFID_写卡&读卡.mix": { "__file__": true, "__name__": "04-RFID_写卡&读卡.mix" }, - "V7eTxbD2wmL.mix": { + "04-RFID_写卡.mix": { "__file__": true, "__name__": "04-RFID_写卡.mix" }, - "KSusAOZ-uqv.mix": { + "04-RFID_读卡.mix": { "__file__": true, "__name__": "04-RFID_读卡.mix" }, - "-jC-ICp3gwt.mix": { + "04-RFID_读取RFID卡号.mix": { "__file__": true, "__name__": "04-RFID_读取RFID卡号.mix" }, "__file__": false, "__name__": "08-通信" }, - "U7GeddKNqYn": { - "Fvf71QL6WS5.mix": { + "09-存储": { + "02-EEPROM.mix": { "__file__": true, "__name__": "02-EEPROM.mix" }, - "kmu74p0zI1i.mix": { + "02-EEPROM_写入和读取字符数组.mix": { "__file__": true, "__name__": "02-EEPROM_写入和读取字符数组.mix" }, - "7zXgHRWQ6D_.mix": { + "02-EEPROM_写入和读取字节数组.mix": { "__file__": true, "__name__": "02-EEPROM_写入和读取字节数组.mix" }, - "O2VC1CXoNkO.mix": { + "02-EEPROM_写入和读取小数.mix": { "__file__": true, "__name__": "02-EEPROM_写入和读取小数.mix" }, - "WhuyVSZmhVD.mix": { + "02-EEPROM_写入和读取长整数.mix": { "__file__": true, "__name__": "02-EEPROM_写入和读取长整数.mix" }, "__file__": false, "__name__": "09-存储" }, - "KAu0EuYckzj": { - "Xwfs32jT1sK.mix": { + "10-传感器": { + "01-超声波测距.mix": { "__file__": true, "__name__": "01-超声波测距.mix" }, - "OoW6xX6hKKd.mix": { + "02-LCD1602显示温湿度.mix": { "__file__": true, "__name__": "02-LCD1602显示温湿度.mix" }, - "RUu2p7XY821.mix": { + "04-DS18B20温度传感器.mix": { "__file__": true, "__name__": "04-DS18B20温度传感器.mix" }, - "to1VV_62lsv.mix": { + "05-MLX90614测温.mix": { "__file__": true, "__name__": "05-MLX90614测温.mix" }, - "588KT_itA4J.mix": { + "06-TCS34725颜色识别传感器.mix": { "__file__": true, "__name__": "06-TCS34725颜色识别传感器.mix" }, - "m-t_swQIBAT.mix": { + "07-TCS230颜色识别传感器.mix": { "__file__": true, "__name__": "07-TCS230颜色识别传感器.mix" }, - "x-17bPGlHlk.mix": { + "11-旋转编码器读取数据.mix": { "__file__": true, "__name__": "11-旋转编码器读取数据.mix" }, - "tn819yT0Eab.mix": { + "12-DS1302液晶时钟.mix": { "__file__": true, "__name__": "12-DS1302液晶时钟.mix" }, - "AAn6BQVImia.mix": { + "12-DS1302输出日期.mix": { "__file__": true, "__name__": "12-DS1302输出日期.mix" }, - "a_x79oPPmMm.mix": { + "13-矩阵键盘密码灯.mix": { "__file__": true, "__name__": "13-矩阵键盘密码灯.mix" }, - "nAA-8wOZWx7.mix": { + "13-矩阵键盘打印按键值.mix": { "__file__": true, "__name__": "13-矩阵键盘打印按键值.mix" }, - "xGGu--tGH7x.mix": { + "13-矩阵键盘简易密码锁.mix": { "__file__": true, "__name__": "13-矩阵键盘简易密码锁.mix" }, - "PL-KpP8pTTA.mix": { + "15-MPU6050打印数值.mix": { "__file__": true, "__name__": "15-MPU6050打印数值.mix" }, - "UrnokGjSyQ6.mix": { + "16-BME280打印温度值.mix": { "__file__": true, "__name__": "16-BME280打印温度值.mix" }, - "tTHeCIAHuGE.mix": { + "16-BME280气象站.mix": { "__file__": true, "__name__": "16-BME280气象站.mix" }, - "fugAoyTvQRz.mix": { + "17-PS2手柄_打印摇杆值.mix": { "__file__": true, "__name__": "17-PS2手柄_打印摇杆值.mix" }, - "oCJ5rUm6ZZZ.mix": { + "B01-声控舵机.mix": { "__file__": true, "__name__": "B01-声控舵机.mix" }, "__file__": false, "__name__": "10-传感器" }, - "d0xJgjVqzEr": { - "3EoT50pAjWE.mix": { + "11-执行器": { + "01-门铃.mix": { "__file__": true, "__name__": "01-门铃.mix" }, - "-FoDI8qh7XI.mix": { + "02-蜂鸣器播放简单声音.mix": { "__file__": true, "__name__": "02-蜂鸣器播放简单声音.mix" }, - "txGnArLFqSf.mix": { + "03-按键钢琴.mix": { "__file__": true, "__name__": "03-按键钢琴.mix" }, - "O9-fa_XFk75.mix": { + "04-两只老虎.mix": { "__file__": true, "__name__": "04-两只老虎.mix" }, - "QGFM74k2idZ.mix": { + "05-Alarm.mix": { "__file__": true, "__name__": "05-Alarm.mix" }, - "h2Fg3GrBKhU.mix": { + "06-WS2812.mix": { "__file__": true, "__name__": "06-WS2812.mix" }, - "tj6KTWMUrC7.mix": { + "07-mini MP3_播放音乐.mix": { "__file__": true, "__name__": "07-mini MP3_播放音乐.mix" }, - "xSIqI48njEw.mix": { + "09-七彩流水灯.mix": { "__file__": true, "__name__": "09-七彩流水灯.mix" }, "__file__": false, "__name__": "11-执行器" }, - "O6PPIPjRtY9": { - "V4jtrDKO7Qy.mix": { + "12-显示器": { + "01-TM1650_显示变化的数字.mix": { "__file__": true, "__name__": "01-TM1650_显示变化的数字.mix" }, - "Cb778mrOBEM.mix": { + "03-LCD1602_显示Hello Mixly.mix": { "__file__": true, "__name__": "03-LCD1602_显示Hello Mixly.mix" }, - "UbDalhz26o4.mix": { + "04-OLED_多页切换.mix": { "__file__": true, "__name__": "04-OLED_多页切换.mix" }, - "h2d_5S5t1L2.mix": { + "04-OLED_显示Mixly Logo.mix": { "__file__": true, "__name__": "04-OLED_显示Mixly Logo.mix" }, - "EjaMDt0whe8.mix": { + "04-OLED_显示奥运五环图案.mix": { "__file__": true, "__name__": "04-OLED_显示奥运五环图案.mix" }, - "BaNc_vAvy-3.mix": { + "04-OLED_显示文本.mix": { "__file__": true, "__name__": "04-OLED_显示文本.mix" }, - "23Z2-qhqL1x.mix": { + "04-OLED_显示汉字(取模).mix": { "__file__": true, "__name__": "04-OLED_显示汉字(取模).mix" }, - "BzN9qfkyefI.mix": { + "04-OLED_显示汉字.mix": { "__file__": true, "__name__": "04-OLED_显示汉字.mix" }, - "Tg6HtM3wFzO.mix": { + "04-OLED_显示表情图片.mix": { "__file__": true, "__name__": "04-OLED_显示表情图片.mix" }, - "YEPjq6XYYSU.mix": { + "04-OLED_显示表情图片1.mix": { "__file__": true, "__name__": "04-OLED_显示表情图片1.mix" }, - "2f_GDf83N_z.mix": { + "05-NOKIA5110_显示汉字(取模).mix": { "__file__": true, "__name__": "05-NOKIA5110_显示汉字(取模).mix" }, - "YXu_ysGFBA9.mix": { + "06-LCD12864 8080_显示汉字(取模).mix": { "__file__": true, "__name__": "06-LCD12864 8080_显示汉字(取模).mix" }, - "lfR78n3Xlxd.mix": { + "06-LCD12864 SPI_显示汉字(取模).mix": { "__file__": true, "__name__": "06-LCD12864 SPI_显示汉字(取模).mix" }, - "UknLidU3S1j.mix": { + "07-MAX7219_显示笑脸和哭脸.mix": { "__file__": true, "__name__": "07-MAX7219_显示笑脸和哭脸.mix" }, - "Z_FWnzp5VOQ.mix": { + "07-MAX7219_水平方向四块级联滚动显示Mixly.mix": { "__file__": true, "__name__": "07-MAX7219_水平方向四块级联滚动显示Mixly.mix" }, "__file__": false, "__name__": "12-显示器" }, - "bjb4mxSZcFZ": { - "-PJ2XH0qz-r.mix": { + "15-函数": { + "01-函数法SOS.mix": { "__file__": true, "__name__": "01-函数法SOS.mix" }, - "bE1ner5NHqs.mix": { + "02-含参数无返回值呼吸灯.mix": { "__file__": true, "__name__": "02-含参数无返回值呼吸灯.mix" }, "__file__": false, "__name__": "15-函数" }, - "hQUiFgtRPaB": { - "upV-7XFNmsa.mix": { + "16-自定义模块": { + "(在2.0下编译报错)01-Factory.mix": { "__file__": true, "__name__": "(在2.0下编译报错)01-Factory.mix" }, "__file__": false, "__name__": "16-自定义模块" }, - "kyUNPkQOBM7": { - "9uFWiRbsVGD": { - "KVpVqz8ndQr.mix": { + "Mixly2.0_simple_tutorial": { + "01_input_and_Output": { + "01_Light_up_the_on_board_indicator.mix": { "__file__": true, "__name__": "01_Light_up_the_on_board_indicator.mix" }, - "7K1XcVJmg3R.mix": { + "02_On_board_indicator_flashes.mix": { "__file__": true, "__name__": "02_On_board_indicator_flashes.mix" }, - "2-4OBHyy14O.mix": { + "03_Digital_Inputs.mix": { "__file__": true, "__name__": "03_Digital_Inputs.mix" }, - "gNxGGQRjjQd.mix": { + "04_Pin_output_state_switching.mix": { "__file__": true, "__name__": "04_Pin_output_state_switching.mix" }, - "kAI9JzXDEYN.mix": { + "05_PWMAnalog_Output.mix": { "__file__": true, "__name__": "05_PWMAnalog_Output.mix" }, - "XgXEfST6-fl.mix": { + "06_Analog_Inputs.mix": { "__file__": true, "__name__": "06_Analog_Inputs.mix" }, - "UjCwhwMkYsC.mix": { + "07_Software_analog_output.mix": { "__file__": true, "__name__": "07_Software_analog_output.mix" }, - "qhmJJQDZuli.mix": { + "08_Multi_functional_keys.mix": { "__file__": true, "__name__": "08_Multi_functional_keys.mix" }, - "zbLpnvbBxqQ.mix": { + "09_Hardware_Interrupts.mix": { "__file__": true, "__name__": "09_Hardware_Interrupts.mix" }, - "hyQMpND2Omj.mix": { + "10_Software_Interruptions.mix": { "__file__": true, "__name__": "10_Software_Interruptions.mix" }, - "STHibFzQH-D.mix": { + "11_Pulse_measurement.mix": { "__file__": true, "__name__": "11_Pulse_measurement.mix" }, - "YjhOYmHq1LE.mix": { + "12_Pin_up_mode.mix": { "__file__": true, "__name__": "12_Pin_up_mode.mix" }, - "9xGMFoHnKqr.mix": { + "13_Serial_Data_Output.mix": { "__file__": true, "__name__": "13_Serial_Data_Output.mix" }, "__file__": false, "__name__": "01_input_and_Output" }, - "4mSC9fi3yUP": { - "J1BCdtb9iLA.mix": { + "02_Control": { + "01_Stop_the_program.mix": { "__file__": true, "__name__": "01_Stop_the_program.mix" }, - "8Mei53U0v5B.mix": { + "02_Difference_between_while_and_do_while.mix": { "__file__": true, "__name__": "02_Difference_between_while_and_do_while.mix" }, - "0VXVBz6MIhK.mix": { + "03_if_elseConditional_Judgment.mix": { "__file__": true, "__name__": "03_if_elseConditional_Judgment.mix" }, - "gGao0z9V369.mix": { + "04_switch_Multi_branching_condition_control.mix": { "__file__": true, "__name__": "04_switch_Multi_branching_condition_control.mix" }, - "uJrNyaR92Dv.mix": { + "05_for_Circular_breathing_light.mix": { "__file__": true, "__name__": "05_for_Circular_breathing_light.mix" }, - "YV0F8tffYfm.mix": { + "06_Jump_out_of_the_loop.mix": { "__file__": true, "__name__": "06_Jump_out_of_the_loop.mix" }, - "rUTYwXWOHLy.mix": { + "07_System_runtime.mix": { "__file__": true, "__name__": "07_System_runtime.mix" }, - "LsJO6HHngcM.mix": { + "08_Hardware_Timer.mix": { "__file__": true, "__name__": "08_Hardware_Timer.mix" }, - "VZ0_o4Cwo_7.mix": { + "09_Simple_Timer.mix": { "__file__": true, "__name__": "09_Simple_Timer.mix" }, - "PtQFj6oWt4g.mix": { + "10_Register_delay_function.mix": { "__file__": true, "__name__": "10_Register_delay_function.mix" }, - "O6Wi8Z0-DxD.mix": { + "11_SCoop_Multi-threaded.mix": { "__file__": true, "__name__": "11_SCoop_Multi-threaded.mix" }, "__file__": false, "__name__": "02_Control" }, - "WsqDZULt-kV": { - "vyr6hojn8Ht.mix": { + "03_Mathematics": { + "01_Algebraic_operations.mix": { "__file__": true, "__name__": "01_Algebraic_operations.mix" }, - "AhuaIjCNrtB.mix": { + "02_Bit_Operations.mix": { "__file__": true, "__name__": "02_Bit_Operations.mix" }, - "TMYCacGk8bC.mix": { + "03_Trigonometric_functions.mix": { "__file__": true, "__name__": "03_Trigonometric_functions.mix" }, - "RKV6hRgu6oZ.mix": { + "04_Variable_self-adding.mix": { "__file__": true, "__name__": "04_Variable_self-adding.mix" }, - "PF-uEF3paA3.mix": { + "05_Common_mathematical_operations(Rounding_etc.).mix": { "__file__": true, "__name__": "05_Common_mathematical_operations(Rounding_etc.).mix" }, - "c2FMV3TffQo.mix": { + "06_Get_the_number_of_bytes_occupied_by_different_types_of_data.mix": { "__file__": true, "__name__": "06_Get_the_number_of_bytes_occupied_by_different_types_of_data.mix" }, - "G5A5RbLsSIo.mix": { + "07_Maximum_and_minimum_values.mix": { "__file__": true, "__name__": "07_Maximum_and_minimum_values.mix" }, - "AQsKnbBnkv5.mix": { + "08_Get_random_number.mix": { "__file__": true, "__name__": "08_Get_random_number.mix" }, - "Km9Q8uGcvOu.mix": { + "09_Mathematical_constraints.mix": { "__file__": true, "__name__": "09_Mathematical_constraints.mix" }, - "WVKtgBltFLC.mix": { + "10_Mathematical_mapping.mix": { "__file__": true, "__name__": "10_Mathematical_mapping.mix" }, "__file__": false, "__name__": "03_Mathematics" }, - "AEMprih0sQ0": { - "mQxoYfW5UXo.mix": { + "04_Logic": { + "01_Logical_relationships.mix": { "__file__": true, "__name__": "01_Logical_relationships.mix" }, - "I2gngWKO4SF.mix": { + "02_Logical_operations.mix": { "__file__": true, "__name__": "02_Logical_operations.mix" }, - "5WU6MRDvIrQ.mix": { + "03_Logical_non-operations.mix": { "__file__": true, "__name__": "03_Logical_non-operations.mix" }, - "74-At-xbJHL.mix": { + "04_Conditional_return_value.mix": { "__file__": true, "__name__": "04_Conditional_return_value.mix" }, "__file__": false, "__name__": "04_Logic" }, - "2WIPqJl5DxI": { - "BleZ2ejL-Tq.mix": { + "05_Text": { + "01_String_Splicing.mix": { "__file__": true, "__name__": "01_String_Splicing.mix" }, - "YYc96lgYgLc.mix": { + "02_String_to_integer_or_decimal.mix": { "__file__": true, "__name__": "02_String_to_integer_or_decimal.mix" }, - "n450KNSxy6u.mix": { + "03_String_Index.mix": { "__file__": true, "__name__": "03_String_Index.mix" }, - "nUFL_McLt60.mix": { + "04_Intercepting_strings.mix": { "__file__": true, "__name__": "04_Intercepting_strings.mix" }, - "ZtdmaAiY_mQ.mix": { + "05_String_conversion_and_replacement.mix": { "__file__": true, "__name__": "05_String_conversion_and_replacement.mix" }, - "4MD4-mvfY2J.mix": { + "06_String_First_Determination_and_Data_Type_Conversion.mix": { "__file__": true, "__name__": "06_String_First_Determination_and_Data_Type_Conversion.mix" }, - "WdKR0gqEH-N.mix": { + "07_Character_to_ascii_conversion.mix": { "__file__": true, "__name__": "07_Character_to_ascii_conversion.mix" }, - "C8Db9d1xjAn.mix": { + "08_Incremental_conversion.mix": { "__file__": true, "__name__": "08_Incremental_conversion.mix" }, - "YEBO4r5Of0r.mix": { + "09_String_length_and_getting_the_specified_position_character.mix": { "__file__": true, "__name__": "09_String_length_and_getting_the_specified_position_character.mix" }, - "6q_eN9MiUXW.mix": { + "10_String_relations _and_comparisons.mix": { "__file__": true, "__name__": "10_String_relations _and_comparisons.mix" }, "__file__": false, "__name__": "05_Text" }, - "11dZjM8XY_z": { - "4rZjfa8hT1Q.mix": { + "06_Arrays": { + "01_One-dimensional_array_declaration.mix": { "__file__": true, "__name__": "01_One-dimensional_array_declaration.mix" }, - "LPC4Ossk_Xu.mix": { + "02_Array_reading_and_writing.mix": { "__file__": true, "__name__": "02_Array_reading_and_writing.mix" }, - "CERTgzaOD8O.mix": { + "03_Array_circular_shift.mix": { "__file__": true, "__name__": "03_Array_circular_shift.mix" }, - "K-v4JlzpsZ5.mix": { + "04_Two-dimensional_array_declaration.mix": { "__file__": true, "__name__": "04_Two-dimensional_array_declaration.mix" }, - "1lQrty29k2g.mix": { + "05_Two-dimensional_array_reading_and_writing.mix": { "__file__": true, "__name__": "05_Two-dimensional_array_reading_and_writing.mix" }, "__file__": false, "__name__": "06_Arrays" }, - "inypGWSdWPH": { - "9Y68GjDi_zI.mix": { + "07_Variables": { + "01_Difference_between_variable_declaration_and_use.mix": { "__file__": true, "__name__": "01_Difference_between_variable_declaration_and_use.mix" }, "__file__": false, "__name__": "07_Variables" }, - "6EhGG8v_DwF": { - "_HTmqkWOMZD.mix": { + "08_Function": { + "01_no-return-value-no-parameter_function.mix": { "__file__": true, "__name__": "01_no-return-value-no-parameter_function.mix" }, - "aQwwUs06c7L.mix": { + "02_no-return-value_function_with_parameters.mix": { "__file__": true, "__name__": "02_no-return-value_function_with_parameters.mix" }, - "o3GuXJTiGMg.mix": { + "03_Function_declaration_with_return_value_and_parameters.mix": { "__file__": true, "__name__": "03_Function_declaration_with_return_value_and_parameters.mix" }, - "8vrAJInTIRZ.mix": { + "04_Multiple_return_value_function_declaration_with_parameters.mix": { "__file__": true, "__name__": "04_Multiple_return_value_function_declaration_with_parameters.mix" }, "__file__": false, "__name__": "08_Function" }, - "kU15criu7CK": { - "D4L-0Yu37uz.mix": { + "09_Serial_port": { + "01_Serial_printout.mix": { "__file__": true, "__name__": "01_Serial_printout.mix" }, - "KZFlrooind7.mix": { + "02_Serial_input_1.mix": { "__file__": true, "__name__": "02_Serial_input_1.mix" }, - "Wc1wzso2KCT.mix": { + "02_Serial_input_2.mix": { "__file__": true, "__name__": "02_Serial_input_2.mix" }, - "mBC0KBZUpCi.mix": { + "02_Serial_input_3.mix": { "__file__": true, "__name__": "02_Serial_input_3.mix" }, - "9JCRtUCBuN8.mix": { + "02_Serial_input_4.mix": { "__file__": true, "__name__": "02_Serial_input_4.mix" }, - "mVVInJLot_g.mix": { + "03_Serial_port_send_wait.mix": { "__file__": true, "__name__": "03_Serial_port_send_wait.mix" }, - "XscElcU5MHM.mix": { + "04_Serial_Interrupt.mix": { "__file__": true, "__name__": "04_Serial_Interrupt.mix" }, - "oh5xen7XwZD.mix": { + "05_Use_of_soft_serial_port.mix": { "__file__": true, "__name__": "05_Use_of_soft_serial_port.mix" }, "__file__": false, "__name__": "09_Serial_port" }, - "9VLH0RUfLsM": { - "AQ_2_hczu2G.mix": { + "10_Sensors": { + "01_Ultrasonic_distance_measurement.mix": { "__file__": true, "__name__": "01_Ultrasonic_distance_measurement.mix" }, - "9nos11M8lTT.mix": { + "02_Get_DHT11_temperature_and_humidity.mix": { "__file__": true, "__name__": "02_Get_DHT11_temperature_and_humidity.mix" }, - "-WSPaBJ4MH8.mix": { + "03_get_LM35_temperature.mix": { "__file__": true, "__name__": "03_get_LM35_temperature.mix" }, - "eU8HiPsi2br.mix": { + "04_Get_DS18B20_temperature.mix": { "__file__": true, "__name__": "04_Get_DS18B20_temperature.mix" }, - "dk2L9-VfsqG.mix": { + "05_Get_BME280_parameters.mix": { "__file__": true, "__name__": "05_Get_BME280_parameters.mix" }, - "xSkPXEtQHud.mix": { + "06_get_SHT20_temperature_and_humidity.mix": { "__file__": true, "__name__": "06_get_SHT20_temperature_and_humidity.mix" }, - "yb2ecCne2Aw.mix": { + "07_BMLX90614_Infrared_temperature_measurement.mix": { "__file__": true, "__name__": "07_BMLX90614_Infrared_temperature_measurement.mix" }, - "pbfd8OYvTxQ.mix": { + "08_tcs34725_color_extraction.mix": { "__file__": true, "__name__": "08_tcs34725_color_extraction.mix" }, - "nUAQyLzPiX-.mix": { + "09_tcs230_color_extraction.mix": { "__file__": true, "__name__": "09_tcs230_color_extraction.mix" }, - "jZnpeeeJTl3.mix": { + "10_MPU6050_Gyroscope.mix": { "__file__": true, "__name__": "10_MPU6050_Gyroscope.mix" }, - "3lIpx13r7Si.mix": { + "11_MPU9250_acceleration_sensor.mix": { "__file__": true, "__name__": "11_MPU9250_acceleration_sensor.mix" }, "__file__": false, "__name__": "10_Sensors" }, - "IUagh-JkHHT": { - "dewnQW-bD7F.mix": { + "13_Communication": { + "01_Infrared_data_reception.mix": { "__file__": true, "__name__": "01_Infrared_data_reception.mix" }, - "2doyYS6DA3f.mix": { + "02_Infrared_data_transmission.mix": { "__file__": true, "__name__": "02_Infrared_data_transmission.mix" }, - "S5_VC47ltHo.mix": { + "03_Infrared_data_simulation_transceiver.mix": { "__file__": true, "__name__": "03_Infrared_data_simulation_transceiver.mix" }, "__file__": false, "__name__": "13_Communication" }, - "Npd91izpaxd": { - "ennCdfZgqie.mix": { + "14_Storage": { + "01_SD_card_read_test.mix": { "__file__": true, "__name__": "01_SD_card_read_test.mix" }, - "-x8aqCLjqEl.mix": { + "02_EEPROM_power_down_storage.mix": { "__file__": true, "__name__": "02_EEPROM_power_down_storage.mix" }, @@ -855,377 +855,377 @@ "__file__": false, "__name__": "Mixly2.0_simple_tutorial" }, - "sG_W03pyJzQ": { - "zyLXcW3DAPd": { - "9IVpTZJAS92.mix": { + "Mixly2.0简明教程": { + "01-输入输出": { + "01-点亮板载指示灯13.mix": { "__file__": true, "__name__": "01-点亮板载指示灯13.mix" }, - "JRI99t2oYVC.mix": { + "02-板载指示灯13闪烁.mix": { "__file__": true, "__name__": "02-板载指示灯13闪烁.mix" }, - "4rJpEo3QxA_.mix": { + "03-数字输入.mix": { "__file__": true, "__name__": "03-数字输入.mix" }, - "EtyAP1gR35L.mix": { + "04-管脚输出状态切换.mix": { "__file__": true, "__name__": "04-管脚输出状态切换.mix" }, - "f1W7Qy1G9Uw.mix": { + "05-PWM模拟输出.mix": { "__file__": true, "__name__": "05-PWM模拟输出.mix" }, - "eDGovRRpRq9.mix": { + "06-模拟输入.mix": { "__file__": true, "__name__": "06-模拟输入.mix" }, - "dj4vOUhcI98.mix": { + "07-软件模拟输出.mix": { "__file__": true, "__name__": "07-软件模拟输出.mix" }, - "PfqkE7I5dxw.mix": { + "08-多功能按键.mix": { "__file__": true, "__name__": "08-多功能按键.mix" }, - "-VJ15cIzAzS.mix": { + "09-硬件中断.mix": { "__file__": true, "__name__": "09-硬件中断.mix" }, - "C6tRMhMqpZm.mix": { + "10-软件中断.mix": { "__file__": true, "__name__": "10-软件中断.mix" }, - "76C-zKdAMjb.mix": { + "11-脉冲测量.mix": { "__file__": true, "__name__": "11-脉冲测量.mix" }, - "5DXwj6xnxlb.mix": { + "12-管脚上拉模式.mix": { "__file__": true, "__name__": "12-管脚上拉模式.mix" }, - "0p7-ZmwX0z6.mix": { + "13-串行数据输出.mix": { "__file__": true, "__name__": "13-串行数据输出.mix" }, "__file__": false, "__name__": "01-输入输出" }, - "9M4j6Kk0ifi": { - "L9-40juTN8a.mix": { + "02-控制": { + "01-停止程序.mix": { "__file__": true, "__name__": "01-停止程序.mix" }, - "SY0lqWStx4F.mix": { + "02-while与do while区别.mix": { "__file__": true, "__name__": "02-while与do while区别.mix" }, - "4htlbr2cyp6.mix": { + "03-if else条件判断.mix": { "__file__": true, "__name__": "03-if else条件判断.mix" }, - "OsJyKlMgnB_.mix": { + "04-switch多分枝条件控制.mix": { "__file__": true, "__name__": "04-switch多分枝条件控制.mix" }, - "IghpMVqTIh-.mix": { + "05-for循环呼吸灯.mix": { "__file__": true, "__name__": "05-for循环呼吸灯.mix" }, - "_cAjY5kKXkl.mix": { + "06-跳出循环.mix": { "__file__": true, "__name__": "06-跳出循环.mix" }, - "Iih5hy7w834.mix": { + "07-系统运行时间.mix": { "__file__": true, "__name__": "07-系统运行时间.mix" }, - "QghyQu4TbHL.mix": { + "08-硬件定时器.mix": { "__file__": true, "__name__": "08-硬件定时器.mix" }, - "w1W0noPqHKB.mix": { + "09-简单定时器.mix": { "__file__": true, "__name__": "09-简单定时器.mix" }, - "3irgJ1X_LDq.mix": { + "10-注册延时函数.mix": { "__file__": true, "__name__": "10-注册延时函数.mix" }, - "jtRBDN-KIBk.mix": { + "11-SCoop多线程.mix": { "__file__": true, "__name__": "11-SCoop多线程.mix" }, "__file__": false, "__name__": "02-控制" }, - "EQRznV_EdoC": { - "94QvwqAykHH.mix": { + "03-数学": { + "01-代数运算.mix": { "__file__": true, "__name__": "01-代数运算.mix" }, - "1QqTou5XTIb.mix": { + "02-位运算.mix": { "__file__": true, "__name__": "02-位运算.mix" }, - "41Ji3K1emnD.mix": { + "03-三角函数.mix": { "__file__": true, "__name__": "03-三角函数.mix" }, - "dvV0fozR2qy.mix": { + "04-变量自加.mix": { "__file__": true, "__name__": "04-变量自加.mix" }, - "pKdG_01YXCR.mix": { + "05-常见数学运算(四舍五入等).mix": { "__file__": true, "__name__": "05-常见数学运算(四舍五入等).mix" }, - "tYcWxNcC4yu.mix": { + "06-获取不同类型数据占用的字节数.mix": { "__file__": true, "__name__": "06-获取不同类型数据占用的字节数.mix" }, - "i8GNfghhchF.mix": { + "07-最大值与最小值.mix": { "__file__": true, "__name__": "07-最大值与最小值.mix" }, - "CSlrW-WkBhE.mix": { + "08-获取随机数.mix": { "__file__": true, "__name__": "08-获取随机数.mix" }, - "yjErwxvy_PL.mix": { + "09-数学约束.mix": { "__file__": true, "__name__": "09-数学约束.mix" }, - "5gMSrbsl_IA.mix": { + "10-数学映射.mix": { "__file__": true, "__name__": "10-数学映射.mix" }, "__file__": false, "__name__": "03-数学" }, - "6QrokY_Ea8R": { - "g5SQTzQvaEs.mix": { + "04-逻辑": { + "01-逻辑关系.mix": { "__file__": true, "__name__": "01-逻辑关系.mix" }, - "XqmVPjvJhbI.mix": { + "02-逻辑运算.mix": { "__file__": true, "__name__": "02-逻辑运算.mix" }, - "6VUve83biSS.mix": { + "03-逻辑非运算.mix": { "__file__": true, "__name__": "03-逻辑非运算.mix" }, - "tWWIZyjcTlKp.mix": { + "04-条件返回值.mix": { "__file__": true, "__name__": "04-条件返回值.mix" }, "__file__": false, "__name__": "04-逻辑" }, - "uHKMG6FYAqx2": { - "rCcGlL82TIpj.mix": { + "05-文本": { + "01-字符串拼接.mix": { "__file__": true, "__name__": "01-字符串拼接.mix" }, - "bpvFk1ZS9-6b.mix": { + "02-字符串转整数或小数.mix": { "__file__": true, "__name__": "02-字符串转整数或小数.mix" }, - "ARbon0fYPERQ.mix": { + "03-字符串索引.mix": { "__file__": true, "__name__": "03-字符串索引.mix" }, - "iaPqDixnIaEa.mix": { + "04-截取字符串.mix": { "__file__": true, "__name__": "04-截取字符串.mix" }, - "IwqZOOL9LFVQ.mix": { + "05-字符串转换与替换.mix": { "__file__": true, "__name__": "05-字符串转换与替换.mix" }, - "qGWUNel7s6lv.mix": { + "06-字符串首位判断与数据类型转换.mix": { "__file__": true, "__name__": "06-字符串首位判断与数据类型转换.mix" }, - "fYHcE7owacre.mix": { + "07-字符与ascii码互相转换.mix": { "__file__": true, "__name__": "07-字符与ascii码互相转换.mix" }, - "b14bii9q0QMs.mix": { + "08-进制转换.mix": { "__file__": true, "__name__": "08-进制转换.mix" }, - "8gv6_lvRsqc3.mix": { + "09-字符串长度与获取指定位置字符.mix": { "__file__": true, "__name__": "09-字符串长度与获取指定位置字符.mix" }, - "GPmcKn8nKcAm.mix": { + "10-字符串关系与比较.mix": { "__file__": true, "__name__": "10-字符串关系与比较.mix" }, "__file__": false, "__name__": "05-文本" }, - "ChlHi83NbG6b": { - "rj_yRzWK1Wkr.mix": { + "06-数组": { + "01-一维数组声明.mix": { "__file__": true, "__name__": "01-一维数组声明.mix" }, - "uTcE0mPFbAkH.mix": { + "02-数组读写.mix": { "__file__": true, "__name__": "02-数组读写.mix" }, - "aBhedmx3o8Af.mix": { + "03-数组循环移位.mix": { "__file__": true, "__name__": "03-数组循环移位.mix" }, - "MGYmVL6xEfos.mix": { + "04-二维数组声明.mix": { "__file__": true, "__name__": "04-二维数组声明.mix" }, - "6rhRD_n5octd.mix": { + "05-二维数组读写.mix": { "__file__": true, "__name__": "05-二维数组读写.mix" }, "__file__": false, "__name__": "06-数组" }, - "YseLD0bZGW8M": { - "bETVWal4c1dz.mix": { + "07-变量": { + "01-变量声明与使用区别.mix": { "__file__": true, "__name__": "01-变量声明与使用区别.mix" }, "__file__": false, "__name__": "07-变量" }, - "t4IeYWAx6kA1": { - "PIXEGI8nEp30.mix": { + "08-函数": { + "01-无返回值无参数函数.mix": { "__file__": true, "__name__": "01-无返回值无参数函数.mix" }, - "31A3tJkubjTx.mix": { + "02-无返回值带参数函数.mix": { "__file__": true, "__name__": "02-无返回值带参数函数.mix" }, - "Pp62dBvj4G0Z.mix": { + "03-带返回值带参数函数声明.mix": { "__file__": true, "__name__": "03-带返回值带参数函数声明.mix" }, - "yycMkPzIyqdx.mix": { + "04-多返回值带参数函数声明.mix": { "__file__": true, "__name__": "04-多返回值带参数函数声明.mix" }, "__file__": false, "__name__": "08-函数" }, - "S4inhf5Bh54Q": { - "t_HARRsNZwf1.mix": { + "09-串口": { + "01-串口打印输出.mix": { "__file__": true, "__name__": "01-串口打印输出.mix" }, - "S9HKiBHR6jS5.mix": { + "02-串口输入1.mix": { "__file__": true, "__name__": "02-串口输入1.mix" }, - "TSWLx1_1NRmP.mix": { + "02-串口输入2.mix": { "__file__": true, "__name__": "02-串口输入2.mix" }, - "pW7Xz-3vrbyO.mix": { + "02-串口输入3.mix": { "__file__": true, "__name__": "02-串口输入3.mix" }, - "43wOPIF2LY1V.mix": { + "02-串口输入4.mix": { "__file__": true, "__name__": "02-串口输入4.mix" }, - "Em2gHJq_A_LA.mix": { + "03-串口发送等待.mix": { "__file__": true, "__name__": "03-串口发送等待.mix" }, - "qlnUVGa5j78T.mix": { + "04-串口中断.mix": { "__file__": true, "__name__": "04-串口中断.mix" }, - "Szuqv_2oeSnu.mix": { + "05-软串口的使用.mix": { "__file__": true, "__name__": "05-软串口的使用.mix" }, "__file__": false, "__name__": "09-串口" }, - "6AGw1yXgLprT": { - "gVoZfsWHjzCC.mix": { + "10-传感器": { + "01-超声波测距.mix": { "__file__": true, "__name__": "01-超声波测距.mix" }, - "r8aKeuYueZBE.mix": { + "02-获取DHT11温湿度.mix": { "__file__": true, "__name__": "02-获取DHT11温湿度.mix" }, - "uWuikaYG5EFb.mix": { + "03-获取LM35温度.mix": { "__file__": true, "__name__": "03-获取LM35温度.mix" }, - "uJJlma8h9D9q.mix": { + "04-获取DS18B20温度.mix": { "__file__": true, "__name__": "04-获取DS18B20温度.mix" }, - "MivLnGE7wu5B.mix": { + "05-获取BME280参数.mix": { "__file__": true, "__name__": "05-获取BME280参数.mix" }, - "Nc5rHxFUNdH6.mix": { + "06-获取SHT20温湿度.mix": { "__file__": true, "__name__": "06-获取SHT20温湿度.mix" }, - "46iQe4E-DOhi.mix": { + "07-BMLX90614红外温度测量.mix": { "__file__": true, "__name__": "07-BMLX90614红外温度测量.mix" }, - "zv03hJZhMxHO.mix": { + "08-tcs34725颜色提取.mix": { "__file__": true, "__name__": "08-tcs34725颜色提取.mix" }, - "QA8fnXR5_ndx.mix": { + "09-tcs230颜色提取.mix": { "__file__": true, "__name__": "09-tcs230颜色提取.mix" }, - "gymEPeibkRzn.mix": { + "10-MPU6050陀螺仪.mix": { "__file__": true, "__name__": "10-MPU6050陀螺仪.mix" }, - "ikRd_Z4OPkBN.mix": { + "11-MPU9250加速度传感器.mix": { "__file__": true, "__name__": "11-MPU9250加速度传感器.mix" }, "__file__": false, "__name__": "10-传感器" }, - "r0LXb-VZvIEO": { - "GsEhMzFO_q9c.mix": { + "13-通信": { + "01-红外数据接收.mix": { "__file__": true, "__name__": "01-红外数据接收.mix" }, - "qlbRrTgiyu3W.mix": { + "02-红外数据发送.mix": { "__file__": true, "__name__": "02-红外数据发送.mix" }, - "vJT_gXYcZgHT.mix": { + "03-红外数据模拟收发.mix": { "__file__": true, "__name__": "03-红外数据模拟收发.mix" }, "__file__": false, "__name__": "13-通信" }, - "Vg3zj7Pk-gkc": { - "feckGQcBVn-A.mix": { + "14-存储": { + "01-SD卡读写测试.mix": { "__file__": true, "__name__": "01-SD卡读写测试.mix" }, - "gRmiLcS3fwr-.mix": { + "02-EEPROM掉电存储.mix": { "__file__": true, "__name__": "02-EEPROM掉电存储.mix" }, @@ -1235,149 +1235,149 @@ "__file__": false, "__name__": "Mixly2.0简明教程" }, - "oKteXz3xeIWa": { - "ddza7_FJbQse": { - "VbERBlAzQVKa.mix": { + "教材范例": { + "创意电子": { + "03按钮指示灯_buttonindator_2.mix": { "__file__": true, "__name__": "03按钮指示灯_buttonindator_2.mix" }, - "xfGPZPUEQ35A.mix": { + "03按钮指示灯_flashinglight_2.mix": { "__file__": true, "__name__": "03按钮指示灯_flashinglight_2.mix" }, - "sdHrRixG66Ks.mix": { + "04渐变灯_buttonindator_3.mix": { "__file__": true, "__name__": "04渐变灯_buttonindator_3.mix" }, - "3Yh0PaVvBoql.mix": { + "04渐变灯_gradientlamp_1.mix": { "__file__": true, "__name__": "04渐变灯_gradientlamp_1.mix" }, - "nIYmSMgvHYLh.mix": { + "05反应测试_gradientlamp_2.mix": { "__file__": true, "__name__": "05反应测试_gradientlamp_2.mix" }, - "3WJagauftNaN.mix": { + "05反应测试_reactiontest_2.mix": { "__file__": true, "__name__": "05反应测试_reactiontest_2.mix" }, - "51Tfm_6rpMR_.mix": { + "06遥控灯_remotecontrollight_2.mix": { "__file__": true, "__name__": "06遥控灯_remotecontrollight_2.mix" }, - "8EVJikjkMqca.mix": { + "07遥控门锁_keylessentry_1.mix": { "__file__": true, "__name__": "07遥控门锁_keylessentry_1.mix" }, - "Q4QM3qiNFwoA.mix": { + "07遥控门锁_keylessentry_2.mix": { "__file__": true, "__name__": "07遥控门锁_keylessentry_2.mix" }, - "0j5Rbk_U04um.mix": { + "08温度指示器_temperatureindator_1.mix": { "__file__": true, "__name__": "08温度指示器_temperatureindator_1.mix" }, - "bTJwaTnIRdkG.mix": { + "08温度指示器_temperatureindator_2.mix": { "__file__": true, "__name__": "08温度指示器_temperatureindator_2.mix" }, - "amNANW1Otrks.mix": { + "09报警器_alarm_1.mix": { "__file__": true, "__name__": "09报警器_alarm_1.mix" }, - "NhgmfpPqLudS.mix": { + "09报警器_alarm_2.mix": { "__file__": true, "__name__": "09报警器_alarm_2.mix" }, - "Isgfk7bQWakx.mix": { + "09报警器_lib_alarm_lib2.mix": { "__file__": true, "__name__": "09报警器_lib_alarm_lib2.mix" }, - "nh4BDjFC7NVJ.mix": { + "10可调报警器_adjustablealarm_1.mix": { "__file__": true, "__name__": "10可调报警器_adjustablealarm_1.mix" }, - "K64dwVPj8ANF.mix": { + "10可调报警器_adjustablealarm_2.mix": { "__file__": true, "__name__": "10可调报警器_adjustablealarm_2.mix" }, - "UUney3DMWLzK.mix": { + "10可调报警器_lib_adjustablealarm_lib2.mix": { "__file__": true, "__name__": "10可调报警器_lib_adjustablealarm_lib2.mix" }, - "UNinMG38cdZz.mix": { + "11倒车雷达_reversingradar_1.mix": { "__file__": true, "__name__": "11倒车雷达_reversingradar_1.mix" }, - "rtbEJnT1mE1J.mix": { + "11倒车雷达_reversingradar_2.mix": { "__file__": true, "__name__": "11倒车雷达_reversingradar_2.mix" }, - "5M7j9mhJ4PvT.mix": { + "12计时器_timer_1.mix": { "__file__": true, "__name__": "12计时器_timer_1.mix" }, - "vM3m-CD5UQi9.mix": { + "12计时器_timer_2.mix": { "__file__": true, "__name__": "12计时器_timer_2.mix" }, - "xFDLH7q5Hr95.mix": { + "1闪烁灯_1 flashing light.mix": { "__file__": true, "__name__": "1闪烁灯_1 flashing light.mix" }, - "jlQJIviOk1g-.mix": { + "2闪烁灯_2 flashing lights.mix": { "__file__": true, "__name__": "2闪烁灯_2 flashing lights.mix" }, "__file__": false, "__name__": "创意电子" }, - "iL9vTAmPQNDs": { - "8EbfGN6MjrDY.mix": { + "智能机器": { + "“保卫”消防通道_Secure Fire Passage.mix": { "__file__": true, "__name__": "“保卫”消防通道_Secure Fire Passage.mix" }, - "7zRjVGW73NUA.mix": { + "你抢我答_You rob me to answer.mix": { "__file__": true, "__name__": "你抢我答_You rob me to answer.mix" }, - "CgZAS9tpEN6M.mix": { + "噪声监控_Noise monitoring.mix": { "__file__": true, "__name__": "噪声监控_Noise monitoring.mix" }, - "oOjE8d-FBBWj.mix": { + "图书消毒柜_Book disinfection cabinet.mix": { "__file__": true, "__name__": "图书消毒柜_Book disinfection cabinet.mix" }, - "yLXF1UPVdqQd.mix": { + "太阳能发电机_Solar generator.mix": { "__file__": true, "__name__": "太阳能发电机_Solar generator.mix" }, - "4pi7CZhDTKtl.mix": { + "彩色手电筒_Color flashlight.mix": { "__file__": true, "__name__": "彩色手电筒_Color flashlight.mix" }, - "Ko3F4ypU9PF4.mix": { + "无人驾驶_unmanned.mix": { "__file__": true, "__name__": "无人驾驶_unmanned.mix" }, - "6bYviIZmOjDv.mix": { + "智能停车场_Smart parking.mix": { "__file__": true, "__name__": "智能停车场_Smart parking.mix" }, - "vr-cyHfPjgMj.mix": { + "眼疾手快_Eye disease hand fast.mix": { "__file__": true, "__name__": "眼疾手快_Eye disease hand fast.mix" }, - "lIgMY8sAKf0P.mix": { + "瞄准狐狸_Aiming at the fox.mix": { "__file__": true, "__name__": "瞄准狐狸_Aiming at the fox.mix" }, - "P8lK2at5LSIg.mix": { + "节电风扇_Power-saving fan.mix": { "__file__": true, "__name__": "节电风扇_Power-saving fan.mix" }, - "1iJji3BCSKN6.mix": { + "超市储物箱_Supermarket storage box.mix": { "__file__": true, "__name__": "超市储物箱_Supermarket storage box.mix" }, diff --git a/boards/default/arduino_avr/examples/oKteXz3xeIWa/ddza7_FJbQse/VbERBlAzQVKa.mix b/boards/default/arduino_avr/examples/教材范例/创意电子/03按钮指示灯_buttonindator_2.mix similarity index 100% rename from boards/default/arduino_avr/examples/oKteXz3xeIWa/ddza7_FJbQse/VbERBlAzQVKa.mix rename to boards/default/arduino_avr/examples/教材范例/创意电子/03按钮指示灯_buttonindator_2.mix diff --git a/boards/default/arduino_avr/examples/oKteXz3xeIWa/ddza7_FJbQse/xfGPZPUEQ35A.mix b/boards/default/arduino_avr/examples/教材范例/创意电子/03按钮指示灯_flashinglight_2.mix similarity index 100% rename from boards/default/arduino_avr/examples/oKteXz3xeIWa/ddza7_FJbQse/xfGPZPUEQ35A.mix rename to boards/default/arduino_avr/examples/教材范例/创意电子/03按钮指示灯_flashinglight_2.mix diff --git a/boards/default/arduino_avr/examples/oKteXz3xeIWa/ddza7_FJbQse/sdHrRixG66Ks.mix b/boards/default/arduino_avr/examples/教材范例/创意电子/04渐变灯_buttonindator_3.mix similarity index 100% rename from boards/default/arduino_avr/examples/oKteXz3xeIWa/ddza7_FJbQse/sdHrRixG66Ks.mix rename to boards/default/arduino_avr/examples/教材范例/创意电子/04渐变灯_buttonindator_3.mix diff --git a/boards/default/arduino_avr/examples/oKteXz3xeIWa/ddza7_FJbQse/3Yh0PaVvBoql.mix b/boards/default/arduino_avr/examples/教材范例/创意电子/04渐变灯_gradientlamp_1.mix similarity index 100% rename from boards/default/arduino_avr/examples/oKteXz3xeIWa/ddza7_FJbQse/3Yh0PaVvBoql.mix rename to boards/default/arduino_avr/examples/教材范例/创意电子/04渐变灯_gradientlamp_1.mix diff --git a/boards/default/arduino_avr/examples/oKteXz3xeIWa/ddza7_FJbQse/nIYmSMgvHYLh.mix b/boards/default/arduino_avr/examples/教材范例/创意电子/05反应测试_gradientlamp_2.mix similarity index 100% rename from boards/default/arduino_avr/examples/oKteXz3xeIWa/ddza7_FJbQse/nIYmSMgvHYLh.mix rename to boards/default/arduino_avr/examples/教材范例/创意电子/05反应测试_gradientlamp_2.mix diff --git a/boards/default/arduino_avr/examples/oKteXz3xeIWa/ddza7_FJbQse/3WJagauftNaN.mix b/boards/default/arduino_avr/examples/教材范例/创意电子/05反应测试_reactiontest_2.mix similarity index 100% rename from boards/default/arduino_avr/examples/oKteXz3xeIWa/ddza7_FJbQse/3WJagauftNaN.mix rename to boards/default/arduino_avr/examples/教材范例/创意电子/05反应测试_reactiontest_2.mix diff --git a/boards/default/arduino_avr/examples/oKteXz3xeIWa/ddza7_FJbQse/51Tfm_6rpMR_.mix b/boards/default/arduino_avr/examples/教材范例/创意电子/06遥控灯_remotecontrollight_2.mix similarity index 100% rename from boards/default/arduino_avr/examples/oKteXz3xeIWa/ddza7_FJbQse/51Tfm_6rpMR_.mix rename to boards/default/arduino_avr/examples/教材范例/创意电子/06遥控灯_remotecontrollight_2.mix diff --git a/boards/default/arduino_avr/examples/oKteXz3xeIWa/ddza7_FJbQse/8EVJikjkMqca.mix b/boards/default/arduino_avr/examples/教材范例/创意电子/07遥控门锁_keylessentry_1.mix similarity index 100% rename from boards/default/arduino_avr/examples/oKteXz3xeIWa/ddza7_FJbQse/8EVJikjkMqca.mix rename to boards/default/arduino_avr/examples/教材范例/创意电子/07遥控门锁_keylessentry_1.mix diff --git a/boards/default/arduino_avr/examples/oKteXz3xeIWa/ddza7_FJbQse/Q4QM3qiNFwoA.mix b/boards/default/arduino_avr/examples/教材范例/创意电子/07遥控门锁_keylessentry_2.mix similarity index 100% rename from boards/default/arduino_avr/examples/oKteXz3xeIWa/ddza7_FJbQse/Q4QM3qiNFwoA.mix rename to boards/default/arduino_avr/examples/教材范例/创意电子/07遥控门锁_keylessentry_2.mix diff --git a/boards/default/arduino_avr/examples/oKteXz3xeIWa/ddza7_FJbQse/0j5Rbk_U04um.mix b/boards/default/arduino_avr/examples/教材范例/创意电子/08温度指示器_temperatureindator_1.mix similarity index 100% rename from boards/default/arduino_avr/examples/oKteXz3xeIWa/ddza7_FJbQse/0j5Rbk_U04um.mix rename to boards/default/arduino_avr/examples/教材范例/创意电子/08温度指示器_temperatureindator_1.mix diff --git a/boards/default/arduino_avr/examples/oKteXz3xeIWa/ddza7_FJbQse/bTJwaTnIRdkG.mix b/boards/default/arduino_avr/examples/教材范例/创意电子/08温度指示器_temperatureindator_2.mix similarity index 100% rename from boards/default/arduino_avr/examples/oKteXz3xeIWa/ddza7_FJbQse/bTJwaTnIRdkG.mix rename to boards/default/arduino_avr/examples/教材范例/创意电子/08温度指示器_temperatureindator_2.mix diff --git a/boards/default/arduino_avr/examples/oKteXz3xeIWa/ddza7_FJbQse/amNANW1Otrks.mix b/boards/default/arduino_avr/examples/教材范例/创意电子/09报警器_alarm_1.mix similarity index 100% rename from boards/default/arduino_avr/examples/oKteXz3xeIWa/ddza7_FJbQse/amNANW1Otrks.mix rename to boards/default/arduino_avr/examples/教材范例/创意电子/09报警器_alarm_1.mix diff --git a/boards/default/arduino_avr/examples/oKteXz3xeIWa/ddza7_FJbQse/Isgfk7bQWakx.mix b/boards/default/arduino_avr/examples/教材范例/创意电子/09报警器_alarm_2.mix similarity index 100% rename from boards/default/arduino_avr/examples/oKteXz3xeIWa/ddza7_FJbQse/Isgfk7bQWakx.mix rename to boards/default/arduino_avr/examples/教材范例/创意电子/09报警器_alarm_2.mix diff --git a/boards/default/arduino_avr/examples/oKteXz3xeIWa/ddza7_FJbQse/NhgmfpPqLudS.mix b/boards/default/arduino_avr/examples/教材范例/创意电子/09报警器_lib_alarm_lib2.mix similarity index 100% rename from boards/default/arduino_avr/examples/oKteXz3xeIWa/ddza7_FJbQse/NhgmfpPqLudS.mix rename to boards/default/arduino_avr/examples/教材范例/创意电子/09报警器_lib_alarm_lib2.mix diff --git a/boards/default/arduino_avr/examples/oKteXz3xeIWa/ddza7_FJbQse/nh4BDjFC7NVJ.mix b/boards/default/arduino_avr/examples/教材范例/创意电子/10可调报警器_adjustablealarm_1.mix similarity index 100% rename from boards/default/arduino_avr/examples/oKteXz3xeIWa/ddza7_FJbQse/nh4BDjFC7NVJ.mix rename to boards/default/arduino_avr/examples/教材范例/创意电子/10可调报警器_adjustablealarm_1.mix diff --git a/boards/default/arduino_avr/examples/oKteXz3xeIWa/ddza7_FJbQse/K64dwVPj8ANF.mix b/boards/default/arduino_avr/examples/教材范例/创意电子/10可调报警器_adjustablealarm_2.mix similarity index 100% rename from boards/default/arduino_avr/examples/oKteXz3xeIWa/ddza7_FJbQse/K64dwVPj8ANF.mix rename to boards/default/arduino_avr/examples/教材范例/创意电子/10可调报警器_adjustablealarm_2.mix diff --git a/boards/default/arduino_avr/examples/oKteXz3xeIWa/ddza7_FJbQse/UUney3DMWLzK.mix b/boards/default/arduino_avr/examples/教材范例/创意电子/10可调报警器_lib_adjustablealarm_lib2.mix similarity index 100% rename from boards/default/arduino_avr/examples/oKteXz3xeIWa/ddza7_FJbQse/UUney3DMWLzK.mix rename to boards/default/arduino_avr/examples/教材范例/创意电子/10可调报警器_lib_adjustablealarm_lib2.mix diff --git a/boards/default/arduino_avr/examples/oKteXz3xeIWa/ddza7_FJbQse/UNinMG38cdZz.mix b/boards/default/arduino_avr/examples/教材范例/创意电子/11倒车雷达_reversingradar_1.mix similarity index 100% rename from boards/default/arduino_avr/examples/oKteXz3xeIWa/ddza7_FJbQse/UNinMG38cdZz.mix rename to boards/default/arduino_avr/examples/教材范例/创意电子/11倒车雷达_reversingradar_1.mix diff --git a/boards/default/arduino_avr/examples/oKteXz3xeIWa/ddza7_FJbQse/rtbEJnT1mE1J.mix b/boards/default/arduino_avr/examples/教材范例/创意电子/11倒车雷达_reversingradar_2.mix similarity index 100% rename from boards/default/arduino_avr/examples/oKteXz3xeIWa/ddza7_FJbQse/rtbEJnT1mE1J.mix rename to boards/default/arduino_avr/examples/教材范例/创意电子/11倒车雷达_reversingradar_2.mix diff --git a/boards/default/arduino_avr/examples/oKteXz3xeIWa/ddza7_FJbQse/5M7j9mhJ4PvT.mix b/boards/default/arduino_avr/examples/教材范例/创意电子/12计时器_timer_1.mix similarity index 100% rename from boards/default/arduino_avr/examples/oKteXz3xeIWa/ddza7_FJbQse/5M7j9mhJ4PvT.mix rename to boards/default/arduino_avr/examples/教材范例/创意电子/12计时器_timer_1.mix diff --git a/boards/default/arduino_avr/examples/oKteXz3xeIWa/ddza7_FJbQse/vM3m-CD5UQi9.mix b/boards/default/arduino_avr/examples/教材范例/创意电子/12计时器_timer_2.mix similarity index 100% rename from boards/default/arduino_avr/examples/oKteXz3xeIWa/ddza7_FJbQse/vM3m-CD5UQi9.mix rename to boards/default/arduino_avr/examples/教材范例/创意电子/12计时器_timer_2.mix diff --git a/boards/default/arduino_avr/examples/oKteXz3xeIWa/ddza7_FJbQse/xFDLH7q5Hr95.mix b/boards/default/arduino_avr/examples/教材范例/创意电子/1闪烁灯_1 flashing light.mix similarity index 100% rename from boards/default/arduino_avr/examples/oKteXz3xeIWa/ddza7_FJbQse/xFDLH7q5Hr95.mix rename to boards/default/arduino_avr/examples/教材范例/创意电子/1闪烁灯_1 flashing light.mix diff --git a/boards/default/arduino_avr/examples/oKteXz3xeIWa/ddza7_FJbQse/jlQJIviOk1g-.mix b/boards/default/arduino_avr/examples/教材范例/创意电子/2闪烁灯_2 flashing lights.mix similarity index 100% rename from boards/default/arduino_avr/examples/oKteXz3xeIWa/ddza7_FJbQse/jlQJIviOk1g-.mix rename to boards/default/arduino_avr/examples/教材范例/创意电子/2闪烁灯_2 flashing lights.mix diff --git a/boards/default/arduino_avr/examples/oKteXz3xeIWa/iL9vTAmPQNDs/8EbfGN6MjrDY.mix b/boards/default/arduino_avr/examples/教材范例/智能机器/“保卫”消防通道_Secure Fire Passage.mix similarity index 100% rename from boards/default/arduino_avr/examples/oKteXz3xeIWa/iL9vTAmPQNDs/8EbfGN6MjrDY.mix rename to boards/default/arduino_avr/examples/教材范例/智能机器/“保卫”消防通道_Secure Fire Passage.mix diff --git a/boards/default/arduino_avr/examples/oKteXz3xeIWa/iL9vTAmPQNDs/7zRjVGW73NUA.mix b/boards/default/arduino_avr/examples/教材范例/智能机器/你抢我答_You rob me to answer.mix similarity index 100% rename from boards/default/arduino_avr/examples/oKteXz3xeIWa/iL9vTAmPQNDs/7zRjVGW73NUA.mix rename to boards/default/arduino_avr/examples/教材范例/智能机器/你抢我答_You rob me to answer.mix diff --git a/boards/default/arduino_avr/examples/oKteXz3xeIWa/iL9vTAmPQNDs/CgZAS9tpEN6M.mix b/boards/default/arduino_avr/examples/教材范例/智能机器/噪声监控_Noise monitoring.mix similarity index 100% rename from boards/default/arduino_avr/examples/oKteXz3xeIWa/iL9vTAmPQNDs/CgZAS9tpEN6M.mix rename to boards/default/arduino_avr/examples/教材范例/智能机器/噪声监控_Noise monitoring.mix diff --git a/boards/default/arduino_avr/examples/oKteXz3xeIWa/iL9vTAmPQNDs/oOjE8d-FBBWj.mix b/boards/default/arduino_avr/examples/教材范例/智能机器/图书消毒柜_Book disinfection cabinet.mix similarity index 100% rename from boards/default/arduino_avr/examples/oKteXz3xeIWa/iL9vTAmPQNDs/oOjE8d-FBBWj.mix rename to boards/default/arduino_avr/examples/教材范例/智能机器/图书消毒柜_Book disinfection cabinet.mix diff --git a/boards/default/arduino_avr/examples/oKteXz3xeIWa/iL9vTAmPQNDs/yLXF1UPVdqQd.mix b/boards/default/arduino_avr/examples/教材范例/智能机器/太阳能发电机_Solar generator.mix similarity index 100% rename from boards/default/arduino_avr/examples/oKteXz3xeIWa/iL9vTAmPQNDs/yLXF1UPVdqQd.mix rename to boards/default/arduino_avr/examples/教材范例/智能机器/太阳能发电机_Solar generator.mix diff --git a/boards/default/arduino_avr/examples/oKteXz3xeIWa/iL9vTAmPQNDs/4pi7CZhDTKtl.mix b/boards/default/arduino_avr/examples/教材范例/智能机器/彩色手电筒_Color flashlight.mix similarity index 100% rename from boards/default/arduino_avr/examples/oKteXz3xeIWa/iL9vTAmPQNDs/4pi7CZhDTKtl.mix rename to boards/default/arduino_avr/examples/教材范例/智能机器/彩色手电筒_Color flashlight.mix diff --git a/boards/default/arduino_avr/examples/oKteXz3xeIWa/iL9vTAmPQNDs/Ko3F4ypU9PF4.mix b/boards/default/arduino_avr/examples/教材范例/智能机器/无人驾驶_unmanned.mix similarity index 100% rename from boards/default/arduino_avr/examples/oKteXz3xeIWa/iL9vTAmPQNDs/Ko3F4ypU9PF4.mix rename to boards/default/arduino_avr/examples/教材范例/智能机器/无人驾驶_unmanned.mix diff --git a/boards/default/arduino_avr/examples/oKteXz3xeIWa/iL9vTAmPQNDs/6bYviIZmOjDv.mix b/boards/default/arduino_avr/examples/教材范例/智能机器/智能停车场_Smart parking.mix similarity index 100% rename from boards/default/arduino_avr/examples/oKteXz3xeIWa/iL9vTAmPQNDs/6bYviIZmOjDv.mix rename to boards/default/arduino_avr/examples/教材范例/智能机器/智能停车场_Smart parking.mix diff --git a/boards/default/arduino_avr/examples/oKteXz3xeIWa/iL9vTAmPQNDs/vr-cyHfPjgMj.mix b/boards/default/arduino_avr/examples/教材范例/智能机器/眼疾手快_Eye disease hand fast.mix similarity index 100% rename from boards/default/arduino_avr/examples/oKteXz3xeIWa/iL9vTAmPQNDs/vr-cyHfPjgMj.mix rename to boards/default/arduino_avr/examples/教材范例/智能机器/眼疾手快_Eye disease hand fast.mix diff --git a/boards/default/arduino_avr/examples/oKteXz3xeIWa/iL9vTAmPQNDs/lIgMY8sAKf0P.mix b/boards/default/arduino_avr/examples/教材范例/智能机器/瞄准狐狸_Aiming at the fox.mix similarity index 100% rename from boards/default/arduino_avr/examples/oKteXz3xeIWa/iL9vTAmPQNDs/lIgMY8sAKf0P.mix rename to boards/default/arduino_avr/examples/教材范例/智能机器/瞄准狐狸_Aiming at the fox.mix diff --git a/boards/default/arduino_avr/examples/oKteXz3xeIWa/iL9vTAmPQNDs/P8lK2at5LSIg.mix b/boards/default/arduino_avr/examples/教材范例/智能机器/节电风扇_Power-saving fan.mix similarity index 100% rename from boards/default/arduino_avr/examples/oKteXz3xeIWa/iL9vTAmPQNDs/P8lK2at5LSIg.mix rename to boards/default/arduino_avr/examples/教材范例/智能机器/节电风扇_Power-saving fan.mix diff --git a/boards/default/arduino_avr/examples/oKteXz3xeIWa/iL9vTAmPQNDs/1iJji3BCSKN6.mix b/boards/default/arduino_avr/examples/教材范例/智能机器/超市储物箱_Supermarket storage box.mix similarity index 100% rename from boards/default/arduino_avr/examples/oKteXz3xeIWa/iL9vTAmPQNDs/1iJji3BCSKN6.mix rename to boards/default/arduino_avr/examples/教材范例/智能机器/超市储物箱_Supermarket storage box.mix diff --git a/boards/default/arduino_esp32/examples/G30m9tsDU2_m/Up55ORqxgbsO/SOMz8OdcYG0m.mix b/boards/default/arduino_esp32/examples/ESP32 Dev Module/Handbit/RGB LED.mix similarity index 100% rename from boards/default/arduino_esp32/examples/G30m9tsDU2_m/Up55ORqxgbsO/SOMz8OdcYG0m.mix rename to boards/default/arduino_esp32/examples/ESP32 Dev Module/Handbit/RGB LED.mix diff --git a/boards/default/arduino_esp32/examples/G30m9tsDU2_m/Up55ORqxgbsO/vhw3MAALaWdB.mix b/boards/default/arduino_esp32/examples/ESP32 Dev Module/Handbit/buzzer play two tigers.mix similarity index 100% rename from boards/default/arduino_esp32/examples/G30m9tsDU2_m/Up55ORqxgbsO/vhw3MAALaWdB.mix rename to boards/default/arduino_esp32/examples/ESP32 Dev Module/Handbit/buzzer play two tigers.mix diff --git a/boards/default/arduino_esp32/examples/G30m9tsDU2_m/Up55ORqxgbsO/Abn0vmTvNqdu.mix b/boards/default/arduino_esp32/examples/ESP32 Dev Module/Handbit/display Chinese.mix similarity index 100% rename from boards/default/arduino_esp32/examples/G30m9tsDU2_m/Up55ORqxgbsO/Abn0vmTvNqdu.mix rename to boards/default/arduino_esp32/examples/ESP32 Dev Module/Handbit/display Chinese.mix diff --git a/boards/default/arduino_esp32/examples/G30m9tsDU2_m/Up55ORqxgbsO/meBqwHfzXhYu.mix b/boards/default/arduino_esp32/examples/ESP32 Dev Module/Handbit/display Text.mix similarity index 100% rename from boards/default/arduino_esp32/examples/G30m9tsDU2_m/Up55ORqxgbsO/meBqwHfzXhYu.mix rename to boards/default/arduino_esp32/examples/ESP32 Dev Module/Handbit/display Text.mix diff --git a/boards/default/arduino_esp32/examples/G30m9tsDU2_m/A2KP27J6Js4a.mix b/boards/default/arduino_esp32/examples/ESP32 Dev Module/MPU6050打印数值.mix similarity index 100% rename from boards/default/arduino_esp32/examples/G30m9tsDU2_m/A2KP27J6Js4a.mix rename to boards/default/arduino_esp32/examples/ESP32 Dev Module/MPU6050打印数值.mix diff --git a/boards/default/arduino_esp32/examples/G30m9tsDU2_m/S7EIzIX8CTRs/BtxCDUckNkfP.mix b/boards/default/arduino_esp32/examples/ESP32 Dev Module/MixGo/MPU9250.mix similarity index 100% rename from boards/default/arduino_esp32/examples/G30m9tsDU2_m/S7EIzIX8CTRs/BtxCDUckNkfP.mix rename to boards/default/arduino_esp32/examples/ESP32 Dev Module/MixGo/MPU9250.mix diff --git a/boards/default/arduino_esp32/examples/G30m9tsDU2_m/EoDQjAfIfJFO.mix b/boards/default/arduino_esp32/examples/ESP32 Dev Module/PWM模拟输出.mix similarity index 100% rename from boards/default/arduino_esp32/examples/G30m9tsDU2_m/EoDQjAfIfJFO.mix rename to boards/default/arduino_esp32/examples/ESP32 Dev Module/PWM模拟输出.mix diff --git a/boards/default/arduino_esp32/examples/G30m9tsDU2_m/NgO1NNDjlIFp.mix b/boards/default/arduino_esp32/examples/ESP32 Dev Module/SPIFFS读写数据测试.mix similarity index 100% rename from boards/default/arduino_esp32/examples/G30m9tsDU2_m/NgO1NNDjlIFp.mix rename to boards/default/arduino_esp32/examples/ESP32 Dev Module/SPIFFS读写数据测试.mix diff --git a/boards/default/arduino_esp32/examples/G30m9tsDU2_m/PU07z8p9TFSB.mix b/boards/default/arduino_esp32/examples/ESP32 Dev Module/URL和Base64编解码.mix similarity index 100% rename from boards/default/arduino_esp32/examples/G30m9tsDU2_m/PU07z8p9TFSB.mix rename to boards/default/arduino_esp32/examples/ESP32 Dev Module/URL和Base64编解码.mix diff --git a/boards/default/arduino_esp32/examples/G30m9tsDU2_m/FFAn8vK7-1He.mix b/boards/default/arduino_esp32/examples/ESP32 Dev Module/WiFi事件.mix similarity index 100% rename from boards/default/arduino_esp32/examples/G30m9tsDU2_m/FFAn8vK7-1He.mix rename to boards/default/arduino_esp32/examples/ESP32 Dev Module/WiFi事件.mix diff --git a/boards/default/arduino_esp32/examples/G30m9tsDU2_m/MIMEFdrAnrQZ.mix b/boards/default/arduino_esp32/examples/ESP32 Dev Module/wifi控制小车.mix similarity index 100% rename from boards/default/arduino_esp32/examples/G30m9tsDU2_m/MIMEFdrAnrQZ.mix rename to boards/default/arduino_esp32/examples/ESP32 Dev Module/wifi控制小车.mix diff --git a/boards/default/arduino_esp32/examples/G30m9tsDU2_m/qQXqjt7JykRB.mix b/boards/default/arduino_esp32/examples/ESP32 Dev Module/中断控制.mix similarity index 100% rename from boards/default/arduino_esp32/examples/G30m9tsDU2_m/qQXqjt7JykRB.mix rename to boards/default/arduino_esp32/examples/ESP32 Dev Module/中断控制.mix diff --git a/boards/default/arduino_esp32/examples/G30m9tsDU2_m/2Zb4HUXjVfcx.mix b/boards/default/arduino_esp32/examples/ESP32 Dev Module/使用http发送POST请求.mix similarity index 100% rename from boards/default/arduino_esp32/examples/G30m9tsDU2_m/2Zb4HUXjVfcx.mix rename to boards/default/arduino_esp32/examples/ESP32 Dev Module/使用http发送POST请求.mix diff --git a/boards/default/arduino_esp32/examples/G30m9tsDU2_m/mitaGpmRhAW4.mix b/boards/default/arduino_esp32/examples/ESP32 Dev Module/定时器.mix similarity index 100% rename from boards/default/arduino_esp32/examples/G30m9tsDU2_m/mitaGpmRhAW4.mix rename to boards/default/arduino_esp32/examples/ESP32 Dev Module/定时器.mix diff --git a/boards/default/arduino_esp32/examples/G30m9tsDU2_m/NmMxfCH-38pu.mix b/boards/default/arduino_esp32/examples/ESP32 Dev Module/心知天气.mix similarity index 100% rename from boards/default/arduino_esp32/examples/G30m9tsDU2_m/NmMxfCH-38pu.mix rename to boards/default/arduino_esp32/examples/ESP32 Dev Module/心知天气.mix diff --git a/boards/default/arduino_esp32/examples/G30m9tsDU2_m/r8RmWob1qp6i.mix b/boards/default/arduino_esp32/examples/ESP32 Dev Module/旋转编码器读取数据.mix similarity index 100% rename from boards/default/arduino_esp32/examples/G30m9tsDU2_m/r8RmWob1qp6i.mix rename to boards/default/arduino_esp32/examples/ESP32 Dev Module/旋转编码器读取数据.mix diff --git a/boards/default/arduino_esp32/examples/G30m9tsDU2_m/NgEbW9bwfuDh/BY4jo5JaZen5.mix b/boards/default/arduino_esp32/examples/ESP32 Dev Module/简明教程/ESP32双核的简单使用.mix similarity index 100% rename from boards/default/arduino_esp32/examples/G30m9tsDU2_m/NgEbW9bwfuDh/BY4jo5JaZen5.mix rename to boards/default/arduino_esp32/examples/ESP32 Dev Module/简明教程/ESP32双核的简单使用.mix diff --git a/boards/default/arduino_esp32/examples/G30m9tsDU2_m/NgEbW9bwfuDh/ZJRKswbhwZ4W.mix b/boards/default/arduino_esp32/examples/ESP32 Dev Module/简明教程/ESPnow无线通讯简单案例.mix similarity index 100% rename from boards/default/arduino_esp32/examples/G30m9tsDU2_m/NgEbW9bwfuDh/ZJRKswbhwZ4W.mix rename to boards/default/arduino_esp32/examples/ESP32 Dev Module/简明教程/ESPnow无线通讯简单案例.mix diff --git a/boards/default/arduino_esp32/examples/G30m9tsDU2_m/AXxqqKN_VkB_.mix b/boards/default/arduino_esp32/examples/ESP32 Dev Module/触摸中断.mix similarity index 100% rename from boards/default/arduino_esp32/examples/G30m9tsDU2_m/AXxqqKN_VkB_.mix rename to boards/default/arduino_esp32/examples/ESP32 Dev Module/触摸中断.mix diff --git a/boards/default/arduino_esp32/examples/6uqJfrBT-lwq/t_7KuurbAHFr.mix b/boards/default/arduino_esp32/examples/ESP32C3 Dev Module/URL和Base64编解码.mix similarity index 100% rename from boards/default/arduino_esp32/examples/6uqJfrBT-lwq/t_7KuurbAHFr.mix rename to boards/default/arduino_esp32/examples/ESP32C3 Dev Module/URL和Base64编解码.mix diff --git a/boards/default/arduino_esp32/examples/6uqJfrBT-lwq/T_D9WNxbVFJk.mix b/boards/default/arduino_esp32/examples/ESP32C3 Dev Module/使用http发送POST请求.mix similarity index 100% rename from boards/default/arduino_esp32/examples/6uqJfrBT-lwq/T_D9WNxbVFJk.mix rename to boards/default/arduino_esp32/examples/ESP32C3 Dev Module/使用http发送POST请求.mix diff --git a/boards/default/arduino_esp32/examples/6uqJfrBT-lwq/QfiD7GtmOkwt.mix b/boards/default/arduino_esp32/examples/ESP32C3 Dev Module/心知天气.mix similarity index 100% rename from boards/default/arduino_esp32/examples/6uqJfrBT-lwq/QfiD7GtmOkwt.mix rename to boards/default/arduino_esp32/examples/ESP32C3 Dev Module/心知天气.mix diff --git a/boards/default/arduino_esp32/examples/PPk_qQfciyS-/ZYJ-M9Mc4wcF.mix b/boards/default/arduino_esp32/examples/ESP32S2 Dev Module/URL和Base64编解码.mix similarity index 100% rename from boards/default/arduino_esp32/examples/PPk_qQfciyS-/ZYJ-M9Mc4wcF.mix rename to boards/default/arduino_esp32/examples/ESP32S2 Dev Module/URL和Base64编解码.mix diff --git a/boards/default/arduino_esp32/examples/PPk_qQfciyS-/KwAvI54AZGxv.mix b/boards/default/arduino_esp32/examples/ESP32S2 Dev Module/使用http发送POST请求.mix similarity index 100% rename from boards/default/arduino_esp32/examples/PPk_qQfciyS-/KwAvI54AZGxv.mix rename to boards/default/arduino_esp32/examples/ESP32S2 Dev Module/使用http发送POST请求.mix diff --git a/boards/default/arduino_esp32/examples/PPk_qQfciyS-/PcyNjQlfeCvu.mix b/boards/default/arduino_esp32/examples/ESP32S2 Dev Module/心知天气.mix similarity index 100% rename from boards/default/arduino_esp32/examples/PPk_qQfciyS-/PcyNjQlfeCvu.mix rename to boards/default/arduino_esp32/examples/ESP32S2 Dev Module/心知天气.mix diff --git a/boards/default/arduino_esp32/examples/OENFEKukx1pp/iEHxnyN9tb_P.mix b/boards/default/arduino_esp32/examples/ESP32S3 Dev Module/URL和Base64编解码.mix similarity index 100% rename from boards/default/arduino_esp32/examples/OENFEKukx1pp/iEHxnyN9tb_P.mix rename to boards/default/arduino_esp32/examples/ESP32S3 Dev Module/URL和Base64编解码.mix diff --git a/boards/default/arduino_esp32/examples/OENFEKukx1pp/6sX2CyaHZQew.mix b/boards/default/arduino_esp32/examples/ESP32S3 Dev Module/使用http发送POST请求.mix similarity index 100% rename from boards/default/arduino_esp32/examples/OENFEKukx1pp/6sX2CyaHZQew.mix rename to boards/default/arduino_esp32/examples/ESP32S3 Dev Module/使用http发送POST请求.mix diff --git a/boards/default/arduino_esp32/examples/OENFEKukx1pp/_opo2QrVQpzO.mix b/boards/default/arduino_esp32/examples/ESP32S3 Dev Module/心知天气.mix similarity index 100% rename from boards/default/arduino_esp32/examples/OENFEKukx1pp/_opo2QrVQpzO.mix rename to boards/default/arduino_esp32/examples/ESP32S3 Dev Module/心知天气.mix diff --git a/boards/default/arduino_esp32/examples/map.json b/boards/default/arduino_esp32/examples/map.json index 0812159f..8e86269b 100644 --- a/boards/default/arduino_esp32/examples/map.json +++ b/boards/default/arduino_esp32/examples/map.json @@ -1,138 +1,138 @@ { - "G30m9tsDU2_m": { - "Up55ORqxgbsO": { - "vhw3MAALaWdB.mix": { + "ESP32 Dev Module": { + "Handbit": { + "buzzer play two tigers.mix": { "__file__": true, "__name__": "buzzer play two tigers.mix" }, - "Abn0vmTvNqdu.mix": { + "display Chinese.mix": { "__file__": true, "__name__": "display Chinese.mix" }, - "meBqwHfzXhYu.mix": { + "display Text.mix": { "__file__": true, "__name__": "display Text.mix" }, - "SOMz8OdcYG0m.mix": { + "RGB LED.mix": { "__file__": true, "__name__": "RGB LED.mix" }, "__file__": false, "__name__": "Handbit" }, - "S7EIzIX8CTRs": { - "BtxCDUckNkfP.mix": { + "MixGo": { + "MPU9250.mix": { "__file__": true, "__name__": "MPU9250.mix" }, "__file__": false, "__name__": "MixGo" }, - "A2KP27J6Js4a.mix": { + "MPU6050打印数值.mix": { "__file__": true, "__name__": "MPU6050打印数值.mix" }, - "EoDQjAfIfJFO.mix": { + "PWM模拟输出.mix": { "__file__": true, "__name__": "PWM模拟输出.mix" }, - "NgO1NNDjlIFp.mix": { + "SPIFFS读写数据测试.mix": { "__file__": true, "__name__": "SPIFFS读写数据测试.mix" }, - "PU07z8p9TFSB.mix": { + "URL和Base64编解码.mix": { "__file__": true, "__name__": "URL和Base64编解码.mix" }, - "FFAn8vK7-1He.mix": { + "WiFi事件.mix": { "__file__": true, "__name__": "WiFi事件.mix" }, - "MIMEFdrAnrQZ.mix": { + "wifi控制小车.mix": { "__file__": true, "__name__": "wifi控制小车.mix" }, - "qQXqjt7JykRB.mix": { + "中断控制.mix": { "__file__": true, "__name__": "中断控制.mix" }, - "2Zb4HUXjVfcx.mix": { + "使用http发送POST请求.mix": { "__file__": true, "__name__": "使用http发送POST请求.mix" }, - "mitaGpmRhAW4.mix": { + "定时器.mix": { "__file__": true, "__name__": "定时器.mix" }, - "NmMxfCH-38pu.mix": { + "心知天气.mix": { "__file__": true, "__name__": "心知天气.mix" }, - "r8RmWob1qp6i.mix": { + "旋转编码器读取数据.mix": { "__file__": true, "__name__": "旋转编码器读取数据.mix" }, - "NgEbW9bwfuDh": { - "BY4jo5JaZen5.mix": { + "简明教程": { + "ESP32双核的简单使用.mix": { "__file__": true, "__name__": "ESP32双核的简单使用.mix" }, - "ZJRKswbhwZ4W.mix": { + "ESPnow无线通讯简单案例.mix": { "__file__": true, "__name__": "ESPnow无线通讯简单案例.mix" }, "__file__": false, "__name__": "简明教程" }, - "AXxqqKN_VkB_.mix": { + "触摸中断.mix": { "__file__": true, "__name__": "触摸中断.mix" }, "__file__": false, "__name__": "ESP32 Dev Module" }, - "6uqJfrBT-lwq": { - "t_7KuurbAHFr.mix": { + "ESP32C3 Dev Module": { + "URL和Base64编解码.mix": { "__file__": true, "__name__": "URL和Base64编解码.mix" }, - "T_D9WNxbVFJk.mix": { + "使用http发送POST请求.mix": { "__file__": true, "__name__": "使用http发送POST请求.mix" }, - "QfiD7GtmOkwt.mix": { + "心知天气.mix": { "__file__": true, "__name__": "心知天气.mix" }, "__file__": false, "__name__": "ESP32C3 Dev Module" }, - "PPk_qQfciyS-": { - "ZYJ-M9Mc4wcF.mix": { + "ESP32S2 Dev Module": { + "URL和Base64编解码.mix": { "__file__": true, "__name__": "URL和Base64编解码.mix" }, - "KwAvI54AZGxv.mix": { + "使用http发送POST请求.mix": { "__file__": true, "__name__": "使用http发送POST请求.mix" }, - "PcyNjQlfeCvu.mix": { + "心知天气.mix": { "__file__": true, "__name__": "心知天气.mix" }, "__file__": false, "__name__": "ESP32S2 Dev Module" }, - "OENFEKukx1pp": { - "iEHxnyN9tb_P.mix": { + "ESP32S3 Dev Module": { + "URL和Base64编解码.mix": { "__file__": true, "__name__": "URL和Base64编解码.mix" }, - "6sX2CyaHZQew.mix": { + "使用http发送POST请求.mix": { "__file__": true, "__name__": "使用http发送POST请求.mix" }, - "_opo2QrVQpzO.mix": { + "心知天气.mix": { "__file__": true, "__name__": "心知天气.mix" }, diff --git a/boards/default/arduino_esp8266/examples/JJmrn9jFRfTa.mix b/boards/default/arduino_esp8266/examples/15-MQTT Send Message.mix similarity index 100% rename from boards/default/arduino_esp8266/examples/JJmrn9jFRfTa.mix rename to boards/default/arduino_esp8266/examples/15-MQTT Send Message.mix diff --git a/boards/default/arduino_esp8266/examples/JUtx9ytugjaC.mix b/boards/default/arduino_esp8266/examples/Blynk-远程七彩灯.mix similarity index 100% rename from boards/default/arduino_esp8266/examples/JUtx9ytugjaC.mix rename to boards/default/arduino_esp8266/examples/Blynk-远程七彩灯.mix diff --git a/boards/default/arduino_esp8266/examples/KreH8WIF_Yda.mix b/boards/default/arduino_esp8266/examples/Blynk控制舵机.mix similarity index 100% rename from boards/default/arduino_esp8266/examples/KreH8WIF_Yda.mix rename to boards/default/arduino_esp8266/examples/Blynk控制舵机.mix diff --git a/boards/default/arduino_esp8266/examples/pK2MXikzoQx6.mix b/boards/default/arduino_esp8266/examples/Blynk无线桥接通信.mix similarity index 100% rename from boards/default/arduino_esp8266/examples/pK2MXikzoQx6.mix rename to boards/default/arduino_esp8266/examples/Blynk无线桥接通信.mix diff --git a/boards/default/arduino_esp8266/examples/z4J4JHukkSVQ.mix b/boards/default/arduino_esp8266/examples/Blynk气象站.mix similarity index 100% rename from boards/default/arduino_esp8266/examples/z4J4JHukkSVQ.mix rename to boards/default/arduino_esp8266/examples/Blynk气象站.mix diff --git a/boards/default/arduino_esp8266/examples/3Wihz97xuOCP.mix b/boards/default/arduino_esp8266/examples/Blynk留言机.mix similarity index 100% rename from boards/default/arduino_esp8266/examples/3Wihz97xuOCP.mix rename to boards/default/arduino_esp8266/examples/Blynk留言机.mix diff --git a/boards/default/arduino_esp8266/examples/ipupXmtAYaGu.mix b/boards/default/arduino_esp8266/examples/Blynk连接服务器.mix similarity index 100% rename from boards/default/arduino_esp8266/examples/ipupXmtAYaGu.mix rename to boards/default/arduino_esp8266/examples/Blynk连接服务器.mix diff --git a/boards/default/arduino_esp8266/examples/COCWdBNocNHD.mix b/boards/default/arduino_esp8266/examples/MAX7219点阵时钟.mix similarity index 100% rename from boards/default/arduino_esp8266/examples/COCWdBNocNHD.mix rename to boards/default/arduino_esp8266/examples/MAX7219点阵时钟.mix diff --git a/boards/default/arduino_esp8266/examples/_YxyUzMogSu-.mix b/boards/default/arduino_esp8266/examples/MQTT连接DF EASY_IOT.mix similarity index 100% rename from boards/default/arduino_esp8266/examples/_YxyUzMogSu-.mix rename to boards/default/arduino_esp8266/examples/MQTT连接DF EASY_IOT.mix diff --git a/boards/default/arduino_esp8266/examples/yjn4I_LfPi4K.mix b/boards/default/arduino_esp8266/examples/NTP时间服务器.mix similarity index 100% rename from boards/default/arduino_esp8266/examples/yjn4I_LfPi4K.mix rename to boards/default/arduino_esp8266/examples/NTP时间服务器.mix diff --git a/boards/default/arduino_esp8266/examples/s4jq2m5fMgj4.mix b/boards/default/arduino_esp8266/examples/OLED网络时钟.mix similarity index 100% rename from boards/default/arduino_esp8266/examples/s4jq2m5fMgj4.mix rename to boards/default/arduino_esp8266/examples/OLED网络时钟.mix diff --git a/boards/default/arduino_esp8266/examples/t3iQzkI4Ce97.mix b/boards/default/arduino_esp8266/examples/TM1637网络时钟.mix similarity index 100% rename from boards/default/arduino_esp8266/examples/t3iQzkI4Ce97.mix rename to boards/default/arduino_esp8266/examples/TM1637网络时钟.mix diff --git a/boards/default/arduino_esp8266/examples/Hw0tvoR_sUVA.mix b/boards/default/arduino_esp8266/examples/URL和Base64编解码.mix similarity index 100% rename from boards/default/arduino_esp8266/examples/Hw0tvoR_sUVA.mix rename to boards/default/arduino_esp8266/examples/URL和Base64编解码.mix diff --git a/boards/default/arduino_esp8266/examples/map.json b/boards/default/arduino_esp8266/examples/map.json index bcbedba3..7b292708 100644 --- a/boards/default/arduino_esp8266/examples/map.json +++ b/boards/default/arduino_esp8266/examples/map.json @@ -1,78 +1,78 @@ { - "JJmrn9jFRfTa.mix": { + "15-MQTT Send Message.mix": { "__file__": true, "__name__": "15-MQTT Send Message.mix" }, - "JUtx9ytugjaC.mix": { + "Blynk-远程七彩灯.mix": { "__file__": true, "__name__": "Blynk-远程七彩灯.mix" }, - "KreH8WIF_Yda.mix": { + "Blynk控制舵机.mix": { "__file__": true, "__name__": "Blynk控制舵机.mix" }, - "pK2MXikzoQx6.mix": { + "Blynk无线桥接通信.mix": { "__file__": true, "__name__": "Blynk无线桥接通信.mix" }, - "z4J4JHukkSVQ.mix": { + "Blynk气象站.mix": { "__file__": true, "__name__": "Blynk气象站.mix" }, - "3Wihz97xuOCP.mix": { + "Blynk留言机.mix": { "__file__": true, "__name__": "Blynk留言机.mix" }, - "ipupXmtAYaGu.mix": { + "Blynk连接服务器.mix": { "__file__": true, "__name__": "Blynk连接服务器.mix" }, - "COCWdBNocNHD.mix": { + "MAX7219点阵时钟.mix": { "__file__": true, "__name__": "MAX7219点阵时钟.mix" }, - "_YxyUzMogSu-.mix": { + "MQTT连接DF EASY_IOT.mix": { "__file__": true, "__name__": "MQTT连接DF EASY_IOT.mix" }, - "yjn4I_LfPi4K.mix": { + "NTP时间服务器.mix": { "__file__": true, "__name__": "NTP时间服务器.mix" }, - "s4jq2m5fMgj4.mix": { + "OLED网络时钟.mix": { "__file__": true, "__name__": "OLED网络时钟.mix" }, - "t3iQzkI4Ce97.mix": { + "TM1637网络时钟.mix": { "__file__": true, "__name__": "TM1637网络时钟.mix" }, - "Hw0tvoR_sUVA.mix": { + "URL和Base64编解码.mix": { "__file__": true, "__name__": "URL和Base64编解码.mix" }, - "vRikhd5OTLZX.mix": { + "使用http发送POST请求.mix": { "__file__": true, "__name__": "使用http发送POST请求.mix" }, - "kU29WE1YwmyS.mix": { + "心知天气.mix": { "__file__": true, "__name__": "心知天气.mix" }, - "mbxSfuusHNwe.mix": { + "旋转编码器读取数据.mix": { "__file__": true, "__name__": "旋转编码器读取数据.mix" }, - "qC7av3_A2n_C": { - "uAxS1JxA80oc.mix": { + "简明教程": { + "AP模式一键配置网络与清除网络信息.mix": { "__file__": true, "__name__": "AP模式一键配置网络与清除网络信息.mix" }, - "75PFkhTFmnvA.mix": { + "MQTT断线反馈与重连.mix": { "__file__": true, "__name__": "MQTT断线反馈与重连.mix" }, - "aevTPM--8bhW.mix": { + "网络连接超时优化.mix": { "__file__": true, "__name__": "网络连接超时优化.mix" }, diff --git a/boards/default/arduino_esp8266/examples/vRikhd5OTLZX.mix b/boards/default/arduino_esp8266/examples/使用http发送POST请求.mix similarity index 100% rename from boards/default/arduino_esp8266/examples/vRikhd5OTLZX.mix rename to boards/default/arduino_esp8266/examples/使用http发送POST请求.mix diff --git a/boards/default/arduino_esp8266/examples/kU29WE1YwmyS.mix b/boards/default/arduino_esp8266/examples/心知天气.mix similarity index 100% rename from boards/default/arduino_esp8266/examples/kU29WE1YwmyS.mix rename to boards/default/arduino_esp8266/examples/心知天气.mix diff --git a/boards/default/arduino_esp8266/examples/mbxSfuusHNwe.mix b/boards/default/arduino_esp8266/examples/旋转编码器读取数据.mix similarity index 100% rename from boards/default/arduino_esp8266/examples/mbxSfuusHNwe.mix rename to boards/default/arduino_esp8266/examples/旋转编码器读取数据.mix diff --git a/boards/default/arduino_esp8266/examples/qC7av3_A2n_C/uAxS1JxA80oc.mix b/boards/default/arduino_esp8266/examples/简明教程/AP模式一键配置网络与清除网络信息.mix similarity index 100% rename from boards/default/arduino_esp8266/examples/qC7av3_A2n_C/uAxS1JxA80oc.mix rename to boards/default/arduino_esp8266/examples/简明教程/AP模式一键配置网络与清除网络信息.mix diff --git a/boards/default/arduino_esp8266/examples/qC7av3_A2n_C/75PFkhTFmnvA.mix b/boards/default/arduino_esp8266/examples/简明教程/MQTT断线反馈与重连.mix similarity index 100% rename from boards/default/arduino_esp8266/examples/qC7av3_A2n_C/75PFkhTFmnvA.mix rename to boards/default/arduino_esp8266/examples/简明教程/MQTT断线反馈与重连.mix diff --git a/boards/default/arduino_esp8266/examples/qC7av3_A2n_C/aevTPM--8bhW.mix b/boards/default/arduino_esp8266/examples/简明教程/网络连接超时优化.mix similarity index 100% rename from boards/default/arduino_esp8266/examples/qC7av3_A2n_C/aevTPM--8bhW.mix rename to boards/default/arduino_esp8266/examples/简明教程/网络连接超时优化.mix diff --git a/boards/default/micropython/build/lib/spl06_001.py b/boards/default/micropython/build/lib/spl06_001.py index 1863b9d2..16680fac 100644 --- a/boards/default/micropython/build/lib/spl06_001.py +++ b/boards/default/micropython/build/lib/spl06_001.py @@ -3,8 +3,6 @@ _SPL06-001 MicroPython library for the _SPL06-001(Air pressure sensor) ======================================================= -#Preliminary composition 20240108 - @dahanzimin From the Mixly Team """ import time @@ -99,7 +97,10 @@ class SPL06: buf = self._rreg(_SPL06_REG_PSR, 6) praw = self._u2s(buf[0] << 16 | buf[1] << 8 | buf[2], 24) / self._rate[2] traw = self._u2s(buf[3] << 16 | buf[4] << 8 | buf[5], 24) / self._rate[2] - self._psr = self._c00 + praw * (self._c10 + praw *(self._c20 + praw * self._c30)) + traw * self._c01 + traw * praw * (self._c11 + praw * self._c21) + try: + self._psr = self._c00 + praw * (self._c10 + praw *(self._c20 + praw * self._c30)) + traw * self._c01 + traw * praw * (self._c11 + praw * self._c21) + except: + self._psr = 0 self._tmp = self._c0 * 0.5 + self._c1 * traw self._alt = (1 - (self._psr / 101325) ** (1/5.255)) * 44330 return round(self._psr/100, 2), round(self._tmp, 2), round(self._alt,2) diff --git a/boards/default/micropython_esp32/examples/JNIUPdLpnuXM/wg0zdldUHcVJ.mix b/boards/default/micropython_esp32/examples/MixGo/1-1 滚动显示mixly.mix similarity index 100% rename from boards/default/micropython_esp32/examples/JNIUPdLpnuXM/wg0zdldUHcVJ.mix rename to boards/default/micropython_esp32/examples/MixGo/1-1 滚动显示mixly.mix diff --git a/boards/default/micropython_esp32/examples/JNIUPdLpnuXM/4TjvpntWQwB3.mix b/boards/default/micropython_esp32/examples/MixGo/1-2 滚动显示两句话.mix similarity index 100% rename from boards/default/micropython_esp32/examples/JNIUPdLpnuXM/4TjvpntWQwB3.mix rename to boards/default/micropython_esp32/examples/MixGo/1-2 滚动显示两句话.mix diff --git a/boards/default/micropython_esp32/examples/JNIUPdLpnuXM/qWjV-Mt5-GZK.mix b/boards/default/micropython_esp32/examples/MixGo/10-传按键数据上云端.mix similarity index 100% rename from boards/default/micropython_esp32/examples/JNIUPdLpnuXM/qWjV-Mt5-GZK.mix rename to boards/default/micropython_esp32/examples/MixGo/10-传按键数据上云端.mix diff --git a/boards/default/micropython_esp32/examples/JNIUPdLpnuXM/Zyxyd5BYuoiK.mix b/boards/default/micropython_esp32/examples/MixGo/11-1 云端控制LED灯.mix similarity index 100% rename from boards/default/micropython_esp32/examples/JNIUPdLpnuXM/Zyxyd5BYuoiK.mix rename to boards/default/micropython_esp32/examples/MixGo/11-1 云端控制LED灯.mix diff --git a/boards/default/micropython_esp32/examples/JNIUPdLpnuXM/_WiZHtar-e1y.mix b/boards/default/micropython_esp32/examples/MixGo/11-2 云端控制rgb灯.mix similarity index 100% rename from boards/default/micropython_esp32/examples/JNIUPdLpnuXM/_WiZHtar-e1y.mix rename to boards/default/micropython_esp32/examples/MixGo/11-2 云端控制rgb灯.mix diff --git a/boards/default/micropython_esp32/examples/JNIUPdLpnuXM/3yAfwPbSUtGJ.mix b/boards/default/micropython_esp32/examples/MixGo/12-1 应用开关控制LED灯.mix similarity index 100% rename from boards/default/micropython_esp32/examples/JNIUPdLpnuXM/3yAfwPbSUtGJ.mix rename to boards/default/micropython_esp32/examples/MixGo/12-1 应用开关控制LED灯.mix diff --git a/boards/default/micropython_esp32/examples/JNIUPdLpnuXM/TUMtfrAeb-BF.mix b/boards/default/micropython_esp32/examples/MixGo/12-2 应用旋钮控制LED灯.mix similarity index 100% rename from boards/default/micropython_esp32/examples/JNIUPdLpnuXM/TUMtfrAeb-BF.mix rename to boards/default/micropython_esp32/examples/MixGo/12-2 应用旋钮控制LED灯.mix diff --git a/boards/default/micropython_esp32/examples/JNIUPdLpnuXM/-SI1g_44ZFdF.mix b/boards/default/micropython_esp32/examples/MixGo/12-3 应用点亮显示屏.mix similarity index 100% rename from boards/default/micropython_esp32/examples/JNIUPdLpnuXM/-SI1g_44ZFdF.mix rename to boards/default/micropython_esp32/examples/MixGo/12-3 应用点亮显示屏.mix diff --git a/boards/default/micropython_esp32/examples/JNIUPdLpnuXM/X6uBmAn9JDGr.mix b/boards/default/micropython_esp32/examples/MixGo/2-1 心情晴雨表-按下.mix similarity index 100% rename from boards/default/micropython_esp32/examples/JNIUPdLpnuXM/X6uBmAn9JDGr.mix rename to boards/default/micropython_esp32/examples/MixGo/2-1 心情晴雨表-按下.mix diff --git a/boards/default/micropython_esp32/examples/JNIUPdLpnuXM/TiCLlByCsrL1.mix b/boards/default/micropython_esp32/examples/MixGo/2-1 心情晴雨表-按着.mix similarity index 100% rename from boards/default/micropython_esp32/examples/JNIUPdLpnuXM/TiCLlByCsrL1.mix rename to boards/default/micropython_esp32/examples/MixGo/2-1 心情晴雨表-按着.mix diff --git a/boards/default/micropython_esp32/examples/JNIUPdLpnuXM/YPepX4uni8YX.mix b/boards/default/micropython_esp32/examples/MixGo/2-2 心情晴雨表-联合图形.mix similarity index 100% rename from boards/default/micropython_esp32/examples/JNIUPdLpnuXM/YPepX4uni8YX.mix rename to boards/default/micropython_esp32/examples/MixGo/2-2 心情晴雨表-联合图形.mix diff --git a/boards/default/micropython_esp32/examples/JNIUPdLpnuXM/fLqRgpSftdty.mix b/boards/default/micropython_esp32/examples/MixGo/3-1 抢答器.mix similarity index 100% rename from boards/default/micropython_esp32/examples/JNIUPdLpnuXM/fLqRgpSftdty.mix rename to boards/default/micropython_esp32/examples/MixGo/3-1 抢答器.mix diff --git a/boards/default/micropython_esp32/examples/JNIUPdLpnuXM/1QFkQEJ2g0Tp.mix b/boards/default/micropython_esp32/examples/MixGo/3-2 倒计时抢答器.mix similarity index 100% rename from boards/default/micropython_esp32/examples/JNIUPdLpnuXM/1QFkQEJ2g0Tp.mix rename to boards/default/micropython_esp32/examples/MixGo/3-2 倒计时抢答器.mix diff --git a/boards/default/micropython_esp32/examples/JNIUPdLpnuXM/o93HoDYuXduw.mix b/boards/default/micropython_esp32/examples/MixGo/4-1可调报警器.mix similarity index 100% rename from boards/default/micropython_esp32/examples/JNIUPdLpnuXM/o93HoDYuXduw.mix rename to boards/default/micropython_esp32/examples/MixGo/4-1可调报警器.mix diff --git a/boards/default/micropython_esp32/examples/JNIUPdLpnuXM/8nqu1AR3Ajx4.mix b/boards/default/micropython_esp32/examples/MixGo/4-2音乐门铃.mix similarity index 100% rename from boards/default/micropython_esp32/examples/JNIUPdLpnuXM/8nqu1AR3Ajx4.mix rename to boards/default/micropython_esp32/examples/MixGo/4-2音乐门铃.mix diff --git a/boards/default/micropython_esp32/examples/JNIUPdLpnuXM/BTxSR-fso3e7.mix b/boards/default/micropython_esp32/examples/MixGo/5-1创建基准音.mix similarity index 100% rename from boards/default/micropython_esp32/examples/JNIUPdLpnuXM/BTxSR-fso3e7.mix rename to boards/default/micropython_esp32/examples/MixGo/5-1创建基准音.mix diff --git a/boards/default/micropython_esp32/examples/JNIUPdLpnuXM/tGAyzCJzPMze.mix b/boards/default/micropython_esp32/examples/MixGo/5-2录音电子琴.mix similarity index 100% rename from boards/default/micropython_esp32/examples/JNIUPdLpnuXM/tGAyzCJzPMze.mix rename to boards/default/micropython_esp32/examples/MixGo/5-2录音电子琴.mix diff --git a/boards/default/micropython_esp32/examples/JNIUPdLpnuXM/qCV4FEc5Gj8X.mix b/boards/default/micropython_esp32/examples/MixGo/6-1闹钟.mix similarity index 100% rename from boards/default/micropython_esp32/examples/JNIUPdLpnuXM/qCV4FEc5Gj8X.mix rename to boards/default/micropython_esp32/examples/MixGo/6-1闹钟.mix diff --git a/boards/default/micropython_esp32/examples/JNIUPdLpnuXM/oG7iPp6wgg_v.mix b/boards/default/micropython_esp32/examples/MixGo/6-2实时时钟.mix similarity index 100% rename from boards/default/micropython_esp32/examples/JNIUPdLpnuXM/oG7iPp6wgg_v.mix rename to boards/default/micropython_esp32/examples/MixGo/6-2实时时钟.mix diff --git a/boards/default/micropython_esp32/examples/JNIUPdLpnuXM/ANsv6_57IJV8.mix b/boards/default/micropython_esp32/examples/MixGo/7-1光电密码锁.mix similarity index 100% rename from boards/default/micropython_esp32/examples/JNIUPdLpnuXM/ANsv6_57IJV8.mix rename to boards/default/micropython_esp32/examples/MixGo/7-1光电密码锁.mix diff --git a/boards/default/micropython_esp32/examples/JNIUPdLpnuXM/SjT_JAdEFmUi.mix b/boards/default/micropython_esp32/examples/MixGo/7-2密码锁.mix similarity index 100% rename from boards/default/micropython_esp32/examples/JNIUPdLpnuXM/SjT_JAdEFmUi.mix rename to boards/default/micropython_esp32/examples/MixGo/7-2密码锁.mix diff --git a/boards/default/micropython_esp32/examples/JNIUPdLpnuXM/1YnKwJdM1DX-.mix b/boards/default/micropython_esp32/examples/MixGo/7-3密码锁-可修改密码.mix similarity index 100% rename from boards/default/micropython_esp32/examples/JNIUPdLpnuXM/1YnKwJdM1DX-.mix rename to boards/default/micropython_esp32/examples/MixGo/7-3密码锁-可修改密码.mix diff --git a/boards/default/micropython_esp32/examples/JNIUPdLpnuXM/BOC_ZyhdkZk0.mix b/boards/default/micropython_esp32/examples/MixGo/8-1磁场魔术.mix similarity index 100% rename from boards/default/micropython_esp32/examples/JNIUPdLpnuXM/BOC_ZyhdkZk0.mix rename to boards/default/micropython_esp32/examples/MixGo/8-1磁场魔术.mix diff --git a/boards/default/micropython_esp32/examples/JNIUPdLpnuXM/D-FhDFfzJgv9.mix b/boards/default/micropython_esp32/examples/MixGo/8-2扫雷法宝.mix similarity index 100% rename from boards/default/micropython_esp32/examples/JNIUPdLpnuXM/D-FhDFfzJgv9.mix rename to boards/default/micropython_esp32/examples/MixGo/8-2扫雷法宝.mix diff --git a/boards/default/micropython_esp32/examples/JNIUPdLpnuXM/CB-HIDWuNuR7.mix b/boards/default/micropython_esp32/examples/MixGo/9-1平衡仪.mix similarity index 100% rename from boards/default/micropython_esp32/examples/JNIUPdLpnuXM/CB-HIDWuNuR7.mix rename to boards/default/micropython_esp32/examples/MixGo/9-1平衡仪.mix diff --git a/boards/default/micropython_esp32/examples/JNIUPdLpnuXM/pAul6pcS_juR.mix b/boards/default/micropython_esp32/examples/MixGo/9-2平衡仪升级版.mix similarity index 100% rename from boards/default/micropython_esp32/examples/JNIUPdLpnuXM/pAul6pcS_juR.mix rename to boards/default/micropython_esp32/examples/MixGo/9-2平衡仪升级版.mix diff --git a/boards/default/micropython_esp32/examples/JNIUPdLpnuXM/6BJDpazzwqNO.mix b/boards/default/micropython_esp32/examples/MixGo/9-3平衡仪小小精灵快快跑.mix similarity index 100% rename from boards/default/micropython_esp32/examples/JNIUPdLpnuXM/6BJDpazzwqNO.mix rename to boards/default/micropython_esp32/examples/MixGo/9-3平衡仪小小精灵快快跑.mix diff --git a/boards/default/micropython_esp32/examples/JNIUPdLpnuXM/2FNITzim5eaA.mix b/boards/default/micropython_esp32/examples/MixGo/9-4平衡仪左右前后移动.mix similarity index 100% rename from boards/default/micropython_esp32/examples/JNIUPdLpnuXM/2FNITzim5eaA.mix rename to boards/default/micropython_esp32/examples/MixGo/9-4平衡仪左右前后移动.mix diff --git a/boards/default/micropython_esp32/examples/DtJ9jw-02HkG/y2dSViFZxdCo.mix b/boards/default/micropython_esp32/examples/mPython/01-1-快速入门-你好世界.mix similarity index 100% rename from boards/default/micropython_esp32/examples/DtJ9jw-02HkG/y2dSViFZxdCo.mix rename to boards/default/micropython_esp32/examples/mPython/01-1-快速入门-你好世界.mix diff --git a/boards/default/micropython_esp32/examples/DtJ9jw-02HkG/fzk1qMPBqOs2.mix b/boards/default/micropython_esp32/examples/mPython/01-2-快速入门-你好世界2.mix similarity index 100% rename from boards/default/micropython_esp32/examples/DtJ9jw-02HkG/fzk1qMPBqOs2.mix rename to boards/default/micropython_esp32/examples/mPython/01-2-快速入门-你好世界2.mix diff --git a/boards/default/micropython_esp32/examples/DtJ9jw-02HkG/B8MmHV9HRiqP.mix b/boards/default/micropython_esp32/examples/mPython/02-1-快速入门-跳动的心.mix similarity index 100% rename from boards/default/micropython_esp32/examples/DtJ9jw-02HkG/B8MmHV9HRiqP.mix rename to boards/default/micropython_esp32/examples/mPython/02-1-快速入门-跳动的心.mix diff --git a/boards/default/micropython_esp32/examples/DtJ9jw-02HkG/3NEADxsqL1gu.mix b/boards/default/micropython_esp32/examples/mPython/02-2-快速入门-为你心动.mix similarity index 100% rename from boards/default/micropython_esp32/examples/DtJ9jw-02HkG/3NEADxsqL1gu.mix rename to boards/default/micropython_esp32/examples/mPython/02-2-快速入门-为你心动.mix diff --git a/boards/default/micropython_esp32/examples/DtJ9jw-02HkG/CsnJ8a3jo_pf.mix b/boards/default/micropython_esp32/examples/mPython/03-1-快速入门-心随我动.mix similarity index 100% rename from boards/default/micropython_esp32/examples/DtJ9jw-02HkG/CsnJ8a3jo_pf.mix rename to boards/default/micropython_esp32/examples/mPython/03-1-快速入门-心随我动.mix diff --git a/boards/default/micropython_esp32/examples/DtJ9jw-02HkG/eNXOx6LV6fmR.mix b/boards/default/micropython_esp32/examples/mPython/03-2-快速入门-心随我动2.mix similarity index 100% rename from boards/default/micropython_esp32/examples/DtJ9jw-02HkG/eNXOx6LV6fmR.mix rename to boards/default/micropython_esp32/examples/mPython/03-2-快速入门-心随我动2.mix diff --git a/boards/default/micropython_esp32/examples/DtJ9jw-02HkG/XmylWMPztgAD.mix b/boards/default/micropython_esp32/examples/mPython/04-1-快速入门-流动的灯.mix similarity index 100% rename from boards/default/micropython_esp32/examples/DtJ9jw-02HkG/XmylWMPztgAD.mix rename to boards/default/micropython_esp32/examples/mPython/04-1-快速入门-流动的灯.mix diff --git a/boards/default/micropython_esp32/examples/DtJ9jw-02HkG/ocJfrxAitI1E.mix b/boards/default/micropython_esp32/examples/mPython/04-2-快速入门-流动的灯2.mix similarity index 100% rename from boards/default/micropython_esp32/examples/DtJ9jw-02HkG/ocJfrxAitI1E.mix rename to boards/default/micropython_esp32/examples/mPython/04-2-快速入门-流动的灯2.mix diff --git a/boards/default/micropython_esp32/examples/DtJ9jw-02HkG/3vSkffMeo6tG.mix b/boards/default/micropython_esp32/examples/mPython/05-1-过程控制-双键开关.mix similarity index 100% rename from boards/default/micropython_esp32/examples/DtJ9jw-02HkG/3vSkffMeo6tG.mix rename to boards/default/micropython_esp32/examples/mPython/05-1-过程控制-双键开关.mix diff --git a/boards/default/micropython_esp32/examples/DtJ9jw-02HkG/A-TXf_zDUSiZ.mix b/boards/default/micropython_esp32/examples/mPython/05-2-过程控制-单键开关.mix similarity index 100% rename from boards/default/micropython_esp32/examples/DtJ9jw-02HkG/A-TXf_zDUSiZ.mix rename to boards/default/micropython_esp32/examples/mPython/05-2-过程控制-单键开关.mix diff --git a/boards/default/micropython_esp32/examples/DtJ9jw-02HkG/SGmRr2iuZtuM.mix b/boards/default/micropython_esp32/examples/mPython/05-3-过程控制-IPO概念.mix similarity index 100% rename from boards/default/micropython_esp32/examples/DtJ9jw-02HkG/SGmRr2iuZtuM.mix rename to boards/default/micropython_esp32/examples/mPython/05-3-过程控制-IPO概念.mix diff --git a/boards/default/micropython_esp32/examples/DtJ9jw-02HkG/9m6-cBGvKNYm.mix b/boards/default/micropython_esp32/examples/mPython/06-1-过程控制-声音采集.mix similarity index 100% rename from boards/default/micropython_esp32/examples/DtJ9jw-02HkG/9m6-cBGvKNYm.mix rename to boards/default/micropython_esp32/examples/mPython/06-1-过程控制-声音采集.mix diff --git a/boards/default/micropython_esp32/examples/DtJ9jw-02HkG/MWTyiOQWJdRA.mix b/boards/default/micropython_esp32/examples/mPython/06-2-过程控制-看见声音.mix similarity index 100% rename from boards/default/micropython_esp32/examples/DtJ9jw-02HkG/MWTyiOQWJdRA.mix rename to boards/default/micropython_esp32/examples/mPython/06-2-过程控制-看见声音.mix diff --git a/boards/default/micropython_esp32/examples/DtJ9jw-02HkG/nQqzMjFYynUr.mix b/boards/default/micropython_esp32/examples/mPython/07-1-过程控制-光强采集.mix similarity index 100% rename from boards/default/micropython_esp32/examples/DtJ9jw-02HkG/nQqzMjFYynUr.mix rename to boards/default/micropython_esp32/examples/mPython/07-1-过程控制-光强采集.mix diff --git a/boards/default/micropython_esp32/examples/DtJ9jw-02HkG/13yJZe8ZqH9h.mix b/boards/default/micropython_esp32/examples/mPython/07-2-过程控制-自动补光.mix similarity index 100% rename from boards/default/micropython_esp32/examples/DtJ9jw-02HkG/13yJZe8ZqH9h.mix rename to boards/default/micropython_esp32/examples/mPython/07-2-过程控制-自动补光.mix diff --git a/boards/default/micropython_esp32/examples/DtJ9jw-02HkG/FjcMOWEw9duZ.mix b/boards/default/micropython_esp32/examples/mPython/08-1-过程控制-接近检测.mix similarity index 100% rename from boards/default/micropython_esp32/examples/DtJ9jw-02HkG/FjcMOWEw9duZ.mix rename to boards/default/micropython_esp32/examples/mPython/08-1-过程控制-接近检测.mix diff --git a/boards/default/micropython_esp32/examples/DtJ9jw-02HkG/0umoMDyQSLzs.mix b/boards/default/micropython_esp32/examples/mPython/08-2-过程控制-入侵报警.mix similarity index 100% rename from boards/default/micropython_esp32/examples/DtJ9jw-02HkG/0umoMDyQSLzs.mix rename to boards/default/micropython_esp32/examples/mPython/08-2-过程控制-入侵报警.mix diff --git a/boards/default/micropython_esp32/examples/DtJ9jw-02HkG/nlTwFKJsdQCw.mix b/boards/default/micropython_esp32/examples/mPython/09-1-输入输出-加速度.mix similarity index 100% rename from boards/default/micropython_esp32/examples/DtJ9jw-02HkG/nlTwFKJsdQCw.mix rename to boards/default/micropython_esp32/examples/mPython/09-1-输入输出-加速度.mix diff --git a/boards/default/micropython_esp32/examples/DtJ9jw-02HkG/Xhw9rV63JON5.mix b/boards/default/micropython_esp32/examples/mPython/09-2-输入输出-平衡仪.mix similarity index 100% rename from boards/default/micropython_esp32/examples/DtJ9jw-02HkG/Xhw9rV63JON5.mix rename to boards/default/micropython_esp32/examples/mPython/09-2-输入输出-平衡仪.mix diff --git a/boards/default/micropython_esp32/examples/DtJ9jw-02HkG/NxNhAYovYtYm.mix b/boards/default/micropython_esp32/examples/mPython/10-1-输入输出-地磁强度.mix similarity index 100% rename from boards/default/micropython_esp32/examples/DtJ9jw-02HkG/NxNhAYovYtYm.mix rename to boards/default/micropython_esp32/examples/mPython/10-1-输入输出-地磁强度.mix diff --git a/boards/default/micropython_esp32/examples/DtJ9jw-02HkG/PQt-yoSt1qng.mix b/boards/default/micropython_esp32/examples/mPython/10-2-输入输出-金属探测.mix similarity index 100% rename from boards/default/micropython_esp32/examples/DtJ9jw-02HkG/PQt-yoSt1qng.mix rename to boards/default/micropython_esp32/examples/mPython/10-2-输入输出-金属探测.mix diff --git a/boards/default/micropython_esp32/examples/DtJ9jw-02HkG/Jy7MItUwIIcs.mix b/boards/default/micropython_esp32/examples/mPython/12-1-输入输出-实时时钟.mix similarity index 100% rename from boards/default/micropython_esp32/examples/DtJ9jw-02HkG/Jy7MItUwIIcs.mix rename to boards/default/micropython_esp32/examples/mPython/12-1-输入输出-实时时钟.mix diff --git a/boards/default/micropython_esp32/examples/DtJ9jw-02HkG/taq2d8-19NJk.mix b/boards/default/micropython_esp32/examples/mPython/12-2-输入输出-实时时钟2.mix similarity index 100% rename from boards/default/micropython_esp32/examples/DtJ9jw-02HkG/taq2d8-19NJk.mix rename to boards/default/micropython_esp32/examples/mPython/12-2-输入输出-实时时钟2.mix diff --git a/boards/default/micropython_esp32/examples/DtJ9jw-02HkG/Z_HHY8dUmDe0.mix b/boards/default/micropython_esp32/examples/mPython/13-1-逻辑计算-手速测试.mix similarity index 100% rename from boards/default/micropython_esp32/examples/DtJ9jw-02HkG/Z_HHY8dUmDe0.mix rename to boards/default/micropython_esp32/examples/mPython/13-1-逻辑计算-手速测试.mix diff --git a/boards/default/micropython_esp32/examples/DtJ9jw-02HkG/7ysNkmQQL8Mq.mix b/boards/default/micropython_esp32/examples/mPython/14-1-逻辑计算-反应测试.mix similarity index 100% rename from boards/default/micropython_esp32/examples/DtJ9jw-02HkG/7ysNkmQQL8Mq.mix rename to boards/default/micropython_esp32/examples/mPython/14-1-逻辑计算-反应测试.mix diff --git a/boards/default/micropython_esp32/examples/DtJ9jw-02HkG/OFg1LozijgOw.mix b/boards/default/micropython_esp32/examples/mPython/14-2-逻辑计算-反应测试2.mix similarity index 100% rename from boards/default/micropython_esp32/examples/DtJ9jw-02HkG/OFg1LozijgOw.mix rename to boards/default/micropython_esp32/examples/mPython/14-2-逻辑计算-反应测试2.mix diff --git a/boards/default/micropython_esp32/examples/DtJ9jw-02HkG/jaAs1HfbFPEP.mix b/boards/default/micropython_esp32/examples/mPython/17-0-复杂控制-非中断效果.mix similarity index 100% rename from boards/default/micropython_esp32/examples/DtJ9jw-02HkG/jaAs1HfbFPEP.mix rename to boards/default/micropython_esp32/examples/mPython/17-0-复杂控制-非中断效果.mix diff --git a/boards/default/micropython_esp32/examples/DtJ9jw-02HkG/QqcCODHkXGkv.mix b/boards/default/micropython_esp32/examples/mPython/17-2-复杂控制-单键中断.mix similarity index 100% rename from boards/default/micropython_esp32/examples/DtJ9jw-02HkG/QqcCODHkXGkv.mix rename to boards/default/micropython_esp32/examples/mPython/17-2-复杂控制-单键中断.mix diff --git a/boards/default/micropython_esp32/examples/DtJ9jw-02HkG/LdoXr18AuGbD.mix b/boards/default/micropython_esp32/examples/mPython/18-1-复杂控制-定时计时.mix similarity index 100% rename from boards/default/micropython_esp32/examples/DtJ9jw-02HkG/LdoXr18AuGbD.mix rename to boards/default/micropython_esp32/examples/mPython/18-1-复杂控制-定时计时.mix diff --git a/boards/default/micropython_esp32/examples/DtJ9jw-02HkG/YbAlfdKlOZWr.mix b/boards/default/micropython_esp32/examples/mPython/18-2-复杂控制-循环计时.mix similarity index 100% rename from boards/default/micropython_esp32/examples/DtJ9jw-02HkG/YbAlfdKlOZWr.mix rename to boards/default/micropython_esp32/examples/mPython/18-2-复杂控制-循环计时.mix diff --git a/boards/default/micropython_esp32/examples/DtJ9jw-02HkG/d3-AjvdcWjWL.mix b/boards/default/micropython_esp32/examples/mPython/19-1-复杂控制-多线程.mix similarity index 100% rename from boards/default/micropython_esp32/examples/DtJ9jw-02HkG/d3-AjvdcWjWL.mix rename to boards/default/micropython_esp32/examples/mPython/19-1-复杂控制-多线程.mix diff --git a/boards/default/micropython_esp32/examples/DtJ9jw-02HkG/SMg_ZAqcFE2r.mix b/boards/default/micropython_esp32/examples/mPython/19-2-复杂控制-多线程与中断.mix similarity index 100% rename from boards/default/micropython_esp32/examples/DtJ9jw-02HkG/SMg_ZAqcFE2r.mix rename to boards/default/micropython_esp32/examples/mPython/19-2-复杂控制-多线程与中断.mix diff --git a/boards/default/micropython_esp32/examples/DtJ9jw-02HkG/S_haB0shc0Hx.mix b/boards/default/micropython_esp32/examples/mPython/20-1-复杂控制-异常.mix similarity index 100% rename from boards/default/micropython_esp32/examples/DtJ9jw-02HkG/S_haB0shc0Hx.mix rename to boards/default/micropython_esp32/examples/mPython/20-1-复杂控制-异常.mix diff --git a/boards/default/micropython_esp32/examples/DtJ9jw-02HkG/3QCig7DAW6d4.mix b/boards/default/micropython_esp32/examples/mPython/20-2-复杂控制-异常处理.mix similarity index 100% rename from boards/default/micropython_esp32/examples/DtJ9jw-02HkG/3QCig7DAW6d4.mix rename to boards/default/micropython_esp32/examples/mPython/20-2-复杂控制-异常处理.mix diff --git a/boards/default/micropython_esp32/examples/DtJ9jw-02HkG/k9ZAGuBM1NAj.mix b/boards/default/micropython_esp32/examples/mPython/23-1-蓝牙通讯-主机模式.mix similarity index 100% rename from boards/default/micropython_esp32/examples/DtJ9jw-02HkG/k9ZAGuBM1NAj.mix rename to boards/default/micropython_esp32/examples/mPython/23-1-蓝牙通讯-主机模式.mix diff --git a/boards/default/micropython_esp32/examples/DtJ9jw-02HkG/yo8mmzPv9X9T.mix b/boards/default/micropython_esp32/examples/mPython/23-1-蓝牙通讯-从机模式.mix similarity index 100% rename from boards/default/micropython_esp32/examples/DtJ9jw-02HkG/yo8mmzPv9X9T.mix rename to boards/default/micropython_esp32/examples/mPython/23-1-蓝牙通讯-从机模式.mix diff --git a/boards/default/micropython_esp32/examples/DtJ9jw-02HkG/PDLurxyyxP81.mix b/boards/default/micropython_esp32/examples/mPython/24-1-无线广播-通讯测试.mix similarity index 100% rename from boards/default/micropython_esp32/examples/DtJ9jw-02HkG/PDLurxyyxP81.mix rename to boards/default/micropython_esp32/examples/mPython/24-1-无线广播-通讯测试.mix diff --git a/boards/default/micropython_esp32/examples/DtJ9jw-02HkG/zDjB6GPwPAX2.mix b/boards/default/micropython_esp32/examples/mPython/24-2-无线广播-防丢检测.mix similarity index 100% rename from boards/default/micropython_esp32/examples/DtJ9jw-02HkG/zDjB6GPwPAX2.mix rename to boards/default/micropython_esp32/examples/mPython/24-2-无线广播-防丢检测.mix diff --git a/boards/default/micropython_esp32/examples/DtJ9jw-02HkG/8zPdM3BDzm8N.mix b/boards/default/micropython_esp32/examples/mPython/29-1-物联网-简单数据定时上报.mix similarity index 100% rename from boards/default/micropython_esp32/examples/DtJ9jw-02HkG/8zPdM3BDzm8N.mix rename to boards/default/micropython_esp32/examples/mPython/29-1-物联网-简单数据定时上报.mix diff --git a/boards/default/micropython_esp32/examples/DtJ9jw-02HkG/Hx2fRKp_13Rt.mix b/boards/default/micropython_esp32/examples/mPython/29-2-物联网-复杂数据定时上报.mix similarity index 100% rename from boards/default/micropython_esp32/examples/DtJ9jw-02HkG/Hx2fRKp_13Rt.mix rename to boards/default/micropython_esp32/examples/mPython/29-2-物联网-复杂数据定时上报.mix diff --git a/boards/default/micropython_esp32/examples/DtJ9jw-02HkG/IMh2-ewY4Rim.mix b/boards/default/micropython_esp32/examples/mPython/30-1-物联网-简单数据按需上报.mix similarity index 100% rename from boards/default/micropython_esp32/examples/DtJ9jw-02HkG/IMh2-ewY4Rim.mix rename to boards/default/micropython_esp32/examples/mPython/30-1-物联网-简单数据按需上报.mix diff --git a/boards/default/micropython_esp32/examples/DtJ9jw-02HkG/yVIkKEuzw0zo.mix b/boards/default/micropython_esp32/examples/mPython/30-2-物联网-高级数据按需上报.mix similarity index 100% rename from boards/default/micropython_esp32/examples/DtJ9jw-02HkG/yVIkKEuzw0zo.mix rename to boards/default/micropython_esp32/examples/mPython/30-2-物联网-高级数据按需上报.mix diff --git a/boards/default/micropython_esp32/examples/DtJ9jw-02HkG/_aeVrRDacbKB.mix b/boards/default/micropython_esp32/examples/mPython/31-1-物联网-单主题数据订阅.mix similarity index 100% rename from boards/default/micropython_esp32/examples/DtJ9jw-02HkG/_aeVrRDacbKB.mix rename to boards/default/micropython_esp32/examples/mPython/31-1-物联网-单主题数据订阅.mix diff --git a/boards/default/micropython_esp32/examples/DtJ9jw-02HkG/5YaF6Rnvr6iM.mix b/boards/default/micropython_esp32/examples/mPython/31-1-物联网-单主题数据订阅2.mix similarity index 100% rename from boards/default/micropython_esp32/examples/DtJ9jw-02HkG/5YaF6Rnvr6iM.mix rename to boards/default/micropython_esp32/examples/mPython/31-1-物联网-单主题数据订阅2.mix diff --git a/boards/default/micropython_esp32/examples/DtJ9jw-02HkG/oVnPIRh-zKTP.mix b/boards/default/micropython_esp32/examples/mPython/32-1-物联网-多主题数据订.mix similarity index 100% rename from boards/default/micropython_esp32/examples/DtJ9jw-02HkG/oVnPIRh-zKTP.mix rename to boards/default/micropython_esp32/examples/mPython/32-1-物联网-多主题数据订.mix diff --git a/boards/default/micropython_esp32/examples/DtJ9jw-02HkG/-WR7iUjoRmKt.mix b/boards/default/micropython_esp32/examples/mPython/32-2-物联网-多主题数据订2.mix similarity index 100% rename from boards/default/micropython_esp32/examples/DtJ9jw-02HkG/-WR7iUjoRmKt.mix rename to boards/default/micropython_esp32/examples/mPython/32-2-物联网-多主题数据订2.mix diff --git a/boards/default/micropython_esp32/examples/DtJ9jw-02HkG/mEC4ucRTGKrE.mix b/boards/default/micropython_esp32/examples/mPython/37-1-文件操作-列出文件.mix similarity index 100% rename from boards/default/micropython_esp32/examples/DtJ9jw-02HkG/mEC4ucRTGKrE.mix rename to boards/default/micropython_esp32/examples/mPython/37-1-文件操作-列出文件.mix diff --git a/boards/default/micropython_esp32/examples/DtJ9jw-02HkG/WCVai2YgPKHN.mix b/boards/default/micropython_esp32/examples/mPython/37-2-文件操作-列出文件2.mix similarity index 100% rename from boards/default/micropython_esp32/examples/DtJ9jw-02HkG/WCVai2YgPKHN.mix rename to boards/default/micropython_esp32/examples/mPython/37-2-文件操作-列出文件2.mix diff --git a/boards/default/micropython_esp32/examples/DtJ9jw-02HkG/mkmkJDHKJEUh.mix b/boards/default/micropython_esp32/examples/mPython/38-1-文件操作-文件读写.mix similarity index 100% rename from boards/default/micropython_esp32/examples/DtJ9jw-02HkG/mkmkJDHKJEUh.mix rename to boards/default/micropython_esp32/examples/mPython/38-1-文件操作-文件读写.mix diff --git a/boards/default/micropython_esp32/examples/DtJ9jw-02HkG/0x6k54txJFtt.mix b/boards/default/micropython_esp32/examples/mPython/38-2-文件操作-文件读写2.mix similarity index 100% rename from boards/default/micropython_esp32/examples/DtJ9jw-02HkG/0x6k54txJFtt.mix rename to boards/default/micropython_esp32/examples/mPython/38-2-文件操作-文件读写2.mix diff --git a/boards/default/micropython_esp32/examples/map.json b/boards/default/micropython_esp32/examples/map.json index 5d04d99f..f10b02e9 100644 --- a/boards/default/micropython_esp32/examples/map.json +++ b/boards/default/micropython_esp32/examples/map.json @@ -1,322 +1,322 @@ { - "DtJ9jw-02HkG": { - "OFg1LozijgOw.mix": { + "MixGo": { + "1-1 滚动显示mixly.mix": { "__file__": true, - "__name__": "-AX7hKF8DSLN.mix" + "__name__": "1-1 滚动显示mixly.mix" }, - "y2dSViFZxdCo.mix": { + "1-2 滚动显示两句话.mix": { "__file__": true, - "__name__": "0UnK-Gp-rno8.mix" + "__name__": "1-2 滚动显示两句话.mix" }, - "IMh2-ewY4Rim.mix": { + "10-传按键数据上云端.mix": { "__file__": true, - "__name__": "0UszubiEaz2G.mix" + "__name__": "10-传按键数据上云端.mix" }, - "_aeVrRDacbKB.mix": { + "11-1 云端控制LED灯.mix": { "__file__": true, - "__name__": "1lZwMf2tbecO.mix" + "__name__": "11-1 云端控制LED灯.mix" }, - "A-TXf_zDUSiZ.mix": { + "11-2 云端控制rgb灯.mix": { "__file__": true, - "__name__": "23Z9YAF7CVuW.mix" + "__name__": "11-2 云端控制rgb灯.mix" }, - "LdoXr18AuGbD.mix": { + "12-1 应用开关控制LED灯.mix": { "__file__": true, - "__name__": "2BtBOHDH8Grv.mix" + "__name__": "12-1 应用开关控制LED灯.mix" }, - "0umoMDyQSLzs.mix": { + "12-2 应用旋钮控制LED灯.mix": { "__file__": true, - "__name__": "2ctrxf7WnglY.mix" + "__name__": "12-2 应用旋钮控制LED灯.mix" }, - "Z_HHY8dUmDe0.mix": { + "12-3 应用点亮显示屏.mix": { "__file__": true, - "__name__": "4FrRgiPV_lsB.mix" + "__name__": "12-3 应用点亮显示屏.mix" }, - "SMg_ZAqcFE2r.mix": { + "2-1 心情晴雨表-按下.mix": { "__file__": true, - "__name__": "4OwDXtC3vzJB.mix" + "__name__": "2-1 心情晴雨表-按下.mix" }, - "Xhw9rV63JON5.mix": { + "2-1 心情晴雨表-按着.mix": { "__file__": true, - "__name__": "5uqq1DmoeqbX.mix" + "__name__": "2-1 心情晴雨表-按着.mix" }, - "jaAs1HfbFPEP.mix": { + "2-2 心情晴雨表-联合图形.mix": { "__file__": true, - "__name__": "7QSFUVE6l3-j.mix" + "__name__": "2-2 心情晴雨表-联合图形.mix" }, - "yVIkKEuzw0zo.mix": { + "3-1 抢答器.mix": { "__file__": true, - "__name__": "BDWEgTmhlzlQ.mix" + "__name__": "3-1 抢答器.mix" }, - "zDjB6GPwPAX2.mix": { + "3-2 倒计时抢答器.mix": { "__file__": true, - "__name__": "BIOtOeysRHjR.mix" + "__name__": "3-2 倒计时抢答器.mix" }, - "NxNhAYovYtYm.mix": { + "4-1可调报警器.mix": { "__file__": true, - "__name__": "Cc0eI4rzD1iT.mix" + "__name__": "4-1可调报警器.mix" }, - "k9ZAGuBM1NAj.mix": { + "4-2音乐门铃.mix": { "__file__": true, - "__name__": "CsvgKjUquPTg.mix" + "__name__": "4-2音乐门铃.mix" }, - "QqcCODHkXGkv.mix": { + "5-1创建基准音.mix": { "__file__": true, - "__name__": "DEFIeOmNMwgV.mix" + "__name__": "5-1创建基准音.mix" }, - "nQqzMjFYynUr.mix": { + "5-2录音电子琴.mix": { "__file__": true, - "__name__": "dgafyEdhehIK.mix" + "__name__": "5-2录音电子琴.mix" }, - "WCVai2YgPKHN.mix": { + "6-1闹钟.mix": { "__file__": true, - "__name__": "dgtNaFa9RjQ6.mix" + "__name__": "6-1闹钟.mix" }, - "S_haB0shc0Hx.mix": { + "6-2实时时钟.mix": { "__file__": true, - "__name__": "DH6lTEEfckiH.mix" + "__name__": "6-2实时时钟.mix" }, - "CsnJ8a3jo_pf.mix": { + "7-1光电密码锁.mix": { "__file__": true, - "__name__": "DMIexH9w8HqY.mix" + "__name__": "7-1光电密码锁.mix" }, - "PQt-yoSt1qng.mix": { + "7-2密码锁.mix": { "__file__": true, - "__name__": "DQalaVmCkrBY.mix" + "__name__": "7-2密码锁.mix" }, - "taq2d8-19NJk.mix": { + "7-3密码锁-可修改密码.mix": { "__file__": true, - "__name__": "gsehvW0vww5Y.mix" + "__name__": "7-3密码锁-可修改密码.mix" }, - "ocJfrxAitI1E.mix": { + "8-1磁场魔术.mix": { "__file__": true, - "__name__": "h37GUBbQXB4M.mix" + "__name__": "8-1磁场魔术.mix" }, - "8zPdM3BDzm8N.mix": { + "8-2扫雷法宝.mix": { "__file__": true, - "__name__": "IaHUMC6K6Uo-.mix" + "__name__": "8-2扫雷法宝.mix" }, - "Hx2fRKp_13Rt.mix": { + "9-1平衡仪.mix": { "__file__": true, - "__name__": "l2uAcBMlpqDR.mix" + "__name__": "9-1平衡仪.mix" }, - "Jy7MItUwIIcs.mix": { + "9-2平衡仪升级版.mix": { "__file__": true, - "__name__": "MZCkxAn4we9j.mix" + "__name__": "9-2平衡仪升级版.mix" }, - "3QCig7DAW6d4.mix": { + "9-3平衡仪小小精灵快快跑.mix": { "__file__": true, - "__name__": "NWRa-9QTvaoA.mix" + "__name__": "9-3平衡仪小小精灵快快跑.mix" }, - "SGmRr2iuZtuM.mix": { + "9-4平衡仪左右前后移动.mix": { "__file__": true, - "__name__": "Q2w2uvwl5RSP.mix" - }, - "5YaF6Rnvr6iM.mix": { - "__file__": true, - "__name__": "QCGzzxkhvxH4.mix" - }, - "3NEADxsqL1gu.mix": { - "__file__": true, - "__name__": "qvZNazZsadmC.mix" - }, - "mkmkJDHKJEUh.mix": { - "__file__": true, - "__name__": "Tg66OjoztBvK.mix" - }, - "MWTyiOQWJdRA.mix": { - "__file__": true, - "__name__": "tpQ8Uc3MZ1na.mix" - }, - "YbAlfdKlOZWr.mix": { - "__file__": true, - "__name__": "TQp_a7HByRUw.mix" - }, - "PDLurxyyxP81.mix": { - "__file__": true, - "__name__": "TW-6O74wY6Vu.mix" - }, - "fzk1qMPBqOs2.mix": { - "__file__": true, - "__name__": "UbtqMyK6jYhR.mix" - }, - "9m6-cBGvKNYm.mix": { - "__file__": true, - "__name__": "uEasCmYAqah6.mix" - }, - "FjcMOWEw9duZ.mix": { - "__file__": true, - "__name__": "UJ_YfbjxtupX.mix" - }, - "3vSkffMeo6tG.mix": { - "__file__": true, - "__name__": "umepX4hkoM9B.mix" - }, - "XmylWMPztgAD.mix": { - "__file__": true, - "__name__": "VbCDa8_IOAez.mix" - }, - "nlTwFKJsdQCw.mix": { - "__file__": true, - "__name__": "vnZ2a6BezwqS.mix" - }, - "eNXOx6LV6fmR.mix": { - "__file__": true, - "__name__": "wzNRIwLZYGit.mix" - }, - "oVnPIRh-zKTP.mix": { - "__file__": true, - "__name__": "Xcg-1f-Dkxvo.mix" - }, - "d3-AjvdcWjWL.mix": { - "__file__": true, - "__name__": "XNave2M4AAGG.mix" - }, - "7ysNkmQQL8Mq.mix": { - "__file__": true, - "__name__": "XTccyXNMbgP9.mix" - }, - "yo8mmzPv9X9T.mix": { - "__file__": true, - "__name__": "Y4v_nxkvu0o-.mix" - }, - "mEC4ucRTGKrE.mix": { - "__file__": true, - "__name__": "ZhuB8n6WcxJ6.mix" - }, - "-WR7iUjoRmKt.mix": { - "__file__": true, - "__name__": "zIDD-TYyfD_m.mix" - }, - "13yJZe8ZqH9h.mix": { - "__file__": true, - "__name__": "Zuh3FbukM_E6.mix" - }, - "0x6k54txJFtt.mix": { - "__file__": true, - "__name__": "_mvNnC-fllTh.mix" - }, - "B8MmHV9HRiqP.mix": { - "__file__": true, - "__name__": "_vqVFXlinAdE.mix" + "__name__": "9-4平衡仪左右前后移动.mix" }, "__file__": false, - "__name__": "9CCW7blVkDO-" + "__name__": "MixGo" }, - "JNIUPdLpnuXM": { - "fLqRgpSftdty.mix": { + "mPython": { + "01-1-快速入门-你好世界.mix": { "__file__": true, - "__name__": "-KdWolIQDtmv.mix" + "__name__": "01-1-快速入门-你好世界.mix" }, - "wg0zdldUHcVJ.mix": { + "01-2-快速入门-你好世界2.mix": { "__file__": true, - "__name__": "-pr5v3ff253p.mix" + "__name__": "01-2-快速入门-你好世界2.mix" }, - "X6uBmAn9JDGr.mix": { + "02-1-快速入门-跳动的心.mix": { "__file__": true, - "__name__": "2E_YWwimrRtg.mix" + "__name__": "02-1-快速入门-跳动的心.mix" }, - "qCV4FEc5Gj8X.mix": { + "02-2-快速入门-为你心动.mix": { "__file__": true, - "__name__": "3eJu5elCT3qN.mix" + "__name__": "02-2-快速入门-为你心动.mix" }, - "6BJDpazzwqNO.mix": { + "03-1-快速入门-心随我动.mix": { "__file__": true, - "__name__": "3HFR2wLexE8o.mix" + "__name__": "03-1-快速入门-心随我动.mix" }, - "tGAyzCJzPMze.mix": { + "03-2-快速入门-心随我动2.mix": { "__file__": true, - "__name__": "3vFWYZte86cV.mix" + "__name__": "03-2-快速入门-心随我动2.mix" }, - "YPepX4uni8YX.mix": { + "04-1-快速入门-流动的灯.mix": { "__file__": true, - "__name__": "4b7Ci-k6oSLB.mix" + "__name__": "04-1-快速入门-流动的灯.mix" }, - "_WiZHtar-e1y.mix": { + "04-2-快速入门-流动的灯2.mix": { "__file__": true, - "__name__": "aSrAS5YGm3Sf.mix" + "__name__": "04-2-快速入门-流动的灯2.mix" }, - "2FNITzim5eaA.mix": { + "05-1-过程控制-双键开关.mix": { "__file__": true, - "__name__": "Bfbz6x3UkJU1.mix" + "__name__": "05-1-过程控制-双键开关.mix" }, - "1QFkQEJ2g0Tp.mix": { + "05-2-过程控制-单键开关.mix": { "__file__": true, - "__name__": "ByaOZ5yAj52j.mix" + "__name__": "05-2-过程控制-单键开关.mix" }, - "o93HoDYuXduw.mix": { + "05-3-过程控制-IPO概念.mix": { "__file__": true, - "__name__": "DVRUNpM1gkJk.mix" + "__name__": "05-3-过程控制-IPO概念.mix" }, - "BTxSR-fso3e7.mix": { + "06-1-过程控制-声音采集.mix": { "__file__": true, - "__name__": "gcoAO9FGxiTT.mix" + "__name__": "06-1-过程控制-声音采集.mix" }, - "D-FhDFfzJgv9.mix": { + "06-2-过程控制-看见声音.mix": { "__file__": true, - "__name__": "GDXEygfxIUIY.mix" + "__name__": "06-2-过程控制-看见声音.mix" }, - "Zyxyd5BYuoiK.mix": { + "07-1-过程控制-光强采集.mix": { "__file__": true, - "__name__": "Gu2q41HNsHJL.mix" + "__name__": "07-1-过程控制-光强采集.mix" }, - "-SI1g_44ZFdF.mix": { + "07-2-过程控制-自动补光.mix": { "__file__": true, - "__name__": "Im7NOKDYH8hq.mix" + "__name__": "07-2-过程控制-自动补光.mix" }, - "TUMtfrAeb-BF.mix": { + "08-1-过程控制-接近检测.mix": { "__file__": true, - "__name__": "k5Zi1MddfnY1.mix" + "__name__": "08-1-过程控制-接近检测.mix" }, - "qWjV-Mt5-GZK.mix": { + "08-2-过程控制-入侵报警.mix": { "__file__": true, - "__name__": "kQQjEJ_5VK6q.mix" + "__name__": "08-2-过程控制-入侵报警.mix" }, - "SjT_JAdEFmUi.mix": { + "09-1-输入输出-加速度.mix": { "__file__": true, - "__name__": "ohjfFXhjahmx.mix" + "__name__": "09-1-输入输出-加速度.mix" }, - "CB-HIDWuNuR7.mix": { + "09-2-输入输出-平衡仪.mix": { "__file__": true, - "__name__": "pTnkvYsWSjST.mix" + "__name__": "09-2-输入输出-平衡仪.mix" }, - "4TjvpntWQwB3.mix": { + "10-1-输入输出-地磁强度.mix": { "__file__": true, - "__name__": "pzRCqxBMXVfh.mix" + "__name__": "10-1-输入输出-地磁强度.mix" }, - "3yAfwPbSUtGJ.mix": { + "10-2-输入输出-金属探测.mix": { "__file__": true, - "__name__": "tWg31vzpDuAb.mix" + "__name__": "10-2-输入输出-金属探测.mix" }, - "TiCLlByCsrL1.mix": { + "12-1-输入输出-实时时钟.mix": { "__file__": true, - "__name__": "Tyjy0z2bgNTL.mix" + "__name__": "12-1-输入输出-实时时钟.mix" }, - "8nqu1AR3Ajx4.mix": { + "12-2-输入输出-实时时钟2.mix": { "__file__": true, - "__name__": "uzCd8LGGvolM.mix" + "__name__": "12-2-输入输出-实时时钟2.mix" }, - "oG7iPp6wgg_v.mix": { + "13-1-逻辑计算-手速测试.mix": { "__file__": true, - "__name__": "VS85SmNIlVbT.mix" + "__name__": "13-1-逻辑计算-手速测试.mix" }, - "1YnKwJdM1DX-.mix": { + "14-1-逻辑计算-反应测试.mix": { "__file__": true, - "__name__": "WZpg0ohyl-4j.mix" + "__name__": "14-1-逻辑计算-反应测试.mix" }, - "pAul6pcS_juR.mix": { + "14-2-逻辑计算-反应测试2.mix": { "__file__": true, - "__name__": "Y3v6Ue2yHXmA.mix" + "__name__": "14-2-逻辑计算-反应测试2.mix" }, - "BOC_ZyhdkZk0.mix": { + "17-0-复杂控制-非中断效果.mix": { "__file__": true, - "__name__": "zfYb-DOHxFVI.mix" + "__name__": "17-0-复杂控制-非中断效果.mix" }, - "ANsv6_57IJV8.mix": { + "17-2-复杂控制-单键中断.mix": { "__file__": true, - "__name__": "zh8zmC_hvbUQ.mix" + "__name__": "17-2-复杂控制-单键中断.mix" + }, + "18-1-复杂控制-定时计时.mix": { + "__file__": true, + "__name__": "18-1-复杂控制-定时计时.mix" + }, + "18-2-复杂控制-循环计时.mix": { + "__file__": true, + "__name__": "18-2-复杂控制-循环计时.mix" + }, + "19-1-复杂控制-多线程.mix": { + "__file__": true, + "__name__": "19-1-复杂控制-多线程.mix" + }, + "19-2-复杂控制-多线程与中断.mix": { + "__file__": true, + "__name__": "19-2-复杂控制-多线程与中断.mix" + }, + "20-1-复杂控制-异常.mix": { + "__file__": true, + "__name__": "20-1-复杂控制-异常.mix" + }, + "20-2-复杂控制-异常处理.mix": { + "__file__": true, + "__name__": "20-2-复杂控制-异常处理.mix" + }, + "23-1-蓝牙通讯-主机模式.mix": { + "__file__": true, + "__name__": "23-1-蓝牙通讯-主机模式.mix" + }, + "23-1-蓝牙通讯-从机模式.mix": { + "__file__": true, + "__name__": "23-1-蓝牙通讯-从机模式.mix" + }, + "24-1-无线广播-通讯测试.mix": { + "__file__": true, + "__name__": "24-1-无线广播-通讯测试.mix" + }, + "24-2-无线广播-防丢检测.mix": { + "__file__": true, + "__name__": "24-2-无线广播-防丢检测.mix" + }, + "29-1-物联网-简单数据定时上报.mix": { + "__file__": true, + "__name__": "29-1-物联网-简单数据定时上报.mix" + }, + "29-2-物联网-复杂数据定时上报.mix": { + "__file__": true, + "__name__": "29-2-物联网-复杂数据定时上报.mix" + }, + "30-1-物联网-简单数据按需上报.mix": { + "__file__": true, + "__name__": "30-1-物联网-简单数据按需上报.mix" + }, + "30-2-物联网-高级数据按需上报.mix": { + "__file__": true, + "__name__": "30-2-物联网-高级数据按需上报.mix" + }, + "31-1-物联网-单主题数据订阅.mix": { + "__file__": true, + "__name__": "31-1-物联网-单主题数据订阅.mix" + }, + "31-1-物联网-单主题数据订阅2.mix": { + "__file__": true, + "__name__": "31-1-物联网-单主题数据订阅2.mix" + }, + "32-1-物联网-多主题数据订.mix": { + "__file__": true, + "__name__": "32-1-物联网-多主题数据订.mix" + }, + "32-2-物联网-多主题数据订2.mix": { + "__file__": true, + "__name__": "32-2-物联网-多主题数据订2.mix" + }, + "37-1-文件操作-列出文件.mix": { + "__file__": true, + "__name__": "37-1-文件操作-列出文件.mix" + }, + "37-2-文件操作-列出文件2.mix": { + "__file__": true, + "__name__": "37-2-文件操作-列出文件2.mix" + }, + "38-1-文件操作-文件读写.mix": { + "__file__": true, + "__name__": "38-1-文件操作-文件读写.mix" + }, + "38-2-文件操作-文件读写2.mix": { + "__file__": true, + "__name__": "38-2-文件操作-文件读写2.mix" }, "__file__": false, - "__name__": "GDDbQRONNwNc" + "__name__": "mPython" } } diff --git a/boards/default/micropython_esp32/index.xml b/boards/default/micropython_esp32/index.xml index e4ff7c62..ecee6380 100644 --- a/boards/default/micropython_esp32/index.xml +++ b/boards/default/micropython_esp32/index.xml @@ -1 +1 @@ -02000attachInterrupt_funcattachInterrupt_func010,1,2,3051iDIVIDE10Exception as eetestThreadtestThreadWHILETRUEHello Mixly from Thread!ms10timtim1000tim_callbacktim_callback5000200090x151100a10.998124.829971100101010001100501100110000x2x0,1,2,30,1,2,30,1,2,3xMixlyHelloMixly65axMixlyMixly0Mixly02MixlyMixlyHello,mixlyl--mylistHello,mixlymixlymixpyI love mixly!I love mixlyRandom No. is {}int1100input('1+2*3')mylist1,2,3,4,5mylist0mylist02mylistmylistmylist0mylist00mylist00mylist0mylist0mylist0mylistmylistmylistx0,1,2,30,1,2,3mytup1,2,3,4,5mytup0mytup02mytupmytupmytupmytup0mytupmytup1mytup2xmydictmydictkeymydictkey0mydictkey0mydictkeymydictkeymydictkey0mydictmydictmydictmydictxmydict{"name":"Mixly","color":"green"}s11,2,3,4,5s1s1s1s2s1s2s10s1Mixlys1s2xMixlyMixlyMixly,HelloMixlyprompt02MixlyMixly0XFF00FFcodebMixlyMixly1attachInterrupt_funcattachInterrupt_funcp20189141420452023,1,1,12,0,0180291001004404401000004120000000000010001000100Mixly0MixlyMixly500MixlyMixly500>10.5001MixlyMixly0010MixlyMixly0550MixlyMixly550000200050502020201510000i2c_extend2122400000pei2c_extendpepe100pepe100pepe100pewifinamewifipassword8080AUTH TOKEN0_value02000notify0Your Target Emailsubjectbodycolor#FF0000wifinamewifipasswordmixio.mixly.cnmixio.mixly.cnA1B2C3mixio.mixly.cnusernamepasswordMyProjecttopicmsgtopicmethodmethodEQmsg1content"long""lat""message"012content"key1""key2""key3"012http://mixio.mixly.org/time.phpmixio.mixly.cnwifinamewifipasswordcsub_cb31444082183.230.40.3914109261n63JySRowo13ZLDBKw6y896E0=MixlyRobotsub_cbEQmsg1ciot_dict"tc"tc0ciot_dictccwifinamewifipasswordSGJl0ExVN-4j27msR北京SGJl0ExVN-4j27msR北京1SGJl0ExVN-4j27msR北京24ble_cble_pMixlyble_cble_cMixlyble_cble_xble_xble_xMixlyble_xble_methodble_methodEQdataMixlyhandlehandle_methodhandle_methodkey1key2key3keyx02000001000009000,4500,563,5630x1234callbackcmdaddrrawpulsesi2c2221100000i2c00i2c00i2ci2ci2cspi200000045spi200000buf50spi10spi100xffspibufspibuf0xffspi12345spi12345buf1Mixlyow12owowow12345ow12345owmy_now0my_nowmy_nowmy_nowFFFFFFFFFFFFmixlymy_nowmy_nowcbcbEQmsg1spi10000004512spi8my_lora433.925716my_loramy_loramy_loraMixlyi2c_extend45100000xsensori2c_extendxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorspi10000004512spi8ysensorysensor0ysensor0ysensor0Mixlyysensor0Mixlyysensorysensorysensor39,119.96,31.67ysensorysensorstation45ps2_handle24512ps2_handle50ps2_handleps2_handlews_wr457ws_wrws_wrws_wr360002zsensorzsensorzsensorzsensormidi0midi440midi4401000midimidimidi4120midimidirgb04rgb0000rgb000rgb100100i2c_extend45400000Motori2c_extendMotor100Motor1024102402ttsttsttsttstts你好米思齐i2c_extend45400000matrixi2c_extendmatrixmatrixmatrixMixly0matrixMixlymatrixMixly500matrixMixlymatrixMixly500matrixmatrix>matrixmatrix1matrixmatrixmatrix0.5matrixmatrixi2c_extend45100000dispi2c_extenddisp2333dispdisp1i2c_extend45100000lcdi2c_extend0x27lcdMixly00lcdMixly005lcdlcdi2c_extend45100000oledi2c_extend0x3coledoled001oledMixlyoledMixly0010oledMixlyoledMixly0550oledMixlyoledMixly5500oled0020oled005050oled20202015oled1oled00oled00oledspi1000000450spi78tft_st7789135240tft_st7789001#ffffff255,255,0tft_st7789Mixly0050#ffffff255,255,0tft_st7789Mixly0550#ffffff255,255,0tft_st7789Mixly5500#ffffff255,255,0tft_st7789004040#ffffff255,255,0tft_st778912ai_sensorai_sensor98ai_sensor255,255,00,0,255ai_sensor'ni-hao','hong-se','lv-se','lan-se','bai-se','hei-se'0.1ai_sensor1.wav5ai_sensor1.wav100ai_sensorinfoai_sensorqrcodeinfoai_sensorbarcodeinfoai_sensortaginfoai_sensor25002525lineinfoai_sensor35002100circleinfoai_sensor10000rectinfoai_sensorinfoinfoai_sensorcolor_lab101colorsai_sensor'猫','狗','笔记本','笔'mixgo5自模型训练infoai_sensor'猫','狗','笔记本','笔'mixgo自模型识别objectsinfoai_sensor0.1606, 0.3562, 0.4712, 0.9568, 0.9877, 1.9108, 1.8761, 3.5310, 3.4423, 5.6823/sd/masks.kmodel外部模型加载objects12ai_sensorai_sensor98ai_sensor255,255,00,0,255ai_sensor1.wav5ai_sensor1.wav100infoai_sensorlicensePlateinfoai_sensorfaceinfoai_sensor20objectsai_sensorinfoai_sensorqrcodeinfoai_sensorbarcodeinfoai_sensortaginfoai_sensor25002525lineinfoai_sensor35002100circleinfoai_sensor10000rectinfoai_sensorinfoinfoai_sensorcolor_lab101colorsfilename.txtfMixlyfff0fffpathpathfilename.txtsrcname.txtdstname.txtpathff0wifinamewifipasswordwlanwlanwlanwlanwlan127.16.0.801234567wlanwlanwlanwlanwlan127.16.0.81connect_wifiwlanAPwlanTruewlanwlanSmallCabbage1WHILETRUEEQ0wlan0.0.0.0ms1000TRUEss0.0.0.080s192.168.0.180s5ss1024sbMixlyresponses1024sbMixlyresponse127.0.0.180sntp.aliyun.com \ No newline at end of file +02000attachInterrupt_funcattachInterrupt_func010,1,2,3051iDIVIDE10Exception as eetestThreadtestThreadWHILETRUEHello Mixly from Thread!ms10timtim1000tim_callbacktim_callback5000200090x151100a10.998124.829971100101010001100501100110000x2x0,1,2,30,1,2,30,1,2,3xMixlyHelloMixly65axMixlyMixly0Mixly02MixlyMixlyHello,mixlyl--mylistHello,mixlymixlymixpyI love mixly!I love mixlyRandom No. is {}int1100input('1+2*3')mylist1,2,3,4,5mylist0mylist02mylistmylistmylist0mylist00mylist00mylist0mylist0mylist0mylistmylistmylistx0,1,2,30,1,2,3mytup1,2,3,4,5mytup0mytup02mytupmytupmytupmytup0mytupmytup1mytup2xmydictmydictkeymydictkey0mydictkey0mydictkeymydictkeymydictkey0mydictmydictmydictmydictxmydict{"name":"Mixly","color":"green"}s11,2,3,4,5s1s1s1s2s1s2s10s1Mixlys1s2xMixlyMixlyMixly,HelloMixlyprompt02MixlyMixly0XFF00FFcodebMixlyMixly1attachInterrupt_funcattachInterrupt_funcp20189141420452023,1,1,12,0,0180291001004404401000004120000000000010001000100Mixly0MixlyMixly500MixlyMixly500>10.5001MixlyMixly0010MixlyMixly0550MixlyMixly550000200050502020201510000i2c_extend2122400000pei2c_extendpepe100pepe100pepe100pewifinamewifipassword8080AUTH TOKEN0_value02000notify0Your Target Emailsubjectbodycolor#FF0000wifinamewifipasswordmixio.mixly.cnmixio.mixly.cnA1B2C3mixio.mixly.cnusernamepasswordMyProjecttopicmsgtopicmethodmethodEQmsg1content"long""lat""message"012content"key1""key2""key3"012http://mixio.mixly.org/time.phpmixio.mixly.cnwifinamewifipasswordcsub_cb31444082183.230.40.3914109261n63JySRowo13ZLDBKw6y896E0=MixlyRobotsub_cbEQmsg1ciot_dict"tc"tc0ciot_dictccwifinamewifipasswordSGJl0ExVN-4j27msR北京SGJl0ExVN-4j27msR北京1SGJl0ExVN-4j27msR北京24ble_cble_pMixlyble_cble_cMixlyble_cble_xble_xble_xMixlyble_xble_methodble_methodEQdataMixlyhandlehandle_methodhandle_methodkey1key2key3keyx02000001000009000,4500,563,5630x1234callbackcmdaddrrawpulsesi2c2221100000i2c00i2c00i2ci2ci2cspi200000045spi200000buf50spi10spi100xffspibufspibuf0xffspi12345spi12345buf1Mixlyow12owowow12345ow12345owmy_now0my_nowmy_nowmy_nowFFFFFFFFFFFFmixlymy_nowmy_nowcbcbEQmsg1spi10000004512spi8my_lora433.925716my_loramy_loramy_loraMixlyi2c_extend45100000xsensori2c_extendxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorspi10000004512spi8ysensorysensor0ysensor0ysensor0Mixlyysensor0Mixlyysensorysensorysensor39,119.96,31.67ysensorysensorstation45ps2_handle24512ps2_handle50ps2_handleps2_handlews_wr457ws_wrws_wrws_wr360002zsensorzsensorzsensorzsensormidi0midi440midi4401000midimidimidi4120midimidirgb04rgb0000rgb000rgb100100i2c_extend45400000Motori2c_extendMotor100Motor1024102402ttsttsttsttstts你好米思齐i2c_extend45400000matrixi2c_extendmatrixmatrixmatrixMixly0matrixMixlymatrixMixly500matrixMixlymatrixMixly500matrixmatrix>matrixmatrix1matrixmatrixmatrix0.5matrixmatrixi2c_extend45100000dispi2c_extenddisp2333dispdisp1i2c_extend45100000lcdi2c_extend0x27lcdMixly00lcdMixly005lcdlcdi2c_extend45100000oledi2c_extend0x3coledoled001oledMixlyoledMixly0010oledMixlyoledMixly0550oledMixlyoledMixly5500oled0020oled005050oled20202015oled1oled00oled00oledspi1000000450spi78tft_st7789135240tft_st7789001#ffffff255,255,0tft_st7789Mixly0050#ffffff255,255,0tft_st7789Mixly0550#ffffff255,255,0tft_st7789Mixly5500#ffffff255,255,0tft_st7789004040#ffffff255,255,0tft_st778912ai_sensorai_sensor98ai_sensor255,255,00,0,255ai_sensor'ni-hao','hong-se','lv-se','lan-se','bai-se','hei-se'0.1ai_sensor1.wav5ai_sensor1.wav100ai_sensorinfoai_sensorqrcodeinfoai_sensorbarcodeinfoai_sensortaginfoai_sensor25002525lineinfoai_sensor35002100circleinfoai_sensor10000rectinfoai_sensorinfoinfoai_sensorcolor_lab101colorsai_sensor'猫','狗','笔记本','笔'mixgo5自模型训练infoai_sensor'猫','狗','笔记本','笔'mixgo自模型识别objectsinfoai_sensor0.1606, 0.3562, 0.4712, 0.9568, 0.9877, 1.9108, 1.8761, 3.5310, 3.4423, 5.6823/sd/masks.kmodel外部模型加载objects12ai_sensorai_sensor98ai_sensor255,255,00,0,255ai_sensor1.wav5ai_sensor1.wav100infoai_sensorlicensePlateinfoai_sensorfaceinfoai_sensor20objectsai_sensorinfoai_sensorqrcodeinfoai_sensorbarcodeinfoai_sensortaginfoai_sensor25002525lineinfoai_sensor35002100circleinfoai_sensor10000rectinfoai_sensorinfoinfoai_sensorcolor_lab101colorsfilename.txtfMixlyfff0fffpathpathfilename.txtsrcname.txtdstname.txtpathff0wifinamewifipasswordwlanwlanwlanwlanwlan127.16.0.801234567wlanwlanwlanwlanwlan127.16.0.81connect_wifiwlanAPwlanTruewlanwlanSmallCabbage1WHILETRUEEQ0wlan0.0.0.0ms1000TRUEss0.0.0.080s192.168.0.180s5ss1024sbMixlyresponses1024sbMixlyresponse127.0.0.180sntp.aliyun.com \ No newline at end of file diff --git a/boards/default/micropython_esp32/main.bundle.js b/boards/default/micropython_esp32/main.bundle.js index f24f7082..eec7a1b3 100644 --- a/boards/default/micropython_esp32/main.bundle.js +++ b/boards/default/micropython_esp32/main.bundle.js @@ -18,4 +18,4 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -class R_{constructor(_,t){if(this.variablePrefix_=t||"",this.reservedDict_=Object.create(null),_)for(var e=_.split(","),i=0;i0;T--)t.getInputTargetBlock("IF"+T)&&t.getInputTargetBlock("IF"+T).previousConnection?e[T]=t.getInputTargetBlock("IF"+T).previousConnection:e[T]=null,this.removeInput("IF"+T),t.getInputTargetBlock("DO"+T)&&t.getInputTargetBlock("DO"+T).previousConnection?i[T]=t.getInputTargetBlock("DO"+T).previousConnection:i[T]=null,this.removeInput("DO"+T);this.elseifCount_=parseInt(_.getAttribute("elseif"),10),this.elseCount_=parseInt(_.getAttribute("else"),10);for(T=1;T<=this.elseifCount_;T++)this.appendValueInput("IF"+T).setCheck([Boolean,Number]).appendField(a_.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+T).appendField(a_.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(a_.Msg.CONTROLS_IF_MSG_ELSE);for(T=e.length-2;T>0;T--)e[T]&&e[T].reconnect(this,"IF"+T);for(T=i.length-2;T>0;T--)i[T]&&i[T].reconnect(this,"DO"+T)},decompose:function(_){var t=_.newBlock("controls_if_if");t.initSvg();for(var e=t.getInput("STACK").connection,i=1;i<=this.elseifCount_;i++){var T=_.newBlock("controls_if_elseif");T.initSvg(),e.connect(T.previousConnection),e=T.nextConnection}if(this.elseCount_){var E=_.newBlock("controls_if_else");E.initSvg(),e.connect(E.previousConnection)}return t},compose:function(_){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var t=this.elseifCount_;t>0;t--)this.removeInput("IF"+t),this.removeInput("DO"+t);this.elseifCount_=0;for(var e=_.getInputTargetBlock("STACK"),i=[null],T=[null],E=null;e;){switch(e.type){case"controls_if_elseif":this.elseifCount_++,i.push(e.valueConnection_),T.push(e.statementConnection_);break;case"controls_if_else":this.elseCount_++,E=e.statementConnection_;break;default:throw Error("Unknown block type: "+e.type)}e=e.nextConnection&&e.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(i,T,E)},saveConnections:function(_){for(var t=_.getInputTargetBlock("STACK"),e=1;t;){switch(t.type){case"controls_if_elseif":var i=this.getInput("IF"+e),T=this.getInput("DO"+e);t.valueConnection_=i&&i.connection.targetConnection,t.statementConnection_=T&&T.connection.targetConnection,e++;break;case"controls_if_else":T=this.getInput("ELSE");t.statementConnection_=T&&T.connection.targetConnection;break;default:throw"Unknown block type."}t=t.nextConnection&&t.nextConnection.targetBlock()}},rebuildShape_:function(){var _=[null],t=[null],e=null;this.getInput("ELSE")&&(e=this.getInput("ELSE").connection.targetConnection);for(var i=1;this.getInput("IF"+i);){var T=this.getInput("IF"+i),E=this.getInput("DO"+i);console.log(T.connection.targetConnection),_.push(T.connection.targetConnection),t.push(E.connection.targetConnection),i++}this.updateShape_(),this.reconnectChildBlocks_(_,t,e)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var _=1;this.getInput("IF"+_);)this.removeInput("IF"+_),this.removeInput("DO"+_),_++;for(_=1;_<=this.elseifCount_;_++)this.appendValueInput("IF"+_).setCheck([Number,Boolean]).appendField(a_.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+_).appendField(a_.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(a_.Msg.CONTROLS_IF_MSG_ELSE)},reconnectChildBlocks_:function(_,t,e){for(var i=1;i<=this.elseifCount_;i++)_[i]&&_[i].reconnect(this,"IF"+i),t[i]&&t[i].reconnect(this,"DO"+i);e&&e.reconnect(this,"ELSE")}},Y_={init:function(){this.setColour(u_),this.appendValueInput("FROM").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.PYTHON_RANGE).appendField(a_.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.PYTHON_RANGE_STEP),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(a_.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},U_={init:function(){this.setColour(u_),this.appendValueInput("LIST").setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.CONTROLS_FOREACH_INPUT),this.appendValueInput("VAR").appendField(a_.Msg.CONTROLS_FOREACH_INPUT_ITEM),this.appendStatementInput("DO").appendField(a_.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip((function(){return a_.Msg.CONTROLS_FOR_TOOLTIP.replace("“%1”","")}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(_,t){a_.Names.equals(_,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},B_={init:function(){this.setColour(u_),this.appendValueInput("BOOL").setCheck([Boolean,Number]).appendField(a_.Msg.MIXLY_MICROBIT_JS_CURRENT).appendField(new a_.FieldDropdown(this.OPERATORS),"MODE"),this.appendStatementInput("DO").appendField(a_.Msg.LANG_CONTROLS_WHILEUNTIL_TITLE_REPEAT+a_.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var _=this;this.setTooltip((function(){var t=_.getFieldValue("MODE");return{WHILE:a_.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_WHILE,UNTIL:a_.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL}[t]}))}},g_={init:function(){this.setColour(u_),this.appendDummyInput().appendField(a_.Msg.MIXLY_PYTHON_TRY),this.appendStatementInput("try"),this.appendValueInput("IF1").appendField(a_.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO1").appendField(""),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new a_.icons.MutatorIcon(["controls_except","controls_finally"],this)),this.setTooltip(a_.Msg.MIXLY_MIXPY_CONTROL_TRY_TOOLTIP),this.elseifCount_=1,this.elseCount_=0},mutationToDom:function(){if(!this.elseifCount_&&!this.elseCount_)return null;var _=document.createElement("mutation");return this.elseifCount_&&_.setAttribute("elseif",this.elseifCount_),this.elseCount_&&_.setAttribute("else",1),_},domToMutation:function(_){var t=this,e=[],i=[];this.elseCount_&&this.removeInput("ELSE");for(var T=this.elseifCount_;T>0;T--)t.getInputTargetBlock("IF"+T)&&t.getInputTargetBlock("IF"+T).previousConnection?e[T]=t.getInputTargetBlock("IF"+T).previousConnection:e[T]=null,this.removeInput("IF"+T),t.getInputTargetBlock("DO"+T)&&t.getInputTargetBlock("DO"+T).previousConnection?i[T]=t.getInputTargetBlock("DO"+T).previousConnection:i[T]=null,this.removeInput("DO"+T);this.elseifCount_=parseInt(_.getAttribute("elseif"),10),this.elseCount_=parseInt(_.getAttribute("else"),10);for(T=1;T<=this.elseifCount_;T++)this.appendValueInput("IF"+T).setCheck([Boolean,Number]).appendField(a_.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+T).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(a_.Msg.MIXLY_PYTHON_FINALLY);for(T=e.length-2;T>0;T--)e[T]&&e[T].reconnect(this,"IF"+T);for(T=i.length-2;T>0;T--)i[T]&&i[T].reconnect(this,"DO"+T)},decompose:function(_){var t=_.newBlock("controls_try");t.initSvg();for(var e=t.getInput("STACK").connection,i=1;i<=this.elseifCount_;i++){var T=_.newBlock("controls_except");T.initSvg(),e.connect(T.previousConnection),e=T.nextConnection}if(this.elseCount_){var E=_.newBlock("controls_finally");E.initSvg(),e.connect(E.previousConnection)}return t},compose:function(_){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var t=this.elseifCount_;t>0;t--)this.removeInput("IF"+t),this.removeInput("DO"+t);this.elseifCount_=0;for(var e=_.getInputTargetBlock("STACK"),i=[null],T=[null],E=null;e;){switch(e.type){case"controls_except":this.elseifCount_++,i.push(e.valueConnection_),T.push(e.statementConnection_);break;case"controls_finally":this.elseCount_++,E=e.statementConnection_;break;default:throw Error("Unknown block type: "+e.type)}e=e.nextConnection&&e.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(i,T,E)},saveConnections:function(_){for(var t=_.getInputTargetBlock("STACK"),e=1;t;){switch(t.type){case"controls_except":var i=this.getInput("IF"+e),T=this.getInput("DO"+e);t.valueConnection_=i&&i.connection.targetConnection,t.statementConnection_=T&&T.connection.targetConnection,e++;break;case"controls_finally":T=this.getInput("ELSE");t.statementConnection_=T&&T.connection.targetConnection;break;default:throw"Unknown block type."}t=t.nextConnection&&t.nextConnection.targetBlock()}},rebuildShape_:function(){var _=[null],t=[null],e=null;this.getInput("ELSE")&&(e=this.getInput("ELSE").connection.targetConnection);for(var i=1;this.getInput("IF"+i);){var T=this.getInput("IF"+i),E=this.getInput("DO"+i);console.log(T.connection.targetConnection),_.push(T.connection.targetConnection),t.push(E.connection.targetConnection),i++}this.updateShape_(),this.reconnectChildBlocks_(_,t,e)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var _=1;this.getInput("IF"+_);)this.removeInput("IF"+_),this.removeInput("DO"+_),_++;for(_=1;_<=this.elseifCount_;_++)this.appendValueInput("IF"+_).setCheck([Number,Boolean]).appendField(a_.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+_).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(a_.Msg.MIXLY_PYTHON_FINALLY)},reconnectChildBlocks_:function(_,t,e){for(var i=1;i<=this.elseifCount_;i++)_[i]&&_[i].reconnect(this,"IF"+i),t[i]&&t[i].reconnect(this,"DO"+i);e&&e.reconnect(this,"ELSE")}},G_={init:function(){this.setColour(u_);var _=new a_.FieldDropdown(this.OPERATORS);this.appendDummyInput().appendField(_,"FLOW").appendField(a_.Msg.LANG_CONTROLS_FLOW_STATEMENTS_INPUT_OFLOOP),this.setPreviousStatement(!0),this.setTooltip(a_.Msg.MIXLY_PYTHON_CONTROLS_FLOW_STATEMENTS_TOOLTIP);var t=this;this.setTooltip((function(){var _=t.getFieldValue("FLOW");return{BREAK:a_.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK,CONTINUE:a_.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE}[_]}))},onchange:function(){if(this.workspace){var _=!1,t=this;do{if("controls_repeat"==t.type||"controls_for"==t.type||"controls_forEach"==t.type||"controls_repeat_ext"==t.type||"controls_whileUntil"==t.type||"do_while"==t.type){_=!0;break}t=t.getSurroundParent()}while(t);_?this.setWarningText(null):this.setWarningText(a_.Msg.LANG_CONTROLS_FLOW_STATEMENTS_WARNING)}}},F_={init:function(){this.setColour(u_),this.appendDummyInput().appendField(a_.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new a_.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(a_.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var _=this;this.setTooltip((function(){return a_.Msg.CONTROLS_FOR_TOOLTIP.replace("%1",_.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(_,t){a_.Names.equals(_,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},y_={init:function(){this.setColour(u_),this.appendDummyInput().appendField(a_.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new a_.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(a_.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var _=this;this.setTooltip((function(){return a_.Msg.MIXLY_PYTHON_CONTROLS_FOR_RANGE_TOOLTIP.replace("%1",_.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(_,t){a_.Names.equals(_,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}};B_.OPERATORS=[[a_.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"WHILE"],[a_.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"UNTIL"]],G_.OPERATORS=[[a_.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK,"BREAK"],[a_.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE,"CONTINUE"]];const f_={init:function(){this.setColour(u_),this.appendDummyInput().appendField(a_.Msg.CONTROLS_IF_IF_TITLE_IF),this.appendStatementInput("STACK"),this.setTooltip(a_.Msg.CONTROLS_IF_IF_TOOLTIP),this.contextMenu=!1}},b_={init:function(){this.setColour(u_),this.appendDummyInput().appendField(a_.Msg.CONTROLS_IF_ELSEIF_TITLE_ELSEIF),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(a_.Msg.CONTROLS_IF_ELSEIF_TOOLTIP),this.contextMenu=!1}},x_={init:function(){this.setColour(u_),this.appendDummyInput().appendField(a_.Msg.CONTROLS_IF_ELSE_TITLE_ELSE),this.setPreviousStatement(!0),this.setTooltip(a_.Msg.CONTROLS_IF_ELSE_TOOLTIP),this.contextMenu=!1}},v_={init:function(){this.setColour(u_),this.appendDummyInput().appendField("try"),this.appendStatementInput("STACK"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.contextMenu=!1}},X_={init:function(){this.setColour(u_),this.appendDummyInput().appendField(a_.Msg.MIXLY_PYTHON_EXCEPT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.contextMenu=!1,this.setTooltip(a_.Msg.MIXLY_MIXPY_CONTROL_EXCEPT_TOOLTIP)}},V_={init:function(){this.setColour(u_),this.appendDummyInput().appendField(a_.Msg.MIXLY_PYTHON_FINALLY),this.setPreviousStatement(!0),this.contextMenu=!1,this.setTooltip(a_.Msg.MIXLY_MIXPY_CONTROL_FINALLY_TOOLTIP)}},k_={init:function(){this.jsonInit({message0:a_.Msg.CONTROLS_REPEAT_TITLE,args0:[{type:"input_value",name:"TIMES"}],previousStatement:null,nextStatement:null,colour:u_,tooltip:a_.Msg.CONTROLS_REPEAT_TOOLTIP,helpUrl:a_.Msg.CONTROLS_REPEAT_HELPURL}),this.appendStatementInput("DO")}},w_={init:function(){this.setColour(u_),this.appendValueInput("BOOL").appendField("lambda"),this.appendStatementInput("DO").appendField(a_.Msg.MIXLY_STAT),this.setOutput(!0)}},W_={init:function(){this.setColour(u_),this.appendDummyInput().appendField(a_.Msg.MIXLY_PYTHON_PASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(a_.Msg.MIXLY_PYTHON_CONTROLS_PASS_TOOLTIP)}},K_={init:function(){this.setColour(u_),this.appendDummyInput().appendField(a_.Msg.MIXLY_PYTHON_CONTROLS_THREAD_START),this.appendValueInput("callback").appendField(a_.Msg.MIXLY_PYTHON_CONTROLS_THREAD_USE),this.appendValueInput("VAR").appendField(a_.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_PYTHON_CONTROLS_THREAD_TOOLTIP)}},z_={init:function(){this.appendDummyInput().appendField(a_.Msg.CONTROLS_REPEAT_TITLE_REPEAT+a_.Msg.MIXLY_DO),this.appendStatementInput("input_data").setCheck(null),this.appendValueInput("select_data").setCheck(null).appendField(a_.Msg.CONTROLS_OPERATOR_UNTIL).appendField(new a_.FieldDropdown([[a_.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"true"],[a_.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"false"]]),"type"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(u_),this.setTooltip("do-while loop"),this.setHelpUrl("")}},Z_={init:function(){this.setColour(u_),this.appendDummyInput().appendField(a_.Msg.MIXLY_OP_GARBAGE_COLLECT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Q_={init:function(){this.setColour(u_),this.appendDummyInput().appendField(a_.Msg.MIXLY_GET_MEM_ALLOC),this.setOutput(!0)}},J_={init:function(){this.setColour(u_),this.appendDummyInput().appendField(a_.Msg.MIXLY_GET_MEM_FREE),this.setOutput(!0)}},q_=230;a_.FieldTextInput.math_number_validator=function(_){return String(_)},a_.FieldTextInput.math_number_validator_include_blank=function(_){if(""===_)return"";return/^-?(0X|0x|0O|0o|0B|0b)?[a-fA-F0-9]{1,}(\.[a-fA-F0-9]+)?$/.test(_)?String(_):null};const j_={init:function(){this.setColour(q_),this.appendDummyInput().appendField(new a_.FieldTextInput("0",a_.FieldTextInput.math_number_validator),"NUM"),this.setOutput(!0,Number),this.setTooltip(a_.Msg.MATH_NUMBER_TOOLTIP)}},$_={init:function(){this.setColour(q_);this.appendDummyInput("").appendField(a_.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new a_.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var _=this;this.setTooltip((function(){var t=_.getFieldValue("CONSTANT");return{pi:a_.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_TOOLTIP,e:a_.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_TOOLTIP}[t]}))}},_t={init:function(){this.setColour(q_);this.appendDummyInput("").appendField(a_.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new a_.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var _=this;this.setTooltip((function(){var t=_.getFieldValue("CONSTANT");return{pi:a_.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_MP_TOOLTIP,e:a_.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_MP_TOOLTIP}[t]}))}},tt={init:function(){this.setColour(q_),this.setOutput(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new a_.FieldDropdown([["+","ADD"],["-","MINUS"],["×","MULTIPLY"],["÷","DIVIDE"],["%","QUYU"],["//","ZHENGCHU"],["**","POWER"]]),"OP"),this.setInputsInline(!0);var _=this;this.setTooltip((function(){var t=_.getFieldValue("OP");return{ADD:a_.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:a_.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:a_.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:a_.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:a_.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:a_.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:a_.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[t]}))}},et={init:function(){this.setColour(q_),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new a_.FieldDropdown([["+=","ADD"],["-=","MINUS"],["×=","MULTIPLY"],["÷=","DIVIDE"],["%=","QUYU"],["//=","ZHENGCHU"],["**=","POWER"]]),"OP"),this.setInputsInline(!0);var _=this;this.setTooltip((function(){var t=_.getFieldValue("OP");return{ADD:a_.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:a_.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:a_.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:a_.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:a_.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:a_.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:a_.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[t]}))}},it={init:function(){this.setColour(q_),this.setOutput(!0,Number),this.appendValueInput("A").setCheck(Number),this.appendValueInput("B").setCheck(Number).appendField(new a_.FieldDropdown([["&","&"],["|","|"],[">>",">>"],["<<","<<"]]),"OP"),this.setInputsInline(!0),this.setTooltip("位运算")}},Tt={init:function(){this.setColour(q_),this.setOutput(!0,Number),this.appendValueInput("NUM").setCheck(Number).appendField(new a_.FieldDropdown([["sin","SIN"],["cos","COS"],["tan","TAN"],["asin","ASIN"],["acos","ACOS"],["atan","ATAN"],["-","-"],["ln","LN"],["log10","LOG10"],["e^","EXP"],["10^","POW10"]]),"OP");var _=this;this.setTooltip((function(){var t=_.getFieldValue("OP");return{SIN:a_.Msg.MATH_TRIG_TOOLTIP_SIN,COS:a_.Msg.MATH_TRIG_TOOLTIP_COS,TAN:a_.Msg.MATH_TRIG_TOOLTIP_TAN,ASIN:a_.Msg.MATH_TRIG_TOOLTIP_ASIN,ACOS:a_.Msg.MATH_TRIG_TOOLTIP_ACOS,ATAN:a_.Msg.MATH_TRIG_TOOLTIP_ATAN,LN:a_.Msg.MATH_SINGLE_TOOLTIP_LN}[t]}))}},Et={init:function(){var _=[[a_.Msg.MATH_BIN,"bin"],[a_.Msg.MATH_OCT,"oct"],[a_.Msg.MATH_HEX,"hex"]];this.setColour(q_),this.setOutput(!0,String),this.appendValueInput("NUM").setCheck(Number).appendField(new a_.FieldDropdown(_),"OP");var t=this;this.setTooltip((function(){var _=t.getFieldValue("OP");return{bin:a_.Msg.MATH_DEC_TOOLTIP_BIN,oct:a_.Msg.MATH_DEC_TOOLTIP_OCT,hex:a_.Msg.MATH_DEC_TOOLTIP_HEX}[_]}))}},nt={init:function(){var _=[[a_.Msg.LANG_MATH_TO_ROUND,"round"],[a_.Msg.LANG_MATH_TO_CEIL,"ceil"],[a_.Msg.LANG_MATH_TO_FLOOR,"floor"],[a_.Msg.MATH_ABS,"fabs"],[a_.Msg.MATH_SQRT,"sqrt"]];this.setColour(q_),this.appendValueInput("A").setCheck(Number).appendField(new a_.FieldDropdown(_),"OP"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var _=t.getFieldValue("OP");return{sqrt:a_.Msg.MATH_SINGLE_TOOLTIP_ROOT,fabs:a_.Msg.MATH_SINGLE_TOOLTIP_ABS,sq:a_.Msg.MATH_SINGLE_TOOLTIP_SQ,round:a_.Msg.MATH_SINGLE_TOOLTIP_ROUND,ceil:a_.Msg.MATH_SINGLE_TOOLTIP_CEIL,floor:a_.Msg.MATH_SINGLE_TOOLTIP_FLOOR}[_]}))}},ot={init:function(){var _=[[a_.Msg.MIXLY_MAX,"max"],[a_.Msg.MIXLY_MIN,"min"]];this.setColour(q_),this.appendValueInput("A").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(new a_.FieldDropdown(_),"OP").appendField("("),this.appendValueInput("B").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(","),this.appendDummyInput("").setAlign(a_.inputs.Align.RIGHT).appendField(")"),this.setInputsInline(!0),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var _=t.getFieldValue("OP");return{max:a_.Msg.MIXLY_TOOLTIP_MATH_MAX,min:a_.Msg.MIXLY_TOOLTIP_MATH_MIN}[_]}))}},st={init:function(){var _=[[a_.Msg.MATH_TWO,"two"],[a_.Msg.MATH_EIGHT,"eight"],[a_.Msg.MATH_TEN,"ten"],[a_.Msg.MATH_SIXTEEN,"sixteen"]];this.setColour(q_),this.appendDummyInput("").appendField(a_.Msg.MATH_BA),this.appendValueInput("NUM").appendField(new a_.FieldDropdown(_),"OP").appendField(a_.Msg.MATH_JinZhi).setCheck(Number),this.appendDummyInput("").appendField(a_.Msg.MATH_ZHW).appendField(new a_.FieldDropdown(_),"OP2").appendField(a_.Msg.MATH_JinZhi),this.setFieldValue("ten","OP2"),this.setOutput(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var _=t.getFieldValue("OP"),e={two:a_.Msg.MATH_Before_two,eight:a_.Msg.MATH_Before_eight,ten:a_.Msg.MATH_Before_ten,sixteen:a_.Msg.MATH_Before_sixteen},i=t.getFieldValue("OP2"),T={two:a_.Msg.MATH_Behind_two,eight:a_.Msg.MATH_Behind_eight,ten:a_.Msg.MATH_Behind_ten,sixteen:a_.Msg.MATH_Behind_sixteen};return e[_]+T[i]}))}},Ot={init:function(){var _=[[a_.Msg.LANG_MATH_INT,"int"],[a_.Msg.LANG_MATH_FLOAT,"float"]];this.setColour(q_),this.setOutput(!0,Number),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_RANDOM).appendField(new a_.FieldDropdown(_),"TYPE"),this.appendValueInput("FROM").setCheck(Number).appendField(a_.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.LANG_MATH_RANDOM_INT_INPUT_TO),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var _=t.getFieldValue("TYPE"),e={int:a_.Msg.LANG_MATH_INT,float:a_.Msg.LANG_MATH_FLOAT_RANDOM};return a_.Msg.MATH_RANDOM_INT_TOOLTIP+e[_]}))}},It={init:function(){this.setColour(q_),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number).appendField(a_.Msg.LANG_MATH_CONSTRAIN_INPUT_CONSTRAIN),this.appendValueInput("LOW").setCheck(Number).appendField(a_.Msg.LANG_MATH_CONSTRAIN_INPUT_LOW),this.appendValueInput("HIGH").setCheck(Number).appendField(a_.Msg.LANG_MATH_CONSTRAIN_INPUT_HIGH),this.setInputsInline(!0),this.setTooltip(a_.Msg.MATH_CONSTRAIN_TOOLTIP)}},at={init:function(){this.setColour(q_),this.appendValueInput("NUM",Number).appendField(a_.Msg.MIXLY_MAP).setCheck(Number),this.appendValueInput("fromLow",Number).appendField(a_.Msg.MIXLY_MAP_FROM).setCheck(Number),this.appendValueInput("fromHigh",Number).appendField(",").setCheck(Number),this.appendValueInput("toLow",Number).appendField(a_.Msg.MIXLY_MAP_TO).setCheck(Number),this.appendValueInput("toHigh",Number).appendField(",").setCheck(Number),this.appendDummyInput("").appendField("]"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(a_.Msg.MIXLY_TOOLTIP_MATH_MAP)}},pt={init:function(){this.setColour(q_),this.appendDummyInput().appendField(new a_.FieldTextInput("0",a_.FieldTextInput.math_number_validator_include_blank),"NUM"),this.setOutput(!0),this.setTooltip(a_.Msg.MATH_NUMBER_TOOLTIP)}},Mt={init:function(){this.setColour(q_),this.appendValueInput("NUM").setCheck(Number).appendField(a_.Msg.LANG_MATH_RANDOM_SEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(a_.Msg.MIXLY_TOOLTIP_MATH_RANDOM_SEED)}},Lt={init:function(){this.setColour(q_),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number),this.appendValueInput("VAR").setCheck(Number).appendField(a_.Msg.MATH_ROUND).appendField(a_.Msg.TEXT_KEEP),this.appendDummyInput().appendField(a_.Msg.TEXT_DECIMAL),this.setInputsInline(!0),this.setTooltip(a_.Msg.MATH_ROUND_NEW_TOOLTIP)}},Rt={init:function(){var _=[[a_.Msg.MIXLY_TO_INT,"int"],[a_.Msg.MIXLY_TO_FLOAT,"float"],[a_.Msg.MIXLY_TO_BITES,"b"]];this.setColour(q_),this.appendValueInput("VAR").appendField(new a_.FieldDropdown(_),"TOWHAT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var _=t.getFieldValue("TOWHAT");return{int:a_.Msg.MIXLY_PYTHON_TOOLTIP_TOINT,float:a_.Msg.MIXLY_PYTHON_TOOLTIP_TOFLOAT,b:a_.Msg.MIXLY_TOOLTIP_TEXT_TOBYTE}[_]}))}},rt={init:function(){var _=[[a_.Msg.MIXLY_TO_INT,"int"],[a_.Msg.MIXLY_TO_FLOAT,"float"]];this.setColour(q_),this.appendValueInput("VAR").appendField(new a_.FieldDropdown(_),"TOWHAT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var _=t.getFieldValue("TOWHAT");return{int:a_.Msg.MIXLY_TOOLTIP_TEXT_TOINT,float:a_.Msg.MIXLY_TOOLTIP_TEXT_TOFLOAT}[_]}))}},St=at,lt=160,At={init:function(){this.setColour(lt),this.appendDummyInput().appendField(this.newQuote_(!0)).appendField(new a_.FieldTextInput(""),"TEXT").appendField(this.newQuote_(!1)),this.setOutput(!0,String),this.setTooltip(a_.Msg.TEXT_TEXT_TOOLTIP)},newQuote_:function(_){if(_==this.RTL)var t="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAKCAQAAAAqJXdxAAAAqUlEQVQI1z3KvUpCcRiA8ef9E4JNHhI0aFEacm1o0BsI0Slx8wa8gLauoDnoBhq7DcfWhggONDmJJgqCPA7neJ7p934EOOKOnM8Q7PDElo/4x4lFb2DmuUjcUzS3URnGib9qaPNbuXvBO3sGPHJDRG6fGVdMSeWDP2q99FQdFrz26Gu5Tq7dFMzUvbXy8KXeAj57cOklgA+u1B5AoslLtGIHQMaCVnwDnADZIFIrXsoXrgAAAABJRU5ErkJggg==";else t="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAKCAQAAAAqJXdxAAAAn0lEQVQI1z3OMa5BURSF4f/cQhAKjUQhuQmFNwGJEUi0RKN5rU7FHKhpjEH3TEMtkdBSCY1EIv8r7nFX9e29V7EBAOvu7RPjwmWGH/VuF8CyN9/OAdvqIXYLvtRaNjx9mMTDyo+NjAN1HNcl9ZQ5oQMM3dgDUqDo1l8DzvwmtZN7mnD+PkmLa+4mhrxVA9fRowBWmVBhFy5gYEjKMfz9AylsaRRgGzvZAAAAAElFTkSuQmCC";return new a_.FieldImage(t,12,12,'"')}},Pt={init:function(){this.setColour(lt),this.appendDummyInput().appendField(this.newQuote_(!0)).appendField(new a_.FieldMultilineInput("Hello\nMixly"),"VALUE").appendField(this.newQuote_(!1)),this.setOutput(!0,String),this.setTooltip(a_.Msg.TEXT_LINES_TOOLTIP)},newQuote_:function(_){if(_==this.RTL)var t="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAKCAQAAAAqJXdxAAAAqUlEQVQI1z3KvUpCcRiA8ef9E4JNHhI0aFEacm1o0BsI0Slx8wa8gLauoDnoBhq7DcfWhggONDmJJgqCPA7neJ7p934EOOKOnM8Q7PDElo/4x4lFb2DmuUjcUzS3URnGib9qaPNbuXvBO3sGPHJDRG6fGVdMSeWDP2q99FQdFrz26Gu5Tq7dFMzUvbXy8KXeAj57cOklgA+u1B5AoslLtGIHQMaCVnwDnADZIFIrXsoXrgAAAABJRU5ErkJggg==";else t="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAKCAQAAAAqJXdxAAAAn0lEQVQI1z3OMa5BURSF4f/cQhAKjUQhuQmFNwGJEUi0RKN5rU7FHKhpjEH3TEMtkdBSCY1EIv8r7nFX9e29V7EBAOvu7RPjwmWGH/VuF8CyN9/OAdvqIXYLvtRaNjx9mMTDyo+NjAN1HNcl9ZQ5oQMM3dgDUqDo1l8DzvwmtZN7mnD+PkmLa+4mhrxVA9fRowBWmVBhFy5gYEjKMfz9AylsaRRgGzvZAAAAAElFTkSuQmCC";return new a_.FieldImage(t,12,12,'"')}};a_.FieldTextInput.char_validator=function(_){if(_.length>1&&"\\"===_.charAt(0)){var t=_.charAt(1);if("0"===t||"b"===t||"f"===t||"n"===t||"r"===t||"t"===t||"\\"===t||"'"===t)return String(_).substring(0,2);if("x"===t&&"0"===_.charAt(2)&&"B"===_.charAt(3))return String(_).substring(0,4)}return String(_).substring(0,1)};const Nt={init:function(){this.setColour(lt),this.appendDummyInput().appendField(this.newQuote_(!0)).appendField(new a_.FieldTextInput("",a_.FieldTextInput.char_validator),"TEXT").appendField(this.newQuote_(!1)),this.setOutput(!0,Number),this.setTooltip(a_.Msg.TEXT_CHAR_TOOLTIP)},newQuote_:function(_){if(1==_)var t="../../media/quote2.png";else t="../../media/quote3.png";return new a_.FieldImage(t,7,12,'"')}},dt={init:function(){this.setColour(lt),this.appendValueInput("A").setCheck([String,Number]),this.appendValueInput("B").setCheck([String,Number]).appendField(a_.Msg.MIXLY_TEXT_JOIN),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(a_.Msg.MIXLY_TOOLTIP_TEXT_JOIN)}},ht={init:function(){this.setColour(lt),this.appendValueInput("VAR").setCheck(Number).appendField(a_.Msg.MIXLY_TOCHAR),this.setOutput(!0,String),this.setTooltip(a_.Msg.MIXLY_TOOLTIP_TEXT_TOCHAR)}},ut={init:function(){this.setColour(lt),this.appendValueInput("VAR").setCheck(String).appendField(a_.Msg.MIXLY_TOASCII),this.setOutput(!0,Number),this.setTooltip(a_.Msg.MIXLY_TOOLTIP_TEXT_TOASCII)}},mt={init:function(){this.setColour(lt),this.appendValueInput("VAR").appendField(a_.Msg.MIXLY_TOSTRING),this.setOutput(!0,String),this.setTooltip(a_.Msg.MIXLY_PYTHON_TOOLTIP_TOTEXT)}},Ct={init:function(){this.setColour(lt),this.appendValueInput("VAR").appendField(a_.Msg.MIXLY_LENGTH),this.setOutput(!0,Number),this.setTooltip(a_.Msg.MIXLY_TOOLTIP_TEXT_LENGTH)}},ct={init:function(){this.WHERE_OPTIONS=[[a_.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[a_.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[a_.Msg.TEXT_GET_INDEX_RANDOM+1+a_.Msg.TEXT_CHARAT2,"RANDOM"]],this.setHelpUrl(a_.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(lt),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number),this.appendDummyInput().appendField(a_.Msg.LISTS_GET_INDEX_GET,"MODE"),a_.Msg.LISTS_GET_INDEX_TAIL&&this.appendDummyInput("TAIL").appendField(a_.Msg.LISTS_GET_INDEX_TAIL),this.setInputsInline(!0),this.setOutput(!0),this.updateAt_(!0);var _=this;this.setTooltip((function(){var t=_.getFieldValue("MODE"),e=_.getFieldValue("WHERE"),i="";switch(t+" "+e){case"GET FROM_START":case"GET FROM_END":i=a_.Msg.LISTS_GET_INDEX_TOOLTIP_GET_FROM;break;case"GET RANDOM":i=a_.Msg.LISTS_GET_INDEX_TOOLTIP_GET_RANDOM;break;case"GET_REMOVE FROM_START":case"GET_REMOVE FROM_END":i=a_.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM;break;case"GET_REMOVE RANDOM":i=a_.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM}return"FROM_START"!=e&&"FROM_END"!=e||(i+=" "+a_.Msg.LISTS_INDEX_FROM_START_TOOLTIP.replace("%1",a_.Msg.ONE_BASED_INDEXING?"#1":"#0")),i}));var t=this;this.setTooltip((function(){var _=t.getFieldValue("WHERE"),e={FROM_START:a_.Msg.LISTS_GET_INDEX_FROM_START,FROM_END:a_.Msg.LISTS_GET_INDEX_FROM_END,RANDOM:a_.Msg.TEXT_GET_INDEX_RANDOM};return a_.Msg.PROCEDURES_DEFRETURN_RETURN+a_.Msg.MIXLY_MICROBIT_TYPE_STRING+e[_]+"n"+a_.Msg.TEXT_CHARAT2}))},mutationToDom:function(){var _=document.createElement("mutation");_.setAttribute("statement",!this.outputConnection);var t=this.getInput("AT").type==a_.INPUT_VALUE;return _.setAttribute("at",t),_},domToMutation:function(_){var t="true"==_.getAttribute("statement");this.updateStatement_(t),_="false"!=_.getAttribute("at"),this.updateAt_(_)},updateStatement_:function(_){_!=!this.outputConnection&&(this.unplug(!0,!0),_?(this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)):(this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)))},updateAt_:function(_){this.removeInput("AT"),this.removeInput("ORDINAL",!0),_?(this.appendValueInput("AT").setCheck(Number),a_.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL").appendField(a_.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT");var t=new a_.FieldDropdown(this.WHERE_OPTIONS,(function(t){var e="FROM_START"==t||"FROM_END"==t;if(e!=_){var i=this.sourceBlock_;return i.updateAt_(e),i.setFieldValue(t,"WHERE"),null}}));this.getInput("AT").appendField(t,"WHERE"),a_.Msg.LISTS_GET_INDEX_TAIL&&this.moveInputBefore("TAIL",null)}},Ht={init:function(){this.setHelpUrl(a_.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(lt),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number).appendField(a_.Msg.LISTS_GET_INDEX_GET+" "+a_.Msg.LISTS_GET_INDEX_FROM_START),this.appendDummyInput().appendField(a_.Msg.TEXT_CHARAT2),this.setOutput(!0),this.setTooltip(a_.Msg.PROCEDURES_DEFRETURN_RETURN+a_.Msg.MIXLY_MICROBIT_TYPE_STRING+a_.Msg.LISTS_GET_INDEX_FROM_START+"n"+a_.Msg.TEXT_CHARAT2)}},Dt={init:function(){this.setHelpUrl(a_.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(lt),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput().appendField(a_.Msg.TEXT_RANDOM_CHAR),this.setOutput(!0),this.setTooltip(a_.Msg.TEXT_RANDOM_CHAR_TOOLTIP)}},Yt={init:function(){this.WHERE_OPTIONS_1=[[a_.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[a_.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[a_.Msg.LISTS_GET_SUBLIST_START_FIRST,"FIRST"]],this.WHERE_OPTIONS_2=[[a_.Msg.LISTS_GET_SUBLIST_END_FROM_START,"FROM_START"],[a_.Msg.LISTS_GET_SUBLIST_END_FROM_END,"FROM_END"],[a_.Msg.LISTS_GET_SUBLIST_END_LAST,"LAST"]],this.setHelpUrl(a_.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(lt),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput("").appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput("AT1"),this.appendDummyInput("AT2"),this.setInputsInline(!0),this.setOutput(!0,"List"),this.updateAt_(1,!0),this.updateAt_(2,!0),this.setTooltip(a_.Msg._GET_TEXT_SUBLIST_TOOLTIP)},mutationToDom:function(){var _=document.createElement("mutation"),t=this.getInput("AT1").type==a_.INPUT_VALUE;_.setAttribute("at1",t);var e=this.getInput("AT2").type==a_.INPUT_VALUE;return _.setAttribute("at2",e),_},domToMutation:function(_){var t="true"==_.getAttribute("at1"),e="true"==_.getAttribute("at2");this.updateAt_(1,t),this.updateAt_(2,e)},updateAt_:function(_,t){this.removeInput("AT"+_),this.removeInput("ORDINAL"+_,!0),t?(this.appendValueInput("AT"+_).setCheck(Number),a_.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL"+_).appendField(a_.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT"+_);var e=new a_.FieldDropdown(this["WHERE_OPTIONS_"+_],(function(e){var i="FROM_START"==e||"FROM_END"==e;if(i!=t){var T=this.sourceBlock_;return T.updateAt_(_,i),T.setFieldValue(e,"WHERE"+_),null}}));this.getInput("AT"+_).appendField(e,"WHERE"+_),1==_&&(this.moveInputBefore("AT1","AT2"),this.getInput("ORDINAL1")&&this.moveInputBefore("ORDINAL1","AT2"))}},Ut={init:function(){this.setHelpUrl(a_.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(lt),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT1").appendField(a_.Msg.LISTS_GET_INDEX_GET+" "+a_.Msg.LISTS_GET_INDEX_FROM_START),this.appendValueInput("AT2").appendField(a_.Msg.LISTS_GET_SUBLIST_END_FROM_START),this.appendDummyInput().appendField(a_.Msg.TEXT_CHARAT2),this.setInputsInline(!0),this.setOutput(!0,["List",String]),this.setTooltip(a_.Msg._GET_TEXT_SUBLIST_TOOLTIP)}},Bt={init:function(){var _=[[a_.Msg.MIXLY_EQUALS,"==="],[a_.Msg.MIXLY_STARTSWITH,"startswith"],[a_.Msg.MIXLY_ENDSWITH,"endswith"]];this.setColour(lt),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(new a_.FieldDropdown(_),"DOWHAT").setCheck(String),this.setOutput(!0,[Boolean,Number]),this.setInputsInline(!0)}},gt={init:function(){this.setColour(lt),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(a_.Msg.MIXLY_COMPARETO).setCheck(String),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_COMPARETO_HELP)}},Gt={init:function(){var _=[[a_.Msg.TEXT_UPPER,"upper"],[a_.Msg.TEXT_TITLE,"title"],[a_.Msg.TEXT_CAPITALIZE,"capitalize"],[a_.Msg.TEXT_SWAPCASE,"swapcase"],[a_.Msg.TEXT_LOWER,"lower"]];this.setColour(lt),this.appendValueInput("VAR").appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new a_.FieldDropdown(_),"CAPITAL").setCheck(String),this.setOutput(!0,String);var t=this;this.setTooltip((function(){var _=t.getFieldValue("CAPITAL");return{upper:a_.Msg.MIXLY_MIXPY_TEXT_UPPER_TOOLTIP,title:a_.Msg.MIXLY_MIXPY_TEXT_TITLE_TOOLTIP,swapcase:a_.Msg.MIXLY_MIXPY_TEXT_SWAPCASE_TOOLTIP,capitalize:a_.Msg.MIXLY_MIXPY_TEXT_CAPITALIZE_TOOLTIP,lower:a_.Msg.MIXLY_MIXPY_TEXT_LOWER_TOOLTIP}[_]}))}},Ft={init:function(){var _=[[a_.Msg.TEXT_LJUST,"ljust"],[a_.Msg.TEXT_CENTER,"center"],[a_.Msg.TEXT_RJUST,"rjust"]];this.setColour(lt),this.appendValueInput("VAR").appendField(new a_.FieldDropdown(_),"CENTER").setCheck(String),this.appendValueInput("WID").appendField(a_.Msg.MIXLY_WIDTH).setCheck(Number),this.appendValueInput("Symbol").appendField(a_.Msg.MIXLY_RECT_Fill).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(a_.Msg.MIXLY_MIXPY_TEXT_CENTER_TOOLTIP)}},yt={init:function(){this.setColour(lt),this.appendValueInput("VAR").appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).setCheck(String),this.appendValueInput("STR").appendField(a_.Msg.MIXLY_MID+a_.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER).setCheck(String),this.appendDummyInput().appendField(a_.Msg.MIXLY_LIST_INDEX),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(a_.Msg.MIXLY_MIXPY_TEXT_FIND_TOOLTIP)}},ft={init:function(){this.setColour(lt),this.appendValueInput("VAR").appendField(a_.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_USE_STR).setCheck(String),this.appendValueInput("LIST").appendField(a_.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_SEQ).setCheck("List","Tuple","Set","Dict"),this.appendDummyInput().appendField(a_.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_GET_STR),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(a_.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_TOOLTIP)}},bt={init:function(){this.setColour(lt),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("STR1").appendField(a_.Msg.MIXLY_MIXPY_REPLACE).setCheck(String),this.appendValueInput("STR2").appendField(a_.Msg.LISTS_SET_INDEX_INPUT_TO).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(a_.Msg.MIXLY_MIXPY_TEXT_REPLACE_TOOLTIP)}},xt={init:function(){this.setColour(lt),this.appendValueInput("VAR"),this.appendValueInput("VAL").appendField(a_.Msg.LIST_SPLIT_AS),this.appendDummyInput("").appendField(a_.Msg.LIST_SPLIT),this.setOutput(!0,"List"),this.setTooltip(a_.Msg.MIXLY_MIXPY_TEXT_SPLIT_TOOLTIP),this.setInputsInline(!0)}},vt={init:function(){var _=[[a_.Msg.TEXT_TRIM_BOTH,"strip"],[a_.Msg.TEXT_TRIM_LEFT,"lstrip"],[a_.Msg.TEXT_TRIM_RIGHT,"rstrip"]];this.setColour(lt),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(a_.Msg.TEXT_STRIM),this.appendDummyInput("").appendField(new a_.FieldDropdown(_),"TOWHAT"),this.appendDummyInput("").appendField(a_.Msg.TEXT_BLANK),this.setOutput(!0,String),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var _=t.getFieldValue("TOWHAT");return{strip:a_.Msg.TEXT_TRIM_BOTH_TOOLTIP,lstrip:a_.Msg.TEXT_TRIM_LEFT_TOOLTIP,rstrip:a_.Msg.TEXT_TRIM_RIGHT_TOOLTIP}[_]}))}},Xt={init:function(){this.setColour(lt),this.appendDummyInput("").appendField(a_.Msg.MIXLY_MICROPYTHON_FORMAT),this.appendDummyInput("").appendField(new a_.FieldTextInput("str"),"VAR"),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new a_.icons.MutatorIcon(["text_create_with_item"],this)),this.setOutput(!0),this.setTooltip(a_.Msg.MIXLY_MIXPY_TEXT_FORMAT_TOOLTIP)},mutationToDom:function(){var _=document.createElement("mutation");return _.setAttribute("items",this.itemCount_),_},domToMutation:function(_){this.itemCount_=parseInt(_.getAttribute("items"),10),this.updateShape_()},decompose:function(_){var t=_.newBlock("text_create_with_container");t.initSvg();for(var e=t.getInput("STACK").connection,i=0;it?_[t]:0==t?'"key"':'"key'+(t+1)+'"'),"KEY"+t).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(_,t){a_.Names.equals(_,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},fe={init:function(){this.setColour(Fe),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(a_.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},be={init:function(){this.setColour(Fe),this.appendDummyInput().appendField(a_.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(a_.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},xe={init:function(){this.setColour(Fe),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(a_.Msg.DICT_KEYS),this.setTooltip(a_.Msg.DICTS_KEYS_TOOLTIP),this.setOutput(!0,"List")}},ve={init:function(){this.setColour(Fe),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(a_.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(a_.Msg.DICTS_ADD_VALUE),this.setOutput(!0),this.setTooltip(a_.Msg.DICTS_GET_TOOLTIP)}},Xe={init:function(){this.setColour(Fe),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(a_.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(a_.Msg.DICTS_ADD_VALUE),this.appendValueInput("VAR").appendField(a_.Msg.DICTS_DEFAULT_VALUE),this.setOutput(!0),this.setTooltip(a_.Msg.DICTS_GET_DEFAULT_TOOLTIP)}},Ve={init:function(){this.setColour(Fe),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(a_.Msg.DICTS_ADD),this.appendDummyInput(),this.appendValueInput("VAR").appendField(a_.Msg.DICTS_ADD_VALUE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(a_.Msg.DICTS_ADD_OR_CHANGE_TOOLTIP)}},ke={init:function(){this.setColour(Fe),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(a_.Msg.DICTS_DELETE_IN),this.appendDummyInput("").appendField(a_.Msg.DICTS_DELETE_VALUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(a_.Msg.DICTS_DELETE_TOOLTIP)}},we={init:function(){this.setColour(Fe),this.appendValueInput("DICT2").setCheck("Dict").appendField(a_.Msg.MAKE_DICT),this.appendValueInput("DICT").setCheck("Dict").appendField(a_.Msg.DICT_UPDATE),this.appendDummyInput("").appendField(a_.Msg.MIXLY_MID),this.setTooltip(a_.Msg.DICTS_UPDATE_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},We={init:function(){this.setColour(Fe),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(a_.Msg.DICT_CLEAR),this.setTooltip(a_.Msg.DICTS_CLEAR_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Ke={init:function(){this.setColour(Fe),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(a_.Msg.DICT_ITEMS),this.setTooltip(a_.Msg.DICTS_ITEMS_TOOLTIP),this.setOutput(!0,"List")}},ze={init:function(){this.setColour(Fe),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(a_.Msg.DICT_VALUES),this.setTooltip(a_.Msg.DICTS_VALUES_TOOLTIP),this.setOutput(!0,"List")}},Ze={init:function(){this.setColour(Fe),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(a_.Msg.MIXLY_LENGTH),this.setTooltip(a_.Msg.DICT_LENGTH_TOOLTIP),this.setOutput(!0,Number)}},Qe={init:function(){this.setColour(Fe),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(a_.Msg.DICT_DELDICT),this.setTooltip(a_.Msg.DICTS_DEL_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Je={init:function(){this.MODE=[[a_.Msg.DICTS_ADD_OR_CHANGE,"INSERT"],[a_.Msg.MIXLY_MICROBIT_JS_DELETE_VAR,"DELETE"]],this.setHelpUrl(a_.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(Fe),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("AT2"),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(a_.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).appendField(a_.Msg.DICTS_ADD_VALUE),this.updateAt_(!0),this.setInputsInline(!0),this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0);var _=this;this.setTooltip((function(){var t="";switch(_.getFieldValue("WHERE")){case"INSERT":t=a_.Msg.DICTS_ADD_TOOLTIP;break;case"DELETE":t=a_.Msg.DICTS_DELETE_TOOLTIP}return t}))},mutationToDom:function(){var _=document.createElement("mutation"),t=this.getInput("AT2").type==a_.INPUT_VALUE;return _.setAttribute("at2",t),_},domToMutation:function(_){var t="true"==_.getAttribute("at2");this.updateAt_(t)},updateAt_:function(_){this.removeInput("AT2"),this.removeInput("ORDINAL",!0),_?this.appendValueInput("AT2").setCheck(Number):this.appendDummyInput("AT2");var t=new a_.FieldDropdown(this.MODE,(function(t){var e="INSERT"==t;if(e!=_){var i=this.sourceBlock_;return i.updateAt_(e),i.setFieldValue(t,"WHERE"),null}}));this.getInput("AT2").appendField(t,"WHERE")}},qe={init:function(){this.setColour(Fe),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(a_.Msg.blockpy_DICT_POP),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(a_.Msg.DICTS_ADD_VALUE),this.setTooltip(a_.Msg.DICT_POP_TOOLTIP),this.setInputsInline(!0),this.setOutput(!0)}},je={init:function(){this.setColour(Fe),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(a_.Msg.DICTS_SET_DEFAULT),this.appendDummyInput("").appendField(a_.Msg.DICTS_DEFAULT_VALUE),this.appendValueInput("VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(a_.Msg.DICTS_SETDEFAULT_TOOLTIP)}},$e={init:function(){this.setColour(Fe),this.appendDummyInput("").appendField(new a_.FieldLabel(a_.Msg.MIXLY_MICROBIT_TYPE_DICT),"TIP").appendField(" "),this.itemCount_=3,this.updateShape_(),this.setOutput(!0,"Dict"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setMutator(new a_.icons.MutatorIcon(["dicts_create_with_item"],this)),this.setTooltip(a_.Msg.DICTS_CREATE_WITH_TOOLTIP)},mutationToDom:function(){var _=document.createElement("mutation");return _.setAttribute("items",this.itemCount_),_},domToMutation:function(_){this.itemCount_=parseInt(_.getAttribute("items"),10),this.updateShape_()},decompose:function(_){var t=_.newBlock("dicts_create_with_container");t.initSvg();for(var e=t.getInput("STACK").connection,i=0;it?_[t]:0==t?'"key"':'"key'+(t+1)+'"'),"KEY"+t).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(_,t){a_.Names.equals(_,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},_i={init:function(){this.setColour(Fe),this.appendValueInput("VAR").appendField(a_.Msg.MIXLY_TODICT),this.setOutput(!0),this.setTooltip(a_.Msg.MIXLY_PYTHON_TOOLTIP_TODICT)}},ti={init:function(){this.setColour(Fe),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(a_.Msg.MIXLY_TO_JSON),this.setTooltip(a_.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0,Number)}},ei={init:function(){this.setColour(Fe),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(a_.Msg.MIXLY_CONVERT_TO_JSON),this.setTooltip(a_.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0,Number)}},ii=210,Ti={init:function(){var _=a_.RTL?[["=","EQ"],["≠","NEQ"],[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["=","EQ"],["≠","NEQ"],["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(ii),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new a_.FieldDropdown(_),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var _=t.getFieldValue("OP");return{EQ:a_.Msg.LOGIC_COMPARE_TOOLTIP_EQ,NEQ:a_.Msg.LOGIC_COMPARE_TOOLTIP_NEQ,LT:a_.Msg.LOGIC_COMPARE_TOOLTIP_LT,LTE:a_.Msg.LOGIC_COMPARE_TOOLTIP_LTE,GT:a_.Msg.LOGIC_COMPARE_TOOLTIP_GT,GTE:a_.Msg.LOGIC_COMPARE_TOOLTIP_GTE}[_]})),this.prevBlocks_=[null,null]}},Ei={init:function(){var _=a_.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]],t=a_.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(ii),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new a_.FieldDropdown(_),"OP1"),this.appendValueInput("C").appendField(new a_.FieldDropdown(t),"OP2"),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_PYTHON_LOGIC_COMPARE_CONTINOUS_TOOLTIP)}},ni={init:function(){var _=[[a_.Msg.LOGIC_OPERATION_AND,"AND"],[a_.Msg.LOGIC_OPERATION_OR,"OR"],[a_.Msg.LOGIC_OPERATION_NOR,"NOR"],[a_.Msg.LOGIC_OPERATION_XOR,"XOR"]];this.setColour(ii),this.setOutput(!0,Boolean),this.appendValueInput("A").setCheck([Boolean,Number]),this.appendValueInput("B").setCheck([Boolean,Number]).appendField(new a_.FieldDropdown(_),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var _=t.getFieldValue("OP");return{AND:a_.Msg.LOGIC_OPERATION_TOOLTIP_AND,OR:a_.Msg.LOGIC_OPERATION_TOOLTIP_OR,NOR:a_.Msg.LOGIC_OPERATION_TOOLTIP_NOR,XOR:a_.Msg.LOGIC_OPERATION_TOOLTIP_XOR}[_]}))}},oi={init:function(){this.setColour(ii),this.setOutput(!0,Boolean),this.appendValueInput("BOOL").setCheck([Number,Boolean]).appendField(a_.Msg.LOGIC_NEGATE_TITLE),this.setTooltip(a_.Msg.LOGIC_NEGATE_TOOLTIP)}},si={init:function(){var _=[[a_.Msg.LOGIC_BOOLEAN_TRUE,"TRUE"],[a_.Msg.LOGIC_BOOLEAN_FALSE,"FALSE"]];this.setColour(ii),this.setOutput(!0,Boolean),this.appendDummyInput().appendField(new a_.FieldDropdown(_),"BOOL"),this.setTooltip(a_.Msg.LOGIC_BOOLEAN_TOOLTIP)}},Oi={init:function(){this.setColour(ii),this.setOutput(!0),this.appendDummyInput().appendField(a_.Msg.LOGIC_NULL),this.setTooltip(a_.Msg.LOGIC_NULL_TOOLTIP)}},Ii={init:function(){this.setColour(ii),this.appendValueInput("A"),this.appendValueInput("B").appendField(a_.Msg.LOGIC_TERNARY_IF_TRUE),this.appendValueInput("C").appendField(a_.Msg.LOGIC_TERNARY_IF_FALSE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_TOOLTIP_LOGIT_TRUEORFALSE)}},ai={init:function(){var _=[[a_.Msg.TEXT_APPEND_TO,"in"],[a_.Msg.MIXLY_PYTHON_LOGIC_IS_NOT_IN,"not in"]];this.setColour(ii),this.appendValueInput("A"),this.appendValueInput("B").setCheck([String,"List"]).appendField(new a_.FieldDropdown(_),"BOOL"),this.appendDummyInput("").appendField(a_.Msg.MICROBIT_LOGIC_IS_IN),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(a_.Msg.IN)}},pi={init:function(){var _=[[a_.Msg.MIXLY_PYTHON_LOGIC_IS,"is"],[a_.Msg.MIXLY_PYTHON_LOGIC_IS_NOT,"is not"]];this.setColour(ii),this.appendValueInput("A"),this.appendValueInput("B").appendField(new a_.FieldDropdown(_),"BOOL"),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_PYTHON_LOGIC_IS_TOOLTIP)}},Mi={init:function(){this.setColour(ii),this.appendValueInput("VAR").appendField(a_.Msg.MIXLY_TOBOOL),this.setOutput(!0,Boolean),this.setTooltip(a_.Msg.MIXLY_PYTHON_TOOLTIP_TOBOOL)}},Li={init:function(){this.setColour(0),this.appendValueInput("fn").setCheck(String).appendField(a_.Msg.MIXLY_PYTHON_STORAGE_OPEN_FILE_WITH_OS+"(For Windows)"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Ri={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[a_.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[a_.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[a_.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendValueInput("FILE").appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_AS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var _=this;this.setTooltip((function(){var t=_.getFieldValue("MODE"),e=a_.Msg.MIXLY_USE,i=a_.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,T=a_.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,E=a_.Msg.MIXLY_BELONG;return e+{r:a_.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:a_.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:a_.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:a_.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[t]+E+i+T}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(_,t){a_.Names.equals(_,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},ri={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[a_.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[a_.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[a_.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var _=this;this.setTooltip((function(){var t=_.getFieldValue("MODE"),e=a_.Msg.MIXLY_USE,i=a_.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,T=a_.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,E=a_.Msg.MIXLY_BELONG,n=a_.Msg.PY_STORAGE_FILE_OBJECT;return e+{r:a_.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:a_.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:a_.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:a_.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[t]+E+i+T+n}))}},Si={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE);this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[a_.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[a_.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[a_.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendDummyInput().appendField(a_.Msg.MIXPY_TEXT_ENCODE).appendField(new a_.FieldDropdown([["ANSI","ANSI"],["gbk","gbk"],["utf-8","utf-8"]]),"CODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var _=this;this.setTooltip((function(){var t=_.getFieldValue("MODE"),e=a_.Msg.MIXLY_USE,i=a_.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,T=a_.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,E=a_.Msg.MIXLY_BELONG,n=a_.Msg.PY_STORAGE_FILE_OBJECT;return e+{r:a_.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:a_.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:a_.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:a_.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[t]+E+i+T+n}))}},li={init:function(){this.setColour(0),this.appendValueInput("data").setCheck(String).appendField(a_.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendValueInput("FILE").appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE+a_.Msg.MIXLY_MICROBIT_TYPE_STRING+a_.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE)}},Ai={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL,"read"],[a_.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE,"readline"],[a_.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES,"readlines"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String)}},Pi={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,"read"],[a_.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,"readline"],[a_.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE,"readlines"]]),"MODE"),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String);var _=this;this.setTooltip((function(){var t=_.getFieldValue("MODE"),e=a_.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE,i=a_.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER;return e+{read:a_.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,readline:a_.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,readlines:a_.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE}[t]+"x"+i}))}},Ni={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.setNextStatement(!0),this.appendValueInput("SIZE").setCheck(Number).appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(a_.Msg.MICROBIT_PYTHON_TYPE)}},di={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(a_.Msg.HTML_FILE),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean),this.setTooltip(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT1)}},hi={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_FILENAME),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILENAME)}},ui={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE)}},mi={init:function(){this.setColour(0),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES)}};a_.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE;const Ci={init:function(){this.setColour(0),this.appendDummyInput().appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE,"remove"],[a_.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_DIRS,"removedirs"]]),"MODE"),this.appendValueInput("FILE").setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE)}},ci={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE+a_.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE)}},Hi={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_RETURN_FILE),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_PRESENT_LOCATION),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_TELL)}},Di={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION),this.appendDummyInput().appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,"start"],[a_.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,"current"],[a_.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END,"end"]]),"MODE"),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var _=this;this.setTooltip((function(){var t=_.getFieldValue("MODE"),e=a_.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION+a_.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION,i=a_.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER,T=a_.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET;return e+" "+{start:a_.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,current:a_.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,end:a_.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END}[t]+T+"x"+i}))}},Yi={init:function(){this.setColour(0),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR)}},Ui={init:function(){this.setColour(0),this.appendValueInput("PATH").setCheck(String).appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH),this.appendDummyInput().appendField(a_.Msg.MIXLY_ESP32_SET),this.appendDummyInput().appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,"mkdir"],[a_.Msg.MIXLY_MICROBIT_PY_STORAGE_MAKEDIRS,"makedirs"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1);var _=this;this.setTooltip((function(){var t=_.getFieldValue("MODE");return a_.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH+"x"+a_.Msg.MIXLY_ESP32_SET+{mkdir:a_.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,makedirs:a_.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[t]}))}},Bi={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME),this.appendValueInput("NEWFILE").setCheck(String).appendField(a_.Msg.MIXLY_AS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME)}},gi={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR)}},Gi={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT),this.appendDummyInput().appendField(new a_.FieldDropdown([[a_.Msg.HTML_FILE,"isfile"],[a_.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_DIR,"isdir"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean);let _=this;this.setTooltip((function(){var t=_.getFieldValue("MODE");return a_.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH+"x"+a_.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT+{isfile:a_.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,isdir:a_.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[t]}))}},Fi={init:function(){this.setColour(0),this.appendValueInput("SPISUB").appendField(a_.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("SUB").appendField(a_.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(a_.Msg.MIXLY_SETUP+a_.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(a_.Msg.MIXLY_SD_CARD),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},yi={init:function(){this.setColour(0),this.appendValueInput("VAR").appendField(a_.Msg.MIXLY_SD_CARD),this.appendValueInput("DIR").setCheck(String).appendField(a_.Msg.MIXLY_SDCARD_MOUNT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip()}},fi={};fi.NAME_TYPE=a_.PROCEDURE_CATEGORY_NAME,fi.allProcedures=function(_){for(var t=_.getAllBlocks(!1),e=[],i=[],T=0;T"),this.appendValueInput("style").appendField(a_.Msg.MIXLY_AIP_ATTR).setAlign(a_.inputs.Align.RIGHT),this.appendStatementInput("DO").appendField(""),this.setInputsInline(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)}},BT={init:function(){this.setColour(CT),this.appendDummyInput().appendField(a_.Msg.HTML_STYLE),this.appendStatementInput("STYLE"),this.setOutput(!0)}},gT={init:function(){this.setColour(CT),this.appendDummyInput().appendField(a_.Msg.HTML_FORM_CONTENT).appendField(new a_.FieldDropdown([[a_.Msg.HTML_TEXT,"text"],[a_.Msg.HTML_EMAIL,"email"],[a_.Msg.HTML_NUMBER,"number"],[a_.Msg.HTML_PASSWORD,"password"],[a_.Msg.HTML_CHECKBOX,"checkbox"],[a_.Msg.HTML_RADIOBUTTON,"radiobutton"],[a_.Msg.HTML_BUTTON,"button"],[a_.Msg.HTML_COLOUR,"colour"],[a_.Msg.HTML_DATE,"date"],[a_.Msg.HTML_LOCALTIME,"local time"],[a_.Msg.HTML_FILE,"file"],[a_.Msg.HTML_HIDDEN,"hidden"],[a_.Msg.HTML_IMAGE,"image"],[a_.Msg.HTML_MONTH,"month"],[a_.Msg.HTML_RANGE,"range"],[a_.Msg.HTML_RESET,"reset"],[a_.Msg.HTML_SEARCH,"search"],[a_.Msg.HTML_SUBMIT,"submit"],[a_.Msg.HTML_TELEPHONENUMBER,"telephone number"],[a_.Msg.HTML_TIME,"time"],[a_.Msg.HTML_URL,"url"],[a_.Msg.HTML_WEEK,"week"]]),"LEVEL"),this.appendDummyInput().appendField(a_.Msg.HTML_NAME).appendField(new a_.FieldTextInput("car"),"NAME"),this.appendDummyInput().appendField(a_.Msg.HTML_VALUE).appendField(new a_.FieldTextInput("go"),"VALUE"),this.appendValueInput("style").appendField(a_.Msg.MIXLY_AIP_ATTR).setAlign(a_.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},GT={init:function(){this.setColour(CT),this.appendDummyInput().appendField(new a_.FieldTextInput("property"),"KEY").appendField(":").appendField(new a_.FieldTextInput("value"),"VALUE"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},FT={init:function(){this.setColour(CT),this.appendDummyInput().appendField(new a_.FieldTextInput("property"),"KEY").appendField(":").appendField(new a_.FieldColour("#ff0000"),"RGB_LED_COLOR"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},yT={init:function(){this.setColour(CT),this.appendDummyInput().appendField(a_.Msg.HTML_TEXT).appendField(new a_.FieldTextInput("text"),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},fT=160,bT={init:function(){this.setColour(fT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Tabular Abstraction:"),this.appendDummyInput().appendField(new a_.FieldTable(""),"TEXT")}},xT={init:function(){this.setColour(fT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Code Block:"),this.appendDummyInput().appendField(new a_.FieldMultilineInput(""),"TEXT")}},vT={init:function(){this.setColour(fT),this.appendDummyInput().appendField("Code Expression:"),this.appendDummyInput().appendField(new a_.FieldMultilineInput(""),"TEXT"),this.setOutput(!0)}},XT={init:function(){this.setColour(fT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("VALUE").appendField(""),this.setInputsInline(!1)}},VT={init:function(){this.setColour(fT),this.appendDummyInput().appendTitle("Comment:").appendTitle(new a_.FieldTextInput(""),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("This comment will be ignored by Python")}},kT={init:function(){this.setColour(fT),this.appendValueInput("VALUE").appendField(a_.Msg.TYPE_CHECK),this.setInputsInline(!1),this.setOutput(!0,"Type")}},wT={init:function(){this.setColour(fT),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new a_.icons.MutatorIcon(["text_print_multiple_item"],this)),this.setTooltip(a_.Msg.TEXT_PRINT_TOOLTIP)},mutationToDom:function(){var _=document.createElement("mutation");return _.setAttribute("items",this.itemCount_),_},domToMutation:function(_){this.itemCount_=parseInt(_.getAttribute("items"),10),this.updateShape_()},decompose:function(_){var t=a_.Block.obtain(_,"text_print_multiple_container");t.initSvg();for(var e=t.getInput("STACK").connection,i=0;i= stop:"," yield start"," start -= abs(step)"])};if(_=function(_,t,e){return"("+_+" <= "+t+") and "+s()+"("+_+", "+t+", "+e+") or "+O()+"("+_+", "+t+", "+e+")"},a_.isNumber(i)&&a_.isNumber(T)&&a_.isNumber(E))i=parseFloat(i),T=parseFloat(T),E=Math.abs(parseFloat(E)),0==i%1&&0==T%1&&0==E%1?(i<=T?(T++,_=0==i&&1==E?T:i+", "+T,1!=E&&(_+=", "+E)):_=i+", "+--T+", -"+E,_="range("+_+")"):(_=i",GTE:">="};const Ho=function(_,t){var e=this.getFieldValue("OP"),i="&&"==e?t.ORDER_LOGICAL_AND:t.ORDER_LOGICAL_OR,T=t.valueToCode(this,"A",i)||"False",E=t.valueToCode(this,"B",i)||"False";if("AND"==e)var n=T+" and "+E;else if("OR"==e)n=T+" or "+E;else if("NOR"==e)n="not("+T+"^"+E+")";else n=T+"^"+E;return[n,i]},Do=function(_,t){var e=t.ORDER_UNARY_PREFIX;return["not "+(t.valueToCode(this,"BOOL",e)||"False"),e]},Yo=function(_,t){return["TRUE"==this.getFieldValue("BOOL")?"True":"False",t.ORDER_ATOMIC]},Uo=function(_,t){return["None",t.ORDER_ATOMIC]},Bo=function(_,t){var e=t.valueToCode(this,"A",t.ORDER_ATOMIC)||"False";return["("+(t.valueToCode(this,"B",t.ORDER_ATOMIC)||"False")+" if "+e+" else "+(t.valueToCode(this,"C",t.ORDER_ATOMIC)||"False")+")",t.ORDER_ATOMIC]},go=function(_,t){var e=t.valueToCode(this,"A",t.ORDER_ATOMIC)||"''",i=t.valueToCode(this,"B",t.ORDER_ATOMIC)||"''";return[e+" "+this.getFieldValue("BOOL")+" "+i,t.ORDER_ATOMIC]},Go=function(_,t){var e=t.valueToCode(this,"A",t.ORDER_ATOMIC)||"''",i=t.valueToCode(this,"B",t.ORDER_ATOMIC)||"''";return[e+" "+this.getFieldValue("BOOL")+" "+i,t.ORDER_ATOMIC]},Fo=function(_,t){return["bool("+(t.valueToCode(this,"VAR",t.ORDER_ATOMIC)||"0")+")",t.ORDER_ATOMIC]},yo=function(_,t){return t.definitions_.import_os="import os","os.startfile("+t.valueToCode(this,"fn",t.ORDER_ATOMIC)+")\n"},fo=function(_,t){return t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+" = open("+t.valueToCode(this,"FILENAME",t.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')\n"},bo=function(_,t){return["open("+t.valueToCode(this,"FILENAME",t.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')",t.ORDER_ATOMIC]},xo=function(_,t){return["open("+t.valueToCode(this,"FILENAME",t.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"', encoding=\""+this.getFieldValue("CODE")+'")',t.ORDER_ATOMIC]},vo=function(_,t){var e=t.valueToCode(this,"data",t.ORDER_ATOMIC);return t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+".write("+e+")\n"},Xo=function(_,t){var e=this.getFieldValue("MODE");return[t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+"."+e+"()",t.ORDER_ATOMIC]},Vo=function(_,t){var e=this.getFieldValue("MODE");return[t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+"."+e+"("+t.valueToCode(this,"SIZE",t.ORDER_ATOMIC)+")",t.ORDER_ATOMIC]},ko=function(_,t){return[t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+".readline("+t.valueToCode(this,"SIZE",t.ORDER_ATOMIC)+")",t.ORDER_ATOMIC]},wo=function(_,t){return[t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+".writable()",t.ORDER_ATOMIC]},Wo=function(_,t){return[t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+".name()",t.ORDER_ATOMIC]},Ko=function(_,t){return t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+".close()\n"},zo=function(_,t){t.definitions_.import_os="import os";return["os.listdir()",t.ORDER_ATOMIC]},Zo=function(_,t){return t.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+")\n"},Qo=function(_,t){return t.definitions_.import_os="import os",["os.path.getsize("+t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+")",t.ORDER_ATOMIC]},Jo=function(_,t){return[t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+".tell()",t.ORDER_ATOMIC]},qo=function(_,t){var e=this.getFieldValue("MODE"),i=0;return i="start"==e?0:"current"==e?1:2,t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+".seek("+t.valueToCode(this,"SIZE",t.ORDER_ATOMIC)+","+i+")\n"},jo=function(_,t){return t.definitions_.import_os="import os","os.chdir("+t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+")\n"},$o=function(_,t){t.definitions_.import_os="import os";return["os.getcwd()",t.ORDER_ATOMIC]},_s=function(_,t){return t.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+t.valueToCode(this,"PATH",t.ORDER_ATOMIC)+")\n"},ts=function(_,t){return t.definitions_.import_os="import os","os.rename("+t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+","+t.valueToCode(this,"NEWFILE",t.ORDER_ATOMIC)+")\n"},es=function(_,t){t.definitions_.import_os="import os";var e=t.valueToCode(this,"FILE",t.ORDER_ATOMIC);return["os."+this.getFieldValue("MODE")+"("+e+")",t.ORDER_ATOMIC]},is=function(_,t){return t.definitions_.import_os="import os",t.definitions_.import_sdcard="import sdcard",t.valueToCode(this,"SUB",t.ORDER_ATOMIC)+" = sdcard.SDCard("+t.valueToCode(this,"SPISUB",t.ORDER_ATOMIC)+","+t.valueToCode(this,"PINSUB",t.ORDER_ATOMIC)+")\n"},Ts=function(_,t){return t.definitions_.import_os="import os",t.definitions_.import_sdcard="import sdcard","os.mount("+t.valueToCode(this,"VAR",t.ORDER_ATOMIC)+","+t.valueToCode(this,"DIR",t.ORDER_ATOMIC)+")\n"},Es=function(_,t){var e=t.variableDB_.getName(this.getFieldValue("NAME"),a_.Procedures.NAME_TYPE),i=t.statementToCode(this,"STACK")||" pass\n";t.INFINITE_LOOP_TRAP&&(i=t.INFINITE_LOOP_TRAP.replace(/%1/g,"'"+this.id+"'")+i);var T=t.valueToCode(this,"RETURN",t.ORDER_NONE)||"";T&&(T=" return "+T+"\n");for(var E=[],n=0;n\n\n\n\t\n"+t.statementToCode(this,"HEAD")+"\n\n"+t.statementToCode(this,"BODY")+"\n\n'''",t.ORDER_ATOMIC]},xs=function(_,t){var e=t.statementToCode(this,"DO"),i=this.getFieldValue("LEVEL");return"\n"+e+"\n"},vs=function(_,t){var e=t.statementToCode(this,"DO"),i=this.getFieldValue("LEVEL");if("head"==i)var T="<"+i+'>\n\t\n'+e+"\n";else T="<"+i+">\n"+e+"\n";return T},Xs=function(_,t){var e=t.statementToCode(this,"DO"),i=this.getFieldValue("LEVEL");return"<"+i+">\n"+e+"\n"},Vs=function(_,t){var e=t.statementToCode(this,"DO"),i=t.valueToCode(this,"style"),T=this.getFieldValue("LEVEL");return"<"+T+" "+i+" >\n"+e+"\n"},ks=function(_,t){return['style="'+t.statementToCode(this,"STYLE")+'"',t.ORDER_ATOMIC]},ws=function(_,t){return'"},Ws=function(){return this.getFieldValue("KEY")+":"+this.getFieldValue("VALUE")+";"},Ks=function(){return this.getFieldValue("TEXT")+"\n"},zs=function(_){return _.getFieldValue("TEXT")+"\n"},Zs=function(_,t){return[_.getFieldValue("TEXT"),t.ORDER_ATOMIC]},Qs=function(_,t){return(t.valueToCode(_,"VALUE",t.ORDER_ATOMIC)||"")+"\n"},Js=function(){return""},qs=function(_,t){return["type("+(t.valueToCode(_,"VALUE",t.ORDER_MEMBER)||"___")+")",t.ORDER_ATOMIC]},js=function(_,t){for(var e=_.getFieldValue("NAME"),i=_.hasReturn_,T=new Array(_.itemCount_),E=0;E<_.itemCount_;E++)T[E]=t.valueToCode(_,"ARGUMENT"+E,t.ORDER_NONE)||"___";var n=e+"("+T.join(", ")+")";return i?[n,t.ORDER_ATOMIC]:n+"\n"},$s=function(_,t){var e=t.valueToCode(_,"MODULE",t.ORDER_ATOMIC),i=t.valueToCode(_,"NAME",t.ORDER_ATOMIC);return[e+"."+(i=i.substring(1,i.length-1)),t.ORDER_NONE]},_O=new a_.Generator("Python");_O.INDENT=" ",_O.addReservedWords("False,None,True,and,as,assert,break,class,continue,def,del,elif,else,except,exec,finally,for,from,global,if,import,in,is,lambda,nonlocal,not,or,pass,print,raise,return,try,while,with,yield,NotImplemented,Ellipsis,__debug__,quit,exit,copyright,license,credits,ArithmeticError,AssertionError,AttributeError,BaseException,BlockingIOError,BrokenPipeError,BufferError,BytesWarning,ChildProcessError,ConnectionAbortedError,ConnectionError,ConnectionRefusedError,ConnectionResetError,DeprecationWarning,EOFError,Ellipsis,EnvironmentError,Exception,FileExistsError,FileNotFoundError,FloatingPointError,FutureWarning,GeneratorExit,IOError,ImportError,ImportWarning,IndentationError,IndexError,InterruptedError,IsADirectoryError,KeyError,KeyboardInterrupt,LookupError,MemoryError,ModuleNotFoundError,NameError,NotADirectoryError,NotImplemented,NotImplementedError,OSError,OverflowError,PendingDeprecationWarning,PermissionError,ProcessLookupError,RecursionError,ReferenceError,ResourceWarning,RuntimeError,RuntimeWarning,StandardError,StopAsyncIteration,StopIteration,SyntaxError,SyntaxWarning,SystemError,SystemExit,TabError,TimeoutError,TypeError,UnboundLocalError,UnicodeDecodeError,UnicodeEncodeError,UnicodeError,UnicodeTranslateError,UnicodeWarning,UserWarning,ValueError,Warning,ZeroDivisionError,_,__build_class__,__debug__,__doc__,__import__,__loader__,__name__,__package__,__spec__,abs,all,any,apply,ascii,basestring,bin,bool,buffer,bytearray,bytes,callable,chr,classmethod,cmp,coerce,compile,complex,copyright,credits,delattr,dict,dir,divmod,enumerate,eval,exec,execfile,exit,file,filter,float,format,frozenset,getattr,globals,hasattr,hash,help,hex,id,input,int,intern,isinstance,issubclass,iter,len,license,list,locals,long,map,max,memoryview,min,next,object,oct,open,ord,pow,print,property,quit,range,raw_input,reduce,reload,repr,reversed,round,set,setattr,slice,sorted,staticmethod,str,sum,super,tuple,type,unichr,unicode,vars,xrange,zip"),_O.ORDER_ATOMIC=0,_O.ORDER_COLLECTION=1,_O.ORDER_STRING_CONVERSION=1,_O.ORDER_UNARY_POSTFIX=1,_O.ORDER_UNARY_PREFIX=2,_O.ORDER_MEMBER=2.1,_O.ORDER_FUNCTION_CALL=2.2,_O.ORDER_EXPONENTIATION=3,_O.ORDER_UNARY_SIGN=4,_O.ORDER_BITWISE_NOT=4,_O.ORDER_MULTIPLICATIVE=5,_O.ORDER_ADDITIVE=6,_O.ORDER_BITWISE_SHIFT=7,_O.ORDER_BITWISE_AND=8,_O.ORDER_BITWISE_XOR=9,_O.ORDER_BITWISE_OR=10,_O.ORDER_RELATIONAL=11,_O.ORDER_EQUALITY=11,_O.ORDER_LOGICAL_NOT=12,_O.ORDER_LOGICAL_AND=13,_O.ORDER_LOGICAL_OR=14,_O.ORDER_ASSIGNMENT=14,_O.ORDER_CONDITIONAL=15,_O.ORDER_LAMBDA=16,_O.ORDER_NONE=99,_O.ORDER_OVERRIDES=[[_O.ORDER_FUNCTION_CALL,_O.ORDER_MEMBER],[_O.ORDER_FUNCTION_CALL,_O.ORDER_FUNCTION_CALL],[_O.ORDER_MEMBER,_O.ORDER_MEMBER],[_O.ORDER_MEMBER,_O.ORDER_FUNCTION_CALL]],_O.init=function(){_O.PASS=this.INDENT+"pass\n",_O.definitions_=Object.create(null),_O.functionNames_=Object.create(null),_O.setups_=Object.create(null),_O.loops_=Object.create(null),_O.codeEnd_=Object.create(null),_O.variableDB_?_O.variableDB_.reset():_O.variableDB_=new r_(_O.RESERVED_WORDS_)},_O.finish=function(_){""!==_&&(_=(_=_.replace(/\n/g,"\n")).replace(/\n\s+$/,"\n"));var t=[];for(var e in _O.definitions_)t.push(_O.definitions_[e]);var i=[];for(var e in _O.functions_)i.push(_O.functions_[e]);var T=[];for(var e in _O.setups_)T.push(_O.setups_[e]);0!==T.length&&T.push("\n");var E=[];for(var e in _O.loops_)E.push(_O.loops_[e]);var n=[];for(var e in _O.codeEnd_)n.push(_O.codeEnd_[e]);return 0!==n.length&&n.push("\n"),E.length>0?t.join("\n")+"\n"+i.join("\n")+"\n"+T.join("")+"\n"+_+"while True:\n"+E.join("")+n.join("\n"):t.join("\n")+"\n"+i.join("\n")+"\n"+T.join("")+"\n"+_+n.join("\n")},_O.scrubNakedValue=function(_){return _+"\n"},_O.quote_=function(_){var t="'";return-1!==(_=_.replace(/\\/g,"\\\\").replace(/\n/g,"\\\n")).indexOf("'")&&(-1===_.indexOf('"')?t='"':_=_.replace(/'/g,"\\'")),t+_+t},_O.multiline_quote_=function(_){return"'''"+(_=_.replace(/'''/g,"\\'\\'\\'"))+"'''"},_O.scrub_=function(_,t,e){var i="";if(!_.outputConnection||!_.outputConnection.targetConnection){(E=_.getCommentText())&&(E=a_.utils.string.wrap(E,_O.COMMENT_WRAP-3),i+=_O.prefixLines(E+"\n","# "));for(var T=0;T<_.inputList.length;T++)if(_.inputList[T].type==a_.INPUT_VALUE){var E,n=_.inputList[T].connection.targetBlock();if(n)(E=_O.allNestedComments(n))&&(i+=_O.prefixLines(E,"# "))}}var o=_.nextConnection&&_.nextConnection.targetBlock();return i+t+(e?"":_O.blockToCode(o))},_O.getAdjustedInt=function(_,t,e,i){var T=e||0;_.workspace.options.oneBasedIndex&&T--;var E=_.workspace.options.oneBasedIndex?"1":"0",n=T?_O.ORDER_ADDITIVE:_O.ORDER_NONE,o=_O.valueToCode(_,t,n)||E;return a_.isNumber(o)?(o=parseInt(o,10)+T,i&&(o=-o)):(o=T>0?"int("+o+" + "+T+")":T<0?"int("+o+" - "+-T+")":"int("+o+")",i&&(o="-"+o)),o};const tO="#74A55B",eO={init:function(){this.setColour(tO),this.appendDummyInput("").appendField(a_.Msg.MIXLY_MIDI),this.appendValueInput("SUB").appendField(a_.Msg.MIXLY_SETUP).setCheck("var"),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(a_.Msg.MIXLY_RGB_PIN_COUNT)}},iO={init:function(){this.setColour(tO),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(a_.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(a_.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(a_.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},TO={init:function(){this.setColour(tO),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(a_.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(a_.Msg.MIXLY_FREQUENCY),this.appendValueInput("time").setCheck(Number).appendField(a_.Msg.MIXLY_DURATION),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(a_.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE2)}},EO={init:function(){this.setColour(tO),this.appendValueInput("SUB"),this.appendValueInput("LIST").appendField(a_.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS)}},nO={init:function(){this.setColour(tO),this.appendValueInput("SUB"),this.appendValueInput("TICKS").setCheck(Number).appendField(a_.Msg.MIXLY_MICROBIT_JS_SET_TEMPO).appendField(a_.Msg.MICROBIT_ACTUATOR_ticks),this.appendValueInput("BPM").setCheck(Number).appendField(a_.Msg.MIXLY_SPEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_MUSIC_SET_TEMPO)}},oO={init:function(){this.setColour(tO),this.appendValueInput("SUB"),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_Get_current_tempo),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_MUSIC_GET_TEMPO)}},sO={init:function(){this.setColour(tO),this.appendValueInput("SUB"),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_Reset_music),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_MUSIC_RESET)}},OO={init:function(){this.setColour(tO),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(a_.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},IO={init:function(){this.setColour(tO),this.appendDummyInput().appendField(a_.Msg.MIXLY_SETTING).appendField(a_.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(a_.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("bright").appendField(a_.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_EXTERN_LED_SETONOFF)}},aO={init:function(){this.setColour(tO),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(a_.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(a_.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(a_.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_EXTERN_LED_GETONOFF)}},pO={init:function(){this.setColour(tO),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(a_.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(a_.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(a_.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_EXTERN_LED_GETONOFF)}},MO={init:function(){this.setColour(tO),this.appendDummyInput().appendField(a_.Msg.MIXLY_SETTING).appendField(a_.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(a_.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("bright").appendField(a_.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_EXTERN_LED_SETBRIGHT)}},LO={init:function(){this.setColour(tO),this.appendValueInput("VAR").appendField(a_.Msg.MIXLY_SETUP+a_.Msg.MIXLY_SERVO),this.appendValueInput("PIN",Number).appendField(a_.Msg.MIXLY_PIN),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},RO={init:function(){this.setColour(tO),this.appendValueInput("PIN",Number).appendField(a_.Msg.MIXLY_SERVO).appendField(a_.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("DEGREE",Number).setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_DEGREE_0_180),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_SERVO_MOVE)}},rO={init:function(){this.setColour(tO),this.appendValueInput("VAR").appendField("360°"+a_.Msg.MIXLY_SERVO),this.appendValueInput("SPEED",Number).setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_SETTING+a_.Msg.blockpy_turtle_rotate+a_.Msg.MIXLY_SPEED+" (-10~10)"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_SERVO_360_TOOLTIP)}},SO={init:function(){this.setColour(tO),this.appendValueInput("PIN",Number).appendField("180°"+a_.Msg.MIXLY_SERVO).appendField(a_.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_SERVO_MOVE)}},lO={init:function(){this.setColour(tO),this.appendValueInput("PIN",Number).appendField("360°"+a_.Msg.MIXLY_SERVO).appendField(a_.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_SERVO_SPEED_TOOLIPS)}},AO={init:function(){this.setColour(tO),this.appendValueInput("PIN",Number).appendField("180°"+a_.Msg.MIXLY_SERVO).appendField(a_.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(a_.Msg.MIXLY_GET+a_.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setOutput(!0,Number),this.setInputsInline(!0)}},PO={init:function(){this.setColour(tO),this.appendValueInput("PIN",Number).appendField("360°"+a_.Msg.MIXLY_SERVO).appendField(a_.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(a_.Msg.MIXLY_GET+a_.Msg.MIXLY_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},NO={init:function(){this.setColour(tO),this.appendValueInput("SUB").appendField("初始化").setCheck("var"),this.appendDummyInput().appendField("电机驱动"),this.appendDummyInput().appendField("地址").appendField(new a_.FieldDropdown([["A","ms32006.ADDRESS_A"],["B","ms32006.ADDRESS_B"]]),"mode"),this.appendValueInput("SUB1").setCheck("var").setAlign(a_.inputs.Align.RIGHT).appendField("通信"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("初始化MS32006电机驱动,使用I2C通信")}},dO={init:function(){this.setColour(tO),this.appendValueInput("SUB").appendField("直流电机").setCheck("var"),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_Direction).appendField(new a_.FieldDropdown([[a_.Msg.CLOCKWISE,"ms32006.MOT_CW"],[a_.Msg.ANTI_CLOCKWISE,"ms32006.MOT_CCW"],[a_.Msg.MOTOR_N,"ms32006.MOT_N"],[a_.Msg.MOTOR_P,"ms32006.MOT_P"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_STEPPER_SET_SPEED),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("设置直流电机的状态及转速(0-100)")}},hO={init:function(){this.setColour(tO),this.appendValueInput("SUB").appendField("步进电机").setCheck("var"),this.appendDummyInput().appendField("选择").appendField(new a_.FieldDropdown([["A","ms32006.MOT_A"],["B","ms32006.MOT_B"]]),"mode"),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_Direction).appendField(new a_.FieldDropdown([[a_.Msg.CLOCKWISE,"ms32006.MOT_CW"],[a_.Msg.ANTI_CLOCKWISE,"ms32006.MOT_CCW"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField("转速"),this.appendValueInput("steps").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField("步数"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("设置步进电机的状态、转速、步数(0-2047)")}},uO={init:function(){this.setColour(tO),this.appendDummyInput("").appendField(a_.Msg.MIXLY_RGB),this.appendValueInput("SUB").appendField(a_.Msg.MIXLY_SETUP).setCheck("var"),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_PIN),this.appendValueInput("LEDCOUNT").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_RGB_COUNT),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(a_.Msg.MIXLY_RGB_PIN_COUNT)}},mO={init:function(){this.setColour(tO),this.appendDummyInput("").appendField(a_.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("_LED_").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(a_.Msg.MIXLY_RGB_NUM_R_G_B_MP)}},CO={init:function(){this.setColour(tO),this.appendDummyInput("").appendField(a_.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("RVALUE").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(a_.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},cO={init:function(){this.setColour(tO),this.appendDummyInput("").appendField(a_.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(a_.Msg.MIXLY_ESP32_RGB_WRITE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(a_.Msg.MIXLY_ESP32_MUSIC_WRI)}},HO={init:function(){this.setColour(tO),this.appendDummyInput("").appendField(a_.Msg.CONTROLS_FOR_INPUT_WITH+"uart").appendField(new a_.FieldDropdown([["uart1","uart1"],["uart2","uart2"]]),"key"),this.appendValueInput("SUB").appendField(a_.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(a_.Msg.MIXLY_SETUP+a_.Msg.LISTS_SET_INDEX_INPUT_TO+"SYN6288"+a_.Msg.MIXLY_AipSpeech_synthesis),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setFieldValue("LTR308","key")}},DO={init:function(){this.setColour(tO),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("VOICE").setCheck(Number).appendField(a_.Msg.MIXLY_SET_VOLUME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_SET_VOLUME_TOOLTIP)}},YO={init:function(){this.setColour(tO),this.appendValueInput("SUB").appendField("SYN6288"),this.appendDummyInput().appendField(a_.Msg.MIXLY_GET_VOLUME),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_SET_VOLUME_TOOLTIP)}},UO={init:function(){this.setColour(tO),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("VOICE").setCheck(Number).appendField(a_.Msg.MIXLY_PLAY_HINTS),this.appendDummyInput().appendField(a_.Msg.MIXLY_PROGRAM_BLOCK).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[a_.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"mode"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_PLAY_HINTS_TOOLTIP)}},BO={init:function(){this.setColour(tO),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("data").setCheck(String).appendField(a_.Msg.MIXLY_AipSpeech_synthesis),this.appendValueInput("VOICE").setCheck(Number).appendField(a_.Msg.MIXLY_BACKGROUND_MUSIC),this.appendDummyInput().appendField(a_.Msg.MIXLY_PROGRAM_BLOCK).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[a_.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"mode"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_PLAY_TTS_TOOLTIP)}},gO={init:function(){this.setColour(tO),this.appendDummyInput("").appendField(new a_.FieldDropdown(p_.Profile.default.extern_addr),"PIN"),this.setOutput(!0,Number)}},GO={init:function(){this.setColour(tO),this.appendDummyInput().appendField(a_.Msg.ME_GO_MOTOR_EXTERN+a_.Msg.MIXLY_MOTOR).appendField(a_.Msg.PIN_NUMBERING).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_LEFT,"0"],[a_.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_MIXBOT_MOTOR_EXTERN_TOOLTIP)}},FO={init:function(){this.setColour(tO),this.appendDummyInput().appendField(a_.Msg.ME_GO_MOTOR_EXTERN+a_.Msg.MIXLY_MOTOR).appendField(a_.Msg.PIN_NUMBERING).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_LEFT,"0"],[a_.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_GET+a_.Msg.MIXLY_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},yO={init:function(){this.setColour(tO),this.appendDummyInput().appendField(a_.Msg.ME_GO_MOTOR_EXTERN+a_.Msg.MIXLY_TRAFFIC_LIGHT).appendField(a_.Msg.PIN_NUMBERING).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_LEFT,"0"],[a_.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.LISTS_SET_INDEX_SET).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_MICROBIT_Turn_off_display,"0"],[a_.Msg.MIXLY_TRAFFIC_LIGHT_RED_ON,"1"],[a_.Msg.MIXLY_TRAFFIC_LIGHT_RED_BLINK,"2"],[a_.Msg.MIXLY_TRAFFIC_LIGHT_YELLOW_ON,"3"],[a_.Msg.MIXLY_TRAFFIC_LIGHT_YELLOW_BLINK,"4"],[a_.Msg.MIXLY_TRAFFIC_LIGHT_GREEN_ON,"5"],[a_.Msg.MIXLY_TRAFFIC_LIGHT_GREEN_BLINK,"6"]]),"light"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},fO={init:function(){this.setColour(tO),this.appendDummyInput().appendField(a_.Msg.ME_GO_MOTOR_EXTERN).appendField(new a_.FieldDropdown([[a_.Msg.COLOUR_RGB_WHITE,"W"],[a_.Msg.COLOUR_RGB_RED,"R"],[a_.Msg.COLOUR_RGB_YELLOW,"Y"],[a_.Msg.COLOUR_RGB_GREEN,"G"],[a_.Msg.COLOUR_RGB_BLUE,"B"]]),"color").appendField("LED").appendField(a_.Msg.PIN_NUMBERING).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_LEFT,"0"],[a_.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendValueInput("value").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.BRIGHTNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},bO={init:function(){this.setColour(tO),this.appendDummyInput().appendField(a_.Msg.ME_GO_MOTOR_EXTERN).appendField(new a_.FieldDropdown([[a_.Msg.COLOUR_RGB_WHITE,"W"],[a_.Msg.COLOUR_RGB_RED,"R"],[a_.Msg.COLOUR_RGB_YELLOW,"Y"],[a_.Msg.COLOUR_RGB_GREEN,"G"],[a_.Msg.COLOUR_RGB_BLUE,"B"]]),"color").appendField("LED").appendField(a_.Msg.PIN_NUMBERING).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_LEFT,"0"],[a_.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(a_.Msg.MIXLY_GET+a_.Msg.BRIGHTNESS),this.setOutput(!0,Number),this.setInputsInline(!0)}},xO={init:function(){this.setColour(tO),this.appendDummyInput().appendField(a_.Msg.ME_GO_MOTOR_EXTERN+a_.Msg.MIXLY_SERVO_MOTOR).appendField(a_.Msg.PIN_NUMBERING).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_LEFT,"0"],[a_.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(a_.Msg.MIXLY_GET).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"[0]"],[a_.Msg.MIXLY_SPEED,"[1]"],[a_.Msg.MATH_SINGLE_OP_ABSOLUTE+a_.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"[2]"],[a_.Msg.MIXLY_RELATIVE+a_.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"[3]"],[a_.Msg.MIXLY_MIXBOT_SERVO_BLOCK_OR_NOT,"[4]"],[a_.Msg.MIXLY_MIXBOT_SERVO_FINISH_OR_NOT,"[5]"],[a_.Msg.MIXLY_ALL,""]]),"status"),this.setOutput(!0,Number),this.setInputsInline(!0)}},vO={init:function(){this.setColour(tO),this.appendDummyInput().appendField(a_.Msg.ME_GO_MOTOR_EXTERN+a_.Msg.MIXLY_SERVO_MOTOR).appendField(a_.Msg.PIN_NUMBERING).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_LEFT,"0"],[a_.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(a_.Msg.MIXLY_MIXBOT_SERVO_SET_STOP_MODE).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_KEEP,"0"],[a_.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_COAST,"1"],[a_.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_BRAKE,"2"]]),"status"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},XO={init:function(){this.setColour(tO),this.appendDummyInput().appendField(a_.Msg.ME_GO_MOTOR_EXTERN+a_.Msg.MIXLY_SERVO_MOTOR).appendField(a_.Msg.PIN_NUMBERING).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_LEFT,"0"],[a_.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(a_.Msg.MIXLY_STOP),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},VO={init:function(){this.setColour(tO),this.appendDummyInput().appendField(a_.Msg.ME_GO_MOTOR_EXTERN+a_.Msg.MIXLY_SERVO_MOTOR).appendField(a_.Msg.MATH_SINGLE_OP_ABSOLUTE+a_.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+a_.Msg.MSG.run).appendField(a_.Msg.PIN_NUMBERING).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_LEFT,"0"],[a_.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(a_.Msg.MIXLY_MODE).setAlign(a_.inputs.Align.RIGHT).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_SPEED+a_.Msg.MIXLY_MODE,"0"],[a_.Msg.MIXLY_MICROBIT_JS_BLE_POWER+a_.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(a_.inputs.Align.RIGHT).appendField("%"),this.appendDummyInput().appendField(a_.Msg.MIXLY_MIXBOT_SERVO_TURN_DIRECTION).setAlign(a_.inputs.Align.RIGHT).appendField(new a_.FieldDropdown([[a_.Msg.CLOCKWISE,"0"],[a_.Msg.MIXLY_MIXBOT_SERVO_NEAREST_PATH,"1"],[a_.Msg.ANTI_CLOCKWISE,"2"]]),"direction"),this.appendValueInput("angle").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_DISPLAY_MATRIX_ROTATE+a_.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_MIXBOT_SERVO_ABSOLUTE_ANGLE_TOOLTIP)}},kO={init:function(){this.setColour(tO),this.appendDummyInput().appendField(a_.Msg.ME_GO_MOTOR_EXTERN+a_.Msg.MIXLY_SERVO_MOTOR).appendField(a_.Msg.MIXLY_RELATIVE+a_.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+a_.Msg.MSG.run).appendField(a_.Msg.PIN_NUMBERING).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_LEFT,"0"],[a_.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(a_.Msg.MIXLY_MIXBOT_SERVO_RELATIVE_ORIGIN_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},wO={init:function(){this.setColour(tO),this.appendDummyInput().appendField(a_.Msg.ME_GO_MOTOR_EXTERN+a_.Msg.MIXLY_SERVO_MOTOR).appendField(a_.Msg.MIXLY_RELATIVE+a_.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+a_.Msg.MSG.run).appendField("("+a_.Msg.MIXLY_MIXBOT_SERVO_LIKE_ENCODING_MOTOR+")").appendField(a_.Msg.PIN_NUMBERING).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_LEFT,"0"],[a_.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(a_.Msg.MIXLY_MODE).setAlign(a_.inputs.Align.RIGHT).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_SPEED+a_.Msg.MIXLY_MODE,"0"],[a_.Msg.MIXLY_MICROBIT_JS_BLE_POWER+a_.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(a_.inputs.Align.RIGHT).appendField("%"),this.appendValueInput("angle").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_DISPLAY_MATRIX_ROTATE+a_.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_MIXBOT_SERVO_RELATIVE_ANGLE_TOOLTIP)}},WO={init:function(){this.setColour(tO),this.appendDummyInput().appendField(a_.Msg.ME_GO_MOTOR_EXTERN+a_.Msg.MIXLY_SERVO_MOTOR).appendField(a_.Msg.MIXLY_RELATIVE+a_.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+a_.Msg.MSG.run).appendField("("+a_.Msg.MIXLY_MIXBOT_SERVO_LIKE_ORDINARY_MOTOR+")").appendField(a_.Msg.PIN_NUMBERING).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_LEFT,"0"],[a_.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(a_.Msg.MIXLY_MODE).setAlign(a_.inputs.Align.RIGHT).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_SPEED+a_.Msg.MIXLY_MODE,"0"],[a_.Msg.MIXLY_MICROBIT_JS_BLE_POWER+a_.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(a_.inputs.Align.RIGHT).appendField("%"),this.appendDummyInput().appendField(a_.Msg.MIXLY_MIXBOT_SERVO_TURN_DIRECTION).setAlign(a_.inputs.Align.RIGHT).appendField(new a_.FieldDropdown([[a_.Msg.CLOCKWISE,"0"],[a_.Msg.ANTI_CLOCKWISE,"2"]]),"direction"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},KO={init:function(){this.setColour(tO),this.appendDummyInput().appendField(a_.Msg.MIXBOT).appendField(a_.Msg.ME_GO_MOTOR_EXTERN).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_MOTOR,"ext_motor"],[a_.Msg.MIXLY_TRAFFIC_LIGHT,"ext_traffic"],[a_.Msg.COLOUR_RGB_WHITE+"LED","W_LED"],[a_.Msg.COLOUR_RGB_RED+"LED","R_LED"],[a_.Msg.COLOUR_RGB_YELLOW+"LED","Y_LED"],[a_.Msg.COLOUR_RGB_GREEN+"LED","G_LED"],[a_.Msg.COLOUR_RGB_BLUE+"LED","B_LED"],[a_.Msg.MIXLY_SERVO_MOTOR,"ext_servo"]]),"name"),this.appendDummyInput().appendField(a_.Msg.MIXLY_MIXBOT_EXTERN_GET_ADDR),this.setOutput(!0),this.setInputsInline(!0)}},zO={init:function(){this.setColour(tO),this.appendDummyInput().appendField(a_.Msg.MIXBOT).appendField(a_.Msg.ME_GO_MOTOR_EXTERN).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_MOTOR,"ext_motor"],[a_.Msg.MIXLY_TRAFFIC_LIGHT,"ext_traffic"],[a_.Msg.COLOUR_RGB_WHITE+"LED","W_LED"],[a_.Msg.COLOUR_RGB_RED+"LED","R_LED"],[a_.Msg.COLOUR_RGB_YELLOW+"LED","Y_LED"],[a_.Msg.COLOUR_RGB_GREEN+"LED","G_LED"],[a_.Msg.COLOUR_RGB_BLUE+"LED","B_LED"],[a_.Msg.MIXLY_SERVO_MOTOR,"ext_servo"]]),"name"),this.appendDummyInput().appendField(a_.Msg.MIXLY_MIXBOT_EXTERN_SET_ADDR),this.appendValueInput("old").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE),this.appendValueInput("new").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_UPDATE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},ZO="#6C9858",QO={init:function(){this.setColour(ZO),this.appendDummyInput("").appendField(new a_.FieldDropdown([["L1","1"],["L2","2"]]),"op"),this.setOutput(!0)}},JO={init:function(){this.setColour(ZO),this.appendDummyInput("").appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_ESP32_ON,"1"],[a_.Msg.MIXLY_ESP32_OFF,"0"],[a_.Msg.MIXLY_ESP32_TOGGLE,"-1"]]),"flag"),this.setOutput(!0),this.setTooltip(a_.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW)}},qO={init:function(){this.setColour(ZO),this.appendDummyInput().appendField(a_.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(a_.Msg.MIXLY_BUILDIN_LED),this.appendValueInput("bright").appendField(a_.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_LED_SETONOFF)}},jO={init:function(){this.setColour(ZO),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("led").appendField(a_.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput().appendField(a_.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_LED_GETONOFF)}},$O={init:function(){this.setColour(ZO),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("led").appendField(a_.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput().appendField(a_.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_LED_GETONOFF)}},_I={init:function(){this.setColour(ZO),this.appendDummyInput().appendField(a_.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(a_.Msg.MIXLY_BUILDIN_LED),this.appendValueInput("bright").appendField(a_.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_SETTING+a_.Msg.MIXLY_BUILDIN_LED+a_.Msg.MIXLY_BRIGHTNESS+"(0-100%)")}},tI={init:function(){this.setColour(ZO),this.appendDummyInput().appendField(a_.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(a_.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput("").appendField(a_.Msg.MIXLY_LCD_SETCOLOR).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_LIGHT_OFF,"0"],[a_.Msg.MIXLY_LIGHT_RED,"1"],[a_.Msg.MIXLY_LIGHT_GREEN,"2"],[a_.Msg.MIXLY_LIGHT_BLUE,"3"],[a_.Msg.MIXLY_LIGHT_YELLOW,"4"],[a_.Msg.MIXLY_LIGHT_CYAN,"5"],[a_.Msg.MIXLY_LIGHT_PURPLE,"6"],[a_.Msg.MIXLY_LIGHT_WHITE,"7"]]),"colorvalue"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip()}},eI={init:function(){this.setColour(ZO),this.appendDummyInput().appendField(a_.Msg.MIXLY_SETTING).appendField(a_.Msg.MIXLY_BUILDIN_LED).appendField(new a_.FieldDropdown([[a_.Msg.COLOUR_RGB_RED,"r"],[a_.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendValueInput("bright").appendField(a_.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_LED_SETONOFF)}},iI={init:function(){this.setColour(ZO),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(a_.Msg.MIXLY_BUILDIN_LED).appendField(new a_.FieldDropdown([[a_.Msg.COLOUR_RGB_RED,"r"],[a_.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendDummyInput().appendField(a_.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_LED_GETONOFF)}},TI={init:function(){this.setColour(ZO),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(a_.Msg.MIXLY_BUILDIN_LED).appendField(new a_.FieldDropdown([[a_.Msg.COLOUR_RGB_RED,"r"],[a_.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendDummyInput().appendField(a_.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_LED_GETONOFF)}},EI={init:function(){this.setColour(ZO),this.appendDummyInput().appendField(a_.Msg.MIXLY_SETTING).appendField(a_.Msg.MIXLY_BUILDIN_LED).appendField(new a_.FieldDropdown([[a_.Msg.COLOUR_RGB_RED,"r"],[a_.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendValueInput("bright").appendField(a_.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_SETTING+a_.Msg.MIXLY_BUILDIN_LED+a_.Msg.MIXLY_BRIGHTNESS+"(0-10)")}},nI={init:function(){this.setColour(ZO),this.appendDummyInput("").appendField(new a_.FieldDropdown([["L1","20"],["L2","21"]]),"op"),this.setOutput(!0)}},oI={init:function(){this.setColour(ZO),this.appendDummyInput("").appendField(a_.Msg.MIXLY_RGB),this.appendValueInput("_LED_").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);switch(p_.Boards.getSelectedBoardKey()){case"micropython:esp32c3:mixgo_cc":case"micropython:esp32s2:mixgo_ce":this.setTooltip(a_.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOCC);break;case"micropython:esp32c3:mixgo_me":default:this.setTooltip(a_.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOME);break;case"micropython:esp32:mPython":this.setTooltip(a_.Msg.MIXLY_RGB_NUM_R_G_B_MPYTHON)}}},sI={init:function(){this.setColour(ZO),this.appendDummyInput("").appendField(a_.Msg.MIXLY_RGB),this.appendValueInput("RVALUE").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(a_.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},OI={init:function(){this.setColour(ZO),this.appendDummyInput("").appendField(a_.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(a_.Msg.MIXLY_RAINBOW),this.appendValueInput("time").setCheck(Number).appendField(a_.Msg.MIXLY_DURATION).appendField(a_.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},II={init:function(){this.setColour(ZO),this.appendDummyInput("").appendField(a_.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(a_.Msg.MIXLY_CHASE),this.appendValueInput("RVALUE").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_RGB_B),this.appendValueInput("time").setCheck(Number).appendField(a_.Msg.PYTHON_RANGE_STEP).appendField(a_.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},aI={init:function(){this.setColour(ZO),this.appendDummyInput("").appendField(a_.Msg.MIXLY_RGB),this.appendDummyInput().appendField(a_.Msg.MIXLY_ESP32_RGB_WRITE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(a_.Msg.MIXLY_ESP32_MUSIC_WRI)}},pI={init:function(){this.setColour(ZO),this.appendDummyInput("").appendField(a_.Msg.MIXLY_RGB),this.appendValueInput("_LED_").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);switch(p_.Boards.getSelectedBoardKey()){case"micropython:esp32c3:mixgocc":this.setTooltip(a_.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOCC);break;case"micropython:esp32c3:mixgome":default:this.setTooltip(a_.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOME);break;case"micropython:esp32:mPython":this.setTooltip(a_.Msg.MIXLY_RGB_NUM_R_G_B_MPYTHON)}}},MI={init:function(){this.setColour(ZO),this.appendDummyInput("").appendField(a_.Msg.MIXLY_RGB),this.appendValueInput("RVALUE").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(a_.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},LI={init:function(){this.setColour(ZO),this.appendDummyInput("").appendField(a_.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(a_.Msg.MIXLY_CHASE),this.appendValueInput("RVALUE").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_RGB_B),this.appendValueInput("time").setCheck(Number).appendField(a_.Msg.PYTHON_RANGE_STEP).appendField(a_.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},RI={init:function(){this.setColour(ZO),this.appendValueInput("TICKS").setCheck(Number).appendField(a_.Msg.MIXLY_MICROBIT_JS_SET_TEMPO).appendField(a_.Msg.MICROBIT_ACTUATOR_ticks),this.appendValueInput("BPM").setCheck(Number).appendField(a_.Msg.MIXLY_SPEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_MUSIC_SET_TEMPO)}},rI={init:function(){this.setColour(ZO),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_Get_current_tempo),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_MUSIC_GET_TEMPO)}},SI={init:function(){this.setColour(ZO),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_Reset_music),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_MUSIC_RESET)}},lI={init:function(){this.setColour(ZO),this.appendDummyInput().appendField(a_.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(a_.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(a_.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},AI={init:function(){this.setColour(ZO),this.appendDummyInput().appendField(a_.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(a_.Msg.MIXLY_FREQUENCY),this.appendValueInput("time").setCheck(Number).appendField(a_.Msg.MIXLY_DURATION),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(a_.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE2)}},PI={init:function(){this.setColour(ZO),this.appendDummyInput().appendField(a_.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},NI={init:function(){this.setColour(ZO),this.appendValueInput("LIST").appendField(a_.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS)}},dI={init:function(){this.setColour(ZO),this.appendDummyInput().appendField(a_.Msg.MOTOR_DC).appendField(new a_.FieldDropdown([["1","1"],["2","2"],["3","3"]]),"wheel"),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_Direction).appendField(new a_.FieldDropdown([[a_.Msg.CLOCKWISE,"CW"],[a_.Msg.ANTI_CLOCKWISE,"CCW"],[a_.Msg.MOTOR_P,"P"],[a_.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},hI={init:function(){this.setColour(ZO),this.appendDummyInput().appendField("MixGo Car").appendField(new a_.FieldDropdown([[a_.Msg.blockpy_forward,"F"],[a_.Msg.blockpy_backward,"B"],[a_.Msg.blockpy_left,"L"],[a_.Msg.blockpy_right,"R"]]),"VAR"),this.appendValueInput("speed").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},uI={init:function(){this.setColour(ZO),this.appendDummyInput("").appendField("MixGo Car").appendField(new a_.FieldDropdown([[a_.Msg.MOTOR_P,"P"],[a_.Msg.MOTOR_N,"N"]]),"VAR"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},mI={init:function(){this.setColour(ZO),this.appendDummyInput().appendField(a_.Msg.MOTOR_DC).appendField(new a_.FieldDropdown([[a_.Msg.MIXLYCAR_WHEEL_LEFT,"L"],[a_.Msg.MIXLYCAR_WHEEL_RIGHT,"R"]]),"wheel"),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_Direction).appendField(new a_.FieldDropdown([[a_.Msg.CLOCKWISE,"CW"],[a_.Msg.ANTI_CLOCKWISE,"CCW"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},CI={init:function(){this.setColour(ZO),this.appendDummyInput().appendField(a_.Msg.MOTOR_DC).appendField(new a_.FieldDropdown([[a_.Msg.MIXLYCAR_WHEEL_LEFT,"L"],[a_.Msg.MIXLYCAR_WHEEL_RIGHT,"R"]]),"wheel"),this.appendDummyInput().appendField(a_.Msg.MIXLY_STOP).appendField(new a_.FieldDropdown([[a_.Msg.MOTOR_P,"P"],[a_.Msg.MOTOR_N,"N"]]),"direction"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},cI={init:function(){this.setColour(ZO),this.appendDummyInput().appendField(a_.Msg.MIXLY_MIXBOT_MOTOR_STATUS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_MIXBOT_MOTOR_STATUS_TOOLTIP)}},HI={init:function(){this.setColour(ZO),this.appendDummyInput().appendField(a_.Msg.MIXBOT).appendField(new a_.FieldDropdown([[a_.Msg.blockpy_forward,"F"],[a_.Msg.blockpy_backward,"B"],[a_.Msg.blockpy_left,"L"],[a_.Msg.blockpy_right,"R"]]),"VAR"),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"PWR"],[a_.Msg.MIXLY_SPEED,"SPEED"],[a_.Msg.MIXLY_MIXBOT_MOTOR_TURNS,"TURNS"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_MIXBOT_MOVE_TOOLTIP)}},DI={init:function(){this.setColour(ZO),this.appendDummyInput().appendField(a_.Msg.MIXBOT).appendField(new a_.FieldDropdown([[a_.Msg.MOTOR_P,"P"],[a_.Msg.MOTOR_N,"N"]]),"VAR"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},YI={init:function(){this.setColour(ZO),this.appendDummyInput().appendField(a_.Msg.MIXBOT).appendField(a_.Msg.MIXLY_MOTOR).appendField(new a_.FieldDropdown([[a_.Msg.TEXT_TRIM_LEFT,"1"],[a_.Msg.TEXT_TRIM_RIGHT,"2"],[a_.Msg.TEXT_TRIM_BOTH,"0"]]),"wheel"),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"PWR"],[a_.Msg.MIXLY_SPEED,"SPEED"],[a_.Msg.MIXLY_MIXBOT_MOTOR_TURNS,"TURNS"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_MIXBOT_MOVE_TOOLTIP)}},UI={init:function(){this.setColour(ZO),this.appendDummyInput().appendField(a_.Msg.MIXLY_MIXBOT_BUZZER),this.appendDummyInput().appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_ON,"0"],[a_.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_OFF,"1"]]),"on_off"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},BI={init:function(){this.setColour(ZO),this.appendDummyInput().appendField(a_.Msg.BITBOT).appendField(new a_.FieldDropdown([[a_.Msg.blockpy_forward,"F"],[a_.Msg.blockpy_backward,"B"],[a_.Msg.blockpy_left,"L"],[a_.Msg.blockpy_right,"R"]]),"VAR"),this.appendValueInput("speed").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},gI={init:function(){this.setColour(ZO),this.appendDummyInput().appendField(a_.Msg.BITBOT).appendField(new a_.FieldDropdown([[a_.Msg.MOTOR_P,"P"],[a_.Msg.MOTOR_N,"N"]]),"VAR"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},GI={init:function(){this.setColour(ZO),this.appendDummyInput().appendField(a_.Msg.BITBOT).appendField(a_.Msg.MIXLY_MOTOR).appendField(new a_.FieldDropdown([[a_.Msg.TEXT_TRIM_LEFT,"0"],[a_.Msg.TEXT_TRIM_RIGHT,"1"]]),"wheel"),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_Direction).appendField(new a_.FieldDropdown([[a_.Msg.CLOCKWISE,"CW"],[a_.Msg.ANTI_CLOCKWISE,"CCW"],[a_.Msg.MOTOR_P,"P"],[a_.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},FI={init:function(){this.setColour(ZO),this.appendValueInput("bright").appendField(a_.Msg.MIXLY_MIXBOT_SOUND_SET_LOUDNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_LED_SETONOFF)}},yI={init:function(){this.setColour(ZO),this.appendDummyInput().appendField(a_.Msg.MIXLY_MIXBOT_SOUND_LOUDNESS+"(%)"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_LED_GETONOFF)}},fI={init:function(){this.setColour(ZO),this.appendValueInput("bright").appendField(a_.Msg.MIXLY_SETTING+a_.Msg.MIXLY_MIXBOT_BUZZER+a_.Msg.MIXLY_MP3_VOL),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_LED_SETONOFF)}},bI={init:function(){this.setColour(ZO),this.appendDummyInput().appendField(a_.Msg.MIXLY_GET+a_.Msg.MIXLY_MIXBOT_BUZZER+a_.Msg.MIXLY_MP3_VOL+"(%)"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_LED_GETONOFF)}},xI={init:function(){this.setColour(ZO),this.appendValueInput("PATH").appendField(a_.Msg.MIXLY_RECORD_AUDIO).appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.appendValueInput("TIME").setCheck(Number).appendField(a_.Msg.MIXLY_GET_PRESSES_TIME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},vI={init:function(){this.setColour(ZO),this.appendValueInput("PATH").appendField(a_.Msg.MIXLY_PLAY_AUDIO).appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},XI={init:function(){this.setColour(ZO),this.appendValueInput("PATH").appendField(a_.Msg.MIXLY_PLAY_ONLINE_AUDIO).appendField("URL"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},VI={init:function(){this.setColour(ZO),this.appendDummyInput().appendField(a_.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(a_.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(a_.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},kI={init:function(){this.setColour(ZO),this.appendDummyInput().appendField(a_.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},wI={init:function(){this.setColour(ZO),this.appendDummyInput().appendField(a_.Msg.LISTS_SET_INDEX_SET+a_.Msg.ME_GO_MOTOR_EXTERN).appendField(a_.Msg.PIN_NUMBERING).appendField(new a_.FieldDropdown([["1","1"],["2","2"]]),"index"),this.appendValueInput("duty").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.blynk_IOT_IR_POWER+a_.Msg.MIXLY_PINMODEOUT),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip()}},WI={init:function(){this.setColour(ZO),this.appendDummyInput().appendField(a_.Msg.MIXLY_GET+a_.Msg.ME_GO_MOTOR_EXTERN).appendField(a_.Msg.PIN_NUMBERING).appendField(new a_.FieldDropdown([["1","1"],["2","2"]]),"index"),this.appendDummyInput().setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.blynk_IOT_IR_POWER+a_.Msg.MIXLY_PINMODEOUT+a_.Msg.MIXLY_DUTY_RATIO),this.setOutput(!0,Number),this.setInputsInline(!0)}},KI={init:function(){this.setColour(ZO),this.appendDummyInput().appendField(a_.Msg.LISTS_SET_INDEX_SET+a_.Msg.ME_GO_MOTOR_EXTERN).appendField(a_.Msg.MIXLY_ALL+a_.Msg.PIN_NUMBERING),this.appendValueInput("duty").setCheck(Number).setAlign(a_.ALIGN_RIGHT).appendField(a_.Msg.blynk_IOT_IR_POWER+a_.Msg.MIXLY_PINMODEOUT+a_.Msg.MIXLY_FREQUENCY),this.appendDummyInput().appendField("Hz"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_MIXBOT_MOTOR_EXTERN_TOOLTIP)}},zI="#90A244",ZI={init:function(){this.setColour(zI),this.appendDummyInput("").appendField(a_.Msg.CONTROLS_FOR_INPUT_WITH+"uart").appendField(new a_.FieldDropdown([["uart1","uart1"],["uart2","uart2"]]),"key"),this.appendValueInput("SUB").appendField(a_.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(a_.Msg.MIXLY_SETUP+a_.Msg.LISTS_SET_INDEX_INPUT_TO+"MixGo AI"+a_.Msg.MSG.catSensor),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},QI={init:function(){this.setColour(zI),this.appendValueInput("VAR").appendField(a_.Msg.MIXLY_QR_CODE+a_.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(a_.Msg.MIXLY_ALL_CODE_ANALYSIS),this.appendDummyInput().appendField(a_.Msg.MIXLY_GET).appendField(new a_.FieldDropdown([[a_.Msg.OLED_STRING,"info1"],[a_.Msg.MIXLY_POSITION_XY+"-xywh","rect"],["x"+a_.Msg.MIXLY_POSITION_XY,"rect[0]"],["y"+a_.Msg.MIXLY_POSITION_XY,"rect[1]"],["w"+a_.Msg.MIXLY_POSITION_XY,"rect[2]"],["h"+a_.Msg.MIXLY_POSITION_XY,"rect[3]"],[a_.Msg.MICROPYTHON_HUSKYLENS_X_CENTERED+a_.Msg.MIXLY_POSITION_XY,"xc"],[a_.Msg.MICROPYTHON_HUSKYLENS_Y_CENTERED+a_.Msg.MIXLY_POSITION_XY,"yc"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_AI_SENSOR_QR_CODE_TOOLTIP)}},JI={init:function(){this.setColour(zI),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(a_.Msg.MIXLY_GET).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_QR_CODE+a_.Msg.MIXPY_OBJECT,"qrcode"],[a_.Msg.MIXLY_BAR_CODE+a_.Msg.MIXPY_OBJECT,"barcode"],[a_.Msg.MIXLY_TAG+a_.Msg.MIXPY_OBJECT,"apriltag"]]),"TYPE"),this.appendDummyInput().appendField(a_.Msg.MIXLY_ANALYSIS_RESULT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip()}},qI={init:function(){this.setColour(zI),this.appendValueInput("SUB"),this.appendDummyInput().appendField(a_.Msg.MIXLY_QR_CODE_RECOGNTITION),this.appendDummyInput().setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.PROCEDURES_DEFRETURN_RETURN+"[qrcode]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_AI_SENSOR_QR_CODE_RECOGNTITION_TOOLTIP)}},jI={init:function(){this.setColour(zI),this.appendValueInput("SUB"),this.appendValueInput("RX").appendField(a_.Msg.MIXLY_SETTING+a_.Msg.MIXLY_ETHERNET_CLINET_PORT).appendField("RX#").setCheck(Number).setAlign(a_.inputs.Align.RIGHT),this.appendValueInput("TX").appendField("TX#").setCheck(Number).setAlign(a_.inputs.Align.RIGHT),this.appendDummyInput().appendField(a_.Msg.SOFT_RESET+a_.Msg.MIXLY_ESP32_RGB_WRITE).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[a_.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"mode"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_AI_SENSOR_CONFIG_TOOLTIP)}},$I={init:function(){this.setColour(zI),this.appendValueInput("SUB"),this.appendValueInput("led1").appendField(a_.Msg.MIXLY_SETTING).appendField("RGB1").setCheck(Number).setAlign(a_.inputs.Align.RIGHT),this.appendValueInput("led2").appendField("RGB2").setCheck(Number).setAlign(a_.inputs.Align.RIGHT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_AI_SENSOR_CONFIG_TOOLTIP)}},_a={init:function(){this.setColour(zI),this.appendValueInput("VAR").appendField(a_.Msg.MIXLY_BAR_CODE+a_.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(a_.Msg.MIXLY_ALL_CODE_ANALYSIS),this.appendDummyInput().appendField(a_.Msg.MIXLY_GET).appendField(new a_.FieldDropdown([[a_.Msg.OLED_STRING,"info1"],[a_.Msg.MIXLY_POSITION_XY+"-xywh","rect"],["x"+a_.Msg.MIXLY_POSITION_XY,"rect[0]"],["y"+a_.Msg.MIXLY_POSITION_XY,"rect[1]"],["w"+a_.Msg.MIXLY_POSITION_XY,"rect[2]"],["h"+a_.Msg.MIXLY_POSITION_XY,"rect[3]"],[a_.Msg.MICROPYTHON_HUSKYLENS_X_CENTERED+a_.Msg.MIXLY_POSITION_XY,"xc"],[a_.Msg.MICROPYTHON_HUSKYLENS_Y_CENTERED+a_.Msg.MIXLY_POSITION_XY,"yc"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_AI_SENSOR_BAR_CODE_TOOLTIP)}},ta={init:function(){this.setColour(zI),this.appendValueInput("SUB"),this.appendDummyInput().appendField(a_.Msg.MIXLY_BAR_CODE_RECOGNTITION),this.appendDummyInput().setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.PROCEDURES_DEFRETURN_RETURN+"[barcode]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_AI_SENSOR_BAR_CODE_RECOGNTITION_TOOLTIP)}},ea={init:function(){this.setColour(zI),this.appendValueInput("VAR").appendField(a_.Msg.MIXLY_TAG+a_.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(a_.Msg.MIXLY_ALL_CODE_ANALYSIS),this.appendDummyInput().appendField(a_.Msg.MIXLY_GET).appendField(new a_.FieldDropdown([[a_.Msg.OLED_STRING,"info1"],[a_.Msg.blockpy_turtle_rotate+a_.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"info2"],[a_.Msg.MIXLY_POSITION_XY+"-xywh","rect"],["x"+a_.Msg.MIXLY_POSITION_XY,"rect[0]"],["y"+a_.Msg.MIXLY_POSITION_XY,"rect[1]"],["w"+a_.Msg.MIXLY_POSITION_XY,"rect[2]"],["h"+a_.Msg.MIXLY_POSITION_XY,"rect[3]"],[a_.Msg.MICROPYTHON_HUSKYLENS_X_CENTERED+a_.Msg.MIXLY_POSITION_XY,"xc"],[a_.Msg.MICROPYTHON_HUSKYLENS_Y_CENTERED+a_.Msg.MIXLY_POSITION_XY,"yc"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_AI_SENSOR_TAG_TOOLTIP)}},ia={init:function(){this.setColour(zI),this.appendValueInput("SUB"),this.appendDummyInput().appendField(a_.Msg.MIXLY_TAG_RECOGNTITION),this.appendDummyInput().setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.PROCEDURES_DEFRETURN_RETURN+"[tag]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_AI_SENSOR_TAG_RECOGNTITION_TOOLTIP)}},Ta={init:function(){this.setColour(zI),this.appendValueInput("VAR").appendField(a_.Msg.MIXLY_LINE+a_.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(a_.Msg.MIXLY_ALL_CODE_ANALYSIS),this.appendDummyInput().appendField(a_.Msg.MIXLY_GET).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_LINE_ANGLE,"info1"],[a_.Msg.MIXLY_POSITION_XY+"-x1x2y1y2","rect"],["x1"+a_.Msg.MIXLY_POSITION_XY,"rect[0]"],["x2"+a_.Msg.MIXLY_POSITION_XY,"rect[1]"],["y1"+a_.Msg.MIXLY_POSITION_XY,"rect[2]"],["y2"+a_.Msg.MIXLY_POSITION_XY,"rect[3]"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_AI_SENSOR_LINE_TOOLTIP)}},Ea={init:function(){this.setColour(zI),this.appendValueInput("SUB"),this.appendDummyInput().appendField(a_.Msg.MIXLY_LINE_RECOGNTITION),this.appendValueInput("VAR1").appendField(a_.Msg.MIXLY_ESP32_THRESHOLD).setCheck(Number).setAlign(a_.inputs.Align.RIGHT),this.appendValueInput("VAR2").appendField(a_.Msg.MIXLY_LINE_RECOGNTITION_ANGLE).setCheck(Number).setAlign(a_.inputs.Align.RIGHT),this.appendValueInput("VAR3").appendField(a_.Msg.MIXLY_LINE_RECOGNTITION_SLOPE).setCheck(Number).setAlign(a_.inputs.Align.RIGHT),this.appendDummyInput().setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.PROCEDURES_DEFRETURN_RETURN+"[line]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_AI_SENSOR_LINE_RECOGNTITION_TOOLTIP)}},na={init:function(){this.setColour(zI),this.appendValueInput("VAR").appendField(a_.Msg.MIXLY_CIRCLE+a_.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(a_.Msg.MIXLY_ALL_CODE_ANALYSIS),this.appendDummyInput().appendField(a_.Msg.MIXLY_GET).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_CIRCLE_AREA,"info1"],[a_.Msg.MIXLY_POSITION_XY+"-xywh","rect"],["x"+a_.Msg.MIXLY_POSITION_XY,"rect[0]"],["y"+a_.Msg.MIXLY_POSITION_XY,"rect[1]"],["w"+a_.Msg.MIXLY_POSITION_XY,"rect[2]"],["h"+a_.Msg.MIXLY_POSITION_XY,"rect[3]"],[a_.Msg.MICROPYTHON_HUSKYLENS_X_CENTERED+a_.Msg.MIXLY_POSITION_XY,"xc"],[a_.Msg.MICROPYTHON_HUSKYLENS_Y_CENTERED+a_.Msg.MIXLY_POSITION_XY,"yc"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_AI_SENSOR_CIRCLE_TOOLTIP)}},oa={init:function(){this.setColour(zI),this.appendValueInput("SUB"),this.appendDummyInput().appendField(a_.Msg.MIXLY_CIRCLE_RECOGNTITION),this.appendValueInput("VAR1").appendField(a_.Msg.MIXLY_ESP32_THRESHOLD).setCheck(Number).setAlign(a_.inputs.Align.RIGHT),this.appendValueInput("VAR2").appendField(a_.Msg.MIXLY_CIRCLE_RECOGNTITION_MIN).setCheck(Number).setAlign(a_.inputs.Align.RIGHT),this.appendValueInput("VAR3").appendField(a_.Msg.MIXLY_CIRCLE_RECOGNTITION_MAX).setCheck(Number).setAlign(a_.inputs.Align.RIGHT),this.appendDummyInput().setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.PROCEDURES_DEFRETURN_RETURN+"[circle]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_AI_SENSOR_CIRCLE_RECOGNTITION_TOOLTIP)}},sa={init:function(){this.setColour(zI),this.appendValueInput("VAR").appendField(a_.Msg.MIXLY_RECT+a_.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(a_.Msg.MIXLY_ALL_CODE_ANALYSIS),this.appendDummyInput().appendField(a_.Msg.MIXLY_GET).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_CIRCLE_AREA,"info1"],[a_.Msg.MIXLY_POSITION_XY+"-xywh","rect"],["x"+a_.Msg.MIXLY_POSITION_XY,"rect[0]"],["y"+a_.Msg.MIXLY_POSITION_XY,"rect[1]"],["w"+a_.Msg.MIXLY_POSITION_XY,"rect[2]"],["h"+a_.Msg.MIXLY_POSITION_XY,"rect[3]"],[a_.Msg.MICROPYTHON_HUSKYLENS_X_CENTERED+a_.Msg.MIXLY_POSITION_XY,"xc"],[a_.Msg.MICROPYTHON_HUSKYLENS_Y_CENTERED+a_.Msg.MIXLY_POSITION_XY,"yc"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_AI_SENSOR_RECT_TOOLTIP)}},Oa={init:function(){this.setColour(zI),this.appendValueInput("SUB"),this.appendDummyInput().appendField(a_.Msg.MIXLY_RECT_RECOGNTITION),this.appendValueInput("VAR1").appendField(a_.Msg.MIXLY_ESP32_THRESHOLD).setCheck(Number).setAlign(a_.inputs.Align.RIGHT),this.appendDummyInput().setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.PROCEDURES_DEFRETURN_RETURN+"[rect]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_AI_SENSOR_COLOR_RECOGNTITION_TOOLTIP)}},Ia={init:function(){this.setColour(zI),this.appendValueInput("VAR").appendField(a_.Msg.HTML_COLOUR+a_.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(a_.Msg.MIXLY_COLOR_ANALYSIS),this.appendDummyInput().appendField(a_.Msg.MIXLY_GET).appendField(new a_.FieldDropdown([["RGB"+a_.Msg.HTML_COLOUR,"[0]"],["LAB"+a_.Msg.MIXLY_COLOR_LAB,"[1]"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_AI_SENSOR_COLOR_TOOLTIP)}},aa={init:function(){this.setColour(zI),this.appendValueInput("SUB"),this.appendDummyInput().appendField(a_.Msg.MIXLY_COLOR_RECOGNTITION),this.appendDummyInput().setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.PROCEDURES_DEFRETURN_RETURN+"color"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_AI_SENSOR_COLOR_RECOGNTITION_TOOLTIP)}},pa={init:function(){this.setColour(zI),this.appendValueInput("VAR").appendField(a_.Msg.MIXLY_COLOR_CHASE+a_.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(a_.Msg.MIXLY_COLOR_CHASE_ANALYSIS),this.appendDummyInput().appendField(a_.Msg.MIXLY_GET).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_CIRCLE_AREA,"info1"],[a_.Msg.MIXLY_POSITION_XY+"-xywh","rect"],["x"+a_.Msg.MIXLY_POSITION_XY,"rect[0]"],["y"+a_.Msg.MIXLY_POSITION_XY,"rect[1]"],["w"+a_.Msg.MIXLY_POSITION_XY,"rect[2]"],["h"+a_.Msg.MIXLY_POSITION_XY,"rect[3]"],[a_.Msg.MICROPYTHON_HUSKYLENS_X_CENTERED+a_.Msg.MIXLY_POSITION_XY,"xc"],[a_.Msg.MICROPYTHON_HUSKYLENS_Y_CENTERED+a_.Msg.MIXLY_POSITION_XY,"yc"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_AI_SENSOR_CIRCLE_TOOLTIP)}},Ma={init:function(){this.setColour(zI),this.appendValueInput("SUB"),this.appendDummyInput().appendField(a_.Msg.MIXLY_COLOR_CHASE),this.appendValueInput("VAR1").appendField("LAB"+a_.Msg.MIXLY_COLOR_LAB).setAlign(a_.inputs.Align.RIGHT),this.appendValueInput("VAR2").appendField(a_.Msg.MIXLY_ESP32_THRESHOLD).setCheck(Number).setAlign(a_.inputs.Align.RIGHT),this.appendValueInput("VAR3").appendField(a_.Msg.MIXLY_COLOR_CHASE_MERGE).setCheck(Number).setAlign(a_.inputs.Align.RIGHT),this.appendDummyInput().setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.PROCEDURES_DEFRETURN_RETURN+"[colors]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_AI_SENSOR_CIRCLE_RECOGNTITION_TOOLTIP)}},La={init:function(){this.setColour(zI),this.appendValueInput("SUB"),this.appendDummyInput().appendField(a_.Msg.MIXLY_LOCAL_TRAIN),this.appendValueInput("VAR1").appendField(a_.Msg.MIXLY_OBJECT_LIST).setAlign(a_.inputs.Align.RIGHT),this.appendValueInput("VAR2").appendField(a_.Msg.MICROPYTHON_HUSKYLENS_SAVE_AS+a_.Msg.MIXLY_MODEL_NAME).setAlign(a_.inputs.Align.RIGHT),this.appendValueInput("VAR3").appendField(a_.Msg.MIXLY_TRAIN_TIME).setAlign(a_.inputs.Align.RIGHT),this.appendValueInput("VAR4").appendField(a_.Msg.MIXLY_AipNlp_Topic_Title).setAlign(a_.inputs.Align.RIGHT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_AI_SENSOR_LOCAL_TRAIN_TOOLTIP)}},Ra={init:function(){this.setColour(zI),this.appendValueInput("SUB"),this.appendDummyInput().appendField(a_.Msg.MIXLY_LOCAL_CLASS),this.appendValueInput("VAR1").appendField(a_.Msg.MIXLY_OBJECT_LIST).setAlign(a_.inputs.Align.RIGHT),this.appendValueInput("VAR2").appendField(a_.Msg.MIXLY_MODEL_NAME).setAlign(a_.inputs.Align.RIGHT),this.appendValueInput("VAR4").appendField(a_.Msg.MIXLY_AipNlp_Topic_Title).setAlign(a_.inputs.Align.RIGHT),this.appendDummyInput().setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.PROCEDURES_DEFRETURN_RETURN+"[objects]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_AI_SENSOR_MODEL_NAME_TOOLTIP)}},ra={init:function(){this.setColour(zI),this.appendValueInput("VAR").appendField(a_.Msg.MIXLY_LOCAL_CLASS+a_.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(a_.Msg.MIXLY_COLOR_CHASE_ANALYSIS),this.appendDummyInput().appendField(a_.Msg.MIXLY_GET).appendField(new a_.FieldDropdown([["ID","info1"],[a_.Msg.MIXLY_CONFIDENCE_DEGREE,"info2"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_AI_SENSOR_LOCAL_CLASS_TOOLTIP)}},Sa={init:function(){this.setColour(zI),this.appendValueInput("SUB"),this.appendDummyInput().appendField(a_.Msg.MIXLY_MUSIC_RECORD),this.appendValueInput("VAR1").appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH).setAlign(a_.inputs.Align.RIGHT),this.appendValueInput("VAR2").appendField(a_.Msg.MIXPY_AI_AUDIO_TIME).setAlign(a_.inputs.Align.RIGHT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_AI_SENSOR_MUSIC_RECORD_TOOLTIP)}},la={init:function(){this.setColour(zI),this.appendValueInput("SUB"),this.appendDummyInput().appendField(a_.Msg.MIXLY_MUSIC_PLAY),this.appendValueInput("VAR1").appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH).setAlign(a_.inputs.Align.RIGHT),this.appendValueInput("VAR2").appendField(a_.Msg.MIXLY_MP3_VOL).setAlign(a_.inputs.Align.RIGHT),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Aa={init:function(){this.setColour(zI),this.appendValueInput("SUB"),this.appendDummyInput().appendField(a_.Msg.MIXLY_YOLO_RECOGNIZE),this.appendValueInput("VAR1").appendField(a_.Msg.MIXLY_ANCHOR).setAlign(a_.inputs.Align.RIGHT),this.appendValueInput("VAR2").appendField(a_.Msg.MIXLY_MODEL_PATH).setAlign(a_.inputs.Align.RIGHT),this.appendValueInput("VAR4").appendField(a_.Msg.MIXLY_AipNlp_Topic_Title).setAlign(a_.inputs.Align.RIGHT),this.appendDummyInput().setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.PROCEDURES_DEFRETURN_RETURN+"[objects]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_AI_SENSOR_YOLO_RECOGNIZE_TOOLTIP)}},Pa={init:function(){this.setColour(zI),this.appendValueInput("VAR").appendField(a_.Msg.MIXLY_YOLO_RECOGNIZE+a_.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(a_.Msg.MIXLY_COLOR_CHASE_ANALYSIS),this.appendDummyInput().appendField(a_.Msg.MIXLY_GET).appendField(new a_.FieldDropdown([["ID","info1"],[a_.Msg.MIXLY_CONFIDENCE_DEGREE,"info2"],[a_.Msg.MIXLY_POSITION_XY+"-xywh","rect"],["x"+a_.Msg.MIXLY_POSITION_XY,"rect[0]"],["y"+a_.Msg.MIXLY_POSITION_XY,"rect[1]"],["w"+a_.Msg.MIXLY_POSITION_XY,"rect[2]"],["h"+a_.Msg.MIXLY_POSITION_XY,"rect[3]"],[a_.Msg.MICROPYTHON_HUSKYLENS_X_CENTERED+a_.Msg.MIXLY_POSITION_XY,"xc"],[a_.Msg.MICROPYTHON_HUSKYLENS_Y_CENTERED+a_.Msg.MIXLY_POSITION_XY,"yc"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_AI_SENSOR_YOLO_RECOGNIZE_RESULT_TOOLTIP)}},Na={init:function(){this.setColour(zI),this.appendValueInput("SUB"),this.appendDummyInput().appendField(a_.Msg.MIXLY_AipSpeech_asr),this.appendValueInput("VAR1").appendField(a_.Msg.MIXLY_AI_SENSOR_ASR_RECOGNISE_CORPUS).setAlign(a_.inputs.Align.RIGHT),this.appendValueInput("VAR2").appendField(a_.Msg.MIXLY_ESP32_THRESHOLD).setAlign(a_.inputs.Align.RIGHT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_AI_SENSOR_ASR_RECOGNISE_TOOLTIP)}},da={init:function(){this.setColour(zI),this.appendValueInput("VAR").appendField(a_.Msg.MIXLY_LICENSEPLATE+a_.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(a_.Msg.MIXLY_ALL_CODE_ANALYSIS),this.appendDummyInput().appendField(a_.Msg.MIXLY_GET).appendField(new a_.FieldDropdown([["ID","info1"],[a_.Msg.MIXLY_POSITION_XY+"-xywh","rect"],["x"+a_.Msg.MIXLY_POSITION_XY,"rect[0]"],["y"+a_.Msg.MIXLY_POSITION_XY,"rect[1]"],["w"+a_.Msg.MIXLY_POSITION_XY,"rect[2]"],["h"+a_.Msg.MIXLY_POSITION_XY,"rect[3]"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_AI_SENSOR_LICENSEPLATE_TOOLTIP)}},ha={init:function(){this.setColour(zI),this.appendValueInput("SUB"),this.appendDummyInput().appendField(a_.Msg.MIXLY_AipOcr_licensePlate),this.appendDummyInput().setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.PROCEDURES_DEFRETURN_RETURN+"[licensePlate]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_AI_SENSOR_LICENSEPLATE_RECOGNTITION_TOOLTIP)}},ua={init:function(){this.setColour(zI),this.appendValueInput("VAR").appendField(a_.Msg.MIXLY_FACE+a_.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(a_.Msg.MIXLY_ALL_CODE_ANALYSIS),this.appendDummyInput().appendField(a_.Msg.MIXLY_GET).appendField(new a_.FieldDropdown([["ID","info1"],[a_.Msg.MIXLY_CONFIDENCE_DEGREE,"info2"],[a_.Msg.MIXLY_POSITION_XY+"-xywh","rect"],["x"+a_.Msg.MIXLY_POSITION_XY,"rect[0]"],["y"+a_.Msg.MIXLY_POSITION_XY,"rect[1]"],["w"+a_.Msg.MIXLY_POSITION_XY,"rect[2]"],["h"+a_.Msg.MIXLY_POSITION_XY,"rect[3]"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_AI_SENSOR_FACE_TOOLTIP)}},ma={init:function(){this.setColour(zI),this.appendValueInput("SUB"),this.appendDummyInput().appendField(a_.Msg.MIXLY_AipFace),this.appendDummyInput().setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.PROCEDURES_DEFRETURN_RETURN+"[face]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_AI_SENSOR_BAR_FACE_CLASSIFIER_TOOLTIP)}},Ca={init:function(){this.setColour(zI),this.appendValueInput("VAR").appendField(a_.Msg.MIXLY_20OBJECTS+a_.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(a_.Msg.MIXLY_ALL_CODE_ANALYSIS),this.appendDummyInput().appendField(a_.Msg.MIXLY_GET).appendField(new a_.FieldDropdown([["ID","info1"],[a_.Msg.MIXLY_CONFIDENCE_DEGREE,"info2"],[a_.Msg.MIXLY_POSITION_XY+"-xywh","rect"],["x"+a_.Msg.MIXLY_POSITION_XY,"rect[0]"],["y"+a_.Msg.MIXLY_POSITION_XY,"rect[1]"],["w"+a_.Msg.MIXLY_POSITION_XY,"rect[2]"],["h"+a_.Msg.MIXLY_POSITION_XY,"rect[3]"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_AI_SENSOR_20OBJECTS_TOOLTIP)}},ca={init:function(){this.setColour(zI),this.appendValueInput("SUB"),this.appendDummyInput().appendField(a_.Msg.MIXLY_FIND_20OBJECTS),this.appendDummyInput().setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.PROCEDURES_DEFRETURN_RETURN+"[20objects]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_AI_SENSOR_BAR_FIND_20OBJECTS_TOOLTIP)}},Ha={init:function(){this.setColour(205),this.appendDummyInput("").appendField(a_.Msg.MIXLY_SETUP).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_AipSpeech_asr,"ASR"],[a_.Msg.MIXLY_AI_UNIT,"UNIT"]]),"CTYPE"),this.appendValueInput("SUB").appendField(a_.Msg.MIXLY_Client).setAlign(a_.inputs.Align.RIGHT),this.appendValueInput("API_KEY").appendField("API_KEY").setAlign(a_.inputs.Align.RIGHT),this.appendValueInput("SECRET_KEY").appendField("SECRET_KEY").setAlign(a_.inputs.Align.RIGHT),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Da={init:function(){this.setColour(205),this.appendValueInput("SUB").appendField(a_.Msg.MIXLY_AI_UNIT).appendField(a_.Msg.MIXLY_Client).setAlign(a_.inputs.Align.RIGHT),this.appendValueInput("ID").appendField("ID").setAlign(a_.inputs.Align.RIGHT),this.appendValueInput("STR").appendField(a_.Msg.OLED_STRING).setAlign(a_.inputs.Align.RIGHT),this.setInputsInline(!0),this.setOutput(!0)}},Ya={init:function(){this.setColour(205),this.appendValueInput("SUB").appendField(a_.Msg.MIXLY_AipSpeech_asr).appendField(a_.Msg.MIXLY_Client).setAlign(a_.inputs.Align.RIGHT),this.appendValueInput("FILE").appendField(a_.Msg.MIXPY_AI_AUDIO_TIME).setAlign(a_.inputs.Align.RIGHT),this.appendDummyInput("").appendField(a_.Msg.MIXLY_LANGUAGE).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_AI_LANGUAGE_CHINESE,"1537"],[a_.Msg.MIXLY_AI_LANGUAGE_ENGLISH,"1737"],[a_.Msg.MIXLY_AI_LANGUAGE_CANTONESE,"1637"]]),"LANGUAGE"),this.setInputsInline(!0),this.setOutput(!0)}},Ua="#2FAD7A",Ba={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:Ua,helpUrl:a_.Msg.MPYTHON_BLYNK_TERMINAL_WIDGET_VPIN_HELPURL,tooltip:a_.Msg.MPYTHON_BLYNK_TERMINAL_WIDGET_VPIN_TOOLTIP,message0:a_.Msg.MPYTHON_BLYNK_TERMINAL_WIDGET_VPIN_MESSAGE0,args0:[{check:Number,type:"input_value",name:"virtual_pin"}]})}},ga={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:Ua,helpUrl:a_.Msg.MPYTHON_BLYNK_SYNC_VIRTUAL_HELPURL,tooltip:a_.Msg.MPYTHON_BLYNK_SYNC_VIRTUAL_TOOLTIP,message0:a_.Msg.MPYTHON_BLYNK_SYNC_VIRTUAL_MESSAGE0,args0:[{check:Number,type:"input_value",name:"virtual_pin"}]})}},Ga={init:function(){this.jsonInit({inputsInline:!0,colour:Ua,helpUrl:a_.Msg.MPYTHON_BLYNK_ON_DISCONNECTED_HELPURL,tooltip:a_.Msg.MPYTHON_BLYNK_ON_DISCONNECTED_TOOLTIP,message0:a_.Msg.MPYTHON_BLYNK_ON_DISCONNECTED_MESSAGE0}),this.appendStatementInput("DO").appendField(a_.CONTROLS_REPEAT_INPUT_DO)}},Fa={init:function(){this.jsonInit({inputsInline:!0,colour:Ua,helpUrl:a_.Msg.MPYTHON_BLYNK_ON_CONNECTED_HELPURL,tooltip:a_.Msg.MPYTHON_BLYNK_ON_CONNECTED_TOOLTIP,message0:a_.Msg.MPYTHON_BLYNK_ON_CONNECTED_MESSAGE0}),this.appendStatementInput("DO").appendField(a_.CONTROLS_REPEAT_INPUT_DO)}},ya={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:Ua,helpUrl:a_.Msg.MPYTHON_BLYNKTIMER_RUN_HELPURL,tooltip:a_.Msg.MPYTHON_BLYNKTIMER_RUN_TOOLTIP,message0:a_.Msg.MPYTHON_BLYNKTIMER_RUN_MESSAGE0})}},fa={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:Ua,helpUrl:a_.Msg.MPYTHON_BLYNK_RUN_HELPURL,tooltip:a_.Msg.MPYTHON_BLYNK_RUN_TOOLTIP,message0:a_.Msg.MPYTHON_BLYNK_RUN_MESSAGE0})}},ba={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:Ua,helpUrl:a_.Msg.MPYTHON_BLYNK_APP_NOTIFY_HELPURL,tooltip:a_.Msg.MPYTHON_BLYNK_APP_NOTIFY_TOOLTIP,message0:a_.Msg.MPYTHON_BLYNK_APP_NOTIFY_MESSAGE0,args0:[{check:String,type:"input_value",name:"notification"}]})}},xa={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:Ua,helpUrl:a_.Msg.MPYTHON_BLYNK_STOP_TIMERS_HELPURL,tooltip:a_.Msg.MPYTHON_BLYNKTIMER_TOOLTIP,message0:a_.Msg.MPYTHON_BLYNK_STOP_TIMERS_MESSAGE0,args0:[{check:Number,type:"input_value",name:"timer_num"}]})}},va={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:Ua,helpUrl:a_.Msg.MPYTHON_BLYNK_SET_PROPERTY_HELPURL,tooltip:a_.Msg.MPYTHON_BLYNK_SET_PROPERTY_TOOLTIP,message0:a_.Msg.MPYTHON_BLYNK_SET_PROPERTY_MESSAGE0,args0:[{check:String,type:"input_value",name:"attribute_name"},{type:"input_value",name:"attribute_value"}]})}},Xa={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:Ua,helpUrl:a_.Msg.MPYTHON_BLYNK_EMAIL_HELPURL,tooltip:a_.Msg.MPYTHON_BLYNK_EMAIL_TOOLTIP,message0:a_.Msg.MPYTHON_BLYNK_EMAIL_MESSAGE0,args0:[{check:String,type:"input_value",name:"TargetEmail"},{check:String,type:"input_value",name:"subject"},{check:String,type:"input_value",name:"body"}]})}},Va={init:function(){this.jsonInit({inputsInline:!0,output:null,colour:Ua,helpUrl:a_.Msg.MPYTHON_BLYNK_GET_TIMERS_HELPURL,tooltip:a_.Msg.MPYTHON_BLYNK_GET_TIMERS_TOOLTIP,message0:a_.Msg.MPYTHON_BLYNK_GET_TIMERS_MESSAGE0})}},ka={init:function(){this.jsonInit({message0:a_.Msg.MPYTHON_BLYNKTIMER_MESSAGE0,colour:Ua,helpUrl:a_.Msg.MPYTHON_BLYNKTIMER_HELPURL,tooltip:a_.Msg.MPYTHON_BLYNKTIMER_TOOLTIP,args0:[{check:Number,type:"input_value",name:"Num"},{options:[[a_.Msg.MIXLY_PYTHON_PERIODIC,"False"],[a_.Msg.MIXLY_PYTHON_ONE_SHOT,"True"]],type:"field_dropdown",name:"Timer_mode"},{check:Number,type:"input_value",name:"period"}]}),this.appendStatementInput("DO").appendField(a_.CONTROLS_REPEAT_INPUT_DO)}},wa={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:Ua,helpUrl:a_.Msg.MPYTHON_BLYNK_SENSOR_DATA_TO_APP_HELPURL,tooltip:a_.Msg.MPYTHON_BLYNK_SENSOR_DATA_TO_APP_TOOLTIP,message0:a_.Msg.MPYTHON_BLYNK_SENSOR_DATA_TO_APP_MESSAGE0,args0:[{type:"input_value",name:"sensor_data"},{check:Number,type:"input_value",name:"virtual_pin"}]})}},Wa={init:function(){this.jsonInit({inputsInline:!0,colour:Ua,helpUrl:a_.Msg.MPYTHON_BLYNK_APP_DATA_HELPURL,tooltip:a_.Msg.MPYTHON_BLYNK_SENSOR_DATA_TO_APP_TOOLTIP,message0:a_.Msg.MPYTHON_BLYNK_APP_DATA_MESSAGE0,args0:[{check:Number,type:"input_value",name:"virtual_pin"},{type:"input_value",name:"virtual_pin_val"}]}),this.appendStatementInput("DO").appendField(a_.CONTROLS_REPEAT_INPUT_DO)}},Ka={init:function(){this.jsonInit({nextStatement:null,previousStatement:null,colour:Ua,helpUrl:a_.Msg.MPYTHON_BLYNK_SETUP_HELPURL,tooltip:a_.Msg.MPYTHON_BLYNK_SETUP_TOOLTIP,message0:a_.Msg.MPYTHON_BLYNK_SETUP_MESSAGE0,args0:[{type:"input_dummy"},{check:String,type:"input_value",name:"server"},{check:Number,type:"input_value",name:"port"},{check:String,type:"input_value",name:"auth"}]})}},za=140,Za={init:function(){this.setColour(za),this.appendDummyInput().appendField(a_.Msg.MIXLY_LED_ON_BOARD+"I2C"),this.setOutput(!0),this.setInputsInline(!0)}},Qa={init:function(){this.setColour(za),this.appendDummyInput().appendField(a_.Msg.MIXLY_LED_ON_BOARD+"SPI"),this.setOutput(!0),this.setInputsInline(!0)}},Ja={init:function(){this.setColour(za),this.appendValueInput("SUB").appendField("I2C "+a_.Msg.MIXLY_SETUP).setCheck("var"),this.appendValueInput("TX",Number).appendField("SCL").setCheck(Number).setAlign(a_.inputs.Align.RIGHT),this.appendValueInput("RX",Number).appendField("SDA").setCheck(Number).setAlign(a_.inputs.Align.RIGHT),this.appendValueInput("freq").setCheck(Number).appendField(a_.Msg.MIXLY_FREQUENCY).setAlign(a_.inputs.Align.RIGHT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_I2C_INIT)}},qa={init:function(){this.setColour(za),this.appendValueInput("VAR").appendField("I2C").setCheck("var"),this.appendValueInput("address").setCheck(Number).appendField(a_.Msg.MIXLY_ESP32_RNUMBER),this.appendValueInput("data").setCheck(Number).appendField(a_.Msg.LANG_MATH_BYTE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_MICROBIT_JS_I2C_READ)}},ja={init:function(){this.setColour(za),this.appendValueInput("VAR").appendField("I2C").setCheck("var"),this.appendValueInput("address").setCheck(Number).appendField(a_.Msg.MIXLY_ESP32_WNUMBER),this.appendValueInput("data").setCheck(Number).appendField(a_.Msg.MIXLY_MICROBIT_JS_I2C_VALUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_MICROBIT_JS_I2C_WRITE)}},$a={init:function(){this.setColour(za),this.appendValueInput("VAR").appendField("I2C").setCheck("var"),this.appendDummyInput().appendField(a_.Msg.MIXLY_ESP32_I2C_SCAN1+a_.Msg.MIXLY_ESP32_I2C_SCAN2),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_I2C_SCAN)}},_p={init:function(){this.setColour(za),this.appendValueInput("VAR").setCheck("var").appendField(a_.Msg.MIXLY_ESP32_SPI_INIT),this.appendValueInput("freq").setCheck(Number).appendField(a_.Msg.MIXLY_SERIAL_BEGIN),this.appendValueInput("sck").setCheck(Number).appendField("SCK"),this.appendValueInput("mosi").setCheck(Number).appendField("MOSI"),this.appendValueInput("miso").setCheck(Number).appendField("MISO"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_SPI_INIT_TOOLTIP)}},tp={init:function(){this.setColour(za),this.appendValueInput("VAR").setCheck("var").appendField("SPI"),this.appendValueInput("data").setCheck(Number).appendField(a_.Msg.MIXLY_SETTING+a_.Msg.MIXLY_SERIAL_BEGIN),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_SPI_SET)}},ep={init:function(){this.setColour(za),this.appendValueInput("VAR").setCheck("var").appendField("SPI"),this.appendValueInput("data").setCheck(Number).appendField(a_.Msg.MIXLY_ESP32_SET+a_.Msg.MIXLY_ESP32_SPI_BUFFER),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_SPI_BUFFER_SET)}},ip={init:function(){this.setColour(za),this.appendValueInput("VAR").setCheck("var").appendField("SPI"),this.appendValueInput("data").setCheck(Number).appendField(a_.Msg.MIXLY_SERIAL_READ),this.appendDummyInput("").appendField(a_.Msg.MIXLY_4DIGITDISPLAY_NOMBER2+a_.Msg.LANG_MATH_BYTE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_SPI_READ)}},Tp={init:function(){this.setColour(za),this.appendValueInput("VAR").setCheck("var").appendField("SPI"),this.appendValueInput("data").setCheck(Number).appendField(a_.Msg.MIXLY_SERIAL_READ),this.appendDummyInput("").appendField(a_.Msg.MIXLY_4DIGITDISPLAY_NOMBER2+a_.Msg.LANG_MATH_BYTE+" "+a_.Msg.MIXLY_ESP32_SPI_OUTPUT),this.appendValueInput("val").setCheck(Number),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_SPI_READ_OUTPUT)}},Ep={init:function(){this.setColour(za),this.appendValueInput("VAR").setCheck("var").appendField("SPI"),this.appendValueInput("data").setCheck("var").appendField(a_.Msg.MIXLY_SERIAL_READ+a_.Msg.MIXLY_ESP32_SPI_BUFFER),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_SPI_READINTO)}},np={init:function(){this.setColour(za),this.appendValueInput("VAR").setCheck("var").appendField("SPI"),this.appendValueInput("data").setCheck("var").appendField(a_.Msg.MIXLY_SERIAL_READ+a_.Msg.MIXLY_ESP32_SPI_BUFFER),this.appendValueInput("val").setCheck(Number).appendField(a_.Msg.MIXLY_ESP32_SPI_OUTPUT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_SPI_READINTO_OUTPUT)}},op={init:function(){this.setColour(za),this.appendValueInput("VAR").setCheck("var").appendField("SPI"),this.appendValueInput("data").setCheck(String).appendField(a_.Msg.MIXLY_ESP32_WRITE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_SPI_WRITE)}},sp={init:function(){this.setColour(za),this.appendValueInput("VAR").setCheck("var").appendField("SPI"),this.appendValueInput("data").setCheck(String).appendField(a_.Msg.MIXLY_ESP32_WRITE),this.appendValueInput("val").setCheck("var").appendField(a_.Msg.MIXLY_ESP32_BUFFER_READ),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_SPI_WRITE_READINTO)}},Op={init:function(){this.setColour(za),this.appendValueInput("VAR").setCheck("var").appendField("I2C"),this.appendDummyInput().appendField(a_.Msg.MIXLY_ESP32_READ),this.setOutput(!0,Number)}},Ip={init:function(){this.setColour(za),this.appendValueInput("VAR").setCheck("var").appendField("I2C"),this.appendDummyInput().appendField(a_.Msg.MIXLY_ESP32_READ+a_.Msg.MIXLY_ESP32_SUCCESS),this.setOutput(!0,Boolean),this.setTooltip(a_.Msg.MIXLY_ESP32_I2C_AVAILABLE)}},ap={init:function(){this.setColour(za),this.appendValueInput("PIN",Number).appendField(a_.Msg.MIXLY_I2C_SLAVE_ONRECEIVE).setCheck(Number),this.appendStatementInput("DO").appendField(a_.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0)}},pp={init:function(){this.setColour(za),this.appendValueInput("VAR").setCheck("var").appendField("OneWire "+a_.Msg.MIXLY_SETUP),this.appendValueInput("BUS").setCheck(Number).appendField(a_.Msg.MIXLY_PIN),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_OW_INIT)}},Mp={init:function(){this.setColour(za),this.appendValueInput("VAR").setCheck("var").appendField("OneWire"),this.appendDummyInput().appendField(a_.Msg.MIXLY_ESP32_ONEWIRE_SCAN),this.setOutput(!0,"List"),this.setTooltip(a_.Msg.MIXLY_ESP32_OW_SCAN)}},Lp={init:function(){this.setColour(za),this.appendValueInput("VAR").setCheck("var").appendField("OneWire"),this.appendDummyInput().appendField(a_.Msg.MIXLY_ESP32_ONEWIRE_READ),this.setOutput(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_OW_READ)}},Rp={init:function(){this.setColour(za),this.appendValueInput("VAR").setCheck("var").appendField("OneWire"),this.appendDummyInput("").appendField(a_.Msg.MIXLY_ESP32_WRITE).appendField(new a_.FieldDropdown([[a_.Msg.LANG_MATH_STRING,"write"],[a_.Msg.LANG_MATH_BYTE,"writebyte"]]),"op"),this.appendValueInput("byte").setCheck([Number,String]),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_OW_WRITE)}},rp={init:function(){this.setColour(za),this.appendValueInput("VAR").appendField("OneWire").setCheck("var"),this.appendValueInput("byte").setCheck(String).appendField(a_.Msg.LISTS_SET_INDEX_SET).appendField("ROM"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_OW_SELECT)}},Sp={init:function(){this.setColour(za),this.appendValueInput("VAR").appendField("OneWire").setCheck("var"),this.appendDummyInput().appendField(a_.Msg.blockpy_turtle_reset),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_OW_RESET)}},lp={init:function(){this.setColour(za),this.appendValueInput("PIN").appendField(a_.Msg.MIXLY_SETUP+a_.Msg.MIXLY_IR_RECEIVE),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROPYTHON_SOCKET_TYPE).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_IR_INPUT1,"8"],[a_.Msg.MIXLY_IR_INPUT2,"16"],[a_.Msg.MIXLY_IR_INPUT3,"0"],[a_.Msg.MIXLY_TR_SEND_RC,"RC5"]]),"type"),this.appendValueInput("SUB").appendField(a_.Msg.CONTROLS_REPEAT_INPUT_DO+a_.Msg.MIXLY_ESP32_ONENET_SUB),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Ap={init:function(){this.setColour(za),this.appendDummyInput().appendField(a_.Msg.MIXlY_RECV_FUN),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_IR_CMD_CODE,"0"],[a_.Msg.MIXLY_IR_ADDR_CODE,"1"],[a_.Msg.MIXLY_IR_RAW_CODE,"2"],[a_.Msg.MIXLY_IR_PULSE,"3"]]),"index"),this.setOutput(!0),this.setInputsInline(!0)}},Pp={init:function(){this.setColour(za),this.appendDummyInput().appendField(a_.Msg.MIXlY_RECV_FUN).appendField(new a_.FieldDropdown([[a_.Msg.MILY_PAUSE,"True"],[a_.Msg.MIXLY_RECOVER,"False"]]),"en"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Np={init:function(){this.setColour(za),this.appendDummyInput().appendField(a_.Msg.MIXlY_RECV_FUN),this.appendDummyInput().appendField(a_.Msg.MIXLY_IR_WHETHER_RECV),this.setOutput(!0),this.setInputsInline(!0)}},dp={init:function(){this.setColour(za),this.appendValueInput("time").appendField(a_.Msg.MIXlY_RECV_FUN).appendField(a_.Msg.MIXLY_IR_TIMEOUT),this.appendDummyInput().appendField(a_.Msg.MIXLY_MILLISECOND),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},hp={init:function(){this.setColour(za),this.appendValueInput("PIN").appendField(a_.Msg.MIXLY_SETUP+a_.Msg.MIXLY_IR_SEND).appendField(a_.Msg.MIXLY_PIN),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROPYTHON_SOCKET_TYPE).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_IR_SEND_samsung1,"False"],[a_.Msg.MIXLY_IR_SEND_samsung2,"True"],[a_.Msg.MIXLY_TR_SEND_RC,"RC5"]]),"type").appendField(a_.Msg.MIXLY_MICROBIT_JS_BLE_POWER),this.appendValueInput("power"),this.appendDummyInput().appendField(a_.Msg.MATH_QUYU_SYMBOL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},up={init:function(){this.setColour(za),this.appendDummyInput().appendField(a_.Msg.MIXLY_IR_SEND),this.appendValueInput("cmd").appendField(a_.Msg.MIXLY_IR_CMD_CODE),this.appendValueInput("addr").appendField(a_.Msg.MIXLY_IR_ADDR_CODE),this.appendValueInput("toggle").appendField(a_.Msg.MIXLY_CONTROL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_TRANSMIT_CONVEN_DATA)}},mp={init:function(){this.setColour(za),this.appendDummyInput().appendField(a_.Msg.MIXLY_IR_SEND),this.appendValueInput("LIST").appendField(a_.Msg.MIXLY_IR_PULSE).setAlign(a_.inputs.Align.RIGHT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Cp={init:function(){this.setColour(za),this.appendDummyInput().appendField(a_.Msg.MIXLY_IR_SEND),this.appendValueInput("raw").appendField(a_.Msg.MIXLY_IR_RAW_CODE).setAlign(a_.inputs.Align.RIGHT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},cp={init:function(){this.setColour(za),this.appendDummyInput().appendField(a_.Msg.MIXLY_IR_TRANSMIT_DONE),this.setOutput(!0),this.setInputsInline(!0)}},Hp={init:function(){this.setColour(za),this.appendValueInput("VAR").appendField(a_.Msg.MSG.catBLE).setCheck("var"),this.appendDummyInput().appendField(a_.Msg.MSG.catEthernet_init+a_.Msg.MIXLY_MICROBIT_PY_STORAGE_AS+a_.Msg.MSG.catBLE_UART),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Dp={init:function(){this.setColour(za),this.appendValueInput("VAR").appendField(a_.Msg.MSG.catBLE).setCheck("var"),this.appendDummyInput().appendField(a_.Msg.MSG.catEthernet_init+a_.Msg.MIXLY_MICROBIT_PY_STORAGE_AS+a_.Msg.MSG.catBLE_HID),this.appendValueInput("data").setCheck(String).appendField(a_.Msg.HTML_NAME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Yp={init:function(){this.setColour(za),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(a_.Msg.MIXLY_ESP32_ONEWIRE_SCAN+a_.Msg.MSG.catBLE),this.setOutput(!0),this.setInputsInline(!0)}},Up={init:function(){this.setColour(za),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(a_.Msg.MIXLY_MIXGO_ESPNOW_MAC),this.setOutput(!0),this.setInputsInline(!0)}},Bp={init:function(){this.setColour(za),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(a_.Msg.MIXLY_TEXT_JOIN+a_.Msg.MSG.catBLE).appendField(new a_.FieldDropdown([[a_.Msg.HTML_NAME,"name"],[a_.Msg.MIXLY_ETHERNET_MAC_ADDRESS,"mac"]]),"mode"),this.appendValueInput("data").setCheck(String),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},gp={init:function(){this.setColour(za),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(a_.Msg.MIXLY_ESP32_DISCONNECT_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Gp={init:function(){this.setColour(za),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(a_.Msg.MSG.catBLE+a_.Msg.MIXLY_SEND_DATA),this.appendValueInput("data").appendField(a_.Msg.HTML_BODY),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Fp={init:function(){this.setColour(za),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(a_.Msg.MSG.catBLE+a_.Msg.MIXLY_EMQX_IS_CONNECT),this.setOutput(!0),this.setInputsInline(!0)}},yp={init:function(){this.setColour(za),this.appendValueInput("VAR").setCheck("var"),this.appendValueInput("METHOD").appendField(a_.Msg.MIXLY_MIXGO_ESPNOW_RECV).appendField(a_.Msg.CONTROLS_REPEAT_INPUT_DO+a_.Msg.MIXLY_ESP32_ONENET_SUB),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},fp={init:function(){this.setColour(za),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(a_.Msg.MIXLY_MIXGO_ESPNOW_RECV),this.setOutput(!0),this.setInputsInline(!0)}},bp={init:function(){this.setColour(za),this.appendValueInput("VAR").setCheck("var").appendField(a_.Msg.MIXLY_BLE_HANDLE),this.appendValueInput("METHOD").appendField(a_.Msg.MIXLY_MIXGO_ESPNOW_RECV).appendField(a_.Msg.CONTROLS_REPEAT_INPUT_DO+a_.Msg.MIXLY_ESP32_ONENET_SUB),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},xp={init:function(){this.setColour(za),this.appendValueInput("VAR").setCheck("var").appendField("ESPnow "+a_.Msg.MIXLY_SETUP),this.appendValueInput("CHNL").setCheck(Number).appendField(a_.Msg.MIXLY_MP_ESPNOW_CHANNEL),this.appendDummyInput("").appendField(a_.Msg.MIXLY_TX_POWER).appendField(new a_.FieldDropdown([["20","20"],["18","18"],["16","16"],["15","15"],["14","14"],["13","13"],["11","11"],["8","8"],["7","7"],["5","5"],["2","2"]]),"op"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},vp={init:function(){this.setColour(za),this.appendValueInput("VAR").setCheck("var").appendField("ESPnow "+a_.Msg.MIXLY_SETUP),this.appendValueInput("CHNL").setCheck(Number).appendField(a_.Msg.MIXLY_MP_ESPNOW_CHANNEL),this.appendValueInput("DB").setCheck(Number).appendField(a_.Msg.MIXLY_MICROBIT_JS_BLE_POWER),this.appendDummyInput().appendField("db"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_MP_ESPNOW_INIT_TOOLTIP)}},Xp={init:function(){this.setColour(za),this.appendValueInput("VAR").setCheck("var").appendField("ESPnow "),this.appendDummyInput().appendField(a_.Msg.MIXLY_MIXGO_ESPNOW_MAC),this.setOutput(!0),this.setInputsInline(!0)}},Vp={init:function(){this.setColour(za),this.appendValueInput("VAR").setCheck("var").appendField("ESPnow "),this.appendDummyInput().appendField(a_.Msg.MIXLY_MIXGO_ESPNOW_INFO),this.setOutput(!0),this.setInputsInline(!0)}},kp={init:function(){this.setColour(za),this.appendValueInput("VAR").setCheck("var").appendField("ESPnow "),this.appendDummyInput().appendField(a_.Msg.MIXLY_MIXGO_ESPNOW_RECV),this.appendDummyInput().appendField(new a_.FieldDropdown([["("+a_.Msg.MIXLY_ETHERNET_MAC_ADDRESS+", "+a_.Msg.OLED_STRING+")",""],[a_.Msg.MIXLY_ETHERNET_MAC_ADDRESS,"[0]"],[a_.Msg.OLED_STRING,"[1]"]]),"mode"),this.setOutput(!0),this.setInputsInline(!0)}},wp={init:function(){this.setColour(za),this.appendValueInput("VAR").setCheck("var").appendField("ESPnow "),this.appendValueInput("mac").appendField(a_.Msg.MIXLY_MIXGO_ESPNOW_SEND_MAC),this.appendValueInput("content").appendField(a_.Msg.MIXLY_MIXGO_ESPNOW_SEND),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_MIXGO_ESPNOW_SEND_TOOLTIP)}},Wp={init:function(){this.setColour(za),this.appendValueInput("VAR").setCheck("var").appendField("ESPnow "),this.appendValueInput("METHOD").appendField(a_.Msg.MIXLY_EMQX_SET_METHOD),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Kp={init:function(){this.setColour(za),this.appendDummyInput().appendField(a_.Msg.MIXLY_MP_ESPNOW_RADIO_INIT),this.appendValueInput("CHNL").setCheck(Number),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},zp={init:function(){this.setColour(za),this.appendDummyInput().appendField(a_.Msg.MIXLY_SETTING+a_.Msg.MIXLY_MP_ESPNOW_RADIO+a_.Msg.MIXLY_TX_POWER).appendField(new a_.FieldDropdown([["20","20"],["18","18"],["16","16"],["15","15"],["14","14"],["13","13"],["11","11"],["8","8"],["7","7"],["5","5"],["2","2"]]),"op"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Zp={init:function(){this.setColour(za),this.appendDummyInput().appendField(a_.Msg.MIXLY_MP_ESPNOW_RADIO_INIT),this.appendValueInput("CHNL").setCheck(Number),this.appendValueInput("DB").setCheck(Number).appendField(a_.Msg.MIXLY_MICROBIT_JS_BLE_POWER),this.appendDummyInput().appendField("db"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_MP_ESPNOW_RADIO_INIT_TOOLTIP)}},Qp={init:function(){this.setColour(za),this.appendDummyInput().appendField(a_.Msg.MIXLY_MP_ESPNOW_RADIO),this.appendDummyInput().appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_ON,"True"],[a_.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_OFF,"False"]]),"on_off"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Jp={init:function(){this.setColour(za),this.appendDummyInput().appendField(a_.Msg.MIXLY_MP_ESPNOW_RADIO).appendField(a_.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.appendValueInput("send").setCheck(String),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_MIXGO_ESPNOW_SEND_TOOLTIP)}},qp={init:function(){this.setColour(za),this.appendDummyInput().appendField(a_.Msg.MIXLY_MP_ESPNOW_RADIO).appendField(a_.Msg.MIXLY_MIXGO_ESPNOW_RECV),this.setOutput(!0),this.setInputsInline(!0)}},jp={init:function(){this.setColour(za),this.appendDummyInput().appendField(a_.Msg.MIXLY_MP_ESPNOW_RADIO_RECEIVED_MSG),this.setOutput(!0),this.setInputsInline(!0)}},$p={init:function(){this.setColour(za),this.appendDummyInput().appendField(a_.Msg.MIXLY_MP_ESPNOW_RADIO_MSG_RECEIVED),this.appendStatementInput("DO").appendField(a_.Msg.MIXLY_DO),this.setPreviousStatement(!1),this.setNextStatement(!1)}},_M={init:function(){this.setColour(za),this.appendDummyInput().appendField(a_.Msg.MIXLY_MP_ESPNOW_RADIO_MSG_RECEIVED_CERTAIN).appendField('"').appendField(new a_.FieldTextInput("on"),"msg").appendField('"'),this.appendStatementInput("DO").appendField(a_.Msg.MIXLY_DO),this.setPreviousStatement(!1),this.setNextStatement(!1)}},tM={init:function(){this.setColour(za),this.appendDummyInput().appendField(a_.Msg.MIXLY_MP_ESPNOW_RADIO_MSG_RECEIVED),this.appendStatementInput("DO").appendField(a_.Msg.MIXLY_DO),this.setPreviousStatement(!1),this.setNextStatement(!1)}},eM={init:function(){this.setColour(za),this.appendDummyInput().appendField(a_.Msg.MIXLY_MP_ESPNOW_RADIO_MSG_RECEIVED_CERTAIN).appendField('"').appendField(new a_.FieldTextInput("on"),"msg").appendField('"'),this.appendStatementInput("DO").appendField(a_.Msg.MIXLY_DO),this.setPreviousStatement(!1),this.setNextStatement(!1)}},iM={init:function(){this.setColour(za),this.appendValueInput("SUB").appendField("Lora"+a_.Msg.MIXLY_SETUP).setCheck("var"),this.appendValueInput("SPISUB").appendField(a_.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("frequency").appendField(a_.Msg.MIXLY_FREQUENCY),this.appendValueInput("rate").appendField(a_.Msg.MIXLY_CODE_RATE),this.appendValueInput("factor").appendField(a_.Msg.MIXLY_SPREADING_FACTOR),this.appendValueInput("power").appendField(a_.Msg.MIXLY_TX_POWER),this.appendDummyInput().appendField(a_.Msg.MIXLY_SIGNAL_BANDWIDTH).appendField(new a_.FieldDropdown([["7800","7800"],["10400","10400"],["15600","15600"],["20800","20800"],["31250","31250"],["41700","41700"],["62500","62500"],["125000","125000"],["250000","250000"],["500000","500000"]]),"bandwidth"),this.setFieldValue("125000","bandwidth"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(a_.Msg.MIXLY_LORA_INIT_TOOLTIP)}},TM={init:function(){this.setColour(za),this.appendValueInput("VAR").setCheck("var").appendField("Lora "),this.appendDummyInput().appendField(a_.Msg.MIXLY_GET+a_.Msg.MIXLY_PACKAGE).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_SIGNAL_STRENGTH,"packet_rssi"],[a_.Msg.MIXLY_SIGNAL_NOISE_RATE,"packet_snr"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},EM={init:function(){this.setColour(za),this.appendValueInput("VAR").setCheck("var").appendField("Lora "),this.appendDummyInput().appendField(a_.Msg.MIXLY_SEND_DATA),this.appendValueInput("data").setCheck(String).appendField(a_.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},nM={init:function(){this.setColour(za),this.appendValueInput("VAR").setCheck("var").appendField("Lora "),this.appendDummyInput().appendField(a_.Msg.MIXLY_MIXGO_ESPNOW_RECV),this.setOutput(!0,String),this.setInputsInline(!0)}},oM={init:function(){this.setColour(za),this.appendValueInput("DOMAIN").appendField(a_.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(a_.Msg.blockpy_REQUESTS_GET).appendField(new a_.FieldTextInput("response"),"VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(a_.Msg.blockpy_REQUESTS_GET_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(_,t){a_.Names.equals(_,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},sM={init:function(){this.appendValueInput("VAL");var _=[[a_.Msg.blockpy_REQUESTS_GET_ATTR_HEADER,"headers"],[a_.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE,"status_code"],[a_.Msg.blockpy_REQUESTS_GET_ATTR_TEXT,"text"],[a_.Msg.blockpy_REQUESTS_GET_ATTR_COOKIES,"cookies"],[a_.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT,"content"]];this.setColour(za),this.appendDummyInput("").appendField(a_.Msg.MIXLY_MICROBIT_JS_GET).appendField(new a_.FieldDropdown(_),"ATTR"),this.setInputsInline(!0),this.setOutput(!0,String);var t=this;this.setTooltip((function(){var _=t.getFieldValue("DIR");return{clear:a_.Msg.MIXLY_TOOLTIP_TURTEL_CLEAR,reset:a_.Msg.MIXLY_TOOLTIP_TURTEL_RESET,home:a_.Msg.MIXLY_TOOLTIP_TURTEL_HOME}[_]}))}},OM={init:function(){this.appendValueInput("VAR").appendField(a_.Msg.DISPLAY_IMAGE_LET2).setCheck(String);this.setColour(za),this.appendDummyInput("").appendField(a_.Msg.blockpy_CONDUCT).appendField(new a_.FieldDropdown([["get","get"],["post","post"],["put","put"],["delete","delete"],["head","head"],["option","option"]]),"DIR"),this.appendDummyInput("").appendField(a_.Msg.blockpy_REQUESTS),this.setOutput(!0),this.setInputsInline(!0)}},IM=Ja,aM=qa,pM=ja,MM=$a,LM=_p,RM=tp,rM=ep,SM=ip,lM=Tp,AM=Ep,PM=np,NM=op,dM=sp,hM=Op,uM=Ip,mM=120;({init:function(){this.setColour(mM),this.appendValueInput("BOOL").setCheck([Boolean,Number]).appendField(a_.Msg.LANG_CONTROLS_WHILEUNTIL_TITLE_REPEAT).appendField(new a_.FieldDropdown(this.OPERATORS),"MODE"),this.appendStatementInput("DO").appendField(a_.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var _=this;this.setTooltip((function(){var t=_.getFieldValue("MODE");return{WHILE:a_.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_WHILE,UNTIL:a_.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL}[t]}))}}).OPERATORS=[[a_.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"WHILE"],[a_.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"UNTIL"]];({init:function(){this.setColour(mM);var _=new a_.FieldDropdown(this.OPERATORS);this.appendDummyInput().appendField(_,"FLOW").appendField(a_.Msg.LANG_CONTROLS_FLOW_STATEMENTS_INPUT_OFLOOP),this.setPreviousStatement(!0);var t=this;this.setTooltip((function(){var _=t.getFieldValue("FLOW");return{BREAK:a_.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK,CONTINUE:a_.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE}[_]}))},onchange:function(){if(this.workspace){var _=!1,t=this;do{if("controls_repeat"==t.type||"controls_for"==t.type||"controls_forEach"==t.type||"controls_repeat_ext"==t.type||"controls_whileUntil"==t.type){_=!0;break}t=t.getSurroundParent()}while(t);_?this.setWarningText(null):this.setWarningText(a_.Msg.LANG_CONTROLS_FLOW_STATEMENTS_WARNING)}}}).OPERATORS=[[a_.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK,"BREAK"],[a_.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE,"CONTINUE"]];const CM="5BA5A5",cM={init:function(){this.setColour(CM),this.appendValueInput("I2CSUB").appendField(a_.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(a_.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(a_.Msg.MIXLY_SETUP+a_.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new a_.FieldDropdown([["32x12 Matrix","32x12 Matrix"],["16x8 Matrix","16x8 Matrix"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},HM={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(CM),this.appendValueInput("data").setCheck([String,"esp32_image","List","Tuple"]).appendField(a_.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.OLED_BITMAP_OR_STRING)}},DM={init:function(){this.setColour(CM),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("data").setCheck(String).appendField(a_.Msg.OLED_DRAWSTR),this.appendValueInput("space").setCheck(Number).appendField(a_.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendDummyInput("").appendField(a_.Msg.TEXT_CENTER).appendField(new a_.FieldDropdown([[a_.Msg.MICROPYTHON_DISPLAY_YES,"True"],[a_.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"center"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY)}},YM={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(CM),this.appendValueInput("data").setCheck(String).appendField(a_.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},UM={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(CM),this.appendValueInput("data").setCheck(String).appendField(a_.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.appendValueInput("space").setCheck(Number).appendField(a_.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendValueInput("time").setCheck(Number).appendField(a_.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_SCROLL_IMAGE_OR_STRING_DELAY)}},BM={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(CM),this.appendValueInput("data").setCheck(String).appendField(a_.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},gM={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(CM),this.appendValueInput("data").setCheck(String).appendField(a_.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.appendValueInput("time").setCheck(Number).appendField(a_.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},GM={init:function(){var _=[[a_.Msg.MIXLY_UP,"shift_up"],[a_.Msg.MIXLY_DOWN,"shift_down"],[a_.Msg.MIXLY_LEFT,"shift_left"],[a_.Msg.MIXLY_RIGHT,"shift_right"]];this.appendValueInput("SUB").setCheck("var"),this.setColour(CM),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.appendDummyInput("").appendField(a_.Msg.DISPLAY_IMAGE_LET),this.appendDummyInput("").appendField(a_.Msg.DISPLAY_IMAGE_LET2).appendField(new a_.FieldDropdown(_),"OP"),this.appendValueInput("val").appendField(a_.Msg.DISPLAY_IMAGE_SHIFT).setCheck(Number),this.appendDummyInput("").appendField(a_.Msg.DISPLAY_IMAGE_UNIT);var t=this;this.setTooltip((function(){var _=t.getFieldValue("OP"),e=a_.Msg.DISPLAY_IMAGE_LET,i=a_.Msg.DISPLAY_IMAGE_LET2,T=a_.Msg.DISPLAY_IMAGE_LET3;return e+i+{up:a_.Msg.MIXLY_UP,down:a_.Msg.MIXLY_DOWN,left:a_.Msg.MIXLY_LEFT,right:a_.Msg.MIXLY_RIGHT}[_]+T}))}},FM={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(CM),this.appendValueInput("x").setCheck(Number).appendField(a_.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(a_.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendDummyInput().appendField(a_.Msg.MIXLY_ESP32_JS_MONITOR_GET_POINT),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(a_.Msg.MIXLY_ESP32_JS_MONITOR_BRIGHTNESS)}},yM={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(CM),this.appendValueInput("x").setCheck(Number).appendField(a_.Msg.MIXLY_ESP32_JS_MONITOR_SET_BRIGHTNESS).appendField(a_.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(a_.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendValueInput("STAT").setCheck([Number,Boolean]),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL)}},fM={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(CM),this.appendDummyInput().appendField(a_.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(a_.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS)}},bM={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(CM),this.appendValueInput("x").setCheck(Number).appendField(a_.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS+" 0.0-1.0")}},xM={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(CM),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_Clear_display),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_MICROBIT_Clear_display)}},vM={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(CM),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_Built_in_image1).appendField(new a_.FieldDropdown([["HEART","HEART"],["HEART_SMALL","HEART_SMALL"],["HAPPY","HAPPY"],["SAD","SAD"],["SMILE","SMILE"],["SILLY","SILLY"],["FABULOUS","FABULOUS"],["SURPRISED","SURPRISED"],["ASLEEP","ASLEEP"],["ANGRY","ANGRY"],["CONFUSED","CONFUSED"],["NO","NO"],["YES","YES"]]),"image"),this.setOutput(!0,"esp32_image"),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_MICROBIT_Clear_display)}},XM={init:function(){var _=[[a_.Msg.MICROBIT_DISPLAY_UNION,"add"],[a_.Msg.MICROBIT_DISPLAY_MINUS,"sub"]];this.appendValueInput("SUB").setCheck("var"),this.setColour(CM),this.setOutput(!0,"esp32_image"),this.appendValueInput("A").appendField(a_.Msg.MICROBIT_DISPLAY_MERGE_SHAPE),this.appendValueInput("B").appendField(new a_.FieldDropdown(_),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var _=t.getFieldValue("OP");return{"+":a_.Msg.MIXLY_MICROBIT_image_add,"-":a_.Msg.MIXLY_MICROBIT_image_reduce}[_]}))}},VM={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(CM),this.appendValueInput("A").setCheck("esp32_image").appendField(a_.Msg.MIXLY_MICROBIT_Invert_image1),this.setInputsInline(!0),this.setOutput(!0,"esp32_image")}},kM={init:function(){this.setColour(CM),this.appendValueInput("I2CSUB").appendField(a_.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(a_.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendValueInput("row").appendField(a_.Msg.MIXLY_SETUP+a_.Msg.LISTS_SET_INDEX_INPUT_TO+"OLED").setCheck(Number),this.appendValueInput("column").appendField("X").setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip()}},wM={init:function(){this.appendValueInput("VAR").appendField(a_.Msg.OLED).setCheck("var"),this.appendValueInput("Text_line1","String").setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.OLEDDISPLAY+a_.Msg.line1),this.appendValueInput("Text_line2","String").setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.line2),this.appendValueInput("Text_line3","String").setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.line3),this.appendValueInput("Text_line4","String").setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.line4),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(CM),this.setTooltip(a_.Msg.MIXLY_DF_LCD+a_.Msg.OLEDDISPLAY+a_.Msg.MIXLY_MICROBIT_TYPE_STRING)}},WM={init:function(){var _=[[a_.Msg.MIXLY_HEIGHT,"height"],[a_.Msg.MIXLY_WIDTH,"width"]];this.setColour(CM),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+a_.Msg.MIXLY_MICROBIT_IMAGE),this.appendValueInput("VAR").setCheck("esp32_image"),this.appendDummyInput("").appendField(new a_.FieldDropdown(_),"OP"),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var _=t.getFieldValue("OP");return a_.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+a_.Msg.MIXLY_MICROBIT_IMAGE+{height:a_.Msg.MIXLY_HEIGHT,width:a_.Msg.MIXLY_WIDTH}[_]}))}},KM={init:function(){var _=[[a_.Msg.MIXLY_4DIGITDISPLAY_ON,"1"],[a_.Msg.MIXLY_4DIGITDISPLAY_OFF,"0"]];this.setColour(CM),this.appendValueInput("VAR").appendField(a_.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(a_.Msg.MIXLY_RECT).appendField(new a_.FieldDropdown(_),"OP"),this.jsonInit({message0:a_.Msg.MIXLY_MICROBIT_SHOW_RECT,args0:[{check:Number,type:"input_value",name:"x"},{check:Number,type:"input_value",name:"y"},{check:Number,type:"input_value",name:"width"},{check:Number,type:"input_value",name:"height"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"fill"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(a_.Msg.MIXLY_OLED_RECT)}},zM={init:function(){this.setColour(CM),this.appendValueInput("VAR").appendField(a_.Msg.OLED).setCheck("var"),this.appendDummyInput().appendField(a_.Msg.MIXLY_DISPLAY_DRAW).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_DISPLAY_RLINE,"hline"],[a_.Msg.MIXLY_DISPLAY_VLINE,"vline"]]),"direction"),this.jsonInit({message0:a_.Msg.MIXLY_MICROBIT_SHOW_LINE,args0:[{check:Number,type:"input_value",name:"x"},{check:Number,type:"input_value",name:"y"},{check:Number,type:"input_value",name:"length"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(a_.Msg.MIXLY_OLED_LINE)}},ZM={init:function(){this.setColour(CM),this.appendValueInput("VAR").appendField(a_.Msg.OLED).setCheck("var"),this.jsonInit({message0:a_.Msg.MIXLY_MICROBIT_SHOW_LINE_ARBITRARILY,args0:[{check:Number,type:"input_value",name:"x1"},{check:Number,type:"input_value",name:"y1"},{check:Number,type:"input_value",name:"x2"},{check:Number,type:"input_value",name:"y2"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(a_.Msg.MIXLY_OLED_LINE_ARBIT)}},QM={init:function(){this.setColour(CM),this.appendDummyInput().appendField(a_.Msg.MIXLY_ESP32_MONITOR_GET_SCREEN_IMAGE),this.setInputsInline(!0),this.setOutput(!0,"esp32_image"),this.setTooltip(a_.Msg.MIXLY_ESP32_MONITOR_GET_SCREEN_IMAGE_TOOLTIP)}},JM={init:function(){this.setColour(CM),this.appendValueInput("x").setCheck(Number).appendField(a_.Msg.MIXLY_ESP32_JS_MONITOR_SET_BLINK_RATE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_JS_MONITOR_SET_BLINK_RATE)}},qM={init:function(){this.setColour(CM),this.appendDummyInput("").appendField(a_.Msg.MIXLY_RGB),this.appendValueInput("_LED_").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_RGB_NUM),this.appendDummyInput("").appendField(a_.Msg.LISTS_SET_INDEX_SET+a_.Msg.MIXLY_MICROBIT_PY_STORAGE_AS).appendField(new a_.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),"FIELDNAME"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(a_.Msg.MIXLY_RGB_NUM_R_G_B)}},jM={init:function(){this.setColour(CM),this.appendDummyInput("").appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_ESP32_ON,"ON"],[a_.Msg.MIXLY_ESP32_OFF,"OFF"]]),"ONOFF"),this.setOutput(!0,Boolean),this.setTooltip(a_.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW)}},$M={init:function(){this.setColour(CM),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_LCD_STAT_CLEAR,"0"],[a_.Msg.MIXLY_HANDBIT_DISLPAY_OLED_FILL,"1"]]),"key"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var _=this;this.setTooltip((function(){var t=_.getFieldValue("key"),e={0:a_.Msg.MIXLY_LCD_STAT_CLEAR,1:a_.Msg.MIXLY_HANDBIT_DISLPAY_OLED_FILL};return a_.Msg.MIXLY_DF_LCD+e[t]}))}},_L={init:function(){this.setColour(CM),this.setOutput(!0,"Tuple"),this.appendDummyInput().appendField(a_.Msg.MIXLY_ESP32_DISPLAY_ANIMATE).appendField(new a_.FieldDropdown([["ALL_CLOCKS","ALL_CLOCKS"],["ALL_ARROWS","ALL_ARROWS"]]),"ANIMATION")}},tL={init:function(){var _=[[a_.Msg.MIXLY_4DIGITDISPLAY_ON,"1"],[a_.Msg.MIXLY_4DIGITDISPLAY_OFF,"0"]];this.setColour(CM),this.appendValueInput("VAR").appendField(a_.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(a_.Msg.MIXLY_MIXPY_TURTLE_DRAW_CIRCLE).appendField(new a_.FieldDropdown(_),"OP"),this.jsonInit({message0:a_.Msg.MIXLY_HANBIT_SHOW_CIRCLE,args0:[{check:Number,type:"input_value",name:"x"},{check:Number,type:"input_value",name:"y"},{check:Number,type:"input_value",name:"r"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"fill"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(a_.Msg.MIXLY_MIXPY_TURTLE_DRAW_CIRCLE)}},eL={init:function(){var _=[[a_.Msg.MIXLY_4DIGITDISPLAY_ON,"1"],[a_.Msg.MIXLY_4DIGITDISPLAY_OFF,"0"]];this.setColour(CM),this.appendValueInput("VAR").appendField(a_.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(a_.Msg.MIXLY_DISPLAY_DRAW+a_.Msg.MIXLY_HANBIT_DRAW_TRIANGLE).appendField(new a_.FieldDropdown(_),"OP"),this.jsonInit({message0:a_.Msg.MIXLY_HANBIT_SHOW_triangle,args0:[{check:Number,type:"input_value",name:"x0"},{check:Number,type:"input_value",name:"y0"},{check:Number,type:"input_value",name:"x1"},{check:Number,type:"input_value",name:"y1"},{check:Number,type:"input_value",name:"x2"},{check:Number,type:"input_value",name:"y2"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"fill"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(a_.Msg.MIXLY_DISPLAY_DRAW+a_.Msg.MIXLY_HANBIT_DRAW_TRIANGLE)}},iL={init:function(){this.setColour("#555555"),this.appendDummyInput("").appendField(a_.Msg.MIXGO_ONBOARDDISPLAY_HELP),this.setInputsInline(!0),this.setTooltip("")}},TL={init:function(){this.setColour(CM),this.appendValueInput("VAR").appendField(a_.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(a_.Msg.OLED_BITMAP),this.appendValueInput("START_X",Number).appendField(a_.Msg.OLED_START_X).setCheck(Number),this.appendValueInput("START_Y",Number).appendField(a_.Msg.OLED_START_Y).setCheck(Number),this.appendValueInput("bitmap_name",String).appendField(a_.Msg.OLED_BITMAP_NAME),this.appendValueInput("WIDTH",Number).appendField(a_.Msg.MIXLY_WIDTH).setCheck(Number),this.appendValueInput("HEIGHT",Number).appendField(a_.Msg.MIXLY_HEIGHT).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(a_.Msg.OLED_SHOW_BMP_TOOLTIP)}},EL={init:function(){this.setColour(CM),this.appendValueInput("VAR").appendField(a_.Msg.OLED),this.appendDummyInput("").appendField(a_.Msg.OLED_DRAWPIXEL),this.appendValueInput("POS_X").appendField(a_.Msg.OLED_POSX),this.appendValueInput("POS_Y").appendField(a_.Msg.OLED_POSY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(a_.Msg.OLED_DRAW_PIXE_TOOLTIP)}},nL={init:function(){this.setColour(CM),this.appendValueInput("I2CSUB").appendField(a_.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(a_.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(a_.Msg.MIXLY_SETUP+a_.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new a_.FieldDropdown([["TM1650","TM1650"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);var _=this;this.setTooltip((function(){var t=_.getFieldValue("key");return a_.Msg.MIXLY_ESP32_SENSOR_USE_I2C_TOOLTIP+{TM1650:"TM1650"}[t]}))}},oL={init:function(){this.setColour(CM),this.appendDummyInput().appendField(a_.Msg.MIXLY_4DIGITDISPLAY).appendField(new a_.FieldDropdown([["TM1650","tm1650"]]),"TYPE"),this.appendValueInput("VAR"),this.appendDummyInput().appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_ON,"on"],[a_.Msg.MIXLY_OFF,"off"],[a_.Msg.MIXLY_LCD_STAT_CLEAR,"clear"]]),"STAT"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(a_.Msg.MIXLY_TOOLTIP_4digitdisplay_power)}},sL={init:function(){this.setColour(CM),this.appendDummyInput().appendField(a_.Msg.MIXLY_4DIGITDISPLAY).appendField(new a_.FieldDropdown([["TM1650","tm1650"]]),"TYPE"),this.appendValueInput("VAR"),this.appendValueInput("VALUE").setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_MICROBIT_JS_MONITOR_SHOW_NUMBER),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},OL={init:function(){this.setColour(CM),this.appendDummyInput().appendField(a_.Msg.MIXLY_4DIGITDISPLAY).appendField(new a_.FieldDropdown([["TM1650","tm1650"]]),"TYPE"),this.appendValueInput("VAR"),this.appendValueInput("NO").appendField(a_.Msg.MIXLY_4DIGITDISPLAY_NOMBER1),this.appendValueInput("STAT").appendField(a_.Msg.MIXLY_4DIGITDISPLAY_NOMBER2+a_.Msg.MIXLY_4DIGITDISPLAY_DOT),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(a_.Msg.MIXLY_TOOLTIP_4digitdisplay_showDot)}},IL={init:function(){this.setColour(CM),this.appendDummyInput().appendField(a_.Msg.MIXLY_4DIGITDISPLAY).appendField(new a_.FieldDropdown([["TM1650","tm1650"]]),"TYPE"),this.appendValueInput("VAR"),this.appendValueInput("VALUE").setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_MICROBIT_JS_MONITOR_SET_BRIGHTNESS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(a_.Msg.MIXLY_4DIGITDISPLAY_4DIGITDISPLAY_BRIGHTNESS_TOOLTIP)}},aL={init:function(){this.setColour(CM),this.appendValueInput("SPISUB").appendField(a_.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINDC").appendField("DC"),this.appendValueInput("PINCS").appendField("CS"),this.appendValueInput("SUB").appendField(a_.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(a_.Msg.MIXLY_SETUP+a_.Msg.LISTS_SET_INDEX_INPUT_TO+a_.Msg.MSG.catTFT),this.appendValueInput("WIDTH").appendField(a_.Msg.MIXLY_WIDTH).setCheck(Number),this.appendValueInput("HEIGHT").appendField(a_.Msg.MIXLY_HEIGHT).setCheck(Number),this.appendDummyInput("").appendField(a_.Msg.blockpy_turtle_rotate).appendField(new a_.FieldDropdown([[a_.Msg.MICROPYTHON_DISPLAY_NO,"0"],[a_.Msg.ANTI_CLOCKWISE+"90°","1"],[a_.Msg.ANTI_CLOCKWISE+"180°","2"],[a_.Msg.ANTI_CLOCKWISE+"270°","3"]]),"rotate"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},pL={init:function(){this.setColour(CM),this.appendValueInput("SUB").appendField(a_.Msg.MSG.catTFT),this.appendValueInput("data").appendField(a_.Msg.OLED_BITMAP),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(a_.Msg.MIXLY_MICROBIT_JS_NUMBER),this.appendValueInput("VAR").appendField(a_.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.OLED_BITMAP_OR_STRING)}},ML={init:function(){this.setColour(CM);let _=new a_.FieldColour("#f00",null,{colourOptions:["#f00","#000"],columns:2});this.appendDummyInput("").setAlign(a_.inputs.Align.RIGHT).appendField(_,"COLOR"),this.setInputsInline(!0),this.setOutput(!0,String)}},LL={init:function(){this.setColour(CM),this.appendValueInput("SUB").appendField(a_.Msg.MSG.catTFT),this.appendValueInput("data").setCheck(String).appendField(a_.Msg.OLED_DRAWSTR),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(a_.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(a_.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendDummyInput("").appendField(a_.Msg.TEXT_CENTER).appendField(new a_.FieldDropdown([[a_.Msg.MICROPYTHON_DISPLAY_YES,"True"],[a_.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"center"),this.appendValueInput("VAR").appendField(a_.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY)}},RL={init:function(){this.setColour(CM),this.appendValueInput("SUB").appendField(a_.Msg.MSG.catTFT),this.appendValueInput("data").setCheck(String).appendField(a_.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(a_.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(a_.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendValueInput("time").setCheck(Number).appendField(a_.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.appendValueInput("VAR").appendField(a_.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_SCROLL_IMAGE_OR_STRING_DELAY)}},rL={init:function(){this.setColour(CM),this.appendValueInput("SUB").appendField(a_.Msg.MSG.catTFT),this.appendValueInput("data").setCheck(String).appendField(a_.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.appendValueInput("size").setCheck(Number).appendField(a_.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("time").setCheck(Number).appendField(a_.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.appendValueInput("VAR").appendField(a_.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},SL={init:function(){this.setColour(CM),this.appendValueInput("SUB").setCheck("var").appendField(a_.Msg.MSG.catTFT),this.appendDummyInput().appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_LCD_STAT_CLEAR,"BLACK"],[a_.Msg.MIXLY_HANDBIT_DISLPAY_OLED_FILL,"WHITE"]]),"key"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var _=this;this.setTooltip((function(){var t=_.getFieldValue("key"),e={0:a_.Msg.MIXLY_LCD_STAT_CLEAR,1:a_.Msg.MIXLY_HANDBIT_DISLPAY_OLED_FILL};return a_.Msg.MIXLY_DF_LCD+e[t]}))}},lL={init:function(){this.setColour(CM),this.appendValueInput("SUB").appendField(a_.Msg.MSG.catTFT).setCheck("var"),this.jsonInit({message0:a_.Msg.MIXLY_MICROBIT_SHOW_LINE_ARBITRARILY,args0:[{check:Number,type:"input_value",name:"x1"},{check:Number,type:"input_value",name:"y1"},{check:Number,type:"input_value",name:"x2"},{check:Number,type:"input_value",name:"y2"}]}),this.appendValueInput("VAR").appendField(a_.Msg.HTML_COLOUR),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(a_.Msg.MIXLY_OLED_LINE_ARBIT)}},AL={init:function(){this.setColour(CM),this.appendValueInput("I2CSUB").appendField(a_.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(a_.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(a_.Msg.MIXLY_SETUP+a_.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new a_.FieldDropdown([["LCD1602","16"],["LCD2004","20"]]),"key"),this.appendValueInput("ADDR").setCheck(Number).appendField(a_.Msg.MQTT_SERVER_ADD),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);var _=this;this.setTooltip((function(){var t=_.getFieldValue("key");return a_.Msg.MIXLY_SETUP+{16:"LCD1602",20:"LCD2004"}[t]}))}},PL={init:function(){this.setColour(CM),this.appendValueInput("SUB").appendField(a_.Msg.MSG.catLCD),this.appendValueInput("data").setCheck(String).appendField(a_.Msg.OLED_DRAWSTR),this.appendValueInput("x").setCheck(Number).appendField(a_.Msg.array2_cols),this.appendValueInput("y").setCheck(Number).appendField(a_.Msg.array2_rows),this.appendDummyInput("").appendField(a_.Msg.TEXT_CENTER).appendField(new a_.FieldDropdown([[a_.Msg.MICROPYTHON_DISPLAY_YES,"True"],[a_.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"center"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY)}},NL={init:function(){this.setColour(CM),this.appendValueInput("SUB").appendField(a_.Msg.MSG.catLCD),this.appendValueInput("data").setCheck(String).appendField(a_.Msg.MIXLY_SERIAL_PRINT+a_.Msg.OLED_DRAWSTR),this.appendValueInput("x").setCheck(Number).appendField(a_.Msg.array2_cols),this.appendValueInput("y").setCheck(Number).appendField(a_.Msg.array2_rows),this.appendValueInput("time").setCheck(Number).appendField(a_.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},dL={init:function(){this.setColour(CM),this.appendValueInput("SUB").setCheck("var").appendField(a_.Msg.MSG.catLCD),this.appendDummyInput().appendField(a_.Msg.TFT_Brightness).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_MICROBIT_Turn_on_display,"1"],[a_.Msg.MIXLY_MICROBIT_Turn_off_display,"0"]]),"key"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var _=this;this.setTooltip((function(){var t=_.getFieldValue("key"),e={1:a_.Msg.MIXLY_MICROBIT_Turn_on_display,0:a_.Msg.MIXLY_MICROBIT_Turn_off_display};return a_.Msg.MSG.catLCD+a_.Msg.TFT_Brightness+e[t]}))}},hL={init:function(){this.appendValueInput("SUB").setCheck("var").appendField(a_.Msg.MSG.catLCD),this.setColour(CM),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_Clear_display),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_MICROBIT_Clear_display)}},uL={init:function(){this.setColour(CM),this.appendValueInput("I2CSUB").appendField(a_.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(a_.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(a_.Msg.MIXLY_SETUP+a_.Msg.LISTS_SET_INDEX_INPUT_TO+"oled128x64"),this.appendValueInput("ADDR").setCheck(Number).appendField(a_.Msg.MQTT_SERVER_ADD),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);var _=this;this.setTooltip((function(){var t=_.getFieldValue("key");return a_.Msg.MIXLY_SETUP+{16:"LCD1602",20:"LCD2004"}[t]}))}},mL={init:function(){this.setColour(CM),this.appendValueInput("SUB").setCheck("var").appendField(a_.Msg.MSG.catOLED),this.appendValueInput("data").appendField(a_.Msg.OLED_BITMAP),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.OLED_BITMAP_OR_STRING)}},CL={init:function(){this.setColour(CM),this.appendValueInput("SUB").setCheck("var").appendField(a_.Msg.MSG.catOLED),this.appendValueInput("data").appendField(a_.Msg.OLED_BITMAP),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(a_.Msg.MIXLY_MICROBIT_JS_NUMBER),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.OLED_BITMAP_OR_STRING)}},cL={init:function(){this.setColour(CM),this.appendValueInput("SUB").setCheck("var").appendField(a_.Msg.MSG.catOLED),this.appendValueInput("data").setCheck([String,"esp32_image","List","Tuple"]).appendField(a_.Msg.OLED_DRAWSTR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.OLED_BITMAP_OR_STRING)}},HL={init:function(){this.setColour(CM),this.appendValueInput("SUB").setCheck("var").appendField(a_.Msg.MSG.catOLED),this.appendValueInput("data").setCheck(String).appendField(a_.Msg.OLED_DRAWSTR),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(a_.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(a_.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendDummyInput("").appendField(a_.Msg.TEXT_CENTER).appendField(new a_.FieldDropdown([[a_.Msg.MICROPYTHON_DISPLAY_YES,"True"],[a_.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"center"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY)}},DL={init:function(){this.setColour(CM),this.appendValueInput("SUB").setCheck("var").appendField(a_.Msg.MSG.catOLED),this.appendValueInput("data").setCheck(String).appendField(a_.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},YL={init:function(){this.setColour(CM),this.appendValueInput("SUB").setCheck("var").appendField(a_.Msg.MSG.catOLED),this.appendValueInput("data").setCheck(String).appendField(a_.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(a_.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(a_.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendValueInput("time").setCheck(Number).appendField(a_.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_SCROLL_IMAGE_OR_STRING_DELAY)}},UL={init:function(){this.setColour(CM),this.appendValueInput("SUB").setCheck("var").appendField(a_.Msg.MSG.catOLED),this.appendValueInput("data").setCheck(String).appendField(a_.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},BL={init:function(){this.setColour(CM),this.appendValueInput("SUB").setCheck("var").appendField(a_.Msg.MSG.catOLED),this.appendValueInput("data").setCheck(String).appendField(a_.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.appendValueInput("size").setCheck(Number).appendField(a_.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("time").setCheck(Number).appendField(a_.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},gL={init:function(){var _=[[a_.Msg.MIXLY_UP,"shift_up"],[a_.Msg.MIXLY_DOWN,"shift_down"],[a_.Msg.MIXLY_LEFT,"shift_left"],[a_.Msg.MIXLY_RIGHT,"shift_right"]];this.setColour(CM),this.appendValueInput("SUB").setCheck("var").appendField(a_.Msg.MSG.catOLED),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.appendDummyInput("").appendField(a_.Msg.DISPLAY_IMAGE_LET),this.appendDummyInput("").appendField(a_.Msg.DISPLAY_IMAGE_LET2).appendField(new a_.FieldDropdown(_),"OP"),this.appendValueInput("val").appendField(a_.Msg.DISPLAY_IMAGE_SHIFT).setCheck(Number),this.appendDummyInput("").appendField(a_.Msg.DISPLAY_IMAGE_UNIT);var t=this;this.setTooltip((function(){var _=t.getFieldValue("OP"),e=a_.Msg.DISPLAY_IMAGE_LET,i=a_.Msg.DISPLAY_IMAGE_LET2,T=a_.Msg.DISPLAY_IMAGE_LET3;return e+i+{up:a_.Msg.MIXLY_UP,down:a_.Msg.MIXLY_DOWN,left:a_.Msg.MIXLY_LEFT,right:a_.Msg.MIXLY_RIGHT}[_]+T}))}},GL={init:function(){this.setColour(CM),this.appendValueInput("SUB").setCheck("var").appendField(a_.Msg.MSG.catOLED),this.appendValueInput("x").setCheck(Number).appendField(a_.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(a_.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendDummyInput().appendField(a_.Msg.MIXLY_ESP32_JS_MONITOR_GET_POINT),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(a_.Msg.MIXLY_ESP32_JS_MONITOR_BRIGHTNESS)}},FL={init:function(){this.setColour(CM),this.appendValueInput("SUB").setCheck("var").appendField(a_.Msg.MSG.catOLED),this.appendValueInput("x").setCheck(Number).appendField(a_.Msg.MIXLY_ESP32_JS_MONITOR_SET_BRIGHTNESS).appendField(a_.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(a_.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendValueInput("STAT").setCheck([Number,Boolean]),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL)}},yL={init:function(){this.setColour(CM),this.appendValueInput("SUB").setCheck("var").appendField(a_.Msg.MSG.catOLED),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_Clear_display),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_MICROBIT_Clear_display)}},fL={init:function(){this.jsonInit({colour:CM,args0:[{name:"SUB",type:"input_value"},{name:"state",options:[[a_.Msg.MPYTHON_DISPLAY_MODE_1,"1"],[a_.Msg.MPYTHON_DISPLAY_MODE_0,"0"]],type:"field_dropdown"},{name:"shape",options:[[a_.Msg.MPYTHON_DISPLAY_HOLLOW,"rect"],[a_.Msg.MPYTHON_DISPLAY_SOLID,"fill_rect"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"w",type:"input_value"},{name:"h",type:"input_value"}],inputsInline:!0,helpUrl:a_.Msg.mpython_HELPURL,tooltip:a_.Msg.MPYTHON_DISPLAY_SHAPE_RECT_TOOLTIP,message0:a_.Msg.MPYTHON_DISPLAY_SHAPE_RECT_MESSAGE1,nextStatement:null,previousStatement:null})}},bL={init:function(){this.jsonInit({colour:CM,args0:[{name:"SUB",type:"input_value"},{name:"state",options:[[a_.Msg.MPYTHON_DISPLAY_MODE_1,"1"],[a_.Msg.MPYTHON_DISPLAY_MODE_0,"0"]],type:"field_dropdown"},{name:"dir_h_v",options:[[a_.Msg.mpython_vertical,"0"],[a_.Msg.mpython_horizontal,"1"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"length",type:"input_value"}],inputsInline:!0,helpUrl:a_.Msg.mpython_HELPURL,tooltip:a_.Msg.MPYTHON_DISPLAY_HVLINE_TOOLTIP,message0:a_.Msg.MPYTHON_DISPLAY_HVLINE_MESSAGE1,nextStatement:null,previousStatement:null})}},xL={init:function(){this.jsonInit({colour:CM,args0:[{name:"SUB",type:"input_value"},{name:"state",options:[[a_.Msg.mpython_display_hline_1,"1"],[a_.Msg.mpython_display_hline_0,"0"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x1",type:"input_value"},{name:"y1",type:"input_value"},{name:"x2",type:"input_value"},{name:"y2",type:"input_value"}],inputsInline:!0,helpUrl:a_.Msg.mpython_HELPURL,tooltip:a_.Msg.mpython_display_line_TOOLTIP,message0:a_.Msg.mpython_display_line_MESSAGE1,nextStatement:null,previousStatement:null})}},vL="#569A98",XL={init:function(){this.setColour(vL),this.appendValueInput("data").setCheck([String,"esp32_image","List","Tuple"]).appendField(a_.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),"micropython:esp32:mixbot"==p_.Boards.getSelectedBoardKey()&&this.setTooltip(a_.Msg.MIXLY_MIXBOT_SHOW_SCROLL_STRING_TOOLTIP)}},VL={init:function(){this.setColour(vL),this.appendValueInput("data").setCheck(String).appendField(a_.Msg.OLED_DRAWSTR),this.appendValueInput("space").setCheck(Number).appendField(a_.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendDummyInput("").appendField(a_.Msg.TEXT_CENTER).appendField(new a_.FieldDropdown([[a_.Msg.MICROPYTHON_DISPLAY_YES,"True"],[a_.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"center"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},kL={init:function(){this.setColour(vL),this.appendValueInput("data").setCheck(String).appendField(a_.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},wL={init:function(){this.setColour(vL),this.appendValueInput("data").setCheck(String).appendField(a_.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.appendValueInput("space").setCheck(Number).appendField(a_.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendValueInput("time").setCheck(Number).appendField(a_.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},WL={init:function(){this.setColour(vL),this.appendValueInput("data").setCheck(String).appendField(a_.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},KL={init:function(){this.setColour(vL),this.appendValueInput("data").setCheck(String).appendField(a_.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.appendValueInput("time").setCheck(Number).appendField(a_.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},zL={init:function(){this.appendDummyInput("").appendField(a_.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let _=0;_<12;_++){let t=this.appendDummyInput();for(let e=0;e<32;e++)t.appendField(new a_.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),_+"-"+e)}this.setOutput(!0),this.setColour(vL),this.setTooltip(a_.Msg.MIXLY_MICROBIT_Create_image1)}},ZL={init:function(){this.jsonInit({colour:vL,args0:[{name:"image",options:[["HEART","HEART"],["HEART_SMALL","HEART_SMALL"],["HAPPY","HAPPY"],["SAD","SAD"],["SMILE","SMILE"],["SILLY","SILLY"],["FABULOUS","FABULOUS"],["SURPRISED","SURPRISED"],["ASLEEP","ASLEEP"],["ANGRY","ANGRY"],["CONFUSED","CONFUSED"],["NO","NO"],["YES","YES"]],type:"field_dropdown"}],output:["esp32_image","List"],helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/image.html#attributes",tooltip:a_.Msg.MIXLY_MICROBIT_Built_in_image1,message0:a_.Msg.MIXLY_MICROBIT_Built_in_image})}},QL={init:function(){this.jsonInit({colour:vL,args0:[{name:"image",options:[["HEART","HEART"],["HEART_SMALL","HEART_SMALL"],["HAPPY","HAPPY"],["SAD","SAD"],["SMILE","SMILE"],["SILLY","SILLY"],["FABULOUS","FABULOUS"],["SURPRISED","SURPRISED"],["ASLEEP","ASLEEP"],["ANGRY","ANGRY"],["CONFUSED","CONFUSED"],["NO","NO"],["YES","YES"],["LEFT_ARROW","LEFT_ARROW"],["RIGHT_ARROW","RIGHT_ARROW"],["DRESS","DRESS"],["TRANSFORMERS","TRANSFORMERS"],["SCISSORS","SCISSORS"],["EXIT","EXIT"],["TREE","TREE"],["PACMAN","PACMAN"],["TARGET","TARGET"],["TSHIRT","TSHIRT"],["ROLLERSKATE","ROLLERSKATE"],["DUCK","DUCK"],["HOUSE","HOUSE"],["TORTOISE","TORTOISE"],["BUTTERFLY","BUTTERFLY"],["STICKFIGURE","STICKFIGURE"],["GHOST","GHOST"],["PITCHFORK","PITCHFORK"],["MUSIC_QUAVERS","MUSIC_QUAVERS"],["MUSIC_QUAVER","MUSIC_QUAVER"],["MUSIC_CROTCHET","MUSIC_CROTCHET"],["COW","COW"],["RABBIT","RABBIT"],["SQUARE_SMALL","SQUARE_SMALL"],["SQUARE","SQUARE"],["DIAMOND_SMALL","DIAMOND_SMALL"],["DIAMOND","DIAMOND"],["CHESSBOARD","CHESSBOARD"],["TRIANGLE_LEFT","TRIANGLE_LEFT"],["TRIANGLE","TRIANGLE"],["SNAKE","SNAKE"],["UMBRELLA","UMBRELLA"],["SKULL","SKULL"],["GIRAFFE","GIRAFFE"],["SWORD","SWORD"]],type:"field_dropdown"}],output:["esp32_image","List"],helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/image.html#attributes",tooltip:a_.Msg.MIXLY_MICROBIT_Built_in_image1,message0:a_.Msg.MIXLY_MICROBIT_Built_in_image})}},JL={init:function(){var _=[[a_.Msg.MICROBIT_DISPLAY_UNION,"add"],[a_.Msg.MICROBIT_DISPLAY_MINUS,"sub"]];this.setColour(vL),this.setOutput(!0,"esp32_image"),this.appendValueInput("A").appendField(a_.Msg.MICROBIT_DISPLAY_MERGE_SHAPE),this.appendValueInput("B").appendField(new a_.FieldDropdown(_),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var _=t.getFieldValue("OP");return{"+":a_.Msg.MIXLY_MICROBIT_image_add,"-":a_.Msg.MIXLY_MICROBIT_image_reduce}[_]}))}},qL={init:function(){this.setColour(vL),this.appendValueInput("A").setCheck("esp32_image").appendField(a_.Msg.MIXLY_MICROBIT_Invert_image1),this.setInputsInline(!0),this.setOutput(!0,"esp32_image")}},jL={init:function(){var _=[[a_.Msg.MIXLY_UP,"shift_up"],[a_.Msg.MIXLY_DOWN,"shift_down"],[a_.Msg.MIXLY_LEFT,"shift_left"],[a_.Msg.MIXLY_RIGHT,"shift_right"]];this.setColour(vL),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.appendDummyInput("").appendField(a_.Msg.DISPLAY_IMAGE_LET),this.appendDummyInput("").appendField(a_.Msg.DISPLAY_IMAGE_LET2).appendField(new a_.FieldDropdown(_),"OP"),this.appendValueInput("val").appendField(a_.Msg.DISPLAY_IMAGE_SHIFT).setCheck(Number),this.appendDummyInput("").appendField(a_.Msg.DISPLAY_IMAGE_UNIT);var t=this;this.setTooltip((function(){var _=t.getFieldValue("OP"),e=a_.Msg.DISPLAY_IMAGE_LET,i=a_.Msg.DISPLAY_IMAGE_LET2,T=a_.Msg.DISPLAY_IMAGE_LET3;return e+i+{shift_up:a_.Msg.MIXLY_UP,shift_down:a_.Msg.MIXLY_DOWN,shift_left:a_.Msg.MIXLY_LEFT,shift_right:a_.Msg.MIXLY_RIGHT}[_]+T}))}},$L={init:function(){this.setColour(vL),this.appendValueInput("x").setCheck(Number).appendField(a_.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(a_.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendDummyInput().appendField(a_.Msg.MIXLY_ESP32_JS_MONITOR_GET_POINT),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(a_.Msg.MIXLY_ESP32_JS_MONITOR_BRIGHTNESS)}},_R={init:function(){this.setColour(vL),this.appendValueInput("x").setCheck(Number).appendField(a_.Msg.MIXLY_ESP32_JS_MONITOR_SET_BRIGHTNESS).appendField(a_.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(a_.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendValueInput("STAT").setCheck([Number,Boolean]),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL)}},tR={init:function(){this.setColour(vL),this.appendDummyInput().appendField(a_.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(a_.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS)}},eR={init:function(){this.setColour(vL),this.appendValueInput("x").setCheck(Number).appendField(a_.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS+" 0.0-1.0")}},iR={init:function(){this.setColour(vL),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_Clear_display),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_MICROBIT_Clear_display)}},TR={init:function(){this.appendDummyInput("").appendField(a_.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let _=0;_<5;_++){let t=this.appendDummyInput();for(let e=0;e<8;e++)t.appendField(new a_.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),_+"-"+e)}this.setOutput(!0),this.setColour(vL),this.setTooltip(a_.Msg.MIXLY_MICROBIT_Create_image1)}},ER={init:function(){this.appendDummyInput("").appendField(a_.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let _=0;_<8;_++){let t=this.appendDummyInput();for(let e=0;e<12;e++)t.appendField(new a_.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),_+"-"+e)}this.setOutput(!0),this.setColour(vL),this.setTooltip(a_.Msg.MIXLY_MICROBIT_Create_image1)}},nR={init:function(){this.appendDummyInput("").appendField(a_.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let _=0;_<8;_++){let t=this.appendDummyInput();for(let e=0;e<16;e++)t.appendField(new a_.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),_+"-"+e)}this.setOutput(!0,"esp32_image"),this.setColour(vL),this.setTooltip(a_.Msg.MIXLY_MICROBIT_Create_image1)}},oR={init:function(){var _=[["4x5"+a_.Msg.MIXGO_ME_DISPLAY_HORIZONTAL,"'4x5'"],["5x5"+a_.Msg.MIXGO_ME_DISPLAY_HORIZONTAL,"'5x5'"],["5x8"+a_.Msg.MIXGO_ME_DISPLAY_VERTICAL,"'5x8'"]];this.setColour(vL),this.appendDummyInput().appendField(a_.Msg.OLED_SET_FONT).appendField(new a_.FieldDropdown(_),"OP"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},sR={init:function(){this.setColour(vL),this.appendValueInput("data").appendField(a_.Msg.OLED_BITMAP),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.OLED_BITMAP_OR_STRING)}},OR={init:function(){this.setColour(vL),this.appendValueInput("data").appendField(a_.Msg.OLED_BITMAP),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(a_.Msg.MIXLY_MICROBIT_JS_NUMBER),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.OLED_BITMAP_OR_STRING)}},IR={init:function(){this.setColour(vL),this.appendValueInput("data").setCheck([String,"esp32_image","List","Tuple"]).appendField(a_.Msg.OLED_DRAWSTR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.OLED_BITMAP_OR_STRING)}},aR={init:function(){this.setColour(vL),this.appendValueInput("data").setCheck(String).appendField(a_.Msg.OLED_DRAWSTR),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(a_.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(a_.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendDummyInput("").appendField(a_.Msg.TEXT_CENTER).appendField(new a_.FieldDropdown([[a_.Msg.MICROPYTHON_DISPLAY_YES,"True"],[a_.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"center"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY)}},pR={init:function(){this.setColour(vL),this.appendValueInput("data").setCheck(String).appendField(a_.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(a_.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(a_.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendValueInput("time").setCheck(Number).appendField(a_.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_SCROLL_IMAGE_OR_STRING_DELAY)}},MR={init:function(){this.setColour(vL),this.appendValueInput("data").setCheck(String).appendField(a_.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.appendValueInput("size").setCheck(Number).appendField(a_.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("time").setCheck(Number).appendField(a_.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},LR={init:function(){this.setColour(vL),this.appendValueInput("x").setCheck(Number).appendField(a_.Msg.MIXLY_ESP32_JS_MONITOR_SET_BRIGHTNESS).appendField(a_.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(a_.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendValueInput("STAT").setCheck([Number,Boolean]),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL)}},RR={init:function(){this.jsonInit({colour:vL,args0:[{name:"state",options:[[a_.Msg.MPYTHON_DISPLAY_MODE_1,"1"],[a_.Msg.MPYTHON_DISPLAY_MODE_0,"0"]],type:"field_dropdown"},{name:"shape",options:[[a_.Msg.MPYTHON_DISPLAY_HOLLOW,"rect"],[a_.Msg.MPYTHON_DISPLAY_SOLID,"fill_rect"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"w",type:"input_value"},{name:"h",type:"input_value"}],inputsInline:!0,helpUrl:a_.Msg.mpython_HELPURL,tooltip:a_.Msg.MPYTHON_DISPLAY_SHAPE_RECT_TOOLTIP,message0:a_.Msg.MPYTHON_DISPLAY_SHAPE_RECT_MESSAGE0,nextStatement:null,previousStatement:null})}},rR={init:function(){this.jsonInit({colour:vL,args0:[{name:"state",options:[[a_.Msg.MPYTHON_DISPLAY_MODE_1,"1"],[a_.Msg.MPYTHON_DISPLAY_MODE_0,"0"]],type:"field_dropdown"},{name:"dir_h_v",options:[[a_.Msg.mpython_vertical,"0"],[a_.Msg.mpython_horizontal,"1"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"length",type:"input_value"}],inputsInline:!0,helpUrl:a_.Msg.mpython_HELPURL,tooltip:a_.Msg.MPYTHON_DISPLAY_HVLINE_TOOLTIP,message0:a_.Msg.MPYTHON_DISPLAY_HVLINE_MESSAGE0,nextStatement:null,previousStatement:null})}},SR={init:function(){this.jsonInit({colour:vL,args0:[{name:"state",options:[[a_.Msg.mpython_display_hline_1,"1"],[a_.Msg.mpython_display_hline_0,"0"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x1",type:"input_value"},{name:"y1",type:"input_value"},{name:"x2",type:"input_value"},{name:"y2",type:"input_value"}],inputsInline:!0,helpUrl:a_.Msg.mpython_HELPURL,tooltip:a_.Msg.mpython_display_line_TOOLTIP,message0:a_.Msg.mpython_display_line_MESSAGE0,nextStatement:null,previousStatement:null})}},lR={init:function(){this.jsonInit({colour:vL,args0:[{type:"field_label",name:"size_image",text:a_.Msg.MIXLY_MICROBIT_Built_in_image1},{name:"path",options:[["Heart","Heart"],["Angry","Angry"],["Bored","Bored"],["Confused","Confused"],["Happy","Happy"],["Paper","Paper"],["Rock","Rock"],["Sad","Sad"],["Scissors","Scissors"],["Silly","Silly"],["Sleep","Sleep"],["Small_heart","Small_heart"],["Small_paper","Small_paper"],["Small_rock","Small_rock"],["Small_scissors","Small_scissors"],["Smile","Smile"],["Surprise","Surprise"],["Wonderful","Wonderful"],["Eyes_Angry","Eyes_Angry"],["Awake","Awake"],["Black_eye","Black_eye"],["Bottom_left","Bottom_left"],["Bottom_right","Bottom_right"],["Crazy_1","Crazy_1"],["Crazy_2","Crazy_2"],["Disappointed","Disappointed"],["Dizzy","Dizzy"],["Down","Down"],["Evil","Evil"],["Hurt","Hurt"],["Knocked_out","Knocked_out"],["Love","Love"],["Middle_left","Middle_left"],["Middle_right","Middle_right"],["Neutral","Neutral"],["Nuclear","Nuclear"],["Pinch_left","Pinch_left"],["Pinch_middle","Pinch_middle"],["Pinch_right","Pinch_right"],["Tear","Tear"],["Tired_left","Tired_left"],["Tired_middle","Tired_middle"],["Tired_right","Tired_right"],["Toxic","Toxic"],["Up","Up"],["Winking","Winking"],["Accept","Accept"],["Backward","Backward"],["Decline","Decline"],["Forward","Forward"],["Left","Left"],["No_go","No_go"],["Question_mark","Question_mark"],["Right","Right"],["Stop_1","Stop_1"],["Stop_2","Stop_2"],["Thumbs_down","Thumbs_down"],["Thumbs_up","Thumbs_up"],["Warning","Warning"],["Bomb","Bomb"],["Boom","Boom"],["Fire","Fire"],["Flowers","Flowers"],["Forest","Forest"],["Lightning","Lightning"],["Light_off","Light_off"],["Light_on","Light_on"],["Night","Night"],["Pirate","Pirate"],["Snow","Snow"],["Target","Target"],["Bar_0","Bar_0"],["Bar_1","Bar_1"],["Bar_2","Bar_2"],["Bar_3","Bar_3"],["Bar_4","Bar_4"],["Dial_0","Dial_0"],["Dial_1","Dial_1"],["Dial_2","Dial_2"],["Dial_3","Dial_3"],["Dial_4","Dial_4"],["Dots_0","Dots_0"],["Dots_1","Dots_1"],["Dots_2","Dots_2"],["Dots_3","Dots_3"],["Hourglass_0","Hourglass_0"],["Hourglass_1","Hourglass_1"],["Hourglass_2","Hourglass_2"],["Timer_0","Timer_0"],["Timer_1","Timer_1"],["Timer_2","Timer_2"],["Timer_3","Timer_3"],["Timer_4","Timer_4"],["Water_level_0","Water_level_0"],["Water_level_1","Water_level_1"],["Water_level_2","Water_level_2"],["Water_level_3","Water_level_3"]],type:"field_dropdown"}],output:"String",helpUrl:"",tooltip:"",message0:"%1 %2"})}},AR={init:function(){this.appendDummyInput("").appendField(a_.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let _=0;_<5;_++){let t=this.appendDummyInput();for(let e=0;e<5;e++)t.appendField(new a_.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),_+"-"+e)}this.setOutput(!0),this.setColour(vL),this.setTooltip(a_.Msg.MIXLY_MICROBIT_Create_image1)}},PR={init:function(){this.setColour(vL),this.appendDummyInput().appendField(a_.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(a_.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS)}},NR={init:function(){this.setColour(vL),this.appendDummyInput().appendField(a_.Msg.MIXLY_MIXBOT_AMBIENTBRIGHT),this.setInputsInline(!0),this.setOutput(!0,Number)}},dR={init:function(){this.setColour(vL),this.appendValueInput("x").setCheck(Number).appendField(a_.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS+" 0.0-1.0")}},hR={init:function(){var _=[[a_.Msg.mixpy_PL_PIE_SHADOW_N,"0"],[a_.Msg.CLOCKWISE+"90"+a_.Msg.blockpy_setheading_degree,"1"],[a_.Msg.CLOCKWISE+"180"+a_.Msg.blockpy_setheading_degree,"2"],[a_.Msg.CLOCKWISE+"270"+a_.Msg.blockpy_setheading_degree,"3"]];this.setColour(vL),this.appendDummyInput().appendField(a_.Msg.MIXLY_MIXBOT_SCREEN_ROTATE).appendField(new a_.FieldDropdown(_),"OP"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},uR={init:function(){this.appendDummyInput("").appendField(a_.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let _=0;_<12;_++){let t=this.appendDummyInput();for(let e=0;e<12;e++)t.appendField(new a_.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),_+"-"+e)}this.setOutput(!0),this.setColour(vL),this.setTooltip(a_.Msg.MIXLY_MICROBIT_Create_image1)}},mR={init:function(){this.setColour(vL),this.appendValueInput("data").appendField(a_.Msg.OLED_BITMAP),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.OLED_BITMAP_OR_STRING)}},CR={init:function(){this.setColour(vL),this.appendValueInput("data").appendField(a_.Msg.OLED_BITMAP),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(a_.Msg.MIXLY_MICROBIT_JS_NUMBER),this.appendValueInput("VAR").appendField(a_.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.OLED_BITMAP_OR_STRING)}},cR={init:function(){this.setColour(vL),this.appendValueInput("data").setCheck(String).appendField(a_.Msg.OLED_DRAWSTR),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(a_.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(a_.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendDummyInput("").appendField(a_.Msg.TEXT_CENTER).appendField(new a_.FieldDropdown([[a_.Msg.MICROPYTHON_DISPLAY_YES,"True"],[a_.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"center"),this.appendValueInput("VAR").appendField(a_.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY)}},HR={init:function(){this.setColour(vL),this.appendValueInput("data").setCheck(String).appendField(a_.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},DR={init:function(){this.setColour(vL),this.appendValueInput("data").setCheck(String).appendField(a_.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(a_.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(a_.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendValueInput("time").setCheck(Number).appendField(a_.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.appendValueInput("VAR").appendField(a_.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_SCROLL_IMAGE_OR_STRING_DELAY)}},YR={init:function(){this.setColour(vL),this.appendValueInput("data").setCheck(String).appendField(a_.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},UR={init:function(){this.setColour(vL),this.appendValueInput("data").setCheck(String).appendField(a_.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.appendValueInput("size").setCheck(Number).appendField(a_.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("time").setCheck(Number).appendField(a_.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.appendValueInput("VAR").appendField(a_.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},BR={init:function(){this.jsonInit({colour:vL,args0:[{name:"shape",options:[[a_.Msg.MPYTHON_DISPLAY_HOLLOW,"rect"],[a_.Msg.MPYTHON_DISPLAY_SOLID,"fill_rect"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"w",type:"input_value"},{name:"h",type:"input_value"},{name:"VAR",type:"input_value"}],inputsInline:!0,helpUrl:a_.Msg.mpython_HELPURL,tooltip:a_.Msg.MPYTHON_DISPLAY_SHAPE_RECT_TOOLTIP,message0:a_.Msg.ONBOARD_TFT_DISPLAY_SHAPE_RECT_MESSAGE0,nextStatement:null,previousStatement:null})}},gR={init:function(){this.jsonInit({colour:vL,args0:[{name:"dir_h_v",options:[[a_.Msg.mpython_vertical,"0"],[a_.Msg.mpython_horizontal,"1"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"length",type:"input_value"},{name:"VAR",type:"input_value"}],inputsInline:!0,helpUrl:a_.Msg.mpython_HELPURL,tooltip:a_.Msg.MPYTHON_DISPLAY_HVLINE_TOOLTIP,message0:a_.Msg.ONBOARD_TFT_DISPLAY_HVLINE_MESSAGE0,nextStatement:null,previousStatement:null})}},GR={init:function(){this.jsonInit({colour:vL,args0:[{type:"input_dummy"},{name:"x1",type:"input_value"},{name:"y1",type:"input_value"},{name:"x2",type:"input_value"},{name:"y2",type:"input_value"},{name:"VAR",type:"input_value"}],inputsInline:!0,helpUrl:a_.Msg.mpython_HELPURL,tooltip:a_.Msg.mpython_display_line_TOOLTIP,message0:a_.Msg.mpython_display_line_MESSAGE0,nextStatement:null,previousStatement:null})}},FR={init:function(){var _=[[a_.Msg.MIXLY_UP,"shift_up"],[a_.Msg.MIXLY_DOWN,"shift_down"],[a_.Msg.MIXLY_LEFT,"shift_left"],[a_.Msg.MIXLY_RIGHT,"shift_right"]];this.setColour(vL),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.appendDummyInput("").appendField(a_.Msg.DISPLAY_IMAGE_LET),this.appendDummyInput("").appendField(a_.Msg.DISPLAY_IMAGE_LET2).appendField(new a_.FieldDropdown(_),"OP"),this.appendValueInput("val").appendField(a_.Msg.DISPLAY_IMAGE_SHIFT).setCheck(Number),this.appendDummyInput("").appendField(a_.Msg.DISPLAY_IMAGE_UNIT);var t=this;this.setTooltip((function(){var _=t.getFieldValue("OP"),e=a_.Msg.DISPLAY_IMAGE_LET,i=a_.Msg.DISPLAY_IMAGE_LET2,T=a_.Msg.DISPLAY_IMAGE_LET3;return e+i+{up:a_.Msg.MIXLY_UP,down:a_.Msg.MIXLY_DOWN,left:a_.Msg.MIXLY_LEFT,right:a_.Msg.MIXLY_RIGHT}[_]+T}))}},yR={init:function(){this.setColour(vL),this.appendDummyInput("").appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("x").setCheck(Number).appendField(a_.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(a_.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendDummyInput().appendField(a_.Msg.HTML_COLOUR),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(a_.Msg.MIXLY_ESP32_JS_MONITOR_BRIGHTNESS)}},fR={init:function(){this.setColour(vL),this.appendValueInput("x").setCheck(Number).appendField(a_.Msg.MIXLY_LCD_SETCOLOR).appendField(a_.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(a_.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendValueInput("VAR").appendField(a_.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL)}},bR={init:function(){this.setColour(vL),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_Clear_display),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_MICROBIT_Clear_display)}},xR={init:function(){this.setColour(vL),this.appendDummyInput().appendField(a_.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(a_.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS)}},vR={init:function(){this.setColour(vL),this.appendValueInput("x").setCheck(Number).appendField(a_.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS+" 0.0-1.0")}},XR={init:function(){this.setColour(vL),this.appendValueInput("VAR").appendField(a_.Msg.MIXLY_SCREEN_FILL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},VR={init:function(){this.setColour(vL),this.appendValueInput("SUB").appendField(a_.Msg.MIXLY_INIT_CLOCK),this.appendDummyInput().appendField(a_.Msg.MIXLY_CENTER_POS),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(a_.Msg.OLED_CIRCLE_RADIUS),this.appendValueInput("VAR").appendField(a_.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},kR={init:function(){this.setColour(vL),this.appendValueInput("SUB"),this.appendDummyInput().appendField(a_.Msg.GET_RTCTIME),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},wR={init:function(){this.setColour(vL),this.appendValueInput("SUB"),this.appendDummyInput().appendField(a_.Msg.SET_TIME),this.appendValueInput("h").setCheck(Number).appendField(a_.Msg.MIXLY_HOUR),this.appendValueInput("m").setCheck(Number).appendField(a_.Msg.MIXLY_MINUTE),this.appendValueInput("s").setCheck(Number).appendField(a_.Msg.MIXLY_SECOND),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},WR={init:function(){this.setColour(vL),this.appendValueInput("SUB"),this.appendDummyInput().appendField(a_.Msg.DRAW_CLOCK),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},KR={init:function(){this.setColour(vL),this.appendValueInput("SUB"),this.appendDummyInput().appendField(a_.Msg.CLEAR_CLOCK),this.appendValueInput("VAR").appendField(a_.Msg.MIXLY_STM32_TFT_BACKGROUND_COLOR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},zR={init:function(){this.jsonInit({colour:vL,args0:[{name:"shape",options:[[a_.Msg.MPYTHON_DISPLAY_HOLLOW,"False"],[a_.Msg.MPYTHON_DISPLAY_SOLID,"True"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"r",type:"input_value"},{name:"VAR",type:"input_value"}],inputsInline:!0,helpUrl:a_.Msg.mpython_HELPURL,message0:a_.Msg.ONBOARD_TFT_DISPLAY_SHAPE_CIRCLE_MESSAGE0,nextStatement:null,previousStatement:null})}},ZR="#777777",QR={init:function(){this.setColour(ZR),this.appendDummyInput("").appendField("from ").appendField(new a_.FieldTextInput("ESP32"),"path").appendField(" import ").appendField(new a_.FieldTextInput("*"),"module"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},JR={init:function(){this.setColour(ZR),this.appendDummyInput("").appendField("import ").appendField(new a_.FieldTextInput("module"),"module"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},qR={init:function(){this.setColour(ZR),this.appendDummyInput("").appendField(new a_.FieldTextInput("my_function"),"NAME"),this.itemCount_=1,this.arguments_=["x"],this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new a_.icons.MutatorIcon(["factory_create_with_item"],this))},mutationToDom:function(){var _=document.createElement("mutation");_.setAttribute("items",this.itemCount_);for(var t=0;tt?_[t]:'"key'+(t+1)+'"'),"KEY"+t).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(_,t){a_.Names.equals(_,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},br={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(a_.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},xr={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(a_.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(a_.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},vr={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(a_.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(a_.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},Xr={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(a_.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").setCheck(String).appendField(a_.Msg.MIXLY_EMQX_SERVER).setAlign(a_.inputs.Align.RIGHT),this.appendValueInput("USERNAME").setCheck(String).appendField(a_.Msg.MIXLY_WIFI_USERNAME).setAlign(a_.inputs.Align.RIGHT),this.appendValueInput("PASSWORD").setCheck(String).appendField(a_.Msg.MIXLY_IOT_PASSWORD).setAlign(a_.inputs.Align.RIGHT),this.appendValueInput("PROJECT").setCheck(String).appendField(a_.Msg.MIXLY_EMQX_PROJECT).setAlign(a_.inputs.Align.RIGHT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Vr={init:function(){this.setColour(Ur),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(a_.Msg.MIXLY_EMQX_PUBLISH_NEW).appendField(a_.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MSG").appendField(a_.Msg.HTML_BODY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_IOT_EMQX_PUBLISH_TOOLTIP)}},kr={init:function(){this.setColour(Ur),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(a_.Msg.MIXLY_EMQX_SUBSCRIBE+a_.Msg.MIXLY_MICROBIT_MSG).appendField(a_.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("METHOD").appendField(a_.Msg.MIXLY_EMQX_SET_METHOD),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_IOT_EMQX_SUBSCRIBE_TOOLTIP)}},wr={init:function(){this.setColour(Ur),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(a_.Msg.MIXLY_ESP32_DISCONNECT_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Wr={init:function(){this.setColour(Ur),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(a_.Msg.MIXLY_EMQX_CONNECT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Kr={init:function(){this.setColour(Ur),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(a_.Msg.MIXLY_ESP32_CHECK_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},zr={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROPYTHON_FORMAT).appendField(a_.Msg.MQTT_Topic),this.setInputsInline(!0),this.setOutput(!0)}},Zr={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROPYTHON_FORMAT).appendField(a_.Msg.MIXLY_EMQX_PUBLISH_MSG),this.setInputsInline(!0),this.setOutput(!0)}},Qr={init:function(){this.setColour(Ur),this.appendValueInput("VAR").appendField(a_.Msg.MIXLY_ESP32_IOT_MAP_FORMATING),this.setOutput(!0)}},Jr={init:function(){this.setColour(Ur),this.appendValueInput("VAR").appendField(a_.Msg.MIXLY_MICROPYTHON_FORMAT+"(Json)"),this.setOutput(!0)}},qr={init:function(){this.setColour(Ur),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(a_.Msg.MIXLY_EMQX_PING),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_IOT_EMQX_PING_TOOLTIP)}},jr={init:function(){this.setColour(Ur),this.appendDummyInput().appendField("MixIO").appendField(a_.Msg.MIXLY_GET_NTP),this.appendValueInput("addr").appendField(a_.Msg.blynk_SERVER_ADD),this.setInputsInline(!0),this.setOutput(!0)}},$r={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(a_.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").appendField(a_.Msg.MIXLY_EMQX_SERVER).setAlign(a_.inputs.Align.RIGHT),this.appendValueInput("KEY").appendField(a_.Msg.CONTROLS_FOR_INPUT_WITH+a_.Msg.MIXLY_MIXIO_SHARE_KEY).setAlign(a_.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},_S={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(a_.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").appendField(a_.Msg.MIXLY_EMQX_SERVER).setAlign(a_.inputs.Align.RIGHT),this.appendValueInput("KEY").appendField(a_.Msg.CONTROLS_FOR_INPUT_WITH+"Mixly Key").setAlign(a_.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},tS={init:function(){this.VISITOR_ID=p_.Config.BOARD.visitorId.str32.substring(0,8).toUpperCase(),this.setColour(Ur),this.appendDummyInput("").appendField(new a_.FieldTextInput(this.visitorId),"VISITOR_ID"),this.setOutput(!0,null)},onchange:function(){const _=this.getFieldValue("VISITOR_ID");this.VISITOR_ID!==_&&this.setFieldValue(this.VISITOR_ID,"VISITOR_ID")}},eS={init:function(){this.setColour(Ur),this.appendDummyInput().appendField("MixIO").appendField(a_.Msg.MSG.catEthernet_clinet),this.setOutput(!0),this.setInputsInline(!0)}},iS={init:function(){this.setColour(Ur),this.appendDummyInput().appendField("HTTP"+a_.Msg.MIXLY_Client),this.appendValueInput("addr").appendField(a_.Msg.DISPLAY_IMAGE_LET2),this.appendDummyInput().appendField(a_.Msg.MIXLY_REQUESTS_GET).appendField(a_.Msg.MIXLY_GET_CURRENT_TIME).appendField(a_.Msg.MIXLY_OPEN_DEBUG).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[a_.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},TS={init:function(){this.setColour(Ur),this.appendDummyInput().appendField("HTTP"+a_.Msg.MIXLY_Client).appendField(a_.Msg.MIXLY_GET).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_REQUESTS_LEN,"client_len"],[a_.Msg.MIXLY_REQUESTS_GET_LEN,"server_len"],[a_.Msg.MIXLY_REQUESTS_MESSAGE,"text"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},ES={init:function(){this.setColour(Ur),this.appendDummyInput().appendField("MQTT"+a_.Msg.MIXLY_Client),this.appendValueInput("addr").appendField(a_.Msg.MIXLY_CONNECTTO),this.appendDummyInput().appendField(a_.Msg.MIXLY_INIT_SUBSCRIBE).appendField(a_.Msg.MQTT_Topic).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_GET_CURRENT_TIME,""]]),"key").appendField(a_.Msg.MIXLY_OPEN_DEBUG).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[a_.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"key2"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},nS={init:function(){this.setColour(Ur),this.appendDummyInput().appendField("MQTT"+a_.Msg.MIXLY_Client).appendField(a_.Msg.MIXLY_GET).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_REQUESTS_LEN,"client_len"],[a_.Msg.MIXLY_REQUESTS_GET_LEN,"server_len"],[a_.Msg.MIXLY_REQUESTS_MESSAGE,"time_msg()"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},oS=Br,sS=gr,OS=Gr,IS=Fr,aS=fr,pS=225,MS={init:function(){this.setColour(pS),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(a_.Msg.MIXLY_NETWORK_INIT),this.appendDummyInput().appendField(a_.Msg.MIXLY_NETWORK_MODE).appendField(new a_.FieldDropdown([["STA","STA"],["AP","AP"]]),"mode"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_NETWORK_INIT_TOOLTIP)}},LS={init:function(){this.setColour(pS),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_NETWORK_WIFI_OPEN,"True"],[a_.Msg.MIXLY_NETWORK_WIFI_CLOSE,"False"]]),"op"),this.appendDummyInput("").appendField(a_.Msg.MIXLY_NETWORK_WIFI_FLAG),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0);var _=this;this.setTooltip((function(){var t=_.getFieldValue("op"),e=a_.Msg.MIXLY_ESP32_NETWORK_OPEN_TOOLTIP;return{True:a_.Msg.MIXLY_NETWORK_WIFI_OPEN,False:a_.Msg.MIXLY_NETWORK_WIFI_CLOSE}[t]+e}))}},RS={init:function(){this.setColour(pS),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(a_.Msg.MIXLY_NETWORK_WIFI_IS_ACTIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_NETWORK_WIFI_IS_ACTIVE)}},rS={init:function(){this.setColour(pS),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(a_.Msg.MIXLY_NETWORK_WIFI_SCAN),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip((function(){return a_.Msg.MIXLY_ESP32_NETWORK_SCAN_TOOLTIP+{0:"ssid",1:"bssid",2:"channel",3:"RSSI",4:"authmode",5:"hidden",all:a_.Msg.MIXLY_NETWORK_WIFI_SCAN_ATTRIBUTE}.all}))}},SS={init:function(){this.setColour(pS),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(a_.Msg.MIXLY_ESP32_NETWORK_CONNECT),this.appendValueInput("id").setCheck(String).appendField(a_.Msg.HTML_NAME),this.appendValueInput("password").setCheck(String).appendField(a_.Msg.HTML_PASSWORD),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_NETWORK_CONNECT_TOOLTIP)}},lS={init:function(){this.setColour(pS),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(a_.Msg.MIXLY_NETWORK_WIFI_CONNECT),this.appendDummyInput("").appendField(a_.Msg.MIXLY_SYMBOL_QUESTION),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_NETWORK_WIFI_CONNECT_TOOLTIP)}},AS={init:function(){this.setColour(pS),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(a_.Msg.MIXLY_ESP32_NETWORK_GET_WIFI),this.appendDummyInput("").appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_ESP32_NETWORK_IP,"0"],[a_.Msg.MIXLY_ESP32_NETWORK_MASK,"1"],[a_.Msg.MIXLY_ESP32_NETWORK_GATEWAY,"2"],["DNS","3"]]),"mode"),this.setOutput(!0),this.setInputsInline(!0);var _=this;this.setTooltip((function(){var t=_.getFieldValue("mode");return a_.Msg.MIXLY_ESP32_NETWORK_GET_WIFI_TOOLTIP+{0:a_.Msg.MIXLY_ESP32_NETWORK_IP,1:a_.Msg.MIXLY_ESP32_NETWORK_MASK,2:a_.Msg.MIXLY_ESP32_NETWORK_GATEWAY,3:"DNS"}[t]}))}},PS={init:function(){this.setColour(pS),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(a_.Msg.MIXLY_ESP32_NETWORK_STOP_CONNECT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_NETWORK_STOP_TOOLTIP)}},NS={init:function(){this.setColour(pS),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(a_.Msg.MIXLY_ESP32_NETWORK_GET_WIFI),this.appendDummyInput().appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_NETWORK_WIFI_ESSID,"essid"],[a_.Msg.MIXLY_NETWORK_WIFI_CHANNEL,"channel"]]),"op"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_NETWORK_GET_WIFI_TOOLTIP)}},dS={init:function(){this.setColour(pS),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(a_.Msg.LISTS_SET_INDEX_SET),this.appendValueInput("essid").setCheck(String).appendField(a_.Msg.MIXLY_NETWORK_WIFI_ESSID),this.appendValueInput("channel").setCheck(Number).appendField(a_.Msg.MIXLY_NETWORK_WIFI_CHANNEL),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_NETWORK_AP_CONNECT_TOOLTIP)}},hS={init:function(){this.setColour(pS),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(a_.Msg.MIXLY_ESP32_NETWORK_SERVER1),this.appendDummyInput("").appendField(a_.Msg.MIXLY_ESP32_NETWORK_SERVER2),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_NETWORK_SOCKET_CLOSE_TOOLTIP)}},uS={init:function(){this.setColour(pS),this.appendValueInput("VAR").appendField(a_.Msg.MIXLY_MICROPYTHON_SOCKET_INIT).setCheck("var"),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROPYTHON_SOCKET_TYPE).appendField(new a_.FieldDropdown([["TCP","TCP"],["UDP","UDP"]]),"mode"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0);var _=this;this.setTooltip((function(){var t=_.getFieldValue("mode");return a_.Msg.MIXLY_ESP32_NETWORK_SOCKET_INIT_TOOLTIP+{TCP:"TCP",UDP:"UDP"}[t]}))}},mS={init:function(){this.setColour(pS),this.appendValueInput("VAR").setCheck("var").appendField(a_.Msg.MIXLY_MICROPYTHON_SOCKET_LET_SOCKET),this.appendValueInput("address").appendField(a_.Msg.MIXLY_MICROPYTHON_SOCKET_BIND_TO_ADDRESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_NETWORK_SOCKET_BIND_TOOLTIP)}},CS={init:function(){this.setColour(pS),this.appendValueInput("VAR").setCheck("var").appendField(a_.Msg.MIXLY_MICROPYTHON_SOCKET_LET_SOCKET),this.appendValueInput("address").appendField(a_.Msg.MIXLY_MICROPYTHON_SOCKET_CONNECT_TO_ADDRESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_NETWORK_SOCKET_CONNECT_TOOLTIP)}},cS={init:function(){this.setColour(pS),this.appendValueInput("VAR").setCheck("var"),this.appendValueInput("queue").setCheck(Number).appendField(a_.Msg.MIXLY_MICROPYTHON_SOCKET_LISTEN).appendField(a_.Msg.MIXLY_MICROPYTHON_SOCKET_QUEUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_NETWORK_SOCKET_LISTEN_TOOLTIP)}},HS={init:function(){this.setColour(pS),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROPYTHON_SOCKET_ACCEPT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_NETWORK_SOCKET_ACCEPT_TOOLTIP)}},DS={init:function(){this.setColour(pS),this.appendValueInput("VAR").setCheck("var").appendField("TCP"),this.appendValueInput("size").setCheck(Number).appendField(a_.Msg.MIXLY_MICROPYTHON_SOCKET_RECEIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_NETWORK_SOCKET_RECEIVE_TOOLTIP)}},YS={init:function(){this.setColour(pS),this.appendValueInput("VAR").setCheck("var").appendField("TCP"),this.appendValueInput("content").appendField(a_.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_NETWORK_SOCKET_SEND_TOOLTIP)}},US={init:function(){this.setColour(pS),this.appendValueInput("VAR").setCheck("var").appendField("UDP"),this.appendValueInput("size").setCheck(Number).appendField(a_.Msg.MIXLY_MICROPYTHON_SOCKET_RECEIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_NETWORK_SOCKET_RECEIVE_FROM_TOOLTIP)}},BS={init:function(){this.setColour(pS),this.appendValueInput("VAR").setCheck("var").appendField("UDP"),this.appendValueInput("content").appendField(a_.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.appendValueInput("address").appendField(a_.Msg.MIXLY_MICROPYTHON_SOCKET_TO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_NETWORK_SOCKET_SEND_TO_TOOLTIP)}},gS={init:function(){this.setColour(pS),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROPYTHON_SOCKET_CLOSE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_NETWORK_SOCKET_CLOSE_TOOLTIP)}},GS={init:function(){this.setColour(pS),this.appendValueInput("DOMAIN").appendField(a_.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(a_.Msg.blockpy_REQUESTS_GET).appendField(new a_.FieldTextInput("response"),"VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(a_.Msg.blockpy_REQUESTS_GET_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(_,t){a_.Names.equals(_,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},FS={init:function(){this.appendValueInput("VAL");var _=[[a_.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE,"status_code"],[a_.Msg.blockpy_REQUESTS_GET_ATTR_TEXT,"text"],[a_.Msg.blockpy_REQUESTS_GET_ATTR_COOKIES,"cookies"],[a_.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT,"content"]];this.setColour(pS),this.appendDummyInput("").appendField(a_.Msg.MIXLY_MICROBIT_JS_GET).appendField(new a_.FieldDropdown(_),"ATTR"),this.setInputsInline(!0),this.setOutput(!0,String);var t=this;this.setTooltip((function(){var _=t.getFieldValue("DIR");return{clear:a_.Msg.MIXLY_TOOLTIP_TURTEL_CLEAR,reset:a_.Msg.MIXLY_TOOLTIP_TURTEL_RESET,home:a_.Msg.MIXLY_TOOLTIP_TURTEL_HOME}[_]}))}},yS={init:function(){this.appendValueInput("VAR").appendField(a_.Msg.DISPLAY_IMAGE_LET2).setCheck(String);this.setColour(pS),this.appendDummyInput("").appendField(a_.Msg.blockpy_CONDUCT).appendField(new a_.FieldDropdown([["post","post"],["put","put"],["delete","delete"],["head","head"],["option","option"]]),"DIR"),this.appendDummyInput("").appendField(a_.Msg.blockpy_REQUESTS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var _=this;this.setTooltip((function(){var t=_.getFieldValue("DIR");return{forward:a_.Msg.MIXLY_TOOLTIP_TURTEL_FORWARD,backward:a_.Msg.MIXLY_TOOLTIP_TURTEL_BACKWARD}[t]}))}},fS={init:function(){this.setColour(pS),this.appendDummyInput("").appendField(a_.Msg.MIXLY_GET_NTP+"(NTP)"),this.appendValueInput("data").appendField(a_.Msg.blynk_SERVER_ADD),this.setOutput(!0,"Tuple"),this.setInputsInline(!0)}},bS={init:function(){this.setColour(pS),this.appendDummyInput("").appendField(new a_.FieldDropdown([["ntp.aliyun.com","ntp.aliyun.com"],["ntp1.aliyun.com","ntp1.aliyun.com"],["ntp2.aliyun.com","ntp2.aliyun.com"],["ntp3.aliyun.com","ntp3.aliyun.com"],["ntp4.aliyun.com","ntp4.aliyun.com"],["ntp5.aliyun.com","ntp5.aliyun.com"],["ntp6.aliyun.com","ntp6.aliyun.com"],["ntp7.aliyun.com","ntp7.aliyun.com"],["time1.cloud.tencent.com","time1.cloud.tencent.com"],["time2.cloud.tencent.com","time2.cloud.tencent.com"],["time3.cloud.tencent.com","time3.cloud.tencent.com"],["time4.cloud.tencent.com","time4.cloud.tencent.com"],["time5.cloud.tencent.com","time5.cloud.tencent.com"]]),"op"),this.setOutput(!0)}},xS=100,vS={init:function(){var _=p_.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==_)var t="CE G6";else if("mixgo_pe"==_)t="PE G1";this.setColour(xS),this.appendValueInput("I2CSUB").appendField(a_.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(a_.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(a_.Msg.MIXLY_SETUP+a_.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(t),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},XS={init:function(){var _=p_.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==_)var t="CE G6";else if("mixgo_pe"==_)t="PE G1";this.setColour(xS),this.appendValueInput("SUB").appendField(t).setCheck("var"),this.appendDummyInput().appendField(a_.Msg.MIXLY_MIXGO_CAR_BATTERY_LEFT),this.setOutput(!0,Number),this.setInputsInline(!0)}},VS={init:function(){var _=p_.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==_)var t="CE G6";else if("mixgo_pe"==_)t="PE G1";this.setColour(xS),this.appendValueInput("SUB").appendField(t).setCheck("var"),this.appendValueInput("PIN").appendField(a_.Msg.MOTOR_DC).appendField(a_.Msg.LCD_NUMBERING),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_Direction).appendField(new a_.FieldDropdown([[a_.Msg.CLOCKWISE,"CW"],[a_.Msg.ANTI_CLOCKWISE,"CCW"],[a_.Msg.MOTOR_P,"P"],[a_.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},kS={init:function(){var _=p_.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==_)var t="CE G6";else if("mixgo_pe"==_)t="PE G1";this.setColour(xS),this.appendValueInput("SUB").appendField(t).setCheck("var"),this.appendValueInput("PIN").appendField(a_.Msg.MOTOR_DC).appendField(a_.Msg.LCD_NUMBERING),this.appendDummyInput().appendField(a_.Msg.MIXLY_STEPPER_GET_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},wS={init:function(){var _=p_.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==_)var t="CE G6";else if("mixgo_pe"==_)t="PE G1";this.setColour(xS),this.appendValueInput("SUB").appendField(t).setCheck("var"),this.appendValueInput("PIN").appendField("180°"+a_.Msg.MIXLY_SERVO).appendField(a_.Msg.LCD_NUMBERING),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_SERVO_MOVE)}},WS={init:function(){var _=p_.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==_)var t="CE G6";else if("mixgo_pe"==_)t="PE G1";this.setColour(xS),this.appendValueInput("SUB").appendField(t).setCheck("var"),this.appendValueInput("PIN").appendField("360°"+a_.Msg.MIXLY_SERVO).appendField(a_.Msg.LCD_NUMBERING),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_SERVO_SPEED_TOOLIPS)}},KS={init:function(){var _=p_.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==_)var t="CE G6";else if("mixgo_pe"==_)t="PE G1";this.setColour(xS),this.appendValueInput("SUB").appendField(t).setCheck("var"),this.appendValueInput("PIN").appendField("180°"+a_.Msg.MIXLY_SERVO),this.appendDummyInput().appendField(a_.Msg.MIXLY_GET+a_.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setOutput(!0,Number),this.setInputsInline(!0)}},zS={init:function(){var _=p_.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==_)var t="CE G6";else if("mixgo_pe"==_)t="PE G1";this.setColour(xS),this.appendValueInput("SUB").appendField(t).setCheck("var"),this.appendValueInput("PIN").appendField("360°"+a_.Msg.MIXLY_SERVO).appendField(a_.Msg.LCD_NUMBERING),this.appendDummyInput().appendField(a_.Msg.MIXLY_GET+a_.Msg.MIXLY_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},ZS="#A58C5B",QS={init:function(){this.setColour(ZS),this.appendValueInput("PIN",Number).appendField(a_.Msg.MIXLY_BUTTON).appendField(a_.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(a_.Msg.MIXLY_IS_PRESSED),this.appendValueInput("STAT").appendField(a_.Msg.MIXLY_ELECLEVEL),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_SENOR_IS_PRESSED)}},JS={init:function(){this.setColour(ZS),this.appendValueInput("PIN",Number).appendField(a_.Msg.MIXLY_BUTTON).appendField(a_.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(a_.Msg.MIXLY_WAS_PRESSED),this.appendValueInput("STAT").appendField(a_.Msg.MIXLY_ELECLEVEL),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_SENOR_WAS_PRESSED)}},qS={init:function(){this.setColour(ZS),this.appendValueInput("PIN",Number).appendField(a_.Msg.MIXLY_BUTTON).appendField(a_.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(a_.Msg.MIXLY_GET_PRESSES),this.appendValueInput("VAR").setCheck(Number).appendField(a_.Msg.MIXLY_GET_PRESSES_TIME),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(a_.Msg.PROCEDURES_DEFRETURN_RETURN+a_.Msg.MIXLY_BUTTON+a_.Msg.MIXLY_GET_PRESSES)}},jS={init:function(){this.setColour(ZS),this.appendValueInput("PIN",Number).appendField(a_.Msg.MIXLY_BUTTON).appendField(a_.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(a_.Msg.MIXLY_MODE).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_RISING,"machine.Pin.IRQ_RISING"],[a_.Msg.MIXLY_FALLING,"machine.Pin.IRQ_FALLING"],[a_.Msg.MIXLY_CHANGE,"(machine.Pin.IRQ_RISING | machine.Pin.IRQ_FALLING)"]]),"mode"),this.appendValueInput("DO").appendField(a_.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(a_.Msg.MIXLY_TOOLTIP_INOUT_ATTACHINTERRUPT)}},$S={init:function(){this.setColour(ZS),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput("").appendField(a_.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_MICROBIT_shake,"shake"],[a_.Msg.MIXLY_UP,"up"],[a_.Msg.MIXLY_DOWN,"down"],[a_.Msg.MIXLY_LEFT,"left"],[a_.Msg.MIXLY_RIGHT,"right"],[a_.Msg.MIXLY_MICROBIT_face_up,"face up"],[a_.Msg.MIXLY_MICROBIT_face_down,"face down"],[a_.Msg.MIXLY_MICROBIT_freefall,"freefall"],["3g","3g"],["6g","6g"],["8g","8g"]]),"gesture"),this.appendStatementInput("DO").appendField(a_.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var _=this;this.setTooltip((function(){var t=_.getFieldValue("gesture"),e=a_.Msg.MIXLY_MICROBIT_JS_CURRENT,i=a_.Msg.MSG.catSensor,T=a_.Msg.MIXLY_MICROBIT_JS_STATE,E=a_.Msg.MIXLY_MICROBIT_PERFORMANCE;return e+i+T+{shake:a_.Msg.MIXLY_MICROBIT_shake,up:a_.Msg.MIXLY_UP,down:a_.Msg.MIXLY_DOWN,left:a_.Msg.MIXLY_LEFT,right:a_.Msg.MIXLY_RIGHT,"face up":a_.Msg.MIXLY_MICROBIT_face_up,"face down":a_.Msg.MIXLY_MICROBIT_face_down,freefall:a_.Msg.MIXLY_MICROBIT_freefall,"3g":"3g","6g":"6g","8g":"8g"}[t]+E}))}},_l={init:function(){this.setColour(ZS),this.appendValueInput("SUB").appendField(a_.Msg.MIXLY_ADXL345).setCheck("var"),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_JS_ACCELERATION).appendField(new a_.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var _=this;this.setTooltip((function(){var t=_.getFieldValue("key"),e=a_.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,i=a_.Msg.MIXLY_MICROBIT_Direction,T=a_.Msg.MIXLY_MICROBIT_JS_ACCELERATION1;return e+{x:"x",y:"y",z:"z","(x,y,z)":a_.Msg.MIXLY_MICROBIT_Shiliang_Direction}[t]+i+T}))}},tl={init:function(){this.setColour(ZS),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_JS_LIGHT_LEVEL),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_SENSOR_LIGHT_LEVEL_TOOLTIP)}},el={init:function(){var _=[[a_.Msg.MIXLY_GETTEMPERATUE,"temperature"],[a_.Msg.MIXLY_GETHUMIDITY,"humidity"]];this.setColour(ZS),this.appendValueInput("PIN",Number).appendField(new a_.FieldDropdown([["DHT11","DHT11"],["DHT22","DHT22"]]),"TYPE").appendField(a_.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(new a_.FieldDropdown(_),"WHAT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var _=t.getFieldValue("WHAT");return{temperature:a_.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_TEM,relative_humidity:a_.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_HUM,tempandhum:a_.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_TEM_HUM}[_]}))}},il={init:function(){this.setColour(ZS),this.appendDummyInput().appendField(a_.Msg.MIXLY_ESP32_EXTERN_LIGHT),this.appendValueInput("PIN",Number).appendField(a_.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(a_.Msg.MIXLY_ESP32_EXTERN_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(a_.Msg.ESP32_SENSOR_NIXGO_LIGHT_TOOLTIP)}},Tl={init:function(){this.setColour(ZS),this.appendDummyInput().appendField(a_.Msg.MIXLY_ESP32_EXTERN_SOUND),this.appendValueInput("PIN",Number).appendField(a_.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(a_.Msg.MIXLY_ESP32_EXTERN_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(a_.Msg.ESP32_SENSOR_NIXGO_SOUND_TOOLTIP)}},El={init:function(){this.setColour(ZS),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new a_.FieldDropdown([[a_.Msg.TEXT_TRIM_LEFT,"left"],[a_.Msg.TEXT_TRIM_RIGHT,"right"]]),"direction").appendField(a_.Msg.MIXLY_ESP32_NEAR),this.setOutput(!0,Number),this.setInputsInline(!0);var _=this;this.setTooltip((function(){var t=_.getFieldValue("direction"),e=a_.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP,i=a_.Msg.MIXLY_ESP32_NEAR;return e+{left:a_.Msg.TEXT_TRIM_LEFT,right:a_.Msg.TEXT_TRIM_RIGHT}[t]+i}))}},nl={init:function(){this.setColour(ZS),this.appendValueInput("SUB").appendField("BMP280").setCheck("var"),this.appendDummyInput("").appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_GETTEMPERATUE,"get_BMP_temperature()"],[a_.Msg.MIXLY_GETPRESSURE,"get_BMP_pressure()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var _=this;this.setTooltip((function(){var t=_.getFieldValue("key");return{"get_BMP_temperature()":a_.Msg.MIXLY_MICROBIT_SENSOR_BMP_temperature_TOOLTIP,"get_BMP_pressure()":a_.Msg.MIXLY_MICROBIT_SENSOR_BMP_press_TOOLTIP}[t]}))}},ol={init:function(){this.setColour(ZS),this.appendValueInput("SUB").appendField("SHT20").setCheck("var"),this.appendDummyInput("").appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_GETTEMPERATUE,"get_SHT_temperature()"],[a_.Msg.MIXLY_GETHUMIDITY,"get_SHT_relative_humidity()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var _=this;this.setTooltip((function(){var t=_.getFieldValue("key");return{"get_SHT_temperature()":a_.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,"get_SHT_relative_humidity()":a_.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[t]}))}},sl={init:function(){this.setColour(ZS),this.appendValueInput("PIN",Number).appendField("DS18x20 "+a_.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(a_.Msg.MIXLY_GETTEMPERATUE),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(a_.Msg.MIXLY_MICROBIT_SENSOR_DS18X20_TOOLTIP)}},Ol={init:function(){this.setColour(ZS),this.appendDummyInput("").appendField("LM35"+a_.Msg.MIXLY_TEMP),this.appendValueInput("PIN",Number).appendField(a_.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(a_.Msg.MIXLY_GETTEMPERATUE),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(a_.Msg.MIXLY_TOOLTIP_LM35)}},Il={init:function(){this.setColour(ZS),this.appendValueInput("I2CSUB").appendField(a_.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(a_.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(a_.Msg.MIXLY_SETUP+a_.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new a_.FieldDropdown([["MPU9250","MPU9250"],["BMP280","BMP280"],["SHT20","SHT20"],["ADXL345","ADXL345"],["LTR308","LTR308"],["LTR381RGB","LTR381RGB"],["HP203X","HP203X"],["SHTC3","SHTC3"],["AHT21","AHT21"],["VL53L0X","VL53L0X"],["QMC5883L","QMC5883L"],["MAX30102","MAX30102"],["APDS9960","APDS9960"],["RFID","RFID"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setFieldValue("LTR308","key")}},al={init:function(){this.setColour(ZS),this.appendDummyInput().appendField(a_.Msg.MIXLY_ESP32_MAX30102+" MAX30102"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(a_.Msg.MIXLY_GET).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_ESP32_MAX30102_IR,"[0]"],[a_.Msg.MIXLY_ESP32_MAX30102_RED,"[1]"],[a_.Msg.MIXLY_ESP32_MAX30102_IR+","+a_.Msg.MIXLY_ESP32_MAX30102_RED,""]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},pl={init:function(){this.setColour(ZS),this.appendDummyInput().appendField(a_.Msg.MIXLY_ESP32_APDS9960+" APDS9960"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(a_.Msg.MIXLY_GET).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_ESP32_APDS9960_COLOR,"color"],[a_.Msg.MIXLY_ESP32_APDS9960_GESTURE,"gesture"],[a_.Msg.MIXLY_ESP32_APDS9960_APPROACH,"proximity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},Ml={init:function(){this.setColour(ZS),this.appendDummyInput().appendField(a_.Msg.MIXLY_ESP32_EXTERN_LIGHT+" LTR308"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(a_.Msg.MIXLY_GET_LIGHT_INTENSITY),this.setOutput(!0,Number),this.setInputsInline(!0)}},Ll={init:function(){this.setColour(ZS),this.appendValueInput("SUB").appendField(a_.Msg.HTML_COLOUR+a_.Msg.MSG.catSensor+" LTR381RGB").setCheck("var"),this.appendDummyInput("").appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_GET+a_.Msg.HTML_COLOUR,"[2]"],[a_.Msg.MIXLY_GET+a_.Msg.MIXLY_IR_STRENGTH,"[1]"],[a_.Msg.MIXLY_GET+a_.Msg.MIXLY_LIGHT_STRENGTH,"[0]"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},Rl={init:function(){this.setColour(ZS),this.appendValueInput("SUB").appendField(a_.Msg.MIXLY_EXTERN_LIGHTUV+" LTR390UV").setCheck("var"),this.appendDummyInput().appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_GET_ENV_LIGHT,"E"],[a_.Msg.MIXLY_GET_ULTRAVIOLET,"U"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},rl={init:function(){this.setColour(ZS),this.appendDummyInput().appendField(a_.Msg.MIXLY_LASER_RANGE+" VL53L0X"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(a_.Msg.MIXLY_GET_DISTANCE+"(mm)"),this.setOutput(!0,Number),this.setInputsInline(!0)}},Sl={init:function(){this.setColour(ZS),this.appendValueInput("SUB").appendField(a_.Msg.MIXLY_TEM_HUM+" SHTC3").setCheck("var"),this.appendDummyInput("").appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_GETTEMPERATUE,"temperature"],[a_.Msg.MIXLY_GETHUMIDITY,"humidity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var _=this;this.setTooltip((function(){var t=_.getFieldValue("key");return{temperature:a_.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,humidity:a_.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[t]}))}},ll={init:function(){this.setColour(ZS),this.appendValueInput("SUB").appendField(a_.Msg.MIXLY_TEM_HUM+" AHT21").setCheck("var"),this.appendDummyInput("").appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_GETTEMPERATUE,"temperature"],[a_.Msg.MIXLY_GETHUMIDITY,"humidity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var _=this;this.setTooltip((function(){var t=_.getFieldValue("key");return{temperature:a_.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,relative_humidity:a_.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[t]}))}},Al={init:function(){this.setColour(ZS),this.appendValueInput("SUB").appendField(a_.Msg.MIXLY_Altitude+a_.Msg.MSG.catSensor+" HP203X").setCheck("var"),this.appendDummyInput("").appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_GETPRESSURE,"pressure()"],[a_.Msg.MIXLY_GETTEMPERATUE,"temperature()"],[a_.Msg.MIXLY_GET_ALTITUDE,"altitude()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},Pl={init:function(){this.setColour(ZS),this.appendValueInput("SUB").appendField(a_.Msg.MIXLY_MIXGOPE_FIELD+a_.Msg.MSG.catSensor+" QMC5883L").setCheck("var"),this.appendDummyInput("").appendField(a_.Msg.MIXLY_MICROBIT_JS_GET).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"get_bearing()"],[a_.Msg.MIXLY_TEMPERATURE,"get_temp()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},Nl={init:function(){this.setColour(ZS),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput("").appendField(a_.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_MICROBIT_shake,"shake"],[a_.Msg.MIXLY_UP,"up"],[a_.Msg.MIXLY_DOWN,"down"],[a_.Msg.MIXLY_LEFT,"left"],[a_.Msg.MIXLY_RIGHT,"right"],[a_.Msg.MIXLY_MICROBIT_face_up,"face up"],[a_.Msg.MIXLY_MICROBIT_face_down,"face down"]]),"gesture"),this.setOutput(!0);var _=this;this.setTooltip((function(){var t=_.getFieldValue("gesture"),e=a_.Msg.MIXLY_MICROBIT_JS_CURRENT,i=a_.Msg.MSG.catSensor,T=a_.Msg.MIXLY_MICROBIT_JS_STATE,E=a_.Msg.MIXLY_MICROBIT_PERFORMANCE;return e+i+T+{shake:a_.Msg.MIXLY_MICROBIT_shake,up:a_.Msg.MIXLY_UP,down:a_.Msg.MIXLY_DOWN,left:a_.Msg.MIXLY_LEFT,right:a_.Msg.MIXLY_RIGHT,"face up":a_.Msg.MIXLY_MICROBIT_face_up,"face down":a_.Msg.MIXLY_MICROBIT_face_down}[t]+E}))}},dl={init:function(){this.setColour(ZS),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_JS_ACCELERATION).appendField(new a_.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var _=this;this.setTooltip((function(){var t=_.getFieldValue("key"),e=a_.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,i=a_.Msg.MIXLY_MICROBIT_Direction,T=a_.Msg.MIXLY_MICROBIT_JS_ACCELERATION1;return e+{x:"x",y:"y",z:"z","(x,y,z)":a_.Msg.MIXLY_MICROBIT_Shiliang_Direction}[t]+i+T}))}},hl={init:function(){this.setColour(ZS),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_JS_GET+a_.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH).appendField(new a_.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var _=this;this.setTooltip((function(){var t=_.getFieldValue("key"),e=a_.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,i=a_.Msg.MIXLY_MICROBIT_Direction,T=a_.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH;return e+{x:"x",y:"y",z:"z","(x,y,z)":a_.Msg.MIXLY_MICROBIT_Shiliang_Direction}[t]+i+T}))}},ul={init:function(){this.setColour(ZS),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+a_.Msg.MIXLY_ESP32_SENOR_GYRO).appendField(new a_.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var _=this;this.setTooltip((function(){var t=_.getFieldValue("key"),e=a_.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,i=a_.Msg.MIXLY_MICROBIT_Direction,T=a_.Msg.MIXLY_ESP32_SENOR_GYRO;return e+{x:"x",y:"y",z:"z","(x,y,z)":a_.Msg.MIXLY_MICROBIT_Shiliang_Direction}[t]+i+T}))}},ml={init:function(){this.setColour(ZS),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS)}},Cl={init:function(){this.setColour(ZS),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(a_.Msg.MIXLY_GETTEMPERATUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_GETTEMPERATUE)}},cl={init:function(){this.setColour(ZS),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_JS_GET_COMPASS).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH,"strength"],[a_.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"heading"]]),"compass"),this.setOutput(!0,Number),this.setInputsInline(!0);var _=this;this.setTooltip((function(){var t=_.getFieldValue("compass");return a_.Msg.MIXLY_MICROBIT_JS_GET_COMPASS+{strength:a_.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH,heading:a_.Msg.MIXLY_MICROBIT_JS_BY_ANGLE}[t]}))}},Hl={init:function(){this.setColour(ZS),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_Reset_COMPASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_MICROBIT_Reset_COMPASS)}},Dl={init:function(){this.setColour(ZS),this.appendValueInput("SPISUB").appendField(a_.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("SUB").appendField(a_.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(a_.Msg.MIXLY_SETUP+a_.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new a_.FieldDropdown([["RFID","RFID"],["WS-LoRa","Weather"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setFieldValue("RFID","key")}},Yl={init:function(){this.setColour(ZS),this.appendDummyInput().appendField("RFID"+a_.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(a_.Msg.MIXLY_LIST_INDEX),this.appendDummyInput("").appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_RFID_READ_CARD_UID,"id"],[a_.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL,"content"],[a_.Msg.MIXLY_ALL,"ALL"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},Ul={init:function(){this.setColour(ZS),this.appendDummyInput().appendField("RFID"+a_.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput("").appendField(a_.Msg.MIXLY_RFID_READ_CARD_UID),this.setOutput(!0,Number),this.setInputsInline(!0)}},Bl={init:function(){this.setColour(ZS),this.appendDummyInput().appendField("RFID"+a_.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(a_.Msg.MIXLY_LIST_INDEX),this.appendDummyInput("").appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL),this.setOutput(!0,"Tuple"),this.setInputsInline(!0)}},gl={init:function(){this.setColour(ZS),this.appendDummyInput().appendField(a_.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(a_.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(a_.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Gl={init:function(){this.setColour(ZS),this.appendDummyInput().appendField(a_.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(a_.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(a_.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.appendDummyInput().appendField(a_.Msg.RETURN_SUCCESS_OR_NOT),this.setInputsInline(!0),this.setOutput(!0,Boolean)}},Fl={init:function(){this.setColour(ZS),this.appendDummyInput().appendField("RFID"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput("").appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_RFID_SCAN_OK,"0"],[a_.Msg.MIXLY_RFID_SCAN_NOTAGERR,"1"],[a_.Msg.MIXLY_RFID_SCAN_ERROR,"2"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},yl={init:function(){this.setColour(ZS),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendDummyInput("").appendField(a_.Msg.MIXLY_MICROBIT_JS_GET).appendField(new a_.FieldDropdown([["全部(元组)","data()[0]"],["全部(json)","data()[1]"],["全部(json,附带位置信息)","data()[2]"],["编号","data()[0][0]"],["电量","data()[0][1]"],["风速","data()[0][2]"],["阵风","data()[0][3]"],["风向","data()[0][4]"],["雨量","data()[0][5]"],["温度","data()[0][6]"],["湿度","data()[0][7]"],["光照","data()[0][8]"],["紫外线","data()[0][9]"],["大气压","data()[0][10]"],["信号强度","data()[0][11]"],["信噪比","data()[0][12]"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip("返回气象数据元组 data= (设备id,电池状态,风速m/s,阵风m/s,风向°,雨量mm,温度℃,湿度%,光照Lux,UVI,大气压Pa,信号强度dB,信噪比dB)")}},fl={init:function(){this.setColour(ZS),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendDummyInput("").appendField(a_.Msg.MIXLY_SERIAL_AVAILABLE),this.setOutput(!0,Number),this.setInputsInline(!0)}},bl={init:function(){this.setColour(ZS),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendValueInput("BASE").appendField("以主题"),this.appendDummyInput("").appendField("串口发送至MixIO"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},xl={init:function(){this.setColour(ZS),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.itemCount_=2,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new a_.icons.MutatorIcon(["weather_set_label_item"],this)),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip()},mutationToDom:function(){var _=document.createElement("mutation");return _.setAttribute("items",this.itemCount_),_},domToMutation:function(_){this.itemCount_=parseInt(_.getAttribute("items"),10),this.updateShape_()},decompose:function(_){var t=_.newBlock("weather_set_label_container");t.initSvg();for(var e=t.getInput("STACK").connection,i=0;i>6),e.push(128|63&E)):(2048<=E&&E<=55295||57344<=E&&E<=65535)&&(i+=3,e.push(224|15&E>>12),e.push(128|63&E>>6),e.push(128|63&E))}for(T=0;T>8,255&i].concat(e)}(_,!0),e="",i=0;i=0?"0x700000":["mixgo_zero"].indexOf(i)>=0?"0xE00000":"0x3A0000","32x12 Matrix"==n?(t.definitions_.import_matrix32x12="import matrix32x12",e=T+" = matrix32x12.Matrix("+E+",font_address="+o+")\n"):"16x8 Matrix"==n&&(t.definitions_.import_matrix16x8="import matrix16x8",e=T+" = matrix16x8.Matrix("+E+")\n"),e},Qm=function(_,t){return t.valueToCode(this,"SUB",t.ORDER_ATOMIC)+".shows("+t.valueToCode(this,"data",t.ORDER_ASSIGNMENT)+")\n"},Jm=function(_,t){return t.valueToCode(this,"SUB",t.ORDER_ATOMIC)+".shows("+t.valueToCode(this,"data",t.ORDER_ASSIGNMENT)+",space = "+t.valueToCode(this,"space",t.ORDER_ASSIGNMENT)+",center = "+this.getFieldValue("center")+")\n"},qm=function(_,t){return t.valueToCode(this,"SUB",t.ORDER_ATOMIC)+".frame("+t.valueToCode(this,"data",t.ORDER_ASSIGNMENT)+")\n"},jm=function(_,t){return t.valueToCode(this,"SUB",t.ORDER_ATOMIC)+".frame("+t.valueToCode(this,"data",t.ORDER_ASSIGNMENT)+",delay = "+t.valueToCode(this,"time",t.ORDER_ASSIGNMENT)+")\n"},$m=function(_,t){return t.valueToCode(this,"SUB",t.ORDER_ATOMIC)+".scroll("+t.valueToCode(this,"data",t.ORDER_ASSIGNMENT)+")\n"},_C=function(_,t){return t.valueToCode(this,"SUB",t.ORDER_ATOMIC)+".scroll("+t.valueToCode(this,"data",t.ORDER_ASSIGNMENT)+",speed ="+t.valueToCode(this,"time",t.ORDER_ASSIGNMENT)+",space = "+t.valueToCode(this,"space",t.ORDER_ASSIGNMENT)+")\n"},tC=function(_,t){var e=t.valueToCode(this,"SUB",t.ORDER_ATOMIC);return e+".fill(0)\n"+e+".show()\n"},eC=function(_,t){return t.valueToCode(this,"SUB",t.ORDER_ATOMIC)+"."+_.getFieldValue("OP")+"("+t.valueToCode(_,"val",t.ORDER_ATOMIC)+")\n"},iC=function(_,t){return[t.valueToCode(this,"SUB",t.ORDER_ATOMIC)+".pixel(int("+t.valueToCode(_,"x",t.ORDER_ATOMIC)+"), int("+t.valueToCode(_,"y",t.ORDER_ATOMIC)+"))",t.ORDER_ATOMIC]},TC=function(_,t){var e=t.valueToCode(this,"SUB",t.ORDER_ATOMIC);return e+".pixel(int("+t.valueToCode(this,"x",t.ORDER_ASSIGNMENT)+"), int("+t.valueToCode(this,"y",t.ORDER_ASSIGNMENT)+"), "+t.valueToCode(this,"STAT",t.ORDER_ATOMIC)+")\n"+e+".show()\n"},EC=function(_,t){return[t.valueToCode(this,"SUB",t.ORDER_ATOMIC)+".get_brightness()",t.ORDER_ATOMIC]},nC=function(_,t){return t.valueToCode(this,"SUB",t.ORDER_ATOMIC)+".set_brightness("+t.valueToCode(this,"x",t.ORDER_ASSIGNMENT)+")\n"},oC=function(_,t){return[t.valueToCode(this,"SUB",t.ORDER_ATOMIC)+"."+_.getFieldValue("image"),t.ORDER_ATOMIC]},sC=function(_,t){return[t.valueToCode(this,"SUB",t.ORDER_ATOMIC)+".map_"+_.getFieldValue("OP")+"("+t.valueToCode(_,"A",t.ORDER_ATOMIC)+","+t.valueToCode(_,"B",t.ORDER_ATOMIC)+")",t.ORDER_ATOMIC]},OC=function(_,t){return[t.valueToCode(this,"SUB",t.ORDER_ATOMIC)+".map_invert("+t.valueToCode(_,"A",t.ORDER_ATOMIC)+")",t.ORDER_ATOMIC]},IC=function(_,t){t.definitions_.import_machine="import machine",t.definitions_.import_ssd1306="import ssd1306";var e=t.valueToCode(this,"I2CSUB",t.ORDER_ATOMIC);return t.valueToCode(this,"SUB",t.ORDER_ATOMIC)+" = ssd1306.SSD1306_I2C("+t.valueToCode(this,"row",t.ORDER_ATOMIC)+","+t.valueToCode(this,"column",t.ORDER_ATOMIC)+","+e+")\n"},aC=function(_,t){return t.definitions_.import_machine="import machine",t.definitions_.import_ssd1306="import ssd1306",t.valueToCode(this,"VAR",t.ORDER_ATOMIC)+".show_str("+(t.valueToCode(this,"Text_line1",t.ORDER_ASSIGNMENT)||"''")+","+(t.valueToCode(this,"Text_line2",t.ORDER_ASSIGNMENT)||"''")+","+(t.valueToCode(this,"Text_line3",t.ORDER_ASSIGNMENT)||"''")+","+(t.valueToCode(this,"Text_line4",t.ORDER_ASSIGNMENT)||"''")+")\n"},pC=function(_,t){return t.definitions_.import_machine="import machine",t.definitions_.import_ssd1306="import ssd1306",t.valueToCode(this,"VAR",t.ORDER_ATOMIC)+".show_line("+t.valueToCode(this,"x1",t.ORDER_ATOMIC)+", "+t.valueToCode(this,"y1",t.ORDER_ATOMIC)+", "+t.valueToCode(this,"x2",t.ORDER_ATOMIC)+", "+t.valueToCode(this,"y2",t.ORDER_ATOMIC)+", 1)\n"},MC=function(_,t){t.definitions_.import_machine="import machine",t.definitions_.import_ssd1306="import ssd1306";var e=t.valueToCode(this,"VAR",t.ORDER_ATOMIC),i=t.valueToCode(this,"x",t.ORDER_ATOMIC),T=t.valueToCode(this,"y",t.ORDER_ATOMIC),E=t.valueToCode(this,"width",t.ORDER_ATOMIC),n=t.valueToCode(this,"height",t.ORDER_ATOMIC),o="TRUE"==this.getFieldValue("fill")?"True":"False",s=this.getFieldValue("OP");switch(o){case"True":return e+".show_fill_rect("+i+", "+T+", "+E+", "+n+","+s+")\n";case"False":return e+".show_rect("+i+", "+T+", "+E+", "+n+","+s+")\n"}},LC=function(_,t){t.definitions_.import_machine="import machine",t.definitions_.import_ssd1306="import ssd1306";var e=t.valueToCode(this,"VAR",t.ORDER_ATOMIC),i=t.valueToCode(this,"x",t.ORDER_ATOMIC),T=t.valueToCode(this,"y",t.ORDER_ATOMIC),E=t.valueToCode(this,"length",t.ORDER_ATOMIC);return e+".show_"+this.getFieldValue("direction")+"("+i+", "+T+", "+E+", 1)\n"},RC=function(_,t){return["ON"==this.getFieldValue("ONOFF")?"1":"0",t.ORDER_ATOMIC]},rC=function(_,t){t.definitions_.import_matrix="import matrix";var e=_.getFieldValue("OP");return[t.valueToCode(_,"img",t.ORDER_ATOMIC)+".shift_"+e+"("+t.valueToCode(_,"val",t.ORDER_ATOMIC)+")",t.ORDER_ATOMIC]},SC=function(_,t){var e=t.valueToCode(this,"SUB",t.ORDER_ATOMIC);return t.definitions_.import_ssd1306="import ssd1306",t.definitions_.import_machine="import machine",e+".show_fill("+this.getFieldValue("key")+")\n"},lC=function(_,t){return["matrix.Image."+this.getFieldValue("ANIMATION"),t.ORDER_ATOMIC]},AC=function(_,t){var e=t.valueToCode(this,"VAR",t.ORDER_ATOMIC);t.definitions_.import_machine="import machine",t.definitions_.import_ssd1306="import ssd1306";var i=t.valueToCode(this,"x",t.ORDER_ATOMIC),T=t.valueToCode(this,"y",t.ORDER_ATOMIC),E=t.valueToCode(this,"r",t.ORDER_ATOMIC),n="TRUE"==this.getFieldValue("fill")?"True":"False",o=this.getFieldValue("OP");switch(n){case"True":return e+".show_fill_circle("+i+", "+T+", "+E+", "+o+")\n";case"False":return e+".show_circle("+i+", "+T+", "+E+", "+o+")\n"}},PC=function(_,t){var e=t.valueToCode(this,"VAR",t.ORDER_ATOMIC);t.definitions_.import_machine="import machine",t.definitions_.import_ssd1306="import ssd1306";var i=t.valueToCode(this,"x0",t.ORDER_ATOMIC),T=t.valueToCode(this,"y0",t.ORDER_ATOMIC),E=t.valueToCode(this,"x1",t.ORDER_ATOMIC),n=t.valueToCode(this,"y1",t.ORDER_ATOMIC),o=t.valueToCode(this,"x2",t.ORDER_ATOMIC),s=t.valueToCode(this,"y2",t.ORDER_ATOMIC),O="TRUE"==this.getFieldValue("fill")?"True":"False",I=this.getFieldValue("OP");switch(O){case"True":return e+".show_fill_triangle("+i+", "+T+", "+E+", "+n+", "+o+", "+s+", "+I+")\n";case"False":return e+".show_triangle("+i+", "+T+", "+E+", "+n+", "+o+", "+s+", "+I+")\n"}},NC=function(_,t){return t.definitions_.import_machine="import machine",t.definitions_.import_ssd1306="import ssd1306",t.valueToCode(this,"VAR",t.ORDER_ATOMIC)+".show_bitmap("+t.valueToCode(this,"START_X",t.ORDER_ATOMIC)+", "+t.valueToCode(this,"START_Y",t.ORDER_ATOMIC)+", "+t.valueToCode(this,"bitmap_name",t.ORDER_ATOMIC)+","+t.valueToCode(this,"WIDTH",t.ORDER_ATOMIC)+","+t.valueToCode(this,"HEIGHT",t.ORDER_ATOMIC)+")\n"},dC=function(_,t){return t.definitions_.import_machine="import machine",t.definitions_.import_ssd1306="import ssd1306",t.valueToCode(this,"VAR",t.ORDER_ATOMIC)+".show_pixel("+t.valueToCode(this,"POS_X",t.ORDER_ATOMIC)+", "+t.valueToCode(this,"POS_Y",t.ORDER_ATOMIC)+")\n"},hC=function(_,t){var e,i=t.valueToCode(this,"SUB",t.ORDER_ATOMIC),T=t.valueToCode(this,"I2CSUB",t.ORDER_ATOMIC),E=this.getFieldValue("key");return"TM1650"==E?(t.definitions_.import_tm1650="import tm1650",e=i+" = tm1650."+E+"("+T+")\n"):"TM1637"==E&&(t.definitions_.import_tm1637="import tm1637",e=i+" = tm1637."+E+"("+T+")\n"),e},uC=function(_,t){return t.valueToCode(this,"VAR",t.ORDER_ATOMIC)+"."+this.getFieldValue("STAT")+"()\n"},mC=function(_,t){return t.valueToCode(this,"VAR",t.ORDER_ATOMIC)+".shownum("+t.valueToCode(this,"VALUE",t.ORDER_ATOMIC)+")\n"},CC=function(_,t){return t.valueToCode(this,"VAR",t.ORDER_ATOMIC)+".showDP("+t.valueToCode(this,"NO",t.ORDER_ATOMIC)+", "+t.valueToCode(this,"STAT",t.ORDER_ATOMIC)+")\n"},cC=function(_,t){return t.valueToCode(this,"VAR",t.ORDER_ATOMIC)+".intensity("+t.valueToCode(this,"VALUE",t.ORDER_ATOMIC)+")\n"},HC=function(_,t){t.definitions_.import_st7789="import st7789";var e=p_.Boards.getSelectedBoardKey().split(":")[2],i="";i=["mpython","mixgo_pe","mixgo_nova"].indexOf(e)>=0?"0x700000":["mixgo_zero"].indexOf(e)>=0?"0xE00000":"0x3A0000";var T=t.valueToCode(this,"SUB",t.ORDER_ATOMIC),E=t.valueToCode(this,"SPISUB",t.ORDER_ATOMIC),n=t.valueToCode(this,"PINCS",t.ORDER_ATOMIC),o=t.valueToCode(this,"PINDC",t.ORDER_ATOMIC);return T+" = st7789.ST7789("+E+","+t.valueToCode(this,"WIDTH",t.ORDER_ATOMIC)+","+t.valueToCode(this,"HEIGHT",t.ORDER_ATOMIC)+",dc_pin="+o+",cs_pin="+n+",rotation="+this.getFieldValue("rotate")+",font_address="+i+")\n"},DC=function(_,t){t.definitions_.import_st7789="import st7789";var e=t.valueToCode(this,"SUB",t.ORDER_ATOMIC),i=t.valueToCode(this,"data",t.ORDER_ASSIGNMENT),T=t.valueToCode(this,"x",t.ORDER_ASSIGNMENT),E=t.valueToCode(this,"y",t.ORDER_ASSIGNMENT),n=t.valueToCode(this,"size",t.ORDER_ASSIGNMENT),o=t.valueToCode(this,"VAR",t.ORDER_ATOMIC);if("0x"==o.slice(0,2))var s=e+".image("+i+",x = "+T+",y = "+E+",size = "+n+",color="+o+")\n";else{const _=o.match(/\d+/g);var O="0x"+((parseInt(_[0])<<16)+(parseInt(_[1])<<8)+parseInt(_[2])).toString(16).padStart(4,"0");s=e+".image("+i+",x = "+T+",y = "+E+",size = "+n+",color=0x"+((16252928&O)>>8|(64512&O)>>5|(255&O)>>3).toString(16)+")\n"}return s},YC=function(_,t){var e="0x"+this.getFieldValue("COLOR").slice(1);return["0x"+((16252928&e)>>8|(64512&e)>>5|(255&e)>>3).toString(16),t.ORDER_ATOMIC]},UC=function(_,t){t.definitions_.import_st7789="import st7789";var e=t.valueToCode(this,"SUB",t.ORDER_ATOMIC),i=t.valueToCode(this,"data",t.ORDER_ASSIGNMENT),T=t.valueToCode(this,"x",t.ORDER_ASSIGNMENT),E=t.valueToCode(this,"y",t.ORDER_ASSIGNMENT),n=t.valueToCode(this,"size",t.ORDER_ASSIGNMENT),o=t.valueToCode(this,"space",t.ORDER_ASSIGNMENT),s=t.valueToCode(this,"VAR",t.ORDER_ATOMIC),O=this.getFieldValue("center");if("0x"==s.slice(0,2))var I=e+".shows("+i+",x = "+T+",y = "+E+",size = "+n+",space = "+o+",center = "+O+",color="+s+")\n";else{const _=s.match(/\d+/g);var a="0x"+((parseInt(_[0])<<16)+(parseInt(_[1])<<8)+parseInt(_[2])).toString(16).padStart(4,"0");I=e+".shows("+i+",x = "+T+",y = "+E+",size = "+n+",space = "+o+",center = "+O+",color=0x"+((16252928&a)>>8|(64512&a)>>5|(255&a)>>3).toString(16)+")\n"}return I},BC=function(_,t){t.definitions_.import_st7789="import st7789";var e=t.valueToCode(this,"SUB",t.ORDER_ATOMIC),i=t.valueToCode(this,"data",t.ORDER_ASSIGNMENT),T=t.valueToCode(this,"size",t.ORDER_ASSIGNMENT),E=t.valueToCode(this,"time",t.ORDER_ASSIGNMENT),n=t.valueToCode(this,"VAR",t.ORDER_ATOMIC);if("0x"==n.slice(0,2))var o=e+".frame("+i+",size = "+T+",delay = "+E+",color="+n+")\n";else{const _=n.match(/\d+/g);var s="0x"+((parseInt(_[0])<<16)+(parseInt(_[1])<<8)+parseInt(_[2])).toString(16).padStart(4,"0");o=e+".frame("+i+",size = "+T+",delay = "+E+",color=0x"+((16252928&s)>>8|(64512&s)>>5|(255&s)>>3).toString(16)+")\n"}return o},gC=function(_,t){t.definitions_.import_st7789="import st7789";var e=t.valueToCode(this,"SUB",t.ORDER_ATOMIC),i=t.valueToCode(this,"data",t.ORDER_ASSIGNMENT),T=t.valueToCode(this,"y",t.ORDER_ASSIGNMENT),E=t.valueToCode(this,"size",t.ORDER_ASSIGNMENT),n=t.valueToCode(this,"time",t.ORDER_ASSIGNMENT),o=t.valueToCode(this,"space",t.ORDER_ASSIGNMENT),s=t.valueToCode(this,"VAR",t.ORDER_ATOMIC);if("0x"==s.slice(0,2))var O=e+".scroll("+i+",y = "+T+",size = "+E+",speed ="+n+",space = "+o+",color="+s+")\n";else{const _=s.match(/\d+/g);var I="0x"+((parseInt(_[0])<<16)+(parseInt(_[1])<<8)+parseInt(_[2])).toString(16).padStart(4,"0");O=e+".scroll("+i+",y = "+T+",size = "+E+",speed ="+n+",space = "+o+",color=0x"+((16252928&I)>>8|(64512&I)>>5|(255&I)>>3).toString(16)+")\n"}return O},GC=function(_,t){return t.definitions_.import_st7789="import st7789",t.valueToCode(this,"SUB",t.ORDER_ATOMIC)+".fill(st7789."+this.getFieldValue("key")+")\n"},FC=function(_,t){t.definitions_.import_st7789="import st7789";var e=t.valueToCode(this,"SUB",t.ORDER_ATOMIC),i=t.valueToCode(this,"x1",t.ORDER_ATOMIC),T=t.valueToCode(this,"y1",t.ORDER_ATOMIC),E=t.valueToCode(this,"x2",t.ORDER_ATOMIC),n=t.valueToCode(this,"y2",t.ORDER_ATOMIC),o=t.valueToCode(this,"VAR",t.ORDER_ATOMIC);if("0x"==o.slice(0,2))var s=e+".line("+i+", "+T+", "+E+", "+n+", color="+o+")\n";else{const _=o.match(/\d+/g);var O="0x"+((parseInt(_[0])<<16)+(parseInt(_[1])<<8)+parseInt(_[2])).toString(16).padStart(4,"0");s=e+".line("+i+", "+T+", "+E+", "+n+", color=0x"+((16252928&O)>>8|(64512&O)>>5|(255&O)>>3).toString(16)+")\n"}return s},yC=function(_,t){var e=t.valueToCode(this,"SUB",t.ORDER_ATOMIC),i=t.valueToCode(this,"I2CSUB",t.ORDER_ATOMIC),T=this.getFieldValue("key"),E=t.valueToCode(this,"ADDR",t.ORDER_ATOMIC);return t.definitions_.import_i2clcd="import i2clcd",e+" = i2clcd.LCD("+i+",lcd_width="+T+",i2c_addr="+E+")\n"},fC=function(_,t){return t.definitions_.import_i2clcd="import i2clcd",t.valueToCode(this,"SUB",t.ORDER_ATOMIC)+".shows("+t.valueToCode(this,"data",t.ORDER_ASSIGNMENT)+",column = "+t.valueToCode(this,"x",t.ORDER_ASSIGNMENT)+",line = "+t.valueToCode(this,"y",t.ORDER_ASSIGNMENT)+",center = "+this.getFieldValue("center")+")\n"},bC=function(_,t){return t.definitions_.import_i2clcd="import i2clcd",t.valueToCode(this,"SUB",t.ORDER_ATOMIC)+".print("+t.valueToCode(this,"data",t.ORDER_ASSIGNMENT)+",column = "+t.valueToCode(this,"x",t.ORDER_ASSIGNMENT)+",line = "+t.valueToCode(this,"y",t.ORDER_ASSIGNMENT)+",delay="+t.valueToCode(this,"time",t.ORDER_ASSIGNMENT)+")\n"},xC=function(_,t){return t.definitions_.import_i2clcd="import i2clcd",t.valueToCode(this,"SUB",t.ORDER_ATOMIC)+".backlight("+this.getFieldValue("key")+")\n"},vC=function(_,t){return t.definitions_.import_i2clcd="import i2clcd",t.valueToCode(this,"SUB",t.ORDER_ATOMIC)+".clear()\n"},XC=function(_,t){var e=t.valueToCode(this,"SUB",t.ORDER_ATOMIC),i=t.valueToCode(this,"I2CSUB",t.ORDER_ATOMIC),T=t.valueToCode(this,"ADDR",t.ORDER_ATOMIC),E=p_.Boards.getSelectedBoardKey().split(":")[2],n="";return n=["mpython","mixgo_pe","mixgo_nova"].indexOf(E)>=0?"0x700000":["mixgo_zero"].indexOf(E)>=0?"0xE00000":"0x3A0000",t.definitions_.import_oled128x64="import oled128x64",e+" = oled128x64.OLED("+i+",address="+T+",font_address="+n+")\n"},VC=function(_,t){return t.definitions_.import_oled128x64="import oled128x64",t.valueToCode(this,"SUB",t.ORDER_ATOMIC)+".image("+t.valueToCode(this,"data",t.ORDER_ASSIGNMENT)+")\n"},kC=function(_,t){return t.definitions_.import_oled128x64="import oled128x64",t.valueToCode(this,"SUB",t.ORDER_ATOMIC)+".image("+t.valueToCode(this,"data",t.ORDER_ASSIGNMENT)+",x = "+t.valueToCode(this,"x",t.ORDER_ASSIGNMENT)+",y = "+t.valueToCode(this,"y",t.ORDER_ASSIGNMENT)+",size = "+t.valueToCode(this,"size",t.ORDER_ASSIGNMENT)+")\n"},wC=function(_,t){return t.definitions_.import_oled128x64="import oled128x64",t.valueToCode(this,"SUB",t.ORDER_ATOMIC)+".shows("+t.valueToCode(this,"data",t.ORDER_ASSIGNMENT)+")\n"},WC=function(_,t){return t.definitions_.import_oled128x64="import oled128x64",t.valueToCode(this,"SUB",t.ORDER_ATOMIC)+".shows("+t.valueToCode(this,"data",t.ORDER_ASSIGNMENT)+",x = "+t.valueToCode(this,"x",t.ORDER_ASSIGNMENT)+",y = "+t.valueToCode(this,"y",t.ORDER_ASSIGNMENT)+",size = "+t.valueToCode(this,"size",t.ORDER_ASSIGNMENT)+",space = "+t.valueToCode(this,"space",t.ORDER_ASSIGNMENT)+",center = "+this.getFieldValue("center")+")\n"},KC=function(_,t){return t.definitions_.import_oled128x64="import oled128x64",t.valueToCode(this,"SUB",t.ORDER_ATOMIC)+".frame("+t.valueToCode(this,"data",t.ORDER_ASSIGNMENT)+")\n"},zC=function(_,t){return t.definitions_.import_oled128x64="import oled128x64",t.valueToCode(this,"SUB",t.ORDER_ATOMIC)+".frame("+t.valueToCode(this,"data",t.ORDER_ASSIGNMENT)+",size = "+t.valueToCode(this,"size",t.ORDER_ASSIGNMENT)+",delay = "+t.valueToCode(this,"time",t.ORDER_ASSIGNMENT)+")\n"},ZC=function(_,t){return t.definitions_.import_oled128x64="import oled128x64",t.valueToCode(this,"SUB",t.ORDER_ATOMIC)+".scroll("+t.valueToCode(this,"data",t.ORDER_ASSIGNMENT)+")\n"},QC=function(_,t){return t.definitions_.import_oled128x64="import oled128x64",t.valueToCode(this,"SUB",t.ORDER_ATOMIC)+".scroll("+t.valueToCode(this,"data",t.ORDER_ASSIGNMENT)+",y = "+t.valueToCode(this,"y",t.ORDER_ASSIGNMENT)+",size = "+t.valueToCode(this,"size",t.ORDER_ASSIGNMENT)+",speed ="+t.valueToCode(this,"time",t.ORDER_ASSIGNMENT)+",space = "+t.valueToCode(this,"space",t.ORDER_ASSIGNMENT)+")\n"},JC=function(_,t){t.definitions_.import_oled128x64="import oled128x64";var e=t.valueToCode(this,"SUB",t.ORDER_ATOMIC);return e+".fill(0)\n"+e+".show()\n"},qC=function(_,t){return t.definitions_.import_oled128x64="import oled128x64",t.valueToCode(this,"SUB",t.ORDER_ATOMIC)+"."+_.getFieldValue("OP")+"("+t.valueToCode(_,"val",t.ORDER_ATOMIC)+")\n"},jC=function(_,t){return t.definitions_.import_oled128x64="import oled128x64",[t.valueToCode(this,"SUB",t.ORDER_ATOMIC)+".pixel(int("+t.valueToCode(_,"x",t.ORDER_ATOMIC)+"), int("+t.valueToCode(_,"y",t.ORDER_ATOMIC)+"))",t.ORDER_ATOMIC]},$C=function(_,t){t.definitions_.import_oled128x64="import oled128x64";var e=t.valueToCode(this,"SUB",t.ORDER_ATOMIC);return e+".pixel(int("+t.valueToCode(this,"x",t.ORDER_ASSIGNMENT)+"), int("+t.valueToCode(this,"y",t.ORDER_ASSIGNMENT)+"), "+t.valueToCode(this,"STAT",t.ORDER_ATOMIC)+")\n"+e+".show()\n"},_c=function(_,t){t.definitions_.import_oled128x64="import oled128x64";var e=t.valueToCode(this,"SUB",t.ORDER_ATOMIC),i=t.valueToCode(_,"x",t.ORDER_ATOMIC),T=t.valueToCode(_,"y",t.ORDER_ATOMIC),E=t.valueToCode(_,"w",t.ORDER_ATOMIC),n=t.valueToCode(_,"h",t.ORDER_ATOMIC),o=_.getFieldValue("state");return e+"."+_.getFieldValue("shape")+"("+i+", "+T+", "+E+", "+n+", "+o+")\n"+e+".show()\n"},tc=function(_,t){t.definitions_.import_oled128x64="import oled128x64";var e=t.valueToCode(this,"SUB",t.ORDER_ATOMIC),i=t.valueToCode(_,"x",t.ORDER_ATOMIC),T=t.valueToCode(_,"y",t.ORDER_ATOMIC),E=t.valueToCode(_,"length",t.ORDER_ATOMIC),n=_.getFieldValue("state");return e+"."+("0"==_.getFieldValue("dir_h_v")?"v":"h")+"line("+i+", "+T+", "+E+", "+n+")\n"+e+".show()\n"},ec=function(_,t){t.definitions_.import_oled128x64="import oled128x64";var e=t.valueToCode(this,"SUB",t.ORDER_ATOMIC);return e+".line("+t.valueToCode(_,"x1",t.ORDER_ATOMIC)+", "+t.valueToCode(_,"y1",t.ORDER_ATOMIC)+", "+t.valueToCode(_,"x2",t.ORDER_ATOMIC)+", "+t.valueToCode(_,"y2",t.ORDER_ATOMIC)+", "+_.getFieldValue("state")+")\n"+e+".show()\n"},ic=function(_,t){var e=p_.Boards.getSelectedBoardKey().split(":")[2];return t.definitions_["import_"+e+"_onboard_matrix"]="from "+e+" import onboard_matrix","onboard_matrix.shows("+t.valueToCode(this,"data",t.ORDER_ASSIGNMENT)+")\n"},Tc=function(_,t){var e=p_.Boards.getSelectedBoardKey().split(":")[2],i=t.valueToCode(this,"data",t.ORDER_ASSIGNMENT),T=t.valueToCode(this,"space",t.ORDER_ASSIGNMENT),E=this.getFieldValue("center");return"mixgo_zero"==e||"mixgo_nova"==e?(t.definitions_["import_"+e+"_onboard_tft"]="from "+e+" import onboard_tft","onboard_tft.shows("+i+",space = "+T+",center = "+E+")\n"):(t.definitions_["import_"+e+"_onboard_matrix"]="from "+e+" import onboard_matrix","onboard_matrix.shows("+i+",space = "+T+",center = "+E+")\n")},Ec=function(_,t){var e=p_.Boards.getSelectedBoardKey().split(":")[2];if("mpython"==e){t.definitions_["import_"+e+"_onboard_oled"]="from "+e+" import onboard_oled";var i="onboard_oled.frame("+t.valueToCode(this,"data",t.ORDER_ASSIGNMENT)+")\n"}else{t.definitions_["import_"+e+"_onboard_matrix"]="from "+e+" import onboard_matrix";i="onboard_matrix.frame("+t.valueToCode(this,"data",t.ORDER_ASSIGNMENT)+")\n"}return i},nc=function(_,t){var e=p_.Boards.getSelectedBoardKey().split(":")[2];return t.definitions_["import_"+e+"_onboard_matrix"]="from "+e+" import onboard_matrix","onboard_matrix.frame("+t.valueToCode(this,"data",t.ORDER_ASSIGNMENT)+",delay = "+t.valueToCode(this,"time",t.ORDER_ASSIGNMENT)+")\n"},oc=function(_,t){var e=p_.Boards.getSelectedBoardKey().split(":")[2];if("mpython"==e){t.definitions_["import_"+e+"_onboard_oled"]="from "+e+" import onboard_oled";var i="onboard_oled.scroll("+t.valueToCode(this,"data",t.ORDER_ASSIGNMENT)+")\n"}else{t.definitions_["import_"+e+"_onboard_matrix"]="from "+e+" import onboard_matrix";i="onboard_matrix.scroll("+t.valueToCode(this,"data",t.ORDER_ASSIGNMENT)+")\n"}return i},sc=function(_,t){var e=p_.Boards.getSelectedBoardKey().split(":")[2];return t.definitions_["import_"+e+"_onboard_matrix"]="from "+e+" import onboard_matrix","onboard_matrix.scroll("+t.valueToCode(this,"data",t.ORDER_ASSIGNMENT)+",speed ="+t.valueToCode(this,"time",t.ORDER_ASSIGNMENT)+",space = "+t.valueToCode(this,"space",t.ORDER_ASSIGNMENT)+")\n"},Oc=function(_,t){var e=p_.Boards.getSelectedBoardKey().split(":")[2];return t.definitions_["import_"+e+"_onboard_matrix"]="from "+e+" import onboard_matrix",["onboard_matrix."+_.getFieldValue("image"),t.ORDER_ATOMIC]},Ic=function(_,t){var e=p_.Boards.getSelectedBoardKey().split(":")[2];return t.definitions_["import_"+e+"_onboard_matrix"]="from "+e+" import onboard_matrix",["onboard_matrix."+_.getFieldValue("image"),t.ORDER_ATOMIC]},ac=function(_,t){var e={"#000000":"0","#ff0000":"1"};function i(_){let t="";if(_.length%2==1&&(_="0"+_),_.length<8){let t=8-_.length;for(let e=1;e<=t;e++)_="0"+_}for(let e=1;e<=_.length;e++)e%2==0&&e!==_.length?t=t+_[e-1]+",0x":t+=_[e-1];return"0x"+t}let T=[];for(let t=0;t<12;t++){let E="",n=0,o=0;for(let i=0;i<32;i++)i<8?o=7-i:i<16?o=23-i:i<24?o=39-i:i<32&&(o=55-i),n+=Number(e[_.getFieldValue(t+"-"+i)])*Math.pow(2,31-o);E+=i(n.toString(16)),T.unshift(E)}let E=[];for(let _=0;_>8|(64512&O)>>5|(255&O)>>3).toString(16)+")\n"}return s},kc=function(_,t){var e=p_.Boards.getSelectedBoardKey().split(":")[2];t.definitions_["import_"+e+"_onboard_tft"]="from "+e+" import onboard_tft";var i=t.valueToCode(this,"data",t.ORDER_ASSIGNMENT),T=t.valueToCode(this,"x",t.ORDER_ASSIGNMENT),E=t.valueToCode(this,"y",t.ORDER_ASSIGNMENT),n=t.valueToCode(this,"size",t.ORDER_ASSIGNMENT),o=t.valueToCode(this,"space",t.ORDER_ASSIGNMENT),s=this.getFieldValue("center"),O=t.valueToCode(this,"VAR",t.ORDER_ATOMIC);if("0x"==O.slice(0,2))var I="onboard_tft.shows("+i+",x = "+T+",y = "+E+",size = "+n+",space = "+o+",center = "+s+",color="+O+")\n";else{const _=O.match(/\d+/g);var a="0x"+((parseInt(_[0])<<16)+(parseInt(_[1])<<8)+parseInt(_[2])).toString(16).padStart(4,"0");I="onboard_tft.shows("+i+",x = "+T+",y = "+E+",size = "+n+",space = "+o+",center = "+s+",color=0x"+((16252928&a)>>8|(64512&a)>>5|(255&a)>>3).toString(16)+")\n"}return I},wc=function(_,t){var e=p_.Boards.getSelectedBoardKey().split(":")[2];return t.definitions_["import_"+e+"_onboard_oled"]="from "+e+" import onboard_tft","onboard_tft.frame("+t.valueToCode(this,"data",t.ORDER_ASSIGNMENT)+",color=0xffff)\n"},Wc=function(_,t){var e=p_.Boards.getSelectedBoardKey().split(":")[2];t.definitions_["import_"+e+"_onboard_tft"]="from "+e+" import onboard_tft";var i=t.valueToCode(this,"data",t.ORDER_ASSIGNMENT),T=t.valueToCode(this,"size",t.ORDER_ASSIGNMENT),E=t.valueToCode(this,"time",t.ORDER_ASSIGNMENT),n=t.valueToCode(this,"VAR",t.ORDER_ATOMIC);if("0x"==n.slice(0,2))var o="onboard_tft.frame("+i+",size = "+T+",delay = "+E+",color="+n+")\n";else{const _=n.match(/\d+/g);var s="0x"+((parseInt(_[0])<<16)+(parseInt(_[1])<<8)+parseInt(_[2])).toString(16).padStart(4,"0");o="onboard_tft.frame("+i+",size = "+T+",delay = "+E+",color=0x"+((16252928&s)>>8|(64512&s)>>5|(255&s)>>3).toString(16)+")\n"}return o},Kc=function(_,t){var e=p_.Boards.getSelectedBoardKey().split(":")[2];return t.definitions_["import_"+e+"_onboard_oled"]="from "+e+" import onboard_tft","onboard_tft.scroll("+t.valueToCode(this,"data",t.ORDER_ASSIGNMENT)+",color=0xffff)\n"},zc=function(_,t){var e=p_.Boards.getSelectedBoardKey().split(":")[2];t.definitions_["import_"+e+"_onboard_tft"]="from "+e+" import onboard_tft";var i=t.valueToCode(this,"data",t.ORDER_ASSIGNMENT),T=t.valueToCode(this,"y",t.ORDER_ASSIGNMENT),E=t.valueToCode(this,"size",t.ORDER_ASSIGNMENT),n=t.valueToCode(this,"time",t.ORDER_ASSIGNMENT),o=t.valueToCode(this,"space",t.ORDER_ASSIGNMENT),s=t.valueToCode(this,"VAR",t.ORDER_ATOMIC);if("0x"==s.slice(0,2))var O="onboard_tft.scroll("+i+",y = "+T+",size = "+E+",speed ="+n+",space = "+o+",color="+s+")\n";else{const _=s.match(/\d+/g);var I="0x"+((parseInt(_[0])<<16)+(parseInt(_[1])<<8)+parseInt(_[2])).toString(16).padStart(4,"0");O="onboard_tft.scroll("+i+",y = "+T+",size = "+E+",speed ="+n+",space = "+o+",color=0x"+((16252928&I)>>8|(64512&I)>>5|(255&I)>>3).toString(16)+")\n"}return O},Zc=function(_,t){var e=p_.Boards.getSelectedBoardKey().split(":")[2];t.definitions_["import_"+e+"_onboard_tft"]="from "+e+" import onboard_tft";var i=t.valueToCode(_,"x",t.ORDER_ATOMIC),T=t.valueToCode(_,"y",t.ORDER_ATOMIC),E=t.valueToCode(_,"w",t.ORDER_ATOMIC),n=t.valueToCode(_,"h",t.ORDER_ATOMIC),o=t.valueToCode(this,"VAR",t.ORDER_ATOMIC),s=_.getFieldValue("shape");if("0x"==o.slice(0,2))var O="onboard_tft."+s+"("+i+", "+T+", "+E+", "+n+", "+o+")\nonboard_tft.show()\n";else{const _=o.match(/\d+/g);var I="0x"+((parseInt(_[0])<<16)+(parseInt(_[1])<<8)+parseInt(_[2])).toString(16).padStart(4,"0");O="onboard_tft."+s+"("+i+", "+T+", "+E+", "+n+", 0x"+((16252928&I)>>8|(64512&I)>>5|(255&I)>>3).toString(16)+")\nonboard_tft.show()\n"}return O},Qc=function(_,t){var e=p_.Boards.getSelectedBoardKey().split(":")[2];t.definitions_["import_"+e+"_onboard_tft"]="from "+e+" import onboard_tft";var i=t.valueToCode(_,"x",t.ORDER_ATOMIC),T=t.valueToCode(_,"y",t.ORDER_ATOMIC),E=t.valueToCode(_,"length",t.ORDER_ATOMIC),n=t.valueToCode(this,"VAR",t.ORDER_ATOMIC),o=_.getFieldValue("dir_h_v");if("0x"==n.slice(0,2))var s="onboard_tft."+("0"==o?"v":"h")+"line("+i+", "+T+", "+E+", "+n+")\nonboard_tft.show()\n";else{const _=n.match(/\d+/g);var O="0x"+((parseInt(_[0])<<16)+(parseInt(_[1])<<8)+parseInt(_[2])).toString(16).padStart(4,"0");s="onboard_tft."+("0"==o?"v":"h")+"line("+i+", "+T+", "+E+", 0x"+((16252928&O)>>8|(64512&O)>>5|(255&O)>>3).toString(16)+")\nonboard_tft.show()\n"}return s},Jc=function(_,t){var e=p_.Boards.getSelectedBoardKey().split(":")[2];t.definitions_["import_"+e+"_onboard_tft"]="from "+e+" import onboard_tft";var i=t.valueToCode(_,"x1",t.ORDER_ATOMIC),T=t.valueToCode(_,"y1",t.ORDER_ATOMIC),E=t.valueToCode(_,"x2",t.ORDER_ATOMIC),n=t.valueToCode(_,"y2",t.ORDER_ATOMIC),o=t.valueToCode(this,"VAR",t.ORDER_ATOMIC);if("0x"==o.slice(0,2))var s="onboard_tft.line("+i+", "+T+", "+E+", "+n+", "+o+")\nonboard_tft.show()\n";else{const _=o.match(/\d+/g);var O="0x"+((parseInt(_[0])<<16)+(parseInt(_[1])<<8)+parseInt(_[2])).toString(16).padStart(4,"0");s="onboard_tft.line("+i+", "+T+", "+E+", "+n+", 0x"+((16252928&O)>>8|(64512&O)>>5|(255&O)>>3).toString(16)+")\nonboard_tft.show()\n"}return s},qc=function(_,t){var e=p_.Boards.getSelectedBoardKey().split(":")[2];t.definitions_["import_"+e+"_onboard_tft"]="from "+e+" import onboard_tft";return"onboard_tft.fill(0)\nonboard_tft.show()\n"},jc=function(_,t){var e=p_.Boards.getSelectedBoardKey().split(":")[2];return t.definitions_["import_"+e+"_onboard_tft"]="from "+e+" import onboard_tft","onboard_tft."+_.getFieldValue("OP")+"("+t.valueToCode(_,"val",t.ORDER_ATOMIC)+")\n"},$c=function(_,t){var e=p_.Boards.getSelectedBoardKey().split(":")[2];return t.definitions_["import_"+e+"_onboard_tft"]="from "+e+" import onboard_tft",["hex(onboard_tft.pixel(int("+t.valueToCode(_,"x",t.ORDER_ATOMIC)+"), int("+t.valueToCode(_,"y",t.ORDER_ATOMIC)+")))",t.ORDER_ATOMIC]},_H=function(_,t){var e=p_.Boards.getSelectedBoardKey().split(":")[2];t.definitions_["import_"+e+"_onboard_tft"]="from "+e+" import onboard_tft";var i=t.valueToCode(this,"x",t.ORDER_ASSIGNMENT),T=t.valueToCode(this,"y",t.ORDER_ASSIGNMENT),E=t.valueToCode(this,"VAR",t.ORDER_ATOMIC);if("0x"==E.slice(0,2))var n="onboard_tft.pixel(int("+i+"), int("+T+"), "+E+")\nonboard_tft.show()\n";else{const _=E.match(/\d+/g);var o="0x"+((parseInt(_[0])<<16)+(parseInt(_[1])<<8)+parseInt(_[2])).toString(16).padStart(4,"0");n="onboard_tft.pixel(int("+i+"), int("+T+"), 0x"+((16252928&o)>>8|(64512&o)>>5|(255&o)>>3).toString(16)+")\nonboard_tft.show()\n"}return n},tH=function(_,t){var e=p_.Boards.getSelectedBoardKey().split(":")[2];t.definitions_["import_"+e+"_onboard_tft"]="from "+e+" import onboard_tft";return["onboard_tft.get_brightness()",t.ORDER_ATOMIC]},eH=function(_,t){var e=p_.Boards.getSelectedBoardKey().split(":")[2];return t.definitions_["import_"+e+"_onboard_tft"]="from "+e+" import onboard_tft","onboard_tft.set_brightness("+t.valueToCode(this,"x",t.ORDER_ASSIGNMENT)+")\n"},iH=function(_,t){var e=p_.Boards.getSelectedBoardKey().split(":")[2];t.definitions_["import_"+e+"_onboard_tft"]="from "+e+" import onboard_tft";var i=t.valueToCode(this,"VAR",t.ORDER_ASSIGNMENT);if("0x"==i.slice(0,2))var T="onboard_tft.fill("+i+")\nonboard_tft.show()\n";else{const _=i.match(/\d+/g);var E="0x"+((parseInt(_[0])<<16)+(parseInt(_[1])<<8)+parseInt(_[2])).toString(16).padStart(4,"0");T="onboard_tft.fill(0x"+((16252928&E)>>8|(64512&E)>>5|(255&E)>>3).toString(16)+")\nonboard_tft.show()\n"}return T},TH=function(_,t){var e=p_.Boards.getSelectedBoardKey().split(":")[2];t.definitions_["import_"+e+"_Clock"]="from "+e+" import Clock";var i=t.valueToCode(this,"x",t.ORDER_ASSIGNMENT),T=t.valueToCode(this,"y",t.ORDER_ASSIGNMENT),E=t.valueToCode(this,"size",t.ORDER_ASSIGNMENT),n=t.valueToCode(this,"SUB",t.ORDER_ASSIGNMENT),o=t.valueToCode(this,"VAR",t.ORDER_ATOMIC);if("0x"==o.slice(0,2))var s=n+"=Clock("+i+","+T+","+E+","+o+")\n";else{const _=o.match(/\d+/g);var O="0x"+((parseInt(_[0])<<16)+(parseInt(_[1])<<8)+parseInt(_[2])).toString(16).padStart(4,"0");s=n+"=Clock("+i+","+T+","+E+",0x"+((16252928&O)>>8|(64512&O)>>5|(255&O)>>3).toString(16)+")\n"}return s},EH=function(_,t){var e=p_.Boards.getSelectedBoardKey().split(":")[2];return t.definitions_["import_"+e+"_Clock"]="from "+e+" import Clock",t.valueToCode(this,"SUB",t.ORDER_ASSIGNMENT)+".set_rtctime()\n"},nH=function(_,t){var e=p_.Boards.getSelectedBoardKey().split(":")[2];return t.definitions_["import_"+e+"_Clock"]="from "+e+" import Clock",t.valueToCode(this,"SUB",t.ORDER_ASSIGNMENT)+".set_time("+t.valueToCode(this,"h",t.ORDER_ASSIGNMENT)+","+t.valueToCode(this,"m",t.ORDER_ASSIGNMENT)+","+t.valueToCode(this,"s",t.ORDER_ASSIGNMENT)+")\n"},oH=function(_,t){var e=p_.Boards.getSelectedBoardKey().split(":")[2];return t.definitions_["import_"+e+"_Clock"]="from "+e+" import Clock",t.valueToCode(this,"SUB",t.ORDER_ASSIGNMENT)+".draw_clock()\n"},sH=function(_,t){var e=p_.Boards.getSelectedBoardKey().split(":")[2];t.definitions_["import_"+e+"_Clock"]="from "+e+" import Clock";var i=t.valueToCode(this,"SUB",t.ORDER_ASSIGNMENT),T=t.valueToCode(this,"VAR",t.ORDER_ATOMIC);if("0x"==T.slice(0,2))var E=i+".clear("+T+")\n";else{const _=T.match(/\d+/g);var n="0x"+((parseInt(_[0])<<16)+(parseInt(_[1])<<8)+parseInt(_[2])).toString(16).padStart(4,"0");E=i+".clear(0x"+((16252928&n)>>8|(64512&n)>>5|(255&n)>>3).toString(16)+")\n"}return E},OH=function(_,t){var e=p_.Boards.getSelectedBoardKey().split(":")[2];t.definitions_["import_"+e+"_onboard_tft"]="from "+e+" import onboard_tft";var i=t.valueToCode(_,"x",t.ORDER_ATOMIC),T=t.valueToCode(_,"y",t.ORDER_ATOMIC),E=t.valueToCode(_,"r",t.ORDER_ATOMIC),n=t.valueToCode(this,"VAR",t.ORDER_ATOMIC),o=_.getFieldValue("shape");if("0x"==n.slice(0,2))var s="onboard_tft.ellipse("+i+", "+T+", "+E+", "+E+", "+n+","+o+")\nonboard_tft.show()\n";else{const _=n.match(/\d+/g);var O="0x"+((parseInt(_[0])<<16)+(parseInt(_[1])<<8)+parseInt(_[2])).toString(16).padStart(4,"0");s="onboard_tft.ellipse("+i+", "+T+", "+E+", "+E+", 0x"+((16252928&O)>>8|(64512&O)>>5|(255&O)>>3).toString(16)+","+o+")\nonboard_tft.show()\n"}return s},IH=function(_,t){var e=this.getFieldValue("path"),i=this.getFieldValue("module");return t.definitions_["import_"+e+"_"+i]="from "+e+" import "+i,""},aH=function(_,t){var e=this.getFieldValue("module");return t.definitions_["import_"+e]="import "+e,""},pH=function(_,t){for(var e=this.getFieldValue("NAME"),i=new Array(this.itemCount_),T=0;T {\n"+t.statementToCode(this,"do")+"})\n"},sg=function(){return"control.reset()\n"},Og=function(_,t){return"control.waitMicros("+(t.valueToCode(this,"data",t.ORDER_ATOMIC)||p_.Profile.default.serial)+")\n"},Ig=function(_,t){return"control.raiseEvent("+(t.valueToCode(this,"system_event_bus_source",t.ORDER_ATOMIC)||p_.Profile.default.serial)+", "+(t.valueToCode(this,"system_event_bus_value",t.ORDER_ATOMIC)||p_.Profile.default.serial)+")\n"},ag=function(_,t){return"control.onEvent("+(t.valueToCode(this,"system_event_bus_source",t.ORDER_ATOMIC)||p_.Profile.default.serial)+", "+(t.valueToCode(this,"system_event_bus_value",t.ORDER_ATOMIC)||p_.Profile.default.serial)+", () => {\n"+t.statementToCode(this,"do")+")\n"},pg=function(_,t){return["control.eventTimestamp()",t.ORDER_ATOMIC]},Mg=function(_,t){return["control.eventValue()",t.ORDER_ATOMIC]},Lg=function(_,t){return[this.getFieldValue("key"),t.ORDER_ATOMIC]},Rg=function(_,t){return[this.getFieldValue("key"),t.ORDER_ATOMIC]},rg=function(_,t){return["control.deviceName()",t.ORDER_ATOMIC]},Sg=function(_,t){return["control.deviceSerialNumber()",t.ORDER_ATOMIC]},lg=function(_,t){return"panic("+(t.valueToCode(this,"STATUS_CODE",t.ORDER_ATOMIC)||"1000")+")\n"},Ag=function(_,t){switch(t.definitions_.import_time="import time",this.getFieldValue("Time")){case"ms":return["time.ticks_ms()",t.ORDER_ATOMIC];case"us":return["time.ticks_us()",t.ORDER_ATOMIC]}},Pg=function(){return"while True:\n pass\n"},Ng=function(_,t){return t.definitions_.import_mixgo="import mixgo","reset()\n"},dg=function(_,t){return t.definitions_.import_os="import os","os.uname()"},hg=function(_,t){t.definitions_.import_time="import time";var e=t.valueToCode(this,"DELAY_TIME",t.ORDER_ATOMIC)||"1000";switch(this.getFieldValue("Time")){case"s":return"time.sleep("+e+")\n";case"ms":return"time.sleep_ms("+e+")\n";case"us":return"time.sleep_us("+e+")\n"}},ug=function(_,t){t.definitions_.import_time="import time";var e=t.valueToCode(this,"DELAY_TIME",t.ORDER_ATOMIC)||"1000";switch(this.getFieldValue("Time")){case"s":return"time.sleep("+e+")\n";case"ms":return"time.sleep_ms("+e+")\n";case"us":return"time.sleep_us("+e+")\n"}},mg=function(_,t){return t.definitions_.import_mixgo="import mixgo",(t.valueToCode(this,"VAR",t.ORDER_NONE)||"None")+".init(period = "+(t.valueToCode(this,"period",t.ORDER_NONE)||"0")+", mode = Timer."+(t.valueToCode(this,"mode",t.ORDER_NONE)||"None")+", callback = "+(t.valueToCode(this,"callback",t.ORDER_NONE)||"None")+")\n"},Cg=function(_,t){return t.definitions_.import_machine="import machine",(t.valueToCode(this,"VAR",t.ORDER_NONE)||"None")+".init(period = "+(t.valueToCode(this,"period",t.ORDER_NONE)||"0")+", mode = machine.Timer."+this.getFieldValue("mode")+", callback = "+(t.valueToCode(this,"callback",t.ORDER_NONE)||"None")+")\n"},cg=function(_,t){return t.definitions_.import_time="import time",["time.ticks_diff("+(t.valueToCode(this,"END",t.ORDER_NONE)||"0")+", "+(t.valueToCode(this,"START",t.ORDER_NONE)||"0")+")",t.ORDER_ATOMIC]},Hg=function(_,t){var e=t.valueToCode(this,"SUB",t.ORDER_ATOMIC);return t.definitions_.import_machine="import machine",e+" = machine.Timer(0)\n"},Dg=function(_,t){return t.definitions_.import_machine="import machine","wdt = machine.WDT(timeout= "+(t.valueToCode(this,"period",t.ORDER_NONE)||"0")+")\n"},Yg=function(_,t){t.definitions_.import_machine="import machine";return"wdt.feed()\n"},Ug=function(_,t){t.definitions_.import_machine="import machine";return"machine.reset()\n"},Bg=function(_,t){t.definitions_.import_bitbot_onboard_bot51="from bitbot import onboard_bot51";return"onboard_bot51.shutdown()\n"},gg=Hg,Gg=Cg,Fg=cg,yg=hg,fg=function(_,t){return t.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api."+this.getFieldValue("mode")+"("+t.valueToCode(this,"key",t.ORDER_ATOMIC)+","+t.valueToCode(this,"addr",t.ORDER_ATOMIC)+")",t.ORDER_ATOMIC]},bg=function(_,t){return t.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api."+this.getFieldValue("mode")+"("+t.valueToCode(this,"key",t.ORDER_ATOMIC)+","+t.valueToCode(this,"addr",t.ORDER_ATOMIC)+","+t.valueToCode(this,"day",t.ORDER_ATOMIC)+")",t.ORDER_ATOMIC]},xg=function(_,t){return t.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api.weather_hourly("+t.valueToCode(this,"key",t.ORDER_ATOMIC)+","+t.valueToCode(this,"addr",t.ORDER_ATOMIC)+","+t.valueToCode(this,"hour",t.ORDER_ATOMIC)+")",t.ORDER_ATOMIC]},vg={};vg["MixGo(ESP32, 4M)"]={description:"MicroPython[ESP32 MixGo]",digital_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["12","12"],["13","13"],["14","14"],["15","15"],["16","16"],["17","17"],["18","18"],["19","19"],["21","21"],["22","22"],["23","23"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["39","39"]],digital:[["pin0","pin0"],["pin2","pin2"],["pin4","pin4"],["pin5","pin5"],["pin12","pin12"],["pin13","pin13"],["pin14","pin14"],["pin15","pin15"],["pin16","pin16"],["pin17","pin17"],["pin18","pin18"],["pin19","pin19"],["pin21","pin21"],["pin22","pin22"],["pin23","pin23"],["pin25","pin25"],["pin26","pin26"],["pin27","pin27"],["pin32","pin32"],["pin33","pin33"],["pin34","pin34"],["pin35","pin35"],["pin36","pin36"],["pin39","pin39"]],input_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["12","12"],["13","13"],["14","14"],["15","15"],["16","16"],["17","17"],["18","18"],["19","19"],["21","21"],["22","22"],["23","23"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["39","39"]],output_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["12","12"],["13","13"],["14","14"],["15","15"],["16","16"],["17","17"],["18","18"],["19","19"],["21","21"],["22","22"],["23","23"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"]],pwm_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["12","12"],["13","13"],["14","14"],["15","15"],["16","16"],["17","17"],["18","18"],["19","19"],["20","20"],["21","21"],["22","22"],["23","23"],["25","25"],["26","26"],["27","27"],["32","32"]],pwm:[["pwm0","pwm0"],["pwm2","pwm2"],["pwm4","pwm4"],["pwm5","pwm5"],["pwm12","pwm12"],["pwm13","pwm13"],["pwm14","pwm14"],["pwm15","pwm15"],["pwm16","pwm16"],["pwm17","pwm17"],["pwm18","pwm18"],["pwm19","pwm19"],["pwm20","pwm20"],["pwm21","pwm21"],["pwm22","pwm22"],["pwm23","pwm23"],["pwm25","pwm25"],["pwm26","pwm26"],["pwm27","pwm27"],["pwm32","pwm32"]],analog_pin:[["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["37","37"],["38","38"],["39","39"]],analog:[["adc32","adc32"],["adc33","adc33"],["adc34","adc34"],["adc35","adc35"],["adc36","adc36"],["adc37","adc37"],["adc38","adc38"],["adc39","adc39"]],espnow_channel:p_.Profile.generate(["1-13"]),haskylens_model:p_.Profile.generate(["0-4"]),dac_pin:[["25","25"],["26","26"]],dac:[["dac25","dac25"],["dac26","dac26"]],touch:[["tc0","tc0"],["tc2","tc2"],["tc4","tc4"],["tc12","tc12"],["tc13","tc13"],["tc14","tc14"],["tc15","tc15"],["tc27","tc27"],["tc32","tc32"],["tc33","tc33"]],touch_pin:[["0","0"],["2","2"],["4","4"],["12","12"],["13","13"],["14","14"],["15","15"],["27","27"],["32","32"],["33","33"]],button:[["A","button_a"],["B","button_b"]],axis:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"]],exlcdh:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"],["10","10"],["11","11"],["12","12"],["13","13"],["14","14"],["15","15"]],exlcdv:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],brightness:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"]],tts_voice:p_.Profile.generate(["0-16"]),tts_builtin_music:p_.Profile.generate(["0-47"]),tts_bgmusic:p_.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["SILLY","onboard_matrix.SILLY"],["FABULOUS","onboard_matrix.FABULOUS"],["SURPRISED","onboard_matrix.SURPRISED"],["ASLEEP","onboard_matrix.ASLEEP"],["ANGRY","onboard_matrix.ANGRY"],["CONFUSED","onboard_matrix.CONFUSED"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"],["LEFT_ARROW","onboard_matrix.LEFT_ARROW"],["RIGHT_ARROW","onboard_matrix.RIGHT_ARROW"],["DRESS","onboard_matrix.DRESS"],["TRANSFORMERS","onboard_matrix.TRANSFORMERS"],["SCISSORS","onboard_matrix.SCISSORS"],["EXIT","onboard_matrix.EXIT"],["TREE","onboard_matrix.TREE"],["PACMAN","onboard_matrix.PACMAN"],["TARGET","onboard_matrix.TARGET"],["TSHIRT","onboard_matrix.TSHIRT"],["ROLLERSKATE","onboard_matrix.ROLLERSKATE"],["DUCK","onboard_matrix.DUCK"],["HOUSE","onboard_matrix.HOUSE"],["TORTOISE","onboard_matrix.TORTOISE"],["BUTTERFLY","onboard_matrix.BUTTERFLY"],["STICKFIGURE","onboard_matrix.STICKFIGURE"],["GHOST","onboard_matrix.GHOST"],["PITCHFORK","onboard_matrix.PITCHFORK"],["onboard_music_QUAVERS","onboard_matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","onboard_matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","onboard_matrix.onboard_music_CROTCHET"],["COW","onboard_matrix.COW"],["RABBIT","onboard_matrix.RABBIT"],["SQUARE_SMALL","onboard_matrix.SQUARE_SMALL"],["SQUARE","onboard_matrix.SQUARE"],["DIAMOND_SMALL","onboard_matrix.DIAMOND_SMALL"],["DIAMOND","onboard_matrix.DIAMOND"],["CHESSBOARD","onboard_matrix.CHESSBOARD"],["TRIANGLE_LEFT","onboard_matrix.TRIANGLE_LEFT"],["TRIANGLE","onboard_matrix.TRIANGLE"],["SNAKE","onboard_matrix.SNAKE"],["UMBRELLA","onboard_matrix.UMBRELLA"],["SKULL","onboard_matrix.SKULL"],["GIRAFFE","onboard_matrix.GIRAFFE"],["SWORD","onboard_matrix.SWORD"]],builtinimg_extern:[["HEART","matrix32x12.Matrix.HEART"],["HEART_SMALL","matrix32x12.Matrix.HEART_SMALL"],["HAPPY","matrix32x12.Matrix.HAPPY"],["SAD","matrix32x12.Matrix.SAD"],["SMILE","matrix32x12.Matrix.SMILE"],["SILLY","matrix32x12.Matrix.SILLY"],["FABULOUS","matrix32x12.Matrix.FABULOUS"],["SURPRISED","matrix32x12.Matrix.SURPRISED"],["ASLEEP","matrix32x12.Matrix.ASLEEP"],["ANGRY","matrix32x12.Matrix.ANGRY"],["CONFUSED","matrix32x12.Matrix.CONFUSED"],["NO","matrix32x12.Matrix.NO"],["YES","matrix32x12.Matrix.YES"],["LEFT_ARROW","matrix32x12.Matrix.LEFT_ARROW"],["RIGHT_ARROW","matrix32x12.Matrix.RIGHT_ARROW"],["DRESS","matrix32x12.Matrix.DRESS"],["TRANSFORMERS","matrix32x12.Matrix.TRANSFORMERS"],["SCISSORS","matrix32x12.Matrix.SCISSORS"],["EXIT","matrix32x12.Matrix.EXIT"],["TREE","matrix32x12.Matrix.TREE"],["PACMAN","matrix32x12.Matrix.PACMAN"],["TARGET","matrix32x12.Matrix.TARGET"],["TSHIRT","matrix32x12.Matrix.TSHIRT"],["ROLLERSKATE","matrix32x12.Matrix.ROLLERSKATE"],["DUCK","matrix32x12.Matrix.DUCK"],["HOUSE","matrix32x12.Matrix.HOUSE"],["TORTOISE","matrix32x12.Matrix.TORTOISE"],["BUTTERFLY","matrix32x12.Matrix.BUTTERFLY"],["STICKFIGURE","matrix32x12.Matrix.STICKFIGURE"],["GHOST","matrix32x12.Matrix.GHOST"],["PITCHFORK","matrix32x12.Matrix.PITCHFORK"],["onboard_music_QUAVERS","matrix32x12.Matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","matrix32x12.Matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","matrix32x12.Matrix.onboard_music_CROTCHET"],["COW","matrix32x12.Matrix.COW"],["RABBIT","matrix32x12.Matrix.RABBIT"],["SQUARE_SMALL","matrix32x12.Matrix.SQUARE_SMALL"],["SQUARE","matrix32x12.Matrix.SQUARE"],["DIAMOND_SMALL","matrix32x12.Matrix.DIAMOND_SMALL"],["DIAMOND","matrix32x12.Matrix.DIAMOND"],["CHESSBOARD","matrix32x12.Matrix.CHESSBOARD"],["TRIANGLE_LEFT","matrix32x12.Matrix.TRIANGLE_LEFT"],["TRIANGLE","matrix32x12.Matrix.TRIANGLE"],["SNAKE","matrix32x12.Matrix.SNAKE"],["UMBRELLA","matrix32x12.Matrix.UMBRELLA"],["SKULL","matrix32x12.Matrix.SKULL"],["GIRAFFE","matrix32x12.Matrix.GIRAFFE"],["SWORD","matrix32x12.Matrix.SWORD"]],imglist:[["ALL_CLOCKS","onboard_matrix.ALL_CLOCKS"],["ALL_ARROWS","onboard_matrix.ALL_ARROWS"]],playlist:[["DADADADUM","onboard_music.DADADADUM"],["ENTERTAINER","onboard_music.ENTERTAINER"],["PRELUDE","onboard_music.PRELUDE"],["ODE","onboard_music.ODE"],["NYAN","onboard_music.NYAN"],["RINGTONE","onboard_music.RINGTONE"],["FUNK","onboard_music.FUNK"],["BLUES","onboard_music.BLUES"],["BIRTHDAY","onboard_music.BIRTHDAY"],["WEDDING","onboard_music.WEDDING"],["FUNERAL","onboard_music.FUNERAL"],["PUNCHLINE","onboard_music.PUNCHLINE"],["PYTHON","onboard_music.PYTHON"],["BADDY","onboard_music.BADDY"],["CHASE","onboard_music.CHASE"],["BA_DING","onboard_music.BA_DING"],["WAWAWAWAA","onboard_music.WAWAWAWAA"],["JUMP_UP","onboard_music.JUMP_UP"],["JUMP_DOWN","onboard_music.JUMP_DOWN"],["POWER_UP","onboard_music.POWER_UP"],["POWER_DOWN","onboard_music.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],tone_notes:[["NOTE_C3","131"],["NOTE_D3","147"],["NOTE_E3","165"],["NOTE_F3","175"],["NOTE_G3","196"],["NOTE_A3","220"],["NOTE_B3","247"],["NOTE_C4","262"],["NOTE_D4","294"],["NOTE_E4","330"],["NOTE_F4","349"],["NOTE_G4","392"],["NOTE_A4","440"],["NOTE_B4","494"],["NOTE_C5","523"],["NOTE_D5","587"],["NOTE_E5","659"],["NOTE_F5","698"],["NOTE_G5","784"],["NOTE_A5","880"],["NOTE_B5","988"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"],["3","3"]]},vg["MixGo PE"]={description:"MicroPython[ESP32 MixGo PE]",digital_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["7","7"],["8","8"],["12","12"],["13","13"],["14","14"],["15","15"],["19","19"],["20","20"],["21","21"],["22","22"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["37","37"],["38","38"],["39","39"]],digital:[["pin0","pin0"],["pin2","pin2"],["pin4","pin4"],["pin5","pin5"],["pin7","pin7"],["pin8","pin8"],["pin12","pin12"],["pin13","pin13"],["pin14","pin14"],["pin15","pin15"],["pin19","pin19"],["pin20","pin20"],["pin21","pin21"],["pin22","pin22"],["pin25","pin25"],["pin26","pin26"],["pin27","pin27"],["pin32","pin32"],["pin33","pin33"],["pin34","pin34"],["pin35","pin35"],["pin36","pin36"],["pin37","pin37"],["pin38","pin38"],["pin39","pin39"]],input_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["7","7"],["8","8"],["12","12"],["13","13"],["14","14"],["15","15"],["19","19"],["20","20"],["21","21"],["22","22"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["37","37"],["38","38"],["39","39"]],output_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["7","7"],["8","8"],["12","12"],["13","13"],["14","14"],["15","15"],["19","19"],["20","20"],["21","21"],["22","22"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"]],pwm_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["7","7"],["8","8"],["12","12"],["13","13"],["14","14"],["15","15"],["19","19"],["20","20"],["21","21"],["22","22"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"]],pwm:[["pwm0","pwm0"],["pwm2","pwm2"],["pwm4","pwm4"],["pwm5","pwm5"],["pwm7","pwm7"],["pwm8","pwm8"],["pwm12","pwm12"],["pwm13","pwm13"],["pwm14","pwm14"],["pwm15","pwm15"],["pwm19","pwm19"],["pwm20","pwm20"],["pwm21","pwm21"],["pwm22","pwm22"],["pwm25","pwm25"],["pwm26","pwm26"],["pwm27","pwm27"],["pwm32","pwm32"],["pwm33","pwm33"]],espnow_channel:p_.Profile.generate(["1-13"]),haskylens_model:p_.Profile.generate(["0-4"]),analog_pin:[["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["37","37"],["38","38"],["39","39"]],analog:[["adc32","adc32"],["adc33","adc33"],["adc34","adc34"],["adc35","adc35"],["adc36","adc36"],["adc37","adc37"],["adc38","adc38"],["adc39","adc39"]],dac_pin:[["25","25"],["26","26"]],dac:[["dac25","dac25"],["dac26","dac26"]],touch:[["tc0","tc0"],["tc2","tc2"],["tc4","tc4"],["tc12","tc12"],["tc13","tc13"],["tc14","tc14"],["tc15","tc15"],["tc27","tc27"],["tc32","tc32"],["tc33","tc33"]],touch_pin:[["0","0"],["2","2"],["4","4"],["12","12"],["13","13"],["14","14"],["15","15"],["27","27"],["32","32"],["33","33"]],button:[["A","button_a"],["B","button_b"]],axis:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"]],exlcdh:p_.Profile.generate(["0-7"]),exlcdv:p_.Profile.generate(["0-4"]),brightness:p_.Profile.generate(["0-9"]),tts_voice:p_.Profile.generate(["0-16"]),tts_builtin_music:p_.Profile.generate(["0-47"]),tts_bgmusic:p_.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["SILLY","onboard_matrix.SILLY"],["FABULOUS","onboard_matrix.FABULOUS"],["SURPRISED","onboard_matrix.SURPRISED"],["ASLEEP","onboard_matrix.ASLEEP"],["ANGRY","onboard_matrix.ANGRY"],["CONFUSED","onboard_matrix.CONFUSED"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"],["LEFT_ARROW","onboard_matrix.LEFT_ARROW"],["RIGHT_ARROW","onboard_matrix.RIGHT_ARROW"],["DRESS","onboard_matrix.DRESS"],["TRANSFORMERS","onboard_matrix.TRANSFORMERS"],["SCISSORS","onboard_matrix.SCISSORS"],["EXIT","onboard_matrix.EXIT"],["TREE","onboard_matrix.TREE"],["PACMAN","onboard_matrix.PACMAN"],["TARGET","onboard_matrix.TARGET"],["TSHIRT","onboard_matrix.TSHIRT"],["ROLLERSKATE","onboard_matrix.ROLLERSKATE"],["DUCK","onboard_matrix.DUCK"],["HOUSE","onboard_matrix.HOUSE"],["TORTOISE","onboard_matrix.TORTOISE"],["BUTTERFLY","onboard_matrix.BUTTERFLY"],["STICKFIGURE","onboard_matrix.STICKFIGURE"],["GHOST","onboard_matrix.GHOST"],["PITCHFORK","onboard_matrix.PITCHFORK"],["MUSIC_QUAVERS","onboard_matrix.MUSIC_QUAVERS"],["MUSIC_QUAVER","onboard_matrix.MUSIC_QUAVER"],["MUSIC_CROTCHET","onboard_matrix.MUSIC_CROTCHET"],["COW","onboard_matrix.COW"],["RABBIT","onboard_matrix.RABBIT"],["SQUARE_SMALL","onboard_matrix.SQUARE_SMALL"],["SQUARE","onboard_matrix.SQUARE"],["DIAMOND_SMALL","onboard_matrix.DIAMOND_SMALL"],["DIAMOND","onboard_matrix.DIAMOND"],["CHESSBOARD","onboard_matrix.CHESSBOARD"],["TRIANGLE_LEFT","onboard_matrix.TRIANGLE_LEFT"],["TRIANGLE","onboard_matrix.TRIANGLE"],["SNAKE","onboard_matrix.SNAKE"],["UMBRELLA","onboard_matrix.UMBRELLA"],["SKULL","onboard_matrix.SKULL"],["GIRAFFE","onboard_matrix.GIRAFFE"],["SWORD","onboard_matrix.SWORD"]],builtinimg_extern:[["HEART","matrix32x12.Matrix.HEART"],["HEART_SMALL","matrix32x12.Matrix.HEART_SMALL"],["HAPPY","matrix32x12.Matrix.HAPPY"],["SAD","matrix32x12.Matrix.SAD"],["SMILE","matrix32x12.Matrix.SMILE"],["SILLY","matrix32x12.Matrix.SILLY"],["FABULOUS","matrix32x12.Matrix.FABULOUS"],["SURPRISED","matrix32x12.Matrix.SURPRISED"],["ASLEEP","matrix32x12.Matrix.ASLEEP"],["ANGRY","matrix32x12.Matrix.ANGRY"],["CONFUSED","matrix32x12.Matrix.CONFUSED"],["NO","matrix32x12.Matrix.NO"],["YES","matrix32x12.Matrix.YES"],["LEFT_ARROW","matrix32x12.Matrix.LEFT_ARROW"],["RIGHT_ARROW","matrix32x12.Matrix.RIGHT_ARROW"],["DRESS","matrix32x12.Matrix.DRESS"],["TRANSFORMERS","matrix32x12.Matrix.TRANSFORMERS"],["SCISSORS","matrix32x12.Matrix.SCISSORS"],["EXIT","matrix32x12.Matrix.EXIT"],["TREE","matrix32x12.Matrix.TREE"],["PACMAN","matrix32x12.Matrix.PACMAN"],["TARGET","matrix32x12.Matrix.TARGET"],["TSHIRT","matrix32x12.Matrix.TSHIRT"],["ROLLERSKATE","matrix32x12.Matrix.ROLLERSKATE"],["DUCK","matrix32x12.Matrix.DUCK"],["HOUSE","matrix32x12.Matrix.HOUSE"],["TORTOISE","matrix32x12.Matrix.TORTOISE"],["BUTTERFLY","matrix32x12.Matrix.BUTTERFLY"],["STICKFIGURE","matrix32x12.Matrix.STICKFIGURE"],["GHOST","matrix32x12.Matrix.GHOST"],["PITCHFORK","matrix32x12.Matrix.PITCHFORK"],["onboard_music_QUAVERS","matrix32x12.Matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","matrix32x12.Matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","matrix32x12.Matrix.onboard_music_CROTCHET"],["COW","matrix32x12.Matrix.COW"],["RABBIT","matrix32x12.Matrix.RABBIT"],["SQUARE_SMALL","matrix32x12.Matrix.SQUARE_SMALL"],["SQUARE","matrix32x12.Matrix.SQUARE"],["DIAMOND_SMALL","matrix32x12.Matrix.DIAMOND_SMALL"],["DIAMOND","matrix32x12.Matrix.DIAMOND"],["CHESSBOARD","matrix32x12.Matrix.CHESSBOARD"],["TRIANGLE_LEFT","matrix32x12.Matrix.TRIANGLE_LEFT"],["TRIANGLE","matrix32x12.Matrix.TRIANGLE"],["SNAKE","matrix32x12.Matrix.SNAKE"],["UMBRELLA","matrix32x12.Matrix.UMBRELLA"],["SKULL","matrix32x12.Matrix.SKULL"],["GIRAFFE","matrix32x12.Matrix.GIRAFFE"],["SWORD","matrix32x12.Matrix.SWORD"]],imglist:[["ALL_CLOCKS","onboard_matrix.ALL_CLOCKS"],["ALL_ARROWS","onboard_matrix.ALL_ARROWS"]],playlist:[["DADADADUM","onboard_music.DADADADUM"],["ENTERTAINER","onboard_music.ENTERTAINER"],["PRELUDE","onboard_music.PRELUDE"],["ODE","onboard_music.ODE"],["NYAN","onboard_music.NYAN"],["RINGTONE","onboard_music.RINGTONE"],["FUNK","onboard_music.FUNK"],["BLUES","onboard_music.BLUES"],["BIRTHDAY","onboard_music.BIRTHDAY"],["WEDDING","onboard_music.WEDDING"],["FUNERAL","onboard_music.FUNERAL"],["PUNCHLINE","onboard_music.PUNCHLINE"],["PYTHON","onboard_music.PYTHON"],["BADDY","onboard_music.BADDY"],["CHASE","onboard_music.CHASE"],["BA_DING","onboard_music.BA_DING"],["WAWAWAWAA","onboard_music.WAWAWAWAA"],["JUMP_UP","onboard_music.JUMP_UP"],["JUMP_DOWN","onboard_music.JUMP_DOWN"],["POWER_UP","onboard_music.POWER_UP"],["POWER_DOWN","onboard_music.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],tone_notes:[["NOTE_C3","131"],["NOTE_D3","147"],["NOTE_E3","165"],["NOTE_F3","175"],["NOTE_G3","196"],["NOTE_A3","220"],["NOTE_B3","247"],["NOTE_C4","262"],["NOTE_D4","294"],["NOTE_E4","330"],["NOTE_F4","349"],["NOTE_G4","392"],["NOTE_A4","440"],["NOTE_B4","494"],["NOTE_C5","523"],["NOTE_D5","587"],["NOTE_E5","659"],["NOTE_F5","698"],["NOTE_G5","784"],["NOTE_A5","880"],["NOTE_B5","988"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"],["3","3"]]},vg["ESP32 Generic"]={description:"MicroPython[ESP32 Generic]",digital_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"],["10","10"],["11","11"],["12","12"],["13","13"],["14","14"],["15","15"],["16","16"],["17","17"],["18","18"],["19","19"],["20","20"],["21","21"],["22","22"],["23","23"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["37","37"],["38","38"],["39","39"]],digital:[["pin0","pin0"],["pin2","pin2"],["pin4","pin4"],["pin5","pin5"],["pin6","pin6"],["pin7","pin7"],["pin8","pin8"],["pin9","pin9"],["pin10","pin10"],["pin11","pin11"],["pin12","pin12"],["pin13","pin13"],["pin14","pin14"],["pin15","pin15"],["pin16","pin16"],["pin17","pin17"],["pin18","pin18"],["pin19","pin19"],["pin20","pin20"],["pin21","pin21"],["pin22","pin22"],["pin23","pin23"],["pin25","pin25"],["pin26","pin26"],["pin27","pin27"],["pin32","pin32"],["pin33","pin33"],["pin34","pin34"],["pin35","pin35"],["pin36","pin36"],["pin37","pin37"],["pin38","pin38"],["pin39","pin39"]],input_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["7","7"],["8","8"],["12","12"],["13","13"],["14","14"],["15","15"],["19","19"],["20","20"],["21","21"],["22","22"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["37","37"],["38","38"],["39","39"]],output_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["7","7"],["8","8"],["12","12"],["13","13"],["14","14"],["15","15"],["19","19"],["20","20"],["21","21"],["22","22"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"]],pwm_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["12","12"],["13","13"],["14","14"],["15","15"],["16","16"],["17","17"],["18","18"],["19","19"],["20","20"],["21","21"],["22","22"],["23","23"],["25","25"],["26","26"],["27","27"],["32","32"]],pwm:[["pwm0","pwm0"],["pwm2","pwm2"],["pwm4","pwm4"],["pwm5","pwm5"],["pwm12","pwm12"],["pwm13","pwm13"],["pwm14","pwm14"],["pwm15","pwm15"],["pwm16","pwm16"],["pwm17","pwm17"],["pwm18","pwm18"],["pwm19","pwm19"],["pwm20","pwm20"],["pwm21","pwm21"],["pwm22","pwm22"],["pwm23","pwm23"],["pwm25","pwm25"],["pwm26","pwm26"],["pwm27","pwm27"],["pwm32","pwm32"]],analog_pin:[["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["37","37"],["38","38"],["39","39"]],analog:[["adc32","adc32"],["adc33","adc33"],["adc34","adc34"],["adc35","adc35"],["adc36","adc36"],["adc37","adc37"],["adc38","adc38"],["adc39","adc39"]],espnow_channel:p_.Profile.generate(["1-13"]),haskylens_model:p_.Profile.generate(["0-4"]),dac_pin:[["25","25"],["26","26"]],dac:[["dac25","dac25"],["dac26","dac26"]],touch:[["tc0","tc0"],["tc2","tc2"],["tc4","tc4"],["tc12","tc12"],["tc13","tc13"],["tc14","tc14"],["tc15","tc15"],["tc27","tc27"],["tc32","tc32"],["tc33","tc33"]],touch_pin:[["0","0"],["2","2"],["4","4"],["12","12"],["13","13"],["14","14"],["15","15"],["27","27"],["32","32"],["33","33"]],button:[["A","button_a"],["B","button_b"]],axis:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"]],exlcdh:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"],["10","10"],["11","11"],["12","12"],["13","13"],["14","14"],["15","15"]],exlcdv:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],brightness:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"]],tts_voice:p_.Profile.generate(["0-16"]),tts_builtin_music:p_.Profile.generate(["0-47"]),tts_bgmusic:p_.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["SILLY","onboard_matrix.SILLY"],["FABULOUS","onboard_matrix.FABULOUS"],["SURPRISED","onboard_matrix.SURPRISED"],["ASLEEP","onboard_matrix.ASLEEP"],["ANGRY","onboard_matrix.ANGRY"],["CONFUSED","onboard_matrix.CONFUSED"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"],["LEFT_ARROW","onboard_matrix.LEFT_ARROW"],["RIGHT_ARROW","onboard_matrix.RIGHT_ARROW"],["DRESS","onboard_matrix.DRESS"],["TRANSFORMERS","onboard_matrix.TRANSFORMERS"],["SCISSORS","onboard_matrix.SCISSORS"],["EXIT","onboard_matrix.EXIT"],["TREE","onboard_matrix.TREE"],["PACMAN","onboard_matrix.PACMAN"],["TARGET","onboard_matrix.TARGET"],["TSHIRT","onboard_matrix.TSHIRT"],["ROLLERSKATE","onboard_matrix.ROLLERSKATE"],["DUCK","onboard_matrix.DUCK"],["HOUSE","onboard_matrix.HOUSE"],["TORTOISE","onboard_matrix.TORTOISE"],["BUTTERFLY","onboard_matrix.BUTTERFLY"],["STICKFIGURE","onboard_matrix.STICKFIGURE"],["GHOST","onboard_matrix.GHOST"],["PITCHFORK","onboard_matrix.PITCHFORK"],["onboard_music_QUAVERS","onboard_matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","onboard_matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","onboard_matrix.onboard_music_CROTCHET"],["COW","onboard_matrix.COW"],["RABBIT","onboard_matrix.RABBIT"],["SQUARE_SMALL","onboard_matrix.SQUARE_SMALL"],["SQUARE","onboard_matrix.SQUARE"],["DIAMOND_SMALL","onboard_matrix.DIAMOND_SMALL"],["DIAMOND","onboard_matrix.DIAMOND"],["CHESSBOARD","onboard_matrix.CHESSBOARD"],["TRIANGLE_LEFT","onboard_matrix.TRIANGLE_LEFT"],["TRIANGLE","onboard_matrix.TRIANGLE"],["SNAKE","onboard_matrix.SNAKE"],["UMBRELLA","onboard_matrix.UMBRELLA"],["SKULL","onboard_matrix.SKULL"],["GIRAFFE","onboard_matrix.GIRAFFE"],["SWORD","onboard_matrix.SWORD"]],builtinimg_extern:[["HEART","matrix32x12.Matrix.HEART"],["HEART_SMALL","matrix32x12.Matrix.HEART_SMALL"],["HAPPY","matrix32x12.Matrix.HAPPY"],["SAD","matrix32x12.Matrix.SAD"],["SMILE","matrix32x12.Matrix.SMILE"],["SILLY","matrix32x12.Matrix.SILLY"],["FABULOUS","matrix32x12.Matrix.FABULOUS"],["SURPRISED","matrix32x12.Matrix.SURPRISED"],["ASLEEP","matrix32x12.Matrix.ASLEEP"],["ANGRY","matrix32x12.Matrix.ANGRY"],["CONFUSED","matrix32x12.Matrix.CONFUSED"],["NO","matrix32x12.Matrix.NO"],["YES","matrix32x12.Matrix.YES"],["LEFT_ARROW","matrix32x12.Matrix.LEFT_ARROW"],["RIGHT_ARROW","matrix32x12.Matrix.RIGHT_ARROW"],["DRESS","matrix32x12.Matrix.DRESS"],["TRANSFORMERS","matrix32x12.Matrix.TRANSFORMERS"],["SCISSORS","matrix32x12.Matrix.SCISSORS"],["EXIT","matrix32x12.Matrix.EXIT"],["TREE","matrix32x12.Matrix.TREE"],["PACMAN","matrix32x12.Matrix.PACMAN"],["TARGET","matrix32x12.Matrix.TARGET"],["TSHIRT","matrix32x12.Matrix.TSHIRT"],["ROLLERSKATE","matrix32x12.Matrix.ROLLERSKATE"],["DUCK","matrix32x12.Matrix.DUCK"],["HOUSE","matrix32x12.Matrix.HOUSE"],["TORTOISE","matrix32x12.Matrix.TORTOISE"],["BUTTERFLY","matrix32x12.Matrix.BUTTERFLY"],["STICKFIGURE","matrix32x12.Matrix.STICKFIGURE"],["GHOST","matrix32x12.Matrix.GHOST"],["PITCHFORK","matrix32x12.Matrix.PITCHFORK"],["onboard_music_QUAVERS","matrix32x12.Matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","matrix32x12.Matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","matrix32x12.Matrix.onboard_music_CROTCHET"],["COW","matrix32x12.Matrix.COW"],["RABBIT","matrix32x12.Matrix.RABBIT"],["SQUARE_SMALL","matrix32x12.Matrix.SQUARE_SMALL"],["SQUARE","matrix32x12.Matrix.SQUARE"],["DIAMOND_SMALL","matrix32x12.Matrix.DIAMOND_SMALL"],["DIAMOND","matrix32x12.Matrix.DIAMOND"],["CHESSBOARD","matrix32x12.Matrix.CHESSBOARD"],["TRIANGLE_LEFT","matrix32x12.Matrix.TRIANGLE_LEFT"],["TRIANGLE","matrix32x12.Matrix.TRIANGLE"],["SNAKE","matrix32x12.Matrix.SNAKE"],["UMBRELLA","matrix32x12.Matrix.UMBRELLA"],["SKULL","matrix32x12.Matrix.SKULL"],["GIRAFFE","matrix32x12.Matrix.GIRAFFE"],["SWORD","matrix32x12.Matrix.SWORD"]],imglist:[["ALL_CLOCKS","onboard_matrix.ALL_CLOCKS"],["ALL_ARROWS","onboard_matrix.ALL_ARROWS"]],playlist:[["DADADADUM","onboard_music.DADADADUM"],["ENTERTAINER","onboard_music.ENTERTAINER"],["PRELUDE","onboard_music.PRELUDE"],["ODE","onboard_music.ODE"],["NYAN","onboard_music.NYAN"],["RINGTONE","onboard_music.RINGTONE"],["FUNK","onboard_music.FUNK"],["BLUES","onboard_music.BLUES"],["BIRTHDAY","onboard_music.BIRTHDAY"],["WEDDING","onboard_music.WEDDING"],["FUNERAL","onboard_music.FUNERAL"],["PUNCHLINE","onboard_music.PUNCHLINE"],["PYTHON","onboard_music.PYTHON"],["BADDY","onboard_music.BADDY"],["CHASE","onboard_music.CHASE"],["BA_DING","onboard_music.BA_DING"],["WAWAWAWAA","onboard_music.WAWAWAWAA"],["JUMP_UP","onboard_music.JUMP_UP"],["JUMP_DOWN","onboard_music.JUMP_DOWN"],["POWER_UP","onboard_music.POWER_UP"],["POWER_DOWN","onboard_music.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],tone_notes:[["NOTE_C3","131"],["NOTE_D3","147"],["NOTE_E3","165"],["NOTE_F3","175"],["NOTE_G3","196"],["NOTE_A3","220"],["NOTE_B3","247"],["NOTE_C4","262"],["NOTE_D4","294"],["NOTE_E4","330"],["NOTE_F4","349"],["NOTE_G4","392"],["NOTE_A4","440"],["NOTE_B4","494"],["NOTE_C5","523"],["NOTE_D5","587"],["NOTE_E5","659"],["NOTE_F5","698"],["NOTE_G5","784"],["NOTE_A5","880"],["NOTE_B5","988"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"],["3","3"]]},vg.mPython={description:"MicroPython[ESP32 Generic]",digital_pin:[["p0","33"],["p1","32"],["p2","35"],["p5","0"],["p6","16"],["p7","17"],["p8","26"],["p9","25"],["p11","2"],["p13","18"],["p14","19"],["p15","21"],["p16","5"],["p19","22"],["p20","23"]],digital:[["pin0","pin33"],["pin1","pin32"],["pin2","pin35"],["pin5","pin0"],["pin6","pin16"],["pin7","pin17"],["pin8","pin26"],["pin9","pin25"],["pin11","pin2"],["pin13","pin18"],["pin14","pin19"],["pin15","pin21"],["pin16","pin5"],["pin19","pin22"],["pin20","pin23"]],input_pin:[["p0","33"],["p1","32"],["p2","35"],["p5","0"],["p6","16"],["p7","17"],["p8","26"],["p9","25"],["p11","2"],["p13","18"],["p14","19"],["p15","21"],["p16","5"],["p19","22"],["p20","23"]],output_pin:[["p0","33"],["p1","32"],["p5","0"],["p6","16"],["p7","17"],["p8","26"],["p9","25"],["p11","2"],["p13","18"],["p14","19"],["p15","21"],["p16","5"],["p19","22"],["p20","23"]],pwm_pin:[["p0","33"],["p1","32"],["p5","0"],["p6","16"],["p7","17"],["p8","26"],["p9","25"],["p11","2"],["p13","18"],["p14","19"],["p15","21"],["p16","5"],["p19","22"],["p20","23"]],pwm:[["pwm0","pwm33"],["pwm1","pwm32"],["pwm5","pwm0"],["pwm6","pwm16"],["pwm7","pwm17"],["pwm8","pwm26"],["pwm9","pwm25"],["pwm11","pwm2"],["pwm13","pwm18"],["pwm14","pwm19"],["pwm15","pwm21"],["pwm16","pwm5"],["pwm19","pwm22"],["pwm20","pwm23"]],espnow_channel:p_.Profile.generate(["1-13"]),haskylens_model:p_.Profile.generate(["0-4"]),analog_pin:[["p0","33"],["p1","32"],["p2","35"],["p3","34"],["p4","39"],["p10","36"]],analog:[["adc0","adc33"],["adc1","adc32"],["adc2","adc35"],["adc3","adc34"],["adc4","adc39"],["adc10","adc36"]],dac_pin:[["p8","26"],["p9","25"]],dac:[["dac8","dac26"],["dac9","dac25"]],touch_mpython:[["p","p"],["y","y"],["t","t"],["h","h"],["o","o"],["n","n"]],touch:[["tc0","tc33"],["tc1","tc32"],["tc5","tc0"],["tc11","tc2"],["tc23","tc27"],["tc24","tc14"],["tc25","tc12"],["tc26","tc13"],["tc27","tc15"],["tc28","tc4"]],touch_pin:[["p0","33"],["p1","32"],["p5","0"],["p11","2"],["p23","27"],["p24","14"],["p25","12"],["p26","13"],["p27","15"],["p28","4"]],button:[["A","button_a"],["B","button_b"]],axis:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"]],exlcdh:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"],["10","10"],["11","11"],["12","12"],["13","13"],["14","14"],["15","15"]],exlcdv:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],brightness:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"]],tts_voice:p_.Profile.generate(["0-16"]),tts_builtin_music:p_.Profile.generate(["0-47"]),tts_bgmusic:p_.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["SILLY","onboard_matrix.SILLY"],["FABULOUS","onboard_matrix.FABULOUS"],["SURPRISED","onboard_matrix.SURPRISED"],["ASLEEP","onboard_matrix.ASLEEP"],["ANGRY","onboard_matrix.ANGRY"],["CONFUSED","onboard_matrix.CONFUSED"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"],["LEFT_ARROW","onboard_matrix.LEFT_ARROW"],["RIGHT_ARROW","onboard_matrix.RIGHT_ARROW"],["DRESS","onboard_matrix.DRESS"],["TRANSFORMERS","onboard_matrix.TRANSFORMERS"],["SCISSORS","onboard_matrix.SCISSORS"],["EXIT","onboard_matrix.EXIT"],["TREE","onboard_matrix.TREE"],["PACMAN","onboard_matrix.PACMAN"],["TARGET","onboard_matrix.TARGET"],["TSHIRT","onboard_matrix.TSHIRT"],["ROLLERSKATE","onboard_matrix.ROLLERSKATE"],["DUCK","onboard_matrix.DUCK"],["HOUSE","onboard_matrix.HOUSE"],["TORTOISE","onboard_matrix.TORTOISE"],["BUTTERFLY","onboard_matrix.BUTTERFLY"],["STICKFIGURE","onboard_matrix.STICKFIGURE"],["GHOST","onboard_matrix.GHOST"],["PITCHFORK","onboard_matrix.PITCHFORK"],["onboard_music_QUAVERS","onboard_matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","onboard_matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","onboard_matrix.onboard_music_CROTCHET"],["COW","onboard_matrix.COW"],["RABBIT","onboard_matrix.RABBIT"],["SQUARE_SMALL","onboard_matrix.SQUARE_SMALL"],["SQUARE","onboard_matrix.SQUARE"],["DIAMOND_SMALL","onboard_matrix.DIAMOND_SMALL"],["DIAMOND","onboard_matrix.DIAMOND"],["CHESSBOARD","onboard_matrix.CHESSBOARD"],["TRIANGLE_LEFT","onboard_matrix.TRIANGLE_LEFT"],["TRIANGLE","onboard_matrix.TRIANGLE"],["SNAKE","onboard_matrix.SNAKE"],["UMBRELLA","onboard_matrix.UMBRELLA"],["SKULL","onboard_matrix.SKULL"],["GIRAFFE","onboard_matrix.GIRAFFE"],["SWORD","onboard_matrix.SWORD"]],builtinimg_extern:[["HEART","matrix32x12.Matrix.HEART"],["HEART_SMALL","matrix32x12.Matrix.HEART_SMALL"],["HAPPY","matrix32x12.Matrix.HAPPY"],["SAD","matrix32x12.Matrix.SAD"],["SMILE","matrix32x12.Matrix.SMILE"],["SILLY","matrix32x12.Matrix.SILLY"],["FABULOUS","matrix32x12.Matrix.FABULOUS"],["SURPRISED","matrix32x12.Matrix.SURPRISED"],["ASLEEP","matrix32x12.Matrix.ASLEEP"],["ANGRY","matrix32x12.Matrix.ANGRY"],["CONFUSED","matrix32x12.Matrix.CONFUSED"],["NO","matrix32x12.Matrix.NO"],["YES","matrix32x12.Matrix.YES"],["LEFT_ARROW","matrix32x12.Matrix.LEFT_ARROW"],["RIGHT_ARROW","matrix32x12.Matrix.RIGHT_ARROW"],["DRESS","matrix32x12.Matrix.DRESS"],["TRANSFORMERS","matrix32x12.Matrix.TRANSFORMERS"],["SCISSORS","matrix32x12.Matrix.SCISSORS"],["EXIT","matrix32x12.Matrix.EXIT"],["TREE","matrix32x12.Matrix.TREE"],["PACMAN","matrix32x12.Matrix.PACMAN"],["TARGET","matrix32x12.Matrix.TARGET"],["TSHIRT","matrix32x12.Matrix.TSHIRT"],["ROLLERSKATE","matrix32x12.Matrix.ROLLERSKATE"],["DUCK","matrix32x12.Matrix.DUCK"],["HOUSE","matrix32x12.Matrix.HOUSE"],["TORTOISE","matrix32x12.Matrix.TORTOISE"],["BUTTERFLY","matrix32x12.Matrix.BUTTERFLY"],["STICKFIGURE","matrix32x12.Matrix.STICKFIGURE"],["GHOST","matrix32x12.Matrix.GHOST"],["PITCHFORK","matrix32x12.Matrix.PITCHFORK"],["onboard_music_QUAVERS","matrix32x12.Matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","matrix32x12.Matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","matrix32x12.Matrix.onboard_music_CROTCHET"],["COW","matrix32x12.Matrix.COW"],["RABBIT","matrix32x12.Matrix.RABBIT"],["SQUARE_SMALL","matrix32x12.Matrix.SQUARE_SMALL"],["SQUARE","matrix32x12.Matrix.SQUARE"],["DIAMOND_SMALL","matrix32x12.Matrix.DIAMOND_SMALL"],["DIAMOND","matrix32x12.Matrix.DIAMOND"],["CHESSBOARD","matrix32x12.Matrix.CHESSBOARD"],["TRIANGLE_LEFT","matrix32x12.Matrix.TRIANGLE_LEFT"],["TRIANGLE","matrix32x12.Matrix.TRIANGLE"],["SNAKE","matrix32x12.Matrix.SNAKE"],["UMBRELLA","matrix32x12.Matrix.UMBRELLA"],["SKULL","matrix32x12.Matrix.SKULL"],["GIRAFFE","matrix32x12.Matrix.GIRAFFE"],["SWORD","matrix32x12.Matrix.SWORD"]],imglist:[["ALL_CLOCKS","onboard_matrix.ALL_CLOCKS"],["ALL_ARROWS","onboard_matrix.ALL_ARROWS"]],playlist:[["DADADADUM","onboard_music.DADADADUM"],["ENTERTAINER","onboard_music.ENTERTAINER"],["PRELUDE","onboard_music.PRELUDE"],["ODE","onboard_music.ODE"],["NYAN","onboard_music.NYAN"],["RINGTONE","onboard_music.RINGTONE"],["FUNK","onboard_music.FUNK"],["BLUES","onboard_music.BLUES"],["BIRTHDAY","onboard_music.BIRTHDAY"],["WEDDING","onboard_music.WEDDING"],["FUNERAL","onboard_music.FUNERAL"],["PUNCHLINE","onboard_music.PUNCHLINE"],["PYTHON","onboard_music.PYTHON"],["BADDY","onboard_music.BADDY"],["CHASE","onboard_music.CHASE"],["BA_DING","onboard_music.BA_DING"],["WAWAWAWAA","onboard_music.WAWAWAWAA"],["JUMP_UP","onboard_music.JUMP_UP"],["JUMP_DOWN","onboard_music.JUMP_DOWN"],["POWER_UP","onboard_music.POWER_UP"],["POWER_DOWN","onboard_music.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],tone_notes:[["NOTE_C3","131"],["NOTE_D3","147"],["NOTE_E3","165"],["NOTE_F3","175"],["NOTE_G3","196"],["NOTE_A3","220"],["NOTE_B3","247"],["NOTE_C4","262"],["NOTE_D4","294"],["NOTE_E4","330"],["NOTE_F4","349"],["NOTE_G4","392"],["NOTE_A4","440"],["NOTE_B4","494"],["NOTE_C5","523"],["NOTE_D5","587"],["NOTE_E5","659"],["NOTE_F5","698"],["NOTE_G5","784"],["NOTE_A5","880"],["NOTE_B5","988"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"],["3","3"]]};const Xg=vg,Vg=230,kg={init:function(){this.setColour(Vg),this.appendDummyInput("").appendField(new a_.FieldDropdown(p_.Profile.default.digital),"PIN"),this.setOutput(!0)}},wg={init:function(){this.setColour(Vg),this.appendDummyInput("").appendField(new a_.FieldDropdown(p_.Profile.default.digital_pin),"PIN"),this.setOutput(!0,Number)}},Wg={init:function(){this.setColour(Vg),this.appendDummyInput("").appendField(new a_.FieldDropdown(p_.Profile.default.input_pin),"PIN"),this.setOutput(!0,Number)}},Kg={init:function(){this.setColour(Vg),this.appendDummyInput("").appendField(new a_.FieldDropdown(p_.Profile.default.output_pin),"PIN"),this.setOutput(!0,Number)}},zg={init:function(){this.setColour(Vg),this.appendDummyInput("").appendField(new a_.FieldDropdown(p_.Profile.default.touch_mpython),"PIN"),this.setOutput(!0,Number)}},Zg={init:function(){this.setColour(Vg),this.appendDummyInput("").appendField(new a_.FieldDropdown(p_.Profile.default.espnow_channel),"PIN"),this.setOutput(!0,Number)}},Qg={init:function(){this.setColour(Vg),this.appendDummyInput("").appendField(new a_.FieldDropdown(p_.Profile.default.haskylens_model),"PIN"),this.setOutput(!0,Number)}},Jg={init:function(){this.setColour(Vg),this.appendDummyInput("").appendField(new a_.FieldDropdown(p_.Profile.default.pwm_input),"PIN"),this.setOutput(!0)}},qg={init:function(){this.setColour(Vg),this.appendDummyInput("").appendField(new a_.FieldDropdown(p_.Profile.default.analog_input),"PIN"),this.setOutput(!0)}},jg={init:function(){this.setColour(Vg),this.appendDummyInput("").appendField(new a_.FieldDropdown(p_.Profile.default.pwm_output),"PIN"),this.setOutput(!0)}},$g={init:function(){this.setColour(Vg),this.appendDummyInput("").appendField(new a_.FieldDropdown(p_.Profile.default.analog_output),"PIN"),this.setOutput(!0)}},_G={init:function(){this.setColour(Vg),this.appendDummyInput("").appendField(new a_.FieldDropdown(p_.Profile.default.i2c_A_pin),"PIN"),this.setOutput(!0,Number)}},tG={init:function(){this.setColour(Vg),this.appendDummyInput("").appendField(new a_.FieldDropdown(p_.Profile.default.i2c_B_pin),"PIN"),this.setOutput(!0,Number)}},eG={init:function(){this.setColour(Vg),this.appendDummyInput("").appendField(new a_.FieldDropdown(p_.Profile.default.spi_A_pin),"PIN"),this.setOutput(!0,Number)}},iG={init:function(){this.setColour(Vg),this.appendDummyInput("").appendField(new a_.FieldDropdown(p_.Profile.default.spi_B_pin),"PIN"),this.setOutput(!0,Number)}},TG={init:function(){this.setColour(Vg),this.appendDummyInput("").appendField(new a_.FieldDropdown(p_.Profile.default.spi_C_pin),"PIN"),this.setOutput(!0,Number)}},EG={init:function(){this.setColour(Vg),this.appendDummyInput("").appendField(new a_.FieldDropdown(p_.Profile.default.spi_D_pin),"PIN"),this.setOutput(!0,Number)}},nG={init:function(){this.setColour(Vg),this.appendDummyInput("").appendField(new a_.FieldDropdown(p_.Profile.default.analog),"PIN"),this.setOutput(!0)}},oG={init:function(){this.setColour(Vg),this.appendDummyInput("").appendField(new a_.FieldDropdown(p_.Profile.default.analog_pin),"PIN"),this.setOutput(!0,Number)}},sG={init:function(){this.setColour(Vg),this.appendDummyInput("").appendField(new a_.FieldDropdown(p_.Profile.default.dac),"PIN"),this.setOutput(!0)}},OG={init:function(){this.setColour(Vg),this.appendDummyInput("").appendField(new a_.FieldDropdown(p_.Profile.default.dac_pin),"PIN"),this.setOutput(!0,Number)}},IG={init:function(){this.setColour(Vg),this.appendDummyInput("").appendField(new a_.FieldDropdown(p_.Profile.default.button),"PIN"),this.setOutput(!0,Number)}},aG={init:function(){this.setColour(Vg),this.appendDummyInput("").appendField(new a_.FieldDropdown(p_.Profile.default.pwm),"PIN"),this.setOutput(!0)}},pG={init:function(){this.setColour(Vg),this.appendDummyInput("").appendField(new a_.FieldDropdown(p_.Profile.default.pwm_pin),"PIN"),this.setOutput(!0,Number)}},MG={init:function(){this.setColour(Vg),this.appendDummyInput("").appendField(new a_.FieldDropdown(p_.Profile.default.touch_pin),"PIN"),this.setOutput(!0,Number)}},LG={init:function(){this.setColour(Vg),this.appendDummyInput("").appendField(new a_.FieldDropdown(p_.Profile.default.touch),"PIN"),this.setOutput(!0)}},RG={init:function(){this.setColour(Vg),this.appendDummyInput("").appendField(new a_.FieldDropdown(p_.Profile.default.serial_pin),"PIN"),this.setOutput(!0,Number)}},rG={init:function(){this.setColour(Vg),this.appendDummyInput("").appendField(new a_.FieldDropdown(p_.Profile.default.builtinimg),"PIN"),this.setOutput(!0,"esp32_image")}},SG={init:function(){this.setColour(Vg),this.appendDummyInput("").appendField(new a_.FieldDropdown(p_.Profile.default.builtinimg_extern),"PIN"),this.setOutput(!0,"esp32_image")}},lG={init:function(){this.setColour(Vg),this.appendDummyInput("").appendField(new a_.FieldDropdown(p_.Profile.default.imglist),"PIN"),this.setOutput(!0)}},AG={init:function(){this.setColour(Vg),this.appendDummyInput("").appendField(new a_.FieldDropdown(p_.Profile.default.playlist),"PIN"),this.setOutput(!0)}},PG={init:function(){this.setColour(Vg),this.appendDummyInput("").appendField(new a_.FieldDropdown(p_.Profile.default.playlist_extern),"PIN"),this.setOutput(!0)}},NG={init:function(){this.setColour(Vg),this.appendDummyInput("").appendField(new a_.FieldDropdown(p_.Profile.default.exlcdh),"PIN"),this.setOutput(!0,Number)}},dG={init:function(){this.setColour(Vg),this.appendDummyInput("").appendField(new a_.FieldDropdown(p_.Profile.default.exlcdv),"PIN"),this.setOutput(!0,Number)}},hG={init:function(){this.setColour(Vg),this.appendDummyInput("").appendField(new a_.FieldDropdown(p_.Profile.default.axis),"PIN"),this.setOutput(!0,Number)}},uG={init:function(){this.setColour(Vg),this.appendDummyInput("").appendField(new a_.FieldDropdown(p_.Profile.default.brightness),"PIN"),this.setOutput(!0,Number)}},mG={init:function(){this.setColour(Vg),this.appendDummyInput("").appendField(new a_.FieldDropdown(p_.Profile.default.tts_voice),"PIN"),this.setOutput(!0,Number)}},CG={init:function(){this.setColour(Vg),this.appendDummyInput("").appendField(new a_.FieldDropdown(p_.Profile.default.tts_builtin_music),"PIN"),this.setOutput(!0,Number)}},cG={init:function(){this.setColour(Vg),this.appendDummyInput("").appendField(new a_.FieldDropdown(p_.Profile.default.tts_bgmusic),"PIN"),this.setOutput(!0,Number)}},HG={init:function(){this.setColour(Vg),this.appendDummyInput("").appendField(new a_.FieldDropdown(p_.Profile.default.tone_notes),"PIN"),this.setOutput(!0,Number)}},DG={init:function(){this.setColour(Vg),this.appendDummyInput("").appendField(new a_.FieldDropdown(p_.Profile.default.radio_power),"PIN"),this.setOutput(!0,Number)}},YG={init:function(){this.setColour(Vg),this.appendDummyInput("").appendField(new a_.FieldDropdown(p_.Profile.default.radio_datarate),"PIN"),this.setOutput(!0,Number)}},UG={init:function(){this.setColour(Vg),this.appendDummyInput("").appendField(new a_.FieldDropdown(p_.Profile.default.one_more),"PIN"),this.setOutput(!0)}},BG={init:function(){this.setColour(Vg),this.appendDummyInput("").appendField(new a_.FieldDropdown(p_.Profile.default.digital_dot),"PIN"),this.setOutput(!0,Number)}},gG=function(_,t){return[this.getFieldValue("PIN"),t.ORDER_ATOMIC]},GG=gG,FG=gG,yG=gG,fG=gG,bG=gG,xG=gG,vG=gG,XG=gG,VG=gG,kG=gG,wG=gG,WG=gG,KG=gG,zG=gG,ZG=gG,QG=gG,JG=gG,qG=gG,jG=gG,$G=gG,_F=gG,tF=gG,eF=gG,iF=gG,TF=gG,EF=gG,nF=gG,oF=gG,sF=gG,OF=gG,IF=gG,aF=gG,pF=gG,MF=gG,LF={TEXT_IS_NUMBER_HELPURL:"",TEXT_IS_NUMBER_TOOLTIP:"",TEXT_IS_NUMBER_MESSAGE0:"%1 %2",TEXT_IS_DIGIT:"是数字",TEXT_IS_ALPHA:"是字母",TEXT_IS_ALNUM:"是数字和字母的组合",TEXT_LIST_START:"初始化列表 [",TEXT_LIST_END:"]",TEXT_TUPLE_START:"初始化元组 (",TEXT_TUPLE_END:")",TEXT_DICT_START:"初始化字典 {",TEXT_DICT_END:"}",TEXT_SET_START:"初始化集合 {",TEXT_SET_END:"}",TEXT_SET_HELPURL:"https://mpythonx.readthedocs.io/zh_CN/latest/index.html",ADD_COMMENT:"添加注释",CHANGE_VALUE_TITLE:"更改值:",CLEAN_UP:"整理块",COLLAPSE_ALL:"折叠块",COLLAPSE_BLOCK:"折叠块",COLOUR_BLEND_COLOUR1:"颜色1",COLOUR_BLEND_COLOUR2:"颜色2",COLOUR_BLEND_HELPURL:"http://meyerweb.com/eric/tools/color-blend/",COLOUR_BLEND_RATIO:"比例",COLOUR_BLEND_TITLE:"混合",COLOUR_BLEND_TOOLTIP:"用一个给定的比率(0.0-1.0)混合两种颜色。",COLOUR_PICKER_HELPURL:"https://zh.wikipedia.org/wiki/颜色",COLOUR_PICKER_TOOLTIP:"从调色板中选择一种颜色。",COLOUR_RANDOM_HELPURL:"http://randomcolour.com",COLOUR_RANDOM_TITLE:"随机颜色",COLOUR_RANDOM_TOOLTIP:"随机选择一种颜色。",COLOUR_RGB_BLUE:"蓝色",COLOUR_RGB_GREEN:"绿色",COLOUR_RGB_HELPURL:"http://www.december.com/html/spec/colorper.html",COLOUR_RGB_RED:"红色",COLOUR_RGB_TITLE:"颜色",COLOUR_RGB_TOOLTIP:"通过指定红色、绿色和蓝色的量创建一种颜色。所有的值必须介于0和100之间。",CONTROLS_FLOW_STATEMENTS_HELPURL:"https://github.com/google/blockly/wiki/Loops#loop-termination-blocks",CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK:"中断循环",CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE:"继续下一次循环",CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK:"中断包含它的循环。",CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE:"跳过这个循环的剩余部分,并继续下一次迭代。",CONTROLS_FLOW_STATEMENTS_WARNING:"警告:此块仅可用于在一个循环内。",CONTROLS_FOREACH_HELPURL:"https://github.com/google/blockly/wiki/Loops#for-each",CONTROLS_FOREACH_TITLE:"为每个项目 %1 在列表中 %2",CONTROLS_FOREACH_TOOLTIP:"遍历每个列表中的项目,将变量“%1”设定到该项中,然后执行某些语句。",CONTROLS_FOR_HELPURL:"https://github.com/google/blockly/wiki/Loops#count-with",CONTROLS_FOR_TITLE:"使用 %1 从范围 %2 到 %3 每隔 %4",CONTROLS_FOR_TOOLTIP:"从起始数到结尾数中取出变量“%1”的值,按指定的时间间隔,执行指定的块。",CONTROLS_IF_ELSEIF_TOOLTIP:"在if语句块中增加一个条件。",CONTROLS_IF_ELSE_TOOLTIP:"添加一个最终的,包括所有情况的节到if块中。",CONTROLS_IF_HELPURL:"https://github.com/google/blockly/wiki/IfElse",TRY_EXCEPT_HELPURL:"https://mpythonx.readthedocs.io/zh_CN/latest/index.html",CONTROLS_IF_IF_TOOLTIP:"增加、删除或重新排列各节来重新配置“if”块。",CONTROLS_IF_MSG_ELSE:"否则",CONTROLS_IF_MSG_ELSEIF:"否则如果",TRY_EXCEPT_FINALLY:"finally",TRY_EXCEPT_FINALLY_TOOLTIP:"",TRY_EXCEPT_EXCEPT:"except",TRY_EXCEPT_EXCEPT_TOOLTIP:"",TRY_EXCEPT_TRY:"try",TRY_EXCEPT_TRY_TOOLTIP:"",CONTROLS_IF_MSG_IF:"如果",CONTROLS_IF_TOOLTIP_1:"如果值为真,执行一些语句。",CONTROLS_IF_TOOLTIP_2:"如果值为真,则执行第一块语句。否则,则执行第二块语句。",CONTROLS_IF_TOOLTIP_3:"如果第一个值为真,则执行第一块的语句。否则,如果第二个值为真,则执行第二块的语句。",CONTROLS_IF_TOOLTIP_4:"如果第一个值为真,则执行第一块对语句。否则,如果第二个值为真,则执行语句的第二块。如果没有值为真,则执行最后一块的语句。",CONTROLS_REPEAT_FOREVER:"一直重复",CONTROLS_REPEAT_FOREVER_TOOLTIP:"一直执行一些语句。",CONTROLS_REPEAT_HELPURL:"https://zh.wikipedia.org/wiki/For循环",CONTROLS_REPEAT_INPUT_DO:"",CONTROLS_REPEAT_TITLE:"重复 %1 次",CONTROLS_REPEAT_TOOLTIP:"多次执行一些语句。",CONTROLS_WHILEUNTIL_HELPURL:"https://github.com/google/blockly/wiki/Loops#repeat",CONTROLS_WHILEUNTIL_OPERATOR_UNTIL:"重复直到",CONTROLS_WHILEUNTIL_OPERATOR_WHILE:"重复当",CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL:"只要值为假,执行一些语句。",CONTROLS_WHILEUNTIL_TOOLTIP_WHILE:"只要值为真,执行一些语句。",DELETE_ALL_BLOCKS:"删除所有%1块吗?",DELETE_BLOCK:"删除块",DELETE_VARIABLE:"删除“%1”变量",DELETE_VARIABLE_CONFIRMATION:"删除“%2”变量的%1种用途么?",DELETE_X_BLOCKS:"删除块",DISABLE_BLOCK:"禁用块",DUPLICATE_BLOCK:"复制",ENABLE_BLOCK:"启用块",EXPAND_ALL:"展开块",EXPAND_BLOCK:"展开块",EXTERNAL_INPUTS:"多行输入",HELP:"帮助",INLINE_INPUTS:"单行输入",LISTS_CREATE_EMPTY_HELPURL:"https://github.com/google/blockly/wiki/Lists#create-empty-list",LISTS_CREATE_EMPTY_TITLE:"创建空列表",TUPLE_CREATE_EMPTY_TITLE:"创建空元组",DICT_CREATE_EMPTY_TITLE:"创建空字典",SET_CREATE_EMPTY_TITLE:"创建空集合",LISTS_CREATE_EMPTY_TOOLTIP:"返回一个列表,长度为 0,不包含任何数据记录",LISTS_CREATE_WITH_CONTAINER_TITLE_ADD:"列表",TUPLE_CREATE_WITH_CONTAINER_TITLE_ADD:"元组",DICT_CREATE_WITH_CONTAINER_TITLE_ADD:"字典",SET_CREATE_WITH_CONTAINER_TITLE_ADD:"集合",LISTS_CREATE_WITH_CONTAINER_TOOLTIP:"增加、删除或重新排列各部分以此重新配置这个列表块。",TUPLE_CREATE_WITH_CONTAINER_TOOLTIP:"增加、删除或重新排列各部分以此重新配置这个元组块。",DICT_CREATE_WITH_CONTAINER_TOOLTIP:"增加、删除或重新排列各部分以此重新配置这个字典块。",SET_CREATE_WITH_CONTAINER_TOOLTIP:"增加、删除或重新排列各部分以此重新配置这个集合块。",LISTS_CREATE_WITH_HELPURL:"https://github.com/google/blockly/wiki/Lists#create-list-with",LISTS_CREATE_WITH_INPUT_WITH:"初始化列表",TUPLE_CREATE_WITH_INPUT_WITH:"初始化元组",DICT_CREATE_WITH_INPUT_WITH:"初始化字典",SET_CREATE_WITH_INPUT_WITH:"初始化集合",LISTS_CREATE_WITH_ITEM_TOOLTIP:"将一个项添加到列表中。",TUPLE_CREATE_WITH_ITEM_TOOLTIP:"将一个项添加到元组中。",DICT_CREATE_WITH_ITEM_TOOLTIP:"将一个项添加到字典中。",SET_CREATE_WITH_ITEM_TOOLTIP:"将一个项添加到集合中。",LISTS_CREATE_WITH_TOOLTIP:"建立一个具有任意数量项目的列表。",LISTS_GET_INDEX_FIRST:"第一",LISTS_GET_INDEX_FROM_END:"倒数第",LISTS_GET_INDEX_FROM_START:"第",LISTS_GET_INDEX_GET:"获得",LISTS_GET_INDEX_GET_REMOVE:"取出并移除",LISTS_GET_INDEX_LAST:"最后",LISTS_GET_INDEX_RANDOM:"随机",LISTS_GET_INDEX_REMOVE:"移除",LISTS_POP_HELPURL:"",LISTS_POP_TOOLTIP:"",LISTS_POP_MESSAGE0:"在列表 %1 中移除 %2 项",LISTS_GET_INDEX_TAIL:"",LISTS_GET_INDEX_TOOLTIP_GET_FIRST:"返回列表中的第一个项目。",LISTS_GET_INDEX_TOOLTIP_GET_FROM:"返回在列表中的指定位置的项。",LISTS_GET_INDEX_TOOLTIP_GET_LAST:"返回列表中的最后一项。",LISTS_GET_INDEX_TOOLTIP_GET_RANDOM:"随机返回列表中的一个项目。",LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST:"移除并返回列表中的第一个项目。",LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM:"移除并返回列表中的指定位置的项。",LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST:"移除并返回列表中的最后一个项目。",LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM:"移除并返回列表中的一个随机项目中。",LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST:"移除列表中的第一项",LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM:"移除在列表中的指定位置的项。",LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST:"移除列表中的最后一项",LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM:"删除列表中的一个随机的项。",LISTS_GET_SUBLIST_END_FROM_END:"到倒数第#",LISTS_GET_SUBLIST_END_FROM_START:"到#",LISTS_GET_SUBLIST_END_LAST:"到最后",LISTS_GET_SUBLIST_HELPURL:"https://github.com/google/blockly/wiki/Lists#getting-a-sublist",LISTS_GET_SUBLIST_START_FIRST:"从头获得子列表",LISTS_GET_SUBLIST_START_FROM_END:"从倒数#取得子列表",LISTS_GET_SUBLIST_START_FROM_START:"从#取得子列表",LISTS_GET_SUBLIST_TAIL:"",LISTS_GET_SUBLIST_TOOLTIP:"复制列表中指定的部分。",LISTS_INDEX_FROM_END_TOOLTIP:"%1是最后一项。",LISTS_INDEX_FROM_START_TOOLTIP:"%1是第一个项目。",LISTS_INDEX_OF_FIRST:"找出第一个项出现",LISTS_INDEX_OF_HELPURL:"https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list",LISTS_INDEX_OF_LAST:"找出最后一个项出现",LISTS_INDEX_OF_TOOLTIP:"返回在列表中的第一/最后一个匹配项的索引值。如果找不到项目则返回0",LISTS_INLIST:"在列表中",LISTS_ISEMPTY_HELPURL:"https://github.com/google/blockly/wiki/Lists#is-empty",LISTS_ISEMPTY_TITLE:"%1是空的",LISTS_ISEMPTY_TOOLTIP:"如果改列表为空,则返回真。",LISTS_LENGTH_HELPURL:"https://github.com/google/blockly/wiki/Lists#length-of",LISTS_LENGTH_TITLE:"%1的长度",LISTS_LENGTH_TOOLTIP:"返回列表的长度。",LISTS_REPEAT_HELPURL:"https://github.com/google/blockly/wiki/Lists#create-list-with",LISTS_REPEAT_TITLE:"建立列表 项 %1 重复 %2 次",LISTS_REPEAT_TOOLTIP:"建立包含指定重复次数的值的列表。",LISTS_SET_INDEX_HELPURL:"https://github.com/google/blockly/wiki/Lists#in-list--set",LISTS_SET_INDEX_INPUT_TO:"为",LISTS_SET_INDEX_INSERT:"插入在",LISTS_SET_INDEX_SET:"设置",LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST:"在列表的起始处添加该项。",LISTS_SET_INDEX_TOOLTIP_INSERT_FROM:"插入在列表中指定位置的项。",LISTS_SET_INDEX_TOOLTIP_INSERT_LAST:"将该项追加到列表的末尾。",LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM:"在列表中随机插入项。",LISTS_SET_INDEX_TOOLTIP_SET_FIRST:"设置列表中的第一个项目。",LISTS_SET_INDEX_TOOLTIP_SET_FROM:"设置在列表中指定位置的项。",LISTS_SET_INDEX_TOOLTIP_SET_LAST:"设置列表中的最后一项。",LISTS_SET_INDEX_TOOLTIP_SET_RANDOM:"设置列表中一个随机的项目。",LISTS_SORT_HELPURL:"https://github.com/google/blockly/wiki/Lists#sorting-a-list",LISTS_SORT_ORDER_ASCENDING:"升序",LISTS_SORT_ORDER_DESCENDING:"降序",LISTS_SORT_TITLE:"排序%1 %2 %3",LISTS_SORT_TOOLTIP:"排序一个列表的拷贝。",LISTS_SORT_TYPE_IGNORECASE:"按字母排序,忽略大小写",LISTS_SORT_TYPE_NUMERIC:"按数字排序",LISTS_SORT_TYPE_TEXT:"按字母排序",LISTS_SPLIT_HELPURL:"https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists",LISTS_SPLIT_LIST_FROM_TEXT:"从文本制作列表",LISTS_SPLIT_TEXT_FROM_LIST:"从列表组合文本",LISTS_SPLIT_TOOLTIP_JOIN:"加入文本列表至一个文本,由分隔符分隔。",LISTS_SPLIT_TOOLTIP_SPLIT:"拆分文本到文本列表,按每个分隔符拆分。",LISTS_SPLIT_WITH_DELIMITER:"用分隔符",LOGIC_BOOLEAN_FALSE:"假",LOGIC_BOOLEAN_HELPURL:"https://github.com/google/blockly/wiki/Logic#values",LOGIC_BOOLEAN_TOOLTIP:"返回真或假。",LOGIC_BOOLEAN_TRUE:"真",LOGIC_COMPARE_HELPURL:"https://zh.wikipedia.org/wiki/不等",LOGIC_COMPARE_TOOLTIP_EQ:"如果两个输入结果相等,则返回真。",LOGIC_COMPARE_TOOLTIP_GT:"如果第一个输入结果比第二个大,则返回真。",LOGIC_COMPARE_TOOLTIP_GTE:"如果第一个输入结果大于或等于第二个输入结果,则返回真。",LOGIC_COMPARE_TOOLTIP_LT:"如果第一个输入结果比第二个小,则返回真。",LOGIC_COMPARE_TOOLTIP_LTE:"如果第一个输入结果小于或等于第二个输入结果,则返回真。",LOGIC_COMPARE_TOOLTIP_NEQ:"如果两个输入结果不相等,则返回真。",LOGIC_NEGATE_HELPURL:"https://github.com/google/blockly/wiki/Logic#not",LOGIC_NEGATE_TITLE:"非%1",LOGIC_NEGATE_TOOLTIP:"如果输入结果为假,则返回真;如果输入结果为真,则返回假。",LOGIC_NULL:"空",LOGIC_NULL_HELPURL:"https://en.wikipedia.org/wiki/Nullable_type",LOGIC_NULL_TOOLTIP:"返回空值。",LOGIC_OPERATION_AND:"和",LOGIC_OPERATION_HELPURL:"https://github.com/google/blockly/wiki/Logic#logical-operations",LOGIC_OPERATION_OR:"或",LOGIC_OPERATION_TOOLTIP_AND:"如果两个输入结果都为真,则返回真。",LOGIC_OPERATION_TOOLTIP_OR:"如果至少有一个输入结果为真,则返回真。",LOGIC_TERNARY_CONDITION:"测试",LOGIC_TERNARY_HELPURL:"https://zh.wikipedia.org/wiki/条件运算符",LOGIC_TERNARY_IF_FALSE:"如果为假",LOGIC_TERNARY_IF_TRUE:"如果为真",LOGIC_TERNARY_TOOLTIP:"检查“test”中的条件。如果条件为真,则返回“if true”的值,否则,则返回“if false”的值。",MATH_ADDITION_SYMBOL:"+",MATH_ARITHMETIC_HELPURL:"https://zh.wikipedia.org/wiki/算术",MATH_ARITHMETIC_TOOLTIP_ADD:"返回两个数字的和。",MATH_ARITHMETIC_TOOLTIP_DIVIDE:"返回两个数字的商。",MATH_ARITHMETIC_TOOLTIP_MINUS:"返回两个数字的区别。",MATH_ARITHMETIC_TOOLTIP_MULTIPLY:"返回两个数字的乘积。",MATH_ARITHMETIC_TOOLTIP_POWER:"返回第一个数的第二个数次幂。",MATH_CHANGE_HELPURL:"https://zh.wikipedia.org/wiki/%E5%8A%A0%E6%B3%95",MATH_CHANGE_TITLE:"将变量 %1 的值增加 %2",MATH_CHANGE_TOOLTIP:"将一个数添加到变量“%1”。",MATH_CONSTANT_HELPURL:"https://zh.wikipedia.org/wiki/数学常数",MATH_CONSTANT_TOOLTIP:"返回一个常见常量:π (3.141......),e (2.718...)、φ (1.618...)、 sqrt(2) (1.414......)、sqrt(½) (0.707......)或 ∞(无穷大)。",MATH_CONSTRAIN_HELPURL:"https://en.wikipedia.org/wiki/Clamping_%28graphics%29",MATH_CONSTRAIN_TITLE:"限制数字 %1 介于 (低) %2 到 (高) %3",MATH_CONSTRAIN_TOOLTIP:"限制数字介于两个指定的数字之间",MATH_CONVERT_HELPURL:"",MATH_CONVERT_MESSAGE0:"%1 %2",MATH_CONVERT_TOOLTIP:"强制转换数据类型",MATH_DIVISION_CONSULT_HELPURL:"",MATH_DIVISION_CONSULT_TITLE:"%1 ÷ %2 商的整数部分",MATH_DIVISION_CONSULT_TOOLTIP:"",MATH_DIVISION_SYMBOL:"÷",MATH_IS_DIVISIBLE_BY:"可被整除",MATH_IS_EVEN:"是偶数",MATH_IS_NEGATIVE:"为负",MATH_IS_ODD:"是奇数",MATH_IS_POSITIVE:"为正",MATH_IS_PRIME:"是质数",MATH_IS_TOOLTIP:"如果数字是偶数、奇数、非负整数、正数、负数或如果它可被某数字整除,则返回真或假。",MATH_IS_WHOLE:"为整数",MATH_MODULO_HELPURL:"https://zh.wikipedia.org/wiki/模除",MATH_MODULO_TITLE:"%1 ÷ %2 的余数",MATH_MODULO_TOOLTIP:"返回这两个数字相除后的余数。",MATH_MULTIPLICATION_SYMBOL:"×",MATH_NUMBER_BITS_OPS_HELPURL:"",MATH_NUMBER_BITS_OPS_MESSAGE0:"%1 %2 %3",MATH_NUMBER_BITS_OPS_TOOLTIP:"对数字进行位运算",MATH_NUMBER_HELPURL:"https://zh.wikipedia.org/wiki/数",MATH_NUMBER_TOOLTIP:"一个数字。",MATH_ONLIST_HELPURL:"",MATH_ONLIST_OPERATOR_AVERAGE:"列表中的平均数",MATH_ONLIST_OPERATOR_MAX:"列表中的最大值",MATH_ONLIST_OPERATOR_MEDIAN:"列表中位数",MATH_ONLIST_OPERATOR_MIN:"列表中的最小值",MATH_ONLIST_OPERATOR_MODE:"列表模式",MATH_ONLIST_OPERATOR_RANDOM:"列表的随机项",MATH_ONLIST_OPERATOR_STD_DEV:"列表中的标准差",MATH_ONLIST_OPERATOR_SUM:"列表中的数的总和",MATH_ONLIST_TOOLTIP_AVERAGE:"返回列表中的数值的平均值。",MATH_ONLIST_TOOLTIP_MAX:"返回列表中最大数。",MATH_ONLIST_TOOLTIP_MEDIAN:"返回列表中的中位数。",MATH_ONLIST_TOOLTIP_MIN:"返回列表中最小数。",MATH_ONLIST_TOOLTIP_MODE:"返回列表中的最常见的项的列表。",MATH_ONLIST_TOOLTIP_RANDOM:"从列表中返回一个随机的元素。",MATH_ONLIST_TOOLTIP_STD_DEV:"返回列表的标准偏差。",MATH_ONLIST_TOOLTIP_SUM:"返回列表中的所有数字的和。",MATH_POWER_SYMBOL:"**",MATH_RANDOM_FLOAT_HELPURL:"https://zh.wikipedia.org/wiki/随机数生成器",MATH_RANDOM_FLOAT_TITLE_RANDOM:"随机小数",MATH_RANDOM_FLOAT_TOOLTIP:"返回介于(包含)0.0到1.0之间的随机数。",MATH_RANDOM_INT_HELPURL:"https://zh.wikipedia.org/wiki/随机数生成器",MATH_RANDOM_INT_TITLE:"从 %1 到 %2 之间的随机整数",MATH_RANDOM_INT_TOOLTIP:"返回两个指定的范围(含)之间的随机整数。",MATH_ROUND_HELPURL:"https://zh.wikipedia.org/wiki/数值修约",MATH_ROUND_OPERATOR_ROUND:"四舍五入",MATH_ROUND_OPERATOR_ROUNDDOWN:"向下舍入",MATH_ROUND_OPERATOR_ROUNDUP:"向上舍入",MATH_ROUND_TOOLTIP:"数字向上或向下舍入。",MATH_SINGLE_HELPURL:"https://zh.wikipedia.org/wiki/平方根",MATH_SINGLE_OP_ABSOLUTE:"绝对",MATH_SINGLE_OP_ROOT:"平方根",MATH_SINGLE_TOOLTIP_ABS:"返回一个数的绝对值。",MATH_SINGLE_TOOLTIP_EXP:"返回数的e次幂。",MATH_SINGLE_TOOLTIP_LN:"返回一个数的自然对数。",MATH_SINGLE_TOOLTIP_LOG10:"返回数字的对数。",MATH_SINGLE_TOOLTIP_NEG:"返回数的逻辑非。",MATH_SINGLE_TOOLTIP_POW10:"返回数的10次幂。",MATH_SINGLE_TOOLTIP_ROOT:"返回数的平方根。",MATH_SUBTRACTION_SYMBOL:"-",MATH_TRIG_ACOS:"acos",MATH_TRIG_ASIN:"asin",MATH_TRIG_ATAN:"atan",MATH_TRIG_COS:"cos",MATH_TRIG_HELPURL:"https://zh.wikipedia.org/wiki/三角函数",MATH_TRIG_SIN:"sin",MATH_TRIG_TAN:"tan",MATH_TRIG_TOOLTIP_ACOS:"返回一个数的反余弦值。",MATH_TRIG_TOOLTIP_ASIN:"返回一个数的反正弦值。",MATH_TRIG_TOOLTIP_ATAN:"返回指定角度的反正切值。",MATH_TRIG_TOOLTIP_COS:"返回指定角度的余弦值(非弧度)。",MATH_TRIG_TOOLTIP_SIN:"返回指定角度的正弦值(非弧度)。",MATH_TRIG_TOOLTIP_TAN:"返回指定角度的正切值(非弧度)。",NEW_VARIABLE:"创建变量...",NEW_VARIABLE_TITLE:"新变量的名称:",ORDINAL_NUMBER_SUFFIX:"",PROCEDURES_ALLOW_STATEMENTS:"允许声明",PROCEDURES_BEFORE_PARAMS:"参数:",PROCEDURES_CALLNORETURN_HELPURL:"https://zh.wikipedia.org/wiki/子程序",PROCEDURES_CALLNORETURN_TOOLTIP:"运行用户定义的函数“%1”。",PROCEDURES_CALLRETURN_HELPURL:"https://zh.wikipedia.org/wiki/子程序",PROCEDURES_CALLRETURN_TOOLTIP:"运行用户定义的函数“%1”,并使用它的输出值。",PROCEDURES_CALL_BEFORE_PARAMS:"与:",PROCEDURES_CREATE_DO:"创建“%1”",PROCEDURES_DEFNORETURN_COMMENT:"",PROCEDURES_DEFNORETURN_DO:"",PROCEDURES_DEFNORETURN_HELPURL:"https://zh.wikipedia.org/wiki/子程序",PROCEDURES_DEFNORETURN_PROCEDURE:"my_func",PROCEDURES_DEFNORETURN_TITLE:"定义函数",PROCEDURES_DEFNORETURN_TOOLTIP:"创建一个不带输出值的函数。",PROCEDURES_DEFRETURN_HELPURL:"https://zh.wikipedia.org/wiki/子程序",PROCEDURES_DEFRETURN_RETURN:"返回",PROCEDURES_DEFRETURN_TOOLTIP:"创建一个有输出值的函数。",PROCEDURES_DEF_DUPLICATE_WARNING:"警告: 此函数具有重复参数。",PROCEDURES_HIGHLIGHT_DEF:"突出显示函数定义",PROCEDURES_IFRETURN_HELPURL:"http://c2.com/cgi/wiki?GuardClause",PROCEDURES_IFRETURN_TOOLTIP:"如果值为真,则返回第二个值。",PROCEDURES_IFRETURN_WARNING:"警告: 仅在定义函数内可使用此块。",PROCEDURES_MUTATORARG_TITLE:"输入名称:",PROCEDURES_MUTATORARG_TOOLTIP:"添加函数输入。",PROCEDURES_MUTATORCONTAINER_TITLE:"输入",PROCEDURES_MUTATORCONTAINER_TOOLTIP:"添加、删除或重新排此函数的输入。",REDO:"重做",REMOVE_COMMENT:"删除注释",RENAME_VARIABLE:"重命名变量...",RENAME_VARIABLE_TITLE:"将所有“%1”变量重命名为:",TEXT_APPEND_APPENDTEXT:"追加文本",TEXT_APPEND_HELPURL:"https://github.com/google/blockly/wiki/Text#text-modification",TEXT_APPEND_TO:"",TEXT_APPEND_TOOLTIP:"将一些文本追加到变量“%1”。",TEXT_CHANGECASE_HELPURL:"https://github.com/google/blockly/wiki/Text#adjusting-text-case",TEXT_CHANGECASE_OPERATOR_LOWERCASE:"转为小写",TEXT_CHANGECASE_OPERATOR_TITLECASE:"转为首字母大写",TEXT_CHANGECASE_OPERATOR_UPPERCASE:"转为大写",TEXT_CHANGECASE_TOOLTIP:"使用不同的大小写复制这段文字。",TEXT_CHARAT_FIRST:"获得第一个字符",TEXT_CHARAT_FROM_END:"获得倒数第#个字符",TEXT_CHARAT_FROM_START:"获得字符#",TEXT_CHARAT_HELPURL:"https://github.com/google/blockly/wiki/Text#extracting-text",TEXT_CHARAT_INPUT_INTEXT:"从文本",TEXT_CHARAT_LAST:"获得最后一个字符",TEXT_CHARAT_RANDOM:"获取随机的字母",TEXT_CHARAT_TAIL:"",TEXT_CHARAT_TOOLTIP:"返回位于指定位置的字母。",TEXT_CREATE_JOIN_ITEM_TOOLTIP:"将一个项添加到文本中。",TEXT_CREATE_JOIN_TITLE_JOIN:"加入",TEXT_CREATE_JOIN_TOOLTIP:"添加、移除或重新排列各节来重新配置这个文本块。",TEXT_GET_SUBSTRING_END_FROM_END:"到倒数第#个字符",TEXT_GET_SUBSTRING_END_FROM_START:"到字符#",TEXT_GET_SUBSTRING_END_LAST:"到最后一个字符",TEXT_GET_SUBSTRING_HELPURL:"https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text",TEXT_GET_SUBSTRING_INPUT_IN_TEXT:"从文本",TEXT_GET_SUBSTRING_START_FIRST:"取得一段字串自第一个字符",TEXT_GET_SUBSTRING_START_FROM_END:"取得一段字串自倒数第#个字符",TEXT_GET_SUBSTRING_START_FROM_START:"取得一段字串自#",TEXT_GET_SUBSTRING_TAIL:"",TEXT_GET_SUBSTRING_TOOLTIP:"返回指定的部分文本。",TEXT_INDEXOF_HELPURL:"https://github.com/google/blockly/wiki/Text#finding-text",TEXT_INDEXOF_INPUT_INTEXT:"在文本",TEXT_INDEXOF_OPERATOR_FIRST:"中查找 最先 出现",TEXT_INDEXOF_OPERATOR_LAST:"中查找 最后 出现",TEXT_INDEXOF_TAIL:"的位置",TEXT_INDEXOF_TOOLTIP:"返回在第二个字串中的第一/最后一个匹配项的索引值。如果未找到则返回%1。",TEXT_ISEMPTY_HELPURL:"https://github.com/google/blockly/wiki/Text#checking-for-empty-text",TEXT_ISEMPTY_TITLE:"%1是空的",TEXT_ISEMPTY_TOOLTIP:"如果提供的文本为空,则返回真。",TEXT_JOIN_HELPURL:"https://github.com/google/blockly/wiki/Text#text-creation",TEXT_JOIN_TITLE_CREATEWITH:"转为文本",TEXT_JOIN_TOOLTIP:"通过串起任意数量的项以建立一段文字。",TEXT_LENGTH_HELPURL:"https://github.com/google/blockly/wiki/Text#text-modification",TEXT_LENGTH_TITLE:"%1的长度",TEXT_LENGTH_TOOLTIP:"返回提供文本的字母数(包括空格)。",TEXT_PRINT_HELPURL:"https://github.com/google/blockly/wiki/Text#printing-text",TEXT_PRINT_TITLE:"打印%1",MPYTHON_INPUT_MESSAGE0:"输入%1",TEXT_PRINT_TOOLTIP:"打印指定的文字、数字或其他值。",TEXT_PROMPT_HELPURL:"https://github.com/google/blockly/wiki/Text#getting-input-from-the-user",TEXT_PROMPT_TOOLTIP_NUMBER:"提示用户输入数字。",TEXT_PROMPT_TOOLTIP_TEXT:"提示用户输入一些文本。",TEXT_PROMPT_TYPE_NUMBER:"输入数字并显示提示消息",TEXT_PROMPT_TYPE_TEXT:"输入数字并显示提示消息",TEXT_TEXT_HELPURL:"https://zh.wikipedia.org/wiki/字符串",TEXT_TEXT_TOOLTIP:"一个字母、单词或一行文本。",TEXT_TRIM_HELPURL:"https://github.com/google/blockly/wiki/Text#trimming-removing-spaces",TEXT_TRIM_OPERATOR_BOTH:"消除两侧空格",TEXT_TRIM_OPERATOR_LEFT:"消除左侧空格",TEXT_TRIM_OPERATOR_RIGHT:"消除右侧空格",TEXT_TRIM_TOOLTIP:"复制这段文字的同时删除两端多余的空格。",TODAY:"今天",UNDO:"撤销",VARIABLES_DEFAULT_NAME:"item",VARIABLES_GET_CREATE_SET:"创建“设定%1”",VARIABLES_GET_HELPURL:"https://github.com/google/blockly/wiki/Variables#get",VARIABLES_GET_TOOLTIP:"返回此变量的值。",VARIABLES_SET:"将变量 %1 设定为 %2",VARIABLES_SET_CREATE_GET:"创建“获得%1”",VARIABLES_SET_HELPURL:"https://github.com/google/blockly/wiki/Variables#set",VARIABLES_SET_TOOLTIP:"设置此变量,以使它和输入值相等。",VARIABLE_ALREADY_EXISTS:"已存在名为“%1”的变量。"};LF.PROCEDURES_DEFRETURN_TITLE=LF.PROCEDURES_DEFNORETURN_TITLE,LF.CONTROLS_IF_IF_TITLE_IF=LF.CONTROLS_IF_MSG_IF,LF.CONTROLS_WHILEUNTIL_INPUT_DO=LF.CONTROLS_REPEAT_INPUT_DO,LF.CONTROLS_IF_MSG_THEN=LF.CONTROLS_REPEAT_INPUT_DO,LF.TRY_EXCEPT_TRY="try",LF.CONTROLS_IF_ELSE_TITLE_ELSE=LF.CONTROLS_IF_MSG_ELSE,LF.CONTROLS_IF_ELSE_TITLE_ELSE=LF.CONTROLS_IF_MSG_ELSE,LF.PROCEDURES_DEFRETURN_PROCEDURE=LF.PROCEDURES_DEFNORETURN_PROCEDURE,LF.LISTS_GET_SUBLIST_INPUT_IN_LIST=LF.LISTS_INLIST,LF.LISTS_GET_INDEX_INPUT_IN_LIST=LF.LISTS_INLIST,LF.PROCEDURES_DEFRETURN_DO=LF.PROCEDURES_DEFNORETURN_DO,LF.CONTROLS_IF_ELSEIF_TITLE_ELSEIF=LF.CONTROLS_IF_MSG_ELSEIF,LF.LISTS_GET_INDEX_HELPURL=LF.LISTS_INDEX_OF_HELPURL,LF.CONTROLS_FOREACH_INPUT_DO=LF.CONTROLS_REPEAT_INPUT_DO,LF.LISTS_SET_INDEX_INPUT_IN_LIST=LF.LISTS_INLIST,LF.CONTROLS_FOR_INPUT_DO=LF.CONTROLS_REPEAT_INPUT_DO,LF.LISTS_CREATE_WITH_ITEM_TITLE=LF.VARIABLES_DEFAULT_NAME,LF.TUPLE_CREATE_WITH_ITEM_TITLE=LF.VARIABLES_DEFAULT_NAME,LF.DICT_CREATE_WITH_ITEM_TITLE=LF.VARIABLES_DEFAULT_NAME,LF.SET_CREATE_WITH_ITEM_TITLE=LF.VARIABLES_DEFAULT_NAME,LF.TEXT_APPEND_VARIABLE=LF.VARIABLES_DEFAULT_NAME,LF.TEXT_CREATE_JOIN_ITEM_TITLE_ITEM=LF.VARIABLES_DEFAULT_NAME,LF.MATH_CHANGE_TITLE_ITEM=LF.VARIABLES_DEFAULT_NAME,LF.LISTS_INDEX_OF_INPUT_IN_LIST=LF.LISTS_INLIST,LF.PROCEDURES_DEFRETURN_COMMENT=LF.PROCEDURES_DEFNORETURN_COMMENT,LF.MPYTHON_MAIN_HELPURL="",LF.MPYTHON_MAIN_TOOLTIP="",LF.MPYTHON_MAIN_MESSAGE0="主程序",LF.MPYTHON_OPEN="开启",LF.MPYTHON_CLOSE="关闭",LF.MPYTHONBOX_RGB_IMAGE_SHIFT_LEFT="左移",LF.MPYTHONBOX_RGB_IMAGE_SHIFT_RIGHT="右移",LF.MPYTHONBOX_RGB_IMAGE_SHIFT_UP="上移",LF.MPYTHONBOX_RGB_IMAGE_SHIFT_DOWN="下移",LF.MPYTHON_AI_LCD_SHOW_IMAGE_HEAT_GRAYSCALE="灰度",LF.MPYTHON_AI_LCD_SHOW_IMAGE_HEAT_RAINBOW="彩虹",LF.MPYTHON_AI_LCD_SHOW_IMAGE_HEAT_NEGATE="数字反转",LF.MPYTHON_AI_LCD_SHOW_IMAGE_HEAT_INVERT="黑白翻转",LF.MPYTHON_AI_LCD_SHOW_IMAGE_DESCARTES_LINPOLAR="线性极",LF.MPYTHON_AI_LCD_SHOW_IMAGE_DESCARTES_LOGPOLAR="对数极",LF.MPYTHON_AI_SENSOR_PATTERN_GRAYSCALE="灰度",LF.MPYTHON_AI_SENSOR_PATTERN_COLOR="彩色",LF.MPYTHON_AI_SENSOR_ENABLE_START="开始抓取图像",LF.MPYTHON_AI_SENSOR_ENABLE_STOP="停止抓取图像",LF.MPYTHON_AI_SENSOR_LEVEL_MI_H="水平镜像",LF.MPYTHON_AI_SENSOR_LEVEL_MI_V="垂直翻转",LF.MPYTHON_AI_SENSOR_SETS_CONTRAST="对比度",LF.MPYTHON_AI_SENSOR_SETS_BRIGHTNESS="亮度",LF.MPYTHON_AI_SENSOR_SETS_SATURATION="饱和度",LF.MPYTHON_AI2_FACE_YOLO="人脸识别",LF.MPYTHON_AI2_CLASS_20_YOLO="20类识别",LF.MPYTHON_AI2_MNIST_NET="数字识别",LF.MPYTHON_AI2_PHOTOGRAPH_FACE_YOLO="人脸",LF.MPYTHON_AI2_PHOTOGRAPH_CLASS_20_YOLO="20类",LF.MPYTHON_AI_TRACE_COLOR_RECTANGLE="矩形",LF.MPYTHON_AI_TRACE_COLOR_CROSS="十字",LF.TEXT_APPEND_TEXT_HELPURL="",LF.TEXT_APPEND_TEXT_TOOLTIP="",LF.TEXT_APPEND_TEXT_MESSAGE0="%1 追加文本 %2",LF.CHINA_CITY_MESSAGE0="%1 %2",LF.CHINA_CITY_TOWN_MESSAGE0="%1 %2 %3 返回 %4",LF.CHINA_CITY_CNNAME="中文简称",LF.CHINA_CITY_PINYIN="拼音",LF.MPYTHON_SENIVERSE_WEATHER_LANGUAGE_1="简体中文",LF.MPYTHON_SENIVERSE_WEATHER_LANGUAGE_2="正體中文",LF.MPYTHON_SENIVERSE_CITY_WEATHER_HELPURL="",LF.MPYTHON_SENIVERSE_CITY_WEATHER_TOOLTIP="",LF.MPYTHON_SENIVERSE_CITY_WEATHER_MESSAGE0="[心知天气] %1 信息 %2 地理位置 %3 API私钥 %4 %5 语言 %6 %7 温度单位 %8",LF.MPYTHON_SENIVERSE_WEATHER_API_1="天气实况",LF.MPYTHON_SENIVERSE_WEATHER_API_2="3天天气预报",LF.MPYTHON_SENIVERSE_WEATHER_API_3="6项生活指数",LF.MPYTHON_SENIVERSE_WEATHER_UNIT_1="摄氏度",LF.MPYTHON_SENIVERSE_WEATHER_UNIT_2="华氏度",LF.MPYTHON_DEFINE_SENIVERSE_WEATHER_HELPURL="",LF.MPYTHON_DEFINE_SENIVERSE_WEATHER_TOOLTIP="",LF.MPYTHON_DEFINE_SENIVERSE_WEATHER_MESSAGE0="设定 %1 为 %2",LF.MPYTHON_GET_SENIVERSE_WEATHER_INFO_HELPURL="",LF.MPYTHON_GET_SENIVERSE_WEATHER_INFO_TOOLTIP="",LF.MPYTHON_GET_SENIVERSE_WEATHER_INFO_MESSAGE0="%1 [心知天气] 通用字段 %2",LF.MPYTHON_GET_SENIVERSE_WEATHER_INFO1_HELPURL="",LF.MPYTHON_GET_SENIVERSE_WEATHER_INFO1_TOOLTIP="",LF.MPYTHON_GET_SENIVERSE_WEATHER_INFO1_MESSAGE0="%1 [心知天气] 天气实况 %2",LF.MPYTHON_GET_SENIVERSE_WEATHER_INFO2_HELPURL="",LF.MPYTHON_GET_SENIVERSE_WEATHER_INFO2_TOOLTIP="风向角度,范围0~360\n风速,单位km/h(当unit=c时)、mph(当unit=f时)",LF.MPYTHON_GET_SENIVERSE_WEATHER_INFO2_MESSAGE0="%1 [心知天气] 3天天气预报 %2 的 %3",LF.MPYTHON_GET_SENIVERSE_WEATHER_INFO3_HELPURL="",LF.MPYTHON_GET_SENIVERSE_WEATHER_INFO3_TOOLTIP="",LF.MPYTHON_GET_SENIVERSE_WEATHER_INFO3_MESSAGE0="%1 [心知天气] 6项生活指数 %2",LF.MPYTHON_SENIVERSE_WEATHER_city_name="城市名称",LF.MPYTHON_SENIVERSE_WEATHER_city_id="城市ID",LF.MPYTHON_SENIVERSE_WEATHER_country="国家代码",LF.MPYTHON_SENIVERSE_WEATHER_path="行政归属",LF.MPYTHON_SENIVERSE_WEATHER_timezone="时区",LF.MPYTHON_SENIVERSE_WEATHER_timezone_offset="UTC偏移量",LF.MPYTHON_SENIVERSE_WEATHER_last_update_date="数据更新日期",LF.MPYTHON_SENIVERSE_WEATHER_last_update="数据更新时间",LF.MPYTHON_SENIVERSE_WEATHER_object="原始字典对象",LF.MPYTHON_SENIVERSE_WEATHER_text="天气现象",LF.MPYTHON_SENIVERSE_WEATHER_code="天气现象代码",LF.MPYTHON_SENIVERSE_WEATHER_temperature="温度",LF.MPYTHON_SENIVERSE_WEATHER_today="今天",LF.MPYTHON_SENIVERSE_WEATHER_tomorrow="明天",LF.MPYTHON_SENIVERSE_WEATHER_the_day_after_tomorrow="后天",LF.MPYTHON_SENIVERSE_WEATHER_date="日期",LF.MPYTHON_SENIVERSE_WEATHER_text_day="白天天气现象",LF.MPYTHON_SENIVERSE_WEATHER_code_day="白天天气现象代码",LF.MPYTHON_SENIVERSE_WEATHER_text_night="晚间天气现象",LF.MPYTHON_SENIVERSE_WEATHER_code_night="晚间天气现象代码",LF.MPYTHON_SENIVERSE_WEATHER_high="当天最高温度",LF.MPYTHON_SENIVERSE_WEATHER_low="当天最低温度",LF.MPYTHON_SENIVERSE_WEATHER_wind_direction="风向",LF.MPYTHON_SENIVERSE_WEATHER_wind_direction_degree="风向角度",LF.MPYTHON_SENIVERSE_WEATHER_wind_speed="风速",LF.MPYTHON_SENIVERSE_WEATHER_wind_scale="风力等级",LF.MPYTHON_SENIVERSE_WEATHER_car_washing="洗车指数",LF.MPYTHON_SENIVERSE_WEATHER_dressing="穿衣指数",LF.MPYTHON_SENIVERSE_WEATHER_flu="感冒指数",LF.MPYTHON_SENIVERSE_WEATHER_sport="运动指数",LF.MPYTHON_SENIVERSE_WEATHER_travel="旅游指数",LF.MPYTHON_SENIVERSE_WEATHER_uv="紫外线指数",LF.MPYTHON_RED="红",LF.MPYTHON_GREEN="绿",LF.MPYTHON_BLUE="蓝",LF.MPYTHON_BLUEBIT_HELPURL="http://wiki.labplus.cn/index.php?title=Bluebit",LF.MPYTHON_BLUEBIT_NEWRFID_READ_MESSAGE0="I2C射频卡 读取电子钱包 数据",LF.MPYTHON_BLUEBIT_NEWRFID_READ_TOOLTIP="读取块数据,长度16字节",LF.MPYTHON_BLUEBIT_NEWRFID_READ_HELPURL="https://mpython.readthedocs.io/zh/master/library/mPython/bluebit.html#rfid",LF.MPYTHON_BLUEBIT_NEWRFID_WRITE_MESSAGE0="I2C射频卡 写入电子钱包 数据%1",LF.MPYTHON_BLUEBIT_NEWRFID_WRITE_TOOLTIP="写入块数据,长度16字节",LF.MPYTHON_BLUEBIT_NEWRFID_WRITE_HELPURL="https://mpython.readthedocs.io/zh/master/library/mPython/bluebit.html#rfid",LF.MPYTHON_BLUEBIT_NEWRFID_MONEY_MESSAGE0="I2C射频卡 给电子钱包%1 金额%2",LF.MPYTHON_BLUEBIT_NEWRFID_MONEY_TOOLTIP="",LF.MPYTHON_BLUEBIT_NEWRFID_MONEY_HELPURL="https://mpython.readthedocs.io/zh/master/library/mPython/bluebit.html#rfid",LF.MPYTHON_BLUEBIT_NEWRFID_INC_MESSAGE0="充值",LF.MPYTHON_BLUEBIT_NEWRFID_DEC_MESSAGE0="扣费",LF.MPYTHON_BLUEBIT_NEWRFID_GET_MESSAGE0="I2C射频卡 获取电子钱包余额",LF.MPYTHON_BLUEBIT_NEWRFID_GET_TOOLTIP="",LF.MPYTHON_BLUEBIT_NEWRFID_GET_HELPURL="https://mpython.readthedocs.io/zh/master/library/mPython/bluebit.html#rfid",LF.MPYTHON_BLUEBIT_NEWRFID_GETSERIAL_MESSAGE0="I2C射频卡 获取序列号",LF.MPYTHON_BLUEBIT_NEWRFID_GETSERIAL_TOOLTIP="",LF.MPYTHON_BLUEBIT_NEWRFID_GETSERIAL_HELPURL="https://mpython.readthedocs.io/zh/master/library/mPython/bluebit.html#rfid",LF.MPYTHON_BLUEBIT_NEWRFID_SET_MESSAGE0="I2C射频卡 初始化电子钱包",LF.MPYTHON_BLUEBIT_NEWRFID_SET_TOOLTIP="",LF.MPYTHON_BLUEBIT_NEWRFID_SET_HELPURL="https://mpython.readthedocs.io/zh/master/library/mPython/bluebit.html#rfid",LF.MPYTHON_BLUEBIT_NEWRFID_SCAN_MESSAGE0="I2C射频卡 扫描",LF.MPYTHON_BLUEBIT_NEWRFID_SCAN_TOOLTIP="",LF.MPYTHON_BLUEBIT_NEWRFID_SCAN_HELPURL="https://mpython.readthedocs.io/zh/master/library/mPython/bluebit.html#rfid",LF.MPYTHON_BLUEBIT_ULTRASONIC_MESSAGE0="I2C超声波",LF.MPYTHON_BLUEBIT_ULTRASONIC_TOOLTIP="",LF.MPYTHON_BLUEBIT_ULTRASONIC_HELPURL="http://wiki.labplus.cn/index.php?title=Bluebit",LF.MPYTHON_BLUEBIT_READ_DIGITAL_MESSAGE0="%1 被触发 引脚%2",LF.MPYTHON_BLUEBIT_READ_DIGITAL_TOOLTIP="",LF.MPYTHON_BLUEBIT_READ_DIGITAL_HELPURL="http://wiki.labplus.cn/index.php?title=Bluebit",LF.MPYTHON_BLUEBIT_READ_ANALOG_MESSAGE0="%1 模拟值 引脚%2",LF.MPYTHON_BLUEBIT_READ_ANALOG_TOOLTIP="",LF.MPYTHON_BLUEBIT_READ_ANALOG_HELPURL="http://wiki.labplus.cn/index.php?title=Bluebit",LF.MPYTHON_BLUEBIT_SET_ANALOG_MESSAGE0="设置LED灯 输出%1 引脚%2",LF.MPYTHON_BLUEBIT_SET_ANALOG_TOOLTIP="",LF.MPYTHON_BLUEBIT_SET_ANALOG_HELPURL="http://wiki.labplus.cn/index.php?title=Bluebit",LF.MPYTHON_BLUEBIT_LINE_FOLLOWER_MESSAGE0="循迹传感器 检测为黑 引脚%1",LF.MPYTHON_BLUEBIT_LINE_FOLLOWER_TOOLTIP="",LF.MPYTHON_BLUEBIT_LINE_FOLLOWER_HELPURL="http://wiki.labplus.cn/index.php?title=Bluebit",LF.MPYTHON_BLUEBIT_SET_TRUE_HELPURL="http://wiki.labplus.cn/index.php?title=Bluebit",LF.MPYTHON_BLUEBIT_SET_TRUE_MESSAGE0="打开 %1 引脚 %2",LF.MPYTHON_BLUEBIT_SET_TRUE_TOOLTIP="",LF.MPYTHON_BLUEBIT_SET_FALSE_HELPURL="http://wiki.labplus.cn/index.php?title=Bluebit",LF.MPYTHON_BLUEBIT_SET_FALSE_MESSAGE0="关闭 %1 引脚 %2",LF.MPYTHON_BLUEBIT_SET_FALSE_TOOLTIP="",LF.MPYTHON_BLUEBIT_VOICE_RECORD_ON_HELPURL="http://wiki.labplus.cn/index.php?title=%E8%AF%AD%E9%9F%B3%E5%BD%95%E6%94%BE",LF.MPYTHON_BLUEBIT_VOICE_RECORD_ON_TOOLTIP="",LF.MPYTHON_BLUEBIT_VOICE_RECORD_ON_MESSAGE0="打开录放器 %1 %2 REC %3 PLAY %4",LF.MPYTHON_BLUEBIT_VOICE_RECORD_OFF_HELPURL="http://wiki.labplus.cn/index.php?title=%E8%AF%AD%E9%9F%B3%E5%BD%95%E6%94%BE",LF.MPYTHON_BLUEBIT_VOICE_RECORD_OFF_TOOLTIP="",LF.MPYTHON_BLUEBIT_VOICE_RECORD_OFF_MESSAGE0="关闭录放器 %1 REC %2 PLAY %3",LF.MPYTHON_BLUEBIT_VOICE_RECORD_PLAY="播放",LF.MPYTHON_BLUEBIT_VOICE_RECORD_REC="录音",LF.MPYTHON_BLUEBIT_IR_RECEIVE="红外探测",LF.MPYTHON_BLUEBIT_SOUND="麦克风",LF.MPYTHON_BLUEBIT_LINE_FOLLOWER="循迹",LF.MPYTHON_BLUEBIT_VIBRATION="震动",LF.MPYTHON_BLUEBIT_RFID="射频卡",LF.MPYTHON_BLUEBIT_FINGERPRINT_SCANNER="指纹",LF.MPYTHON_BLUEBIT_PIR="人体感应",LF.MPYTHON_BLUEBIT_MAGNETIC="门磁开关",LF.MPYTHON_BLUEBIT_BUTTON="按键",LF.MPYTHON_BLUEBIT_RELAY="继电器",LF.MPYTHON_BLUEBIT_LIMIT_SWITCH="限位开关",LF.MPYTHON_BLUEBIT_FAN="风扇",LF.MPYTHON_BLUEBIT_LASER="激光",LF.MPYTHON_BLUEBIT_NTC_TEMP="热敏电阻",LF.MPYTHON_BLUEBIT_WATER="水位",LF.MPYTHON_BLUEBIT_SOIL_MOISTURE="土壤湿度",LF.MPYTHON_BLUEBIT_ROTATE_DIMMER="旋钮电位器",LF.MPYTHON_BLUEBIT_LINEAR_SLIDING_POTENTIOMETER="直滑电位器",LF.MPYTHON_BLUEBIT_ANALOG_LIGHT="模拟光线",LF.MPYTHON_BLUEBIT_LM35_TEMP="LM35温度",LF.MPYTHON_BLUEBIT_SMOKE="烟雾",LF.MPYTHON_BLUEBIT_MOTOR_ON_CLOCKWISE="正转",LF.MPYTHON_BLUEBIT_MOTOR_ON_ANTICLOCKWISE="反转",LF.MPYTHON_BLUEBIT_READ_SOIL_HELPURL="",LF.MPYTHON_BLUEBIT_READ_SOIL_TOOLTIP="新的土壤湿度",LF.MPYTHON_BLUEBIT_READ_SOIL_MESSAGE0="土壤湿度(新)%1",LF.MPYTHON_BLUEBIT_MOTOR_ON_HELPURL="http://wiki.labplus.cn/index.php?title=%E7%94%B5%E6%9C%BA%E9%A9%B1%E5%8A%A8",LF.MPYTHON_BLUEBIT_MOTOR_ON_TOOLTIP="速度:-100~100 映射至 -1023~1023",LF.MPYTHON_BLUEBIT_MOTOR_ON_MESSAGE0="打开直流电机 %1 速度 %2 引脚AIN1 %3 引脚AIN2 %4",LF.MPYTHON_BLUEBIT_MOTOR_OFF_HELPURL="http://wiki.labplus.cn/index.php?title=%E7%94%B5%E6%9C%BA%E9%A9%B1%E5%8A%A8",LF.MPYTHON_BLUEBIT_MOTOR_OFF_TOOLTIP="",LF.MPYTHON_BLUEBIT_MOTOR_OFF_MESSAGE0="停止直流电机 %1 引脚AIN1 %2 引脚AIN2 %3",LF.MPYTHON_BLUEBIT_SET_FAN_HELPURL="",LF.MPYTHON_BLUEBIT_SET_FAN_TOOLTIP="",LF.MPYTHON_BLUEBIT_SET_FAN_MESSAGE0="拓展板 打开风扇 %1",LF.MPYTHON_BLUEBIT_SET_FAN_OFF_HELPURL="",LF.MPYTHON_BLUEBIT_SET_FAN_OFF_TOOLTIP="",LF.MPYTHON_BLUEBIT_SET_FAN_OFF_MESSAGE0="拓展板 关闭风扇 %1",LF.MPYTHON_BLUEBIT_4BUTTON_HELPURL="http://wiki.MPYTHON_BLUEBIT.cn/index.php?title=%E5%9B%9B%E6%8C%89%E9%94%AE",LF.MPYTHON_BLUEBIT_4BUTTON_TOOLTIP="",LF.MPYTHON_BLUEBIT_4BUTTON_MESSAGE0="四向按键模块 引脚 %1 按键 %2 被按下",LF.BLUE="A",LF.GREEN="B",LF.RED="C",LF.YELLOW="D",LF.MPYTHON_BLUEBIT_JOYSTICK_HELPURL="",LF.MPYTHON_BLUEBIT_JOYSTICK_TOOLTIP="",LF.MPYTHON_BLUEBIT_JOYSTICK_MESSAGE0="摇杆 引脚A0 %1 引脚A1 %2 %3 轴的值",LF.MPYTHON_BLUEBIT_MOTOR_ON_I2C_HELPURL="",LF.MPYTHON_BLUEBIT_MOTOR_ON_I2C_TOOLTIP="速度:0~100",LF.MPYTHON_BLUEBIT_MOTOR_ON_I2C_MESSAGE0="拓展板 打开直流电机 %1 %2 速度 %3",LF.MPYTHON_BLUEBIT_BLUEBIT_MOTOR_OFF_I2C_HELPURL="",LF.MPYTHON_BLUEBIT_MOTOR_OFF_I2C_TOOLTIP="速度:0~100",LF.MPYTHON_BLUEBIT_MOTOR_OFF_I2C_MESSAGE0="拓展板 关闭直流电机",LF.MPYTHON_BLUEBIT_CODED_THREE_MOTOR_ON_I2C_HELPURL="",LF.MPYTHON_BLUEBIT_CODED_THREE_MOTOR_ON_I2C_TOOLTIP="速度:-1023~1023",LF.MPYTHON_BLUEBIT_CODED_THREE_MOTOR_ON_I2C_MESSAGE0="编码电机 模式 %1 拨码 %2 M1速度 %3 M2速度 %4",LF.MPYTHON_BLUEBIT_CODED_STOP_MOTOR_ON_I2C_HELPURL="",LF.MPYTHON_BLUEBIT_CODED_STOP_MOTOR_ON_I2C_TOOLTIP="停止编码电机转动",LF.MPYTHON_BLUEBIT_CODED_STOP_MOTOR_ON_I2C_MESSAGE0="停止编码电机转动 %1",LF.MPYTHON_BLUEBIT_HUM_TEM_HELPURL="",LF.MPYTHON_BLUEBIT_HUM_TEM_TOOLTIP="",LF.MPYTHON_BLUEBIT_HUM_TEM_MESSAGE0="I2C %1",LF.MPYTHON_BLUEBIT_TEMPERATURE="温度",LF.MPYTHON_BLUEBIT_HUMIDITY="湿度",LF.MPYTHON_BLUEBIT_INIT_MIDI_HELPURL="",LF.MPYTHON_BLUEBIT_INIT_MIDI_MESSAGE0="初始化MIDI TX引脚 %1",LF.MPYTHON_BLUEBIT_INIT_MIDI_TOOLTIP="",LF.MPYTHON_BLUEBIT_MIDI_VOLUME_HELPURL="",LF.MPYTHON_BLUEBIT_MIDI_VOLUME_MESSAGE0="设MIDI音量 %1",LF.MPYTHON_BLUEBIT_MIDI_VOLUME_TOOLTIP="音量 0~127",LF.MIDI_PIANO="平台钢琴",LF.MIDI_BRIGHTACOUSTICPIANO="亮音钢琴",LF.MIDI_ELECTRICGRANDPIANO="电钢琴",LF.MIDI_HARPSICHORD="大键琴",LF.MIDI_CELESTA="钢片琴",LF.MIDI_GLOCKENSPIEL="钟琴",LF.MIDI_MUSICALBOX="音乐盒",LF.MIDI_MARIMBA="马林巴琴",LF.MIDI_XYLOPHONE="木琴",LF.MIDI_TUBULARBELL="管钟",LF.MIDI_DULCIMER="洋琴",LF.MIDI_VIBRAPHONE="颤音琴",LF.MIDI_ORGAN="音栓风琴",LF.MIDI_ACOUSTIC_GUITAR="木吉他",LF.MIDI_ELECTRIC_GUITAR="电吉他",LF.MIDI_ACOUSTIC_BASS="民谣贝斯",LF.MIDI_STRING_ENSEMBLE="弦乐合奏",LF.MIDI_VIOLIN="小提琴",LF.MIDI_TRUMPET="小号",LF.MIDI_SAX="萨克斯",LF.MIDI_STEEL_DRUMS="钢鼓",LF.MIDI_LEAD="合成音主旋律",LF.MIDI_PAD="合成音衬底",LF.MPYTHON_BLUEBIT_MIDI_INSTRUMENT_HELPURL="",LF.MPYTHON_BLUEBIT_MIDI_INSTRUMENT_MESSAGE0="设MIDI乐器 %1",LF.MPYTHON_BLUEBIT_MIDI_INSTRUMENT_TOOLTIP="",LF.MPYTHON_BLUEBIT_MIDI_PLAY_HELPURL="",LF.MPYTHON_BLUEBIT_MIDI_PLAY_MESSAGE0="MIDI %1 音调 %2",LF.MPYTHON_BLUEBIT_MIDI_PLAY_TOOLTIP="",LF.MPYTHON_BLUEBIT_MATRIX_BRIGHTNESS_HELPURL="",LF.MPYTHON_BLUEBIT_MATRIX_BRIGHTNESS_MESSAGE0="设点阵亮度等級 %1",LF.MPYTHON_BLUEBIT_MATRIX_BRIGHTNESS_TOOLTIP="亮度等級 0~15",LF.MPYTHON_BLUEBIT_MATRIX_FILL_HELPURL="",LF.MPYTHON_BLUEBIT_MATRIX_FILL_MESSAGE0="点阵 %1",LF.MPYTHON_BLUEBIT_MATRIX_FILL_TOOLTIP="",LF.MPYTHON_BLUEBIT_MATRIX_BITMAP_HELPURL="",LF.MPYTHON_BLUEBIT_MATRIX_BITMAP_MESSAGE0="设置点阵 %1 %2 %3 %4 %5 %6 %7 %8 %9 %10 %11 %12 %13 %14 %15 %16 %17 %18 %19 %20 %21 %22 %23 %24 %25 %26 %27 %28 %29 %30 %31 %32 %33 %34 %35 %36 %37 %38 %39 %40 %41 %42 %43 %44 %45 %46 %47 %48 %49 %50 %51 %52 %53 %54 %55 %56 %57 %58 %59 %60 %61 %62 %63 %64 %65 %66 %67 %68 %69 %70 %71 %72",LF.MPYTHON_BLUEBIT_MATRIX_BITMAP_TOOLTIP="",LF.MPYTHON_BLUEBIT_MATRIX_SHOW_HELPURL="",LF.MPYTHON_BLUEBIT_MATRIX_SHOW_MESSAGE0="点阵设置生效",LF.MPYTHON_BLUEBIT_MATRIX_SHOW_TOOLTIP="",LF.MPYTHON_BLUEBIT_MP3_VOLUME_HELPURL="",LF.MPYTHON_BLUEBIT_MP3_VOLUME_MESSAGE0="设MP3音量 %1",LF.MPYTHON_BLUEBIT_MP3_VOLUME_TOOLTIP="音量:0~30",LF.MPYTHON_BLUEBIT_MP3_INIT_HELPURL="",LF.MPYTHON_BLUEBIT_MP3_INIT_MESSAGE0="初始化MP3 TX引脚 %1",LF.MPYTHON_BLUEBIT_MP3_INIT_TOOLTIP="掌控板的 tx 引脚连接音乐模块的 RXI 引脚",LF.MPYTHON_BLUEBIT_MP3_VOLUME_PLUS_HELPURL="",LF.MPYTHON_BLUEBIT_MP3_VOLUME_PLUS_MESSAGE0="MP3 音量 %1",LF.MPYTHON_BLUEBIT_MP3_VOLUME_PLUS_TOOLTIP="",LF.MPYTHON_PLUS_1="加1",LF.MPYTHON_MINUS_1="減1",LF.MPYTHON_BLUEBIT_MP3_PLAY_SONG_HELPURL="",LF.MPYTHON_BLUEBIT_MP3_PLAY_SONG_MESSAGE0="MP3 播放第 %1 首歌",LF.MPYTHON_BLUEBIT_MP3_PLAY_SONG_TOOLTIP="",LF.MPYTHON_BLUEBIT_MP3_CMD_HELPURL="",LF.MPYTHON_BLUEBIT_MP3_CMD_MESSAGE0="MP3 播放 %1",LF.MPYTHON_BLUEBIT_MP3_CMD_TOOLTIP="",LF.MPYTHON_BLUEBIT_MP3_SINGLELOOP_HELPURL="",LF.MPYTHON_BLUEBIT_MP3_SINGLELOOP_MESSAGE0="MP3 单曲循环 %1",LF.MPYTHON_BLUEBIT_MP3_SINGLELOOP_TOOLTIP="",LF.MPYTHON_BLUEBIT_EXTIO_IOMODE_HELPURL="",LF.MPYTHON_BLUEBIT_EXTIO_IOMODE_MESSAGE0="设扩展端口 IO %2 为 %1",LF.MPYTHON_BLUEBIT_EXTIO_IOMODE_TOOLTIP="IO: 0~7",LF.MPYTHON_BLUEBIT_EXTIO_READIO_HELPURL="",LF.MPYTHON_BLUEBIT_EXTIO_READIO_MESSAGE0="扩展端口值 IO %1",LF.MPYTHON_BLUEBIT_EXTIO_READIO_TOOLTIP="",LF.MPYTHON_BLUEBIT_EXTIO_WRITEIO_HELPURL="",LF.MPYTHON_BLUEBIT_EXTIO_WRITEIO_MESSAGE0="设扩展端口 IO %2 为 %1",LF.MPYTHON_BLUEBIT_EXTIO_WRITEIO_TOOLTIP="",LF.MPYTHON_LCD_OBJECT_HELPURL="",LF.MPYTHON_LCD_OBJECT_MESSAGE0="LCD1602 初始化",LF.MPYTHON_LCD_OBJECT_TOOLTIP="",LF.MPYTHON_LCD_PRINT_HELPURL="",LF.MPYTHON_LCD_PRINT_MESSAGE0="LCD1602 显示 %1",LF.MPYTHON_LCD_PRINT_TOOLTIP="",LF.MPYTHON_LCD_HOME_HELPURL="",LF.MPYTHON_LCD_HOME_MESSAGE0="LCD1602 光标 回到原点",LF.MPYTHON_LCD_HOME_TOOLTIP="",LF.MPYTHON_LCD_CURSOR_HELPURL="",LF.MPYTHON_LCD_CURSOR_MESSAGE0="LCD1602 光标 %1",LF.MPYTHON_LCD_CURSOR_TOOLTIP="",LF.MPYTHON_LCD_SET_CURSOR_HELPURL="",LF.MPYTHON_LCD_SET_CURSOR_MESSAGE0="LCD1602 起始点 行 %2 列 %1",LF.MPYTHON_LCD_SET_CURSOR_TOOLTIP="行列从0开始计数",LF.MPYTHON_LCD_CLEAR_HELPURL="",LF.MPYTHON_LCD_CLEAR_MESSAGE0="LCD1602 清屏",LF.MPYTHON_LCD_CLEAR_TOOLTIP="",LF.MPYTHON_LCD_CURSOR_BLINK="闪烁",LF.MPYTHON_LCD_CURSOR_NO_BLINK="不闪烁",LF.MPYTHON_LEFT_TO_RIGHT="从左向右",LF.MPYTHON_RIGHT_TO_LEFT="从右向左",LF.MPYTHON_LCD_TEXT_DIRECTION_HELPURL="",LF.MPYTHON_LCD_TEXT_DIRECTION_MESSAGE0="LCD1602 文字方向 %1",LF.MPYTHON_LCD_TEXT_DIRECTION_TOOLTIP="",LF.MPYTHON_LCD_MOVE_HELPURL="",LF.MPYTHON_LCD_MOVE_MESSAGE0="LCD1602 向 %1 滚动一格",LF.MPYTHON_LCD_MOVE_TOOLTIP="",LF.MPYTHON_IR_TRANS_HELPURL="",LF.MPYTHON_IR_TRANS_MESSAGE0="红外发送 单字节字符串 %1 tx 引脚 %2",LF.MPYTHON_IR_TRANS_TOOLTIP="\n单字节字符串:\n'A', 'b', '1'等",LF.OUTPUT_PIN_HELPURL="",LF.OUTPUT_PIN_MESSAGE0="%1",LF.OUTPUT_PIN_TOOLTIP="",LF.INPUT_PIN_HELPURL="",LF.INPUT_PIN_MESSAGE0="%1",LF.INPUT_PIN_TOOLTIP="",LF.READ_ANALOG_PIN_HELPURL="",LF.READ_ANALOG_PIN_MESSAGE0="%1",LF.READ_ANALOG_PIN_TOOLTIP="",LF.SET_DIGITAL_HELPURL="",LF.SET_DIGITAL_MESSAGE0="%1",LF.SET_DIGITAL_TOOLTIP="",LF.SET_ANALOG_HELPURL="",LF.SET_ANALOG_MESSAGE0="%1",LF.SET_ANALOG_TOOLTIP="",LF.ALL_PIN_HELPURL="",LF.ALL_PIN_MESSAGE0="%1",LF.ALL_PIN_TOOLTIP="",LF.PWM_PIN_HELPURL="",LF.PWM_PIN_MESSAGE0="%1",LF.PWM_PIN_TOOLTIP="",LF.DH11_HUM_TEM_PIN_HELPURL="",LF.DH11_HUM_TEM_PIN_MESSAGE0="%1",LF.DH11_HUM_TEM_PIN_TOOLTIP="",LF.UART_TX_PIN_HELPURL="",LF.UART_TX_PIN_MESSAGE0="%1",LF.UART_TX_PIN_TOOLTIP="",LF.UART_RX_PIN_HELPURL="",LF.UART_RX_PIN_MESSAGE0="%1",LF.UART_RX_PIN_TOOLTIP="",LF.I2C_PIN_HELPURL="",LF.I2C_PIN_MESSAGE0="%1",LF.I2C_PIN_TOOLTIP="",LF.MQTT_COMMON_SETUP_HELPURL="https://mpython.readthedocs.io/zh/master/library/mPython/umqtt.simple.html?highlight=mqtt#MQTTClient",LF.MQTT_COMMON_SETUP_MESSAGE0="MQTT %1 client_id %2 server %3 port %4 user %5 password %6 keepalive %7",LF.MQTT_COMMON_SETUP_TOOLTIP="",LF.MQTT_TENCENT_SETUP_HELPURL="https://mpython.readthedocs.io/zh/master/library/mPython/umqtt.simple.html?highlight=mqtt#MQTTClient",LF.MQTT_TENCENT_SETUP_MESSAGE0="MQTT 腾讯物联网 %1 服务器 %2 Port %3 AppId %4 Device %5 -- 传出参数 -- %6 ReportTopic %7 ControlTopic %8",LF.MQTT_TENCENT_SETUP_TOOLTIP="",LF.MQTT_TENCENT_SETUPS_HELPURL="https://mpython.readthedocs.io/zh/master/library/mPython/umqtt.simple.html?highlight=mqtt#MQTTClient",LF.MQTT_TENCENT_SETUPS_MESSAGE0="MQTT 腾讯物联网 %1 服务器 %2 Port %3 AppId %4 Device %5 -- 传出参数 -- %6 ReportTopic %7 ControlTopic %8",LF.MQTT_TENCENT_SETUPS_TOOLTIP="",LF.MQTT_SETUP_HELPURL="https://mpython.readthedocs.io/zh/master/tutorials/advance/iot/mqtt.html#id2",LF.MQTT_SETUP_MESSAGE0="MQTT-Easy IoT %1 服务器 %2 Client ID %5 Iot_id %3 Iot_pwd %4",LF.MQTT_SETUP_TOOLTIP="",LF.MQTT_CONNECT_HELPURL="https://mpython.readthedocs.io/zh/master/tutorials/advance/iot/mqtt.html#id2",LF.MQTT_CONNECT_MESSAGE0="连接 MQTT",LF.MQTT_CONNECT_TOOLTIP="",LF.MQTT_PUBLISH_HELPURL="https://mpython.readthedocs.io/zh/master/tutorials/advance/iot/mqtt.html#id2",LF.MQTT_PUBLISH_MESSAGE0="发布 %1 至 主题 %2",LF.MQTT_PUBLISH_TOOLTIP="",LF.MQTT_REC_FROM_TOPIC_HELPURL="https://mpython.readthedocs.io/zh/master/tutorials/advance/iot/mqtt.html#id2",LF.MQTT_REC_FROM_TOPIC_MESSAGE0="当从主题 %1 接收到 %2 时",LF.MQTT_REC_FROM_TOPIC_TOOLTIP="",LF.MQTT_RECEIVE_HELPURL="https://mpython.readthedocs.io/zh/master/tutorials/advance/iot/mqtt.html#id2",LF.MQTT_RECEIVE_MESSAGE0="当从主题 %1 接收到 %2 时",LF.MQTT_RECEIVE_TOOLTIP='参数"主题"只接受变量',LF.MQTT_RECEIVED_MESSAGE0="当从主题 %1 接收到消息 时",LF.MQTT_MESSAGE_HELPURL="https://mpython.readthedocs.io/zh/master/tutorials/advance/iot/mqtt.html#id2",LF.MQTT_MESSAGE_MESSAGE0="从 MQTT 收到的消息",LF.MQTT_MESSAGE_TOOLTIP="",LF.MQTT_WAIT_MSG_HELPURL="https://mpython.readthedocs.io/zh/master/tutorials/advance/iot/mqtt.html#id2",LF.MQTT_WAIT_MSG_MESSAGE0="等待主题消息 以 %1 模式",LF.MQTT_WAIT_MSG_TOOLTIP="建议放在'一直重复'中运行",LF.MQTT_DISCONNECT_HELPURL="https://mpython.readthedocs.io/zh/master/tutorials/advance/iot/mqtt.html#id2",LF.MQTT_DISCONNECT_MESSAGE0="MQTT 断开连接",LF.MQTT_DISCONNECT_TOOLTIP="",LF.MQTT_LAST_WILL_HELPURL="https://mpython.readthedocs.io/zh/master/library/mPython/umqtt.simple.html?highlight=mqtt#MQTTClient.set_last_will",LF.MQTT_LAST_WILL_MESSAGE0="设置 MQTT 主题 %2 离线消息 %1",LF.MQTT_LAST_WILL_TOOLTIP="设置 MQTT last will 消息。应该在 connect() 之前调用。",LF.MQTT_LAST_WILL_HELPURL="https://mpython.readthedocs.io/zh/master/library/mPython/umqtt.simple.html?highlight=mqtt#MQTTClient.set_last_will",LF.MQTT_LAST_WILL_MESSAGE0="设置 MQTT 主题 %2 离线消息 %1",LF.MQTT_LAST_WILL_TOOLTIP="设置 MQTT last will 消息。应该在 connect() 之前调用。",LF.MPYTHON_SIOT_CONNECT_HELPURL="",LF.MPYTHON_SIOT_CONNECT_TOOLTIP="",LF.MPYTHON_SIOT_CONNECT_MESSAGE0="创建 SIoT 连接 %1 客户端ID %2 服务器 %3 用户 %4 密码 %5",LF.MPYTHON_SIOT_ISCONNECTED_HELPURL="",LF.MPYTHON_SIOT_ISCONNECTED_TOOLTIP="",LF.MPYTHON_SIOT_ISCONNECTED_MESSAGE0="SIoT 连接成功 ?",LF.MPYTHON_SIOT_SUBSCRIBE_HELPURL="",LF.MPYTHON_SIOT_SUBSCRIBE_TOOLTIP="",LF.MPYTHON_SIOT_SUBSCRIBE_MESSAGE0="SIoT 订阅主题",LF.MPYTHON_SIOT_SUBSCRIBE_EMPTY_TITLE="点击左边星号 订阅 SIoT 主题",LF.MPYTHON_SIOT_SUBSCRIBE_INPUT_WITH="SIoT 订阅 主题1",LF.MPYTHON_SIOT_SUBSCRIBE_ITEM_TITLE="主题",LF.MPYTHON_SIOT_SUBSCRIBE_ITEM_TOOLTIP="",LF.MPYTHON_SIOT_SUBSCRIBE_CONTAINER_TITLE_ADD="最多订阅 5 个主题",LF.MPYTHON_SIOT_SUBSCRIBE_CONTAINER_TOOLTIP="",LF.MPYTHON_SIOT_DISCONNECT_HELPURL="",LF.MPYTHON_SIOT_DISCONNECT_TOOLTIP="",LF.MPYTHON_SIOT_DISCONNECT_MESSAGE0="SIoT 断开连接",LF.MPYTHON_SIOT_MESSAGE_HELPURL="",LF.MPYTHON_SIOT_MESSAGE_TOOLTIP="",LF.MPYTHON_SIOT_MESSAGE_MESSAGE0="从 SIoT 收到的消息",LF.MPYTHON_SIOT_TOPIC1="主题1",LF.MPYTHON_SIOT_TOPIC2="主题2",LF.MPYTHON_SIOT_TOPIC3="主题3",LF.MPYTHON_SIOT_TOPIC4="主题4",LF.MPYTHON_SIOT_TOPIC5="主题5",LF.MPYTHON_SIOT_PUBLISH_HELPURL="",LF.MPYTHON_SIOT_PUBLISH_TOOLTIP="",LF.MPYTHON_SIOT_PUBLISH_MESSAGE0="SIoT 发送消息 %1 到 %2",LF.MPYTHON_SIOT_PUBLISH_TO_MESSAGE0="SIoT 发送消息 %1 到 主题 %2",LF.MPYTHON_SIOT_RECEIVE_HELPURL="",LF.MPYTHON_SIOT_RECEIVE_TOOLTIP="",LF.MPYTHON_SIOT_RECEIVE_MESSAGE0="当从 SIoT %1 收到消息时 %2 执行 %3",LF.MPYTHON_SIOT_RECEIVE_FROM_MESSAGE0="当从 SIoT 主题 %1 收到消息时 %2 执行 %3",LF.MPYTHON_IR_RECV_HELPURL="",LF.MPYTHON_IR_RECV_MESSAGE0="红外接收 整型 rx 引脚 %1",LF.MPYTHON_IR_RECV_TOOLTIP="第一次接收总为空",LF.MPYTHON_BLUEBIT_OLED_PRINT_HELPURL="",LF.MPYTHON_BLUEBIT_OLED_PRINT_MESSAGE0="bluebit OLED 显示 %1 x %2 y %3",LF.MPYTHON_BLUEBIT_OLED_PRINT_TOOLTIP="",LF.MPYTHON_BLUEBIT_OLED_INIT_HELPURL="",LF.MPYTHON_BLUEBIT_OLED_INIT_MESSAGE0="bluebit OLED 初始化 tx %1 rx %2",LF.MPYTHON_BLUEBIT_OLED_INIT_TOOLTIP="",LF.MPYTHON_BLUEBIT_OLED_CLEAR_HELPURL="",LF.MPYTHON_BLUEBIT_OLED_CLEAR_MESSAGE0="bluebit OLED 清空",LF.MPYTHON_BLUEBIT_OLED_CLEAR_TOOLTIP="",LF.MPYTHON_BLUEBIT_OLED_BMP_HELPURL="",LF.MPYTHON_BLUEBIT_OLED_BMP_MESSAGE0="bluebit OLED 显示图像 x %1 y %2 宽 %3 高 %4 16进制图像数据 %5",LF.MPYTHON_BLUEBIT_OLED_BMP_TOOLTIP="",LF.mpython_bme280_hum_tem_pre_MESSAGE0="%1",LF.mpython_bme280_hum_tem_pre_TOOLTIP="气压单位Pa, 温度单位摄氏度, 环境湿度单位%",LF.mpythonbox_sound_MESSAGE0="声音值",LF.mpythonbox_sound_TOOLTIP="采样数据,为0~4095。",LF.mpythonbox_sound_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mPythonBox/lib/mpython.html",LF.MPYTHONBOX_SLIDER_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mPythonBox/lib/mpython_box.html#mpython-box",LF.MPYTHONBOX_SLIDER_MESSAGE0="滑杆",LF.MPYTHONBOX_SLIDER_TOOLTIP="返回滑杆电阻采样值。范围0~4095。",LF.MPYTHONBOX_5BUTTON_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mPythonBox/lib/mpython_box.html#mpython-box",LF.MPYTHONBOX_5BUTTON_MESSAGE0="五向按键%1",LF.MPYTHONBOX_5BUTTON_TOOLTIP="",LF.MPYTHONBOX_MOTOR_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mPythonBox/lib/mpython_box.html#mpython-box",LF.MPYTHONBOX_MOTOR_MESSAGE0="马达 速度%1",LF.MPYTHONBOX_MOTOR_TOOLTIP="马达速度,范围±100。正值表示正转,负值则反。",LF.MPYTHONBOX_ULTRASONIC_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mPythonBox/lib/mpython_box.html#mpython_box.get_key",LF.MPYTHONBOX_ULTRASONIC_MESSAGE0="超声波",LF.MPYTHONBOX_ULTRASONIC_TOOLTIP="超声波测距,获取超声波传感器测距值,单位cm。范围3~340CM",LF.MPYTHONBOX_THEHUMANBODYINFRARE_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mPythonBox/lib/mpython_box.html#mpython_box.get_key",LF.MPYTHONBOX_THEHUMANBODYINFRARE_MESSAGE0="人体红外",LF.MPYTHONBOX_THEHUMANBODYINFRARE_TOOLTIP="返回人体红外触发值。当为1时,表示已触发;当为0时,表示未触发。",LF.MPYTHONBOX_RGB_pixel_HELPURL="",LF.MPYTHONBOX_RGB_pixel_MESSAGE0="设定第 %1列 %2行 R%3 G%4 B%5",LF.MPYTHONBOX_RGB_pixel_TOOLTIP="设定第多少列,行的RGB顏色",LF.MPYTHONBOX_RGB_get_pixel_HELPURL="",LF.MPYTHONBOX_RGB_get_pixel_MESSAGE0="返回 第%1列 %2行 RGB颜色",LF.MPYTHONBOX_RGB_get_pixel_TOOLTIP="返回第多少列,行位置的RGB颜色",LF.MPYTHONBOX_RGB_ImageText_HELPURL="",LF.MPYTHONBOX_RGB_ImageText_MESSAGE0="滚动显示文本%1 速度%2",LF.MPYTHONBOX_RGB_ImageText_TOOLTIP="滚动显示文本,亮度为0不亮,9最亮",LF.MPYTHONBOX_RGB_SetImage_HELPURL="",LF.MPYTHONBOX_RGB_SetImage_TOOLTIP="",LF.MPYTHONBOX_RGB_SetImage_MESSAGE0="创建图像 %1 第一行%2第二行%3第三行%4第四行%5第五行%6",LF.MPYTHONBOX_RGB_Image_HELPURL="",LF.MPYTHONBOX_RGB_Image_MESSAGE0="显示图像%1",LF.MPYTHONBOX_RGB_Image_TOOLTIP="显示图像",LF.MPYTHONBOX_RGB_SetImage_HELPURL="",LF.MPYTHONBOX_RGB_SetImage_MESSAGE0="创建图像 %1 第一行%2第二行%3第三行%4第四行%5第五行%6",LF.MPYTHONBOX_RGB_SetImage_TOOLTIP="创建新图像,每行每位数代表第几位灯,默认红色;亮度为0不亮,9最亮。",LF.MPYTHONBOX_RGB_SHOW_IMAGE_MESSAGE0="显示图像/文本 %1",LF.MPYTHONBOX_RGB_SHOW_IMAGE_TOOLTIP="显示图像或文本消息。",LF.MPYTHONBOX_RGB_SHOW_IMAGE_HELPURL="",LF.MPYTHONBOX_RGB_SHOW_IMAGEImport_MESSAGE0="显示图像 %1",LF.MPYTHONBOX_RGB_SHOW_IMAGEImport_TOOLTIP="显示图像。",LF.MPYTHONBOX_RGB_SHOW_IMAGEImport_HELPURL="",LF.MPYTHONBOX_RGB_SHOW_IMAGE_Copy_MESSAGE0="复制图像 %1",LF.MPYTHONBOX_RGB_SHOW_IMAGE_Copy_TOOLTIP="复制图像。",LF.MPYTHONBOX_RGB_SHOW_IMAGE_Copy_HELPURL="",LF.MPYTHONBOX_RGB_ImageCot_HELPURL="",LF.MPYTHONBOX_RGB_ImageCot_MESSAGE0="切剪图像%1 列%2 行%3 宽%4 高%5",LF.MPYTHONBOX_RGB_ImageCot_TOOLTIP="切剪图像",LF.MPYTHONBOX_RGB_IMAGE_BUILTINS_MESSAGE0="内置图像 %1",LF.MPYTHONBOX_RGB_IMAGE_BUILTINS_TOOLTIP="选择一个内置的图像。",LF.MPYTHONBOX_RGB_IMAGE_BUILTINS_HELPURL="",LF.MPYTHONBOX_RGB_IMAGE_SHIFT_MESSAGE0="平移图像 %1 %2 %3 位",LF.MPYTHONBOX_RGB_IMAGE_SHIFT_TOOLTIP="向特定方向移动图像,并返回移动后的结果。",LF.MPYTHONBOX_RGB_IMAGE_SHIFT_HELPURL="",LF.MPYTHONBOX_RGB_clear_HELPURL="",LF.MPYTHONBOX_RGB_clear_MESSAGE0="关闭所有 RGB 灯",LF.MPYTHONBOX_RGB_clear_TOOLTIP="",LF.MPYTHONBOX_RGB_pixel_return_HELPURL="",LF.MPYTHONBOX_RGB_pixel_return_MESSAGE0="返回第 %1列 %2行 颜色",LF.MPYTHONBOX_RGB_pixel_return_TOOLTIP="返回第多少列,行的RGB顏色",LF.MPYTHONBOX_TRIAXIAL_ACCELERATION_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython.html",LF.MPYTHONBOX_TRIAXIAL_ACCELERATION_MESSAGE0="%1轴加速度",LF.MPYTHONBOX_TRIAXIAL_ACCELERATION_TOOLTIP="单位g,范围-2~+2g。",LF.MPYTHONBOX_TRIAXIAL_AUGULAR_VELOCITY_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython.html",LF.MPYTHONBOX_TRIAXIAL_AUGULAR_VELOCITY_MESSAGE0="%1轴角速度",LF.MPYTHONBOX_TRIAXIAL_AUGULAR_VELOCITY_TOOLTIP="范围±500°/秒",LF.MPYTHONBOX_EULER_ANGLE_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython.html",LF.MPYTHONBOX_EULER_ANGLE_MESSAGE0="%1欧拉角",LF.MPYTHONBOX_EULER_ANGLE_TOOLTIP="返回当前欧拉角(Pitch,Roll,Yaw),单位角度",LF.MPYTHONBOX_QUATERNION_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython.html",LF.MPYTHONBOX_QUATERNION_MESSAGE0="%1四元数",LF.MPYTHONBOX_QUATERNION_TOOLTIP="返回当前四元数(w,x,y,z)",LF.MPYTHONBOX_CAMERA_LED_HELPURL="",LF.MPYTHONBOX_CAMERA_LED_MESSAGE0="摄像灯%1",LF.MPYTHONBOX_CAMERA_LED_TOOLTIP="led灯,分为打开和关闭两种状态",LF.LIST_FIRST_INDEX_HELPURL="",LF.LIST_FIRST_INDEX_MESSAGE0="项 %1 在列表 %2 %3 出现的位置",LF.LIST_FIRST_INDEX_TOOLTIP="",LF.MPYTHON_AI_LCD_INIT_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.lcd.init",LF.MPYTHON_AI_LCD_INIT_MESSAGE0="屏幕 初始化 ",LF.MPYTHON_AI_LCD_INIT_TOOLTIP="初始化 屏幕显示",LF.MPYTHON_AI_SENSOR_RESET_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/sensor.html#%E5%8D%95%E7%9B%AE%E6%91%84%E5%83%8F%E5%A4%B4%E9%87%8D%E7%BD%AE%E5%87%BD%E6%95%B0",LF.MPYTHON_AI_SENSOR_RESET_MESSAGE0="摄像头 初始化",LF.MPYTHON_AI_SENSOR_RESET_TOOLTIP="初始化单目摄像头",LF.MPYTHON_AI_SENSOR_ENABLE_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/sensor.html#%E8%8E%B7%E5%8F%96%E5%9B%BE%E5%83%8F",LF.MPYTHON_AI_SENSOR_ENABLE_MESSAGE0="摄像头%1",LF.MPYTHON_AI_SENSOR_ENABLE_TOOLTIP="获取图像",LF.MPYTHON_AI_LCD_TEXT_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/lcd.html#%E4%BE%8B%E7%A8%8B-1%EF%BC%9A-%E6%98%BE%E7%A4%BA%E8%8B%B1%E6%96%87",LF.MPYTHON_AI_LCD_TEXT_MESSAGE0="显示文本 x %1 y %2 内容 %3",LF.MPYTHON_AI_LCD_TEXT_TOOLTIP="仅支持字母和数字",LF.MPYTHON_AI_SENSOR_SKIP_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/sensor.html#%E8%B7%B3%E5%B8%A7",LF.MPYTHON_AI_SENSOR_SKIP_MESSAGE0="摄像头 跳过帧数%1 毫秒%2内的图像 ",LF.MPYTHON_AI_SENSOR_SKIP_TOOLTIP="摄像头跳过指定帧数或者跳过指定时间内的图像",LF.MPYTHON_AI_SENSOR_RETURN_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/sensor.html#%E5%88%86%E8%BE%A8%E7%8E%87%E5%AE%BD%E5%BA%A6",LF.MPYTHON_AI_SENSOR_RETURN_MESSAGE0="测 摄像头 获取%1",LF.MPYTHON_AI_SENSOR_RETURN_TOOLTIP="(AI)摄像头返回参数(宽高,图像帧的格式,图像帧的大小)",LF.MPYTHON_AI_SENSOR_SETS_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/sensor.html#%E8%AE%BE%E7%BD%AE%E5%AF%B9%E6%AF%94%E5%BA%A6",LF.MPYTHON_AI_SENSOR_SETS_MESSAGE0="摄像头 设置%1 为%2",LF.MPYTHON_AI_SENSOR_SETS_TOOLTIP="设置摄像头对比度,亮度,饱和度范围为[-2,+2]",LF.MPYTHON_AI_SENSOR_AUTO_GAIN_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/sensor.html#%E8%AE%BE%E7%BD%AE%E8%87%AA%E5%8A%A8%E5%A2%9E%E7%9B%8A",LF.MPYTHON_AI_SENSOR_AUTO_GAIN_MESSAGE0="摄像头 自动增益%1",LF.MPYTHON_AI_SENSOR_AUTO_GAIN_TOOLTIP="1开启摄像头自动增益 0关闭摄像头自动增益",LF.MPYTHON_AI_SENSOR_AUTO_WHITEBAL_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/sensor.html#%E8%AE%BE%E7%BD%AE%E8%87%AA%E5%8A%A8%E5%A2%9E%E7%9B%8A",LF.MPYTHON_AI_SENSOR_AUTO_WHITEBAL_MESSAGE0="摄像头 白平衡%1",LF.MPYTHON_AI_SENSOR_AUTO_WHITEBAL_TOOLTIP="设置摄像自动白平衡模式,默认打开。True为打开, False为关闭自动白平衡。若您想追踪颜色,则需关闭白平衡。",LF.MPYTHON_AI_SENSOR_LEVEL_MI_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/sensor.html#%E8%AE%BE%E7%BD%AE%E6%B0%B4%E5%B9%B3%E9%95%9C%E5%83%8F",LF.MPYTHON_AI_SENSOR_LEVEL_MI_MESSAGE0="摄像头 %1 %2",LF.MPYTHON_AI_SENSOR_LEVEL_MI_TOOLTIP="1 表示开启水平镜像 0 表示关闭水平镜像",LF.MPYTHON_AI_LCD_DISPLAY_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.lcd.display",LF.MPYTHON_AI_LCD_DISPLAY_MESSAGE0="屏幕 显示生效",LF.MPYTHON_AI_LCD_DISPLAY_TOOLTIP="可以在液晶屏上显示",LF.MPYTHON_AI_LCD_DISPLAY_SIZE_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.lcd.display",LF.MPYTHON_AI_LCD_DISPLAY_SIZE_MESSAGE0="图像 显示生效 x%1 y%2 宽%3 高%4",LF.MPYTHON_AI_LCD_DISPLAY_SIZE_TOOLTIP="可以在液晶屏上显示一张图片",LF.MPYTHON_AI_SENSOR_IMAGES_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/sensor.html#%E8%8E%B7%E5%8F%96%E5%9B%BE%E5%83%8F",LF.MPYTHON_AI_SENSOR_IMAGES_MESSAGE0="摄像头 获取图像",LF.MPYTHON_AI_SENSOR_IMAGES_TOOLTIP="控制摄像头捕捉图像",LF.MPYTHON_AI_IMAGE_FACEDETECT_HELPURL="https://maixpy.sipeed.com/zh/libs/Maix/kpu.html#%E8%BF%90%E8%A1%8Cyolo2%E7%BD%91%E7%BB%9C",LF.MPYTHON_AI_IMAGE_FACEDETECT_MESSAGE0="人脸识别",LF.MPYTHON_AI_IMAGE_FACEDETECT_TOOLTIP="",LF.MPYTHON_AI_LCD_SHOW_REC_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.draw_rectangle",LF.MPYTHON_AI_LCD_SHOW_REC_MESSAGE0="矩形%1 x%3 y%4 宽%5 高%6 颜色为 R%7 G%8 B%9 加粗%2",LF.MPYTHON_AI_LCD_SHOW_REC_TOOLTIP="在图像上绘制矩形",LF.MPYTHON_AI_LCD_SHOW_STRING_MESSAGE0="线条 x1%1 y1%2 到x2%3 y2%4 颜色为R%5 G%6 B%7 加粗%8",LF.MPYTHON_AI_LCD_SHOW_STRING_TOOLTIP="在图像上绘制线条",LF.MPYTHON_AI_LCD_SHOW_STRING_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.draw_rectangle",LF.MPYTHON_AI_LCD_CLEAR_ALL_MESSAGE0="屏幕 显示清空",LF.MPYTHON_AI_LCD_CLEAR_ALL_TOOLTIP="将液晶屏清空为黑色或者指定的颜色",LF.MPYTHON_AI_LCD_CLEAR_ALL_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.draw_rectangle",LF.MPYTHON_AI_LCD_return_colour_MESSAGE0="LCD 返回 x%1 y%2 颜色",LF.MPYTHON_AI_LCD_return_colour_TOOLTIP="返回某个坐标点的颜色",LF.MPYTHON_AI_LCD_return_colour_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.draw_rectangle",LF.MPYTHON_AI_LCD_SHOW_CIRCLE_MESSAGE0="圆形%1 x%2 y%3 半径%4 颜色为 R%5 G%6 B%7 加粗%8",LF.MPYTHON_AI_LCD_SHOW_CIRCLE_TOOLTIP="在图像上绘制圆形",LF.MPYTHON_AI_LCD_SHOW_CIRCLE_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.draw_rectangle",LF.MPYTHON_AI_LCD_TEXT_MOST_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.draw_rectangle",LF.MPYTHON_AI_LCD_TEXT_MOST_MESSAGE0="显示文本 x %1 y %2 内容 %3 颜色为R%4 G%5 B%6 字号%7",LF.MPYTHON_AI_LCD_TEXT_MOST_TOOLTIP="仅支持字母和数字",LF.MPYTHON_AI_LCD_SHOW_TEN_STRING_MESSAGE0="十字线 x%1 y%2 颜色为R%3 G%4 B%5 尺寸%6 加粗%7",LF.MPYTHON_AI_LCD_SHOW_TEN_STRING_TOOLTIP="在图像上绘制十字线",LF.MPYTHON_AI_LCD_SHOW_TEN_STRING_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.draw_rectangle",LF.MPYTHON_AI_LCD_SHOW_ARROWS_MESSAGE0="箭头 x1%1 y1%2 到x2%3 y2%4 颜色为R%5 G%6 B%7 加粗%8",LF.MPYTHON_AI_LCD_SHOW_ARROWS_TOOLTIP="在图像上绘制一个箭头",LF.MPYTHON_AI_LCD_SHOW_ARROWS_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.draw_rectangle",LF.MPYTHON_AI_LCD_SHOW_IMAGE_PIRCTURE_HELPURL=".https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.lcd.display",LF.MPYTHON_AI_LCD_SHOW_IMAGE_PIRCTURE_MESSAGE0="显示图像 路径%1",LF.MPYTHON_AI_LCD_SHOW_IMAGE_PIRCTURE_TOOLTIP="显示图像",LF.MPYTHON_AI_LCD_SHOW_IMAGE_HEAT_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.invert",LF.MPYTHON_AI_LCD_SHOW_IMAGE_HEAT_MESSAGE0="图像转换为%1",LF.MPYTHON_AI_LCD_SHOW_IMAGE_HEAT_TOOLTIP="黑白翻转是将二进制图像0(黑色)变为1(白色),1(白色)变为0(黑色),非常快速地翻转二进制图像中的所有像素值。",LF.MPYTHON_AI_LCD_SHOW_IMAGE_DESCARTES_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.linpolar",LF.MPYTHON_AI_LCD_SHOW_IMAGE_DESCARTES_MESSAGE0="图像 从笛卡尔坐标到%1 坐标重新投影 反向%2",LF.MPYTHON_AI_LCD_SHOW_IMAGE_DESCARTES_TOOLTIP="",LF.MPYTHON_AI_LCD_SHOW_IMAGE_EROSION_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.dilate",LF.MPYTHON_AI_LCD_SHOW_IMAGE_EROSION_MESSAGE0="图像 膨胀 级别%1",LF.MPYTHON_AI_LCD_SHOW_IMAGE_EROSION_TOOLTIP="膨胀就是对图像高亮部分进行“领域扩张”,效果图拥有比原图更大的高亮区域。",LF.MPYTHON_AI_LCD_SHOW_IMAGE_MIDDLE_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.midpoint",LF.MPYTHON_AI_LCD_SHOW_IMAGE_MIDDLE_MESSAGE0="图像 中点滤波 级别%1 滤波%2",LF.MPYTHON_AI_LCD_SHOW_IMAGE_MIDDLE_TOOLTIP="控制图像混合的最小/最大程度。0只适用于最小滤波,1仅用于最大滤波。",LF.MPYTHON_AI_LCD_SHOW_IMAGE_MODE_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.modehttps://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.mode",LF.MPYTHON_AI_LCD_SHOW_IMAGE_MODE_MESSAGE0="图像 众数滤波 级别%1",LF.MPYTHON_AI_LCD_SHOW_IMAGE_MODE_TOOLTIP="在图像上运行众数滤波,用相邻像素的模式替换每个像素。",LF.MPYTHON_AI_LCD_SHOW_IMAGE_INDISTINCT_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.mean",LF.MPYTHON_AI_LCD_SHOW_IMAGE_INDISTINCT_MESSAGE0="图像 模糊滤波 级别%1",LF.MPYTHON_AI_LCD_SHOW_IMAGE_INDISTINCT_TOOLTIP="使用盒式滤波器的标准均值模糊滤波。",LF.MPYTHON_AI_LCD_SHOW_IMAGE_CARTOON_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.cartoon",LF.MPYTHON_AI_LCD_SHOW_IMAGE_CARTOON_MESSAGE0="图像 卡通化 级别%1 起始像素差异%2 相邻像素差异%3",LF.MPYTHON_AI_LCD_SHOW_IMAGE_CARTOON_TOOLTIP="使图像卡通化",LF.MPYTHON_AI_LCD_SHOW_IMAGE_3D_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.rotation_corr",LF.MPYTHON_AI_LCD_SHOW_IMAGE_3D_MESSAGE0="图像 3D旋转 上下旋转%1 左右旋转%2 度数%3 左右移动%4 上下移动%5 缩放%6",LF.MPYTHON_AI_LCD_SHOW_IMAGE_3D_TOOLTIP="通过执行帧缓冲区的3D旋转来纠正图像中的透视问题。",LF.MPYTHON_AI_LCD_SHOW_ECTYPE_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.copy",LF.MPYTHON_AI_LCD_SHOW_ECTYPE_MESSAGE0="将图像的副本保存到SD卡 图像名%1 图像显示区域 x%2 y%3 宽%4 高%5",LF.MPYTHON_AI_LCD_SHOW_ECTYPE_TOOLTIP="将图像的副本保存到SD卡",LF.MPYTHON_AI_LCD_SHOW_ECTYPE_SHOW_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.save",LF.MPYTHON_AI_LCD_SHOW_ECTYPE_SHOW_MESSAGE0="创建一个图像对象的副本 复制图像区域 x%1 y%2 宽%3 高%4",LF.MPYTHON_AI_LCD_SHOW_ECTYPE_SHOW_TOOLTIP="创建一个图像对象的副本",LF.MPYTHON_AI2_FACE_TRACKING_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",LF.MPYTHON_AI2_FACE_TRACKING_MESSAGE0="(实验箱)选择训练模型 人脸",LF.MPYTHON_AI2_FACE_TRACKING_TOOLTIP="可以识别并且追踪人脸,显示人脸大小等",LF.MPYTHON_AI2_PHOTOGRAPH_TRACKING_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",LF.MPYTHON_AI2_PHOTOGRAPH_TRACKING_MESSAGE0="(实验箱)调用摄像头进行 人脸识别",LF.MPYTHON_AI2_PHOTOGRAPH_TRACKING_TOOLTIP="可以识别并且追踪人脸,显示人脸大小等",LF.MPYTHON_AI2_RESULT_FACE_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",LF.MPYTHON_AI2_RESULT_FACE_MESSAGE0="(实验箱)获取识别后人脸的 所有参数",LF.MPYTHON_AI2_RESULT_FACE_TOOLTIP="获取识别后人脸的 所有参数",LF.MPYTHON_AI2_RESULT_FACE_X_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",LF.MPYTHON_AI2_RESULT_FACE_X_MESSAGE0="(实验箱)获取识别后人脸的 x坐标",LF.MPYTHON_AI2_RESULT_FACE_X_TOOLTIP="获取识别后人脸的 x坐标",LF.MPYTHON_AI2_RESULT_FACE_Y_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",LF.MPYTHON_AI2_RESULT_FACE_Y_MESSAGE0="(实验箱)获取识别后人脸的 y坐标",LF.MPYTHON_AI2_RESULT_FACE_Y_TOOLTIP="获取识别后人脸的 y坐标",LF.MPYTHON_AI2_RESULT_FACE_W_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",LF.MPYTHON_AI2_RESULT_FACE_W_MESSAGE0="(实验箱)获取识别后人脸的 宽度",LF.MPYTHON_AI2_RESULT_FACE_W_TOOLTIP="获取识别后人脸的 宽度",LF.MPYTHON_AI2_RESULT_FACE_H_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",LF.MPYTHON_AI2_RESULT_FACE_H_MESSAGE0="(实验箱)获取识别后人脸的 高度",LF.MPYTHON_AI2_RESULT_FACE_H_TOOLTIP="获取识别后人脸的 高度",LF.MPYTHON_AI2_RESULT_FACE_VALUE_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",LF.MPYTHON_AI2_RESULT_FACE_VALUE_MESSAGE0="(实验箱)获取识别后人脸的 置信度",LF.MPYTHON_AI2_RESULT_FACE_VALUE_TOOLTIP="获取识别后人脸的 置信度",LF.MPYTHON_AI2_RESULT_FACE_OBJNUM_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",LF.MPYTHON_AI2_RESULT_FACE_OBJNUM_MESSAGE0="(实验箱)获取识别后人脸的 数量",LF.MPYTHON_AI2_RESULT_FACE_OBJNUM_TOOLTIP="获取识别后人脸的 数量",LF.MPYTHON_AI2_20class_TRACKING_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",LF.MPYTHON_AI2_20class_TRACKING_MESSAGE0="(实验箱)选择训练模型 20类",LF.MPYTHON_AI2_20class_TRACKING_TOOLTIP="可以识别20个类型,分别是0-19为飞机,自行车,鸟,船,瓶子,公交车,汽车,猫,椅子,奶牛,餐桌,狗,屋子,摩托车,人,盆栽,羊,沙发,火车,电视",LF.MPYTHON_AI2_PHOTOGRAPH_20TRACKING_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",LF.MPYTHON_AI2_PHOTOGRAPH_20TRACKING_MESSAGE0="(实验箱)调用摄像头进行 20类识别",LF.MPYTHON_AI2_PHOTOGRAPH_20TRACKING_TOOLTIP="调用摄像头进行 20类识别",LF.MPYTHON_AI2_RESULT_20CLASS_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",LF.MPYTHON_AI2_RESULT_20CLASS_MESSAGE0="(实验箱)获取识别后20类的 所有参数",LF.MPYTHON_AI2_RESULT_20CLASS_TOOLTIP="获取识别后20类的 所有参数",LF.MPYTHON_AI2_RESULT_20CLASS_X_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",LF.MPYTHON_AI2_RESULT_20CLASS_X_MESSAGE0="(实验箱)获取识别后20类的 x坐标",LF.MPYTHON_AI2_RESULT_20CLASS_X_TOOLTIP="获取识别后20类的 x坐标",LF.MPYTHON_AI2_RESULT_20CLASS_Y_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",LF.MPYTHON_AI2_RESULT_20CLASS_Y_MESSAGE0="(实验箱)获取识别后20类的 y坐标",LF.MPYTHON_AI2_RESULT_20CLASS_Y_TOOLTIP="获取识别后20类的 y坐标",LF.MPYTHON_AI2_RESULT_20CLASS_W_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",LF.MPYTHON_AI2_RESULT_20CLASS_W_MESSAGE0="(实验箱)获取识别后20类的 宽度",LF.MPYTHON_AI2_RESULT_20CLASS_W_TOOLTIP="获取识别后20类的 宽度",LF.MPYTHON_AI2_RESULT_20CLASS_H_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",LF.MPYTHON_AI2_RESULT_20CLASS_H_MESSAGE0="(实验箱)获取识别后20类的 高度",LF.MPYTHON_AI2_RESULT_20CLASS_H_TOOLTIP="获取识别后20类的 高度",LF.MPYTHON_AI2_RESULT_20CLASS_VALUE_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",LF.MPYTHON_AI2_RESULT_20CLASS_VALUE_MESSAGE0="(实验箱)获取识别后20类的 置信度",LF.MPYTHON_AI2_RESULT_20CLASS_VALUE_TOOLTIP="获取识别后20类的 置信度",LF.MPYTHON_AI2_RESULT_20CLASS_OBJNUM_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",LF.MPYTHON_AI2_RESULT_20CLASS_OBJNUM_MESSAGE0="(实验箱)获取识别后20类的 数量",LF.MPYTHON_AI2_RESULT_20CLASS_OBJNUM_TOOLTIP="获取识别后20类的 数量",LF.MPYTHON_AI2_RESULT_20CLASS_CLASSID_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",LF.MPYTHON_AI2_RESULT_20CLASS_CLASSID_MESSAGE0="(实验箱)获取识别后20类的 类型",LF.MPYTHON_AI2_RESULT_20CLASS_CLASSID_TOOLTIP="获取识别后20类的 类型可以放入获取识别的参数,可以识别20个类型,分别是0-19为飞机,自行车,鸟,船,瓶子,公交车,汽车,猫,椅子,奶牛,餐桌,狗,屋子,摩托车,人,盆栽,羊,沙发,火车,电视",LF.MPYTHON_AI2_RESULT_20CLASS_INDEX_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",LF.MPYTHON_AI2_RESULT_20CLASS_INDEX_MESSAGE0="(实验箱)获取识别后20类的 类型数量",LF.MPYTHON_AI2_RESULT_20CLASS_INDEX_TOOLTIP="获取识别后20类的 类型数量",LF.MPYTHON_AI2_NUMBER_DISCERN_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",LF.MPYTHON_AI2_NUMBER_DISCERN_MESSAGE0="(实验箱)选择训练模型 手写数字",LF.MPYTHON_AI2_NUMBER_DISCERN_TOOLTIP="选择训练模型 手写数字识别",LF.MPYTHON_AI2_RESULT_NUMBER_DISCERN_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",LF.MPYTHON_AI2_RESULT_NUMBER_DISCERN_MESSAGE0="(实验箱)调用摄像头进行 手写数字识别",LF.MPYTHON_AI2_RESULT_NUMBER_DISCERN_TOOLTIP="调用摄像头进行 手写数字识别",LF.MPYTHON_AI2_NUMBER_DETECT_ALL_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#id2",LF.MPYTHON_AI2_NUMBER_DETECT_ALL_MESSAGE0="(实验箱)获取识别后手写数字的 所有参数",LF.MPYTHON_AI2_NUMBER_DETECT_ALL_TOOLTIP="手写数字识别参数",LF.MPYTHON_AI2_NUMBER_DETECT_NUMBER_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#id2",LF.MPYTHON_AI2_NUMBER_DETECT_NUMBER_MESSAGE0="(实验箱)获取识别后手写数字的 数字",LF.MPYTHON_AI2_NUMBER_DETECT_NUMBER_TOOLTIP="手写数字识别 数字",LF.MPYTHON_AI2_NUMBER_DETECT_ADIENCE_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#id2",LF.MPYTHON_AI2_NUMBER_DETECT_ADIENCE_MESSAGE0="(实验箱)获取识别后手写数字的 置信度",LF.MPYTHON_AI2_NUMBER_DETECT_ADIENCE_TOOLTIP="手写数字 识别数字 置信度",LF.MPYTHON_AI_TRACE_COLOR_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.find_blobs",LF.MPYTHON_AI_TRACE_COLOR_MESSAGE0="(实验箱)追踪色块 LAB颜色%1 边界框小于%2 像素小于%3 过滤",LF.MPYTHON_AI_TRACE_COLOR_TOOLTIP="追踪色块",LF.MPYTHON_AI_TRACE_CILOR_DISPLAYTEN_HELPURL="",LF.MPYTHON_AI_TRACE_CILOR_DISPLAYTEN_MESSAGE0="(实验箱)追踪颜色 显示%1",LF.MPYTHON_AI_TRACE_CILOR_DISPLAYTEN_TOOLTIP="",LF.MPYTHON_AI_BLOB_ALL_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#blob",LF.MPYTHON_AI_BLOB_ALL_MESSAGE0="(实验箱)%1获取识别后色块的 所有参数",LF.MPYTHON_AI_BLOB_ALL_TOOLTIP="返回blob 类 -- 色块对象",LF.MPYTHON_AI_BLOB_X_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#blob",LF.MPYTHON_AI_BLOB_X_MESSAGE0="(实验箱)%1获取识别后色块的 x坐标",LF.MPYTHON_AI_BLOB_X_TOOLTIP="返回blob 类 -- 色块对象",LF.MPYTHON_AI_BLOB_Y_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#blob",LF.MPYTHON_AI_BLOB_Y_MESSAGE0="(实验箱)%1获取识别后色块的 y坐标",LF.MPYTHON_AI_BLOB_Y_TOOLTIP="返回blob 类 -- 色块对象",LF.MPYTHON_AI_BLOB_W_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#blob",LF.MPYTHON_AI_BLOB_W_MESSAGE0="(实验箱)%1获取识别后色块的 宽度",LF.MPYTHON_AI_BLOB_W_TOOLTIP="返回blob 类 -- 色块对象",LF.MPYTHON_AI_BLOB_H_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#blob",LF.MPYTHON_AI_BLOB_H_MESSAGE0="(实验箱)%1获取识别后色块的 高度",LF.MPYTHON_AI_BLOB_H_TOOLTIP="返回blob 类 -- 色块对象",LF.MPYTHON_AI_BLOB_NUMBER_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#blob",LF.MPYTHON_AI_BLOB_NUMBER_MESSAGE0="(实验箱)%1获取识别后色块的 数量",LF.MPYTHON_AI_BLOB_NUMBER_TOOLTIP="返回blob 类 -- 色块对象",LF.MPYTHON_AI_BLOB_CENTER_X_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#blob",LF.MPYTHON_AI_BLOB_CENTER_X_MESSAGE0="(实验箱)%1获取识别后色块的 中心x坐标",LF.MPYTHON_AI_BLOB_CENTER_X_TOOLTIP="返回blob 类 -- 色块对象",LF.MPYTHON_AI_BLOB_CENTER_Y_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#blob",LF.MPYTHON_AI_BLOB_CENTER_Y_MESSAGE0="(实验箱)%1获取识别后色块的 中心y坐标",LF.MPYTHON_AI_BLOB_CENTER_Y_TOOLTIP="返回blob 类 -- 色块对象",LF.MPYTHON_AI_BLOB_ORTHOGON_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#blob",LF.MPYTHON_AI_BLOB_ORTHOGON_MESSAGE0="(实验箱)%1获取识别后色块的 矩形",LF.MPYTHON_AI_BLOB_ORTHOGON_TOOLTIP="返回blob 类 -- 色块对象",LF.MPYTHON_AI_LCD_PIXEL_COLOUR_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html?highlight=get_pixel#mpython_classroom_kit.image.set_pixel",LF.MPYTHON_AI_LCD_PIXEL_COLOUR_MESSAGE0="屏幕 x%1 y%2 显示颜色 R%3 G%4 B%5",LF.MPYTHON_AI_LCD_PIXEL_COLOUR_TOOLTIP="屏幕显示颜色",LF.MPYTHON_AI_LCD_COLOUR_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.lcd.clear",LF.MPYTHON_AI_LCD_COLOUR_MESSAGE0="屏幕 初始化 显示颜色 R%1 G%2 B%3",LF.MPYTHON_AI_LCD_COLOUR_TOOLTIP="屏幕显示颜色",LF.MPYTHON_AI_SENSOR_PATTERN_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.camera.set_pixformat",LF.MPYTHON_AI_SENSOR_PATTERN_MESSAGE0="摄像头 初始化 像素模式 %1",LF.MPYTHON_AI_SENSOR_PATTERN_TOOLTIP="用于设置摄像头像素模式,有黑白和rgb彩色",LF.MPYTHON_DRILL_WEIGHT_MESSAGE0="初始化 训练 %1",LF.MPYTHON_DRILL_WEIGHT_TOOLTIP="",LF.MPYTHON_DRILL_WEIGHT_HELPURL="",LF.MPYTHON_DRILL_LINEAR_REGRESSION_HELPURL="",LF.MPYTHON_DRILL_LINEAR_REGRESSION_MESSAGE0="实例化 线性回归直线",LF.MPYTHON_DRILL_LINEAR_REGRESSION_TOOLTIP="",LF.MPYTHON_DRILL_TITLE_HELPURL="",LF.MPYTHON_DRILL_TITLE_MESSAGE0="标题%1 字号%2",LF.MPYTHON_DRILL_TITLE_TOOLTIP="",LF.MPYTHON_DRILL_LABEL_HELPURL="",LF.MPYTHON_DRILL_LABEL_MESSAGE0="标签%1 标题%2 字号%3",LF.MPYTHON_DRILL_LABEL_TOOLTIP="",LF.MPYTHON_DRILL_DRILL_REALITY_HELPURL="",LF.MPYTHON_DRILL_DRILL_REALITY_MESSAGE0="真实数据 符号标记%1 颜色为r%2 g%3 b%4 标题%5",LF.MPYTHON_DRILL_DRILL_REALITY_TOOLTIP="",LF.MPYTHON_DRILL_PREDICTED_REALITY_HELPURL="",LF.MPYTHON_DRILL_PREDICTED_REALITY_MESSAGE0="预测线性回归直线 符号标记%1 颜色为r%2 g%3 b%4 标题%5",LF.MPYTHON_DRILL_PREDICTED_REALITY_TOOLTIP="",LF.MPYTHON_DRILL_LEGEND_HELPURL="",LF.MPYTHON_DRILL_LEGEND_MESSAGE0="展示图例",LF.MPYTHON_DRILL_LEGEND_TOOLTIP="",LF.MPYTHON_DRILL_SHOW_HELPURL="",LF.MPYTHON_DRILL_SHOW_MESSAGE0="显示图片",LF.MPYTHON_DRILL_SHOW_TOOLTIP="",LF.MPYTHON_DRILL_DRILL_PRINT_HELPURL="",LF.MPYTHON_DRILL_DRILL_PRINT_MESSAGE0="输入测试数值%1",LF.MPYTHON_DRILL_DRILL_PRINT_TOOLTIP="",LF.MPYTHON_DRILL_DRILL_full_line="实线",LF.MPYTHON_DRILL_DRILL_dash_line="破折线",LF.MPYTHON_DRILL_DRILL_chain_line="点划线",LF.MPYTHON_DRILL_DRILL_imaginary_line="虚线",LF.MPYTHON_DRILL_DRILL_dot="点",LF.MPYTHON_DRILL_DRILL_pixel="像素",LF.MPYTHON_DRILL_DRILL_solid_rim="实心圈",LF.MPYTHON_DRILL_DRILL_down_triangle="下三角",LF.MPYTHON_DRILL_DRILL_up_triangle="上三角",LF.MPYTHON_DRILL_DRILL_right_triangle="右三角",LF.MPYTHON_DRILL_DRILL_left_triangle="左三角",LF.MPYTHON_DRILL_DRILL_down_flower_triangle="下花三角",LF.MPYTHON_DRILL_DRILL_up_flower_triangle="上花三角",LF.MPYTHON_DRILL_DRILL_right_flower_triangle="右花三角",LF.MPYTHON_DRILL_DRILL_left_flower_triangle="左花三角",LF.MPYTHON_DRILL_DRILL_solid_square="实心方形",LF.MPYTHON_DRILL_DRILL_solid_pentagon="实心五角",LF.MPYTHON_DRILL_DRILL_star="星形",LF.MPYTHON_DRILL_DRILL_vertical_hexagon="竖六边形",LF.MPYTHON_DRILL_DRILL_across_hexagon="横六边形",LF.MPYTHON_DRILL_DRILL_cross="十字",LF.MPYTHON_DRILL_DRILL_X="X",LF.MPYTHON_DRILL_DRILL_rhombus="菱形",LF.MPYTHON_DRILL_DRILL_thin_rhombus="瘦菱形",LF.MPYTHON_DRILL_DRILL_vertical_line="垂直线",LF.MPYTHONS_FLOWER_DE_LUCE_INITIALIZE_HELPURL="",LF.MPYTHONS_FLOWER_DE_LUCE_INITIALIZE_MESSAGE0="初始化 鸢尾花数据集",LF.MPYTHONS_FLOWER_DE_LUCE_INITIALIZE_TOOLTIP="采用Python的Sklearn机器学习库中自带的数据集——鸢尾花数据集。简单分析数据集之间特征的关系图,根据花瓣长度、花瓣宽度、花萼长度、花萼宽度四个特征进行绘图Iris plants 数据集可以从KEEL dataset数据集网站获取,也可以直接从Sklearn.datasets机器学习包得到。数据集共包含4个特征变量、1个类别变量,共有150个样本。类别变量分别对应鸢尾花的三个亚属,分别是山鸢尾 (Iris-setosa)、变色鸢尾(Iris-versicolor)和维吉尼亚鸢尾(Iris-virginica) 分别用[0,1,2]来做映射",LF.MPYTHONS_FLOWER_DE_LUCE_PCA_HELPURL="",LF.MPYTHONS_FLOWER_DE_LUCE_PCA_MESSAGE0="鸢尾花 主成分分析",LF.MPYTHONS_FLOWER_DE_LUCE_PCA_TOOLTIP="",LF.MPYTHONS_FLOWER_DE_LUCE_FA3D_HELPURL="",LF.MPYTHONS_FLOWER_DE_LUCE_FA3D_MESSAGE0="鸢尾花 因子分析 3D",LF.MPYTHONS_FLOWER_DE_LUCE_FA3D_TOOLTIP="",LF.MPYTHONS_FLOWER_DE_LUCE_FA_HELPURL="",LF.MPYTHONS_FLOWER_DE_LUCE_FA_MESSAGE0="鸢尾花 因子分析",LF.MPYTHONS_FLOWER_DE_LUCE_FA_TOOLTIP="",LF.MPYTHONS_FLOWER_DE_LUCE_PCA_DISPLAY_HELPURL="",LF.MPYTHONS_FLOWER_DE_LUCE_PCA_DISPLAY_MESSAGE0="预测图示 鸢尾花类型%1 呈现内容 x%3 y%4 呈现种类%2 颜色为 r%5 g%6 b%7 标题%8 向上合并%9",LF.MPYTHONS_FLOWER_DE_LUCE_PCA_DISPLAY_TOOLTIP="",LF.MPYTHONS_FLOWER_DE_LUCE_DATA_HELPURL="",LF.MPYTHONS_FLOWER_DE_LUCE_DATA_MESSAGE0="预测图示 呈现内容 x%1 y%2 呈现种类%3 颜色为 r%4 g%5 b%6 标题%7",LF.MPYTHONS_FLOWER_DE_LUCE_DATA_TOOLTIP="",LF.MPYTHONS_FLOWER_DE_LUCE_DATA3D_HELPURL="",LF.MPYTHONS_FLOWER_DE_LUCE_DATA3D_MESSAGE0="3D 预测图示 呈现内容 x朝向%1 y朝向%2 z朝向%3 颜色为 r%4 g%5 b%6 标题%7",LF.MPYTHONS_FLOWER_DE_LUCE_DATA3D_TOOLTIP="",LF.MPYTHONS_FLOWER_DE_LUCE_TITLE_HELPURL="",LF.MPYTHONS_FLOWER_DE_LUCE_TITLE_MESSAGE0="标题%1 字号%2",LF.MPYTHONS_FLOWER_DE_LUCE_TITLE_TOOLTIP="",LF.MPYTHONS_FLOWER_DE_LUCE_LABEL_HELPURL="",LF.MPYTHONS_FLOWER_DE_LUCE_LABEL_MESSAGE0="标签%1 标题%2 字号%3",LF.MPYTHONS_FLOWER_DE_LUCE_LABEL_TOOLTIP="",LF.MPYTHONS_FLOWER_DE_LUCE_TITLE3D_HELPURL="",LF.MPYTHONS_FLOWER_DE_LUCE_TITLE3D_MESSAGE0="3D 标题%1 字号%2",LF.MPYTHONS_FLOWER_DE_LUCE_TITLE3D_TOOLTIP="",LF.MPYTHONS_FLOWER_DE_LUCE_LABEL3D_HELPURL="",LF.MPYTHONS_FLOWER_DE_LUCE_LABEL3D_MESSAGE0="3D 标签%1 标题%2 字号%3",LF.MPYTHONS_FLOWER_DE_LUCE_LABEL3D_TOOLTIP="",LF.MPYTHONS_FLOWER_DE_LUCE_LEGEND_HELPURL="",LF.MPYTHONS_FLOWER_DE_LUCE_LEGEND_MESSAGE0="展示图例",LF.MPYTHONS_FLOWER_DE_LUCE_LEGEND_TOOLTIP="",LF.MPYTHONS_FLOWER_DE_LUCE_SHOW_HELPURL="",LF.MPYTHONS_FLOWER_DE_LUCE_SHOW_MESSAGE0="显示图片",LF.MPYTHONS_FLOWER_DE_LUCE_SHOW_TOOLTIP="",LF.MPYTHONS_FLOWER_DE_LUCE_LOAD_IRIS_HELPURL="",LF.MPYTHONS_FLOWER_DE_LUCE_LOAD_IRIS_MESSAGE0="花萼和花瓣的x,y坐标",LF.MPYTHONS_FLOWER_DE_LUCE_LOAD_IRIS_TOOLTIP="共150条记录,分别代表50条山鸢尾 (Iris-setosa)、变色鸢尾(Iris-versicolor)、维吉尼亚鸢尾(Iris-virginica)",LF.MPYTHONS_FLOWER_DE_LUCE_Iris_setosa="山鸢尾",LF.MPYTHONS_FLOWER_DE_LUCE_Iris_versicolor="变色鸢尾",LF.MPYTHONS_FLOWER_DE_LUCE_Iris_virginica="维吉尼亚鸢尾",LF.MPYTHONS_FLOWER_DE_LUCE_scatter_diagram="散点图",LF.MPYTHONS_FLOWER_DE_LUCE_kde_diagram="kde图",LF.MPYTHONS_FLOWER_DE_LUCE_box_diagram="箱图",LF.MPYTHONS_FLOWER_DE_LUCE_merge="合并",LF.MPYTHONS_FLOWER_DE_LUCE_not_merge="不合并",LF.MPYTHONS_FLOWER_DE_LUCE_calyx_length="花萼长度",LF.MPYTHONS_FLOWER_DE_LUCE_calyx_width="花萼宽度",LF.MPYTHONS_FLOWER_DE_LUCE_petal_length="花瓣长度",LF.MPYTHONS_FLOWER_DE_LUCE_petal_width="花瓣宽度",LF.MPYTHONS_CONVERT_PICTURE_HELPURL="",LF.MPYTHONS_CONVERT_PICTURE_MESSAGE0="将图片转换为28²二值图%1 待处理的图片存储路径%2 处理后的图片存储路径%3 格式%4",LF.MPYTHONS_CONVERT_PICTURE_TOOLTIP="掌控板通过串口把WIF传给语音助手",LF.MPYTHONS_NUMBER_REPERTOIRE_HELPURL="",LF.MPYTHONS_NUMBER_REPERTOIRE_MESSAGE0="查找解析 手写数字数据 存储路径%1",LF.MPYTHONS_NUMBER_REPERTOIRE_TOOLTIP="使用手写数字字符库",LF.MPYTHONS_SHOW_NUMBER_PATH_HELPURL="",LF.MPYTHONS_SHOW_NUMBER_PATH_MESSAGE0="手写数字图像 存储路径%1",LF.MPYTHONS_SHOW_NUMBER_PATH_TOOLTIP="手写数字图像的路径",LF.MPYTHONS_SHOW_NUMBER_HELPURL="",LF.MPYTHONS_SHOW_NUMBER_MESSAGE0="显示手写数字图像",LF.MPYTHONS_SHOW_NUMBER_TOOLTIP="显示手写数字图像",LF.MPYTHONS_NUMBER_RECOGNITION_HELPURL="",LF.MPYTHONS_NUMBER_RECOGNITION_MESSAGE0="识别手写数字图像 存储路径%1",LF.MPYTHONS_NUMBER_RECOGNITION_TOOLTIP="识别手写数字图像的路径",LF.MPYTHONS_NUMBER_PLACEHOLDER_HELPURL="",LF.MPYTHONS_NUMBER_PLACEHOLDER_MESSAGE0="创建变量%1 初始化 神经网络张量 变量名%2",LF.MPYTHONS_NUMBER_PLACEHOLDER_TOOLTIP="",LF.MPYTHON_DRILL_RESHAPE_MESSAGE0="创建变量%1 将输入照片变量 %2 转换为 神经网络输出张量%3",LF.MPYTHON_DRILL_RESHAPE_TOOLTIP="",LF.MPYTHON_DRILL_RESHAPE_HELPURL="",LF.MPYTHON_NUMBER_CONV_WEIGHT_MESSAGE0="创建变量%1 共享变量名%2 初始化模式%3",LF.MPYTHON_NUMBER_CONV_WEIGHT_TOOLTIP="",LF.MPYTHON_NUMBER_CONV_WEIGHT_HELPURL="",LF.MPYTHON_NUMBER_INITIALIZER_MESSAGE0="产生截断正态分布随机数 输出张量%1 标准差%2",LF.MPYTHON_NUMBER_INITIALIZER_TOOLTIP="",LF.MPYTHON_NUMBER_INITIALIZER_HELPURL="",LF.MPYTHON_NUMBER_CONSTANT_MESSAGE0="创建常量 数值%1 输出张量%2",LF.MPYTHON_NUMBER_CONSTANT_TOOLTIP="",LF.MPYTHON_NUMBER_CONSTANT_HELPURL="",LF.MPYTHON_NUMBER_CONV2D_MESSAGE0="神经网络输出张量%1 共享变量%2 步长%3 填充%4",LF.MPYTHON_NUMBER_CONV2D_TOOLTIP="",LF.MPYTHON_NUMBER_CONV2D_HELPURL="",LF.MPYTHON_NUMBER_CONV_BIASES_MESSAGE0="张量%1",LF.MPYTHON_NUMBER_CONV_BIASES_TOOLTIP="",LF.MPYTHON_NUMBER_CONV_BIASES_HELPURL="",LF.MPYTHON_NUMBER_CONV_CONV2D_MESSAGE0="卷积二维层 变量%1 %2",LF.MPYTHON_NUMBER_CONV_CONV2D_TOOLTIP="",LF.MPYTHON_NUMBER_CONV_CONV2D_HELPURL="",LF.MPYTHON_NUMBER_RELU_MESSAGE0="创建变量%1 Relu正向激励函数 卷积二维层%2",LF.MPYTHON_NUMBER_RELU_TOOLTIP="",LF.MPYTHON_NUMBER_RELU_HELPURL="",LF.MPYTHON_NUMBER_MAX_POOL_MESSAGE0="池化二维层 变量%1 卷积层%2 池化窗口%3 步长%4 填充%5",LF.MPYTHON_NUMBER_MAX_POOL_TOOLTIP="",LF.MPYTHON_NUMBER_MAX_POOL_HELPURL="",LF.MPYTHON_NUMBER_MATMUL_MESSAGE0="两个参数的对应元素各自相乘 x%1 y%2",LF.MPYTHON_NUMBER_MATMUL_TOOLTIP="",LF.MPYTHON_NUMBER_MATMUL_HELPURL="",LF.MPYTHON_NUMBER_ADD_MESSAGE0="全连接层 变量%1 两个参数的元素相加 x%2 y%3",LF.MPYTHON_NUMBER_ADD_TOOLTIP="",LF.MPYTHON_NUMBER_ADD_HELPURL="",LF.MPYTHON_NUMBER_SOFTMAX_MESSAGE0="创建变量%1 预测模型准确度 变量名%2",LF.MPYTHON_NUMBER_SOFTMAX_TOOLTIP="",LF.MPYTHON_NUMBER_SOFTMAX_HELPURL="",LF.MPYTHON_NUMBER_REDUCE_MEAN_MESSAGE0="创建变量%1 损失函数%2",LF.MPYTHON_NUMBER_REDUCE_MEAN_TOOLTIP="",LF.MPYTHON_NUMBER_REDUCE_MEAN_HELPURL="",LF.MPYTHON_NUMBER_LOG_MESSAGE0="自然对数 %1",LF.MPYTHON_NUMBER_LOG_TOOLTIP="",LF.MPYTHON_NUMBER_LOG_HELPURL="",LF.MPYTHON_NUMBER_REDUCE_SUM_MESSAGE0="压缩求和%1 维度%2",LF.MPYTHON_NUMBER_REDUCE_SUM_TOOLTIP="因为log函数是单调递增的,所以logP(Y|X)也会达到最大值,因此在前面加上负号之后,最大化P(Y|X)就等价于最小化L了。",LF.MPYTHON_NUMBER_REDUCE_SUM_HELPURL="https://www.cnblogs.com/guoyaohua/p/9217206.html",LF.MPYTHON_NUMBER_TRAIN_MESSAGE0="优化学习速率 %1",LF.MPYTHON_NUMBER_TRAIN_TOOLTIP="",LF.MPYTHON_NUMBER_TRAIN_HELPURL="",LF.MPYTHON_NUMBER_MINIMIZE_MESSAGE0="创建变量%1 优化张量%2",LF.MPYTHON_NUMBER_MINIMIZE_TOOLTIP="",LF.MPYTHON_NUMBER_MINIMIZE_HELPURL="",LF.MPYTHON_NUMBER_INIT_MESSAGE0="初始化模型 完成",LF.MPYTHON_NUMBER_INIT_TOOLTIP="",LF.MPYTHON_NUMBER_INIT_HELPURL="",LF.MPYTHON_NUMBER_TRAIN_TEST_MESSAGE0="选择 手写数字集%1 数量%2",LF.MPYTHON_NUMBER_TRAIN_TEST_TOOLTIP="",LF.MPYTHON_NUMBER_TRAIN_TEST_HELPURL="",LF.MPYTHON_NUMBER_SESSION_RUN_MESSAGE0="启动数据流图会话进行计算 会话%1 图片%2 标签%3",LF.MPYTHON_NUMBER_SESSION_RUN_TOOLTIP="",LF.MPYTHON_NUMBER_SESSION_RUN_HELPURL="",LF.MPYTHON_NUMBER_SESSION_RUN2_MESSAGE0="启动数据流图会话进行计算 会话%1 图片%2 标签%3",LF.MPYTHON_NUMBER_SESSION_RUN2_TOOLTIP="",LF.MPYTHON_NUMBER_SESSION_RUN2_HELPURL="",LF.MPYTHON_NUMBER_SESSION_RUN3_MESSAGE0="预测模型%1 拟合度%2 会话%3",LF.MPYTHON_NUMBER_SESSION_RUN3_TOOLTIP="",LF.MPYTHON_NUMBER_SESSION_RUN3_HELPURL="",LF.MPYTHON_NUMBER_EQUAL_MESSAGE0="两个张量的每一维是否相等 x%1 y%2",LF.MPYTHON_NUMBER_EQUAL_TOOLTIP="",LF.MPYTHON_NUMBER_EQUAL_HELPURL="",LF.MPYTHON_NUMBER_ARGMAX_MESSAGE0="张量 %1 按%2比较返回最大值的索引",LF.MPYTHON_NUMBER_ARGMAX_TOOLTIP="",LF.MPYTHON_NUMBER_ARGMAX_HELPURL="",LF.MPYTHON_NUMBER_CAST_MESSAGE0="转为浮点型 %1",LF.MPYTHON_NUMBER_CAST_TOOLTIP="",LF.MPYTHON_NUMBER_CAST_HELPURL="",LF.MPYTHONS_NUMBER_SAVER_SAVE_HELPURL="",LF.MPYTHONS_NUMBER_SAVER_SAVE_MESSAGE0="手写数字识别模型 变量名%1 存储路径%2",LF.MPYTHONS_NUMBER_SAVER_SAVE_TOOLTIP="MNIST手写数字识别模型保存路径",LF.MPYTHONS_NUMBER_SAVER_RESTORE_HELPURL="",LF.MPYTHONS_NUMBER_SAVER_RESTORE_MESSAGE0="加载模型 %1 存储路径%2",LF.MPYTHONS_NUMBER_SAVER_RESTORE_TOOLTIP="加载模型",LF.MPYTHONS_NUMBER_SAME="包含边界",LF.MPYTHONS_NUMBER_VALID="不包含边界",LF.MPYTHONS_NUMBER_train="训练",LF.MPYTHONS_NUMBER_test="测试",LF.MPYTHONS_NUMBER_row="行",LF.MPYTHONS_NUMBER_rank="列",LF.MPYTHONS_NUMBERNEW_INITIALIZE_HELPURL="",LF.MPYTHONS_NUMBERNEW_INITIALIZE_MESSAGE0="初始化 张量 载入mnist数据集",LF.MPYTHONS_NUMBERNEW_INITIALIZE_TOOLTIP="",LF.MPYTHONS_NUMBERNEW_CONVOLUTIONAL_ONE_HELPURL="",LF.MPYTHONS_NUMBERNEW_CONVOLUTIONAL_ONE_MESSAGE0="卷积 一 层",LF.MPYTHONS_NUMBERNEW_CONVOLUTIONAL_ONE_TOOLTIP="",LF.MPYTHONS_NUMBERNEW_POOLING_ONE_HELPURL="",LF.MPYTHONS_NUMBERNEW_POOLING_ONE_MESSAGE0="池化 一 层",LF.MPYTHONS_NUMBERNEW_POOLING_ONE_TOOLTIP="",LF.MPYTHONS_NUMBERNEW_CONVOLUTIONAL_TWO_HELPURL="",LF.MPYTHONS_NUMBERNEW_CONVOLUTIONAL_TWO_MESSAGE0="卷积 二 层",LF.MPYTHONS_NUMBERNEW_CONVOLUTIONAL_TWO_TOOLTIP="",LF.MPYTHONS_NUMBERNEW_POOLING_TWO_HELPURL="",LF.MPYTHONS_NUMBERNEW_POOLING_TWO_MESSAGE0="池化 二 层",LF.MPYTHONS_NUMBERNEW_POOLING_TWO_TOOLTIP="",LF.MPYTHONS_NUMBERNEW_CONNECT_ONE_HELPURL="",LF.MPYTHONS_NUMBERNEW_CONNECT_ONE_MESSAGE0="全连接 一 层",LF.MPYTHONS_NUMBERNEW_CONNECT_ONE_TOOLTIP="",LF.MPYTHONS_NUMBERNEW_CONNECT_TWO_HELPURL="",LF.MPYTHONS_NUMBERNEW_CONNECT_TWO_MESSAGE0="全连接 二 层",LF.MPYTHONS_NUMBERNEW_CONNECT_TWO_TOOLTIP="",LF.MPYTHONS_NUMBERNEW_LOSS_HELPURL="",LF.MPYTHONS_NUMBERNEW_LOSS_MESSAGE0="配置Adam优化器 学习速率为%1",LF.MPYTHONS_NUMBERNEW_LOSS_TOOLTIP="学习速率为0.001~0.000001之间",LF.MPYTHONS_NUMBERNEW_TENSORFLOW_HELPURL="",LF.MPYTHONS_NUMBERNEW_TENSORFLOW_MESSAGE0="初始化 tensorflow模型%1 训练模型%2 步数%3",LF.MPYTHONS_NUMBERNEW_TENSORFLOW_TOOLTIP="步数不能小于10",LF.MPYTHONS_NUMBERNEW_TENSORFLOW_STATE_HELPURL="",LF.MPYTHONS_NUMBERNEW_TENSORFLOW_STATE_MESSAGE0="模型训练准确率",LF.MPYTHONS_NUMBERNEW_TENSORFLOW_STATE_TOOLTIP="",LF.MPYTHONS_NUMBERNEW_TENSORFLOW_TRAIN_HELPURL="",LF.MPYTHONS_NUMBERNEW_TENSORFLOW_TRAIN_MESSAGE0="预测 训练正确率",LF.MPYTHONS_NUMBERNEW_TENSORFLOW_TRAIN_TOOLTIP="",LF.MPYTHONS_NUMBERNEW_TENSORFLOW_NUMBER_HELPURL="",LF.MPYTHONS_NUMBERNEW_TENSORFLOW_NUMBER_MESSAGE0="预测 手写数字%1",LF.MPYTHONS_NUMBERNEW_TENSORFLOW_NUMBER_TOOLTIP="仅支持28*28像素的黑白图片",LF.MPYTHONS_NUMBERNEW_TENSORFLOW_IMAGE_HELPURL="",LF.MPYTHONS_NUMBERNEW_TENSORFLOW_IMAGE_MESSAGE0="显示图片%1",LF.MPYTHONS_NUMBERNEW_TENSORFLOW_IMAGE_TOOLTIP="",LF.MPYTHONS_FACE_RECOGNITION_CAMERA_HELPURL="",LF.MPYTHONS_FACE_RECOGNITION_CAMERA_MESSAGE0="调用摄像头 %1",LF.MPYTHONS_FACE_RECOGNITION_CAMERA_TOOLTIP="调用笔记本内置摄像头,所以参数为0,如果有其他的摄像头可以调整参数为1,2",LF.MPYTHONS_FACE_RECOGNITION_CAMERA_OFF_HELPURL="",LF.MPYTHONS_FACE_RECOGNITION_CAMERA_OFF_MESSAGE0="关闭摄像头",LF.MPYTHONS_FACE_RECOGNITION_CAMERA_OFF_TOOLTIP="",LF.MPYTHONS_FACE_RECOGNITION_WINDOWS_DELETE_HELPURL="",LF.MPYTHONS_FACE_RECOGNITION_WINDOWS_DELETE_MESSAGE0="删除所有窗口",LF.MPYTHONS_FACE_RECOGNITION_WINDOWS_DELETE_TOOLTIP="",LF.MPYTHONS_FACE_RECOGNITION_IMPORT_MODEL_SITE_HELPURL="",LF.MPYTHONS_FACE_RECOGNITION_IMPORT_MODEL_SITE_MESSAGE0="加载模型 存储路径%1",LF.MPYTHONS_FACE_RECOGNITION_IMPORT_MODEL_SITE_TOOLTIP="",LF.MPYTHONS_FACE_RECOGNITION_READ_IMAGES_HELPURL="",LF.MPYTHONS_FACE_RECOGNITION_READ_IMAGES_MESSAGE0="从摄像头读取图片",LF.MPYTHONS_FACE_RECOGNITION_READ_IMAGES_TOOLTIP="ret如果有读取图片就True,否则false;第二个参数是frame,是当前截取一帧的图片。",LF.MPYTHONS_FACE_RECOGNITION_GRAY_IMAGES_HELPURL="",LF.MPYTHONS_FACE_RECOGNITION_GRAY_IMAGES_MESSAGE0="转为灰度图片",LF.MPYTHONS_FACE_RECOGNITION_GRAY_IMAGES_TOOLTIP="",LF.MPYTHONS_FACE_RECOGNITION_DETECTION_FACES_HELPURL="",LF.MPYTHONS_FACE_RECOGNITION_DETECTION_FACES_MESSAGE0="检测人脸 每次图像尺寸减小比例%1",LF.MPYTHONS_FACE_RECOGNITION_DETECTION_FACES_TOOLTIP="",LF.MPYTHONS_FACE_DISPLAY_RECOGNITION_ORTHOGON_HELPURL="",LF.MPYTHONS_FACE_DISPLAY_RECOGNITION_ORTHOGON_MESSAGE0="人脸区域显示矩形框 颜色为 红%1 绿%2 蓝%3",LF.MPYTHONS_FACE_DISPLAY_RECOGNITION_ORTHOGON_TOOLTIP="",LF.MPYTHONS_FACE_RECOGNITIONR_PSTORAGE_PICTURE_HELPURL="",LF.MPYTHONS_FACE_RECOGNITIONR_PSTORAGE_PICTURE_MESSAGE0="保存图像 位置%1 ID%2 编号%3",LF.MPYTHONS_FACE_RECOGNITIONR_PSTORAGE_PICTURE_TOOLTIP="",LF.MPYTHONS_FACE_RECOGNITIONR_PRESERVE_PICTURE_HELPURL="",LF.MPYTHONS_FACE_RECOGNITIONR_PRESERVE_PICTURE_MESSAGE0="窗口中显示图像 文件名%1",LF.MPYTHONS_FACE_RECOGNITIONR_PRESERVE_PICTURE_TOOLTIP="",LF.MPYTHONS_FACE_RECOGNITIONR_ESC_HELPURL="",LF.MPYTHONS_FACE_RECOGNITIONR_ESC_MESSAGE0="通过esc键 退出",LF.MPYTHONS_FACE_RECOGNITIONR_ESC_TOOLTIP="在窗口置顶时使用才有效果",LF.MPYTHONS_FACE_RECOGNITIONR_HELPURL="",LF.MPYTHONS_FACE_RECOGNITIONR_MESSAGE0="获得人脸在图像中的坐标值 人脸%1",LF.MPYTHONS_FACE_RECOGNITIONR_TOOLTIP="",LF.MPYTHONS_FACE_RECOGNITION_JUDGE_FACES_HELPURL="",LF.MPYTHONS_FACE_RECOGNITION_JUDGE_FACES_MESSAGE0="是否有读取图片",LF.MPYTHONS_FACE_RECOGNITION_JUDGE_FACES_TOOLTIP="",LF.MPYTHONS_FACE_RECOGNITION_JUDGE_CAMERA_HELPURL="",LF.MPYTHONS_FACE_RECOGNITION_JUDGE_CAMERA_MESSAGE0="是否打开摄像头",LF.MPYTHONS_FACE_RECOGNITION_JUDGE_CAMERA_TOOLTIP="",LF.MPYTHONS_FACE_RECOGNITION_ACQUIRE_ID_PICTURE_HELPURL="",LF.MPYTHONS_FACE_RECOGNITION_ACQUIRE_ID_PICTURE_MESSAGE0="获取照片及id 照片存储路径%1",LF.MPYTHONS_FACE_RECOGNITION_ACQUIRE_ID_PICTURE_TOOLTIP="",LF.MPYTHONS_FACE_RECOGNITION_INITIALIZE_TRANI_MODEL_HELPURL="",LF.MPYTHONS_FACE_RECOGNITION_INITIALIZE_TRANI_MODEL_MESSAGE0="初始化训练模型",LF.MPYTHONS_FACE_RECOGNITION_INITIALIZE_TRANI_MODEL_TOOLTIP="初始化训练模型",LF.MPYTHONS_FACE_RECOGNITION_START_DRILL_HELPURL="",LF.MPYTHONS_FACE_RECOGNITION_START_DRILL_MESSAGE0="开始训练模型",LF.MPYTHONS_FACE_RECOGNITION_START_DRILL_TOOLTIP="",LF.MPYTHONS_FACE_RECOGNITION_STORAGE_DRILL_MODEL_HELPURL="",LF.MPYTHONS_FACE_RECOGNITION_STORAGE_DRILL_MODEL_MESSAGE0="%1训练模型 存储路径%2",LF.MPYTHONS_FACE_RECOGNITION_STORAGE_DRILL_MODEL_TOOLTIP="",LF.MPYTHONS_FACE_RECOGNITION_DRILL_NUMBERS_HELPURL="",LF.MPYTHONS_FACE_RECOGNITION_DRILL_NUMBERS_MESSAGE0="人脸模型训练 数目",LF.MPYTHONS_FACE_RECOGNITION_DRILL_NUMBERS_TOOLTIP="",LF.MPYTHONS_FACE_RECOGNITION_FONT_HELPURL="",LF.MPYTHONS_FACE_RECOGNITION_FONT_MESSAGE0="窗口显示 识别的名字%1 设置字体为%2 颜色为 红%3 绿%4 蓝%5",LF.MPYTHONS_FACE_RECOGNITION_FONT_TOOLTIP="",LF.MPYTHONS_FACE_RECOGNITION_PERCENT_HELPURL="",LF.MPYTHONS_FACE_RECOGNITION_PERCENT_MESSAGE0="窗口显示 识别的置信度%1 设置字体为%2 颜色为 红%3 绿%4 蓝%5",LF.MPYTHONS_FACE_RECOGNITION_PERCENT_TOOLTIP="",LF.MPYTHONS_FACE_RECOGNITION_FORECAST_FACE_INITIALIZE_HELPURL="",LF.MPYTHONS_FACE_RECOGNITION_FORECAST_FACE_INITIALIZE_MESSAGE0="预测人脸 名字%1 置信度%2",LF.MPYTHONS_FACE_RECOGNITION_FORECAST_FACE_INITIALIZE_TOOLTIP="",LF.MPYTHONS_FACE_RECOGNITION_FORECAST_Write="写入",LF.MPYTHONS_FACE_RECOGNITION_FORECAST_Read="读取",LF.MPYTHONS_DIALOGUE_ROBOT_INITIALIZE_HELPURL="",LF.MPYTHONS_DIALOGUE_ROBOT_INITIALIZE_MESSAGE0="初始化 聊天机器人",LF.MPYTHONS_ADIALOGUE_ROBOT_INITIALIZE_TOOLTIP="",LF.MPYTHONS_DIALOGUE_ROBOT_CHOOSE_HELPURL="",LF.MPYTHONS_DIALOGUE_ROBOT_CHOOSE_MESSAGE0="选择训练器 聊天机器人",LF.MPYTHONS_ADIALOGUE_ROBOT_CHOOSE_TOOLTIP="",LF.MPYTHONS_DIALOGUE_ROBOT_START_HELPURL="",LF.MPYTHONS_DIALOGUE_ROBOT_START_MESSAGE0="选择与%1 聊天",LF.MPYTHONS_ADIALOGUE_ROBOT_START_TOOLTIP="",LF.MPYTHONS_ADIALOGUE_ROBOT_CORPUS_HELPURL="",LF.MPYTHONS_ADIALOGUE_ROBOT_CORPUS_TOOLTIP="",LF.MPYTHONS_ADIALOGUE_ROBOT_CORPUS_MESSAGE0="自定义 语料库 %1[%2]",LF.MPYTHONS_ADIALOGUE_ROBOT_MY_FAQs_HELPURL="",LF.MPYTHONS_ADIALOGUE_ROBOT_MY_FAQs_MESSAGE0="输入对话 获得响应 %1",LF.MPYTHONS_ADIALOGUE_ROBOT_MY_FAQs_TOOLTIP="",LF.MPYTHONS_ADIALOGUE_ROBOT_FAQs_RETURN_MESSAGE0="识别响应",LF.MPYTHONS_ADIALOGUE_ROBOT_FAQs_RETURN_TOOLTIP="",LF.MPYTHONS_ADIALOGUE_ROBOT_FAQs_RETURN_HELPURL="",LF.MPYTHONS_ADIALOGUE_ROBOT_CORPUS2_HELPURL="",LF.MPYTHONS_ADIALOGUE_ROBOT_CORPUS2_MESSAGE0="选择跟 %1 聊天",LF.MPYTHONS_ADIALOGUE_ROBOT_CORPUS2_TOOLTIP="",LF.Jenny="珍妮",LF.Jack="杰克",LF.Tom="汤姆",LF.MPYTHONS_ADIALOGUE_ROBOT_FEED_HELPURL="",LF.MPYTHONS_ADIALOGUE_ROBOT_FEED_MESSAGE0="选择 %1 %2 模式%3 %4 喂养%5",LF.MPYTHONS_ADIALOGUE_ROBOT_FEED_TOOLTIP="",LF.MPYTHONS_ADIALOGUE_READ_TRAINING_LIBRARY_HELPURL="",LF.MPYTHONS_ADIALOGUE_READ_TRAINING_LIBRARY_MESSAGE0="查阅训练库 选择%1",LF.MPYTHONS_ADIALOGUE_READ_TRAINING_LIBRARY_TOOLTIP="",LF.MPYTHON_GESTURE_RANDOM_NUMBER_HELPURL="",LF.MPYTHON_GESTURE_RANDOM_NUMBER_MESSAGE0="生成随机数 %1",LF.MPYTHON_GESTURE_RANDOM_NUMBER_TOOLTIP="",LF.MPYTHON_AGESTURE_SHOW_WINDOW_HELPURL="",LF.MPYTHON_AGESTURE_SHOW_WINDOW_MESSAGE0="显示窗口",LF.MPYTHON_AGESTURE_SHOW_WINDOW_TOOLTIP="",LF.MPYTHON_AGESTURE_IMSHOW_HELPURL="",LF.MPYTHON_AGESTURE_IMSHOW_MESSAGE0="处理图像 %1",LF.MPYTHON_AGESTURE_IMSHOW_TOOLTIP="",LF.MPYTHON_AGESTURE_TRAIN_MODEL_HELPURL="",LF.MPYTHON_AGESTURE_TRAIN_MODEL_MESSAGE0="选择训练库 knn模型",LF.MPYTHON_AGESTURE_TRAIN_MODEL_TOOLTIP="",LF.MPYTHON_AGESTURE_LOAD_MODEL_HELPURL="",LF.MPYTHON_AGESTURE_LOAD_MODEL_MESSAGE0="载入knn模型 存储路径%1",LF.MPYTHON_AGESTURE_LOAD_MODEL_TOOLTIP="",LF.MPYTHON_AGESTURE_OPEN_IMAGES_HELPURL="",LF.MPYTHON_AGESTURE_OPEN_IMAGES_MESSAGE0="%1打开图片 存储路径%2 图片名%3",LF.MPYTHON_AGESTURE_OPEN_IMAGES_TOOLTIP="",LF.MPYTHON_AGESTURE_ARRAY_MESSAGE0="选择%1 构建特征数据%2",LF.MPYTHON_AGESTURE_ARRAY_TOOLTIP="",LF.MPYTHON_AGESTURE_ARRAY_HELPURL="",LF.MPYTHON_GESTURE_RANDOM_RANK_MESSAGE0="打乱排序%1 ",LF.MPYTHON_GESTURE_RANDOM_RANK_TOOLTIP="",LF.MPYTHON_GESTURE_RANDOM_RANK_HELPURL="",LF.MPYTHON_GESTURE_READ_LEND_MESSAGE0=" %1 图片特征",LF.MPYTHON_GESTURE_READ_LEND_TOOLTIP="",LF.MPYTHON_GESTURE_READ_LEND_HELPURL="",LF.MPYTHON_GESTURE_START_SRAIN_HELPURL="",LF.MPYTHON_GESTURE_START_SRAIN_MESSAGE0="开始训练 手势识别 期望%1 目标%2",LF.MPYTHON_GESTURE_START_SRAIN_TOOLTIP="",LF.MPYTHON_GESTURE_SCORE_HELPURL="",LF.MPYTHON_GESTURE_SCORE_MESSAGE0="进行评分 期望%1 目标%2",LF.MPYTHON_GESTURE_SCORE_TOOLTIP="",LF.MPYTHON_GESTURE_DIMENSIONALITY_REDUCTION_HELPURL="",LF.MPYTHON_GESTURE_DIMENSIONALITY_REDUCTION_TOOLTIP="",LF.MPYTHON_GESTURE_DIMENSIONALITY_REDUCTION_MESSAGE0="%1 数组降维 图片总数%2",LF.MPYTHON_GESTURE_FORECAST_HELPURL="",LF.MPYTHON_GESTURE_FORECAST_TOOLTIP="",LF.MPYTHON_GESTURE_FORECAST_MESSAGE0="预测结果%1",LF.MPYTHON_AGESTURE_SAVE_MODEL_HELPURL="",LF.MPYTHON_AGESTURE_SAVE_MODEL_MESSAGE0="保存模型 存储路径%1",LF.MPYTHON_AGESTURE_SAVE_MODEL_TOOLTIP="",LF.MPYTHON_AGESTURE_FORECAST_PICTURE_HELPURL="",LF.MPYTHON_AGESTURE_FORECAST_PICTURE_MESSAGE0="%1图片 预测图片 ",LF.MPYTHON_AGESTURE_FORECAST_PICTURE_TOOLTIP="",LF.MPYTHON_GESTURE_PICTURE_DIMENSIONALITY_REDUCTION_HELPURL="",LF.MPYTHON_GESTURE_PICTURE_DIMENSIONALITY_REDUCTION_TOOLTIP="",LF.MPYTHON_GESTURE_PICTURE_DIMENSIONALITY_REDUCTION_MESSAGE0="%1 彩色图像降维",LF.MPYTHON_AGESTURENEW_INITIALIZE_HELPURL="",LF.MPYTHON_AGESTURENEW_INITIALIZE_MESSAGE0="初始化 KNN",LF.MPYTHON_AGESTURENEW_INITIALIZE_TOOLTIP="",LF.MPYTHON_AGESTURENEW_SHOOT_HELPURL="",LF.MPYTHON_AGESTURENEW_SHOOT_MESSAGE0="拍摄 进行手势检测",LF.MPYTHON_AGESTURENEW_SHOOT_TOOLTIP="",LF.MPYTHON_AGESTURENEW_SHOOT_GRAY_HELPURL="",LF.MPYTHON_AGESTURENEW_SHOOT_GRAY_MESSAGE0="拍摄 训练集",LF.MPYTHON_AGESTURENEW_SHOOT_GRAY_TOOLTIP="",LF.MPYTHON_AGESTURENEW_GRAY_HELPURL="",LF.MPYTHON_AGESTURENEW_GRAY_MESSAGE0="图像处理",LF.MPYTHON_AGESTURENEW_GRAY_TOOLTIP="",LF.MPYTHON_AGESTURENEW_TRAIN_HELPURL="",LF.MPYTHON_AGESTURENEW_TRAIN_MESSAGE0="开始分类训练",LF.MPYTHON_AGESTURENEW_TRAIN_TOOLTIP="",LF.MPYTHON_AGESTURENEW_START_FORECAST_HELPURL="",LF.MPYTHON_AGESTURENEW_START_FORECAST_MESSAGE0="开始预测",LF.MPYTHON_AGESTURENEW_START_FORECAST_TOOLTIP="",LF.MPYTHON_AGESTURENEW_FORECAST_RESULT_HELPURL="",LF.MPYTHON_AGESTURENEW_FORECAST_RESULT_MESSAGE0="预测结果",LF.MPYTHON_AGESTURENEW_FORECAST_RESULT_TOOLTIP="",LF.MPYTHON_AGESTURENEW_SHOW_WINDOW_HELPURL="",LF.MPYTHON_AGESTURENEW_SHOW_WINDOW_MESSAGE0="显示图片";LF.MPYTHON_AGESTURENEW_SHOW_WINDOW_TOOLTIP="",LF.MPYTHONS_FACEAI_READ_PICTURE_PATH_HELPURL="",LF.MPYTHONS_FACEAI_READ_PICTURE_PATH_MESSAGE0="选择人脸库 图片存储路径%1",LF.MPYTHONS_FACEAI_READ_PICTURE_PATH_TOOLTIP="",LF.MPYTHONS_FACEAI_RECOGNITION_IMPORT_MODEL_SITE_HELPURL="",LF.MPYTHONS_FACEAI_RECOGNITION_IMPORT_MODEL_SITE_MESSAGE0="加载模型 存储路径%1",LF.MPYTHONS_FACEAI_RECOGNITION_IMPORT_MODEL_SITE_TOOLTIP="",LF.MPYTHONS_FACEAI_FACE_GENDER_DETECTION_RETURN_HELPURL="",LF.MPYTHONS_FACEAI_FACE_GENDER_DETECTION_RETURN_MESSAGE0="第%1位人脸性别结果 置信度",LF.MPYTHONS_FACEAI_FACE_GENDER_DETECTION_RETURN_TOOLTIP="",LF.MPYTHONS_FACEAI_FACE_EMOTION_DETECTION_RETURN_HELPURL="",LF.MPYTHONS_FACEAI_FACE_EMOTION_DETECTION_RETURN_MESSAGE0="第%1位人脸情绪结果 置信度",LF.MPYTHONS_FACEAI_FACE_EMOTION_DETECTION_RETURN_TOOLTIP="",LF.MPYTHONS_FACEAI_FACE_GENDER_RESULT_HELPURL="",LF.MPYTHONS_FACEAI_FACE_GENDER_RESULT_MESSAGE0="第%1位人脸性别 结果",LF.MPYTHONS_FACEAI_FACE_GENDER_RESULT_TOOLTIP="",LF.MPYTHONS_FACEAI_FACE_EMOTION_RESULT_HELPURL="",LF.MPYTHONS_FACEAI_FACE_EMOTION_RESULT_MESSAGE0="第%1位人脸情绪 结果",LF.MPYTHONS_FACEAI_FACE_EMOTION_RESULT_TOOLTIP="",LF.MPYTHON_FACEAI_CHOOSE_FACE_POOL_HELPURL="",LF.MPYTHON_FACEAI_CHOOSE_FACE_POOL_MESSAGE0="选择人脸库 %1",LF.MPYTHON_FACEAI_CHOOSE_FACE_POOL_TOOLTIP="",LF.MPYTHONS_FACEAI_FACE_EMOTION_RETURN_HELPURL="",LF.MPYTHONS_FACEAI_FACE_EMOTION_RETURN_MESSAGE0="第%1位情绪为 %2",LF.MPYTHONS_FACEAI_FACE_EMOTION_RETURN_TOOLTIP="",LF.MPYTHONS_FACEAI_FACE_GENDER_RETURN_HELPURL="",LF.MPYTHONS_FACEAI_FACE_GENDER_RETURN_MESSAGE0="第%1位性别为 %2",LF.MPYTHONS_FACEAI_FACE_GENDER_RETURN_TOOLTIP="",LF.MPYTHONS_FACEAI_FACE_NUMBER_RETURN_HELPURL="",LF.MPYTHONS_FACEAI_FACE_NUMBER_RETURN_MESSAGE0="人脸数量",LF.MPYTHONS_FACEAI_FACE_NUMBER_RETURN_TOOLTIP="",LF.MPYTHONS_FACEAI_FACE_EXPRESSION_RETURN_HELPURL="",LF.MPYTHONS_FACEAI_FACE_EXPRESSION_RETURN_MESSAGE0="表情数量",LF.MPYTHONS_FACEAI_FACE_EXPRESSION_RETURN_TOOLTIP="",LF.MPYTHONS_FACEAI_FACE_RECOGNITION_VEDIO_RETURN_HELPURL="",LF.MPYTHONS_FACEAI_FACE_RECOGNITION_VEDIO_RETURN_MESSAGE0="人脸实时检测 %1",LF.MPYTHONS_FACEAI_FACE_RECOGNITION_VEDIO_RETURN_TOOLTIP="Esc退出拍摄",LF.MPYTHONS_FACEAI_FACE_IMG_RESULT_HELPURL="",LF.MPYTHONS_FACEAI_FACE_IMG_RESULT_MESSAGE0="显示图片",LF.MPYTHONS_FACEAI_FACE_IMG_RESULT_TOOLTIP="",LF.MPYTHONS_FACEAI_CHOOSE_FACE_DATABASE_HELPURL="",LF.MPYTHONS_FACEAI_CHOOSE_FACE_DATABASE_MESSAGE0="选择人脸库%1",LF.MPYTHONS_FACEAI_CHOOSE_FACE_DATABASE_TOOLTIP="",LF.MPYTHONS_FACEAI_FACE_SHOOT_RESULT_HELPURL="",LF.MPYTHONS_FACEAI_FACE_SHOOT_RESULT_MESSAGE0="拍照 进行人脸检测 %1",LF.MPYTHONS_FACEAI_FACE_SHOOT_RESULT_TOOLTIP="按S建拍摄,Esc退出拍摄",LF.MPYTHONS_WORD_CLOUD_INITIALIZE_HELPURL="",LF.MPYTHONS_WORD_CLOUD_INITIALIZE_MESSAGE0="初始化 文章聚类",LF.MPYTHONS_WORD_CLOUD_INITIALIZE_TOOLTIP="",LF.MPYTHONS_WORD_CLOUD_TITLE_HELPURL="文章数量不超过100",LF.MPYTHONS_WORD_CLOUD_TITLE_MESSAGE0="标题 第%1文章",LF.MPYTHONS_WORD_CLOUD_TITLE_TOOLTIP="",LF.MPYTHONS_WORD_CLOUD_CONTENT_HELPURL="文章数量不超过100",LF.MPYTHONS_WORD_CLOUD_CONTENT_MESSAGE0="内容 第%1文章",LF.MPYTHONS_WORD_CLOUD_CONTENT_TOOLTIP="",LF.MPYTHONS_WORD_CLOUD_JIEBA_HELPURL="文章数量不超过100",LF.MPYTHONS_WORD_CLOUD_JIEBA_MESSAGE0="文章内容转为列表 第%1文章",LF.MPYTHONS_WORD_CLOUD_JIEBA_TOOLTIP="",LF.MPYTHONS_WORD_CLOUD_STOPWORD_HELPURL="",LF.MPYTHONS_WORD_CLOUD_STOPWORD_MESSAGE0="读取停词表 排序前%1",LF.MPYTHONS_WORD_CLOUD_STOPWORD_TOOLTIP="返回的是100篇文章里的符号",LF.MPYTHONS_WORD_CLOUD_DELETE_AFTER_NEWS_HELPURL="",LF.MPYTHONS_WORD_CLOUD_DELETE_AFTER_NEWS_MESSAGE0="删除后的新闻",LF.MPYTHONS_WORD_CLOUD_DELETE_AFTER_NEWS_TOOLTIP="",LF.MPYTHONS_WORD_CLOUD_THESAURUS_CONSTRUCTION_DATA_HELPURL="",LF.MPYTHONS_WORD_CLOUD_THESAURUS_CONSTRUCTION_DATA_MESSAGE0="构造词云所用的数据",LF.MPYTHONS_WORD_CLOUD_THESAURUS_CONSTRUCTION_DATA_TOOLTIP="",LF.MPYTHONS_WORD_CLOUD_COUNT_RANK_HELPURL="",LF.MPYTHONS_WORD_CLOUD_COUNT_RANK_MESSAGE0="读取词汇表 排序前%1",LF.MPYTHONS_WORD_CLOUD_COUNT_RANK_TOOLTIP="返回的是100篇文章里的文本",LF.MPYTHONS_WORD_CLOUD_SAVE_PICTURE_HELPURL="",LF.MPYTHONS_WORD_CLOUD_SAVE_PICTURE_MESSAGE0="文章聚类训练结果 保存为图片",LF.MPYTHONS_WORD_CLOUD_SAVE_PICTURE_TOOLTIP="",LF.MPYTHONS_WORD_CLOUD_DISPLAY_PICTURE_HELPURL="",LF.MPYTHONS_WORD_CLOUD_DISPLAY_PICTURE_MESSAGE0="显示图片",LF.MPYTHONS_WORD_CLOUD_DISPLAY_PICTURE_TOOLTIP="",LF.FIRST="第一次",LF.LAST="最后一次",LF.MPYTHON_USOCKET_BLOCK="阻塞",LF.MPYTHON_USOCKET_UNBLOCK="非阻塞",LF.MPYTHON_USOCKET_SETSOCKOPT_HELPURL="https://mpython.readthedocs.io/zh/master/library/pythonStd/usocket.html#usocket.socket",LF.MPYTHON_USOCKET_SETSOCKOPT_MESSAGE0="设置socket %1 地址 %2 类型 %3",LF.MPYTHON_USOCKET_SETSOCKOPT_TOOLTIP="设置给定套接字选项的值。所需的符号常量在套接字模块中定义(SO_ *等)。该值可以是整数或表示缓冲区的类字节对象。",LF.MPYTHON_USOCKET_READLINE_HELPURL="https://mpython.readthedocs.io/zh/master/library/pythonStd/usocket.html#usocket.socket.accept",LF.MPYTHON_USOCKET_READLINE_MESSAGE0="socket %1 接收一行数据,遇换行符结束并返回接收数据的对象",LF.MPYTHON_USOCKET_READLINE_TOOLTIP=" 接收一行数据,遇换行符结束,并返回接收数据的对象",LF.MPYTHON_USOCKET_SETBLOCKING_HELPURL="https://mpython.readthedocs.io/zh/master/library/pythonStd/usocket.html#usocket.socket.setblocking",LF.MPYTHON_USOCKET_SETBLOCKING_MESSAGE0="设 socket %1 为 %2 模式",LF.MPYTHON_USOCKET_SETBLOCKING_TOOLTIP="",LF.MPYTHON_USOCKET_READ_HELPURL="https://mpython.readthedocs.io/zh/master/library/pythonStd/usocket.html#usocket.socket.read",LF.MPYTHON_USOCKET_READ_MESSAGE0="从socket %1 读取 %2 字节并返回字节对象",LF.MPYTHON_USOCKET_READ_TOOLTIP="若未给定读取数量 ,则按照类似 socket.readall() 的模式运行",LF.MPYTHON_ESC_HELPURL="https://mpython.readthedocs.io/zh/master/library/pythonStd/usocket.html#usocket.socket.setblocking",LF.MPYTHON_ESC_MESSAGE0="设 socket %1 为 %2 模式",LF.MPYTHON_ESC_TOOLTIP="",LF.MPYTHON_USOCKET_SETTIMEOUT_HELPURL="https://mpython.readthedocs.io/zh/master/library/pythonStd/usocket.html#usocket.socket.settimeout",LF.MPYTHON_USOCKET_SETTIMEOUT_MESSAGE0="socket %1 设超时时间 %2 秒",LF.MPYTHON_USOCKET_SETTIMEOUT_TOOLTIP="",LF.MPYTHON_USOCKET_SENDALL_HELPURL="https://mpython.readthedocs.io/zh/master/library/pythonStd/usocket.html#usocket.socket.send",LF.MPYTHON_USOCKET_SENDALL_MESSAGE0="socket %1 连续发送 %2 并返回发送的字节数",LF.MPYTHON_USOCKET_SENDALL_TOOLTIP="将所有数据发送到套接字。套接字必须连接到远程套接字。与 send() 此不同,此方法将尝试通过连续发送数据块来发送所有数据。",LF.MPYTHON_USOCKET_SENDS_HELPURL="https://mpython.readthedocs.io/zh/master/library/pythonStd/usocket.html#usocket.socket.send",LF.MPYTHON_USOCKET_SENDS_MESSAGE0="socket %1 发送 %2 并返回发送的字节数",LF.MPYTHON_USOCKET_SENDS_TOOLTIP='将数据发送到套接字。套接字必须连接到远程套接字。返回发送的字节数,可能小于数据长度 ("short write")。',LF.MPYTHON_USOCKET_SEND_HELPURL="https://mpython.readthedocs.io/zh/master/library/pythonStd/usocket.html#usocket.socket.send",LF.MPYTHON_USOCKET_SEND_MESSAGE0="socket %1 发送 %2 并返回发送的字节数",LF.MPYTHON_USOCKET_SEND_TOOLTIP="Send data to the socket. The socket must be connected to a remote socket. Returns number of bytes sent, which may be smaller than the length of data (“short write”).",LF.MPYTHON_USOCKET_SENDTO_HELPURL="https://mpython.readthedocs.io/zh/master/library/pythonStd/usocket.html#usocket.socket.sendto",LF.MPYTHON_USOCKET_SENDTO_MESSAGE0="socket %1 发送 %2 到地址 %3",LF.MPYTHON_USOCKET_SENDTO_TOOLTIP="Send data to the socket. The socket should not be connected to a remote socket, since the destination socket is specified by address.",LF.MPYTHON_USOCKET_RECV_HELPURL="https://mpython.readthedocs.io/zh/master/library/pythonStd/usocket.html#usocket.socket.recv",LF.MPYTHON_USOCKET_RECV_MESSAGE0="socket %1 接收并返回接收到的数据对象 最大数据量为 %2",LF.MPYTHON_USOCKET_RECV_TOOLTIP="",LF.MPYTHON_TEXT_ESC_HELPURL="",LF.MPYTHON_TEXT_ESC_MESSAGE0="文本转义字符 %1",LF.MPYTHON_TEXT_ESC_TOOLTIP="文本转义字符",LF.MPYTHON_USOCKET_RECVFROM_HELPURL="https://mpython.readthedocs.io/zh/master/library/pythonStd/usocket.html#usocket.socket.recvfrom",LF.MPYTHON_USOCKET_RECVFROM_MESSAGE0="socket %1 接收并返回接收到的数据元组 最大数据量为 %2",LF.MPYTHON_USOCKET_RECVFROM_TOOLTIP="元组格式 (bytes, address)",LF.MPYTHON_USOCKET_CONNECT_HELPURL="https://mpython.readthedocs.io/zh/master/library/pythonStd/usocket.html#usocket.socket.connect",LF.MPYTHON_USOCKET_CONNECT_MESSAGE0="socket %1 连接 host %2 端口 %3",LF.MPYTHON_USOCKET_CONNECT_TOOLTIP="",LF.MPYTHON_USOCKET_GETADDRINFO_HELPURL="https://mpython.readthedocs.io/zh/master/library/pythonStd/usocket.html#usocket.getaddrinfo",LF.MPYTHON_USOCKET_GETADDRINFO_MESSAGE0="解析 host %1 端口 %2 并返回 ip",LF.MPYTHON_USOCKET_GETADDRINFO_TOOLTIP="需联网",LF.MPYTHON_USOCKET_ACCEPT_HELPURL="https://mpython.readthedocs.io/zh/master/library/pythonStd/usocket.html#usocket.socket.accept",LF.MPYTHON_USOCKET_ACCEPT_MESSAGE0="socket %1 接收连接请求并返回socket元组",LF.MPYTHON_USOCKET_ACCEPT_TOOLTIP="接收连接请求。socket需要指定地址并监听连接。返回值是 (conn, address)。\nconn:新的socket对象,可以用来收发消息\naddress:连接到服务器的客户端地址",LF.MPYTHON_USOCKET_LISTEN_HELPURL="https://mpython.readthedocs.io/zh/master/library/pythonStd/usocket.html#usocket.socket.listen",LF.MPYTHON_USOCKET_LISTEN_MESSAGE0="监听socket %1 backlog个数 %2",LF.MPYTHON_USOCKET_LISTEN_TOOLTIP="backlog :接受套接字的最大个数,至少为0,如果没有指定,则默认一个合理值。",LF.MPYTHON_USOCKET_BIND_HELPURL="https://mpython.readthedocs.io/zh/master/library/pythonStd/usocket.html#usocket.socket.bind",LF.MPYTHON_USOCKET_BIND_MESSAGE0="socket %1 绑定地址 %2 端口 %3",LF.MPYTHON_USOCKET_BIND_TOOLTIP="",LF.MPYTHON_USOCKET_CLOSE_HELPURL="https://mpython.readthedocs.io/zh/master/library/pythonStd/usocket.html#usocket.socket.close",LF.MPYTHON_USOCKET_CLOSE_MESSAGE0="socket %1 关闭",LF.MPYTHON_USOCKET_CLOSE_TOOLTIP="",LF.MPYTHON_USOCKET_INIT_HELPURL="https://mpython.readthedocs.io/zh/master/library/pythonStd/usocket.html#usocket.socket",LF.MPYTHON_USOCKET_INIT_MESSAGE0="创建 socket %1 地址 %2 类型 %3",LF.MPYTHON_USOCKET_INIT_TOOLTIP="AF_INET:=2 — TCP/IP – IPv4\nAF_INET6 :=10 — TCP/IP – IPv6\nSOCK_STREAM:=1 — TCP流\nSOCK_DGRAM:=2 — UDP数据报\nSOCK_RAW :=3 — 原始套接字\nSO_REUSEADDR : =4 — socket可重用\n",LF.MPYTHON_GET_POST_HELPURL="",LF.MPYTHON_GET_POST_MESSAGE0="%1 请求网址 %2 提交字段 %3",LF.MPYTHON_GET_POST_TOOLTIP="",LF.MPYTHON_UREQUESTS_GET_POST_HELPURL="",LF.MPYTHON_UREQUESTS_GET_POST_TOOLTIP="",LF.MPYTHON_UREQUESTS_GET_POST_MESSAGE0="%1 请求网址 %2 提交字段 %3",LF.MPYTHON_UREQUESTS_POST_FILE_HELPURL="",LF.MPYTHON_UREQUESTS_POST_FILE_TOOLTIP="",LF.MPYTHON_UREQUESTS_POST_FILE_MESSAGE0="Post 提交文件 %1 请求网址 %2 文件路径 %3 Mime类型 %4 附加字段 %5",LF.MPYTHON_RESPONSE_HELPURL="",LF.MPYTHON_RESPONSE_MESSAGE0="响应内容 形式 %1",LF.MPYTHON_RESPONSE_TOOLTIP="",LF.STRING="字符串",LF._BYTE="二进制",LF.BYTES="字节",LF.TEXT="文本",LF.MPYTHON_RESPONSE_ATTRIBUTE_HELPURL="",LF.MPYTHON_RESPONSE_ATTRIBUTE_MESSAGE0="响应属性 %1",LF.MPYTHON_RESPONSE_ATTRIBUTE_TOOLTIP="",LF.MPYTHON_SETS_PIN_MODE_HELPURL="https://mpython.readthedocs.io/zh/master/board/hardware.html#mpythonpindesc",LF.MPYTHON_SETS_PIN_MODE_TOOLTIP="右键帮助,查看引脚声明",LF.MPYTHON_SETS_PIN_MODE_MESSAGE0="设置引脚 %1 为 %2 模式 %3 并设置值为 %4",LF.MPYTHON_SET_PIN_IN="输入",LF.MPYTHON_SET_PIN_PUSH_PULL_OUT="推挽输出",LF.MPYTHON_SET_PIN_LEAKY_OUT="开漏输出",LF.MPYTHON_SET_PIN_NO_PULL="无上下拉",LF.MPYTHON_SET_PIN_DOWN_PULL="下拉",LF.MPYTHON_SET_PIN_UP_PULL="上拉",LF.MPYTHON_LOCK_OBJECT_ACQUIRE_LOCK_HELPURL="",LF.MPYTHON_LOCK_OBJECT_ACQUIRE_LOCK_MESSAGE0="线程锁对象 %1 请求锁",LF.MPYTHON_LOCK_OBJECT_ACQUIRE_LOCK_TOOLTIP="",LF.MPYTHON_START_NEW_THREAD_HELPURL="",LF.MPYTHON_START_NEW_THREAD_MESSAGE0="子线程 %1",LF.MPYTHON_START_NEW_THREAD_TOOLTIP="",LF.MPYTHON_UART_INIT_HELPURL="",LF.MPYTHON_UART_INIT_MESSAGE0="串口 %4 初始化 波特率 %1 tx %2 rx %3",LF.MPYTHON_UART_INIT_TOOLTIP="掌控板支持3组串口。0用于REPL,剩下1、2两组串口可用。所有引脚均可以作为串口的输入RX,除 P2、P3 、P4 、P10 只能作为输入,其余所有的引脚理论上都可以作为输出TX。",LF.MPYTHON_UART_DEINIT_HELPURL="",LF.MPYTHON_UART_DEINIT_MESSAGE0="关闭串口 %1",LF.MPYTHON_UART_DEINIT_TOOLTIP="关闭 UART 总线",LF.MPYTHON_UART_WRITE_STR_HELPURL="",LF.MPYTHON_UART_WRITE_STR_MESSAGE0="串口 %1 写入文本 %2 %3",LF.MPYTHON_UART_WRITE_STR_TOOLTIP="将文本写入总线。\n返回值:写入或 None 超时的字节数。",LF.MPYTHON_UART_WRITE_HEX_HELPURL="",LF.MPYTHON_UART_WRITE_HEX_MESSAGE0="串口 %1 发送16进制字符串 %2 %3",LF.MPYTHON_UART_WRITE_HEX_TOOLTIP="",LF.MPYTHON_UART_HAS_DATA_HELPURL="",LF.MPYTHON_UART_HAS_DATA_MESSAGE0="串口 %1 有可读数据",LF.MPYTHON_UART_HAS_DATA_TOOLTIP="返回一个整数,计算可以无阻塞地读取的字符数。\n如果没有可用字符,它将返回0,如果有字符,则返回正数。\n即使有多个可读的字符,该方法也可以返回1。",LF.MPYTHON_UART_READLINE_HELPURL="",LF.MPYTHON_UART_READLINE_MESSAGE0="串口 %1 读取一行数据",LF.MPYTHON_UART_READLINE_TOOLTIP="读一行,以换行符结尾。\n返回值:读取行或 None 超时。",LF.MPYTHON_UART_READ_HELPURL="",LF.MPYTHON_UART_READ_MESSAGE0="串口 %1 读取数据",LF.MPYTHON_UART_READ_TOOLTIP="读取尽可能多的串口数据\n返回值:包含读入字节的字节列表。若读取超时则返回 None。",LF.MPYTHON_UART_READ_LENGTH_HELPURL="",LF.MPYTHON_UART_READ_LENGTH_MESSAGE0="串口 %1 读取数据 长度 %2",LF.MPYTHON_UART_READ_LENGTH_TOOLTIP="读取指定长度字节数据\n返回值:包含读入字节的字节列表。若读取超时则返回 None。",LF.MPYTHON_UART_WRITE_BYTE_HELPURL="",LF.MPYTHON_UART_WRITE_BYTE_MESSAGE0="串口 %1 写入单字节 %2",LF.MPYTHON_UART_WRITE_BYTE_TOOLTIP="参数取值为 0~255 整数\n将字节写入总线。\n返回值:写入或 None 超时的字节数。",LF.MPYTHON_UART_WRITE_BYTES_HELPURL="",LF.MPYTHON_UART_WRITE_BYTES_MESSAGE0="串口 %1 写入字节数组 %2",LF.MPYTHON_UART_WRITE_BYTES_TOOLTIP="将字节数组写入总线。\n返回值:写入或 None 超时的字节数。",LF.MPYTHON_BAUDRATE_HELPURL="",LF.MPYTHON_BAUDRATE_MESSAGE0="%1",LF.MPYTHON_BAUDRATE_TOOLTIP="",LF.MPYTHON_HIGH_LOW_HELPURL="",LF.MPYTHON_HIGH_LOW_MESSAGE0="%1",LF.MPYTHON_HIGH_LOW_TOOLTIP="",LF.MPYTHON_TEN_CONVERT_TO_HELPURL="",LF.MPYTHON_TEN_CONVERT_TO_MESSAGE0="10进制整数 %1 转化为 %2 字符串",LF.MPYTHON_TEN_CONVERT_TO_TOOLTIP="",LF.MPYTHON_BIN="二进制",LF.MPYTHON_OCT="八进制",LF.MPYTHON_HEX="十六进制",LF.MPYTHON_CONVERT_TO_TEN_HELPURL="",LF.MPYTHON_CONVERT_TO_TEN_MESSAGE0="%1 字符串 %2 转 10进制整数",LF.MPYTHON_CONVERT_TO_TEN_TOOLTIP="",LF.MPYTHON_TEN_CONVERTED_TO_BYTES_HELPURL="",LF.MPYTHON_TEN_CONVERTED_TO_BYTES_MESSAGE0="10进制整数 %2 转 %1 字节",LF.MPYTHON_TEN_CONVERTED_TO_BYTES_TOOLTIP="",LF.MPYTHON_INT_TO_CHR_HELPURL="",LF.MPYTHON_INT_TO_CHR_MESSAGE0="整型 %1 转 ASCII 单字符",LF.MPYTHON_INT_TO_CHR_TOOLTIP="ASCII:基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。",LF.MPYTHON_CHR_TO_INT_HELPURL="",LF.MPYTHON_CHR_TO_INT_MESSAGE0="ASCII 单字符 %1 转 整型",LF.MPYTHON_CHR_TO_INT_TOOLTIP="ASCII是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。",LF.MPYTHON_STR_TO_HEX_HELPURL="",LF.MPYTHON_STR_TO_HEX_MESSAGE0="字符串 %1 转 十六进制 字节",LF.MPYTHON_STR_TO_HEX_TOOLTIP="返回结果中用空格分隔两个十六进制数",LF.MPYTHON_HEX_TO_BIN_STR_HELPURL="",LF.MPYTHON_HEX_TO_BIN_STR_MESSAGE0="十六进制字符串 %1 转 二进制 字节",LF.MPYTHON_HEX_TO_BIN_STR_TOOLTIP="",LF.MPYTHON_DATA_TO_BASE64_HELPURL="",LF.MPYTHON_DATA_TO_BASE64_MESSAGE0="%1 以 base64 格式编码 返回字节对象",LF.MPYTHON_DATA_TO_BASE64_TOOLTIP="Base64编码是从二进制到字符的过程",LF.MPYTHON_BASE64_TO_DATA_HELPURL="",LF.MPYTHON_BASE64_TO_DATA_MESSAGE0="解码 base64 数据 %1 返回字节对象",LF.MPYTHON_BASE64_TO_DATA_TOOLTIP="Base64编码是从二进制到字符的过程",LF.MPYTHON_UJSON_DUMPS_HELPURL="",LF.MPYTHON_UJSON_DUMPS_MESSAGE0="%1 转 json 字符串",LF.MPYTHON_UJSON_DUMPS_TOOLTIP="JSON 格式的 key 必须是字符串,value 可以是合法的 JSON 数据类型(字符串, 数字, 对象, 数组, 布尔值或 none)",LF.MPYTHON_UJSON_LOADS_HELPURL="",LF.MPYTHON_UJSON_LOADS_MESSAGE0="解析 json 字符串 %1 返回对象",LF.MPYTHON_UJSON_LOADS_TOOLTIP="JSON 格式的 key 必须是字符串,value 可以是合法的 JSON 数据类型(字符串, 数字, 对象, 数组, 布尔值或 none)",LF.MPYTHON_CUSTOM_CODE_HELPURL="",LF.MPYTHON_CUSTOM_CODE_TOOLTIP="",LF.MPYTHON_CUSTOM_CODE_MESSAGE0="%1 自定义代码 %2 %3",LF.MPYTHON_CUSTOM_TYPE_IMPORT="置顶",LF.MPYTHON_CUSTOM_TYPE_NORMAL="普通",LF.MPYTHON_CUSTOM_VALUE_MESSAGE0="自定义返回值 %1",LF.MPYTHON_BLYNK_TERMINAL_WIDGET_VPIN_HELPURL="",LF.MPYTHON_BLYNK_TERMINAL_WIDGET_VPIN_MESSAGE0="自定义终端部件 Terminal 虚拟管脚 V %1",LF.MPYTHON_BLYNK_TERMINAL_WIDGET_VPIN_TOOLTIP="",LF.MPYTHON_BLYNK_SYNC_VIRTUAL_HELPURL="",LF.MPYTHON_BLYNK_SYNC_VIRTUAL_MESSAGE0="同步虚拟管脚的状态 V %1",LF.MPYTHON_BLYNK_SYNC_VIRTUAL_TOOLTIP="",LF.MPYTHON_BLYNK_ON_DISCONNECTED_HELPURL="",LF.MPYTHON_BLYNK_ON_DISCONNECTED_MESSAGE0="当 Blynk 断开连接时",LF.MPYTHON_BLYNK_ON_DISCONNECTED_TOOLTIP="",LF.MPYTHON_BLYNK_ON_CONNECTED_HELPURL="",LF.MPYTHON_BLYNK_ON_CONNECTED_MESSAGE0="当 Blynk 连接时",LF.MPYTHON_BLYNK_ON_CONNECTED_TOOLTIP="",LF.MPYTHON_BLYNKTIMER_RUN_HELPURL="",LF.MPYTHON_BLYNKTIMER_RUN_MESSAGE0="运行 Blynk 定时器进程",LF.MPYTHON_BLYNKTIMER_RUN_TOOLTIP="建议放在 '一直重复' 中循环执行",LF.MPYTHON_BLYNK_GET_TIMERS_HELPURL="",LF.MPYTHON_BLYNK_GET_TIMERS_MESSAGE0="可用的 Blynk 定时器",LF.MPYTHON_BLYNK_GET_TIMERS_TOOLTIP="",LF.MPYTHON_BLYNK_STOP_TIMERS_HELPURL="",LF.MPYTHON_BLYNK_STOP_TIMERS_MESSAGE0="停止 Blynk 定时器 %1",LF.MPYTHON_BLYNK_STOP_TIMERS_TOOLTIP='注意:\n定时器序号为自动获取,自上而下,从0开始且连续,不可"定时器0,定时器2",此处暴露序号参数为方便查看!\n参数:\nno_timers_err=False-如果所有计时器都停止,禁用异常触发',LF.MPYTHON_UART_INPUT_HELPURL="",LF.MPYTHON_UART_INPUT_MESSAGE0="从串口获取文本 提示语句 %1",LF.MPYTHON_UART_INPUT_TOOLTIP="",LF.MPYTHON_BLYNK_SET_PROPERTY_HELPURL="",LF.MPYTHON_BLYNK_SET_PROPERTY_MESSAGE0="给虚拟管脚添加 属性 %1 值 %2",LF.MPYTHON_BLYNK_SET_PROPERTY_TOOLTIP="放于 read 或 write 事件中,虚拟管脚由事件决定,与该管脚绑定的组件会拥有添加的属性",LF.MPYTHON_BLYNK_EMAIL_HELPURL="",LF.MPYTHON_BLYNK_EMAIL_MESSAGE0="向预设邮箱发邮件 %1 主题 %2 正文 %3",LF.MPYTHON_BLYNK_EMAIL_TOOLTIP="",LF.MPYTHON_BLYNK_RUN_HELPURL="",LF.MPYTHON_BLYNK_RUN_MESSAGE0="运行 Blynk 进程",LF.MPYTHON_BLYNK_RUN_TOOLTIP="建议放在 '一直重复' 中循环执行",LF.MPYTHON_BLYNK_APP_NOTIFY_HELPURL="",LF.MPYTHON_BLYNK_APP_NOTIFY_MESSAGE0="Blynk APP 显示通知 %1",LF.MPYTHON_BLYNK_APP_NOTIFY_TOOLTIP="",LF.MPYTHON_BLYNKTIMER_HELPURL="",LF.MPYTHON_BLYNKTIMER_MESSAGE0="Blynk 定时器 %1 %2 周期 %3 秒",LF.MPYTHON_BLYNKTIMER_TOOLTIP='注意:\n定时器序号为自动获取,自上而下,从0开始且连续,不可"定时器0,定时器2",此处暴露序号参数为方便查看!\n参数:\nno_timers_err=False-如果所有计时器都停止,禁用异常触发',LF.MPYTHON_BLYNK_SENSOR_DATA_TO_APP_HELPURL="",LF.MPYTHON_BLYNK_SENSOR_DATA_TO_APP_MESSAGE0="发送数据 %1 到 Blynk APP 的 虚拟管脚 V %2",LF.MPYTHON_BLYNK_SENSOR_DATA_TO_APP_TOOLTIP="虚拟管脚:V0 ~ V255",LF.MPYTHON_BLYNK_SETUP_HELPURL="",LF.MPYTHON_BLYNK_SETUP_MESSAGE0="Blynk 设置 %1 服务器 %2 端口 %3 授权码 %4",LF.MPYTHON_BLYNK_SETUP_TOOLTIP="服务器可填 blynk-cloud.com(官网) 或者 blynk.mpython.cn(国内)\n默认端口为 8080\n注意:手机APP访问端口为 9443",LF.MPYTHON_BLYNK_APP_DATA_HELPURL="",LF.MPYTHON_BLYNK_APP_DATA_MESSAGE0="当 从 Blynk APP 收到 虚拟管脚 V %1 的值 %2",LF.MPYTHON_BLYNK_APP_DATA_TOOLTIP="虚拟管脚:V0 ~ V255",LF.MPYTHON_BLYNK_RECEIVED_MESSAGE0="当 收到 Blynk 虚拟管脚 V %1 的值",LF.MPYTHON_BLYNK_VALUE_MESSAGE0="从 Blynk 收到的值",LF.MPYTHON_BLYNK_VALUE_TOOLTIP="",LF.MPYTHON_BLYNK_VALUE_HELPURL="",LF.MPYTHON_ONENET_DISCONNECT_MESSAGE0="OneNET 断开连接",LF.MPYTHON_ONENET_DISCONNECT_TOOLTIP="",LF.MPYTHON_ONENET_DISCONNECT_HELPURL="",LF.MPYTHON_ONENET_MSG_MESSAGE0="从 OneNET 收到的消息",LF.MPYTHON_ONENET_MSG_TOOLTIP="",LF.MPYTHON_ONENET_MSG_HELPURL="",LF.MPYTHON_ONENET_RECV_MESSAGE0="当 从 OneNET 收到消息 %1 时",LF.MPYTHON3_ONENET_RECV_MESSAGE0="当 从 OneNET 收到消息 时",LF.MPYTHON_ONENET_RECV_TOOLTIP="",LF.MPYTHON_ONENET_RECV_HELPURL="",LF.MPYTHON_ONENET_RECV_MSG_MESSAGE0="当 从 OneNET 收到特定消息 %1 时",LF.MPYTHON_ONENET_RECV_MSG_TOOLTIP="",LF.MPYTHON_ONENET_RECV_MSG_HELPURL="",LF.MPYTHON_ONENET_PUB_VALUE_MESSAGE0="向 OneNET 发送数据流 名称 %1 值 %2",LF.MPYTHON_ONENET_PUB_VALUE_TOOLTIP="",LF.MPYTHON_ONENET_PUB_VALUE_HELPURL="",LF.MPYTHON_ONENET_PUB_DICT_MESSAGE0="向 OneNET 发送数据流 %1",LF.MPYTHON_ONENET_PUB_DICT_TOOLTIP="",LF.MPYTHON_ONENET_PUB_DICT_HELPURL="",LF.MPYTHON_ONENET_PUB_VALUE2_MESSAGE0="向 小程序 发送数据流 名称 %1 值 %2",LF.MPYTHON_ONENET_PUB_VALUE2_TOOLTIP="",LF.MPYTHON_ONENET_PUB_VALUE2_HELPURL="",LF.INT_TO_CHR_HELPURL="",LF.INT_TO_CHR_MESSAGE0="整数 %1 转 ASCII 单字符",LF.INT_TO_CHR_TOOLTIP="",LF.MPYTHON_ONENET_ACCEPT_MESSAGE="收到消息",LF.MPYTHON_ONENET="OneNET 设置",LF.MPYTHON_ONENET_WECHAT_APP="小程序 设置",LF.MPYTHON_ONENET_OPTION_BOARDS="可选掌控板",LF.MPYTHON_ONENET_TITLE="OneNET",LF.MPYTHON_SERVER="服务器",LF.MPYTHON_DEVICE_ID="设备ID",LF.MPYTHON_PRODUCT_ID="产品ID",LF.MPYTHON_API_KEY="产品APIKey",LF.MPYTHON_ONENET_CALLBACK="回调函数",LF.MPYTHON_TOPIC="主题",LF.MPYTHON_ONENET_CALLBACK_TITLE="OneNET回调函数",LF.MPYTHON_ONENET_OPTION_BOARDS_HELPURL="",LF.MPYTHON_ONENET_OPTION_BOARDS_MESSAGE0="小程序 选择掌控板应用 %1",LF.MPYTHON_ONENET_OPTION_BOARDS_TOOLTIP="",LF.MPYTHON_HCSR04_DISTANCE_HELPURL="https://mpython-lib.readthedocs.io/zh/master/hcsr04/index.html#hcsr04",LF.MPYTHON_HCSR04_DISTANCE_MESSAGE0="%1 hcsr04 超声波距离 测量单位 %2",LF.MPYTHON_HCSR04_DISTANCE_TOOLTIP="",LF.MPYTHON_HCSR04_DISTANCE_MM_HELPURL="https://mpython-lib.readthedocs.io/zh/master/hcsr04/index.html#hcsr04",LF.MPYTHON_HCSR04_DISTANCE_MM_MESSAGE0="%1 hcsr04 超声波(mm)",LF.MPYTHON_HCSR04_DISTANCE_MM_TOOLTIP="",LF.MPYTHON_HCSR04_OBJ_HELPURL="https://mpython-lib.readthedocs.io/zh/master/hcsr04/index.html#hcsr04",LF.MPYTHON_HCSR04_OBJ_MESSAGE0="hcsr04 超声波初始化 名称 %1 trigger %2 echo %3",LF.MPYTHON_HCSR04_OBJ_TOOLTIP="",LF.MPYTHON_PM2_5_MIC_HELPURL="",LF.MPYTHON_PM2_5_MIC_MESSAGE0="rx引脚%1 PM值浓度%2",LF.MPYTHON_PM2_5_MIC_TOOLTIP="",LF.MPYTHON_PM2_5_LitresAir_HELPURL="",LF.MPYTHON_PM2_5_LitresAir_MESSAGE0="rx引脚%1 0.1升空气中直径在%2 颗粒物个数",LF.MPYTHON_PM2_5_LitresAir_TOOLTIP="",LF.MPYTHON3_IR_REMOTE_RECV_MESSAGE0="当 红外接收端 %1 收到消息时 %2 执行 %3",LF.MPYTHON_IR_REMOTE_ADDRESS_MESSAGE0="红外回调地址",LF.MPYTHON_IR_REMOTE_MESSAGE_MESSAGE0="红外接收内容",LF.MPYTHON_IR_REMOTE_RECV_MESSAGE0="红外接收 %1 回调地址 %2 回调命令 %3",LF.MPYTHON_IR_REMOTE_RECV_HELPURL="",LF.MPYTHON_IR_REMOTE_RECV_TOOLTIP="",LF.MPYTHON_IR_REMOTE_SEND_MESSAGE0="红外发送 %1 地址 %2 命令 %3",LF.MPYTHON_IR_REMOTE_SEND_HELPURL="",LF.MPYTHON_IR_REMOTE_SEND_TOOLTIP="",LF.TEXT_FORMAT_MESSAGE0="格式化字符串 %1 % %2",LF.TEXT_FORMAT_TOOLTIP="",LF.TEXT_FORMAT_HELPURL="",LF.TEXT_FORMAT2_MESSAGE0="格式化字符串 %1 format %2",LF.TEXT_FORMAT2_TOOLTIP="",LF.TEXT_FORMAT2_HELPURL="",LF.TEXT_TO_BYTE_MESSAGE0="转字节 %1",LF.TEXT_TO_BYTE_TOOLTIP="支持数据类型:string",LF.TEXT_TO_BYTE_HELPURL="",LF.MPYTHON_BYTES_DECODE_HELPURL="",LF.MPYTHON_BYTES_DECODE_MESSAGE0="字节 %1 转 字符串",LF.MPYTHON_BYTES_DECODE_TOOLTIP="",LF.OTHER_TO_BYTE_MESSAGE0="非文本转字节 %1",LF.OTHER_TO_BYTE_TOOLTIP="",LF.OTHER_TO_BYTE_HELPURL="",LF.MPYTHON_ONENET_TOOLTIP="创建OneNET连接",LF.MPYTHON_ONENET_INIT_WIFI_MESSAGE0="物联网 确保连接到 Wi-Fi 名称 %1 密码 %2",LF.MPYTHON_ONENET_INIT_WIFI_TOOLTIP="",LF.MPYTHON_ONENET_INIT_WIFI_HELPURL="",LF.MPYTHON_ONENET_RECV_FROM_WECHAT_APP_HELPURL="",LF.MPYTHON_ONENET_RECV_FROM_WECHAT_APP_MESSAGE0="当从小程序收到 %1 和 %2 时",LF.MPYTHON_ONENET_RECV_FROM_WECHAT_APP_TOOLTIP="",LF.MPYTHON_MAC_ADDRESS_HELPURL="",LF.MPYTHON_MAC_ADDRESS_MESSAGE0="MAC 地址",LF.MPYTHON_MAC_ADDRESS_TOOLTIP="",LF.MPYTHON_RADIO_REC_HELPURL="",LF.MPYTHON_RADIO_REC_MESSAGE0="无线广播 接收消息",LF.MPYTHON_RADIO_REC_TOOLTIP="所接收为字节型",LF.MPYTHON_RADIO_SEND_HELPURL="",LF.MPYTHON_RADIO_SEND_MESSAGE0="无线广播 发送 %1",LF.MPYTHON_RADIO_SEND_TOOLTIP="频道: 1~13",LF.MPYTHON_RADIO_CHANNEL_HELPURL="",LF.MPYTHON_RADIO_CHANNEL_MESSAGE0="设无线广播 频道为 %1",LF.MPYTHON_RADIO_CHANNEL_TOOLTIP="频道: 1~13",LF.MPYTHON_RADIO_ON_OFF_HELPURL="",LF.MPYTHON_RADIO_ON_OFF_MESSAGE0="%1 无线广播",LF.MPYTHON_RADIO_ON_OFF_TOOLTIP="频道: 1~13",LF.MPYTHON_RADIO_MSG_MESSAGE0="收到的无线广播消息",LF.MPYTHON_RADIO_MSG_TOOLTIP="",LF.MPYTHON_RADIO_MSG_HELPURL="",LF.MPYTHON3_RADIO_RECV_MESSAGE0="当 收到无线广播消息 时 %1 执行 %2",LF.MPYTHON_RADIO_RECV_MESSAGE0="当 收到无线广播消息 %1 时",LF.MPYTHON_RADIO_RECV_TOOLTIP="频道: 1~13",LF.MPYTHON_RADIO_RECV_HELPURL="",LF.MPYTHON_RADIO_RECV_MSG_MESSAGE0="当 收到特定无线广播消息 %1 时 %2 执行 %3",LF.MPYTHON_RADIO_RECV_MSG_TOOLTIP="频道: 1~13",LF.MPYTHON_RADIO_RECV_MSG_HELPURL="",LF.MPYTHON_UDP_INIT_HELPURL="",LF.MPYTHON_UDP_INIT_MESSAGE0="建立 UDP 连接",LF.MPYTHON_UDP_INIT_TOOLTIP="UDP连接基于Wi-Fi",LF.MPYTHON_UDP_SEND_HELPURL="",LF.MPYTHON_UDP_SEND_MESSAGE0="UDP 群发消息 %1",LF.MPYTHON_UDP_SEND_TOOLTIP="",LF.MPYTHON_UDP_SENDTO_HELPURL="",LF.MPYTHON_UDP_SENDTO_MESSAGE0="UDP 发送消息 %1 到 %2 端口 %3",LF.MPYTHON_UDP_SENDTO_TOOLTIP="",LF.MPYTHON_UDP_RECV_HELPURL="",LF.MPYTHON_UDP_RECV_MESSAGE0="UDP 接收消息",LF.MPYTHON_UDP_RECV_TOOLTIP="",LF.MPYTHON_UDP_RECV_EVENT_HELPURL="",LF.MPYTHON_UDP_RECV_EVENT_MESSAGE0="当从 UDP 收到消息时 %1 执行 %2",LF.MPYTHON_UDP_RECV_EVENT_TOOLTIP="",LF.MPYTHON_UDP_RECV_MSG_MESSAGE0="从 UDP 收到的消息",LF.MPYTHON_UDP_RECV_MSG_TOOLTIP="",LF.MPYTHON_UDP_RECV_MSG_HELPURL="",LF.MPYTHON_AUDIO_PLAY_chirp_MESSAGE0="鸟叫",LF.MPYTHON_AUDIO_PLAY_Pianodarkmelodies_MESSAGE0="钢琴黑暗旋律配乐",LF.MPYTHON_AUDIO_PLAY_miaow_MESSAGE0="猫叫",LF.MPYTHON_AUDIO_PLAY_bark_MESSAGE0="小狗吠叫",LF.MPYTHON_AUDIO_PLAY_Arichpercussivesound_MESSAGE0="浑厚的打击音",LF.MPYTHON_AUDIO_PLAY_Soundeffectsfortension_MESSAGE0="紧张效果的音效",LF.MPYTHON_AUDIO_PLAY_Camerashuttersound_MESSAGE0="拍照快门声",LF.MPYTHON_AUDIO_PLAY_Hundredsofflies_MESSAGE0="数百只苍蝇",LF.MPYTHON_AUDIO_PLAY_Cricketscry_MESSAGE0="蟋蟀叫声",LF.MPYTHON_AUDIO_PLAY_Shakethebassline_MESSAGE0="摇晃低音声线",LF.MPYTHON_AUDIO_PLAY_audiencecheeredandclapped_MESSAGE0="听众欢呼掌声",LF.MPYTHON_AUDIO_PLAY_Cruiseshipwhistle_MESSAGE0="邮轮汽笛",LF.MPYTHON_AUDIO_PLAY_Moderntelephoneringtone_MESSAGE0="现代电话铃声",LF.MPYTHON_AUDIO_PLAY_pullingtradish_MESSAGE0="拔萝卜",LF.MPYTHON_AUDIO_PLAY_twotigers_MESSAGE0="两只老虎",LF.MPYTHON_AUDIO_SET_VOLUME_HELPURL="",LF.MPYTHON_AUDIO_SET_VOLUME_MESSAGE0="设音频音量 %1",LF.MPYTHON_AUDIO_SET_VOLUME_TOOLTIP="",LF.MPYTHON_DISPCHAR_MODE_1="普通",LF.MPYTHON_DISPCHAR_MODE_2="反转",LF.MPYTHON_DISPCHAR_MODE_3="透明",LF.MPYTHON_AUDIO_XUNFEI_TTS_HELPURL="",LF.MPYTHON_AUDIO_XUNFEI_TTS_MESSAGE0="TTS 语音播放 %1",LF.MPYTHON_AUDIO_XUNFEI_TTS_TOOLTIP="需要在 讯飞开放平台 www.xfyun.cn 上开通“在线语音合成”服务",LF.MPYTHON_AUDIO_XUNFEI_TTS_CONFIG_HELPURL="https://mpython.readthedocs.io/zh/master/extboard/tutorials/tutorials_parrot.html#id3",LF.MPYTHON_AUDIO_XUNFEI_TTS_CONFIG_MESSAGE0="TTS 语音配置 APPID %1 APIKey %2",LF.MPYTHON_AUDIO_XUNFEI_TTS_CONFIG_TOOLTIP="输入在 讯飞开放平台 www.xfyun.cn 获取的 APPID 与 APIKey\n注意:要设置IP白名单",LF.MPYTHON_AUDIO_PLAY_HELPURL="https://mpython.readthedocs.io/zh/master/library/mPython/audio.html#id1",LF.MPYTHON_AUDIO_PLAY_MESSAGE0="音频 播放 %1",LF.MPYTHON_AUDIO_PLAY_TOOLTIP="需要有源音箱\nP8 左声道\nP9 右声道\nGND 接地\n播放参数: \n网络 MP3 的 url 或已上传至掌控板的 MP3, 如'music_1.mp3' ",LF.MPYTHON_AUDIO_PLAY_CHOOSE_HELPURL="https://mpython.readthedocs.io/zh/master/library/mPython/audio.html#id1",LF.MPYTHON_AUDIO_PLAY_CHOOSE_MESSAGE0="音频 播放 %1",LF.MPYTHON_AUDIO_PLAY_CHOOSE_TOOLTIP="需要有源音箱\nP8 左声道\nP9 右声道\nGND 接地\n播放参数: \n网络 MP3 的 url 或已上传至掌控板的 MP3, 如'music_1.mp3' ",LF.MPYTHON_AUDIO_DEINIT_HELPURL="",LF.MPYTHON_AUDIO_DEINIT_MESSAGE0="音频 释放缓存",LF.MPYTHON_AUDIO_DEINIT_TOOLTIP="",LF.MPYTHON_AUDIO_INIT_HELPURL="",LF.MPYTHON_AUDIO_INIT_MESSAGE0="音频 初始化",LF.MPYTHON_AUDIO_INIT_TOOLTIP="为音频解码开辟缓存",LF.MPYTHON_AUDIO_CMD_HELPURL="",LF.MPYTHON_AUDIO_CMD_MESSAGE0="音频 %1",LF.MPYTHON_AUDIO_CMD_TOOLTIP="",LF.MPYTHON_AUDIO_START_RECORDING_HELPURL="",LF.MPYTHON_AUDIO_START_RECORDING_MESSAGE0="开始录音 录音时长%1秒",LF.MPYTHON_AUDIO_START_RECORDING_TOOLTIP="需要掌控板v1.1以上硬件版本。录音时长不能超过5秒",LF.MPYTHON_AUDIO_RECORDING_RESULT_HELPURL="",LF.MPYTHON_AUDIO_RECORDING_RESULT_MESSAGE0="录音结果",LF.MPYTHON_AUDIO_RECORDING_RESULT_TOOLTIP="需要掌控板v1.1以上硬件版本。",LF.MPYTHON_AUDIO_DISCERN_RECORDING_HELPURL="",LF.MPYTHON_AUDIO_DISCERN_RECORDING_MESSAGE0="将 %1 进行识别",LF.MPYTHON_AUDIO_DISCERN_RECORDING_TOOLTIP="需要掌控板v1.1以上硬件版本。",LF.MPYTHON_AUDIO_DISCERN_RECORDING_RESULT_HELPURL="",LF.MPYTHON_AUDIO_DISCERN_RECORDING_RESULT_MESSAGE0="识别录音结果",LF.MPYTHON_AUDIO_DISCERN_RECORDING_RESULT_TOOLTIP="需要掌控板v1.1以上硬件版本。",LF.MPYTHON_RECORD_INIT_HELPURL="",LF.MPYTHON_RECORD_INIT_MESSAGE0="录音 初始化",LF.MPYTHON_RECORD_INIT_TOOLTIP="录音初始化。\n需要掌控板v1.1以上硬件版本。",LF.MPYTHON_RECORD_DEINIT_HELPURL="",LF.MPYTHON_RECORD_DEINIT_MESSAGE0="录音 释放资源",LF.MPYTHON_RECORD_DEINIT_TOOLTIP="录音结束后释放资源。\n需要掌控板v1.1以上硬件版本。",LF.MPYTHON_RECORD_WAV_HELPURL="",LF.MPYTHON_RECORD_WAV_MESSAGE0="录制音频 存储路径 %1 时长 %2 秒",LF.MPYTHON_RECORD_WAV_TOOLTIP="录制音频,并以 WAV 格式存储。\n需要掌控板v1.1以上硬件版本。",LF.MPYTHON_ASR_HELPURL="",LF.MPYTHON_ASR_MESSAGE0="识别 %1 秒语音指令",LF.MPYTHON_ASR_TOOLTIP="可以识别3秒内的语音指令。\n需要掌控板v1.1以上硬件版本。",LF.mpython_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",LF.mpython_button_A="P5(按键A)",LF.mpython_button_B="P11(按键B)",LF.mpython_PIN7_RGB="P7(板载RGB)",LF.MPYTHON_PWM_PIN_P7="P7 (掌控板)",LF.MPYTHON_PWM_PIN_P9="P9 (掌控实验箱)",LF.mpython_tem="温度",LF.mpython_hum="湿度",LF.mpython_pre="气压",LF.mpython_left_right="左右",LF.MPYTHON_LEFT="左",LF.MPYTHON_RIGHT="右",LF.mpython_front_back="前后",LF.mpython_vertical="垂直",LF.mpython_horizontal="水平",LF.mpython_run_in_back="后台运行",LF.mpython_run_in_front="前台运行",LF.mpython_draw="绘制",LF.mpython_clear="清除",LF.mpython_s="秒",LF.mpython_ms="毫秒",LF.mpython_us="微秒",LF.mpython_year="年",LF.mpython_month="月",LF.mpython_date="日",LF.mpython_hour="时",LF.mpython_minute="分",LF.mpython_week="星期数",LF.mpython_days="天数",LF.MPYTHON_ORDER="第",LF.MPYTHON_REVERSE_ORDER="倒数第",LF.MATH_RANDOM_RANDRANGE_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",LF.MATH_RANDOM_RANDRANGE_TOOLTIP="返回指定递增基数集合中的一个随机数,基数缺省值为1",LF.MATH_RANDOM_RANDRANGE_MESSAGE0="随机数 从递增区间 [%1 ,%2) 递增步长%3",LF.MATH_KEEP_DECIMAL_HELPURL="",LF.MATH_KEEP_DECIMAL_TOOLTIP="",LF.MATH_KEEP_DECIMAL_MESSAGE0="%1 保留 %2 位小数",LF.MPYTHON_MIN="最小值",LF.MPYTHON_MAX="最大值",LF.MPYTHON_LENTH="长度",LF.TUPLE_MIN_MAX_LEN_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",LF.TUPLE_MIN_MAX_LEN_TOOLTIP="",LF.TUPLE_MIN_MAX_LEN_MESSAGE0="元组 %1 %2",LF.TUPLE_ITEM_EXIST_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",LF.TUPLE_ITEM_EXIST_TOOLTIP="",LF.TUPLE_ITEM_EXIST_MESSAGE0="元组%1 包含%2",LF.LIST_ITEM_EXIST_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",LF.LIST_ITEM_EXIST_TOOLTIP="",LF.LIST_ITEM_EXIST_MESSAGE0="列表%1 包含%2",LF.PARTS_OF_TUPLE_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",LF.PARTS_OF_TUPLE_TOOLTIP="正序计数从0开始,倒序计数从1开始",LF.PARTS_OF_TUPLE_MESSAGE0="返回元组%1 取第%2 项到尾项",LF.PARTS_OF_TUPLE2_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",LF.PARTS_OF_TUPLE2_TOOLTIP="递增顺序取项\n举例:\n 倒数第5到倒数第2;\n 第0到第5",LF.PARTS_OF_TUPLE2_MESSAGE0="返回元组%1 取%2 %3 项到 %4 %5 项",LF.PARTS_OF_LIST_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",LF.PARTS_OF_LIST_TOOLTIP="递增顺序取项\n举例:\n 倒数第5到倒数第2;\n 第0到第5",LF.PARTS_OF_LIST_MESSAGE0="返回列表%1 取%2 %3 项到 %4 %5 项",LF.LIST_TO_TUPLE_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",LF.LIST_TO_TUPLE_TOOLTIP="",LF.LIST_TO_TUPLE_MESSAGE0="列表%1 转元组",LF.tuple_create_with_MESSAGE0="定义元组 %1 = %2 ",LF.tuple_create_with_TOOLTIP="只包含一个元素时,需要在元素后面添加逗号",LF.tuple_create_with_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",LF.tuple_order_item_MESSAGE0="元组%1 %2 %3 项",LF.tuple_order_item_TOOLTIP="正序计数从0开始,倒序计数从1开始",LF.tuple_order_item_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",LF.LIST_ORDER_ITEM_MESSAGE0="列表%1 %2 %3 项",LF.LIST_ORDER_ITEM_TOOLTIP="正序计数从0开始,倒序计数从1开始",LF.LIST_ORDER_ITEM_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",LF.SET_LIST_ORDER_ITEM_MESSAGE0="设列表%1 %2 %3 项为%4",LF.SET_LIST_ORDER_ITEM_TOOLTIP="正序计数从0开始,倒序计数从1开始",LF.SET_LIST_ORDER_ITEM_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",LF.INSERT_LIST_ORDER_ITEM_MESSAGE0="插入列表%1 %2 %3 项为%4",LF.INSERT_LIST_ORDER_ITEM_TOOLTIP="正序计数从0开始,倒序计数从1开始",LF.INSERT_LIST_ORDER_ITEM_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",LF.SET_TUPLE_ORDER_ITEM_MESSAGE0="设元组%1 %2 %3 项为%4",LF.SET_TUPLE_ORDER_ITEM_TOOLTIP="正序计数从0开始,倒序计数从1开始",LF.SET_TUPLE_ORDER_ITEM_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",LF.DICT_CREATE_WITH_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",LF.DICT_CREATE_WITH_TOOLTIP="",LF.DICT_CREATE_WITH_MESSAGE0="定义字典 %1 = %2",LF.SET_CREATE_WITH_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",LF.SET_CREATE_WITH_TOOLTIP="",LF.SET_CREATE_WITH_MESSAGE0="定义集合 %1 = %2",LF.SET_UPDATE_WITH_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",LF.SET_UPDATE_WITH_TOOLTIP="添加参数可为字符串、列表、元组、集合、字典(只添加key),已有元素则不进行操作",LF.SET_UPDATE_WITH_MESSAGE0="集合 %1 添加 %2",LF.INTERSECTION_OF_SETS_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",LF.INTERSECTION_OF_SETS_TOOLTIP="",LF.INTERSECTION_OF_SETS_MESSAGE0="取 %1 集合 %2 集合 %3",LF.MPYTHON_INTERSECTION="交集",LF.MPYTHON_UNION="并集",LF.MPYTHON_DIFFERENCE="差集",LF.SETS_UPDATE_WAYS_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",LF.SETS_UPDATE_WAYS_TOOLTIP="",LF.SETS_UPDATE_WAYS_MESSAGE0="集合 %1 更新为 与集合 %2 的 %3",LF.SUBSET_SUPERSET_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",LF.SUBSET_SUPERSET_TOOLTIP="",LF.SUBSET_SUPERSET_MESSAGE0="集合 %1 为集合 %2 的 %3",LF.MPYTHON_SUBSET="子集",LF.MPYTHON_SUPERSET="超集",LF.LEN_OF_SETS_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",LF.LEN_OF_SETS_TOOLTIP="",LF.LEN_OF_SETS_MESSAGE0="集合 %1 长度",LF.GET_SETS_POP_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",LF.GET_SETS_POP_TOOLTIP="",LF.GET_SETS_POP_MESSAGE0="返回随机项并移除之 从集合 %1",LF.CREATE_EMPTY_SET_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",LF.CREATE_EMPTY_SET_TOOLTIP="",LF.CREATE_EMPTY_SET_MESSAGE0="创建空集合 %1",LF.BIT_INVERSION_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",LF.BIT_INVERSION_TOOLTIP="对数据的每个二进制位取反",LF.BIT_INVERSION_MESSAGE0="二进制取反 %1",LF.TUPLE_CREATE_WITH_ITEMS_INSERT_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",LF.TUPLE_CREATE_WITH_ITEMS_INSERT_TOOLTIP="正序计数从0开始,倒序计数从1开始",LF.SET_CREATE_WITH_ITEMS_INSERT_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",LF.SET_CREATE_WITH_ITEMS_INSERT_TOOLTIP="项可为字符串、已创建变量变量、元组",LF.DICT_CREATE_WITH_ITEMS_INSERT_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",LF.DICT_CREATE_WITH_ITEMS_INSERT_TOOLTIP="正序计数从0开始,倒序计数从1开始",LF.DICT_KEY_VALUE_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",LF.DICT_KEY_VALUE_TOOLTIP="",LF.DICT_KEY_VALUE_MESSAGE0="字典%1 键%2 的值",LF.ADD_DICT_KEY_VALUE_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",LF.ADD_DICT_KEY_VALUE_TOOLTIP="已有该键则更新该键",LF.ADD_DICT_KEY_VALUE_MESSAGE0="字典%1 添加键%2 值%3",LF.DICT_LENGTH_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",LF.DICT_LENGTH_TOOLTIP="",LF.DICT_LENGTH_MESSAGE0="字典%1 长度",LF.DICT_KEY_EXIST_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",LF.DICT_KEY_EXIST_TOOLTIP="",LF.DICT_KEY_EXIST_MESSAGE0="字典%1 包含键%2",LF.DICT_KEY_OR_VAL_LIST_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",LF.DICT_KEY_OR_VAL_LIST_TOOLTIP="",LF.DICT_KEY_OR_VAL_LIST_MESSAGE0="字典%1 %2的列表",LF.DICT_KEYS="键",LF.DICT_VALUES="值",LF.mpython_lists_append_MESSAGE0="列表%1 末尾添加项%2",LF.mpython_lists_append_TOOLTIP="",LF.mpython_lists_append_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",LF.mpython_lists_extend_MESSAGE0="列表%1 追加列表%2",LF.mpython_lists_extend_TOOLTIP="",LF.mpython_lists_extend_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",LF.mpython_lists_clear_MESSAGE0="列表%1 清空",LF.mpython_lists_clear_TOOLTIP="",LF.mpython_lists_clear_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",LF.MPYTHON_REMOVE_REPETITION_MESSAGE0="列表%1 移除重复",LF.MPYTHON_REMOVE_REPETITION_TOOLTIP="",LF.MPYTHON_REMOVE_REPETITION_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",LF.mpython_Timer_value_MESSAGE0="定时器 %1 的计数值",LF.mpython_Timer_value_TOOLTIP="获取并返回计时器当前计数值",LF.mpython_Timer_deinit_MESSAGE0="清除 定时器/事件 %1",LF.mpython_Timer_deinit_TOOLTIP="取消定时器的初始化。停止计时器,并禁用计时器外围设备",LF.mpython_Interrupt_AB_HELPURL="https://mpython.readthedocs.io/zh/latest/tutorials/basics/buttons.html#id3",LF.mpython_Interrupt_AB_TOOLTIP="",LF.mpython_Interrupt_AB_MESSAGE0="当按键 %1 被 %2 时",LF.mpython_Interrupt_pin_HELPURL="https://mpython.readthedocs.io/zh/latest/tutorials/basics/io/digital_io.html#id3",LF.mpython_Interrupt_pin_TOOLTIP="上升沿触发:由低电平到高电平;下降沿触发:由高电平到低电平",LF.mpython_Interrupt_pin_MESSAGE0="当引脚 %1 电平 %2 时",LF.mpython_Interrupt_pin_IRQ_FALLING="↘ 从高到低",LF.mpython_Interrupt_pin_IRQ_RISING="↗ 从低到高",LF.mpython_IRQ_FALLING="按下",LF.mpython_IRQ_RISING="松开",LF.mpython_PERIODIC="重复执行",LF.mpython_ONE_SHOT="延时执行",LF.MPYTHON_IS_SHAKED_MESSAGE0="掌控板 %1",LF.MPYTHON_IS_SHAKED_HELPURL="",LF.MPYTHON_IS_SHAKED_TOOLTIP="",LF.MPYTHON_IS_SHAKED="被摇晃",LF.MPYTHON_IS_THROWN="被抛起",LF.MPYTHON_SHAKE_DETECTOR_MESSAGE0="当掌控板 %1 时",LF.MPYTHON_SHAKE_DETECTOR_HELPURL="",LF.MPYTHON_SHAKE_DETECTOR_TOOLTIP="",LF.MPYTHON_IS_TILTED_MESSAGE0="掌控板 %1",LF.MPYTHON_IS_TILTED_HELPURL="",LF.MPYTHON_IS_TILTED_TOOLTIP="",LF.MPYTHON_TILT_DETECTOR_MESSAGE0="当掌控板 %1 时",LF.MPYTHON_TILT_DETECTOR_HELPURL="",LF.MPYTHON_TILT_DETECTOR_TOOLTIP="",LF.MPYTHON_DIRECTION_FORWARD="向前倾斜",LF.MPYTHON_DIRECTION_BACK="向后倾斜",LF.MPYTHON_DIRECTION_RIGHT="向右倾斜",LF.MPYTHON_DIRECTION_LEFT="向左倾斜",LF.MPYTHON_DIRECTION_NONE="平放",LF.MPYTHON_TOUCH_EVENT_MESSAGE0="当触摸键 %1 被 %2 时",LF.MPYTHON_TOUCH_EVENT_HELPURL="",LF.MPYTHON_TOUCH_EVENT_TOOLTIP="",LF.MPYTHON_TOUCH_EVENT_PRESSED="触摸",LF.MPYTHON_TOUCH_EVENT_UNPRESSED="释放",LF.MPYTHON_CUSTOM_EVENT_MESSAGE0="事件 %1 : 当 %2 时",LF.MPYTHON_CUSTOM_EVENT_HELPURL="",LF.MPYTHON_CUSTOM_EVENT_TOOLTIP="自定义事件与定时器共用 1/2/4/7/8/9/10,不可同时占用一个端口。\n最大同时创建4个事件/定时器,如果存在冲突,请尝试换一个编号。",LF.mpython_music_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",LF.mpython_music_range_pitch_TOOLTIP="时长为单个频率的时长",LF.mpython_music_range_pitch_MESSAGE0="播放音调 从%1 到%2 步长%3 时长%4 毫秒 引脚 %5",LF.mpython_neopixel_init_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",LF.mpython_neopixel_init_TOOLTIP="",LF.mpython_neopixel_init_MESSAGE0="灯带初始化 名称%1 引脚%2 数量%3",LF.MPYTHON_NEOPIXEL_RAINBOW_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",LF.MPYTHON_NEOPIXEL_RAINBOW_TOOLTIP="",LF.MPYTHON_NEOPIXEL_RAINBOW_MESSAGE0="彩虹灯效 灯带%1 数量 %2 亮度 %3 偏移 %4",LF.MPYTHON_NEOPIXEL_BRIGHTNESS_HELPURL="https://mpython.readthedocs.io/zh/master/library/micropython/neopixel.html#NeoPixel.brightness",LF.MPYTHON_NEOPIXEL_BRIGHTNESS_TOOLTIP="亮度调节, 范围 0 ~ 100",LF.MPYTHON_NEOPIXEL_BRIGHTNESS_MESSAGE0="灯带 %1 设置亮度为 %2",LF.mpython_neopixel_single_TOOLTIP="",LF.mpython_neopixel_single_MESSAGE0="灯带%1 %2号 红%3 绿%4 蓝%5",LF.mpython_neopixel_single_gui_MESSAGE0="灯带 %1 %2号 颜色为 %3",LF.mpython_neopixel_single_gui_TOOLTIP="",LF.mpython_neopixel_show_TOOLTIP="",LF.mpython_neopixel_show_MESSAGE0="灯带%1 设置生效",LF.mpython_neopixel_off_TOOLTIP="",LF.mpython_neopixel_off_MESSAGE0="灯带%1 关闭",LF.mpython_neopixel_all_TOOLTIP="",LF.mpython_neopixel_all_MESSAGE0="灯带%1 全亮 红%2 绿%3 蓝%4",LF.mpython_neopixel_all_gui_TOOLTIP="",LF.mpython_neopixel_all_gui_MESSAGE0="灯带%1 全亮 颜色%2",LF.mpython_image_to_oled_MESSAGE0="打开图片 %1 宽 %2 高 %3",LF.mpython_image_to_oled_TOOLTIP="",LF.mpython_time_localtime_MESSAGE0="本地时间 %1",LF.mpython_time_localtime_TOOLTIP="星期数:返回0~6,周一为0,周日为6\n天数:获取当前日期是一年中的第几天\n建议先连接wifi并获取网络时间",LF.mpython_WiFi_config_MESSAGE0="Wi-Fi 配置信息 %1",LF.mpython_WiFi_config_TOOLTIP="netmask-子网掩码;gateway-网关",LF.mpython_time_ticks_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",LF.mpython_time_ticks_MESSAGE0="运行时间 %1",LF.mpython_time_ticks_TOOLTIP="",LF.MPYTHON_TIMER_DEF_MESSAGE0="定义定时器 %1",LF.MPYTHON_TIMER_INIT_MESSAGE0="启动定时器 %1 %2 周期 %3 毫秒",LF.mpython_Timer_MESSAGE0="设置定时器 %1 %2 周期 %3 毫秒",LF.mpython_Timer_TOOLTIP="创建定时器n,n=1-14。\n最大同时创建4个定时器,如果存在冲突,请尝试换一个编号。\n3用于内部程序,\n5/6用于伺服系统和ADC,\n11用于摇晃检测,\n12用于触摸键检测,\n13用于Radio和DHT11/DHT22定时取值(共用),\n14用于OneNET和倾斜检测(共用),\n其余端口与自定义事件共用。",LF.mpython_Timer_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/blocks/index.html",LF.mpython_sway_xyz_MESSAGE0="%1 摇晃掌控板",LF.mpython_sway_xyz_TOOLTIP="掌控板正面朝上,触摸键 'python' 靠近使用者,开始左右或前后摇晃掌控板",LF.mpython_init_bluetooth_MESSAGE0="初始化 蓝牙名称%1",LF.mpython_init_bluetooth_TOOLTIP="初始化 蓝牙名称",LF.mpython_OnOff_bluetooth_MESSAGE0="蓝牙设备 %1广播",LF.mpython_OnOff_bluetooth_TOOLTIP="蓝牙设备 开启或关闭广播",LF.mpython_HID_keyboard_bluetooth_MESSAGE0="键盘 按键%1",LF.mpython_HID_keyboard_bluetooth_TOOLTIP="HID键盘设备",LF.mpython_HID_consumer_bluetooth_MESSAGE0="消费类设备%1 状态%2",LF.mpython_HID_consumer_bluetooth_TOOLTIP="模拟HID消费类设备的控制器,如蓝牙遥控器",LF.mpython_HID_release_keyboard_bluetooth_MESSAGE0="键盘 释放按键",LF.mpython_HID_release_keyboard_bluetooth_TOOLTIP="键盘设备",LF.mpython_HID_mouse_bluetooth_MESSAGE0="鼠标%1",LF.mpython_HID_mouse_bluetooth_TOOLTIP="鼠标设备",LF.mpython_HID_release_mouse_bluetooth_MESSAGE0="鼠标 释放按键",LF.mpython_HID_release_mouse_bluetooth_TOOLTIP="鼠标设备",LF.mpython_HID_mouse_pointer_bluetooth_MESSAGE0="鼠标 指针移动 x%2 y%1",LF.mpython_HID_mouse_pointer_bluetooth_TOOLTIP="鼠标指针坐标x,y轴的相对位移,范围-1023 ~ 1023",LF.mpython_HID_keyboard_group_bluetooth_MESSAGE0="键盘 按键%1 组合按键%2",LF.mpython_HID_keyboard_group_bluetooth_TOOLTIP="如果想使用多个按键组合指令,可以用“|”或运算",LF.mpython_HID_keyboard_part_bluetooth_MESSAGE0="键盘 组合按键%1",LF.mpython_HID_keyboard_part_bluetooth_TOOLTIP="如果想使用多个按键组合指令,可以用“|”或运算",LF.mpython_HID_keyboard_part_bluetooth_HELPURL="",LF.mpython_init_wifi_MESSAGE0="连接 Wi-Fi 名称 %1 密码 %2",LF.mpython_init_wifi_TOOLTIP="让掌控板接入Wi-Fi环境",LF.MPYTHON_WIFI_IFCONFIG_MESSAGE0="Wi-Fi 设置静态IP %1 IP 地址 %2 子网掩码 %3 默认网关 %4 DNS %5",LF.MPYTHON_WIFI_IFCONFIG_TOOLTIP="",LF.MPYTHON_WIFI_IFCONFIG_HELPURL="",LF.mpython_dis_WiFi_MESSAGE0="断开 Wi-Fi 连接",LF.mpython_dis_WiFi_TOOLTIP="",LF.MPYTHON_ENABLE_APWIFI_HELPURL="https://mpython.readthedocs.io/zh/master/tutorials/basics/network/network_basics.html#ap",LF.MPYTHON_ENABLE_APWIFI_TOOLTIP="密码可以为空,或者8位以上的字母或数字。\nAP模式仅用于掌控板之间的相互通信,不可以作为热点,令其它设备上网。",LF.MPYTHON_ENABLE_APWIFI_MESSAGE0="开启 AP模式 名称 %1 密码 %2 信道 %3",LF.mpython_disable_APWiFi_MESSAGE0="关闭 AP模式",LF.mpython_disable_APWiFi_TOOLTIP="",LF.mpython_ntptime_settime_MESSAGE0="同步网络时间 时区 %1 授时服务器 %2",LF.mpython_ntptime_settime_TOOLTIP="NTP时间同步是一种时间同步网络技术",LF.mpython_wifi_get_date_MESSAGE0="获取当前日期",LF.mpython_wifi_get_date_TOOLTIP="获取当前日期字符串 示例:2020年12月12日",LF.mpython_wifi_get_time_MESSAGE0="获取当前时间",LF.mpython_wifi_get_time_TOOLTIP="获取当前时间字符串",LF.mpython_ntptime_timezone_E1="东1区",LF.mpython_ntptime_timezone_E2="东2区",LF.mpython_ntptime_timezone_E3="东3区",LF.mpython_ntptime_timezone_E4="东4区",LF.mpython_ntptime_timezone_E5="东5区",LF.mpython_ntptime_timezone_E6="东6区",LF.mpython_ntptime_timezone_E7="东7区",LF.mpython_ntptime_timezone_E8="东8区",LF.mpython_ntptime_timezone_E9="东9区",LF.mpython_ntptime_timezone_E10="东10区",LF.mpython_ntptime_timezone_E11="东11区",LF.mpython_ntptime_timezone_E12="东12区",LF.mpython_ntptime_timezone_0="中时区",LF.mpython_ntptime_timezone_W1="西1区",LF.mpython_ntptime_timezone_W2="西2区",LF.mpython_ntptime_timezone_W3="西3区",LF.mpython_ntptime_timezone_W4="西4区",LF.mpython_ntptime_timezone_W5="西5区",LF.mpython_ntptime_timezone_W6="西6区",LF.mpython_ntptime_timezone_W7="西7区",LF.mpython_ntptime_timezone_W8="西8区",LF.mpython_ntptime_timezone_W9="西9区",LF.mpython_ntptime_timezone_W10="西10区",LF.mpython_ntptime_timezone_W11="西11区",LF.mpython_ntptime_timezone_W12="西12区",LF.FILE_TO_LIST_HELPURL="",LF.FILE_TO_LIST_TOOLTIP="读出指定路径的文本文件内容(仅限utf-8格式),并转为列表形式,以分隔符分隔。",LF.FILE_TO_LIST_MESSAGE0="读取文本文件 %1 为列表 ,以 %2 分隔",LF.FILE_TO_BIN_HELPURL="",LF.FILE_TO_BIN_TOOLTIP="以二进制格式读出指定路径的文件内容。";LF.FILE_TO_BIN_MESSAGE0="读取文件 %1 的二进制内容",LF.MPYTHON_INIT_FILE_HELPURL="",LF.MPYTHON_INIT_FILE_TOOLTIP="初始化一个文本文件,如果文件不存在则创建文件,如果文件存在则清空内容。",LF.MPYTHON_INIT_FILE_MESSAGE0="初始化文本文件 %1",LF.MPYTHON_WRITE_FILE_HELPURL="",LF.MPYTHON_WRITE_FILE_TOOLTIP="向指定路径的文本文件写入内容,如果文件不存在则创建文件。",LF.MPYTHON_WRITE_FILE_MESSAGE0="向文本文件 %1 写入内容 %2 ,以 %3 分隔",LF.MPYTHON_SDCARD_INIT_HELPURL="https://mpython.readthedocs.io/zh/master/library/mPython/sdcard.html#sdcard.SDCard",LF.MPYTHON_SDCARD_INIT_TOOLTIP="sck: P13\nmosi: P15\nmiso: P14\nsdcard: P16\n须确保 SPI 总线的引脚与 micro SD 卡物理连接正确,并预先使用 FAT 或 FAT32 文件系统格式化 micro SD 卡。",LF.MPYTHON_SDCARD_INIT_MESSAGE0="初始化 SD 卡",LF.MPYTHON_SDCARD_MOUNT_HELPURL="https://mpython.readthedocs.io/zh/master/library/mPython/sdcard.html#sdcard.SDCard",LF.MPYTHON_SDCARD_MOUNT_TOOLTIP="挂载 SD 卡到指定路径。",LF.MPYTHON_SDCARD_MOUNT_MESSAGE0="挂载 SD 卡到路径 %1",LF.MPYTHON_ENTER="回车",LF.MPYTHON_COMMA="逗号",LF.MPYTHON_SEMICOLON="分号",LF.MPYTHON_SPACE="空格",LF.mpython_wifi_clock_MESSAGE0="Wi-Fi 模拟时钟 x %1 y %2 半径 %3",LF.mpython_wifi_clock_TOOLTIP="需连接 Wi-Fi 使用",LF.mpython_def_clock_MESSAGE0="初始化时钟%1 x %2 y %3 半径 %4",LF.mpython_def_clock_TOOLTIP="",LF.mpython_settime_clock_MESSAGE0="时钟%1 读取时间",LF.mpython_settime_clock_TOOLTIP="",LF.mpython_draw_clear_clock_MESSAGE0="%1 时钟 %2",LF.mpython_draw_clear_clock_TOOLTIP="",LF.mpython_tinywebio_start_MESSAGE0="启动 TinyWebIO 服务 %1",LF.mpython_tinywebio_start_TOOLTIP="启动该服务需连接Wi-Fi,TinyWebIO服务为App Inventor应用提供远程控制接口的掌控板工具包",LF.mpython_tinywebio_client_setup_HELPURL="",LF.mpython_tinywebio_client_setup_TOOLTIP="向服务器发布的数据项(逗号分隔)\nbuttona/b 按键状态\ntouchpadp/y/t/h/o/n 触摸按键值\nlight 光线值\nsound 声音值\naccelerometer 三轴加速度值\nid 掌控板标识\ntime 时间戳\npind 数字IO引脚\npina 模拟IO引脚\n----------\n从服务器读取的数据项(逗号分隔)\nrgb0/1/2 RGB灯珠\noled OLED显示屏\nmusic 音乐\nservo 舵机\npind 数字IO引脚\npina 模拟IO引脚",LF.mpython_tinywebio_client_setup_MESSAGE0="设置 TinyWebIO 客户端参数 %1 TinyWebDB服务器地址 %2 向服务器发布的数据项 %3 从服务器读取的数据项 %4 存取服务器的时间间隔(ms) %5",LF.mpython_tinywebio_client_action_HELPURL="",LF.mpython_tinywebio_client_action_TOOLTIP="",LF.mpython_tinywebio_client_action_MESSAGE0="%1 TinyWebIO 客户端",LF.mpython_tinywebio_client_action_start="启动",LF.mpython_tinywebio_client_action_stop="停止",LF.MPYTHON_CUSTOM_CODE_HELPURL="",LF.MPYTHON_CUSTOM_CODE_TOOLTIP="",LF.MPYTHON_CUSTOM_CODE_MESSAGE0="%1 自定义代码 %2 %3",LF.MPYTHON_CUSTOM_TYPE_IMPORT="置顶",LF.MPYTHON_CUSTOM_TYPE_NORMAL="普通",LF.mpython_servo_angle0_MESSAGE0="设置舵机 %1 角度为 %2",LF.mpython_servo_angle_MESSAGE0="设置舵机 %1 角度为 %2 脉宽从 %3 到 %4 最大角度 %5",LF.mpython_servo_angle_TOOLTIP="电源线Vcc(红色)连接拓展板电源口V,地线GND(棕色)连接拓展板地线口G,控制信号线(橙色)连接所选的拓展板引脚",LF.mpython_dh11_hum_tem_HELPURL="https://mpython.readthedocs.io/zh/latest/classic/dht11.html?highlight=DHT",LF.mpython_dh11_hum_tem_MESSAGE0="DHT11 %1 %2",LF.mpython_dh11_hum_tem_TOOLTIP="DHT11上的 + 连接拓展板的电源口 V ,- 连接拓展板的地线口 G ,out 连接拓展板的引脚 0(即选引脚)",LF.MPYTHON_DH22_HUM_TEM_MESSAGE0="DHT22 %1 %2",LF.MPYTHON_DH22_HUM_TEM_TOOLTIP="",LF.MPYTHON_DH22_HUM_TEM_HELPURL="https://mpython.readthedocs.io/zh/latest/classic/dht11.html?highlight=DHT",LF.mpython_music_note_MESSAGE0="音符 %1 %2 : %3",LF.mpython_music_note_TOOLTIP="音符,如C4:4",LF.mpython_return_list_MESSAGE0="定义列表 %1 = %2",LF.mpython_return_list_TOOLTIP="",LF.mpython_display_Show_MESSAGE0="OLED 显示生效",LF.mpython_display_Show_TOOLTIP="",LF.mpython_display_DispChar_MESSAGE0="显示文本 x %1 y %2 内容 %3 模式 %4 %5",LF.mpython_display_DispChar_TOOLTIP="OLED分辨率128x64",LF.mpython_display_DispChar_HELPURL="https://mpython.readthedocs.io/zh/master/library/mPython/mpython.html?highlight=oled#oled.DispChar",LF.mpython_display_DispChar_5lines_MESSAGE0="OLED 第%1 行显示 %2 模式 %3 %4",LF.mpython_display_DispChar_5lines_TOOLTIP="OLED分辨率128x64",LF.mpython_line1="1",LF.mpython_line2="2",LF.mpython_line3="3",LF.mpython_line4="4",LF.mpython_line5="5",LF.MPYTHON_CLEAR_DISPCHAR_5LINES_MESSAGE0="OLED 清除第 %1 行",LF.MPYTHON_CLEAR_DISPCHAR_5LINES_TOOLTIP="OLED分辨率128x64",LF.MPYTHON_CLEAR_DISPCHAR_5LINES_HELPURL="",LF.mpython_display_fill_0="清空",LF.mpython_display_fill_1="全亮",LF.mpython_display_invert_0="黑底",LF.mpython_display_invert_1="白底",LF.mpython_display_show="生效",LF.mpython_display_fill_MESSAGE0="OLED 显示 %1",LF.mpython_display_fill_TOOLTIP="",LF.mpython_display_pixel_0="暗",LF.mpython_display_pixel_1="亮",LF.mpython_display_pixel_MESSAGE0="描点 x %1 y %2 为 %3",LF.mpython_display_pixel_TOOLTIP="",LF.mpython_display_hline_0="擦除",LF.mpython_display_hline_1="绘制",LF.mpython_display_hline_MESSAGE0="%1 水平线%2 x%3 y%4 长度%5",LF.mpython_display_hline_TOOLTIP="",LF.mpython_ProgressBar_MESSAGE0="进度条%1 x%2 y%3 宽%4 高%5 进度%6",LF.mpython_ProgressBar_TOOLTIP="",LF.mpython_stripBar_MESSAGE0="柱状条%1 x%2 y%3 宽%4 高%5 进度%6",LF.mpython_stripBar_TOOLTIP="",LF.MPYTHON_QR_CODE_HELPURL="https://mpython.readthedocs.io/zh/master/library/mPython/gui.html#gui.UI.qr_code",LF.MPYTHON_QR_CODE_TOOLTIP="",LF.MPYTHON_QR_CODE_MESSAGE0="在坐标 x %1 y %2 绘制二维码 %3 尺寸 %4",LF.MPYTHON_DISPLAY_MODE_0="擦除",LF.MPYTHON_DISPLAY_MODE_1="绘制",LF.MPYTHON_DISPLAY_HOLLOW="空心",LF.MPYTHON_DISPLAY_SOLID="实心",LF.MPYTHON_DISPLAY_HVLINE_MESSAGE0="%1 %2 线 %3 x %4 y %5 长度 %6",LF.MPYTHON_DISPLAY_HVLINE_TOOLTIP="",LF.MPYTHON_DISPLAY_SHAPE_RECT_MESSAGE0="%1 %2 矩形 %3 x %4 y %5 宽 %6 高 %7",LF.MPYTHON_DISPLAY_SHAPE_RECT_TOOLTIP="",LF.MPYTHON_DISPLAY_SHAPE_CIRCLE_MESSAGE0="%1 %2 圆 %3 x %4 y %5 半径 %6",LF.MPYTHON_DISPLAY_SHAPE_CIRCLE_TOOLTIP="",LF.MPYTHON_DISPLAY_SHAPE_TRIANGLE_MESSAGE0="%1 %2 三角 %3 x1 %4 y1 %5 x2 %6 y2 %7 x3 %8 y3 %9",LF.MPYTHON_DISPLAY_SHAPE_TRIANGLE_TOOLTIP="",LF.MPYTHON_RGB_0="0 #",LF.MPYTHON_RGB_1="1 #",LF.MPYTHON_RGB_2="2 #",LF.MPYTHON_RGB_ALL="所有",LF.MPYTHON_SET_RGB_LIST_COLOR_MESSAGE0="设置 %1 RGB 灯颜色为 %2",LF.MPYTHON_SET_RGB_LIST_COLOR_TOOLTIP="原生亮度的 1/30 能较好显示色差",LF.MPYTHON_SET_RGB_LIST_NUMBER_MESSAGE0="设置 %1 RGB 灯颜色为 R %2 G %3 B %4",LF.MPYTHON_SET_RGB_LIST_NUMBER_TOOLTIP="原生亮度的 1/30 能较好显示色差",LF.MPYTHON_OFF_RGB_LIST_MESSAGE0="关闭 %1 RGB 灯",LF.MPYTHON_OFF_RGB_LIST_TOOLTIP="",LF.MPYTHON_MUSIC_PLAY_MESSAGE0="播放音乐 %1 引脚 %2",LF.MPYTHON_MUSIC_PLAY_TOOLTIP="播放内置的音乐",LF.MPYTHON_MUSIC_PLAY_UNTIL_END_MESSAGE0="播放音乐 %1 直到完成 , 引脚 %2",LF.MPYTHON_MUSIC_PLAY_UNTIL_END_TOOLTIP="播放内置的音乐",LF.MPYTHON_MUSIC_GE_CHANG_ZU_GUO="歌唱祖国",LF.MPYTHON_MUSIC_DONG_FANG_HONG="东方红",LF.MPYTHON_MUSIC_CAI_YUN_ZHUI_YUE="彩云追月",LF.MPYTHON_MUSIC_ZOU_JIN_XIN_SHI_DAI="走进新时代",LF.MPYTHON_MUSIC_MO_LI_HUA="茉莉花",LF.MPYTHON_MUSIC_YI_MENG_SHAN_XIAO_DIAO="沂蒙山小调",LF.mpython_display_vline_MESSAGE0="%1 垂直线%2 x%3 y%4 长度%5",LF.mpython_display_vline_TOOLTIP="",LF.mpython_display_line_MESSAGE0="%1 线%2 x1 %3 y1 %4 到 x2 %5 y2 %6",LF.mpython_display_line_TOOLTIP="",LF.mpython_display_rect_MESSAGE0="%1 边框%2 x %3 y %4 宽 %5 高 %6",LF.mpython_display_rect_TOOLTIP="",LF.mpython_display_RoundRect_MESSAGE0="%1 弧角边框%2 x %3 y %4 宽 %5 高 %6 半径%7",LF.mpython_display_RoundRect_TOOLTIP="",LF.mpython_display_fill_rect_MESSAGE0="%1 矩形%2 x %3 y %4 宽 %5 高 %6 ",LF.mpython_display_fill_rect_TOOLTIP="",LF.mpython_display_fill_circle_MESSAGE0="%1 实心圆%2 x %3 y %4 半径 %5",LF.mpython_display_fill_circle_TOOLTIP="",LF.mpython_display_circle_MESSAGE0="%1 空心圆%2 x %3 y %4 半径 %5",LF.mpython_display_circle_TOOLTIP="",LF.mpython_display_triangle_MESSAGE0="%1 空心三角%2 x%3 y%4 x2%5 y2%6 x3%7 y3%8",LF.mpython_display_triangle_TOOLTIP="",LF.mpython_display_fill_triangle_MESSAGE0="%1 实心三角%2 x%3 y%4 x2%5 y2%6 x3%7 y3%8",LF.mpython_display_fill_triangle_TOOLTIP="",LF.mpython_display_Bitmap_MESSAGE0="%1 图像 x%2 y%3 宽%4 高%5 16进制图像数据 %6",LF.mpython_display_Bitmap_TOOLTIP="将16进制图像数据显示在OLED屏的指定位置",LF.MPYTHON_GET_PBM_DATA_MESSAGE0="获取内置图像 %1 模式%2",LF.MPYTHON_GET_PBM_DATA_TOOLTIP="支持*.pbm 或 *.bmp 格式的单色图像文件,获取指定路径的图像文件数据,返回一个元组对象。",LF.MPYTHON_GET_PBM_DATA_HELPURL="https://mpython.readthedocs.io/zh/master/library/mPython/gui.html#image",LF.MPYTHON_GET_PBM_DATA_CUSTOM_MESSAGE0="获取自定义图像 %1 模式%2",LF.MPYTHON_DISPLAY_PBM_DATA_MESSAGE0="在坐标 x %1 y %2 显示图像 %3",LF.MPYTHON_DISPLAY_PBM_DATA_TOOLTIP="支持*.pbm 或 *.bmp格式的单色图像文件",LF.MPYTHON_DISPLAY_PBM_DATA_HELPURL="https://mpython.readthedocs.io/zh/master/library/mPython/gui.html#image",LF.MPYTHON_BITMAP_FROM_FILE_MESSAGE0="在坐标 x %1 y %2 显示图像 %5 宽 %3 高 %4",LF.MPYTHON_BITMAP_FROM_FILE_TOOLTIP="",LF.MPYTHON_BITMAP_FROM_FILE_HELPURL="",LF.mpython_horizontal="水平",LF.mpython_vertical="垂直",LF.mpython_display_FrameBuffer_MESSAGE0="构建帧 列表 %1 长 %2 宽 %3 扫描模式 %4",LF.mpython_display_FrameBuffer_TOOLTIP="用图像取模后数据的列表 ,创建128x64的帧缓存区,以储存图片帧",LF.MPYTHON_FONT_DIGIFACE_11="仿数码管 11像素",LF.MPYTHON_FONT_DIGIFACE_16="仿数码管 16像素",LF.MPYTHON_FONT_DIGIFACE_21="仿数码管 21像素",LF.MPYTHON_FONT_DIGIFACE_30="仿数码管 30像素",LF.MPYTHON_FONT_DIGIFACE_44="仿数码管 44像素",LF.MPYTHON_FONT_DIGIFACE_IT_30="仿数码管 斜体 30像素",LF.MPYTHON_FONT_DIGIFACE_IT_42="仿数码管 斜体 42像素",LF.MPYTHON_FONT_DVSM_12="DejaVu Sans Mono 12像素",LF.MPYTHON_FONT_DVSM_16="DejaVu Sans Mono 16像素",LF.MPYTHON_FONT_DVSM_21="DejaVu Sans Mono 21像素",LF.MPYTHON_FONT_DVSMB_12="DejaVu Sans Mono 黑体 12像素",LF.MPYTHON_FONT_DVSMB_16="DejaVu Sans Mono 黑体 16像素",LF.MPYTHON_FONT_DVSMB_21="DejaVu Sans Mono 黑体 21像素",LF.MPYTHON_FONT_WRAP="自动换行",LF.MPYTHON_FONT_NO_WRAP="不换行",LF.MPYTHON_FACE_1="心形",LF.MPYTHON_FACE_2="心形(小)",LF.MPYTHON_FACE_3="高兴",LF.MPYTHON_FACE_4="笑脸",LF.MPYTHON_FACE_5="伤心",LF.MPYTHON_FACE_6="困惑",LF.MPYTHON_FACE_7="生气",LF.MPYTHON_FACE_8="睡着",LF.MPYTHON_FACE_9="惊讶",LF.MPYTHON_FACE_10="愚蠢",LF.MPYTHON_FACE_11="极妙",LF.MPYTHON_FACE_12="无聊",LF.MPYTHON_FACE_ROCK="石头",LF.MPYTHON_FACE_PAPER="布",LF.MPYTHON_FACE_SCISSORS="剪刀",LF.MPYTHON_FACE_ROCK_S="石头(小)",LF.MPYTHON_FACE_PAPER_S="布(小)",LF.MPYTHON_FACE_SCISSORS_S="剪刀(小)",LF.MPYTHON_DISPLAY_FONT_MESSAGE0="在坐标 x %1 y %2 显示 %3 以 %4 字体 %5",LF.MPYTHON_DISPLAY_FONT_TOOLTIP="",LF.MPYTHON_DISPLAY_FONT_HELPURL="",LF.mpython_front="正向",LF.mpython_reverse="反转",LF.mpython_display_blit_MESSAGE0="显示帧 坐标x %1 y %2",LF.mpython_display_blit_TOOLTIP="",LF.mpython_front_reverse_MESSAGE0="像素点bit %1",LF.mpython_front_reverse_TOOLTIP="用于显示之前",LF.mpython_images_append_MESSAGE0="动图显示 帧数%1 周期%2 长%3 宽%4",LF.mpython_images_append_TOOLTIP="上传至掌控板的pbm图片需命名为IMAGE.数字,后缀为pbm。如:IMAGE.1.pbm。帧数为7则数字为1至7",LF.mpython_button_is_pressed_MESSAGE0="按键%1 被按下",LF.mpython_button_is_pressed_TOOLTIP="",LF.mpython_button_both_pressed_MESSAGE0="AB按键都按下",LF.mpython_button_both_pressed_TOOLTIP="",LF.mpython_touchPad_value_MESSAGE0="按键%1 被触摸",LF.mpython_touchPad_value_TOOLTIP="",LF.mpython_touchPad_value_num_MESSAGE0="按键%1 触摸值",LF.mpython_touchPad_value_num_TOOLTIP="",LF.mpython_read_digital_MESSAGE0="读取引脚%1 数字值",LF.mpython_read_digital_TOOLTIP="",LF.mpython_read_DS18B20_MESSAGE0="DS18B20 防水温度传感器 引脚 %1",LF.mpython_read_DS18B20_TOOLTIP="",LF.mpython_read_DS18B20_HELPURL="http://docs.micropython.org/en/latest/esp32/quickref.html?highlight=onewire#onewire-driver",LF.mpython_set_digital_MESSAGE0="设置引脚 %2 数字值为 %1",LF.mpython_set_digital_TOOLTIP="",LF.mpython_read_analog_MESSAGE0="读取引脚 %1 模拟值",LF.mpython_read_analog_TOOLTIP="",LF.mpython_set_analog_MESSAGE0="设置引脚 %2 模拟值(PWM)为 %1",LF.mpython_set_analog_TOOLTIP="模拟输出是通过IO引脚输出脉宽调制信号,输出指定的电压值,简称PWM。",LF.mpython_set_RGB_MESSAGE0="设置 %1 号 RGB 灯颜色为 R %2 G %3 B %4",LF.mpython_set_RGB_TOOLTIP="原生亮度的 1/30 能较好显示色差",LF.mpython_set_RGB_color_MESSAGE0="设置 %1 号 RGB 灯颜色为 %2",LF.mpython_set_RGB_color_TOOLTIP="原生亮度的 1/30 能较好显示色差",LF.mpython_set_RGB_all_MESSAGE0="设置所有 RGB 灯颜色为 R %1 G %2 B %3",LF.mpython_set_RGB_all_TOOLTIP="原生亮度的 1/30 能较好显示色差",LF.mpython_set_RGB_color_all_MESSAGE0="设置所有 RGB 灯颜色为 %1",LF.mpython_set_RGB_color_all_TOOLTIP="原生亮度的 1/30 能较好显示色差",LF.mpython_fresh_RGB_MESSAGE0="RGB 灯设置生效",LF.mpython_fresh_RGB_TOOLTIP="",LF.mpython_off_RGB_MESSAGE0="关闭 RGB 灯",LF.mpython_off_RGB_TOOLTIP="",LF.mpython_buzz_state_MESSAGE0="停止播放音乐",LF.mpython_buzz_state_TOOLTIP="",LF.mpython_buzz_freq_MESSAGE0="播放连续音调 %1 引脚 %2",LF.mpython_buzz_freq_TOOLTIP="",LF.mpython_buzz_tone_MESSAGE0="播放音调 %1",LF.mpython_buzz_tone_TOOLTIP="",LF.MPYTHON_MUSIC_TONE_TEMPO_HELPURL="",LF.MPYTHON_MUSIC_TONE_TEMPO_TOOLTIP="默认是掌控板的P6引脚",LF.MPYTHON_MUSIC_TONE_TEMPO_MESSAGE0="播放音符 %1 引脚 %2",LF.MPYTHON_MUSIC_TONE_HELPURL="",LF.MPYTHON_MUSIC_TONE_TOOLTIP="",LF.MPYTHON_MUSIC_TONE_MESSAGE0="音调 %1",LF.MPYTHON_MUSIC_MUSICAL_NOTE_HELPURL="",LF.MPYTHON_MUSIC_MUSICAL_NOTE_TOOLTIP="",LF.MPYTHON_MUSIC_MUSICAL_NOTE_MESSAGE0="音符 %1 节拍 %2",LF.MPYTHON_MUSIC_TICK_HELPURL="",LF.MPYTHON_MUSIC_TICK_TOOLTIP="",LF.MPYTHON_MUSIC_TICK_MESSAGE0="节拍 %1",LF.MPYTHON_4_LINES_HELPURL="",LF.MPYTHON_4_LINES_TOOLTIP="",LF.MPYTHON_4_LINES_MESSAGE0="%1",LF.NUMBER_1="1",LF.NUMBER_1_2="1/2",LF.NUMBER_1_4="1/4",LF.NUMBER_2="2",LF.NUMBER_4="4",LF.mpython_read_sound_MESSAGE0="声音值",LF.mpython_read_sound_TOOLTIP="",LF.mpython_read_light_MESSAGE0="光线值",LF.mpython_read_light_TOOLTIP="",LF.mpython_accelerometer_get_MESSAGE0="%1 轴加速度",LF.mpython_accelerometer_get_TOOLTIP="",LF.mpython_accelerometer_get_z_MESSAGE0="z轴加速度",LF.mpython_accelerometer_get_z_TOOLTIP="",LF.mpython_accelerometer_get_y_MESSAGE0="y轴加速度",LF.mpython_accelerometer_get_y_TOOLTIP="",LF.mpython_accelerometer_get_x_MESSAGE0="x轴加速度",LF.mpython_accelerometer_get_x_TOOLTIP="",LF.MPYTHON_ACCELEROMETER_RANGE_2G="±2g",LF.MPYTHON_ACCELEROMETER_RANGE_4G="±4g",LF.MPYTHON_ACCELEROMETER_RANGE_8G="±8g",LF.MPYTHON_ACCELEROMETER_RANGE_16G="±16g",LF.MPYTHON_ACCELEROMETER_RES_10_BIT="10bits",LF.MPYTHON_ACCELEROMETER_RES_12_BIT="12bits",LF.MPYTHON_ACCELEROMETER_RES_14_BIT="14bits",LF.MPYTHON_ACCELEROMETER_SET_RANGE_TOOLTIP="设置加速度范围,默认为 ±2g。",LF.MPYTHON_ACCELEROMETER_SET_RANGE_MESSAGE0="设置加速度范围为 %1",LF.MPYTHON_ACCELEROMETER_SET_RESOLUTION_TOOLTIP="设置加速度分辨率,默认为 10bits。",LF.MPYTHON_ACCELEROMETER_SET_RESOLUTION_MESSAGE0="设置加速度分辨率为 %1",LF.MPYTHON_ACCELEROMETER_SET_OFFSET_TOOLTIP="校准加速度计的3个轴(x,y,z)的加速值偏差。\n一般情况下无需校准,只有遇到加速度偏差较大时才要校准。\n x , y , z 为调整偏差值,可修正范围为 ±1g。\n注意:校准数据断电后不会保存。",LF.MPYTHON_ACCELEROMETER_SET_OFFSET_MESSAGE0="校准加速度值 %1 X轴偏差 %2 Y轴偏差 %3 Z轴偏差 %4",LF.MPYTHON_MAGNETIC_GET_AXIS_TOOLTIP="仅适用于掌控板2.0及以上版本",LF.MPYTHON_MAGNETIC_GET_AXIS_MESSAGE0="%1 轴 磁力",LF.MPYTHON_MAGNETIC_GET_HEADING_TOOLTIP="仅适用于掌控板2.0及以上版本",LF.MPYTHON_MAGNETIC_GET_HEADING_MESSAGE0="指南针方向",LF.MPYTHON_MAGNETIC_CALIBRATE_TOOLTIP="仅适用于掌控板2.0及以上版本",LF.MPYTHON_MAGNETIC_CALIBRATE_MESSAGE0="校准指南针",LF.MPYTHON_MAGNETIC_PEELING_TOOLTIP="仅适用于掌控板2.0及以上版本",LF.MPYTHON_MAGNETIC_PEELING_MESSAGE0="去除当前环境磁场",LF.MPYTHON_MAGNETIC_GET_FIELD_STRENGTH_TOOLTIP="仅适用于掌控板2.0及以上版本",LF.MPYTHON_MAGNETIC_GET_FIELD_STRENGTH_MESSAGE0="磁场强度",LF.MPYTHON_TILT_ANGLE_HELPURL="",LF.MPYTHON_TILT_ANGLE_TOOLTIP="",LF.MPYTHON_TILT_ANGLE_MESSAGE0="%1 轴倾斜角",LF.mpython_random_choice_MESSAGE0="返回随机项%1",LF.mpython_random_choice_TOOLTIP="以String格式,返回列表或字符串中的随机项",LF.MACHINE_TIME_PULSE_US_HELPURL="https://mpython.readthedocs.io/zh/master/library/micropython/machine/machine.html?highlight=machine.time_pulse_us#machine.time_pulse_us",LF.MACHINE_TIME_PULSE_US_MESSAGE0="%1 外部 %2 电平持续时间(微秒)",LF.MACHINE_TIME_PULSE_US_TOOLTIP="",LF.MPYTHON_I2C_INIT_HELPURL="https://mpython.readthedocs.io/zh/master/library/micropython/machine/machine.I2C.html#machine.I2C",LF.MPYTHON_I2C_INIT_MESSAGE0="初始化i2c 速率%1",LF.MPYTHON_I2C_INIT_TOOLTIP="",LF.MPYTHON_I2C_DEV_INIT_HELPURL="https://mpython.readthedocs.io/zh/master/library/micropython/machine/machine.I2C.html#machine.I2C",LF.MPYTHON_I2C_DEV_INIT_MESSAGE0="初始化%1 SCL %2 SDA %3 速率 %4",LF.MPYTHON_I2C_DEV_INIT_TOOLTIP="",LF.MPYTHON_I2C_SCAN_HELPURL="https://mpython.readthedocs.io/zh/master/library/micropython/machine/machine.I2C.html?highlight=I2C#machine.I2C.scan",LF.MPYTHON_I2C_SCAN_MESSAGE0="%1 扫描地址",LF.MPYTHON_I2C_SCAN_TOOLTIP="返回一个数组对象",LF.MPYTHON_I2C_DEINIT_HELPURL="https://mpython.readthedocs.io/zh/master/library/micropython/machine/machine.I2C.html?highlight=I2C#machine.I2C.deinit",LF.MPYTHON_I2C_DEINIT_MESSAGE0="关闭%1总线",LF.MPYTHON_I2C_DEINIT_TOOLTIP="",LF.MPYTHON_I2C_WRITETO_HELPURL="https://mpython.readthedocs.io/zh/master/library/micropython/machine/machine.I2C.html?highlight=I2C#id4",LF.MPYTHON_I2C_WRITETO_MESSAGE0="从%1 %5 地址%2 写入%3 停止位%4",LF.MPYTHON_I2C_WRITETO_TOOLTIP="地址:Number\n写入:Number、String",LF.MPYTHON_I2C_READFROM_HELPURL="https://mpython.readthedocs.io/zh/master/library/micropython/machine/machine.I2C.html?highlight=I2C#id4",LF.MPYTHON_I2C_READFROM_MESSAGE0="从%1 %5 地址%2 读取 字节数%3 停止位%4",LF.MPYTHON_I2C_READFROM_TOOLTIP="地址:Number\n返回:读取数据的 bytes 对象的字符串",LF.MPYTHON_I2C_READFROM_INTO_HELPURL="https://mpython.readthedocs.io/zh/master/library/micropython/machine/machine.I2C.html?highlight=I2C#id4",LF.MPYTHON_I2C_READFROM_INTO_MESSAGE0="从%1 %6 地址%2 读入缓存区%3 字节数%4 停止位%5",LF.MPYTHON_I2C_READFROM_INTO_TOOLTIP="",LF.MPYTHON_I2C_WRITETO_MEN_HELPURL="https://mpython.readthedocs.io/zh/master/library/micropython/machine/machine.I2C.html?highlight=I2C#id5",LF.MPYTHON_I2C_WRITETO_MEN_MESSAGE0="从%1 %5 地址%2 寄存器%4 写入%3",LF.MPYTHON_I2C_WRITETO_MEN_TOOLTIP="地址:Number\n写入:Number、String",LF.MPYTHON_I2C_READFROM_MEN_HELPURL="https://mpython.readthedocs.io/zh/master/library/micropython/machine/machine.I2C.html?highlight=I2C#id5",LF.MPYTHON_I2C_READFROM_MEN_MESSAGE0="从%1 %5 地址%2 寄存器%4 读取 字节数%3",LF.MPYTHON_I2C_READFROM_MEN_TOOLTIP="地址:Number\n返回:读取数据的 bytes 对象的字符串",LF.MPYTHON_I2C_READFROM_MEN_INTO_HELPURL="https://mpython.readthedocs.io/zh/master/library/micropython/machine/machine.I2C.html?highlight=I2C#id5",LF.MPYTHON_I2C_READFROM_MEN_INTO_MESSAGE0="从%1 %6 地址%2 寄存器%5 读入缓存区%3 字节数%4",LF.MPYTHON_I2C_READFROM_MEN_INTO_TOOLTIP="地址:Number\n返回:读取数据的 bytes 对象的字符串",LF.mpython_print_MESSAGE0="调试输出 %1",LF.mpython_print_TOOLTIP="通过串口调试,输出字符串",LF.MPYTHON_PRINT_TO_CHART_TOOLTIP="",LF.MPYTHON_PRINT_TO_CHART_EMPTY_TITLE="打印数据到图表",LF.MPYTHON_PRINT_TO_CHART_INPUT_WITH="打印数据到图表",LF.MPYTHON_PRINT_TO_CHART_ITEM_TITLE="数据",LF.MPYTHON_PRINT_TO_CHART_ITEM_TOOLTIP="",LF.MPYTHON_PRINT_TO_CHART_CONTAINER_TITLE_ADD="数据内容",LF.MPYTHON_PRINT_TO_CHART_CONTAINER_TOOLTIP="",LF.MPYTHON_INIT_CHART_TOOLTIP="",LF.MPYTHON_INIT_CHART_EMPTY_TITLE="初始化图表列标题",LF.MPYTHON_INIT_CHART_INPUT_WITH="初始化图表列标题",LF.MPYTHON_INIT_CHART_ITEM_TITLE="标题",LF.MPYTHON_INIT_CHART_ITEM_TOOLTIP="",LF.MPYTHON_INIT_CHART_CONTAINER_TITLE_ADD="数据列标题",LF.MPYTHON_INIT_CHART_CONTAINER_TOOLTIP="",LF.MPYTHON_MS="毫秒",LF.MPYTHON_US="微秒",LF.MPYTHON_TIME_DIFFERENCE_HELPURL="",LF.MPYTHON_TIME_DIFFERENCE_MESSAGE0="返回运行时间差 开始时间 %1 结束时间 %2",LF.MPYTHON_TIME_DIFFERENCE_TOOLTIP="测量连续调用ticks_ms()、ticks_us()间的周期",LF.MPYTHON_TYPE_HELPURL="",LF.MPYTHON_TYPE_MESSAGE0="值 %1 的类型",LF.MPYTHON_TYPE_TOOLTIP="",LF.MPYTHON_TYPE_IS_HELPURL="",LF.MPYTHON_TYPE_IS_MESSAGE0="值 %1 的类型为 %2",LF.MPYTHON_TYPE_IS_TOOLTIP="",LF.MPYTHON_EVAL_HELPURL="",LF.MPYTHON_EVAL_MESSAGE0="计算表达式 %1 的结果",LF.MPYTHON_EVAL_TOOLTIP="计算字符串表达式,并返回结果",LF.MPYTHON_RETURN_HELPURL="",LF.MPYTHON_RETURN_MESSAGE0="返回 %1",LF.MPYTHON_RETURN_TOOLTIP="",LF.MPYTHON_BLUEBIT_AMBIENTLIGHT_HELPURL="",LF.MPYTHON_BLUEBIT_AMBIENTLIGHT_MESSAGE0="I2C数字光线",LF.MPYTHON_BLUEBIT_AMBIENTLIGHT_TOOLTIP="",LF.MPYTHON_WIFI_ALL_CONFIG_HELPURL="",LF.MPYTHON_WIFI_ALL_CONFIG_MESSAGE0="WI-FI配置信息",LF.MPYTHON_WIFI_ALL_CONFIG_TOOLTIP="以元组形式返回所有wifi配置信息",LF.MPYTHON_WIFI_ISCONNECTED_HELPURL="",LF.MPYTHON_WIFI_ISCONNECTED_MESSAGE0="已连接到 WI-FI",LF.MPYTHON_WIFI_ISCONNECTED_TOOLTIP="",LF.MPYTHON_INIT_ASSISTANT_WIFI_HELPURL="",LF.MPYTHON_INIT_ASSISTANT_WIFI_MESSAGE0="Wi-Fi连接 语音助手 Wi-Fi 名称 %1 密码 %2",LF.MPYTHON_INIT_ASSISTANT_WIFI_TOOLTIP="掌控板通过串口把WIF传给语音助手",LF.MPYTHON_INIT_ASSISTANT_PROFILE_HELPURL="",LF.MPYTHON_INIT_ASSISTANT_PROFILE_TOOLTIP="需要先在文件系统将文件上传到板。",LF.MPYTHON_INIT_ASSISTANT_PROFILE_MESSAGE0="读取 语音助手 文本文件 %1",LF.MPYTHON_BLUEBIT_SEG_DISPLAY_HELPURL="",LF.MPYTHON_BLUEBIT_SEG_DISPLAY_MESSAGE0="数码管显示 %1",LF.MPYTHON_BLUEBIT_SEG_DISPLAY_TOOLTIP="-999~9999",LF.MPYTHON_BLUEBIT_SEG_CLEAR_HELPURL="",LF.MPYTHON_BLUEBIT_SEG_CLEAR_MESSAGE0="清空数码管",LF.MPYTHON_BLUEBIT_SEG_CLEAR_TOOLTIP="",LF.MPYTHON_MACHINE_RESET_HELPURL="",LF.MPYTHON_MACHINE_RESET_MESSAGE0="复位",LF.MPYTHON_MACHINE_RESET_TOOLTIP="与按下外部 RESET按键效果一样",LF.MPYTHON_BLUEBIT_GET_COLOR_HELPURL="",LF.MPYTHON_BLUEBIT_GET_COLOR_MESSAGE0="I2C RGB 颜色 %1",LF.MPYTHON_BLUEBIT_GET_COLOR_TOOLTIP="",LF.MPYTHON_BLUEBIT_GET_ALL_COLOR_HELPURL="",LF.MPYTHON_BLUEBIT_GET_ALL_COLOR_MESSAGE0="I2C RGB 颜色",LF.MPYTHON_BLUEBIT_GET_ALL_COLOR_TOOLTIP="以列表形式返回",LF.MPYTHON_BLUEBIT_GET_COLOR_HSV_HELPURL="",LF.MPYTHON_BLUEBIT_GET_COLOR_HSV_MESSAGE0="I2C HSV 颜色 %1",LF.MPYTHON_BLUEBIT_GET_COLOR_HSV_TOOLTIP="色调(H),饱和度(S),明度(V)",LF.MPYTHON_BLUEBIT_GET_ALL_COLOR_HSV_HELPURL="",LF.MPYTHON_BLUEBIT_GET_ALL_COLOR_HSV_MESSAGE0="I2C HSV 颜色",LF.MPYTHON_BLUEBIT_GET_ALL_COLOR_HSV_TOOLTIP="色调(H),饱和度(S),明度(V)",LF.MPYTHON_BLUEBIT_GET_FORCE_MEASURE_HELPURL="",LF.MPYTHON_BLUEBIT_GET_FORCE_MEASURE_MESSAGE0="I2C力传感器 拨码 %1",LF.MPYTHON_BLUEBIT_GET_FORCE_MEASURE_TOOLTIP="I2C地址与编码开关的需要对应",LF.MPYTHON_BLUEBIT_GET_ELECTRICITY_MEASURE_HELPURL="",LF.MPYTHON_BLUEBIT_GET_ELECTRICITY_MEASURE_MESSAGE0="I2C电流传感器 拨码 %1",LF.MPYTHON_BLUEBIT_GET_ELECTRICITY_MEASURE_TOOLTIP="I2C地址与编码开关的需要对应",LF.MPYTHON_BLUEBIT_GET_VOLTAGE_MEASURE_HELPURL="",LF.MPYTHON_BLUEBIT_GET_VOLTAGE_MEASURE_MESSAGE0="I2C电压传感器 拨码 %1",LF.MPYTHON_BLUEBIT_GET_VOLTAGE_MEASURE_TOOLTIP="I2C地址与编码开关的需要对应",LF.MPYTHON_BLUEBIT_GET_MAGNETIC_MEASURE_HELPURL="",LF.MPYTHON_BLUEBIT_GET_MAGNETIC_MEASURE_MESSAGE0="I2C磁场传感器 拨码 %1",LF.MPYTHON_BLUEBIT_GET_MAGNETIC_MEASURE_TOOLTIP="I2C地址与编码开关的需要对应",LF.MPYTHON_BLUEBIT_GET_PH_MEASURE_HELPURL="",LF.MPYTHON_BLUEBIT_GET_PH_MEASURE_MESSAGE0="I2C PH传感器 拨码 %1",LF.MPYTHON_BLUEBIT_GET_PH_MEASURE_TOOLTIP="I2C地址与编码开关的需要对应",LF.MPYTHON_BLUEBIT_GET_TDS_MEASURE_HELPURL="",LF.MPYTHON_BLUEBIT_GET_TDS_MEASURE_MESSAGE0="I2C电导率传感器 拨码 %1",LF.MPYTHON_BLUEBIT_GET_TDS_MEASURE_TOOLTIP="I2C地址与编码开关的需要对应",LF.MPYTHON_BLUEBIT_GET_PRESSURE_MEASURE_HELPURL="",LF.MPYTHON_BLUEBIT_GET_PRESSURE_MEASURE_MESSAGE0="I2C气压传感器 拨码 %1",LF.MPYTHON_BLUEBIT_GET_PRESSURE_MEASURE_TOOLTIP="I2C地址与编码开关的需要对应",LF.MPYTHON_BLUEBIT_GET_PHOTOGATE_TIMER_MEASURE_HELPURL="",LF.MPYTHON_BLUEBIT_GET_PHOTOGATE_TIMER_MEASURE_MESSAGE0="I2C光电门传感器 拨码 %1",LF.MPYTHON_BLUEBIT_GET_PHOTOGATE_TIMER_MEASURE_TOOLTIP="I2C地址与编码开关的需要对应",LF.MPYTHON_BLUEBIT_GET_MOTORPEED_HELPURL="",LF.MPYTHON_BLUEBIT_GET_MOTORPEED_MESSAGE0="拓展板 电机速度 %1",LF.MPYTHON_BLUEBIT_GET_MOTORPEED_TOOLTIP="",LF.MPYTHON_M1M2_LED_OFF_HELPURL="",LF.MPYTHON_M1M2_LED_OFF_MESSAGE0="拓展板 关灯 %1",LF.MPYTHON_M1M2_LED_OFF_TOOLTIP="",LF.MPYTHON_M1M2_LED_ON_HELPURL="",LF.MPYTHON_M1M2_LED_ON_MESSAGE0="拓展板 设灯 %1 亮度 %2",LF.MPYTHON_M1M2_LED_ON_TOOLTIP="",LF.MPYTHON_MUSIC_PIN_P6="默认",LF.MPYTHON_MUSIC_PIN_P6_HELPURL="",LF.MPYTHON_MUSIC_PIN_P6_MESSAGE0="%1",LF.MPYTHON_MUSIC_PIN_P6_TOOLTIP="",LF.MPYTHON_SLEEP_MESSAGE0="等待 %1 %2",LF.MPYTHON_SLEEP_TOOLTIP="在进行下一个命令前,等待设定的时间。\n1秒(s) = 1,000毫秒(ms)\n1秒(s) = 1,000,000微秒(μs)\n毫秒,符号ms(millisecond)\n微秒,符号μs(microsecond)",LF.MICROBIT_MICROBIT_RUNNING_TIME_MESSAGE0="运行时间",LF.MICROBIT_MICROBIT_RUNNING_TIME_TOOLTIP="获取开机或复位后的运行时间(毫秒)。",LF.MICROBIT_MICROBIT_RUNNING_TIME_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/microbit.html#microbit.running_time",LF.MICROBIT_MICROBIT_TEMPERATURE_MESSAGE0="温度",LF.MICROBIT_MICROBIT_TEMPERATURE_TOOLTIP="获取 micro:bit 的温度(℃)。",LF.MICROBIT_MICROBIT_TEMPERATURE_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/microbit.html#microbit.temperature",LF.MICROBIT_MUSIC_PLAY_BUILT_IN_MESSAGE0="播放音乐 %1 等待 %2 循环 %3 引脚 %4",LF.MICROBIT_MUSIC_PLAY_BUILT_IN_TOOLTIP="播放内置的音乐,可以设置等待模式和循环播放。",LF.MICROBIT_MUSIC_PLAY_BUILT_IN_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/music.html#built-in-melodies",LF.MICROBIT_MUSIC_PITCH_MESSAGE0="播放音调 %1 %2 延时 %3 毫秒 引脚 %4",LF.MICROBIT_MUSIC_PITCH_TOOLTIP="在设定的时间长度里播放音调。",LF.MICROBIT_MUSIC_PITCH_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/music.html#music.pitch",LF.MICROBIT_MUSIC_PLAY_LIST_OF_NOTES_MESSAGE0="引脚 %5 播放音符列表 %1 等待 %2 %3 循环 %4",LF.MICROBIT_MUSIC_PLAY_LIST_OF_NOTES_TOOLTIP="播放音符列表,如C4:4、G4:8等,音符为字符串形式。默认是掌控板的P6引脚",LF.MICROBIT_MUSIC_PLAY_LIST_OF_NOTES_HELPURL="https://mpython.readthedocs.io/zh/latest/tutorials/basics/buzz.html",LF.MICROBIT_MUSIC_RESET_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/music.html#music.reset",LF.MICROBIT_MUSIC_RESET_MESSAGE0="恢复音乐设置",LF.MICROBIT_MUSIC_RESET_TOOLTIP="将所有音乐设置 (当前节拍, 音阶和周期) 恢复成默认值。",LF.MICROBIT_MUSIC_STOP_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/music.html#music.stop",LF.MICROBIT_MUSIC_STOP_MESSAGE0="停止播放音乐 引脚 %1",LF.MICROBIT_MUSIC_STOP_TOOLTIP="默认是掌控板的P6引脚",LF.MICROBIT_MUSIC_SET_TEMPO_MESSAGE0="设置每一拍等同 %1 分音符,每分钟节拍数 %2",LF.MICROBIT_MUSIC_SET_TEMPO_TOOLTIP="设置回放速度 (节拍)。一定数量的滴答代表一拍,每拍每分钟播放次数 (BPM 每分钟节拍)。",LF.MICROBIT_MUSIC_SET_TEMPO_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/music.html#music.set_tempo",LF.MICROBIT_MUSIC_SET_TEMPO_SPEED_MESSAGE0="设置播放速度为 %1 倍",LF.MICROBIT_MUSIC_SET_TEMPO_SPEED_TOOLTIP="4分音符为1拍,每分钟节拍数默认120,为1倍的播放速度",LF.MICROBIT_MUSIC_SET_TEMPO_SPEED_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/music.html#music.set_tempo",LF.MICROBIT_MUSIC_GET_TEMPO_MESSAGE0="获取当前节拍",LF.MICROBIT_MUSIC_GET_TEMPO_TOOLTIP="获取当前节拍: 每节拍滴答数, 每分钟节拍 (BPM)。",LF.MICROBIT_MUSIC_GET_TEMPO_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/music.html#music.get_tempo",LF.MICROBIT_NEOPIXEL_INITIALISE_MESSAGE0="使用 引脚 %1 控制, neopixel 彩灯数 %2 ",LF.MICROBIT_NEOPIXEL_INITIALISE_TOOLTIP="控制 neopixels 彩灯。需要设定 neopixels 彩灯数量和控制脚。",LF.MICROBIT_NEOPIXEL_INITIALISE_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/neopixel.html#neopixel.NeoPixel",LF.MICROBIT_NEOPIXEL_CLEAR_MESSAGE0="清除 neopixels 彩灯 %1",LF.MICROBIT_NEOPIXEL_CLEAR_TOOLTIP="清除所有 neopixels 彩灯",LF.MICROBIT_NEOPIXEL_CLEAR_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/neopixel.html#neopixel.NeoPixel.clear",LF.MICROBIT_NEOPIXEL_SHOW_MESSAGE0="显示 neopixels 彩灯 %1",LF.MICROBIT_NEOPIXEL_SHOW_TOOLTIP="显示 / 更新全部 neopixels 彩灯。",LF.MICROBIT_NEOPIXEL_SHOW_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/neopixel.html#neopixel.NeoPixel.show",LF.MICROBIT_NEOPIXEL_SET_MESSAGE0="neopixels 彩灯控制 %1 设置位置 %2 红色 %3 绿色 %4 蓝色 %5",LF.MICROBIT_NEOPIXEL_SET_TOOLTIP="更新指定的 neopixel 彩灯的红、绿、蓝 (RGB) 颜色",LF.MICROBIT_NEOPIXEL_SET_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/neopixel.html#using-neopixels",LF.MICROBIT_PIN_TOUCHED_MESSAGE0="引脚 %1 被触摸",LF.MICROBIT_PIN_TOUCHED_TOOLTIP="如果引脚被触摸将返回 “真”。",LF.MICROBIT_PIN_TOUCHED_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/pin.html#microbit.MicroBitTouchPin.is_touched",LF.MICROBIT_PIN_WAS_PRESSED_MESSAGE0="引脚 %1 曾经被触摸",LF.MICROBIT_PIN_WAS_PRESSED_TOOLTIP="如果引脚曾经被触摸将返回 “真”。",LF.MICROBIT_PIN_WAS_PRESSED_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/pin.html#microbit.MicroBitTouchPin.was_pressed",LF.MICROBIT_PIN_GET_PRESSES_MESSAGE0="引脚 %1 被触摸的次数",LF.MICROBIT_PIN_GET_PRESSES_TOOLTIP="返回被触摸的次数,然后清零。",LF.MICROBIT_PIN_GET_PRESSES_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/pin.html#microbit.MicroBitTouchPin.get_presses",LF.MICROBIT_PIN_READ_ANALOG_MESSAGE0="读取引脚 %1 模拟电压",LF.MICROBIT_PIN_READ_ANALOG_TOOLTIP="读取引脚的模拟输入电压。",LF.MICROBIT_PIN_READ_ANALOG_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/pin.html#microbit.MicroBitAnalogDigitalPin.read_analog",LF.MICROBIT_PIN_WRITE_ANALOG_MESSAGE0="设置模拟量 %1 到引脚 %2",LF.MICROBIT_PIN_WRITE_ANALOG_TOOLTIP="写入模拟参数到指定引脚上。",LF.MICROBIT_PIN_WRITE_ANALOG_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/pin.html#microbit.MicroBitAnalogDigitalPin.write_analog",LF.MICROBIT_PIN_READ_DIGITAL_MESSAGE0="读取引脚 %1 的数字输入",LF.MICROBIT_PIN_READ_DIGITAL_TOOLTIP="读取引脚的数字输入 (真 或 假)。",LF.MICROBIT_PIN_READ_DIGITAL_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/pin.html#microbit.MicroBitDigitalPin.read_digital",LF.MICROBIT_PIN_WRITE_DIGITAL_MESSAGE0="设置数字输出 %1 到引脚 %2",LF.MICROBIT_PIN_WRITE_DIGITAL_TOOLTIP="写入数字量 (真 或 假) 到指定引脚。",LF.MICROBIT_PIN_WRITE_DIGITAL_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/pin.html#microbit.MicroBitDigitalPin.write_digital",LF.MICROBIT_RADIO_ON_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/radio.html#radio.on",LF.MICROBIT_RADIO_ON_MESSAGE0="打开无线广播",LF.MICROBIT_RADIO_ON_TOOLTIP="打开无线广播。需要明确声明调用,因为它会消耗更多功率和占用更多内存。",LF.MICROBIT_RADIO_OFF_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/radio.html#radio.off",LF.MICROBIT_RADIO_OFF_MESSAGE0="关闭无线广播",LF.MICROBIT_RADIO_OFF_TOOLTIP="关闭无线广播,节省功耗和内存。",LF.MICROBIT_RADIO_CONFIG_MESSAGE0="配置无线广播消息长度 %1 %2 最大队列数量 %3 %4 信道 %5 %6 广播功率 %7 %8 地址 %9 %10 组 %11 %12 数据速率 %13",LF.MICROBIT_RADIO_CONFIG_TOOLTIP="配置无线广播。\n 长度指单个消息的最大长度; \n 队列指可以存放在消息队列中消息的数量; \n 信道指无线广播使用的无线频率; \n 功率指发射广播信号的强度; \n 地址:32位值; \n 组:8位值(0-255); \n 数据速率指数据传输的速度。",LF.MICROBIT_RADIO_CONFIG_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/radio.html#radio.config",LF.MICROBIT_RADIO_RESET_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/radio.html#radio.reset",LF.MICROBIT_RADIO_RESET_MESSAGE0="复位无线广播",LF.MICROBIT_RADIO_RESET_TOOLTIP="恢复无线广播到默认设置。",LF.MICROBIT_RADIO_SEND_STRING_MESSAGE0="发送消息 %1",LF.MICROBIT_RADIO_SEND_STRING_TOOLTIP="广播文字消息。",LF.MICROBIT_RADIO_SEND_STRING_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/radio.html#radio.send",LF.MICROBIT_RADIO_SEND_BYTES_MESSAGE0="发送字节 %1",LF.MICROBIT_RADIO_SEND_BYTES_TOOLTIP="广播字节。",LF.MICROBIT_RADIO_SEND_BYTES_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/radio.html#radio.send",LF.MICROBIT_RADIO_RECEIVE_MESSAGE0="接收消息",LF.MICROBIT_RADIO_RECEIVE_TOOLTIP="接收消息。",LF.MICROBIT_RADIO_RECEIVE_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/radio.html#radio.receive",LF.MICROBIT_RADIO_RECEIVE_BYTES_MESSAGE0="接收字节",LF.MICROBIT_RADIO_RECEIVE_BYTES_TOOLTIP="接收字节。",LF.MICROBIT_RADIO_RECEIVE_BYTES_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/radio.html#radio.receive",LF.MICROBIT_SPEECH_SAY_MESSAGE0="说 %1",LF.MICROBIT_SPEECH_SAY_TOOLTIP="尝试说英语",LF.MICROBIT_SPEECH_SAY_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/speech.html#speech.say",LF.MICROBIT_SPEECH_PRONOUNCE_MESSAGE0="读 %1",LF.MICROBIT_SPEECH_PRONOUNCE_TOOLTIP="精确发音。",LF.MICROBIT_SPEECH_PRONOUNCE_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/speech.html#phonemes",LF.MICROBIT_SPEECH_SING_MESSAGE0="唱 %1",LF.MICROBIT_SPEECH_SING_TOOLTIP="象机器人一样唱歌。",LF.MICROBIT_SPEECH_SING_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/speech.html#singing",LF.MICROBIT_GESTURE_SHAKE="摇晃",LF.MICROBIT_GESTURE_UP="上",LF.MICROBIT_GESTURE_DOWN="下",LF.MICROBIT_GESTURE_LEFT="左",LF.MICROBIT_GESTURE_RIGHT="右",LF.MICROBIT_GESTURE_FACE_UP="朝上",LF.MICROBIT_GESTURE_FACE_DOWN="朝下",LF.MICROBIT_GESTURE_FREEFAIL="自由下落",LF.MICROBIT_IMAGE_HEART="心形",LF.MICROBIT_IMAGE_HEART_SMALL="心(小)",LF.MICROBIT_IMAGE_HAPPY="高兴",LF.MICROBIT_IMAGE_SMILE="笑脸",LF.MICROBIT_IMAGE_SAD="伤心",LF.MICROBIT_IMAGE_CONFUSED="困惑",LF.MICROBIT_IMAGE_ANGRY="生气",LF.MICROBIT_IMAGE_ASLEEP="睡着",LF.MICROBIT_IMAGE_SUPRISED="惊讶",LF.MICROBIT_IMAGE_SILLY="愚蠢",LF.MICROBIT_IMAGE_FABULOUS="极妙",LF.MICROBIT_IMAGE_MEH="无聊",LF.MICROBIT_IMAGE_YES="是",LF.MICROBIT_IMAGE_NO="否",LF.MICROBIT_IMAGE_CLOCK12="12点",LF.MICROBIT_IMAGE_CLOCK11="11点",LF.MICROBIT_IMAGE_CLOCK10="10点",LF.MICROBIT_IMAGE_CLOCK9="9点",LF.MICROBIT_IMAGE_CLOCK8="8点",LF.MICROBIT_IMAGE_CLOCK7="7点",LF.MICROBIT_IMAGE_CLOCK6="6点",LF.MICROBIT_IMAGE_CLOCK5="5点",LF.MICROBIT_IMAGE_CLOCK4="4点",LF.MICROBIT_IMAGE_CLOCK3="3点",LF.MICROBIT_IMAGE_CLOCK2="2点",LF.MICROBIT_IMAGE_CLOCK1="1点",LF.MICROBIT_IMAGE_ARROW_N="箭头-北",LF.MICROBIT_IMAGE_ARROW_NE="箭头-东北",LF.MICROBIT_IMAGE_ARROW_E="箭头-东",LF.MICROBIT_IMAGE_ARROW_SE="箭头-东南",LF.MICROBIT_IMAGE_ARROW_S="箭头-南",LF.MICROBIT_IMAGE_ARROW_SW="箭头-西南",LF.MICROBIT_IMAGE_ARROW_W="箭头-西",LF.MICROBIT_IMAGE_ARROW_NW="箭头-西北",LF.MICROBIT_IMAGE_TRIANGLE="三角形",LF.MICROBIT_IMAGE_TRIANGLE_LEFT="左三角形",LF.MICROBIT_IMAGE_CHESSBOARD="棋盘",LF.MICROBIT_IMAGE_DIAMOND="菱形",LF.MICROBIT_IMAGE_DIAMOND_SMALL="菱形(小)",LF.MICROBIT_IMAGE_SQUARE="方形",LF.MICROBIT_IMAGE_SQUARE_SMALL="方形(小)",LF.MICROBIT_IMAGE_RABBIT="兔子",LF.MICROBIT_IMAGE_COW="牛",LF.MICROBIT_IMAGE_MUSIC_CROTCHET="四分音符",LF.MICROBIT_IMAGE_MUSIC_QUAVER="八分音符",LF.MICROBIT_IMAGE_MUSIC_QUAVERS="颤音",LF.MICROBIT_IMAGE_PITCHFORK="叉子",LF.MICROBIT_IMAGE_XMAS="圣诞树",LF.MICROBIT_IMAGE_PACMAN="吃豆人",LF.MICROBIT_IMAGE_TARGET="目标",LF.MICROBIT_IMAGE_TSHIRT="T恤衫",LF.MICROBIT_IMAGE_ROLLERSKATE="轮滑",LF.MICROBIT_IMAGE_DUCK="鸭子",LF.MICROBIT_IMAGE_HOUSE="房子",LF.MICROBIT_IMAGE_TORTOISE="乌龟",LF.MICROBIT_IMAGE_BUTTERFLY="蝴蝶",LF.MICROBIT_IMAGE_STICKFIGURE="线条画",LF.MICROBIT_IMAGE_GHOST="幽灵",LF.MICROBIT_IMAGE_SWORD="宝剑",LF.MICROBIT_IMAGE_GIRAFFE="长颈鹿",LF.MICROBIT_IMAGE_SKULL="头",LF.MICROBIT_IMAGE_UMBRELLA="伞",LF.MICROBIT_IMAGE_SNAKE="蛇",LF.MICROBIT_IMAGE_ALL_CLOCKS="所有时钟",LF.MICROBIT_IMAGE_ALL_ARROWS="所有箭头",LF.MICROBIT_PIN_SET_SERVO_HELPURL="http://wiki.labplus.cn/index.php?title=%E8%88%B5%E6%9C%BA",LF.MICROBIT_PIN_SET_SERVO_TOOLTIP="设置舵机角度,范围为 0 ~ 180度",LF.MICROBIT_PIN_SET_SERVO_MESSAGE0="设置舵机 引脚 %1 角度为 %2",LF.MICROBIT_PIN_SET_MODE_HELPURL="",LF.MICROBIT_PIN_SET_MODE_TOOLTIP="引脚模式有三种:悬空、上拉、下拉",LF.MICROBIT_PIN_SET_MODE_MESSAGE0="设置引脚 %1 模式为 %2",LF.MICROBIT_PIN_MODE_NO="悬空",LF.MICROBIT_PIN_MODE_UP="上拉",LF.MICROBIT_PIN_MODE_DOWN="下拉",LF.MICROBIT_UART_INIT_MESSAGE0="初始化串口波特率为 %3 TX为 %1 RX为 %2",LF.MICROBIT_UART_INIT_TOOLTIP="",LF.MICROBIT_UART_INIT_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/uart.html",LF.MICROBIT_UART_ANY_MSG_RECEIVED_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/uart.html",LF.MICROBIT_UART_ANY_MSG_RECEIVED_TOOLTIP="",LF.MICROBIT_UART_ANY_MSG_RECEIVED_MESSAGE0="串口接收到数据",LF.MICROBIT_UART_READ_MSG_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/uart.html",LF.MICROBIT_UART_READ_MSG_TOOLTIP="",LF.MICROBIT_UART_READ_MSG_MESSAGE0="读取串口 %1 字节",LF.MICROBIT_UART_READ_MSG_TO_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/uart.html",LF.MICROBIT_UART_READ_MSG_TO_TOOLTIP="",LF.MICROBIT_UART_READ_MSG_TO_MESSAGE0="读取串口 %1 字节存至 %2",LF.MICROBIT_UART_WRITE_MSG_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/uart.html",LF.MICROBIT_UART_WRITE_MSG_TOOLTIP="",LF.MICROBIT_UART_WRITE_MSG_MESSAGE0="串口发送数据 %1",LF.MICROBIT_ALL_BYTES="全部",LF.MICROBIT_ALINE_BYTES="一行",LF.LABPLUS_BUTTON_IS_PRESSED_MESSAGE0="引脚 %1 被触发",LF.LABPLUS_BUTTON_IS_PRESSED_TOOLTIP="如果指定按键按下返回 “真”,否则返回 “假”。",LF.LABPLUS_BUTTON_IS_PRESSED_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/button.html#Button.is_pressed",LF.LABPLUS_BUTTON_WAS_PRESSED_MESSAGE0="引脚 %1 曾经被触发",LF.LABPLUS_BUTTON_WAS_PRESSED_TOOLTIP="如果按键曾经按下过返回 “真”,否则返回 “假”。",LF.LABPLUS_BUTTON_WAS_PRESSED_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/button.html#Button.was_pressed",LF.LABPLUS_BUTTON_GET_PRESSES_MESSAGE0="引脚 %1 被触发过的次数",LF.LABPLUS_BUTTON_GET_PRESSES_TOOLTIP="返回按键按下的总次数,然后清除计数。",LF.LABPLUS_BUTTON_GET_PRESSES_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/button.html#Button.get_presses",LF.LABPLUS_LED_MESSAGE0="设置LED灯 引脚 %2 输出 %1",LF.LABPLUS_LED_TOOLTIP="",LF.LABPLUS_LED_HELPURL="http://wiki.labplus.cn/index.php?title=LED",LF.LABPLUS_INFRARED_IS_TRIGGERED_MESSAGE0="红外探测 引脚 %1 被触发",LF.LABPLUS_INFRARED_IS_TRIGGERED_TOOLTIP="",LF.LABPLUS_INFRARED_IS_TRIGGERED_HELPURL="http://wiki.labplus.cn/index.php?title=%E7%BA%A2%E5%A4%96%E6%8E%A2%E6%B5%8B",LF.LABPLUS_HEAT_SENSITIVE_DETECTOR_MESSAGE0="热敏传感器 引脚 %1 的值",LF.LABPLUS_HEAT_SENSITIVE_DETECTOR_TOOLTIP="",LF.LABPLUS_HEAT_SENSITIVE_DETECTOR_HELPURL="http://wiki.labplus.cn/index.php?title=%E7%83%AD%E6%95%8F%E7%94%B5%E9%98%BB",LF.LABPLUS_I2C_LIGHT_SENSOR_MESSAGE0="I2C数字光线传感器的值(lux)",LF.LABPLUS_I2C_LIGHT_SENSOR_TOOLTIP="",LF.LABPLUS_I2C_LIGHT_SENSOR_HELPURL="http://wiki.labplus.cn/index.php?title=%E6%95%B0%E5%AD%97%E5%85%89%E7%BA%BF",LF.LABPLUS_WATER_LEVEL_DETECTOR_MESSAGE0="水位传感器 引脚 %1 的值",LF.LABPLUS_WATER_LEVEL_DETECTOR_TOOLTIP="",LF.LABPLUS_WATER_LEVEL_DETECTOR_HELPURL="http://wiki.labplus.cn/index.php?title=%E6%B0%B4%E4%BD%8D",LF.LABPLUS_SMOKE_DETECTOR_IS_TRIGGERED_MESSAGE0="烟雾探测器 引脚 %1 被触发",LF.LABPLUS_SMOKE_DETECTOR_IS_TRIGGERED_TOOLTIP="",LF.LABPLUS_SMOKE_DETECTOR_IS_TRIGGERED_HELPURL="http://wiki.labplus.cn/index.php?title=%E7%83%9F%E9%9B%BE",LF.LABPLUS_BUZZER_FOR_HELPURL="http://wiki.labplus.cn/index.php?title=%E8%9C%82%E9%B8%A3%E5%99%A8",LF.LABPLUS_BUZZER_FOR_TOOLTIP="",LF.LABPLUS_BUZZER_FOR_MESSAGE0="以频率 %1 激活蜂鸣器 引脚0 %2 毫秒",LF.LABPLUS_BUZZER_ON_HELPURL="http://wiki.labplus.cn/index.php?title=%E8%9C%82%E9%B8%A3%E5%99%A8",LF.LABPLUS_BUZZER_ON_TOOLTIP="",LF.LABPLUS_BUZZER_ON_MESSAGE0="以频率 %1 激活蜂鸣器 引脚0",LF.LABPLUS_BUZZER_OFF_HELPURL="http://wiki.labplus.cn/index.php?title=%E8%9C%82%E9%B8%A3%E5%99%A8",LF.LABPLUS_BUZZER_OFF_TOOLTIP="",LF.LABPLUS_BUZZER_OFF_MESSAGE0="关闭蜂鸣器 引脚0",LF.LABPLUS_TM_HM_SENSOR_MESSAGE0="I2C温湿度传感器的 %1 值",LF.LABPLUS_TM_HM_SENSOR_TOOLTIP="",LF.LABPLUS_TM_HM_SENSOR_HELPURL="http://wiki.labplus.cn/index.php?title=%E6%B8%A9%E6%B9%BF%E5%BA%A6",LF.LABPLUS_TM_HM_SENSOR_TM="温度",LF.LABPLUS_TM_HM_SENSOR_HM="湿度",LF.LABPLUS_SET_SERVO_HELPURL="http://wiki.labplus.cn/index.php?title=%E8%88%B5%E6%9C%BA",LF.LABPLUS_SET_SERVO_TOOLTIP="",LF.LABPLUS_SET_SERVO_MESSAGE0="设置舵机 引脚 %1 角度为 %2",LF.LABPLUS_FINGERPRINT_SENSOR_MESSAGE0="指纹传感器 引脚 %1 验证通过",LF.LABPLUS_FINGERPRINT_SENSOR_TOOLTIP="",LF.LABPLUS_FINGERPRINT_SENSOR_HELPURL="http://wiki.labplus.cn/index.php?title=%E6%8C%87%E7%BA%B9",LF.LABPLUS_SET_MOTOR_HELPURL="",LF.LABPLUS_SET_MOTOR_TOOLTIP="",LF.LABPLUS_SET_MOTOR_MESSAGE0="设置电机 %1 方向 %2 速度 %3",LF.LABPLUS_SET_MOTOR_CLOCKWISE="正转",LF.LABPLUS_SET_MOTOR_ANTI_CLOCKWISE="反转",LF.LABPLUS_STOP_MOTOR_HELPURL="",LF.LABPLUS_STOP_MOTOR_TOOLTIP="",LF.LABPLUS_STOP_MOTOR_MESSAGE0="停止电机",LF.LABPLUS_GET_RFID_ID_MESSAGE0="射频卡 引脚 %1 验证通过",LF.LABPLUS_GET_RFID_ID_TOOLTIP="",LF.LABPLUS_GET_RFID_ID_HELPURL="http://wiki.labplus.cn/index.php?title=RFID",LF.LABPLUS_GET_RFID_VALUE_MESSAGE0="电子钱包 引脚 %1 余额",LF.LABPLUS_GET_RFID_VALUE_TOOLTIP="",LF.LABPLUS_GET_RFID_VALUE_HELPURL="",LF.LABPLUS_SET_RFID_VALUE_MESSAGE0="设置电子钱包 引脚 %1 余额 %2 %3",LF.LABPLUS_SET_RFID_VALUE_TOOLTIP="",LF.LABPLUS_SET_RFID_VALUE_HELPURL="",LF.LABPLUS_SET_RFID_ADD="增加",LF.LABPLUS_SET_RFID_MINUS="减少",LF.LABPLUS_SOUND_IS_TRIGGERED_MESSAGE0="声音传感器 引脚 %1 被触发",LF.LABPLUS_SOUND_IS_TRIGGERED_TOOLTIP="",LF.LABPLUS_SOUND_IS_TRIGGERED_HELPURL="http://wiki.labplus.cn/index.php?title=%E9%BA%A6%E5%85%8B%E9%A3%8E",LF.LABPLUS_USB_SWITCH_HELPURL="",LF.LABPLUS_USB_SWITCH_TOOLTIP="",LF.LABPLUS_USB_SWITCH_MESSAGE0="%1 USB开关 引脚 %2",LF.LABPLUS_USB_SWITCH_ON="打开",LF.LABPLUS_USB_SWITCH_OFF="关闭",LF.LABPLUS_VOICE_RECORD_HELPURL="",LF.LABPLUS_VOICE_RECORD_TOOLTIP="",LF.LABPLUS_VOICE_RECORD_MESSAGE0="%1 语音录放器 引脚 %2",LF.LABPLUS_VOICE_RECORD_ON="打开",LF.LABPLUS_VOICE_RECORD_OFF="关闭",LF.LABPLUS_RGB_INITIALISE_MESSAGE0="使用 引脚 %1 控制,RGB 彩灯数 %2 ",LF.LABPLUS_RGB_INITIALISE_TOOLTIP="控制 RGB 彩灯。需要设定 neopixels 彩灯数量和控制脚。",LF.LABPLUS_RGB_INITIALISE_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/neopixel.html#neopixel.NeoPixel",LF.LABPLUS_RGB_CLEAR_MESSAGE0="清除 RGB 彩灯 %1",LF.LABPLUS_RGB_CLEAR_TOOLTIP="清除所有 RGB 彩灯",LF.LABPLUS_RGB_CLEAR_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/neopixel.html#neopixel.NeoPixel.clear",LF.LABPLUS_RGB_SHOW_MESSAGE0="显示 RGB 彩灯 %1",LF.LABPLUS_RGB_SHOW_TOOLTIP="显示 / 更新全部 RGB 彩灯。",LF.LABPLUS_RGB_SHOW_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/neopixel.html#neopixel.NeoPixel.show",LF.LABPLUS_RGB_SET_MESSAGE0="RGB 彩灯控制 %1 设置位置 %2 红色 %3 绿色 %4 蓝色 %5",LF.LABPLUS_RGB_SET_TOOLTIP="更新指定的 RGB 彩灯的红、绿、蓝 (RGB) 颜色",LF.LABPLUS_RGB_SET_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/neopixel.html#using-neopixels",LF.LABPLUS_COMPITITION_INIT_EXTENDED_PINS_MESSAGE0="设置扩展端口 IO %1 为 %2",LF.LABPLUS_COMPITITION_INIT_EXTENDED_PINS_TOOLTIP="0表示输出引脚,1表示输入引脚",LF.LABPLUS_COMPITITION_INIT_EXTENDED_PINS_HELPURL="http://wiki.labplus.cn/index.php?title=%E7%AB%AF%E5%8F%A3%E6%89%A9%E5%B1%95",LF.LABPLUS_COMPITITION_INIT_EXTENDED_PINS_INPUT="输入",LF.LABPLUS_COMPITITION_INIT_EXTENDED_PINS_OUTPUT="输出",LF.LABPLUS_READ_EXTENDED_PIN_HELPURL="http://wiki.labplus.cn/index.php?title=%E7%AB%AF%E5%8F%A3%E6%89%A9%E5%B1%95",LF.LABPLUS_READ_EXTENDED_PIN_TOOLTIP="",LF.LABPLUS_READ_EXTENDED_PIN_MESSAGE0="读取扩展端口值 IO %1",LF.LABPLUS_WRITE_EXTENDED_PIN_HELPURL="http://wiki.labplus.cn/index.php?title=%E7%AB%AF%E5%8F%A3%E6%89%A9%E5%B1%95",LF.LABPLUS_WRITE_EXTENDED_PIN_TOOLTIP="",LF.LABPLUS_WRITE_EXTENDED_PIN_MESSAGE0="设置扩展端口 IO %1 值为 %2",LF.LABPLUS_I2C_ULTRASONIC_HELPURL="http://wiki.labplus.cn/index.php?title=%E8%B6%85%E5%A3%B0%E6%B3%A2",LF.LABPLUS_I2C_ULTRASONIC_TOOLTIP="",LF.LABPLUS_I2C_ULTRASONIC_MESSAGE0="I2C超声波传感器的值",LF.MICROBIT_SET_MUSIC_PIN_HELPURL="",LF.MICROBIT_SET_MUSIC_PIN_TOOLTIP="",LF.MICROBIT_SET_MUSIC_PIN_MESSAGE0="设置默认蜂鸣器引脚为 %1",LF.LABPLUS_HUMAN_DETECTOR_IS_TRIGGERED_HELPURL="http://wiki.labplus.cn/index.php?title=%E4%BA%BA%E4%BD%93%E6%84%9F%E5%BA%94",LF.LABPLUS_HUMAN_DETECTOR_IS_TRIGGERED_TOOLTIP="",LF.LABPLUS_HUMAN_DETECTOR_IS_TRIGGERED_MESSAGE0="人体感应 引脚 %1 被触发",LF.LABPLUS_MAGNETIC_SWITCH_IS_TRIGGERED_HELPURL="http://wiki.labplus.cn/index.php?title=%E9%97%A8%E7%A3%81%E5%BC%80%E5%85%B3",LF.LABPLUS_MAGNETIC_SWITCH_IS_TRIGGERED_TOOLTIP="",LF.LABPLUS_MAGNETIC_SWITCH_IS_TRIGGERED_MESSAGE0="门磁开关 引脚 %1 被触发",LF.LABPLUS_SOUND_LEVEL_SENSOR_HELPURL="",LF.LABPLUS_SOUND_LEVEL_SENSOR_TOOLTIP="",LF.LABPLUS_SOUND_LEVEL_SENSOR_MESSAGE0="声音传感器 引脚 %1 的值",LF.LABPLUS_SMOKE_SENSOR_HELPURL="http://wiki.labplus.cn/index.php?title=%E7%83%9F%E9%9B%BE",LF.LABPLUS_SMOKE_SENSOR_TOOLTIP="",LF.LABPLUS_SMOKE_SENSOR_MESSAGE0="烟雾传感器 引脚 %1 的值",LF.LABPLUS_SOIL_MOISTURE_SENSOR_HELPURL="http://wiki.labplus.cn/index.php?title=%E5%9C%9F%E5%A3%A4%E6%B9%BF%E5%BA%A6",LF.LABPLUS_SOIL_MOISTURE_SENSOR_TOOLTIP="",LF.LABPLUS_SOIL_MOISTURE_SENSOR_MESSAGE0="土壤湿度传感器 引脚 %1 的值",LF.LABPLUS_FAN_SWITCH_HELPURL="http://wiki.labplus.cn/index.php?title=%E6%8E%92%E9%A3%8E%E6%89%87",LF.LABPLUS_FAN_SWITCH_TOOLTIP="",LF.LABPLUS_FAN_SWITCH_MESSAGE0="%1 风扇 引脚 %2",LF.LABPLUS_VOICE_RECORD_ON_HELPURL="http://wiki.labplus.cn/index.php?title=%E8%AF%AD%E9%9F%B3%E5%BD%95%E6%94%BE",LF.LABPLUS_VOICE_RECORD_ON_TOOLTIP="",LF.LABPLUS_VOICE_RECORD_ON_MESSAGE0="打开录放器 %1 引脚 %2",LF.LABPLUS_VOICE_RECORD_PLAY="播放",LF.LABPLUS_VOICE_RECORD_REC="录音",LF.LABPLUS_VOICE_RECORD_OFF_HELPURL="http://wiki.labplus.cn/index.php?title=%E8%AF%AD%E9%9F%B3%E5%BD%95%E6%94%BE",LF.LABPLUS_VOICE_RECORD_OFF_TOOLTIP="",LF.LABPLUS_VOICE_RECORD_OFF_MESSAGE0="关闭录放器 引脚 %1",LF.LABPLUS_MOTOR_ON_HELPURL="http://wiki.labplus.cn/index.php?title=%E7%94%B5%E6%9C%BA%E9%A9%B1%E5%8A%A8",LF.LABPLUS_MOTOR_ON_TOOLTIP="",LF.LABPLUS_MOTOR_ON_MESSAGE0="打开直流电机 %1 速度 %2 引脚 %3",LF.LABPLUS_MOTOR_ON_CLOCKWISE="正转",LF.LABPLUS_MOTOR_ON_ANTICLOCKWISE="反转",LF.LABPLUS_MOTOR_OFF_HELPURL="http://wiki.labplus.cn/index.php?title=%E7%94%B5%E6%9C%BA%E9%A9%B1%E5%8A%A8",LF.LABPLUS_MOTOR_OFF_TOOLTIP="",LF.LABPLUS_MOTOR_OFF_MESSAGE0="停止直流电机 引脚 %1",LF.LABPLUS_READ_COLOR_FROM_I2C_HELPURL="http://wiki.labplus.cn/index.php?title=%E9%A2%9C%E8%89%B2",LF.LABPLUS_READ_COLOR_FROM_I2C_TOOLTIP="",LF.LABPLUS_READ_COLOR_FROM_I2C_MESSAGE0="I2C颜色传感器读取并储存颜色",LF.LABPLUS_RGB_COLOR_HELPURL="http://wiki.labplus.cn/index.php?title=RGB_LED",LF.LABPLUS_RGB_COLOR_TOOLTIP="读取已储存的颜色",LF.LABPLUS_RGB_COLOR_MESSAGE0="RGB颜色 %1",LF.LABPLUS_SET_I2C_DIGITS_HELPURL="http://wiki.labplus.cn/index.php?title=%E6%95%B0%E7%A0%81%E7%AE%A1",LF.LABPLUS_SET_I2C_DIGITS_TOOLTIP="",LF.LABPLUS_SET_I2C_DIGITS_MESSAGE0="设置I2C数码管的值为 %1",LF.LABPLUS_TURN_OFF_I2C_DIGITS_HELPURL="http://wiki.labplus.cn/index.php?title=%E6%95%B0%E7%A0%81%E7%AE%A1",LF.LABPLUS_TURN_OFF_I2C_DIGITS_TOOLTIP="",LF.LABPLUS_TURN_OFF_I2C_DIGITS_MESSAGE0="关闭I2C数码管",LF.LABPLUS_UART_SET_MIDI_MELODIC_HELPURL="http://wiki.labplus.cn/index.php?title=%E7%94%B5%E5%AD%90%E7%90%B4",LF.LABPLUS_UART_SET_MIDI_MELODIC_TOOLTIP="",LF.LABPLUS_UART_SET_MIDI_MELODIC_MESSAGE0="设置MIDI模块音调为 %1",LF.LABPLUS_UART_PLAY_MIDI_NOTE_HELPURL="http://wiki.labplus.cn/index.php?title=%E7%94%B5%E5%AD%90%E7%90%B4",LF.LABPLUS_UART_PLAY_MIDI_NOTE_TOOLTIP="",LF.LABPLUS_UART_PLAY_MIDI_NOTE_MESSAGE0="MIDI模块 %2 音符 %1",LF.LABPLUS_UART_PLAY_MIDI_NOTE_Do="Do",LF.LABPLUS_UART_PLAY_MIDI_NOTE_Re="Re",LF.LABPLUS_UART_PLAY_MIDI_NOTE_Mi="Mi",LF.LABPLUS_UART_PLAY_MIDI_NOTE_Fa="Fa",LF.LABPLUS_UART_PLAY_MIDI_NOTE_Sol="Sol",LF.LABPLUS_UART_PLAY_MIDI_NOTE_La="La",LF.LABPLUS_UART_PLAY_MIDI_NOTE_Si="Si";LF.LABPLUS_UART_PLAY_MIDI_NOTE="播放",LF.LABPLUS_UART_OFF_MIDI_NOTE="停止",LF.LABPLUS_UART_OFF_MIDI_NOTE_HELPURL="http://wiki.labplus.cn/index.php?title=%E7%94%B5%E5%AD%90%E7%90%B4",LF.LABPLUS_UART_OFF_MIDI_NOTE_TOOLTIP="",LF.LABPLUS_UART_OFF_MIDI_NOTE_MESSAGE0="MIDI模块停止播放音符 %1",LF.LABPLUS_UART_INIT_MIDI_HELPURL="http://wiki.labplus.cn/index.php?title=%E7%94%B5%E5%AD%90%E7%90%B4",LF.LABPLUS_UART_INIT_MIDI_TOOLTIP="",LF.LABPLUS_UART_INIT_MIDI_MESSAGE0="初始化MIDI模块 %1",LF.LABPLUS_LINE_FOLLOWER_IS_TRIGGERED_HELPURL="http://wiki.labplus.cn/index.php?title=%E5%BE%AA%E8%BF%B9",LF.LABPLUS_LINE_FOLLOWER_IS_TRIGGERED_TOOLTIP="",LF.LABPLUS_LINE_FOLLOWER_IS_TRIGGERED_MESSAGE0="循迹传感器 引脚 %1 检测为黑",LF.LABPLUS_TEMPERATURE_SENSOR_HELPURL="http://wiki.labplus.cn/index.php?title=LM35%E6%B8%A9%E5%BA%A6",LF.LABPLUS_TEMPERATURE_SENSOR_TOOLTIP="",LF.LABPLUS_TEMPERATURE_SENSOR_MESSAGE0="LM35温度传感器 引脚 %1 的值",LF.LABPLUS_ROTATE_DIMMER_HELPURL="http://wiki.labplus.cn/index.php?title=%E6%97%8B%E9%92%AE%E7%94%B5%E4%BD%8D%E5%99%A8",LF.LABPLUS_ROTATE_DIMMER_TOOLTIP="",LF.LABPLUS_ROTATE_DIMMER_MESSAGE0="旋转电位器 引脚 %1 的值",LF.LABPLUS_SHAKE_DETECTOR_IS_TRIGGERED_HELPURL="http://wiki.labplus.cn/index.php?title=%E9%9C%87%E5%8A%A8",LF.LABPLUS_SHAKE_DETECTOR_IS_TRIGGERED_TOOLTIP="",LF.LABPLUS_SHAKE_DETECTOR_IS_TRIGGERED_MESSAGE0="震动传感器 引脚 %1 被触发",LF.LABPLUS_LASER_SWITCH_HELPURL="http://wiki.labplus.cn/index.php?title=%E6%BF%80%E5%85%89%E5%8F%91%E5%B0%84",LF.LABPLUS_LASER_SWITCH_TOOLTIP="",LF.LABPLUS_LASER_SWITCH_MESSAGE0="%1 激光开关 引脚 %2",LF.LABPLUS_4BUTTON_HELPURL="http://wiki.labplus.cn/index.php?title=%E5%9B%9B%E6%8C%89%E9%94%AE",LF.LABPLUS_4BUTTON_TOOLTIP="",LF.LABPLUS_4BUTTON_MESSAGE0="四向按键模块 引脚 %1 按键 %2 被按下",LF.BLUE="A",LF.GREEN="B",LF.RED="C",LF.YELLOW="D",LF.LABPLUS_JOYSTICK_HELPURL="",LF.LABPLUS_JOYSTICK_TOOLTIP="",LF.LABPLUS_JOYSTICK_MESSAGE0="摇杆 引脚A0 %1 引脚A1 %2 %3 轴的值",LF.LABPLUS_UART_MP3_PLAY_HELPURL="http://wiki.labplus.cn/index.php?title=%E9%9F%B3%E4%B9%90%E6%92%AD%E6%94%BE",LF.LABPLUS_UART_MP3_PLAY_TOOLTIP="",LF.LABPLUS_UART_MP3_PLAY_MESSAGE0="MP3模块(UART)播放第 %1 首音乐",LF.LABPLUS_UART_MP3_SET_VOLUME_HELPURL="http://wiki.labplus.cn/index.php?title=%E9%9F%B3%E4%B9%90%E6%92%AD%E6%94%BE",LF.LABPLUS_UART_MP3_SET_VOLUME_TOOLTIP="",LF.LABPLUS_UART_MP3_SET_VOLUME_MESSAGE0="设置MP3模块(UART)音量为 %1",LF.LABPLUS_UART_MP3_SET_STATUS_HELPURL="http://wiki.labplus.cn/index.php?title=%E9%9F%B3%E4%B9%90%E6%92%AD%E6%94%BE",LF.LABPLUS_UART_MP3_SET_STATUS_TOOLTIP="",LF.LABPLUS_UART_MP3_SET_STATUS_MESSAGE0="设置MP3模块(UART)状态为 %1",LF.PAUSE="暂停",LF.STOP="停止",LF.PLAY="继续播放",LF.PLAYNEXT="下一首",LF.PLAYPREV="上一首",LF.LABPLUS_UART_INIT_HELPURL="http://wiki.labplus.cn/index.php?title=Bluebit",LF.LABPLUS_UART_INIT_TOOLTIP="",LF.LABPLUS_UART_INIT_MESSAGE0="初始化串口波特率为 %3 TX为 %1 RX为 %2",LF.LABPLUS_VOICE_RECORD_ON1_HELPURL="http://wiki.labplus.cn/index.php?title=%E8%AF%AD%E9%9F%B3%E5%BD%95%E6%94%BE",LF.LABPLUS_VOICE_RECORD_ON1_TOOLTIP="",LF.LABPLUS_VOICE_RECORD_ON1_MESSAGE0="打开录放器 %1 %2 引脚REC %3 引脚PLAY %4",LF.LABPLUS_VOICE_RECORD_OFF1_HELPURL="http://wiki.labplus.cn/index.php?title=%E8%AF%AD%E9%9F%B3%E5%BD%95%E6%94%BE",LF.LABPLUS_VOICE_RECORD_OFF1_TOOLTIP="",LF.LABPLUS_VOICE_RECORD_OFF1_MESSAGE0="关闭录放器 %1 引脚REC %2 引脚PLAY %3",LF.LABPLUS_MOTOR_ON1_HELPURL="http://wiki.labplus.cn/index.php?title=%E7%94%B5%E6%9C%BA%E9%A9%B1%E5%8A%A8",LF.LABPLUS_MOTOR_ON1_TOOLTIP="",LF.LABPLUS_MOTOR_ON1_MESSAGE0="打开直流电机 %1 速度 %2 引脚AIN1 %3 引脚AIN2 %4",LF.LABPLUS_MOTOR_OFF1_HELPURL="http://wiki.labplus.cn/index.php?title=%E7%94%B5%E6%9C%BA%E9%A9%B1%E5%8A%A8",LF.LABPLUS_MOTOR_OFF1_TOOLTIP="",LF.LABPLUS_MOTOR_OFF1_MESSAGE0="停止直流电机 %1 引脚AIN1 %2 引脚AIN2 %3",LF.LABPLUS_SET_I2C_LCD1602_CURSOR_HELPURL="http://wiki.labplus.cn/index.php?title=1602_LCD",LF.LABPLUS_SET_I2C_LCD1602_CURSOR_TOOLTIP="",LF.LABPLUS_SET_I2C_LCD1602_CURSOR_MESSAGE0="设置LCD游标位置%1 X %2 Y %3",LF.LABPLUS_SET_I2C_LCD1602_PRINT_HELPURL="http://wiki.labplus.cn/index.php?title=1602_LCD",LF.LABPLUS_SET_I2C_LCD1602_PRINT_TOOLTIP="",LF.LABPLUS_SET_I2C_LCD1602_PRINT_MESSAGE0="设置LCD显示 %1",LF.LABPLUS_SET_I2C_LCD1602_SCROLL_HELPURL="http://wiki.labplus.cn/index.php?title=1602_LCD",LF.LABPLUS_SET_I2C_LCD1602_SCROLL_TOOLTIP="配合循环次数使用",LF.LABPLUS_SET_I2C_LCD1602_SCROLL_MESSAGE0="%1滚动LCD显示内容",LF.LABPLUS_SET_I2C_LCD1602_SCROLL_ALEFT="向左",LF.LABPLUS_SET_I2C_LCD1602_SCROLL_RIGHTWARD="向右",LF.LABPLUS_SET_I2C_LCD1602_CLEAR_HELPURL="http://wiki.labplus.cn/index.php?title=1602_LCD",LF.LABPLUS_SET_I2C_LCD1602_CLEAR_TOOLTIP="",LF.LABPLUS_SET_I2C_LCD1602_CLEAR_MESSAGE0="清除LCD显示内容",LF.LABPLUS_UART_ANY_MSG_RECEIVED_HELPURL="http://wiki.labplus.cn/index.php?title=Bluebit",LF.LABPLUS_UART_ANY_MSG_RECEIVED_TOOLTIP="",LF.LABPLUS_UART_ANY_MSG_RECEIVED_MESSAGE0="%1 接收到数据",LF.BLUEBIT_UART="串口",LF.BLUEBIT_INFRARED_SIGNAL="红外信号",LF.BLUEBIT_BLUEBOOTH="蓝牙",LF.LABPLUS_UART_READ_MSG_HELPURL="http://wiki.labplus.cn/index.php?title=Bluebit",LF.LABPLUS_UART_READ_MSG_TOOLTIP="",LF.LABPLUS_UART_READ_MSG_MESSAGE0="读取 %1 数据",LF.LABPLUS_UART_WRITE_MSG_HELPURL="http://wiki.labplus.cn/index.php?title=Bluebit",LF.LABPLUS_UART_WRITE_MSG_TOOLTIP="",LF.LABPLUS_UART_WRITE_MSG_MESSAGE0="%1 发送数据 %2",LF.LABPLUS_SET_I2C_LED_MATRIX_HELPURL="http://wiki.labplus.cn/index.php?title=%E7%82%B9%E9%98%B5",LF.LABPLUS_SET_I2C_LED_MATRIX_TOOLTIP="",LF.LABPLUS_SET_I2C_LED_MATRIX_MESSAGE0="设置点阵 %1 第一行显示%2 第二行显示%3 第三行显示%4 第四行显示%5 第五行显示%6 第六行显示%7 第七行显示%8 第八行显示%9 ",LF.LABPLUS_SET_I2C_LED_MATRIX_MESSAGE2="设置点阵 %1 %2 %3 %4 %5 %6 %7 %8 %9 %10 %11 %12 %13 %14 %15 %16 %17 %18 %19 %20 %21 %22 %23 %24 %25 %26 %27 %28 %29 %30 %31 %32 %33 %34 %35 %36 %37 %38 %39 %40 %41 %42 %43 %44 %45 %46 %47 %48 %49 %50 %51 %52 %53 %54 %55 %56 %57 %58 %59 %60 %61 %62 %63 %64 %65 %66 %67 %68 %69 %70 %71 %72",LF.LABPLUS_SET_I2C_LED_MATRIX_CLEAR_HELPURL="http://wiki.labplus.cn/index.php?title=%E7%82%B9%E9%98%B5",LF.LABPLUS_SET_I2C_LED_MATRIX_CLEAR_TOOLTIP="",LF.LABPLUS_SET_I2C_LED_MATRIX_CLEAR_MESSAGE0="清空点阵",LF.LABPLUS_UART_SET_OLED_HELPURL="http://wiki.labplus.cn/index.php?title=OLED",LF.LABPLUS_UART_SET_OLED_TOOLTIP="",LF.LABPLUS_UART_SET_OLED_MESSAGE0="设置OLED屏 %1 X %2 Y %3 显示文本 %4 字体为 %5",LF.LABPLUS_UART_SET_OLED_CLEAR_HELPURL="http://wiki.labplus.cn/index.php?title=OLED",LF.LABPLUS_UART_SET_OLED_CLEAR_TOOLTIP="",LF.LABPLUS_UART_SET_OLED_CLEAR_MESSAGE0="在OLED屏上擦除矩阵 %1 X1 %2 Y1 %3 X2 %4 Y2 %5",LF.LABPLUS_UART_SET_OLED_CLEAR_ALL_MESSAGE0="清空OLED屏",LF.LABPLUS_UART_SET_OLED_CLEAR_ALL_HELPURL="http://wiki.labplus.cn/index.php?title=OLED",LF.LABPLUS_UART_SET_OLED_CLEAR_ALL_TOOLTIP="",LF.LABPLUS_LIGHT_SENSOR_HELPURL="http://wiki.labplus.cn/index.php?title=%E6%A8%A1%E6%8B%9F%E5%85%89%E7%BA%BF",LF.LABPLUS_LIGHT_SENSOR_TOOLTIP="",LF.LABPLUS_LIGHT_SENSOR_MESSAGE0="模拟光线传感器 引脚 %1 的值",LF.LABPLUS_BUTTON_MODULE_IS_PRESSED_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/i2c.html",LF.LABPLUS_BUTTON_MODULE_IS_PRESSED_TOOLTIP="",LF.LABPLUS_BUTTON_MODULE_IS_PRESSED_MESSAGE0="按键模块 引脚 %1 被按下",LF.MICROBIT_EXT2_SET_SERVO_HELPURL="http://wiki.labplus.cn/index.php?title=Extend:bit%E2%85%A1",LF.MICROBIT_EXT2_SET_SERVO_TOOLTIP="",LF.MICROBIT_EXT2_SET_SERVO_MESSAGE0="设置舵机 %1 的角度为 %2",LF.MICROBIT_EXT2_SET_MOTOR_HELPURL="http://wiki.labplus.cn/index.php?title=Extend:bit%E2%85%A1",LF.MICROBIT_EXT2_SET_MOTOR_TOOLTIP="",LF.MICROBIT_EXT2_SET_MOTOR_MESSAGE0="设置马达 %1 方向 %2 速度 %3",LF.MICROBIT_EXT2_STOP_MOTOR_HELPURL="http://wiki.labplus.cn/index.php?title=Extend:bit%E2%85%A1",LF.MICROBIT_EXT2_STOP_MOTOR_TOOLTIP="",LF.MICROBIT_EXT2_STOP_MOTOR_MESSAGE0="停止马达 %1",LF.MICROBIT_EXT2_SOUND_VALUE_MESSAGE0="声音传感器的值",LF.MICROBIT_EXT2_SOUND_VALUE_HELPURL="http://wiki.labplus.cn/index.php?title=Extend:bit%E2%85%A1",LF.MICROBIT_EXT2_SOUND_VALUE_TOOLTIP="",LF.MICROBIT_EXT2_LIGHT_VALUE_MESSAGE0="光线传感器的值",LF.MICROBIT_EXT2_LIGHT_VALUE_HELPURL="http://wiki.labplus.cn/index.php?title=Extend:bit%E2%85%A1",LF.MICROBIT_EXT2_LIGHT_VALUE_TOOLTIP="",LF.MICROBIT_INIT_I2C_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/i2c.html",LF.MICROBIT_INIT_I2C_TOOLTIP="",LF.MICROBIT_INIT_I2C_MESSAGE0="初始化I2C 频率 %1 引脚SDA %2 引脚SCL %3",LF.MICROBIT_I2C_READ_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/i2c.html",LF.MICROBIT_I2C_READ_TOOLTIP="",LF.MICROBIT_I2C_READ_MESSAGE0="I2C读取从地址 %1 读取 %2 字节",LF.MICROBIT_I2C_WRITE_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/i2c.html",LF.MICROBIT_I2C_WRITE_TOOLTIP="",LF.MICROBIT_I2C_WRITE_MESSAGE0="I2C写入 %2 到地址 %1",LF.MICROBIT_CONVERT_BYTEARRAY_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/i2c.html",LF.MICROBIT_CONVERT_BYTEARRAY_TOOLTIP="",LF.MICROBIT_CONVERT_BYTEARRAY_MESSAGE0="bytearray %1",LF.BOTBIT_MOTOR_ON_HELPURL="",LF.BOTBIT_MOTOR_ON_TOOLTIP="范围:-2000~2000",LF.BOTBIT_MOTOR_ON_MESSAGE0="设置机器人 %1 右轮速度为 %2 左轮速度为 %3",LF.BOTBIT_MOTOR_LEFT="左",LF.BOTBIT_MOTOR_RIGHT="右",LF.BOTBIT_SERVO_UP="上方",LF.BOTBIT_SERVO_DOWN="下方",LF.BOTBIT_MOTOR_FORWARD="前进",LF.BOTBIT_MOTOR_BACKWARD="后退",LF.BOTBIT_HOLDBALL_HELPURL="",LF.BOTBIT_HOLDBALL_TOOLTIP="",LF.BOTBIT_HOLDBALL_MESSAGE0="双臂抱起",LF.BOTBIT_STEERING_ENGINEL_HELPURL="",LF.BOTBIT_STEERING_ENGINEL_TOOLTIP="角度范围为-45°~45°",LF.BOTBIT_STEERING_ENGINEL_MESSAGE0="设置 %1臂 %2的角度为 %3",LF.BOTBIT_SERVO_Y="Y轴舵机",LF.BOTBIT_SERVO_X="X轴舵机",LF.BOTBIT_STEERING_ENGINE_LEG_HELPURL="",LF.BOTBIT_STEERING_ENGINE_LEG_TOOLTIP="角度范围为-45°~45°",LF.BOTBIT_STEERING_ENGINE_LEG_MESSAGE0="设置 %1腿 %2舵机的角度为 %3",LF.BOTBIT_UPDATEPOSITION_HELPURL="",LF.BOTBIT_UPDATEPOSITION_TOOLTIP="",LF.BOTBIT_UPDATEPOSITION_MESSAGE0="刷新舵机角度",LF.BOTBIT_ULTRASONIC_HELPURL="",LF.BOTBIT_ULTRASONIC_TOOLTIP="",LF.BOTBIT_ULTRASONIC_MESSAGE0="超声波传感器的值",LF.BOTBIT_WALKING_HELPURL="",LF.BOTBIT_WALKING_TOOLTIP="周期越短, 速度越快, 推荐1000~2000",LF.BOTBIT_WALKING_MESSAGE0="舞步(walking) 步数%2 周期%3 方向%1 ",LF.BOTBIT_WALKING_FORWARD="前",LF.BOTBIT_WALKING_BACK="后",LF.BOTBIT_MOONWALKER_HELPURL="",LF.BOTBIT_MOONWALKER_TOOLTIP="推荐周期1000~2000, 幅度10~50",LF.BOTBIT_MOONWALKER_MESSAGE0="舞步(moonwalker) 步数%2 周期%3 幅度%4 方向%1 ",LF.BOTBIT_MOONWALKER_L="左",LF.BOTBIT_MOONWALKER_R="右",LF.BOTBIT_CRUSAITO_HELPURL="",LF.BOTBIT_CRUSAITO_TOOLTIP="推荐步数2~10, 幅度10~50",LF.BOTBIT_CRUSAITO_MESSAGE0="舞步(crusaito) 步数%2 周期%3 幅度%4 方向%1",LF.BOTBIT_CRUSAITO_CW="逆时针",LF.BOTBIT_CRUSAITO_ANTICW="顺时针",LF.BOTBIT_FLAPPING_HELPURL="",LF.BOTBIT_FLAPPING_TOOLTIP="推荐步数5~15, 幅度10~30, 周期1000~2000",LF.BOTBIT_FLAPPING_MESSAGE0="舞步(flapping) 步数%2 周期%3 幅度%4 方向%1",LF.BOTBIT_FLAPPING_FORWARD="前",LF.BOTBIT_FLAPPING_BACK="后",LF.BOTBIT_HOME_HELPURL="",LF.BOTBIT_HOME_TOOLTIP="",LF.BOTBIT_HOME_MESSAGE0="机器人舞步初始化",LF.LABPLUS_UART_SET_MIDI_VOL_HELPURL="http://wiki.labplus.cn/index.php?title=MIDI(%E7%94%B5%E5%AD%90%E7%90%B4)",LF.LABPLUS_UART_SET_MIDI_VOL_TOOLTIP="",LF.LABPLUS_UART_SET_MIDI_VOL_MESSAGE0="设置MIDI模块音量为 %1",LF.labplus_mapping_MESSAGE0="映射%1 从%2 , %3到%4 , %5",LF.labplus_mapping_TOOLTIP="将0~100中的10映射到0~200中并返回映射值",LF.labplus_mapping_HELPURL="",LF.JOINT_MIDI_PIANO="平台钢琴",LF.JOINT_MIDI_BRIGHTACOUSTICPIANO="亮音钢琴",LF.JOINT_MIDI_ELECTRICGRANDPIANO="电钢琴",LF.JOINT_MIDI_HARPSICHORD="大键琴",LF.JOINT_MIDI_Celesta="钢片琴",LF.JOINT_MIDI_Glockenspiel="钟琴",LF.JOINT_MIDI_Musicalbox="音乐盒",LF.JOINT_MIDI_Marimba="马林巴琴",LF.JOINT_MIDI_Xylophone="木琴",LF.JOINT_MIDI_TubularBell="管钟",LF.JOINT_MIDI_Dulcimer="洋琴",LF.JOINT_Vibraphone="颤音琴",LF.JOINT_MIDI_ORGAN="音栓风琴",LF.JOINT_Acoustic_Guitar="木吉他",LF.JOINT_Electric_Guitar="电吉他",LF.JOINT_Acoustic_Bass="民谣贝斯",LF.JOINT_String_Ensemble="弦乐合奏",LF.JOINT_Violin="小提琴",LF.JOINT_Trumpet="小号",LF.JOINT_Sax="萨克斯",LF.JOINT_Steel_Drums="钢鼓",LF.JOINT_Lead="合成音主旋律",LF.JOINT_Pad="合成音衬底",LF.LABPLUS_PLAY_BUZZER_NOTE_HELPURL="http://wiki.labplus.cn/index.php?title=%E8%9C%82%E9%B8%A3%E5%99%A8",LF.LABPLUS_PLAY_BUZZER_NOTE_TOOLTIP="",LF.LABPLUS_PLAY_BUZZER_NOTE_MESSAGE0="播放音调 %1",LF.Carbit_init_MESSAGE0="CarBit初始化",LF.Carbit_init_TOOLTIP="",LF.Carbit_init_HELPURL="http://wiki.labplus.cn/index.php?title=Car:bit",LF.Carbit_setLeftMotor_MESSAGE0="B2电机速度 %1",LF.Carbit_setLeftMotor_TOOLTIP="范围:-100~100",LF.Carbit_setLeftMotor_HELPURL="http://wiki.labplus.cn/index.php?title=Car:bit",LF.Carbit_setRightMotor_MESSAGE0="B1电机速度 %1",LF.Carbit_setRightMotor_TOOLTIP="范围:-100~100",LF.Carbit_setRightMotor_HELPURL="http://wiki.labplus.cn/index.php?title=Car:bit",LF.Carbit_analog_light_HELPURL="http://wiki.labplus.cn/index.php?title=Car:bit",LF.Carbit_analog_light_TOOLTIP="Q3对应Pin1,Q4对应Pin2",LF.Carbit_analog_light_MESSAGE0="%1 模拟光线的值",LF.Carbit_Speed_U10_HELPURL="http://wiki.labplus.cn/index.php?title=Car:bit",LF.Carbit_Speed_U10_TOOLTIP="对应U10",LF.Carbit_Speed_U10_MESSAGE0="左轮速度",LF.Carbit_Speed_U11_HELPURL="http://wiki.labplus.cn/index.php?title=Car:bit",LF.Carbit_Speed_U11_TOOLTIP="对应U11",LF.Carbit_Speed_U11_MESSAGE0="右轮速度",LF.Carbit_Distance_HELPURL="http://wiki.labplus.cn/index.php?title=Car:bit",LF.Carbit_Distance_TOOLTIP="",LF.Carbit_Distance_MESSAGE0="超声波的值",LF.Carbit_tracking_HELPURL="http://wiki.labplus.cn/index.php?title=Car:bit",LF.Carbit_tracking_TOOLTIP="",LF.Carbit_tracking_MESSAGE0="循迹参数 %1 直行速度 %2 最大限速 %3 转弯延时 %5 转弯速度系数 %4 ",LF.XUNFEI_SPEECH_TTS_HELPURL="",LF.XUNFEI_SPEECH_TTS_TOOLTIP="合成音频文件格式只能是 *.pcm",LF.XUNFEI_SPEECH_TTS_MESSAGE0="[讯飞语音] 合成音频 %1 APPID %2 APISecret %3 APIKey %4 文字内容 %5 转存为音频文件 %6",LF.XUNFEI_SPEECH_IAT_HELPURL="",LF.XUNFEI_SPEECH_IAT_TOOLTIP="可识别的音频格式有 *.pcm 与 *.wav",LF.XUNFEI_SPEECH_IAT_MESSAGE0="[讯飞语音] 识别音频 %1 APPID %2 APISecret %3 APIKey %4 待识别音频文件 %5",LF.XUNFEI_SPEECH_IAT_RESULT_HELPURL="",LF.XUNFEI_SPEECH_IAT_RESULT_TOOLTIP="",LF.XUNFEI_SPEECH_IAT_RESULT_MESSAGE0="[讯飞语音] 识别结果",LF.MPYTHON_ZKAI_LCD_INIT_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/lcd.html#lcdinittype1-freq15000000-colorlcdblack",LF.MPYTHON_ZKAI_LCD_INIT_MESSAGE0="LCD 屏幕初始化",LF.MPYTHON_ZKAI_LCD_INIT_TOOLTIP="初始化 LCD 屏幕显示",LF.MPYTHON_ZKAI_LCD_ROTATION_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/lcd.html#lcddirectiondir",LF.MPYTHON_ZKAI_LCD_ROTATION_MESSAGE0="LCD 屏幕方向%1",LF.MPYTHON_ZKAI_LCD_ROTATION_TOOLTIP="设置 LCD 屏幕方向,取值范围 [0,3], 从0到3依次顺时针旋转",LF.MPYTHON_ZKAI_SENSOR_RESET_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/sensor.html#%E5%8D%95%E7%9B%AE%E6%91%84%E5%83%8F%E5%A4%B4%E9%87%8D%E7%BD%AE%E5%87%BD%E6%95%B0",LF.MPYTHON_ZKAI_SENSOR_RESET_MESSAGE0="摄像头 初始化",LF.MPYTHON_ZKAI_SENSOR_RESET_TOOLTIP="初始化单目摄像头",LF.MPYTHON_ZKAI_SENSOR_ENABLE_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/sensor.html#%E8%8E%B7%E5%8F%96%E5%9B%BE%E5%83%8F",LF.MPYTHON_ZKAI_SENSOR_ENABLE_MESSAGE0="摄像头%1",LF.MPYTHON_ZKAI_SENSOR_ENABLE_TOOLTIP="获取图像",LF.MPYTHON_ZKAI_LCD_WIDTHANDHEIGHT_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/lcd.html#lcdwidth",LF.MPYTHON_ZKAI_LCD_WIDTHANDHEIGHT_MESSAGE0="LCD 获取%1",LF.MPYTHON_ZKAI_LCD_WIDTHANDHEIGHT_TOOLTIP="返回 LCD 的宽度(水平分辨率);高度(垂直分辨率)",LF.MPYTHON_ZKAI_LCD_MI_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/lcd.html#lcddirectiondir",LF.MPYTHON_ZKAI_LCD_MI_MESSAGE0="LCD 设置镜像",LF.MPYTHON_ZKAI_LCD_MI_TOOLTIP="设置是否镜像",LF.MPYTHON_ZKAI_LCD_TEXT_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/lcd.html#%E4%BE%8B%E7%A8%8B-1%EF%BC%9A-%E6%98%BE%E7%A4%BA%E8%8B%B1%E6%96%87",LF.MPYTHON_ZKAI_LCD_TEXT_MESSAGE0="显示文本 x %1 y %2 内容 %3",LF.MPYTHON_ZKAI_LCD_TEXT_TOOLTIP="仅支持字母和数字",LF.MPYTHON_ZKAI_SENSOR_OffOn_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/sensor.html#%E5%85%B3%E9%97%AD%E6%91%84%E5%83%8F%E5%A4%B4",LF.MPYTHON_ZKAI_SENSOR_OffOn_MESSAGE0="摄像头%1",LF.MPYTHON_ZKAI_SENSOR_OffOn_TOOLTIP="1 表示开启摄像头 0 表示关闭摄像头",LF.MPYTHON_ZKAI_SENSOR_SKIP_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/sensor.html#%E8%B7%B3%E5%B8%A7",LF.MPYTHON_ZKAI_SENSOR_SKIP_MESSAGE0="摄像头 跳过帧数%1 毫秒%2内的图像 ",LF.MPYTHON_ZKAI_SENSOR_SKIP_TOOLTIP="摄像头跳过指定帧数或者跳过指定时间内的图像",LF.MPYTHON_ZKAI_SENSOR_RETURN_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/sensor.html#%E5%88%86%E8%BE%A8%E7%8E%87%E5%AE%BD%E5%BA%A6",LF.MPYTHON_ZKAI_SENSOR_RETURN_MESSAGE0="摄像头 获取%1",LF.MPYTHON_ZKAI_SENSOR_RETURN_TOOLTIP="(ZKAI)摄像头返回参数(宽高,获取帧缓冲,获取ID)",LF.MPYTHON_ZKAI_SENSOR_SETS_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/sensor.html#%E8%AE%BE%E7%BD%AE%E5%AF%B9%E6%AF%94%E5%BA%A6",LF.MPYTHON_ZKAI_SENSOR_SETS_MESSAGE0="摄像头 设置%1 为%2",LF.MPYTHON_ZKAI_SENSOR_SETS_TOOLTIP="设置摄像头对比度,亮度,饱和度范围为[-2,+2]",LF.MPYTHON_ZKAI_SENSOR_AUTO_GAIN_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/sensor.html#%E8%AE%BE%E7%BD%AE%E8%87%AA%E5%8A%A8%E5%A2%9E%E7%9B%8A",LF.MPYTHON_ZKAI_SENSOR_AUTO_GAIN_MESSAGE0="摄像头 自动增益%1",LF.MPYTHON_ZKAI_SENSOR_AUTO_GAIN_TOOLTIP="1开启摄像头自动增益 0关闭摄像头自动增益",LF.MPYTHON_ZKAI_SENSOR_ACQUIRE_AUTO_GAIN_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/sensor.html#%E8%8E%B7%E5%8F%96%E5%A2%9E%E7%9B%8A%E5%80%BC",LF.MPYTHON_ZKAI_SENSOR_ACQUIRE_AUTO_GAIN_MESSAGE0="摄像头 获取增益值",LF.MPYTHON_ZKAI_SENSOR_ACQUIRE_AUTO_GAIN_TOOLTIP="获取摄像头增益值",LF.MPYTHON_ZKAI_SENSOR_LEVEL_MI_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/sensor.html#%E8%AE%BE%E7%BD%AE%E6%B0%B4%E5%B9%B3%E9%95%9C%E5%83%8F",LF.MPYTHON_ZKAI_SENSOR_LEVEL_MI_MESSAGE0="摄像头 水平镜像%1",LF.MPYTHON_ZKAI_SENSOR_LEVEL_MI_TOOLTIP="1 表示开启水平镜像 0 表示关闭水平镜像",LF.MPYTHON_ZKAI_IMAGE_LAB_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/image.html#%E4%BE%8B%E7%A8%8B-1%EF%BC%9A-%E6%89%BE%E7%BB%BF%E8%89%B2",LF.MPYTHON_ZKAI_IMAGE_LAB_MESSAGE0="(掌控AI)寻找颜色 LAB值%1",LF.MPYTHON_ZKAI_IMAGE_LAB_TOOLTIP="image寻找颜色",LF.MPYTHON_ZKAI_TRACE_COLOR_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.find_blobs",LF.MPYTHON_ZKAI_TRACE_COLOR_MESSAGE0="(掌控AI)追踪色块 LAB颜色%1 边界框小于%2 像素小于%3 过滤",LF.MPYTHON_ZKAI_TRACE_COLOR_TOOLTIP="追踪色块",LF.MPYTHON_ZKAI_TRACE_CILOR_DISPLAYTEN_HELPURL="",LF.MPYTHON_ZKAI_TRACE_CILOR_DISPLAYTEN_MESSAGE0="(掌控AI)追踪颜色 显示%1",LF.MPYTHON_ZKAI_TRACE_CILOR_DISPLAYTEN_TOOLTIP="",LF.MPYTHON_ZKAI_BLOB_ALL_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#blob",LF.MPYTHON_ZKAI_BLOB_ALL_MESSAGE0="(掌控AI)%1获取识别后色块的 所有参数",LF.MPYTHON_ZKAI_BLOB_ALL_TOOLTIP="返回blob 类 -- 色块对象",LF.MPYTHON_ZKAI_BLOB_X_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#blob",LF.MPYTHON_ZKAI_BLOB_X_MESSAGE0="(掌控AI)%1获取识别后色块的 x坐标",LF.MPYTHON_ZKAI_BLOB_X_TOOLTIP="返回blob 类 -- 色块对象",LF.MPYTHON_ZKAI_BLOB_Y_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#blob",LF.MPYTHON_ZKAI_BLOB_Y_MESSAGE0="(掌控AI)%1获取识别后色块的 y坐标",LF.MPYTHON_ZKAI_BLOB_Y_TOOLTIP="返回blob 类 -- 色块对象",LF.MPYTHON_ZKAI_BLOB_W_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#blob",LF.MPYTHON_ZKAI_BLOB_W_MESSAGE0="(掌控AI)%1获取识别后色块的 宽度",LF.MPYTHON_ZKAI_BLOB_W_TOOLTIP="返回blob 类 -- 色块对象",LF.MPYTHON_ZKAI_BLOB_H_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#blob",LF.MPYTHON_ZKAI_BLOB_H_MESSAGE0="(掌控AI)%1获取识别后色块的 高度",LF.MPYTHON_ZKAI_BLOB_H_TOOLTIP="返回blob 类 -- 色块对象",LF.MPYTHON_ZKAI_BLOB_NUMBER_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#blob",LF.MPYTHON_ZKAI_BLOB_NUMBER_MESSAGE0="(掌控AI)%1获取识别后色块的 数量",LF.MPYTHON_ZKAI_BLOB_NUMBER_TOOLTIP="返回blob 类 -- 色块对象",LF.MPYTHON_ZKAI_BLOB_CENTER_X_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#blob",LF.MPYTHON_ZKAI_BLOB_CENTER_X_MESSAGE0="(掌控AI)%1获取识别后色块的 中心x坐标",LF.MPYTHON_ZKAI_BLOB_CENTER_X_TOOLTIP="返回blob 类 -- 色块对象",LF.MPYTHON_ZKAI_BLOB_CENTER_Y_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#blob",LF.MPYTHON_ZKAI_BLOB_CENTER_Y_MESSAGE0="(掌控AI)%1获取识别后色块的 中心y坐标",LF.MPYTHON_ZKAI_BLOB_CENTER_Y_TOOLTIP="返回blob 类 -- 色块对象",LF.MPYTHON_ZKAI_BLOB_ORTHOGON_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#blob",LF.MPYTHON_ZKAI_BLOB_ORTHOGON_MESSAGE0="(掌控AI)%1获取识别后色块的 矩形",LF.MPYTHON_ZKAI_BLOB_ORTHOGON_TOOLTIP="返回blob 类 -- 色块对象",LF.MPYTHON_ZKAI2_FACE_TRACKING_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",LF.MPYTHON_ZKAI2_FACE_TRACKING_MESSAGE0="(掌控AI)选择训练模型 人脸",LF.MPYTHON_ZKAI2_FACE_TRACKING_TOOLTIP="可以识别并且追踪人脸,显示人脸大小等",LF.MPYTHON_ZKAI2_PHOTOGRAPH_TRACKING_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",LF.MPYTHON_ZKAI2_PHOTOGRAPH_TRACKING_MESSAGE0="(掌控AI)调用摄像头进行 人脸识别",LF.MPYTHON_ZKAI2_PHOTOGRAPH_TRACKING_TOOLTIP="可以识别并且追踪人脸,显示人脸大小等",LF.MPYTHON_ZKAI2_RESULT_FACE_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",LF.MPYTHON_ZKAI2_RESULT_FACE_MESSAGE0="(掌控AI)获取识别后人脸的 所有参数",LF.MPYTHON_ZKAI2_RESULT_FACE_TOOLTIP="获取识别后人脸的 所有参数",LF.MPYTHON_ZKAI2_RESULT_FACE_X_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",LF.MPYTHON_ZKAI2_RESULT_FACE_X_MESSAGE0="(掌控AI)获取识别后人脸的 x坐标",LF.MPYTHON_ZKAI2_RESULT_FACE_X_TOOLTIP="获取识别后人脸的 x坐标",LF.MPYTHON_ZKAI2_RESULT_FACE_Y_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",LF.MPYTHON_ZKAI2_RESULT_FACE_Y_MESSAGE0="(掌控AI)获取识别后人脸的 y坐标",LF.MPYTHON_ZKAI2_RESULT_FACE_Y_TOOLTIP="获取识别后人脸的 y坐标",LF.MPYTHON_ZKAI2_RESULT_FACE_W_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",LF.MPYTHON_ZKAI2_RESULT_FACE_W_MESSAGE0="(掌控AI)获取识别后人脸的 宽度",LF.MPYTHON_ZKAI2_RESULT_FACE_W_TOOLTIP="获取识别后人脸的 宽度",LF.MPYTHON_ZKAI2_RESULT_FACE_H_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",LF.MPYTHON_ZKAI2_RESULT_FACE_H_MESSAGE0="(掌控AI)获取识别后人脸的 高度",LF.MPYTHON_ZKAI2_RESULT_FACE_H_TOOLTIP="获取识别后人脸的 高度",LF.MPYTHON_ZKAI2_RESULT_FACE_VALUE_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",LF.MPYTHON_ZKAI2_RESULT_FACE_VALUE_MESSAGE0="(掌控AI)获取识别后人脸的 置信度",LF.MPYTHON_ZKAI2_RESULT_FACE_VALUE_TOOLTIP="获取识别后人脸的 置信度",LF.MPYTHON_ZKAI2_RESULT_FACE_OBJNUM_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",LF.MPYTHON_ZKAI2_RESULT_FACE_OBJNUM_MESSAGE0="(掌控AI)获取识别后人脸的 数量",LF.MPYTHON_ZKAI2_RESULT_FACE_OBJNUM_TOOLTIP="获取识别后人脸的 数量",LF.MPYTHON_ZKAI_LCD_DISPLAY_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/lcd.html#lcddisplayimage-roiauto",LF.MPYTHON_ZKAI_LCD_DISPLAY_MESSAGE0="LCD 显示生效",LF.MPYTHON_ZKAI_LCD_DISPLAY_TOOLTIP="可以在液晶屏上显示一张 image",LF.MPYTHON_ZKAI_SENSOR_IMAGES_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/sensor.html#%E8%8E%B7%E5%8F%96%E5%9B%BE%E5%83%8F",LF.MPYTHON_ZKAI_SENSOR_IMAGES_MESSAGE0="摄像头 获取图像",LF.MPYTHON_ZKAI_SENSOR_IMAGES_TOOLTIP="控制摄像头捕捉图像",LF.MPYTHON_ZKAI2_20class_TRACKING_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",LF.MPYTHON_ZKAI2_20class_TRACKING_MESSAGE0="(掌控AI)选择训练模型 20类",LF.MPYTHON_ZKAI2_20class_TRACKING_TOOLTIP="可以识别20个类型,分别是0-19为飞机,自行车,鸟,船,瓶子,公交车,汽车,猫,椅子,奶牛,餐桌,狗,屋子,摩托车,人,盆栽,羊,沙发,火车,电视",LF.MPYTHON_ZKAI2_PHOTOGRAPH_20TRACKING_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",LF.MPYTHON_ZKAI2_PHOTOGRAPH_20TRACKING_MESSAGE0="(掌控AI)调用摄像头进行 20类识别",LF.MPYTHON_ZKAI2_PHOTOGRAPH_20TRACKING_TOOLTIP="调用摄像头进行 20类识别",LF.MPYTHON_ZKAI2_RESULT_20CLASS_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",LF.MPYTHON_ZKAI2_RESULT_20CLASS_MESSAGE0="(掌控AI)获取识别后20类的 所有参数",LF.MPYTHON_ZKAI2_RESULT_20CLASS_TOOLTIP="获取识别后20类的 所有参数",LF.MPYTHON_ZKAI2_RESULT_20CLASS_X_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",LF.MPYTHON_ZKAI2_RESULT_20CLASS_X_MESSAGE0="(掌控AI)获取识别后20类的 x坐标",LF.MPYTHON_ZKAI2_RESULT_20CLASS_X_TOOLTIP="获取识别后20类的 x坐标",LF.MPYTHON_ZKAI2_RESULT_20CLASS_Y_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",LF.MPYTHON_ZKAI2_RESULT_20CLASS_Y_MESSAGE0="(掌控AI)获取识别后20类的 y坐标",LF.MPYTHON_ZKAI2_RESULT_20CLASS_Y_TOOLTIP="获取识别后20类的 y坐标",LF.MPYTHON_ZKAI2_RESULT_20CLASS_W_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",LF.MPYTHON_ZKAI2_RESULT_20CLASS_W_MESSAGE0="(掌控AI)获取识别后20类的 宽度",LF.MPYTHON_ZKAI2_RESULT_20CLASS_W_TOOLTIP="获取识别后20类的 宽度",LF.MPYTHON_ZKAI2_RESULT_20CLASS_H_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",LF.MPYTHON_ZKAI2_RESULT_20CLASS_H_MESSAGE0="(掌控AI)获取识别后20类的 高度",LF.MPYTHON_ZKAI2_RESULT_20CLASS_H_TOOLTIP="获取识别后20类的 高度",LF.MPYTHON_ZKAI2_RESULT_20CLASS_VALUE_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",LF.MPYTHON_ZKAI2_RESULT_20CLASS_VALUE_MESSAGE0="(掌控AI)获取识别后20类的 置信度",LF.MPYTHON_ZKAI2_RESULT_20CLASS_VALUE_TOOLTIP="获取识别后20类的 置信度",LF.MPYTHON_ZKAI2_RESULT_20CLASS_OBJNUM_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",LF.MPYTHON_ZKAI2_RESULT_20CLASS_OBJNUM_MESSAGE0="(掌控AI)获取识别后20类的 数量",LF.MPYTHON_ZKAI2_RESULT_20CLASS_OBJNUM_TOOLTIP="获取识别后20类的 数量",LF.MPYTHON_ZKAI2_RESULT_20CLASS_CLASSID_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",LF.MPYTHON_ZKAI2_RESULT_20CLASS_CLASSID_MESSAGE0="(掌控AI)获取识别后20类的 类型",LF.MPYTHON_ZKAI2_RESULT_20CLASS_CLASSID_TOOLTIP="获取识别后20类的 类型可以放入获取识别的参数,可以识别20个类型,分别是0-19为飞机,自行车,鸟,船,瓶子,公交车,汽车,猫,椅子,奶牛,餐桌,狗,屋子,摩托车,人,盆栽,羊,沙发,火车,电视",LF.MPYTHON_ZKAI2_RESULT_20CLASS_INDEX_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",LF.MPYTHON_ZKAI2_RESULT_20CLASS_INDEX_MESSAGE0="(掌控AI)获取识别后20类的 类型数量",LF.MPYTHON_ZKAI2_RESULT_20CLASS_INDEX_TOOLTIP="获取识别后20类的 类型数量",LF.MPYTHON_ZKAI2_NUMBER_DISCERN_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",LF.MPYTHON_ZKAI2_NUMBER_DISCERN_MESSAGE0="(掌控AI)选择训练模型 手写数字",LF.MPYTHON_ZKAI2_NUMBER_DISCERN_TOOLTIP="选择训练模型 手写数字识别",LF.MPYTHON_ZKAI2_RESULT_NUMBER_DISCERN_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",LF.MPYTHON_ZKAI2_RESULT_NUMBER_DISCERN_MESSAGE0="(掌控AI)调用摄像头进行 手写数字识别",LF.MPYTHON_ZKAI2_RESULT_NUMBER_DISCERN_TOOLTIP="调用摄像头进行 手写数字识别",LF.MPYTHON_ZKAI2_NUMBER_DETECT_ALL_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#id2",LF.MPYTHON_ZKAI2_NUMBER_DETECT_ALL_MESSAGE0="(掌控AI)获取识别后手写数字的 所有参数",LF.MPYTHON_ZKAI2_NUMBER_DETECT_ALL_TOOLTIP="手写数字识别参数",LF.MPYTHON_ZKAI2_NUMBER_DETECT_NUMBER_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#id2",LF.MPYTHON_ZKAI2_NUMBER_DETECT_NUMBER_MESSAGE0="(掌控AI)获取识别后手写数字的 数字",LF.MPYTHON_ZKAI2_NUMBER_DETECT_NUMBER_TOOLTIP="手写数字识别 数字",LF.MPYTHON_ZKAI2_NUMBER_DETECT_ADIENCE_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#id2",LF.MPYTHON_ZKAI2_NUMBER_DETECT_ADIENCE_MESSAGE0="(掌控AI)获取识别后手写数字的 置信度",LF.MPYTHON_ZKAI2_NUMBER_DETECT_ADIENCE_TOOLTIP="手写数字 识别数字 置信度",LF.MPYTHON_ZKAI_IMAGE_FACEDETECT_HELPURL="https://maixpy.sipeed.com/zh/libs/Maix/kpu.html#%E8%BF%90%E8%A1%8Cyolo2%E7%BD%91%E7%BB%9C",LF.MPYTHON_ZKAI_IMAGE_FACEDETECT_MESSAGE0="人脸识别",LF.MPYTHON_ZKAI_IMAGE_FACEDETECT_TOOLTIP="",LF.MPYTHON_ZKAI_IMAGE_FACEDETECT_RETURN_HELPURL="https://maixpy.sipeed.com/zh/libs/Maix/kpu.html#%E8%BF%90%E8%A1%8Cyolo2%E7%BD%91%E7%BB%9C",LF.MPYTHON_ZKAI_IMAGE_FACEDETECT_RETURN_MESSAGE0="(掌控AI)获取 识别%1",LF.MPYTHON_ZKAI_IMAGE_FACEDETECT_RETURN_TOOLTIP="人脸识别的x和y是LCD屏幕的坐标位置;width和height是人脸识别出的宽度和高度;classid是识别出的类别;objnum是人脸识别出的个数",LF.MPYTHON_ZKAI_IMAGE_FACEDETECT_ALL_RETURN_HELPURL="https://maixpy.sipeed.com/zh/libs/Maix/kpu.html#%E8%BF%90%E8%A1%8Cyolo2%E7%BD%91%E7%BB%9C",LF.MPYTHON_ZKAI_IMAGE_FACEDETECT_ALL_RETURN_MESSAGE0="(掌控AI)获取 识别 所有参数",LF.MPYTHON_ZKAI_IMAGE_FACEDETECT_ALL_RETURN_TOOLTIP="人脸识别的x和y是LCD屏幕的坐标位置;width和height是人脸识别出的宽度和高度;classid是识别出的类别;objnum是人脸识别出的个数",LF.MPYTHON_ZKAI_IMAGE_FACEDETECT2_HELPURL="https://maixpy.sipeed.com/zh/libs/Maix/kpu.html#%E8%BF%90%E8%A1%8Cyolo2%E7%BD%91%E7%BB%9C",LF.MPYTHON_ZKAI_IMAGE_FACEDETECT2_MESSAGE0="(掌控AI)人脸识别",LF.MPYTHON_ZKAI_IMAGE_FACEDETECT2_TOOLTIP="可以放入获取识别的参数",LF.MPYTHON_ZKAI_IMAGE_20CLASS_HELPURL="https://maixpy.sipeed.com/zh/libs/Maix/kpu.html#%E8%BF%90%E8%A1%8Cyolo2%E7%BD%91%E7%BB%9C",LF.MPYTHON_ZKAI_IMAGE_20CLASS_TOOLTIP="(掌控AI)可以放入获取识别的参数,可以识别20个类型,分别是飞机,自行车,鸟,船,瓶子,公交车,汽车,猫,椅子,奶牛, 餐桌,狗,屋子,摩托车,人,盆栽,羊,沙发,火车,电视",LF.MPYTHON_ZKAI_LCD_SHOW_REC_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/image.html#imagedrawrectanglex-y-w-h-color-thickness1-fillfalse",LF.MPYTHON_ZKAI_LCD_SHOW_REC_MESSAGE0="矩形%1 x%3 y%4 宽%5 高%6 颜色为 R%7 G%8 B%9 加粗%2",LF.MPYTHON_ZKAI_LCD_SHOW_REC_TOOLTIP="在图像上绘制矩形",LF.MPYTHON_ZKAI_LCD_SHOW_STRING_MESSAGE0="线条 x1%1 y1%2 到x2%3 y2%4 颜色为R%5 G%6 B%7 加粗%8",LF.MPYTHON_ZKAI_LCD_SHOW_STRING_TOOLTIP="在图像上绘制线条",LF.MPYTHON_ZKAI_LCD_SHOW_STRING_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/image.html#imagedrawlinex0-y0-x1-y1-color-thickness1",LF.MPYTHON_ZKAI_LCD_CLEAR_ALL_MESSAGE0="LCD 显示清空",LF.MPYTHON_ZKAI_LCD_CLEAR_ALL_TOOLTIP="将液晶屏清空为黑色或者指定的颜色",LF.MPYTHON_ZKAI_LCD_CLEAR_ALL_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/lcd.html#lcdclear",LF.MPYTHON_ZKAI_LCD_return_colour_MESSAGE0="LCD 返回 x%1 y%2 颜色",LF.MPYTHON_ZKAI_LCD_return_colour_TOOLTIP="返回某个坐标点的颜色",LF.MPYTHON_ZKAI_LCD_return_colour_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/image.html#imagegetpixelx-y-rgbtuple",LF.MPYTHON_ZKAI_LCD_SHOW_CIRCLE_MESSAGE0="圆形%1 x%2 y%3 半径%4 颜色为 R%5 G%6 B%7 加粗%8",LF.MPYTHON_ZKAI_LCD_SHOW_CIRCLE_TOOLTIP="在图像上绘制圆形",LF.MPYTHON_ZKAI_LCD_SHOW_CIRCLE_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/image.html#imagedrawcirclex-y-radius-color-thickness1-fillfalse",LF.MPYTHON_ZKAI_LCD_TEXT_MOST_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/lcd.html#%E4%BE%8B%E7%A8%8B-1%EF%BC%9A-%E6%98%BE%E7%A4%BA%E8%8B%B1%E6%96%87",LF.MPYTHON_ZKAI_LCD_TEXT_MOST_MESSAGE0="显示文本 x %1 y %2 内容 %3 颜色为R%4 G%5 B%6 字号%7",LF.MPYTHON_ZKAI_LCD_TEXT_MOST_TOOLTIP="仅支持字母和数字",LF.MPYTHON_ZKAI_LCD_SHOW_TEN_STRING_MESSAGE0="十字线 x%1 y%2 颜色为R%3 G%4 B%5 尺寸%6 加粗%7",LF.MPYTHON_ZKAI_LCD_SHOW_TEN_STRING_TOOLTIP="在图像上绘制十字线",LF.MPYTHON_ZKAI_LCD_SHOW_TEN_STRING_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/image.html#imagedrawcrossx-y-color-size5-thickness1",LF.MPYTHON_ZKAI_LCD_SHOW_ARROWS_MESSAGE0="箭头 x1%1 y1%2 到x2%3 y2%4 颜色为R%5 G%6 B%7 加粗%8",LF.MPYTHON_ZKAI_LCD_SHOW_ARROWS_TOOLTIP="在图像上绘制一个箭头",LF.MPYTHON_ZKAI_LCD_SHOW_ARROWS_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/image.html#imagedrawarrowx0-y0-x1-y1-color-thickness1",LF.MPYTHON_ZKAI_LCD_SHOW_IMAGE_PIRCTURE_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/lcd.html#%E4%BE%8B%E7%A8%8B-2%EF%BC%9A-%E6%98%BE%E7%A4%BA%E5%9B%BE%E7%89%87",LF.MPYTHON_ZKAI_LCD_SHOW_IMAGE_PIRCTURE_MESSAGE0="显示图像 路径%1",LF.MPYTHON_ZKAI_LCD_SHOW_IMAGE_PIRCTURE_TOOLTIP="显示图像",LF.MPYTHON_ZKAI_LCD_SHOW_IMAGE_HEAT_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/image.html#imagetorainbowcopyfalse",LF.MPYTHON_ZKAI_LCD_SHOW_IMAGE_HEAT_MESSAGE0="LCD 显示热图颜色",LF.MPYTHON_ZKAI_LCD_SHOW_IMAGE_HEAT_TOOLTIP="可以在液晶屏上显示一张 image的热图颜色",LF.MPYTHON_ZKAI_LCD_SHOW_ECTYPE_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/image.html#imagesavepath-roi-quality50",LF.MPYTHON_ZKAI_LCD_SHOW_ECTYPE_MESSAGE0="将图像的副本保存到SD卡 图像名%1 图像显示区域 x%2 y%3 宽%4 高%5",LF.MPYTHON_ZKAI_LCD_SHOW_ECTYPE_TOOLTIP="将图像的副本保存到SD卡",LF.MPYTHON_ZKAI_LCD_SHOW_ECTYPE_SHOW_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/image.html#imagecopyroi-copytofbfalse",LF.MPYTHON_ZKAI_LCD_SHOW_ECTYPE_SHOW_MESSAGE0="创建一个图像对象的副本 复制图像区域 x%1 y%2 宽%3 高%4",LF.MPYTHON_ZKAI_LCD_SHOW_ECTYPE_SHOW_TOOLTIP="创建一个图像对象的副本",LF.MPYTHON_ZKAI_LCD_SHOW_IMAGE_HEAT_GRAYSCALE="灰度",LF.MPYTHON_ZKAI_LCD_SHOW_IMAGE_HEAT_RAINBOW="彩虹",LF.MPYTHON_ZKAI_LCD_SHOW_IMAGE_HEAT_NEGATE="数字反转",LF.MPYTHON_ZKAI_LCD_SHOW_IMAGE_HEAT_INVERT="黑白翻转",LF.MPYTHON_ZKAI_LCD_SHOW_IMAGE_DESCARTES_LINPOLAR="线性极",LF.MPYTHON_ZKAI_LCD_SHOW_IMAGE_DESCARTES_LOGPOLAR="对数极",LF.MPYTHON_ZKAI_SENSOR_PATTERN_GRAYSCALE="灰度",LF.MPYTHON_ZKAI_SENSOR_PATTERN_COLOR="彩色",LF.MPYTHON_ZKAI_SENSOR_ENABLE_START="开始抓取图像",LF.MPYTHON_ZKAI_SENSOR_ENABLE_STOP="停止抓取图像",LF.MPYTHON_ZKAI_SENSOR_LEVEL_MI_H="水平镜像",LF.MPYTHON_ZKAI_SENSOR_LEVEL_MI_V="垂直翻转",LF.MPYTHON_ZKAI_SENSOR_SETS_CONTRAST="对比度",LF.MPYTHON_ZKAI_SENSOR_SETS_BRIGHTNESS="亮度",LF.MPYTHON_ZKAI_SENSOR_SETS_SATURATION="饱和度",LF.MPYTHON_ZKAI2_FACE_YOLO="人脸识别",LF.MPYTHON_ZKAI2_CLASS_20_YOLO="20类识别",LF.MPYTHON_ZKAI2_MNIST_NET="数字识别",LF.MPYTHON_ZKAI2_PHOTOGRAPH_FACE_YOLO="人脸",LF.MPYTHON_ZKAI2_PHOTOGRAPH_CLASS_20_YOLO="20类",LF.MPYTHON_ZKAI_TRACE_COLOR_RECTANGLE="矩形",LF.MPYTHON_ZKAI_TRACE_COLOR_CROSS="十字",LF.MPYTHON_NAME_PYTHON_ENVIRONMENT_HELPURL="",LF.MPYTHON_NAME_PYTHON_ENVIRONMENT_MESSAGE0="声明python 运行环境",LF.MPYTHON_NAME_PYTHON_ENVIRONMENT_TOOLTIP="",LF.MPYTHON_LARK_GET_ALL_COLOR_MESSAGE0="I2C获取颜色",LF.MPYTHON_LARK_GET_ALL_COLOR_TOOLTIP="返回列表",LF.MPYTHON_LARK_GET_COLOR_TOOLTIP="",LF.MPYTHON_LARK_GET_COLOR_MESSAGE0="I2C获取 %1",LF.MPYTHON_lARK_RED="红色",LF.MPYTHON__LARK_GREEN="绿色",LF.MPYTHON__LARK_BLUE="蓝色",LF.MPYTHON_LARK_GET_ALL_COLOR_HSV_TOOLTIP="HSV(Hue, Saturation, Value)",LF.MPYTHON_LARKT_GET_ALL_COLOR_HSV_MESSAGE0="I2C获取HSV",LF.MPYTHON_LARK_GET_COLOR_HSV_TOOLTIP="HSV(Hue, Saturation, Value)",LF.MPYTHON_LARK_GET_COLOR_HSV_MESSAGE0="i2C获取HSV %1",LF.MPYTHON_LARK_GET_COLOR_STRING_TOOLTIP="",LF.MPYTHON_LARK_GET_COLOR_STRING_MESSAGE0="I2C获取颜色",LF.MPYTHON_LARK_DISCERN_COLOR_TOOLTIP="",LF.MPYTHON_LARK_DISCERN_COLOR_MESSAGE0="识别 %1",LF.MPYTHON_LARK_RED="红色",LF.MPYTHON_LARK_GREEN="绿色",LF.MPYTHON_LARK_BLUE="蓝色",LF.MPYTHON_LARK_ORANGE="橙色",LF.MPYTHON_LARK_YELLOW="黄色",LF.MPYTHON_LARK_PURPLE="紫色",LF.MPYTHON_LARK_CYAN="青色",LF.MPYTHON_LARK_NONE="无色",LF.MPYTHON_LARK_NULL="无法获取",LF.MPYTHON_LARK_ULTRASONIC_TOOLTIP="",LF.MPYTHON_LARK_ULTRASONIC_MESSAGE0="I2C超声波",LF.MPYTHON_LARK_MOTOR_SET_I2C_TOOLTIP="",LF.MPYTHON_LARK_MOTOR_SET_I2C_MESSAGE0="I2C设置 %1 速度 %2",LF.MPYTHON_LARK_GET_LINE_ON_I2C_TOOLTIP="",LF.mpython_LARK_GET_LINE_ON_I2C_MESSAGE0="I2C获取 %1 巡线值",LF.mpython_LARK_GET_LINE_RIGHT_ON_I2C="右边",LF.mpython_LARK_GET_LINE_LEFT_ON_I2C="左边",LF.MPYTHON_LARK_SEARCH_LINE_ON_I2C_TOOLTIP="",LF.mpython_LARK_SEARCH_LINE_ON_I2C_MESSAGE0="I2C循迹传感 %1 遇到黑线",LF.MPYTHON_LARK_SEARCH_LEFT="左边",LF.MPYTHON_LARK_SEARCH_RIGHT="右边",LF.MPYTHON_LARK_SEARCH_LEFT2="两边都",LF.MPYTHON_LARK_SEARCH_RIGHT2="两边都没有",LF.MPYTHON_LARK_SEARCH_BOTH="两边都",LF.MPYTHON_LARK_SEARCH_NONE="两边都没有",LF.MPYTHON_LARK__CAR_GET_ALL_COLOR_TOOLTIP="Returns as list",LF.MPYTHON_LARK__CAR_GET_ALL_COLOR_MESSAGE0="千里马获取颜色",LF.MPYTHON_LARK_CAR_GET_COLOR_TOOLTIP="",LF.MPYTHON_LARK_CAR_GET_COLOR_MESSAGE0="千里马获取 %1",LF.MPYTHON_lARK_CAR_RED="红色",LF.MPYTHON__LARK_CAR_GREEN="绿色",LF.MPYTHON__LARK_CAR_BLUE="蓝色",LF.MPYTHON_LARK_CAR_GET_ALL_COLOR_HSV_TOOLTIP="HSV(Hue, Saturation, Value)",LF.MPYTHON_LARKT_CAR_GET_ALL_COLOR_HSV_MESSAGE0="千里马获取HSV",LF.MPYTHON_LARK_CAR_GET_COLOR_HSV_TOOLTIP="HSV(Hue, Saturation, Value)",LF.MPYTHON_LARK_CAR_GET_COLOR_HSV_MESSAGE0="千里马获取HSV %1",LF.MPYTHON_LARK_CAR_GET_COLOR_STRING_TOOLTIP="",LF.MPYTHON_LARK_CAR_GET_COLOR_STRING_MESSAGE0="千里马识别颜色",LF.MPYTHON_LARK_CAR_DISCERN_COLOR_TOOLTIP="",LF.MPYTHON_LARK_CAR_DISCERN_COLOR_MESSAGE0="千里马识别颜色 %1",LF.MPYTHON_LARK_CAR_RED="红色",LF.MPYTHON_LARK_CAR_GREEN="绿色",LF.MPYTHON_LARK_CAR_BLUE="蓝色",LF.MPYTHON_LARK_CAR_ORANGE="橙色",LF.MPYTHON_LARK_CAR_YELLOW="黄色",LF.MPYTHON_LARK_CAR_PURPLE="紫色",LF.MPYTHON_LARK_CAR_CYAN="青色",LF.MPYTHON_LARK_CAR_NONE="无识别",LF.MPYTHON_LARK_CAR_NULL="识别错误",LF.MPYTHON_LARK_CAR_ULTRASONIC_TOOLTIP="",LF.MPYTHON_LARK_CAR_ULTRASONIC_MESSAGE0="千里马获取超声波",LF.MPYTHON_LARK_CAR_GET_LINE_ON_I2C_TOOLTIP="",LF.mpython_LARK_CAR_GET_LINE_ON_I2C_MESSAGE0="千里马获取 %1 循迹数值",LF.mpython_LARK_CAR_GET_LINE_RIGHT_ON_I2C="右边",LF.mpython_LARK_CAR_GET_LINE_LEFT_ON_I2C="左边",LF.MPYTHON_LARK_CAR_SEARCH_LINE_ON_I2C_TOOLTIP="",LF.mpython_LARK_CAR_SEARCH_LINE_ON_I2C_MESSAGE0="千里马循迹传感器 %1 碰到黑线",LF.MPYTHON_LARK_CAR_SEARCH_LEFT="左边",LF.MPYTHON_LARK_CAR_SEARCH_RIGHT="右边",LF.MPYTHON_LARK_CAR_SEARCH_LEFT2="两边",LF.MPYTHON_LARK_CAR_SEARCH_NONE="两边都没有",LF.MPYTHON_LARK_MOTOR_SET_I2C_TOOLTIP="",LF.MPYTHON_LARK_MOTOR_SET_I2C_MESSAGE0="电机驱动 %1 速度 %2",LF.MPYTHON_LARK_MOTOR2_SET_I2C_TOOLTIP="",LF.MPYTHON_LARK_MOTOR2_SET_I2C_MESSAGE0="千里马 %1 速度 %2",LF.MPYTHON_LARK_CAR_MOTION_LEFT="左转",LF.MPYTHON_LARK_CAR_MOTION_RIGHT="右转",LF.MPYTHON_LARK_CAR_MOTION_FORWARD="前进",LF.MPYTHON_LARK_CAR_MOTION_BACKWARD="后退",LF.MPYTHON_LARK_CAR_MOTION_STOP="停止",LF.MPYTHON_DEFINE_THREAD_MESSAGE0="定义线程 %1",LF.MPYTHON_RUN_THREAD_MESSAGE0="运行线程 %1",LF.NUMBER_TO_BYTES_MESSAGE0="(struct.pack) 转换数字为bytes %1 %2 %3 %4 待转换数字 %5",LF.BYTES_TO_NUMBER_MESSAGE0="(struct.unpack) 解包bytes为数字 %1 %2 %3 %4 待转换bytes %5",LF.LITTLE_ENDIAN="低位优先(默认)",LF.BIG_ENDIAN="高位优先",LF.MPYTHON2_ACCELEROMETER_EVENT_MESSAGE0="[适用2.0板] 当掌控板 %1 时",LF.MPYTHON2_ACCELEROMETER_EVENT_HELPURL="",LF.MPYTHON2_ACCELEROMETER_EVENT_TOOLTIP="",LF.MPYTHON2_ACCELEROMETER_EVENT_TILT_LEFT="向左倾斜",LF.MPYTHON2_ACCELEROMETER_EVENT_TILT_RIGHT="向右倾斜",LF.MPYTHON2_ACCELEROMETER_EVENT_TILT_UP="向前倾斜",LF.MPYTHON2_ACCELEROMETER_EVENT_TILT_DOWN="向后倾斜",LF.MPYTHON2_ACCELEROMETER_EVENT_FACE_UP="正面朝上",LF.MPYTHON2_ACCELEROMETER_EVENT_FACE_DOWN="正面朝下",LF.MPYTHON2_ACCELEROMETER_EVENT_SINGLE_CLICK="被单击",LF.MPYTHON2_ACCELEROMETER_EVENT_DOUBLE_CLICK="被双击",LF.MPYTHON2_ACCELEROMETER_EVENT_FREEFALL="坠落",LF.MPYTHON2_ACCELEROMETER_ROLL_ANGLE="横滚角",LF.MPYTHON2_ACCELEROMETER_PITCH_ANGLE="俯仰角",LF.MPYTHON2_ACCELEROMETER_ANGLE_HELPURL="",LF.MPYTHON2_ACCELEROMETER_ANGLE_TOOLTIP="",LF.MPYTHON2_ACCELEROMETER_ANGLE_MESSAGE0="掌控板 %1",LF.MPYTHON2_BUTTON_IS_PRESSED_HELPURL="",LF.MPYTHON2_BUTTON_IS_PRESSED_TOOLTIP="",LF.MPYTHON2_BUTTON_IS_PRESSED_MESSAGE0="按键 %1 已经按下",LF.MPYTHON2_BUTTON_WAS_PRESSED_HELPURL="",LF.MPYTHON2_BUTTON_WAS_PRESSED_TOOLTIP="",LF.MPYTHON2_BUTTON_WAS_PRESSED_MESSAGE0="按键 %1 曾经按下",LF.MPYTHON2_BUTTON_GET_PRESSES_HELPURL="",LF.MPYTHON2_BUTTON_GET_PRESSES_TOOLTIP="",LF.MPYTHON2_BUTTON_GET_PRESSES_MESSAGE0="按键 %1 按下过的次数",LF.MPYTHON2_BUTTON_EVENT_MESSAGE0="当按键 %1 被 %2 时",LF.MPYTHON2_BUTTON_EVENT_HELPURL="",LF.MPYTHON2_BUTTON_EVENT_TOOLTIP="",LF.MPYTHON2_BUTTON_EVENT_PRESSED="按下",LF.MPYTHON2_BUTTON_EVENT_RELEASED="松开",LF.MPYTHON2_TOUCHPAD_IS_PRESSED_HELPURL="",LF.MPYTHON2_TOUCHPAD_IS_PRESSED_TOOLTIP="",LF.MPYTHON2_TOUCHPAD_IS_PRESSED_MESSAGE0="触摸键 %1 已经按下",LF.MPYTHON2_TOUCHPAD_WAS_PRESSED_HELPURL="",LF.MPYTHON2_TOUCHPAD_WAS_PRESSED_TOOLTIP="",LF.MPYTHON2_TOUCHPAD_WAS_PRESSED_MESSAGE0="触摸键 %1 曾经按下",LF.MPYTHON2_TOUCHPAD_GET_PRESSES_HELPURL="",LF.MPYTHON2_TOUCHPAD_GET_PRESSES_TOOLTIP="",LF.MPYTHON2_TOUCHPAD_GET_PRESSES_MESSAGE0="触摸键 %1 按下过的次数",LF.MPYTHON2_TOUCHPAD_VALUE_HELPURL="",LF.MPYTHON2_TOUCHPAD_VALUE_TOOLTIP="",LF.MPYTHON2_TOUCHPAD_VALUE_MESSAGE0="触摸键 %1 值",LF.MPYTHON2_TOUCHPAD_EVENT_MESSAGE0="当触摸键 %1 被 %2 时",LF.MPYTHON2_TOUCHPAD_EVENT_HELPURL="",LF.MPYTHON2_TOUCHPAD_EVENT_TOOLTIP="",LF.MPYTHON2_TOUCHPAD_EVENT_PRESSED="触摸",LF.MPYTHON2_TOUCHPAD_EVENT_RELEASED="释放",LF.MPYTHON2_TOUCHPAD_THRESHOLD_MESSAGE0="设置触摸键 %1 阀值为 %2",LF.MPYTHON2_TOUCHPAD_THRESHOLD_HELPURL="",LF.MPYTHON2_TOUCHPAD_THRESHOLD_TOOLTIP="",LF.BLE_UUID_HELPURL="https://mpython-ble.readthedocs.io/zh/master/api/index.html#UUID",LF.BLE_UUID_TOOLTIP="",LF.BLE_SETUP_PERIPHERAL_HELPURL="",LF.BLE_SETUP_PERIPHERAL_TOOLTIP="",LF.BLE_SETUP_PERIPHERAL_MESSAGE0="构建 BLE 外围设备对象 %1 显示名称 %2 Service UUID %3",LF.BLE_ADD_CHARACTERISTIC_HELPURL="",LF.BLE_ADD_CHARACTERISTIC_TOOLTIP="",LF.BLE_ADD_CHARACTERISTIC_MESSAGE0="定义 BLE 属性 %1 %2 Characteristic UUID %3 Read %4 Write %5 Notity %6",LF.BLE_PERIPHERAL_ADVERTISE_HELPURL="",LF.BLE_PERIPHERAL_ADVERTISE_TOOLTIP="",LF.BLE_PERIPHERAL_ADVERTISE_MESSAGE0="BLE 外围设备 %1",LF.BLE_START_BROADCASTING="开始广播",LF.BLE_STOP_BROADCASTING="停止广播",LF.BLE_PERIPHERAL_ATTRUBUTE_READ_HELPURL="",LF.BLE_PERIPHERAL_ATTRUBUTE_READ_TOOLTIP="",LF.BLE_PERIPHERAL_ATTRUBUTE_READ_MESSAGE0="读 BLE 设备的属性 %1",LF.BLE_PERIPHERAL_ATTRUBUTE_WRITE_HELPURL="",LF.BLE_PERIPHERAL_ATTRUBUTE_WRITE_TOOLTIP="",LF.BLE_PERIPHERAL_ATTRUBUTE_WRITE_MESSAGE0="写 BLE 设备的属性 %1 %2 值 %3 Notify %4",LF.BLE_PERIPHERAL_DISCONNECT_HELPURL="",LF.BLE_PERIPHERAL_DISCONNECT_TOOLTIP="",LF.BLE_PERIPHERAL_DISCONNECT_MESSAGE0="BLE 外围设备断开连接",LF.BLE_PERIPHERAL_MAC_HELPURL="",LF.BLE_PERIPHERAL_MAC_TOOLTIP="",LF.BLE_PERIPHERAL_MAC_MESSAGE0="BLE 外围设备 MAC地址",LF.BLE_PERIPHERAL_CONNECTION_CALLBACK_HELPURL="",LF.BLE_PERIPHERAL_CONNECTION_CALLBACK_TOOLTIP="",LF.BLE_PERIPHERAL_CONNECTION_CALLBACK_MESSAGE0="当 BLE 与中央设备建立连接时 %1 连接句柄 %2 地址类型 %3 中央设备的MAC地址 %4",LF.BLE_PERIPHERAL_WRITE_CALLBACK_HELPURL="",LF.BLE_PERIPHERAL_WRITE_CALLBACK_TOOLTIP="",LF.BLE_PERIPHERAL_WRITE_CALLBACK_MESSAGE0="当 BLE 设备的属性值被改写时 %1 连接句柄 %2 被写属性句柄 %3 写入的数据 %4",LF.BLE_SETUP_CENTERAL_HELPURL="",LF.BLE_SETUP_CENTERAL_TOOLTIP="",LF.BLE_SETUP_CENTERAL_MESSAGE0="构建 BLE 中央设备对象 显示名称 %1",LF.BLE_CENTERAL_CONNECT_HELPURL="",LF.BLE_CENTERAL_CONNECT_TOOLTIP="",LF.BLE_CENTERAL_CONNECT_MESSAGE0="BLE 中央设备连接到 %1 %2",LF.BLE_CENTERAL_IS_CONNECTED_HELPURL="",LF.BLE_CENTERAL_IS_CONNECTED_TOOLTIP="",LF.BLE_CENTERAL_IS_CONNECTED_MESSAGE0="BLE 外围设备已连接 ?",LF.BLE_CENTERAL_DEF_CHARACTERISTIC_HELPURL="",LF.BLE_CENTERAL_DEF_CHARACTERISTIC_TOOLTIP="",LF.BLE_CENTERAL_DEF_CHARACTERISTIC_MESSAGE0="设定 %1 为 已连接外围设备 属性对象 %2 Service UUID %3 Characteristic UUID %4",LF.BLE_CENTERAL_CHARACTERISTIC_READ_HELPURL="",LF.BLE_CENTERAL_CHARACTERISTIC_READ_TOOLTIP="",LF.BLE_CENTERAL_CHARACTERISTIC_READ_MESSAGE0="读 已连接外围设备的 属性 %1 值",LF.BLE_CENTERAL_CHARACTERISTIC_WRITE_HELPURL="",LF.BLE_CENTERAL_CHARACTERISTIC_WRITE_TOOLTIP="",LF.BLE_CENTERAL_CHARACTERISTIC_WRITE_MESSAGE0="写 已连接外围设备的 属性 %1 值 %2",LF.BLE_CENTERAL_NOTIFY_CALLBACK_HELPURL="",LF.BLE_CENTERAL_NOTIFY_CALLBACK_TOOLTIP="",LF.BLE_CENTERAL_NOTIFY_CALLBACK_MESSAGE0="当 已连接外围设备发起 Notify 通知事件时 %1 属性的值柄 %2 通知的属性值 %3",LF.BLE_CENTERAL_CONNECTED_INFO_HELPURL="",LF.BLE_CENTERAL_CONNECTED_INFO_TOOLTIP="",LF.BLE_CENTERAL_CONNECTED_INFO_MESSAGE0="已连接的外围设备 %1",LF.BLE_CENTERAL_CLOSE_HELPURL="",LF.BLE_CENTERAL_CLOSE_TOOLTIP="",LF.BLE_CENTERAL_CLOSE_MESSAGE0="BLE 中央设备 断开连接",LF.BLE_INFO_NAME="蓝牙名称",LF.BLE_INFO_MAC="MAC地址",LF.BLE_INFO_RSSI="信号强度",LF.BLE_INFO_ADDRTYPE="地址类型",LF.BLE_INFO_ADVTYPE="广播类型",LF.BLE_INFO_DATA="原始数据(元组)",LF.BLE_SETUP_UART_HELPURL="",LF.BLE_SETUP_UART_TOOLTIP="",LF.BLE_SETUP_UART_MESSAGE0="构建 BLE UART从机 显示名称 %1",LF.BLE_UART_IS_CONNECTED_HELPURL="",LF.BLE_UART_IS_CONNECTED_TOOLTIP="",LF.BLE_UART_IS_CONNECTED_MESSAGE0="BLE UART 已连接 ?",LF.BLE_UART_ANY_HELPURL="",LF.BLE_UART_ANY_TOOLTIP="",LF.BLE_UART_ANY_MESSAGE0="BLE UART 可读字节数量",LF.BLE_UART_IRQ_HELPURL="",LF.BLE_UART_IRQ_TOOLTIP="",LF.BLE_UART_IRQ_MESSAGE0="当 BLE UART 接收到数据时 %1 执行 %2",LF.BLE_UART_READ_HELPURL="",LF.BLE_UART_READ_TOOLTIP="从 UART 另一端发送过来的消息",LF.BLE_UART_READ_MESSAGE0="已接收数据",LF.BLE_UART_WRITE_HELPURL="",LF.BLE_UART_WRITE_TOOLTIP="",LF.BLE_UART_WRITE_MESSAGE0="BLE UART 发送字节 %1",LF.BLE_UART_CLOSE_HELPURL="",LF.BLE_UART_CLOSE_TOOLTIP="",LF.BLE_UART_CLOSE_MESSAGE0="BLE UART 断开连接",LF.BLE_SETUP_UART_MASTER_HELPURL="",LF.BLE_SETUP_UART_MASTER_TOOLTIP="",LF.BLE_SETUP_UART_MASTER_MESSAGE0="构建 BLE UART主机 连接到 %1 %2",LF.BLE_SETUP_HID_HELPURL="",LF.BLE_SETUP_HID_TOOLTIP="",LF.BLE_SETUP_HID_MESSAGE0="构建 BLE HID %1 对象 %2 显示名称 %3 电池电量 %4",LF.BLE_HID_MOUSE="鼠标",LF.BLE_HID_KEYBOARD="键盘",LF.BLE_HID_CONSUMER="遥控器",LF.BLE_HID_ADVERTISE_HELPURL="",LF.BLE_HID_ADVERTISE_TOOLTIP="",LF.BLE_HID_ADVERTISE_MESSAGE0="BLE HID设备 %1",LF.BLE_HID_CONNECT_EVENT_HELPURL="",LF.BLE_HID_CONNECT_EVENT_TOOLTIP="",LF.BLE_HID_CONNECT_EVENT_MESSAGE0="当 BLE HID设备 连接时",LF.BLE_HID_DISCONNECT_HELPURL="",LF.BLE_HID_DISCONNECT_TOOLTIP="",LF.BLE_HID_DISCONNECT_MESSAGE0="BLE HID设备 断开连接",LF.BLE_HID_BATTERY_LEVEL_HELPURL="",LF.BLE_HID_BATTERY_LEVEL_TOOLTIP="",LF.BLE_HID_BATTERY_LEVEL_MESSAGE0="BLE HID设备 电池电量",LF.BLE_HID_MOUSE_BUTTONS_HELPURL="",LF.BLE_HID_MOUSE_BUTTONS_TOOLTIP="",LF.BLE_HID_MOUSE_BUTTONS_MESSAGE0="鼠标键 %1",LF.BLE_HID_MOUSE_CLICK_HELPURL="",LF.BLE_HID_MOUSE_CLICK_TOOLTIP="",LF.BLE_HID_MOUSE_CLICK_MESSAGE0="BLE HID 鼠标 点击按键 %1",LF.BLE_HID_MOUSE_PRESS_HELPURL="",LF.BLE_HID_MOUSE_PRESS_TOOLTIP="",LF.BLE_HID_MOUSE_PRESS_MESSAGE0="BLE HID 鼠标 长按按键 %1",LF.BLE_HID_MOUSE_RELEASE_HELPURL="",LF.BLE_HID_MOUSE_RELEASE_TOOLTIP="",LF.BLE_HID_MOUSE_RELEASE_MESSAGE0="BLE HID 鼠标 释放按键 %1",LF.BLE_HID_MOUSE_RELEASE_ALL_HELPURL="",LF.BLE_HID_MOUSE_RELEASE_ALL_TOOLTIP="",LF.BLE_HID_MOUSE_RELEASE_ALL_MESSAGE0="BLE HID 鼠标 释放所有按键",LF.BLE_HID_MOUSE_MOVE_HELPURL="",LF.BLE_HID_MOUSE_MOVE_TOOLTIP="x, y - 光标移动量,范围 ±127 。\nwheel - 滚轮,范围 ±127 。",LF.BLE_HID_MOUSE_MOVE_MESSAGE0="BLE HID 鼠标 光标移动 %1 X轴移动量 %2 Y轴移动量 %3 滚轮 %4",LF.BLE_HID_KEYBOARD_BUTTONS_HELPURL="",LF.BLE_HID_KEYBOARD_BUTTONS_TOOLTIP="",LF.BLE_HID_KEYBOARD_BUTTONS_MESSAGE0="键盘按键 %1",LF.BLE_HID_KEYBOARD_SEND_HELPURL="",LF.BLE_HID_KEYBOARD_SEND_TOOLTIP="",LF.BLE_HID_KEYBOARD_SEND_MESSAGE0="BLE HID 键盘 按下按键 %1",LF.BLE_HID_KEYBOARD_SEND_MULTI_HELPURL="",LF.BLE_HID_KEYBOARD_SEND_MULTI_TOOLTIP="",LF.BLE_HID_KEYBOARD_SEND_MULTI_MESSAGE0="BLE HID 键盘 同时按下按键 %1 %2 %3",LF.BLE_HID_KEYBOARD_PRESS_HELPURL="",LF.BLE_HID_KEYBOARD_PRESS_TOOLTIP="",LF.BLE_HID_KEYBOARD_PRESS_MESSAGE0="BLE HID 键盘 长按按键 %1",LF.BLE_HID_KEYBOARD_RELEASE_HELPURL="",LF.BLE_HID_KEYBOARD_RELEASE_TOOLTIP="",LF.BLE_HID_KEYBOARD_RELEASE_MESSAGE0="BLE HID 键盘 释放按键 %1",LF.BLE_HID_KEYBOARD_RELEASE_ALL_HELPURL="",LF.BLE_HID_KEYBOARD_RELEASE_ALL_TOOLTIP="",LF.BLE_HID_KEYBOARD_RELEASE_ALL_MESSAGE0="BLE HID 键盘 释放所有按键",LF.BLE_HID_CONSUMER_BUTTONS_HELPURL="",LF.BLE_HID_CONSUMER_BUTTONS_TOOLTIP="",LF.BLE_HID_CONSUMER_BUTTONS_MESSAGE0="遥控器键 %1",LF.BLE_HID_CONSUMER_SEND_HELPURL="",LF.BLE_HID_CONSUMER_SEND_TOOLTIP="",LF.BLE_HID_CONSUMER_SEND_MESSAGE0="BLE HID 遥控器点击 %1",LF.BLE_SETUP_IBEACON_HELPURL="",LF.BLE_SETUP_IBEACON_TOOLTIP="",LF.BLE_SETUP_IBEACON_MESSAGE0="构建 BLE iBeacon设备 %1 UUID %2 major %3 minor %4",LF.BLE_IBEACON_ADVERTISE_HELPURL="",LF.BLE_IBEACON_ADVERTISE_TOOLTIP="",LF.BLE_IBEACON_ADVERTISE_MESSAGE0="BLE iBeacon设备 %1",LF.MPYTHON_PARROT_GET_BATTERY_LEVEL_HELPURL="",LF.MPYTHON_PARROT_GET_BATTERY_LEVEL_TOOLTIP="返回电量,单位mV",LF.MPYTHON_PARROT_GET_BATTERY_LEVEL_MESSAGE0="拓展板的电压值(mV)",LF.MPYTHON_BLUEBIT_IR_ENCODE_RAW_HELPURL="",LF.MPYTHON_BLUEBIT_IR_ENCODE_RAW_TOOLTIP="返回编码后的红外脉冲数据buff",LF.MPYTHON_BLUEBIT_IR_ENCODE_RAW_MESSAGE0="拓展板 红外脉冲任意编码 %1 载波频率(Hz) %2 code总数 %3 循环码位置 %4 code列表 %5 编码波形数据 %6",LF.MPYTHON_BLUEBIT_IR_ENCODE_NEC_HELPURL="",LF.MPYTHON_BLUEBIT_IR_ENCODE_NEC_TOOLTIP="返回编码后的红外脉冲数据buff\n用户码:0~255\n命令码:0~255",LF.MPYTHON_BLUEBIT_IR_ENCODE_NEC_MESSAGE0="拓展板 红外脉冲NEC编码 %1 用户码 %2 命令码 %3",LF.MPYTHON_BLUEBIT_IR_SEND_HELPURL="",LF.MPYTHON_BLUEBIT_IR_SEND_TOOLTIP="",LF.MPYTHON_BLUEBIT_IR_SEND_MESSAGE0="拓展板 发送红外脉冲数据 %1 %2",LF.MPYTHON_BLUEBIT_IR_SEND_REPEAT_0="只发一次",LF.MPYTHON_BLUEBIT_IR_SEND_REPEAT_1="持续发送",LF.MPYTHON_BLUEBIT_IR_STOP_SEND_HELPURL="",LF.MPYTHON_BLUEBIT_IR_STOP_SEND_TOOLTIP="当发送重复码后,使用此函数来停止发送。",LF.MPYTHON_BLUEBIT_IR_STOP_SEND_MESSAGE0="拓展板 停止发送红外脉冲数据",LF.MPYTHON_BLUEBIT_IR_LEARN_HELPURL="",LF.MPYTHON_BLUEBIT_IR_LEARN_TOOLTIP="学习开始后,需等待4秒,之后返回学习结果。";LF.MPYTHON_BLUEBIT_IR_LEARN_MESSAGE0="拓展板 开始红外学习",LF.MPYTHON_BLUEBIT_IR_GET_LEARN_STATUS_HELPURL="",LF.MPYTHON_BLUEBIT_IR_GET_LEARN_STATUS_TOOLTIP="",LF.MPYTHON_BLUEBIT_IR_GET_LEARN_STATUS_MESSAGE0="拓展板 红外学习有结果 ?",LF.MPYTHON_BLUEBIT_IR_GET_LEARN_DATA_HELPURL="",LF.MPYTHON_BLUEBIT_IR_GET_LEARN_DATA_TOOLTIP="返回学习后的“红外编码数据”,须在 learn 函数后使用。",LF.MPYTHON_BLUEBIT_IR_GET_LEARN_DATA_MESSAGE0="拓展板 学习到的红外编码数据",LF.MPYTHON_MLX90615_SET_HELPURL="",LF.MPYTHON_MLX90615_SET_MESSAGE0="MLX90615 非接触测温传感器 设置发射系数%1",LF.MPYTHON_MLX90615_SET_TOOLTIP="",LF.MPYTHON_MLX90615_GET_HELPURL="",LF.MPYTHON_MLX90615_GET_MESSAGE0="MLX90615 非接触测温传感器 获取系数",LF.MPYTHON_MLX90615_GET_TOOLTIP="",LF.MPYTHON_MLX90615_THERMOMETRY_HELPURL="",LF.MPYTHON_MLX90615_THERMOMETRY_MESSAGE0="MLX90615 非接触测温传感器 获取测温",LF.MPYTHON_MLX90615_THERMOMETRY_TOOLTIP="",LF.MPYTHON_MQ135_INIT_HELPURL="",LF.MPYTHON_MQ135_INIT_MESSAGE0="MQ135初始化 输出引脚%1 温度%2 ℃ 湿度%3 %",LF.MPYTHON_MQ135_INIT_TOOLTIP="MQ135上的VCC 连接扩展板的电源口 V ,GND连接扩展板的地线口 G ,AO输出连接扩展板的引脚 P0/P1(即选引脚)\nMQ135主要用于检测空气中的二氧化碳、酒精、苯、氮氧化物、氨等气体的浓度",LF.MPYTHON_MQ135_OPTIONS_MESSAGE0="MQ135 返回 %1",LF.MPYTHON_MQ135_OPTIONS_HELPURL="",LF.MPYTHON_MQ135_OPTIONS_TOOLTIP="返回探测到的二氧化碳的百万分之一(假设只有空气中的二氧化碳) ppm浓度",LF.MPYTHON_MQ135_GET_RZERO="校正传感器电阻",LF.MPYTHON_MQ135_GET_CORRECTED_RZERO="校正传感器电阻(校准温度、湿度)",LF.MPYTHON_MQ135_GET_PPM="二氧化碳、酒精、苯、氮氧化物、氨等气体ppm浓度",LF.MPYTHON_MQ135_GET_CORRECTED_PPM="二氧化碳、酒精、苯、氮氧化物、氨等气体ppm浓度(校准温度、湿度)",LF.mpython_gyroscope_get_HELPURL="",LF.mpython_gyroscope_get_MESSAGE0="%1 轴角速度",LF.mpython_gyroscope_get_TOOLTIP="v2.3版本以上掌控版适用",LF.MPYTHON_GYROSCOPE_RANGE_16_DPS="±16dps",LF.MPYTHON_GYROSCOPE_RANGE_32_DPS="±32dps",LF.MPYTHON_GYROSCOPE_RANGE_64_DPS="±64dps",LF.MPYTHON_GYROSCOPE_RANGE_128_DPS="±128dps",LF.MPYTHON_GYROSCOPE_RANGE_256_DPS="±256dps",LF.MPYTHON_GYROSCOPE_RANGE_512_DPS="±512dps",LF.MPYTHON_GYROSCOPE_RANGE_1024_DPS="±1024dps",LF.MPYTHON_GYROSCOPE_RANGE_2048_DPS="±2048dps",LF.MPYTHON_GYROSCOPE_SET_RANGE_HELPURL="",LF.MPYTHON_GYROSCOPE_SET_RANGE_TOOLTIP="设置角速度范围,默认为 ±256dps。仅适用于掌控板2.3及以上版本",LF.MPYTHON_GYROSCOPE_SET_RANGE_MESSAGE0="设置角速度范围为 %1",LF.MPYTHON_GYROSCOPE_SET_OFFSET_HELPURL="",LF.MPYTHON_GYROSCOPE_SET_OFFSET_TOOLTIP="校准陀螺仪角速度计的3个轴(x,y,z)的角速度值偏差。\n一般情况下无需校准,只有遇到角速度偏差较大时才要校准。\n x , y , z 为调整偏差值,可修正范围为 ±1024dps。\n注意:v2.3版本以后适用",LF.MPYTHON_GYROSCOPE_SET_OFFSET_MESSAGE0="校准角速度值 %1 X轴偏差 %2 Y轴偏差 %3 Z轴偏差 %4";const RF=LF,rF={TEXT_IS_NUMBER_HELPURL:"",TEXT_IS_NUMBER_TOOLTIP:"",TEXT_IS_NUMBER_MESSAGE0:"%1 %2",TEXT_IS_DIGIT:"是數字",TEXT_IS_ALPHA:"是字母",TEXT_IS_ALNUM:"是數字和字母的組合",TEXT_LIST_START:"初始化列表 [",TEXT_LIST_END:"]",TEXT_TUPLE_START:"初始化元組 (",TEXT_TUPLE_END:")",TEXT_DICT_START:"初始化字典 {",TEXT_DICT_END:"}",TEXT_SET_START:"初始化集合 {",TEXT_SET_END:"}",TEXT_SET_HELPURL:"https://mpythonx.readthedocs.io/zh_CN/latest/index.html",ADD_COMMENT:"添加註釋",CHANGE_VALUE_TITLE:"更改值:",CLEAN_UP:"整理塊",COLLAPSE_ALL:"折疊塊",COLLAPSE_BLOCK:"折疊塊",COLOUR_BLEND_COLOUR1:"顏色1",COLOUR_BLEND_COLOUR2:"顏色2",COLOUR_BLEND_HELPURL:"http://meyerweb.com/eric/tools/color-blend/",COLOUR_BLEND_RATIO:"比例",COLOUR_BLEND_TITLE:"混合",COLOUR_BLEND_TOOLTIP:"用一個給定的比率(0.0-1.0)混合兩種顏色。",COLOUR_PICKER_HELPURL:"https://zh.wikipedia.org/wiki/顏色",COLOUR_PICKER_TOOLTIP:"從調色板中選擇一種顏色。",COLOUR_RANDOM_HELPURL:"http://randomcolour.com",COLOUR_RANDOM_TITLE:"隨機顏色",COLOUR_RANDOM_TOOLTIP:"隨機選擇一種顏色。",COLOUR_RGB_BLUE:"藍色",COLOUR_RGB_GREEN:"綠色",COLOUR_RGB_HELPURL:"http://www.december.com/html/spec/colorper.html",COLOUR_RGB_RED:"紅色",COLOUR_RGB_TITLE:"顏色",COLOUR_RGB_TOOLTIP:"通過指定紅色、綠色和藍色的量創建一種顏色。所有的值必須介於0和100之間。",CONTROLS_FLOW_STATEMENTS_HELPURL:"https://github.com/google/blockly/wiki/Loops#loop-termination-blocks",CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK:"中斷循環",CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE:"繼續下一次循環",CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK:"中斷包含它的循環。",CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE:"跳過這個循環的剩余部分,並繼續下一次叠代。",CONTROLS_FLOW_STATEMENTS_WARNING:"警告:此塊僅可用於在一個循環內。",CONTROLS_FOREACH_HELPURL:"https://github.com/google/blockly/wiki/Loops#for-each",CONTROLS_FOREACH_TITLE:"為每個項目 %1 在列表中 %2",CONTROLS_FOREACH_TOOLTIP:"遍歷每個列表中的項目,將變量“%1”設定到該項中,然後執行某些語句。",CONTROLS_FOR_HELPURL:"https://github.com/google/blockly/wiki/Loops#count-with",CONTROLS_FOR_TITLE:"使用 %1 從範圍 %2 到 %3 每隔 %4",CONTROLS_FOR_TOOLTIP:"從起始數到結尾數中取出變量“%1”的值,按指定的時間間隔,執行指定的塊。",CONTROLS_IF_ELSEIF_TOOLTIP:"在if語句塊中增加一個條件。",CONTROLS_IF_ELSE_TOOLTIP:"添加一個最終的,包括所有情況的節到if塊中。",CONTROLS_IF_HELPURL:"https://github.com/google/blockly/wiki/IfElse",TRY_EXCEPT_HELPURL:"https://mpythonx.readthedocs.io/zh_CN/latest/index.html",CONTROLS_IF_IF_TOOLTIP:"增加、刪除或重新排列各節來重新配置“if”塊。",CONTROLS_IF_MSG_ELSE:"否則",CONTROLS_IF_MSG_ELSEIF:"否則如果",TRY_EXCEPT_FINALLY:"finally",TRY_EXCEPT_FINALLY_TOOLTIP:"",TRY_EXCEPT_EXCEPT:"except",TRY_EXCEPT_EXCEPT_TOOLTIP:"",TRY_EXCEPT_TRY:"try",TRY_EXCEPT_TRY_TOOLTIP:"",CONTROLS_IF_MSG_IF:"如果",CONTROLS_IF_TOOLTIP_1:"如果值為真,執行一些語句。",CONTROLS_IF_TOOLTIP_2:"如果值為真,則執行第一塊語句。否則,則執行第二塊語句。",CONTROLS_IF_TOOLTIP_3:"如果第一個值為真,則執行第一塊的語句。否則,如果第二個值為真,則執行第二塊的語句。",CONTROLS_IF_TOOLTIP_4:"如果第一個值為真,則執行第一塊對語句。否則,如果第二個值為真,則執行語句的第二塊。如果沒有值為真,則執行最後一塊的語句。",CONTROLS_REPEAT_FOREVER:"一直重復",CONTROLS_REPEAT_FOREVER_TOOLTIP:"一直執行一些語句。",CONTROLS_REPEAT_HELPURL:"https://zh.wikipedia.org/wiki/For循環",CONTROLS_REPEAT_INPUT_DO:"",CONTROLS_REPEAT_TITLE:"重復 %1 次",CONTROLS_REPEAT_TOOLTIP:"多次執行一些語句。",CONTROLS_WHILEUNTIL_HELPURL:"https://github.com/google/blockly/wiki/Loops#repeat",CONTROLS_WHILEUNTIL_OPERATOR_UNTIL:"重復直到",CONTROLS_WHILEUNTIL_OPERATOR_WHILE:"重復當",CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL:"只要值為假,執行一些語句。",CONTROLS_WHILEUNTIL_TOOLTIP_WHILE:"只要值為真,執行一些語句。",DELETE_ALL_BLOCKS:"刪除所有%1塊嗎?",DELETE_BLOCK:"刪除塊",DELETE_VARIABLE:"刪除“%1”變量",DELETE_VARIABLE_CONFIRMATION:"刪除“%2”變量的%1種用途麽?",DELETE_X_BLOCKS:"刪除塊",DISABLE_BLOCK:"禁用塊",DUPLICATE_BLOCK:"復制",ENABLE_BLOCK:"啟用塊",EXPAND_ALL:"展開塊",EXPAND_BLOCK:"展開塊",EXTERNAL_INPUTS:"多行輸入",HELP:"幫助",INLINE_INPUTS:"單行輸入",LISTS_CREATE_EMPTY_HELPURL:"https://github.com/google/blockly/wiki/Lists#create-empty-list",LISTS_CREATE_EMPTY_TITLE:"創建空列表",TUPLE_CREATE_EMPTY_TITLE:"創建空元組",DICT_CREATE_EMPTY_TITLE:"創建空字典",SET_CREATE_EMPTY_TITLE:"創建空集合",LISTS_CREATE_EMPTY_TOOLTIP:"返回一個列表,長度為 0,不包含任何數據記錄",LISTS_CREATE_WITH_CONTAINER_TITLE_ADD:"列表",TUPLE_CREATE_WITH_CONTAINER_TITLE_ADD:"元組",DICT_CREATE_WITH_CONTAINER_TITLE_ADD:"字典",SET_CREATE_WITH_CONTAINER_TITLE_ADD:"集合",LISTS_CREATE_WITH_CONTAINER_TOOLTIP:"增加、刪除或重新排列各部分以此重新配置這個列表塊。",TUPLE_CREATE_WITH_CONTAINER_TOOLTIP:"增加、刪除或重新排列各部分以此重新配置這個元組塊。",DICT_CREATE_WITH_CONTAINER_TOOLTIP:"增加、刪除或重新排列各部分以此重新配置這個字典塊。",SET_CREATE_WITH_CONTAINER_TOOLTIP:"增加、刪除或重新排列各部分以此重新配置這個集合塊。",LISTS_CREATE_WITH_HELPURL:"https://github.com/google/blockly/wiki/Lists#create-list-with",LISTS_CREATE_WITH_INPUT_WITH:"初始化列表",TUPLE_CREATE_WITH_INPUT_WITH:"初始化元組",DICT_CREATE_WITH_INPUT_WITH:"初始化字典",SET_CREATE_WITH_INPUT_WITH:"初始化集合",LISTS_CREATE_WITH_ITEM_TOOLTIP:"將一個項添加到列表中。",TUPLE_CREATE_WITH_ITEM_TOOLTIP:"將一個項添加到元組中。",DICT_CREATE_WITH_ITEM_TOOLTIP:"將一個項添加到字典中。",SET_CREATE_WITH_ITEM_TOOLTIP:"將一個項添加到集合中。",LISTS_CREATE_WITH_TOOLTIP:"建立一個具有任意數量項目的列表。",LISTS_GET_INDEX_FIRST:"第一",LISTS_GET_INDEX_FROM_END:"倒數第",LISTS_GET_INDEX_FROM_START:"第",LISTS_GET_INDEX_GET:"獲得",LISTS_GET_INDEX_GET_REMOVE:"取出並移除",LISTS_GET_INDEX_LAST:"最後",LISTS_GET_INDEX_RANDOM:"隨機",LISTS_GET_INDEX_REMOVE:"移除",LISTS_POP_HELPURL:"",LISTS_POP_TOOLTIP:"",LISTS_POP_MESSAGE0:"在列表 %1 中移除 %2 項",LISTS_GET_INDEX_TAIL:"",LISTS_GET_INDEX_TOOLTIP_GET_FIRST:"返回列表中的第一個項目。",LISTS_GET_INDEX_TOOLTIP_GET_FROM:"返回在列表中的指定位置的項。",LISTS_GET_INDEX_TOOLTIP_GET_LAST:"返回列表中的最後一項。",LISTS_GET_INDEX_TOOLTIP_GET_RANDOM:"隨機返回列表中的一個項目。",LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST:"移除並返回列表中的第一個項目。",LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM:"移除並返回列表中的指定位置的項。",LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST:"移除並返回列表中的最後一個項目。",LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM:"移除並返回列表中的一個隨機項目中。",LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST:"移除列表中的第一項",LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM:"移除在列表中的指定位置的項。",LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST:"移除列表中的最後一項",LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM:"刪除列表中的一個隨機的項。",LISTS_GET_SUBLIST_END_FROM_END:"到倒數第#",LISTS_GET_SUBLIST_END_FROM_START:"到#",LISTS_GET_SUBLIST_END_LAST:"到最後",LISTS_GET_SUBLIST_HELPURL:"https://github.com/google/blockly/wiki/Lists#getting-a-sublist",LISTS_GET_SUBLIST_START_FIRST:"從頭獲得子列表",LISTS_GET_SUBLIST_START_FROM_END:"從倒數#取得子列表",LISTS_GET_SUBLIST_START_FROM_START:"從#取得子列表",LISTS_GET_SUBLIST_TAIL:"",LISTS_GET_SUBLIST_TOOLTIP:"復制列表中指定的部分。",LISTS_INDEX_FROM_END_TOOLTIP:"%1是最後一項。",LISTS_INDEX_FROM_START_TOOLTIP:"%1是第一個項目。",LISTS_INDEX_OF_FIRST:"找出第一個項出現",LISTS_INDEX_OF_HELPURL:"https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list",LISTS_INDEX_OF_LAST:"找出最後一個項出現",LISTS_INDEX_OF_TOOLTIP:"返回在列表中的第一/最後一個匹配項的索引值。如果找不到項目則返回0",LISTS_INLIST:"在列表中",LISTS_ISEMPTY_HELPURL:"https://github.com/google/blockly/wiki/Lists#is-empty",LISTS_ISEMPTY_TITLE:"%1是空的",LISTS_ISEMPTY_TOOLTIP:"如果改列表為空,則返回真。",LISTS_LENGTH_HELPURL:"https://github.com/google/blockly/wiki/Lists#length-of",LISTS_LENGTH_TITLE:"%1的長度",LISTS_LENGTH_TOOLTIP:"返回列表的長度。",LISTS_REPEAT_HELPURL:"https://github.com/google/blockly/wiki/Lists#create-list-with",LISTS_REPEAT_TITLE:"建立列表 項 %1 重復 %2 次",LISTS_REPEAT_TOOLTIP:"建立包含指定重復次數的值的列表。",LISTS_SET_INDEX_HELPURL:"https://github.com/google/blockly/wiki/Lists#in-list--set",LISTS_SET_INDEX_INPUT_TO:"為",LISTS_SET_INDEX_INSERT:"插入在",LISTS_SET_INDEX_SET:"設置",LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST:"在列表的起始處添加該項。",LISTS_SET_INDEX_TOOLTIP_INSERT_FROM:"插入在列表中指定位置的項。",LISTS_SET_INDEX_TOOLTIP_INSERT_LAST:"將該項追加到列表的末尾。",LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM:"在列表中隨機插入項。",LISTS_SET_INDEX_TOOLTIP_SET_FIRST:"設置列表中的第一個項目。",LISTS_SET_INDEX_TOOLTIP_SET_FROM:"設置在列表中指定位置的項。",LISTS_SET_INDEX_TOOLTIP_SET_LAST:"設置列表中的最後一項。",LISTS_SET_INDEX_TOOLTIP_SET_RANDOM:"設置列表中一個隨機的項目。",LISTS_SORT_HELPURL:"https://github.com/google/blockly/wiki/Lists#sorting-a-list",LISTS_SORT_ORDER_ASCENDING:"升序",LISTS_SORT_ORDER_DESCENDING:"降序",LISTS_SORT_TITLE:"排序%1 %2 %3",LISTS_SORT_TOOLTIP:"排序一個列表的拷貝。",LISTS_SORT_TYPE_IGNORECASE:"按字母排序,忽略大小寫",LISTS_SORT_TYPE_NUMERIC:"按數字排序",LISTS_SORT_TYPE_TEXT:"按字母排序",LISTS_SPLIT_HELPURL:"https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists",LISTS_SPLIT_LIST_FROM_TEXT:"從文本制作列表",LISTS_SPLIT_TEXT_FROM_LIST:"從列表組合文本",LISTS_SPLIT_TOOLTIP_JOIN:"加入文本列表至一個文本,由分隔符分隔。",LISTS_SPLIT_TOOLTIP_SPLIT:"拆分文本到文本列表,按每個分隔符拆分。",LISTS_SPLIT_WITH_DELIMITER:"用分隔符",LOGIC_BOOLEAN_FALSE:"假",LOGIC_BOOLEAN_HELPURL:"https://github.com/google/blockly/wiki/Logic#values",LOGIC_BOOLEAN_TOOLTIP:"返回真或假。",LOGIC_BOOLEAN_TRUE:"真",LOGIC_COMPARE_HELPURL:"https://zh.wikipedia.org/wiki/不等",LOGIC_COMPARE_TOOLTIP_EQ:"如果兩個輸入結果相等,則返回真。",LOGIC_COMPARE_TOOLTIP_GT:"如果第一個輸入結果比第二個大,則返回真。",LOGIC_COMPARE_TOOLTIP_GTE:"如果第一個輸入結果大於或等於第二個輸入結果,則返回真。",LOGIC_COMPARE_TOOLTIP_LT:"如果第一個輸入結果比第二個小,則返回真。",LOGIC_COMPARE_TOOLTIP_LTE:"如果第一個輸入結果小於或等於第二個輸入結果,則返回真。",LOGIC_COMPARE_TOOLTIP_NEQ:"如果兩個輸入結果不相等,則返回真。",LOGIC_NEGATE_HELPURL:"https://github.com/google/blockly/wiki/Logic#not",LOGIC_NEGATE_TITLE:"非%1",LOGIC_NEGATE_TOOLTIP:"如果輸入結果為假,則返回真;如果輸入結果為真,則返回假。",LOGIC_NULL:"空",LOGIC_NULL_HELPURL:"https://en.wikipedia.org/wiki/Nullable_type",LOGIC_NULL_TOOLTIP:"返回空值。",LOGIC_OPERATION_AND:"和",LOGIC_OPERATION_HELPURL:"https://github.com/google/blockly/wiki/Logic#logical-operations",LOGIC_OPERATION_OR:"或",LOGIC_OPERATION_TOOLTIP_AND:"如果兩個輸入結果都為真,則返回真。",LOGIC_OPERATION_TOOLTIP_OR:"如果至少有一個輸入結果為真,則返回真。",LOGIC_TERNARY_CONDITION:"測試",LOGIC_TERNARY_HELPURL:"https://zh.wikipedia.org/wiki/條件運算符",LOGIC_TERNARY_IF_FALSE:"如果為假",LOGIC_TERNARY_IF_TRUE:"如果為真",LOGIC_TERNARY_TOOLTIP:"檢查“test”中的條件。如果條件為真,則返回“if true”的值,否則,則返回“if false”的值。",MATH_ADDITION_SYMBOL:"+",MATH_ARITHMETIC_HELPURL:"https://zh.wikipedia.org/wiki/算術",MATH_ARITHMETIC_TOOLTIP_ADD:"返回兩個數字的和。",MATH_ARITHMETIC_TOOLTIP_DIVIDE:"返回兩個數字的商。",MATH_ARITHMETIC_TOOLTIP_MINUS:"返回兩個數字的區別。",MATH_ARITHMETIC_TOOLTIP_MULTIPLY:"返回兩個數字的乘積。",MATH_ARITHMETIC_TOOLTIP_POWER:"返回第一個數的第二個數次冪。",MATH_CHANGE_HELPURL:"https://zh.wikipedia.org/wiki/%E5%8A%A0%E6%B3%95",MATH_CHANGE_TITLE:"將變量 %1 的值增加 %2",MATH_CHANGE_TOOLTIP:"將一個數添加到變量“%1”。",MATH_CONSTANT_HELPURL:"https://zh.wikipedia.org/wiki/數學常數",MATH_CONSTANT_TOOLTIP:"返回一個常見常量:π (3.141......),e (2.718...)、φ (1.618...)、 sqrt(2) (1.414......)、sqrt(½) (0.707......)或 ∞(無窮大)。",MATH_CONSTRAIN_HELPURL:"https://en.wikipedia.org/wiki/Clamping_%28graphics%29",MATH_CONSTRAIN_TITLE:"限制數字 %1 介於 (低) %2 到 (高) %3",MATH_CONSTRAIN_TOOLTIP:"限制數字介於兩個指定的數字之間",MATH_CONVERT_HELPURL:"",MATH_CONVERT_MESSAGE0:"%1 %2",MATH_CONVERT_TOOLTIP:"強制轉換數據類型",MATH_DIVISION_CONSULT_HELPURL:"",MATH_DIVISION_CONSULT_TITLE:"%1 ÷ %2 商的整數部分",MATH_DIVISION_CONSULT_TOOLTIP:"",MATH_DIVISION_SYMBOL:"÷",MATH_IS_DIVISIBLE_BY:"可被整除",MATH_IS_EVEN:"是偶數",MATH_IS_NEGATIVE:"為負",MATH_IS_ODD:"是奇數",MATH_IS_POSITIVE:"為正",MATH_IS_PRIME:"是質數",MATH_IS_TOOLTIP:"如果數字是偶數、奇數、非負整數、正數、負數或如果它可被某數字整除,則返回真或假。",MATH_IS_WHOLE:"為整數",MATH_MODULO_HELPURL:"https://zh.wikipedia.org/wiki/模除",MATH_MODULO_TITLE:"%1 ÷ %2 的余數",MATH_MODULO_TOOLTIP:"返回這兩個數字相除後的余數。",MATH_MULTIPLICATION_SYMBOL:"×",MATH_NUMBER_BITS_OPS_HELPURL:"",MATH_NUMBER_BITS_OPS_MESSAGE0:"%1 %2 %3",MATH_NUMBER_BITS_OPS_TOOLTIP:"對數字進行位運算",MATH_NUMBER_HELPURL:"https://zh.wikipedia.org/wiki/數",MATH_NUMBER_TOOLTIP:"一個數字。",MATH_ONLIST_HELPURL:"",MATH_ONLIST_OPERATOR_AVERAGE:"列表中的平均數",MATH_ONLIST_OPERATOR_MAX:"列表中的最大值",MATH_ONLIST_OPERATOR_MEDIAN:"列表中位數",MATH_ONLIST_OPERATOR_MIN:"列表中的最小值",MATH_ONLIST_OPERATOR_MODE:"列表模式",MATH_ONLIST_OPERATOR_RANDOM:"列表的隨機項",MATH_ONLIST_OPERATOR_STD_DEV:"列表中的標準差",MATH_ONLIST_OPERATOR_SUM:"列表中的數的總和",MATH_ONLIST_TOOLTIP_AVERAGE:"返回列表中的數值的平均值。",MATH_ONLIST_TOOLTIP_MAX:"返回列表中最大數。",MATH_ONLIST_TOOLTIP_MEDIAN:"返回列表中的中位數。",MATH_ONLIST_TOOLTIP_MIN:"返回列表中最小數。",MATH_ONLIST_TOOLTIP_MODE:"返回列表中的最常見的項的列表。",MATH_ONLIST_TOOLTIP_RANDOM:"從列表中返回一個隨機的元素。",MATH_ONLIST_TOOLTIP_STD_DEV:"返回列表的標準偏差。",MATH_ONLIST_TOOLTIP_SUM:"返回列表中的所有數字的和。",MATH_POWER_SYMBOL:"**",MATH_RANDOM_FLOAT_HELPURL:"https://zh.wikipedia.org/wiki/隨機數生成器",MATH_RANDOM_FLOAT_TITLE_RANDOM:"隨機小數",MATH_RANDOM_FLOAT_TOOLTIP:"返回介於(包含)0.0到1.0之間的隨機數。",MATH_RANDOM_INT_HELPURL:"https://zh.wikipedia.org/wiki/隨機數生成器",MATH_RANDOM_INT_TITLE:"從 %1 到 %2 之間的隨機整數",MATH_RANDOM_INT_TOOLTIP:"返回兩個指定的範圍(含)之間的隨機整數。",MATH_ROUND_HELPURL:"https://zh.wikipedia.org/wiki/數值修約",MATH_ROUND_OPERATOR_ROUND:"四舍五入",MATH_ROUND_OPERATOR_ROUNDDOWN:"向下舍入",MATH_ROUND_OPERATOR_ROUNDUP:"向上舍入",MATH_ROUND_TOOLTIP:"數字向上或向下舍入。",MATH_SINGLE_HELPURL:"https://zh.wikipedia.org/wiki/平方根",MATH_SINGLE_OP_ABSOLUTE:"絕對",MATH_SINGLE_OP_ROOT:"平方根",MATH_SINGLE_TOOLTIP_ABS:"返回一個數的絕對值。",MATH_SINGLE_TOOLTIP_EXP:"返回數的e次冪。",MATH_SINGLE_TOOLTIP_LN:"返回一個數的自然對數。",MATH_SINGLE_TOOLTIP_LOG10:"返回數字的對數。",MATH_SINGLE_TOOLTIP_NEG:"返回數的邏輯非。",MATH_SINGLE_TOOLTIP_POW10:"返回數的10次冪。",MATH_SINGLE_TOOLTIP_ROOT:"返回數的平方根。",MATH_SUBTRACTION_SYMBOL:"-",MATH_TRIG_ACOS:"acos",MATH_TRIG_ASIN:"asin",MATH_TRIG_ATAN:"atan",MATH_TRIG_COS:"cos",MATH_TRIG_HELPURL:"https://zh.wikipedia.org/wiki/三角函數",MATH_TRIG_SIN:"sin",MATH_TRIG_TAN:"tan",MATH_TRIG_TOOLTIP_ACOS:"返回一個數的反余弦值。",MATH_TRIG_TOOLTIP_ASIN:"返回一個數的反正弦值。",MATH_TRIG_TOOLTIP_ATAN:"返回指定角度的反正切值。",MATH_TRIG_TOOLTIP_COS:"返回指定角度的余弦值(非弧度)。",MATH_TRIG_TOOLTIP_SIN:"返回指定角度的正弦值(非弧度)。",MATH_TRIG_TOOLTIP_TAN:"返回指定角度的正切值(非弧度)。",NEW_VARIABLE:"創建變量...",NEW_VARIABLE_TITLE:"新變量的名稱:",ORDINAL_NUMBER_SUFFIX:"",PROCEDURES_ALLOW_STATEMENTS:"允許聲明",PROCEDURES_BEFORE_PARAMS:"參數:",PROCEDURES_CALLNORETURN_HELPURL:"https://zh.wikipedia.org/wiki/子程序",PROCEDURES_CALLNORETURN_TOOLTIP:"運行用戶定義的函數“%1”。",PROCEDURES_CALLRETURN_HELPURL:"https://zh.wikipedia.org/wiki/子程序",PROCEDURES_CALLRETURN_TOOLTIP:"運行用戶定義的函數“%1”,並使用它的輸出值。",PROCEDURES_CALL_BEFORE_PARAMS:"與:",PROCEDURES_CREATE_DO:"創建“%1”",PROCEDURES_DEFNORETURN_COMMENT:"",PROCEDURES_DEFNORETURN_DO:"",PROCEDURES_DEFNORETURN_HELPURL:"https://zh.wikipedia.org/wiki/子程序",PROCEDURES_DEFNORETURN_PROCEDURE:"my_func",PROCEDURES_DEFNORETURN_TITLE:"定義函數",PROCEDURES_DEFNORETURN_TOOLTIP:"創建一個不帶輸出值的函數。",PROCEDURES_DEFRETURN_HELPURL:"https://zh.wikipedia.org/wiki/子程序",PROCEDURES_DEFRETURN_RETURN:"返回",PROCEDURES_DEFRETURN_TOOLTIP:"創建一個有輸出值的函數。",PROCEDURES_DEF_DUPLICATE_WARNING:"警告: 此函數具有重復參數。",PROCEDURES_HIGHLIGHT_DEF:"突出顯示函數定義",PROCEDURES_IFRETURN_HELPURL:"http://c2.com/cgi/wiki?GuardClause",PROCEDURES_IFRETURN_TOOLTIP:"如果值為真,則返回第二個值。",PROCEDURES_IFRETURN_WARNING:"警告: 僅在定義函數內可使用此塊。",PROCEDURES_MUTATORARG_TITLE:"輸入名稱:",PROCEDURES_MUTATORARG_TOOLTIP:"添加函數輸入。",PROCEDURES_MUTATORCONTAINER_TITLE:"輸入",PROCEDURES_MUTATORCONTAINER_TOOLTIP:"添加、刪除或重新排此函數的輸入。",REDO:"重做",REMOVE_COMMENT:"刪除註釋",RENAME_VARIABLE:"重命名變量...",RENAME_VARIABLE_TITLE:"將所有“%1”變量重命名為:",TEXT_APPEND_APPENDTEXT:"追加文本",TEXT_APPEND_HELPURL:"https://github.com/google/blockly/wiki/Text#text-modification",TEXT_APPEND_TO:"",TEXT_APPEND_TOOLTIP:"將一些文本追加到變量“%1”。",TEXT_CHANGECASE_HELPURL:"https://github.com/google/blockly/wiki/Text#adjusting-text-case",TEXT_CHANGECASE_OPERATOR_LOWERCASE:"轉為小寫",TEXT_CHANGECASE_OPERATOR_TITLECASE:"轉為首字母大寫",TEXT_CHANGECASE_OPERATOR_UPPERCASE:"轉為大寫",TEXT_CHANGECASE_TOOLTIP:"使用不同的大小寫復制這段文字。",TEXT_CHARAT_FIRST:"獲得第一個字符",TEXT_CHARAT_FROM_END:"獲得倒數第#個字符",TEXT_CHARAT_FROM_START:"獲得字符#",TEXT_CHARAT_HELPURL:"https://github.com/google/blockly/wiki/Text#extracting-text",TEXT_CHARAT_INPUT_INTEXT:"從文本",TEXT_CHARAT_LAST:"獲得最後一個字符",TEXT_CHARAT_RANDOM:"獲取隨機的字母",TEXT_CHARAT_TAIL:"",TEXT_CHARAT_TOOLTIP:"返回位於指定位置的字母。",TEXT_CREATE_JOIN_ITEM_TOOLTIP:"將一個項添加到文本中。",TEXT_CREATE_JOIN_TITLE_JOIN:"加入",TEXT_CREATE_JOIN_TOOLTIP:"添加、移除或重新排列各節來重新配置這個文本塊。",TEXT_GET_SUBSTRING_END_FROM_END:"到倒數第#個字符",TEXT_GET_SUBSTRING_END_FROM_START:"到字符#",TEXT_GET_SUBSTRING_END_LAST:"到最後一個字符",TEXT_GET_SUBSTRING_HELPURL:"https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text",TEXT_GET_SUBSTRING_INPUT_IN_TEXT:"從文本",TEXT_GET_SUBSTRING_START_FIRST:"取得一段字串自第一個字符",TEXT_GET_SUBSTRING_START_FROM_END:"取得一段字串自倒數第#個字符",TEXT_GET_SUBSTRING_START_FROM_START:"取得一段字串自#",TEXT_GET_SUBSTRING_TAIL:"",TEXT_GET_SUBSTRING_TOOLTIP:"返回指定的部分文本。",TEXT_INDEXOF_HELPURL:"https://github.com/google/blockly/wiki/Text#finding-text",TEXT_INDEXOF_INPUT_INTEXT:"在文本",TEXT_INDEXOF_OPERATOR_FIRST:"中查找 最先 出現",TEXT_INDEXOF_OPERATOR_LAST:"中查找 最後 出現",TEXT_INDEXOF_TAIL:"的位置",TEXT_INDEXOF_TOOLTIP:"返回在第二個字串中的第一/最後一個匹配項的索引值。如果未找到則返回%1。",TEXT_ISEMPTY_HELPURL:"https://github.com/google/blockly/wiki/Text#checking-for-empty-text",TEXT_ISEMPTY_TITLE:"%1是空的",TEXT_ISEMPTY_TOOLTIP:"如果提供的文本為空,則返回真。",TEXT_JOIN_HELPURL:"https://github.com/google/blockly/wiki/Text#text-creation",TEXT_JOIN_TITLE_CREATEWITH:"轉為文本",TEXT_JOIN_TOOLTIP:"通過串起任意數量的項以建立一段文字。",TEXT_LENGTH_HELPURL:"https://github.com/google/blockly/wiki/Text#text-modification",TEXT_LENGTH_TITLE:"%1的長度",TEXT_LENGTH_TOOLTIP:"返回提供文本的字母數(包括空格)。",TEXT_PRINT_HELPURL:"https://github.com/google/blockly/wiki/Text#printing-text",TEXT_PRINT_TITLE:"打印%1",MPYTHON_INPUT_MESSAGE0:"輸入%1",TEXT_PRINT_TOOLTIP:"打印指定的文字、數字或其他值。",TEXT_PROMPT_HELPURL:"https://github.com/google/blockly/wiki/Text#getting-input-from-the-user",TEXT_PROMPT_TOOLTIP_NUMBER:"提示用戶輸入數字。",TEXT_PROMPT_TOOLTIP_TEXT:"提示用戶輸入一些文本。",TEXT_PROMPT_TYPE_NUMBER:"輸入數字並顯示提示消息",TEXT_PROMPT_TYPE_TEXT:"輸入數字並顯示提示消息",TEXT_TEXT_HELPURL:"https://zh.wikipedia.org/wiki/字符串",TEXT_TEXT_TOOLTIP:"一個字母、單詞或一行文本。",TEXT_TRIM_HELPURL:"https://github.com/google/blockly/wiki/Text#trimming-removing-spaces",TEXT_TRIM_OPERATOR_BOTH:"消除兩側空格",TEXT_TRIM_OPERATOR_LEFT:"消除左側空格",TEXT_TRIM_OPERATOR_RIGHT:"消除右側空格",TEXT_TRIM_TOOLTIP:"復制這段文字的同時刪除兩端多余的空格。",TODAY:"今天",UNDO:"撤銷",VARIABLES_DEFAULT_NAME:"item",VARIABLES_GET_CREATE_SET:"創建“設定%1”",VARIABLES_GET_HELPURL:"https://github.com/google/blockly/wiki/Variables#get",VARIABLES_GET_TOOLTIP:"返回此變量的值。",VARIABLES_SET:"將變量 %1 設定為 %2",VARIABLES_SET_CREATE_GET:"創建“獲得%1”",VARIABLES_SET_HELPURL:"https://github.com/google/blockly/wiki/Variables#set",VARIABLES_SET_TOOLTIP:"設置此變量,以使它和輸入值相等。",VARIABLE_ALREADY_EXISTS:"已存在名為“%1”的變量。"};rF.PROCEDURES_DEFRETURN_TITLE=rF.PROCEDURES_DEFNORETURN_TITLE,rF.CONTROLS_IF_IF_TITLE_IF=rF.CONTROLS_IF_MSG_IF,rF.CONTROLS_WHILEUNTIL_INPUT_DO=rF.CONTROLS_REPEAT_INPUT_DO,rF.CONTROLS_IF_MSG_THEN=rF.CONTROLS_REPEAT_INPUT_DO,rF.TRY_EXCEPT_TRY="try",rF.CONTROLS_IF_ELSE_TITLE_ELSE=rF.CONTROLS_IF_MSG_ELSE,rF.CONTROLS_IF_ELSE_TITLE_ELSE=rF.CONTROLS_IF_MSG_ELSE,rF.PROCEDURES_DEFRETURN_PROCEDURE=rF.PROCEDURES_DEFNORETURN_PROCEDURE,rF.LISTS_GET_SUBLIST_INPUT_IN_LIST=rF.LISTS_INLIST,rF.LISTS_GET_INDEX_INPUT_IN_LIST=rF.LISTS_INLIST,rF.PROCEDURES_DEFRETURN_DO=rF.PROCEDURES_DEFNORETURN_DO,rF.CONTROLS_IF_ELSEIF_TITLE_ELSEIF=rF.CONTROLS_IF_MSG_ELSEIF,rF.LISTS_GET_INDEX_HELPURL=rF.LISTS_INDEX_OF_HELPURL,rF.CONTROLS_FOREACH_INPUT_DO=rF.CONTROLS_REPEAT_INPUT_DO,rF.LISTS_SET_INDEX_INPUT_IN_LIST=rF.LISTS_INLIST,rF.CONTROLS_FOR_INPUT_DO=rF.CONTROLS_REPEAT_INPUT_DO,rF.LISTS_CREATE_WITH_ITEM_TITLE=rF.VARIABLES_DEFAULT_NAME,rF.TUPLE_CREATE_WITH_ITEM_TITLE=rF.VARIABLES_DEFAULT_NAME,rF.DICT_CREATE_WITH_ITEM_TITLE=rF.VARIABLES_DEFAULT_NAME,rF.SET_CREATE_WITH_ITEM_TITLE=rF.VARIABLES_DEFAULT_NAME,rF.TEXT_APPEND_VARIABLE=rF.VARIABLES_DEFAULT_NAME,rF.TEXT_CREATE_JOIN_ITEM_TITLE_ITEM=rF.VARIABLES_DEFAULT_NAME,rF.MATH_CHANGE_TITLE_ITEM=rF.VARIABLES_DEFAULT_NAME,rF.LISTS_INDEX_OF_INPUT_IN_LIST=rF.LISTS_INLIST,rF.PROCEDURES_DEFRETURN_COMMENT=rF.PROCEDURES_DEFNORETURN_COMMENT,rF.MPYTHON_MAIN_HELPURL="",rF.MPYTHON_MAIN_TOOLTIP="這個圖形塊不是必須使用。但使用這個圖形塊,能使得程序結構更規整。",rF.MPYTHON_MAIN_MESSAGE0="主程式",rF.MPYTHON_OPEN="開啟",rF.MPYTHON_CLOSE="關閉",rF.MPYTHONBOX_RGB_IMAGE_SHIFT_LEFT="左移",rF.MPYTHONBOX_RGB_IMAGE_SHIFT_RIGHT="右移",rF.MPYTHONBOX_RGB_IMAGE_SHIFT_UP="上移",rF.MPYTHONBOX_RGB_IMAGE_SHIFT_DOWN="下移",rF.MPYTHON_AI_LCD_SHOW_IMAGE_HEAT_GRAYSCALE="灰度",rF.MPYTHON_AI_LCD_SHOW_IMAGE_HEAT_RAINBOW="彩虹",rF.MPYTHON_AI_LCD_SHOW_IMAGE_HEAT_NEGATE="數字反轉",rF.MPYTHON_AI_LCD_SHOW_IMAGE_HEAT_INVERT="黑白翻轉",rF.MPYTHON_AI_LCD_SHOW_IMAGE_DESCARTES_LINPOLAR="線性極",rF.MPYTHON_AI_LCD_SHOW_IMAGE_DESCARTES_LOGPOLAR="對數極",rF.MPYTHON_AI_SENSOR_PATTERN_GRAYSCALE="灰度",rF.MPYTHON_AI_SENSOR_PATTERN_COLOR="彩色",rF.MPYTHON_AI_SENSOR_ENABLE_START="開始抓取圖像",rF.MPYTHON_AI_SENSOR_ENABLE_STOP="停止抓取圖像",rF.MPYTHON_AI_SENSOR_LEVEL_MI_H="水平鏡像",rF.MPYTHON_AI_SENSOR_LEVEL_MI_V="垂直翻轉",rF.MPYTHON_AI_SENSOR_SETS_CONTRAST="對比度",rF.MPYTHON_AI_SENSOR_SETS_BRIGHTNESS="亮度",rF.MPYTHON_AI_SENSOR_SETS_SATURATION="飽和度",rF.MPYTHON_AI2_FACE_YOLO="人臉識別",rF.MPYTHON_AI2_CLASS_20_YOLO="20類識別",rF.MPYTHON_AI_TRACE_COLOR_RECTANGLE="矩形",rF.MPYTHON_AI_TRACE_COLOR_CROSS="十字",rF.TEXT_APPEND_TEXT_HELPURL="",rF.TEXT_APPEND_TEXT_TOOLTIP="",rF.TEXT_APPEND_TEXT_MESSAGE0="%1 追加文本 %2",rF.CHINA_CITY_MESSAGE0="%1 %2",rF.CHINA_CITY_TOWN_MESSAGE0="%1 %2 %3 返回 %4",rF.CHINA_CITY_CNNAME="中文簡稱",rF.CHINA_CITY_PINYIN="拼音",rF.MPYTHON_SENIVERSE_WEATHER_LANGUAGE_1="简体中文",rF.MPYTHON_SENIVERSE_WEATHER_LANGUAGE_2="正體中文",rF.MPYTHON_SENIVERSE_CITY_WEATHER_HELPURL="",rF.MPYTHON_SENIVERSE_CITY_WEATHER_TOOLTIP="",rF.MPYTHON_SENIVERSE_CITY_WEATHER_MESSAGE0="[心知天氣] %1 信息 %2 地理位置 %3 API私鑰 %4 %5 語言 %6 %7 溫度單位 %8",rF.MPYTHON_SENIVERSE_WEATHER_API_1="天氣實況",rF.MPYTHON_SENIVERSE_WEATHER_API_2="3天天氣預報",rF.MPYTHON_SENIVERSE_WEATHER_API_3="6項生活指數",rF.MPYTHON_SENIVERSE_WEATHER_UNIT_1="攝氏度",rF.MPYTHON_SENIVERSE_WEATHER_UNIT_2="華氏度",rF.MPYTHON_DEFINE_SENIVERSE_WEATHER_HELPURL="",rF.MPYTHON_DEFINE_SENIVERSE_WEATHER_TOOLTIP="",rF.MPYTHON_DEFINE_SENIVERSE_WEATHER_MESSAGE0="設定 %1 為 %2",rF.MPYTHON_GET_SENIVERSE_WEATHER_INFO_HELPURL="",rF.MPYTHON_GET_SENIVERSE_WEATHER_INFO_TOOLTIP="",rF.MPYTHON_GET_SENIVERSE_WEATHER_INFO_MESSAGE0="%1 [心知天氣] 通用字段 %2",rF.MPYTHON_GET_SENIVERSE_WEATHER_INFO1_HELPURL="",rF.MPYTHON_GET_SENIVERSE_WEATHER_INFO1_TOOLTIP="",rF.MPYTHON_GET_SENIVERSE_WEATHER_INFO1_MESSAGE0="%1 [心知天氣] 天氣實況 %2",rF.MPYTHON_GET_SENIVERSE_WEATHER_INFO2_HELPURL="",rF.MPYTHON_GET_SENIVERSE_WEATHER_INFO2_TOOLTIP="風向角度,範圍0~360\n風速,單位km/h(當unit=c時)、mph(當unit=f時)",rF.MPYTHON_GET_SENIVERSE_WEATHER_INFO2_MESSAGE0="%1 [心知天氣] 3天天氣預報 %2 的 %3",rF.MPYTHON_GET_SENIVERSE_WEATHER_INFO3_HELPURL="",rF.MPYTHON_GET_SENIVERSE_WEATHER_INFO3_TOOLTIP="",rF.MPYTHON_GET_SENIVERSE_WEATHER_INFO3_MESSAGE0="%1 [心知天氣] 6項生活指數 %2",rF.MPYTHON_SENIVERSE_WEATHER_city_name="城市名稱",rF.MPYTHON_SENIVERSE_WEATHER_city_id="城市ID",rF.MPYTHON_SENIVERSE_WEATHER_country="國家代碼",rF.MPYTHON_SENIVERSE_WEATHER_path="行政歸屬",rF.MPYTHON_SENIVERSE_WEATHER_timezone="時區",rF.MPYTHON_SENIVERSE_WEATHER_timezone_offset="UTC偏移量",rF.MPYTHON_SENIVERSE_WEATHER_last_update_date="數據更新日期",rF.MPYTHON_SENIVERSE_WEATHER_last_update="數據更新時間",rF.MPYTHON_SENIVERSE_WEATHER_object="原始字典對象",rF.MPYTHON_SENIVERSE_WEATHER_text="天氣現象",rF.MPYTHON_SENIVERSE_WEATHER_code="天氣現象代碼",rF.MPYTHON_SENIVERSE_WEATHER_temperature="溫度",rF.MPYTHON_SENIVERSE_WEATHER_today="今天",rF.MPYTHON_SENIVERSE_WEATHER_tomorrow="明天",rF.MPYTHON_SENIVERSE_WEATHER_the_day_after_tomorrow="後天",rF.MPYTHON_SENIVERSE_WEATHER_date="日期",rF.MPYTHON_SENIVERSE_WEATHER_text_day="白天天氣現象",rF.MPYTHON_SENIVERSE_WEATHER_code_day="白天天氣現象代碼",rF.MPYTHON_SENIVERSE_WEATHER_text_night="晚間天氣現象",rF.MPYTHON_SENIVERSE_WEATHER_code_night="晚間天氣現象代碼",rF.MPYTHON_SENIVERSE_WEATHER_high="當天最高溫度",rF.MPYTHON_SENIVERSE_WEATHER_low="當天最低溫度",rF.MPYTHON_SENIVERSE_WEATHER_wind_direction="風向",rF.MPYTHON_SENIVERSE_WEATHER_wind_direction_degree="風向角度",rF.MPYTHON_SENIVERSE_WEATHER_wind_speed="風速",rF.MPYTHON_SENIVERSE_WEATHER_wind_scale="風力等級",rF.MPYTHON_SENIVERSE_WEATHER_car_washing="洗車指數",rF.MPYTHON_SENIVERSE_WEATHER_dressing="穿衣指數",rF.MPYTHON_SENIVERSE_WEATHER_flu="感冒指數",rF.MPYTHON_SENIVERSE_WEATHER_sport="運動指數",rF.MPYTHON_SENIVERSE_WEATHER_travel="旅遊指數",rF.MPYTHON_SENIVERSE_WEATHER_uv="紫外線指數",rF.MPYTHON_RED="紅",rF.MPYTHON_GREEN="綠",rF.MPYTHON_BLUE="藍",rF.MPYTHON_BLUEBIT_HELPURL="http://wiki.labplus.cn/index.php?title=Bluebit",rF.MPYTHON_BLUEBIT_NEWRFID_READ_MESSAGE0="I2C射頻卡 讀取電子錢包 數據",rF.MPYTHON_BLUEBIT_NEWRFID_READ_TOOLTIP="讀取塊數據,長度16位元組",rF.MPYTHON_BLUEBIT_NEWRFID_READ_HELPURL="https://mpython.readthedocs.io/zh/master/library/mPython/bluebit.html#rfid",rF.MPYTHON_BLUEBIT_NEWRFID_WRITE_MESSAGE0="I2C射頻卡 寫入電子錢包 數據%1",rF.MPYTHON_BLUEBIT_NEWRFID_WRITE_TOOLTIP="寫入塊數據,長度16位元組",rF.MPYTHON_BLUEBIT_NEWRFID_WRITE_HELPURL="https://mpython.readthedocs.io/zh/master/library/mPython/bluebit.html#rfid",rF.MPYTHON_BLUEBIT_NEWRFID_MONEY_MESSAGE0="I2C射頻卡 給電子錢包%1 金額%2",rF.MPYTHON_BLUEBIT_NEWRFID_MONEY_TOOLTIP="",rF.MPYTHON_BLUEBIT_NEWRFID_MONEY_HELPURL="https://mpython.readthedocs.io/zh/master/library/mPython/bluebit.html#rfid",rF.MPYTHON_BLUEBIT_NEWRFID_INC_MESSAGE0="充值",rF.MPYTHON_BLUEBIT_NEWRFID_DEC_MESSAGE0="扣費",rF.MPYTHON_BLUEBIT_NEWRFID_GET_MESSAGE0="I2C射頻卡 獲取電子錢包餘額",rF.MPYTHON_BLUEBIT_NEWRFID_GET_TOOLTIP="",rF.MPYTHON_BLUEBIT_NEWRFID_GET_HELPURL="https://mpython.readthedocs.io/zh/master/library/mPython/bluebit.html#rfid",rF.MPYTHON_BLUEBIT_NEWRFID_GETSERIAL_MESSAGE0="I2C射頻卡 獲取序號",rF.MPYTHON_BLUEBIT_NEWRFID_GETSERIAL_TOOLTIP="",rF.MPYTHON_BLUEBIT_NEWRFID_GETSERIAL_HELPURL="https://mpython.readthedocs.io/zh/master/library/mPython/bluebit.html#rfid",rF.MPYTHON_BLUEBIT_NEWRFID_SET_MESSAGE0="I2C射頻卡 初始化電子錢包",rF.MPYTHON_BLUEBIT_NEWRFID_SET_TOOLTIP="",rF.MPYTHON_BLUEBIT_NEWRFID_SET_HELPURL="https://mpython.readthedocs.io/zh/master/library/mPython/bluebit.html#rfid",rF.MPYTHON_BLUEBIT_NEWRFID_SCAN_MESSAGE0="I2C射頻卡 掃描",rF.MPYTHON_BLUEBIT_NEWRFID_SCAN_TOOLTIP="",rF.MPYTHON_BLUEBIT_NEWRFID_SCAN_HELPURL="https://mpython.readthedocs.io/zh/master/library/mPython/bluebit.html#rfid",rF.MPYTHON_BLUEBIT_ULTRASONIC_MESSAGE0="I2C超聲波",rF.MPYTHON_BLUEBIT_ULTRASONIC_TOOLTIP="",rF.MPYTHON_BLUEBIT_ULTRASONIC_HELPURL="http://wiki.labplus.cn/index.php?title=Bluebit",rF.MPYTHON_BLUEBIT_READ_DIGITAL_MESSAGE0="%1 被觸發 引腳%2",rF.MPYTHON_BLUEBIT_READ_DIGITAL_TOOLTIP="",rF.MPYTHON_BLUEBIT_READ_DIGITAL_HELPURL="http://wiki.labplus.cn/index.php?title=Bluebit",rF.MPYTHON_BLUEBIT_READ_ANALOG_MESSAGE0="%1 模擬值 引腳%2",rF.MPYTHON_BLUEBIT_READ_ANALOG_TOOLTIP="",rF.MPYTHON_BLUEBIT_READ_ANALOG_HELPURL="http://wiki.labplus.cn/index.php?title=Bluebit",rF.MPYTHON_BLUEBIT_SET_ANALOG_MESSAGE0="設置LED燈 輸出%1 引腳%2",rF.MPYTHON_BLUEBIT_SET_ANALOG_TOOLTIP="",rF.MPYTHON_BLUEBIT_SET_ANALOG_HELPURL="http://wiki.labplus.cn/index.php?title=Bluebit",rF.MPYTHON_BLUEBIT_LINE_FOLLOWER_MESSAGE0="循跡傳感器 檢測為黑 引腳%1",rF.MPYTHON_BLUEBIT_LINE_FOLLOWER_TOOLTIP="",rF.MPYTHON_BLUEBIT_LINE_FOLLOWER_HELPURL="http://wiki.labplus.cn/index.php?title=Bluebit",rF.MPYTHON_BLUEBIT_SET_TRUE_HELPURL="http://wiki.labplus.cn/index.php?title=Bluebit",rF.MPYTHON_BLUEBIT_SET_TRUE_MESSAGE0="打開 %1 引腳 %2",rF.MPYTHON_BLUEBIT_SET_TRUE_TOOLTIP="",rF.MPYTHON_BLUEBIT_SET_FALSE_HELPURL="http://wiki.labplus.cn/index.php?title=Bluebit",rF.MPYTHON_BLUEBIT_SET_FALSE_MESSAGE0="關閉 %1 引腳 %2",rF.MPYTHON_BLUEBIT_SET_FALSE_TOOLTIP="",rF.MPYTHON_BLUEBIT_VOICE_RECORD_ON_HELPURL="http://wiki.labplus.cn/index.php?title=%E8%AF%AD%E9%9F%B3%E5%BD%95%E6%94%BE",rF.MPYTHON_BLUEBIT_VOICE_RECORD_ON_TOOLTIP="",rF.MPYTHON_BLUEBIT_VOICE_RECORD_ON_MESSAGE0="打開錄放器 %1 %2 REC %3 PLAY %4",rF.MPYTHON_BLUEBIT_VOICE_RECORD_OFF_HELPURL="http://wiki.labplus.cn/index.php?title=%E8%AF%AD%E9%9F%B3%E5%BD%95%E6%94%BE",rF.MPYTHON_BLUEBIT_VOICE_RECORD_OFF_TOOLTIP="",rF.MPYTHON_BLUEBIT_VOICE_RECORD_OFF_MESSAGE0="關閉錄放器 %1 REC %2 PLAY %3",rF.MPYTHON_BLUEBIT_VOICE_RECORD_PLAY="播放",rF.MPYTHON_BLUEBIT_VOICE_RECORD_REC="錄音",rF.MPYTHON_BLUEBIT_IR_RECEIVE="紅外探測",rF.MPYTHON_BLUEBIT_SOUND="麥克風",rF.MPYTHON_BLUEBIT_LINE_FOLLOWER="循跡",rF.MPYTHON_BLUEBIT_VIBRATION="震動",rF.MPYTHON_BLUEBIT_RFID="射頻卡",rF.MPYTHON_BLUEBIT_FINGERPRINT_SCANNER="指紋",rF.MPYTHON_BLUEBIT_PIR="人體感應",rF.MPYTHON_BLUEBIT_MAGNETIC="門磁開關",rF.MPYTHON_BLUEBIT_BUTTON="按鍵",rF.MPYTHON_BLUEBIT_RELAY="繼電器",rF.MPYTHON_BLUEBIT_LIMIT_SWITCH="限位開關",rF.MPYTHON_BLUEBIT_FAN="風扇",rF.MPYTHON_BLUEBIT_LASER="激光",rF.MPYTHON_BLUEBIT_NTC_TEMP="熱敏電阻",rF.MPYTHON_BLUEBIT_WATER="水位",rF.MPYTHON_BLUEBIT_SOIL_MOISTURE="土壤濕度",rF.MPYTHON_BLUEBIT_ROTATE_DIMMER="旋鈕電位器",rF.MPYTHON_BLUEBIT_LINEAR_SLIDING_POTENTIOMETER="直滑電位器",rF.MPYTHON_BLUEBIT_ANALOG_LIGHT="模擬光線",rF.MPYTHON_BLUEBIT_LM35_TEMP="LM35溫度",rF.MPYTHON_BLUEBIT_SMOKE="煙霧",rF.MPYTHON_BLUEBIT_MOTOR_ON_CLOCKWISE="正轉",rF.MPYTHON_BLUEBIT_MOTOR_ON_ANTICLOCKWISE="反轉",rF.MPYTHON_BLUEBIT_READ_SOIL_HELPURL="",rF.MPYTHON_BLUEBIT_READ_SOIL_TOOLTIP="新的土壤濕度",rF.MPYTHON_BLUEBIT_READ_SOIL_MESSAGE0="土壤濕度(新)%1",rF.MPYTHON_BLUEBIT_MOTOR_ON_HELPURL="http://wiki.labplus.cn/index.php?title=%E7%94%B5%E6%9C%BA%E9%A9%B1%E5%8A%A8",rF.MPYTHON_BLUEBIT_MOTOR_ON_TOOLTIP="速度:-100~100 映射至 -1023~1023",rF.MPYTHON_BLUEBIT_MOTOR_ON_MESSAGE0="打開直流電機 %1 速度 %2 引腳AIN1 %3 引腳AIN2 %4",rF.MPYTHON_BLUEBIT_MOTOR_OFF_HELPURL="http://wiki.labplus.cn/index.php?title=%E7%94%B5%E6%9C%BA%E9%A9%B1%E5%8A%A8",rF.MPYTHON_BLUEBIT_MOTOR_OFF_TOOLTIP="",rF.MPYTHON_BLUEBIT_MOTOR_OFF_MESSAGE0="停止直流電機 %1 引腳AIN1 %2 引腳AIN2 %3",rF.MPYTHON_BLUEBIT_SET_FAN_HELPURL="",rF.MPYTHON_BLUEBIT_SET_FAN_TOOLTIP="",rF.MPYTHON_BLUEBIT_SET_FAN_MESSAGE0="拓展板 打開風扇 %1",rF.MPYTHON_BLUEBIT_SET_FAN_OFF_HELPURL="",rF.MPYTHON_BLUEBIT_SET_FAN_OFF_TOOLTIP="",rF.MPYTHON_BLUEBIT_SET_FAN_OFF_MESSAGE0="拓展板 關閉風扇 %1",rF.MPYTHON_BLUEBIT_4BUTTON_HELPURL="http://wiki.MPYTHON_BLUEBIT.cn/index.php?title=%E5%9B%9B%E6%8C%89%E9%94%AE",rF.MPYTHON_BLUEBIT_4BUTTON_TOOLTIP="",rF.MPYTHON_BLUEBIT_4BUTTON_MESSAGE0="四向按鍵模塊 引腳 %1 按鍵 %2 被按下",rF.BLUE="A",rF.GREEN="B",rF.RED="C",rF.YELLOW="D",rF.MPYTHON_BLUEBIT_JOYSTICK_HELPURL="",rF.MPYTHON_BLUEBIT_JOYSTICK_TOOLTIP="",rF.MPYTHON_BLUEBIT_JOYSTICK_MESSAGE0="搖桿 引腳A0 %1 引腳A1 %2 %3 軸的值",rF.MPYTHON_BLUEBIT_MOTOR_ON_I2C_HELPURL="",rF.MPYTHON_BLUEBIT_MOTOR_ON_I2C_TOOLTIP="速度:0~100",rF.MPYTHON_BLUEBIT_MOTOR_ON_I2C_MESSAGE0="拓展板 打開直流電機 %1 %2 速度 %3",rF.MPYTHON_BLUEBIT_BLUEBIT_MOTOR_OFF_I2C_HELPURL="",rF.MPYTHON_BLUEBIT_MOTOR_OFF_I2C_TOOLTIP="速度:0~100",rF.MPYTHON_BLUEBIT_MOTOR_OFF_I2C_MESSAGE0="拓展板 關閉直流電機",rF.MPYTHON_BLUEBIT_CODED_THREE_MOTOR_ON_I2C_HELPURL="",rF.MPYTHON_BLUEBIT_CODED_THREE_MOTOR_ON_I2C_TOOLTIP="速度:-1023~1023",rF.MPYTHON_BLUEBIT_CODED_THREE_MOTOR_ON_I2C_MESSAGE0="編碼電機 模式 %1 撥碼 %2 M1速度 %3 M2速度 %4",rF.MPYTHON_BLUEBIT_CODED_STOP_MOTOR_ON_I2C_HELPURL="",rF.MPYTHON_BLUEBIT_CODED_STOP_MOTOR_ON_I2C_TOOLTIP="停止編碼電機轉動",rF.MPYTHON_BLUEBIT_CODED_STOP_MOTOR_ON_I2C_MESSAGE0="停止編碼電機轉動 %1",rF.MPYTHON_BLUEBIT_HUM_TEM_HELPURL="",rF.MPYTHON_BLUEBIT_HUM_TEM_TOOLTIP="",rF.MPYTHON_BLUEBIT_HUM_TEM_MESSAGE0="I2C %1",rF.MPYTHON_BLUEBIT_TEMPERATURE="溫度",rF.MPYTHON_BLUEBIT_HUMIDITY="濕度",rF.MPYTHON_BLUEBIT_INIT_MIDI_HELPURL="",rF.MPYTHON_BLUEBIT_INIT_MIDI_MESSAGE0="初始化MIDI TX引脚 %1",rF.MPYTHON_BLUEBIT_INIT_MIDI_TOOLTIP="",rF.MPYTHON_BLUEBIT_MIDI_VOLUME_HELPURL="",rF.MPYTHON_BLUEBIT_MIDI_VOLUME_MESSAGE0="設MIDI音量 %1",rF.MPYTHON_BLUEBIT_MIDI_VOLUME_TOOLTIP="音量 0~127",rF.MIDI_PIANO="平臺鋼琴",rF.MIDI_BRIGHTACOUSTICPIANO="亮音鋼琴",rF.MIDI_ELECTRICGRANDPIANO="電鋼琴",rF.MIDI_HARPSICHORD="大鍵琴",rF.MIDI_CELESTA="鋼片琴",rF.MIDI_GLOCKENSPIEL="鍾琴",rF.MIDI_MUSICALBOX="音樂盒",rF.MIDI_MARIMBA="馬林巴琴",rF.MIDI_XYLOPHONE="木琴",rF.MIDI_TUBULARBELL="管鐘",rF.MIDI_DULCIMER="洋琴",rF.MIDI_VIBRAPHONE="顫音琴",rF.MIDI_ORGAN="音栓風琴",rF.MIDI_ACOUSTIC_GUITAR="木吉他",rF.MIDI_ELECTRIC_GUITAR="電吉他",rF.MIDI_ACOUSTIC_BASS="民謠貝斯",rF.MIDI_STRING_ENSEMBLE="弦樂合奏",rF.MIDI_VIOLIN="小提琴",rF.MIDI_TRUMPET="小號",rF.MIDI_SAX="薩克斯",rF.MIDI_STEEL_DRUMS="鋼鼓",rF.MIDI_LEAD="合成音主旋律",rF.MIDI_PAD="合成音襯底",rF.MPYTHON_BLUEBIT_MIDI_INSTRUMENT_HELPURL="",rF.MPYTHON_BLUEBIT_MIDI_INSTRUMENT_MESSAGE0="設MIDI樂器 %1",rF.MPYTHON_BLUEBIT_MIDI_INSTRUMENT_TOOLTIP="",rF.MPYTHON_BLUEBIT_MIDI_PLAY_HELPURL="",rF.MPYTHON_BLUEBIT_MIDI_PLAY_MESSAGE0="MIDI %1 音調 %2",rF.MPYTHON_BLUEBIT_MIDI_PLAY_TOOLTIP="",rF.MPYTHON_BLUEBIT_MATRIX_BRIGHTNESS_HELPURL="",rF.MPYTHON_BLUEBIT_MATRIX_BRIGHTNESS_MESSAGE0="設點陣亮度等級 %1",rF.MPYTHON_BLUEBIT_MATRIX_BRIGHTNESS_TOOLTIP="亮度等級 0~15",rF.MPYTHON_BLUEBIT_MATRIX_FILL_HELPURL="",rF.MPYTHON_BLUEBIT_MATRIX_FILL_MESSAGE0="點陣 %1",rF.MPYTHON_BLUEBIT_MATRIX_FILL_TOOLTIP="",rF.MPYTHON_BLUEBIT_MATRIX_BITMAP_HELPURL="",rF.MPYTHON_BLUEBIT_MATRIX_BITMAP_MESSAGE0="設置點陣 %1 %2 %3 %4 %5 %6 %7 %8 %9 %10 %11 %12 %13 %14 %15 %16 %17 %18 %19 %20 %21 %22 %23 %24 %25 %26 %27 %28 %29 %30 %31 %32 %33 %34 %35 %36 %37 %38 %39 %40 %41 %42 %43 %44 %45 %46 %47 %48 %49 %50 %51 %52 %53 %54 %55 %56 %57 %58 %59 %60 %61 %62 %63 %64 %65 %66 %67 %68 %69 %70 %71 %72",rF.MPYTHON_BLUEBIT_MATRIX_BITMAP_TOOLTIP="",rF.MPYTHON_BLUEBIT_MATRIX_SHOW_HELPURL="",rF.MPYTHON_BLUEBIT_MATRIX_SHOW_MESSAGE0="點陣設置生效",rF.MPYTHON_BLUEBIT_MATRIX_SHOW_TOOLTIP="",rF.MPYTHON_BLUEBIT_MP3_VOLUME_HELPURL="",rF.MPYTHON_BLUEBIT_MP3_VOLUME_MESSAGE0="設MP3音量 %1",rF.MPYTHON_BLUEBIT_MP3_VOLUME_TOOLTIP="音量:0~30",rF.MPYTHON_BLUEBIT_MP3_INIT_HELPURL="",rF.MPYTHON_BLUEBIT_MP3_INIT_MESSAGE0="初始化MP3 TX引脚 %1",rF.MPYTHON_BLUEBIT_MP3_INIT_TOOLTIP="掌控板的 tx 引脚連接音樂模塊的 RXI 引脚",rF.MPYTHON_BLUEBIT_MP3_VOLUME_PLUS_HELPURL="",rF.MPYTHON_BLUEBIT_MP3_VOLUME_PLUS_MESSAGE0="MP3 音量 %1",rF.MPYTHON_BLUEBIT_MP3_VOLUME_PLUS_TOOLTIP="",rF.MPYTHON_PLUS_1="加1",rF.MPYTHON_MINUS_1="減1",rF.MPYTHON_BLUEBIT_MP3_PLAY_SONG_HELPURL="",rF.MPYTHON_BLUEBIT_MP3_PLAY_SONG_MESSAGE0="MP3 播放第 %1 首歌",rF.MPYTHON_BLUEBIT_MP3_PLAY_SONG_TOOLTIP="",rF.MPYTHON_BLUEBIT_MP3_CMD_HELPURL="",rF.MPYTHON_BLUEBIT_MP3_CMD_MESSAGE0="MP3 播放 %1",rF.MPYTHON_BLUEBIT_MP3_CMD_TOOLTIP="",rF.MPYTHON_BLUEBIT_MP3_SINGLELOOP_HELPURL="",rF.MPYTHON_BLUEBIT_MP3_SINGLELOOP_MESSAGE0="Mp3 單曲循環 %1",rF.MPYTHON_BLUEBIT_MP3_SINGLELOOP_TOOLTIP="",rF.MPYTHON_BLUEBIT_EXTIO_IOMODE_HELPURL="",rF.MPYTHON_BLUEBIT_EXTIO_IOMODE_MESSAGE0="設擴展端口 IO %2 為 %1",rF.MPYTHON_BLUEBIT_EXTIO_IOMODE_TOOLTIP="IO: 0~7",rF.MPYTHON_BLUEBIT_EXTIO_READIO_HELPURL="",rF.MPYTHON_BLUEBIT_EXTIO_READIO_MESSAGE0="擴展端口值 IO %1",rF.MPYTHON_BLUEBIT_EXTIO_READIO_TOOLTIP="",rF.MPYTHON_BLUEBIT_EXTIO_WRITEIO_HELPURL="",rF.MPYTHON_BLUEBIT_EXTIO_WRITEIO_MESSAGE0="設擴展端口 IO %2 為 %1",rF.MPYTHON_BLUEBIT_EXTIO_WRITEIO_TOOLTIP="",rF.MPYTHON_LCD_OBJECT_HELPURL="",rF.MPYTHON_LCD_OBJECT_MESSAGE0="LCD1602 初始化",rF.MPYTHON_LCD_OBJECT_TOOLTIP="",rF.MPYTHON_LCD_PRINT_HELPURL="",rF.MPYTHON_LCD_PRINT_MESSAGE0="LCD1602 顯示 %1",rF.MPYTHON_LCD_PRINT_TOOLTIP="",rF.MPYTHON_LCD_HOME_HELPURL="",rF.MPYTHON_LCD_HOME_MESSAGE0="LCD1602 光標 回到原點",rF.MPYTHON_LCD_HOME_TOOLTIP="",rF.MPYTHON_LCD_CURSOR_HELPURL="",rF.MPYTHON_LCD_CURSOR_MESSAGE0="LCD1602 光標 %1",rF.MPYTHON_LCD_CURSOR_TOOLTIP="",rF.MPYTHON_LCD_SET_CURSOR_HELPURL="",rF.MPYTHON_LCD_SET_CURSOR_MESSAGE0="LCD1602 起始點 行 %2 列 %1",rF.MPYTHON_LCD_SET_CURSOR_TOOLTIP="行列從0開始計數",rF.MPYTHON_LCD_CLEAR_HELPURL="",rF.MPYTHON_LCD_CLEAR_MESSAGE0="LCD1602 清屏",rF.MPYTHON_LCD_CLEAR_TOOLTIP="",rF.MPYTHON_LCD_CURSOR_BLINK="閃爍",rF.MPYTHON_LCD_CURSOR_NO_BLINK="不閃爍",rF.MPYTHON_RIGHT_TO_LEFT="從右向左",rF.MPYTHON_LEFT_TO_RIGHT="從左向右",rF.MPYTHON_LCD_TEXT_DIRECTION_HELPURL="",rF.MPYTHON_LCD_TEXT_DIRECTION_MESSAGE0="LCD1602 文字方向 %1",rF.MPYTHON_LCD_TEXT_DIRECTION_TOOLTIP="",rF.MPYTHON_LCD_MOVE_HELPURL="",rF.MPYTHON_LCD_MOVE_MESSAGE0="LCD1602 向 %1 滾動一格",rF.MPYTHON_LCD_MOVE_TOOLTIP="",rF.MPYTHON_IR_TRANS_HELPURL="",rF.MPYTHON_IR_TRANS_MESSAGE0="紅外發送 單字節字符串 %1 tx 引脚 %2",rF.MPYTHON_IR_TRANS_TOOLTIP="\n單字節字符串:\n'A', 'b', '1'等\n",rF.OUTPUT_PIN_HELPURL="",rF.OUTPUT_PIN_MESSAGE0="%1",rF.OUTPUT_PIN_TOOLTIP="",rF.INPUT_PIN_HELPURL="",rF.INPUT_PIN_MESSAGE0="%1",rF.INPUT_PIN_TOOLTIP="",rF.READ_ANALOG_PIN_HELPURL="",rF.READ_ANALOG_PIN_MESSAGE0="%1",rF.READ_ANALOG_PIN_TOOLTIP="",rF.SET_DIGITAL_HELPURL="",rF.SET_DIGITAL_MESSAGE0="%1",rF.SET_DIGITAL_TOOLTIP="",rF.SET_ANALOG_HELPURL="",rF.SET_ANALOG_MESSAGE0="%1",rF.SET_ANALOG_TOOLTIP="",rF.ALL_PIN_HELPURL="",rF.ALL_PIN_MESSAGE0="%1",rF.ALL_PIN_TOOLTIP="",rF.PWM_PIN_HELPURL="",rF.PWM_PIN_MESSAGE0="%1",rF.PWM_PIN_TOOLTIP="",rF.DH11_HUM_TEM_PIN_HELPURL="",rF.DH11_HUM_TEM_PIN_MESSAGE0="%1",rF.DH11_HUM_TEM_PIN_TOOLTIP="",rF.UART_TX_PIN_HELPURL="",rF.UART_TX_PIN_MESSAGE0="%1",rF.UART_TX_PIN_TOOLTIP="",rF.UART_RX_PIN_HELPURL="",rF.UART_RX_PIN_MESSAGE0="%1",rF.UART_RX_PIN_TOOLTIP="",rF.I2C_PIN_HELPURL="",rF.I2C_PIN_MESSAGE0="%1",rF.I2C_PIN_TOOLTIP="",rF.MQTT_COMMON_SETUP_HELPURL="https://mpython.readthedocs.io/zh/master/library/mPython/umqtt.simple.html?highlight=mqtt#MQTTClient",rF.MQTT_COMMON_SETUP_MESSAGE0="MQTT %1 client_id %2 server %3 port %4 user %5 password %6 keepalive %7",rF.MQTT_COMMON_SETUP_TOOLTIP="",rF.MQTT_TENCENT_SETUP_HELPURL="https://mpython.readthedocs.io/zh/master/library/mPython/umqtt.simple.html?highlight=mqtt#MQTTClient",rF.MQTT_TENCENT_SETUP_MESSAGE0="MQTT 騰訊物聯網 %1 服務器 %2 Port %3 AppId %4 Device %5 -- 傳出參數 -- %6 ReportTopic %7 ControlTopic %8",rF.MQTT_TENCENT_SETUP_TOOLTIP="",rF.MQTT_TENCENT_SETUPS_HELPURL="https://mpython.readthedocs.io/zh/master/library/mPython/umqtt.simple.html?highlight=mqtt#MQTTClient",rF.MQTT_TENCENT_SETUPS_MESSAGE0="MQTT 騰訊物聯網 %1 服務器 %2 Port %3 AppId %4 Device %5 -- 傳出參數 -- %6 ReportTopic %7 ControlTopic %8",rF.MQTT_TENCENT_SETUPS_TOOLTIP="",rF.MQTT_SETUP_HELPURL="https://mpython.readthedocs.io/zh/master/tutorials/advance/iot/mqtt.html#id2",rF.MQTT_SETUP_MESSAGE0="MQTT-Easy IoT %1 服務器 %2 Client ID %5 Iot_id %3 Iot_pwd %4",rF.MQTT_SETUP_TOOLTIP="",rF.MQTT_CONNECT_HELPURL="https://mpython.readthedocs.io/zh/master/tutorials/advance/iot/mqtt.html#id2",rF.MQTT_CONNECT_MESSAGE0="連接 MQTT",rF.MQTT_CONNECT_TOOLTIP="",rF.MQTT_PUBLISH_HELPURL="https://mpython.readthedocs.io/zh/master/tutorials/advance/iot/mqtt.html#id2",rF.MQTT_PUBLISH_MESSAGE0="發佈 %1 至 主題 %2",rF.MQTT_PUBLISH_TOOLTIP="",rF.MQTT_REC_FROM_TOPIC_HELPURL="https://mpython.readthedocs.io/zh/master/tutorials/advance/iot/mqtt.html#id2",rF.MQTT_REC_FROM_TOPIC_MESSAGE0="當從主題 %1 接收到 %2 時",rF.MQTT_REC_FROM_TOPIC_TOOLTIP="",rF.MQTT_RECEIVE_HELPURL="https://mpython.readthedocs.io/zh/master/tutorials/advance/iot/mqtt.html#id2",rF.MQTT_RECEIVE_MESSAGE0="當從主題 %1 接收到 %2 時",rF.MQTT_RECEIVE_TOOLTIP='參數"主題"只接受變量',rF.MQTT_RECEIVED_MESSAGE0="當從主題 %1 接收到消息 時",rF.MQTT_MESSAGE_HELPURL="https://mpython.readthedocs.io/zh/master/tutorials/advance/iot/mqtt.html#id2",rF.MQTT_MESSAGE_MESSAGE0="從 MQTT 收到的消息",rF.MQTT_MESSAGE_TOOLTIP="",rF.MQTT_WAIT_MSG_HELPURL="https://mpython.readthedocs.io/zh/master/tutorials/advance/iot/mqtt.html#id2",rF.MQTT_WAIT_MSG_MESSAGE0="等待主題消息 以 %1 模式",rF.MQTT_WAIT_MSG_TOOLTIP="建議放在'一直重複'中運行",rF.MQTT_DISCONNECT_HELPURL="https://mpython.readthedocs.io/zh/master/tutorials/advance/iot/mqtt.html#id2",rF.MQTT_DISCONNECT_MESSAGE0="MQTT 斷開連接",rF.MQTT_DISCONNECT_TOOLTIP="",rF.MQTT_LAST_WILL_HELPURL="https://mpython.readthedocs.io/zh/master/library/mPython/umqtt.simple.html?highlight=mqtt#MQTTClient.set_last_will",rF.MQTT_LAST_WILL_MESSAGE0="設置 MQTT 主題 %2 離綫消息 %1",rF.MQTT_LAST_WILL_TOOLTIP="設置 MQTT last will 消息。應該在 connect() 之前調用。",rF.MPYTHON_SIOT_CONNECT_HELPURL="",rF.MPYTHON_SIOT_CONNECT_TOOLTIP="",rF.MPYTHON_SIOT_CONNECT_MESSAGE0="創建 SIoT 連接 %1 客戶端ID %2 服務器 %3 用戶 %4 密碼 %5",rF.MPYTHON_SIOT_ISCONNECTED_HELPURL="",rF.MPYTHON_SIOT_ISCONNECTED_TOOLTIP="",rF.MPYTHON_SIOT_ISCONNECTED_MESSAGE0="SIoT 連接成功 ?",rF.MPYTHON_SIOT_SUBSCRIBE_HELPURL="",rF.MPYTHON_SIOT_SUBSCRIBE_TOOLTIP="",rF.MPYTHON_SIOT_SUBSCRIBE_MESSAGE0="SIoT 訂閱主題",rF.MPYTHON_SIOT_SUBSCRIBE_EMPTY_TITLE="點擊左邊星號 訂閱 SIoT 主題",rF.MPYTHON_SIOT_SUBSCRIBE_INPUT_WITH="SIoT 訂閱 主題1",rF.MPYTHON_SIOT_SUBSCRIBE_ITEM_TITLE="主題",rF.MPYTHON_SIOT_SUBSCRIBE_ITEM_TOOLTIP="",rF.MPYTHON_SIOT_SUBSCRIBE_CONTAINER_TITLE_ADD="最多訂閱 5 個主題",rF.MPYTHON_SIOT_SUBSCRIBE_CONTAINER_TOOLTIP="",rF.MPYTHON_SIOT_DISCONNECT_HELPURL="",rF.MPYTHON_SIOT_DISCONNECT_TOOLTIP="",rF.MPYTHON_SIOT_DISCONNECT_MESSAGE0="SIoT 斷開連接",rF.MPYTHON_SIOT_MESSAGE_HELPURL="",rF.MPYTHON_SIOT_MESSAGE_TOOLTIP="",rF.MPYTHON_SIOT_MESSAGE_MESSAGE0="從 SIoT 收到的消息",rF.MPYTHON_SIOT_TOPIC1="主題1",rF.MPYTHON_SIOT_TOPIC2="主題2",rF.MPYTHON_SIOT_TOPIC3="主題3",rF.MPYTHON_SIOT_TOPIC4="主題4",rF.MPYTHON_SIOT_TOPIC5="主題5",rF.MPYTHON_SIOT_PUBLISH_HELPURL="",rF.MPYTHON_SIOT_PUBLISH_TOOLTIP="",rF.MPYTHON_SIOT_PUBLISH_MESSAGE0="SIoT 發送消息 %1 到 %2",rF.MPYTHON_SIOT_PUBLISH_TO_MESSAGE0="SIoT 發送消息 %1 到 主題 %2",rF.MPYTHON_SIOT_RECEIVE_HELPURL="",rF.MPYTHON_SIOT_RECEIVE_TOOLTIP="",rF.MPYTHON_SIOT_RECEIVE_MESSAGE0="當從 SIoT %1 收到消息時 %2 執行 %3",rF.MPYTHON_SIOT_RECEIVE_FROM_MESSAGE0="當從 SIoT 主題 %1 收到消息時 %2 執行 %3",rF.MPYTHON_IR_RECV_HELPURL="",rF.MPYTHON_IR_RECV_MESSAGE0="紅外接收 整型 rx 引脚 %1",rF.MPYTHON_IR_RECV_TOOLTIP="第一次接收總爲空",rF.MPYTHON_BLUEBIT_OLED_PRINT_HELPURL="",rF.MPYTHON_BLUEBIT_OLED_PRINT_MESSAGE0="bluebit OLED 顯示 %1 x %2 y %3",rF.MPYTHON_BLUEBIT_OLED_PRINT_TOOLTIP="",rF.MPYTHON_BLUEBIT_OLED_INIT_HELPURL="",rF.MPYTHON_BLUEBIT_OLED_INIT_MESSAGE0="bluebit OLED 初始化 tx %1 rx %2",rF.MPYTHON_BLUEBIT_OLED_INIT_TOOLTIP="",rF.MPYTHON_BLUEBIT_OLED_CLEAR_HELPURL="",rF.MPYTHON_BLUEBIT_OLED_CLEAR_MESSAGE0="bluebit OLED 清空",rF.MPYTHON_BLUEBIT_OLED_CLEAR_TOOLTIP="",rF.MPYTHON_BLUEBIT_OLED_BMP_HELPURL="",rF.MPYTHON_BLUEBIT_OLED_BMP_MESSAGE0="bluebit OLED 顯示圖像 x %1 y %2 寬 %3 高 %4 16進制圖像數據 %5",rF.MPYTHON_BLUEBIT_OLED_BMP_TOOLTIP="",rF.mpython_bme280_hum_tem_pre_MESSAGE0="气象 %1",rF.mpython_bme280_hum_tem_pre_TOOLTIP="气压单位Pa, 温度单位摄氏度, 环境湿度单位%",rF.mpythonbox_sound_MESSAGE0="聲音值",rF.mpythonbox_sound_TOOLTIP="採樣數據,为0~4095。",rF.mpythonbox_sound_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mPythonBox/lib/mpython.html",rF.MPYTHONBOX_SLIDER_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mPythonBox/lib/mpython_box.html#mpython-box",rF.MPYTHONBOX_SLIDER_MESSAGE0="滑杆",rF.MPYTHONBOX_SLIDER_TOOLTIP="返回滑杆電阻採樣值。範圍0~4095。",rF.MPYTHONBOX_5BUTTON_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mPythonBox/lib/mpython_box.html#mpython-box",rF.MPYTHONBOX_5BUTTON_MESSAGE0="五向按鍵%1",rF.MPYTHONBOX_5BUTTON_TOOLTIP="",rF.MPYTHONBOX_MOTOR_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mPythonBox/lib/mpython_box.html#mpython-box",rF.MPYTHONBOX_MOTOR_MESSAGE0="馬達 速度%1",rF.MPYTHONBOX_MOTOR_TOOLTIP="馬達速度,範圍±100。正值表示正轉,負值則反。",rF.MPYTHONBOX_ULTRASONIC_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mPythonBox/lib/mpython_box.html#mpython_box.get_key",rF.MPYTHONBOX_ULTRASONIC_MESSAGE0="超聲波",rF.MPYTHONBOX_ULTRASONIC_TOOLTIP="超聲波測距,獲取超聲波感測器測距值,組織cm。範圍3~340CM",rF.MPYTHONBOX_THEHUMANBODYINFRARE_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mPythonBox/lib/mpython_box.html#mpython_box.get_key",rF.MPYTHONBOX_THEHUMANBODYINFRARE_MESSAGE0="人體紅外",rF.MPYTHONBOX_THEHUMANBODYINFRARE_TOOLTIP="返回人體紅外觸發值。當為1時,表示已觸發;當為0時,表示未觸發。",rF.MPYTHONBOX_RGB_pixel_HELPURL="",rF.MPYTHONBOX_RGB_pixel_MESSAGE0="設定第 %1列 %2行 R%3 G%4 B%5",rF.MPYTHONBOX_RGB_pixel_TOOLTIP="設定第多少列,行的RGB顏色",rF.MPYTHONBOX_RGB_get_pixel_HELPURL="",rF.MPYTHONBOX_RGB_get_pixel_MESSAGE0="返回 第%1列 %2行 RGB颜色",rF.MPYTHONBOX_RGB_get_pixel_TOOLTIP="返回第多少列,行位置的RGB顏色",rF.MPYTHONBOX_RGB_ImageText_HELPURL="",rF.MPYTHONBOX_RGB_ImageText_MESSAGE0="滾動顯示文本%1 速度%2",rF.MPYTHONBOX_RGB_ImageText_TOOLTIP="滾動顯示文字,亮度為0不亮,9最亮",rF.MPYTHONBOX_RGB_SetImage_HELPURL="",rF.MPYTHONBOX_RGB_SetImage_TOOLTIP="",rF.MPYTHONBOX_RGB_SetImage_MESSAGE0="創建圖像 %1 第一行%2第二行%3第三行%4第四行%5第五行%6",rF.MPYTHONBOX_RGB_Image_HELPURL="",rF.MPYTHONBOX_RGB_Image_MESSAGE0="顯示影像%1",rF.MPYTHONBOX_RGB_Image_TOOLTIP="顯示影像",rF.MPYTHONBOX_RGB_SetImage_HELPURL="",rF.MPYTHONBOX_RGB_SetImage_MESSAGE0="創建影像 %1 第一行%2第二行%3第三行%4第四行%5第五行%6",rF.MPYTHONBOX_RGB_SetImage_TOOLTIP="創建新影像,每行每位數代表第幾比特燈,默認紅色;亮度為0不亮,9最亮。",rF.MPYTHONBOX_RGB_SHOW_IMAGE_MESSAGE0="顯示影像/文本 %1",rF.MPYTHONBOX_RGB_SHOW_IMAGE_TOOLTIP="顯示影像或文字消息。",rF.MPYTHONBOX_RGB_SHOW_IMAGE_HELPURL="",rF.MPYTHONBOX_RGB_SHOW_IMAGEImport_MESSAGE0="顯示影像 %1",rF.MPYTHONBOX_RGB_SHOW_IMAGEImport_TOOLTIP="顯示影像。",rF.MPYTHONBOX_RGB_SHOW_IMAGEImport_HELPURL="",rF.MPYTHONBOX_RGB_SHOW_IMAGE_Copy_MESSAGE0="複製影像 %1",rF.MPYTHONBOX_RGB_SHOW_IMAGE_Copy_TOOLTIP="複製影像。",rF.MPYTHONBOX_RGB_SHOW_IMAGE_Copy_HELPURL="",rF.MPYTHONBOX_RGB_ImageCot_HELPURL="",rF.MPYTHONBOX_RGB_ImageCot_MESSAGE0="切剪影像%1 列%2 行%3 宽%4 高%5",rF.MPYTHONBOX_RGB_ImageCot_TOOLTIP="切剪影像",rF.MPYTHONBOX_RGB_IMAGE_BUILTINS_MESSAGE0="內寘影像 %1",rF.MPYTHONBOX_RGB_IMAGE_BUILTINS_TOOLTIP="選擇一個內寘的影像。",rF.MPYTHONBOX_RGB_IMAGE_BUILTINS_HELPURL="",rF.MPYTHONBOX_RGB_IMAGE_SHIFT_MESSAGE0="平移影像 %1 %2 %3 位",rF.MPYTHONBOX_RGB_IMAGE_SHIFT_TOOLTIP="向特定方向移動影像,並返回移動後的結果。",rF.MPYTHONBOX_RGB_IMAGE_SHIFT_HELPURL="",rF.MPYTHONBOX_RGB_clear_HELPURL="",rF.MPYTHONBOX_RGB_clear_MESSAGE0="關閉所有 RGB 燈",rF.MPYTHONBOX_RGB_clear_TOOLTIP="",rF.MPYTHONBOX_RGB_pixel_return_HELPURL="",rF.MPYTHONBOX_RGB_pixel_return_MESSAGE0="返回第 %1列 %2行 顏色",rF.MPYTHONBOX_RGB_pixel_return_TOOLTIP="返回第多少列,行的RGB顏色",rF.MPYTHONBOX_TRIAXIAL_ACCELERATION_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython.html",rF.MPYTHONBOX_TRIAXIAL_ACCELERATION_MESSAGE0="%1軸加速度",rF.MPYTHONBOX_TRIAXIAL_ACCELERATION_TOOLTIP="单位g,范围-2~+2g。",rF.MPYTHONBOX_TRIAXIAL_AUGULAR_VELOCITY_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython.html",rF.MPYTHONBOX_TRIAXIAL_AUGULAR_VELOCITY_MESSAGE0="%1軸角速度",rF.MPYTHONBOX_TRIAXIAL_AUGULAR_VELOCITY_TOOLTIP="范围±500°/秒",rF.MPYTHONBOX_EULER_ANGLE_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython.html",rF.MPYTHONBOX_EULER_ANGLE_MESSAGE0="%1歐拉角",rF.MPYTHONBOX_EULER_ANGLE_TOOLTIP="返回當前歐拉角(Pitch,Roll,Yaw),單位角度",rF.MPYTHONBOX_QUATERNION_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython.html",rF.MPYTHONBOX_QUATERNION_MESSAGE0="%1四元數",rF.MPYTHONBOX_QUATERNION_TOOLTIP="返回當前四元數(w,x,y,z)",rF.MPYTHONBOX_CAMERA_LED_HELPURL="",rF.MPYTHONBOX_CAMERA_LED_MESSAGE0="攝像燈%1",rF.MPYTHONBOX_CAMERA_LED_TOOLTIP="led燈,分為打開和關閉兩種狀態",rF.LIST_FIRST_INDEX_HELPURL="",rF.LIST_FIRST_INDEX_MESSAGE0="項 %1 在列表 %2 %3 出現的位置",rF.LIST_FIRST_INDEX_TOOLTIP="",rF.MPYTHON_AI_LCD_INIT_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.lcd.init",rF.MPYTHON_AI_LCD_INIT_MESSAGE0="螢幕 初始化 ",rF.MPYTHON_AI_LCD_INIT_TOOLTIP="初始化 螢幕顯示",rF.MPYTHON_AI_SENSOR_RESET_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/sensor.html#%E5%8D%95%E7%9B%AE%E6%91%84%E5%83%8F%E5%A4%B4%E9%87%8D%E7%BD%AE%E5%87%BD%E6%95%B0",rF.MPYTHON_AI_SENSOR_RESET_MESSAGE0="監視器 初始化",rF.MPYTHON_AI_SENSOR_RESET_TOOLTIP="初始化單目監視器",rF.MPYTHON_AI_SENSOR_ENABLE_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/sensor.html#%E8%8E%B7%E5%8F%96%E5%9B%BE%E5%83%8F",rF.MPYTHON_AI_SENSOR_ENABLE_MESSAGE0="監視器%1",rF.MPYTHON_AI_SENSOR_ENABLE_TOOLTIP="获取影像",rF.MPYTHON_AI_LCD_TEXT_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/lcd.html#%E4%BE%8B%E7%A8%8B-1%EF%BC%9A-%E6%98%BE%E7%A4%BA%E8%8B%B1%E6%96%87",rF.MPYTHON_AI_LCD_TEXT_MESSAGE0="顯示文字 x %1 y %2 内容 %3",rF.MPYTHON_AI_LCD_TEXT_TOOLTIP="僅支持字母和數位",rF.MPYTHON_AI_SENSOR_SKIP_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/sensor.html#%E8%B7%B3%E5%B8%A7",rF.MPYTHON_AI_SENSOR_SKIP_MESSAGE0="監視器 跳過幀數%1 毫秒%2内的影像",rF.MPYTHON_AI_SENSOR_SKIP_TOOLTIP="監視器跳過指定幀數或者跳過指定時間內的影像",rF.MPYTHON_AI_SENSOR_RETURN_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/sensor.html#%E5%88%86%E8%BE%A8%E7%8E%87%E5%AE%BD%E5%BA%A6",rF.MPYTHON_AI_SENSOR_RETURN_MESSAGE0="测 監視器 获取%1",rF.MPYTHON_AI_SENSOR_RETURN_TOOLTIP="(AI)監視器返回参数(宽高,图像帧的格式,图像帧的大小)",rF.MPYTHON_AI_SENSOR_SETS_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/sensor.html#%E8%AE%BE%E7%BD%AE%E5%AF%B9%E6%AF%94%E5%BA%A6",rF.MPYTHON_AI_SENSOR_SETS_MESSAGE0="監視器 设置%1 为%2",rF.MPYTHON_AI_SENSOR_SETS_TOOLTIP="设置監視器对比度,亮度,饱和度范围为[-2,+2]",rF.MPYTHON_AI_SENSOR_AUTO_GAIN_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/sensor.html#%E8%AE%BE%E7%BD%AE%E8%87%AA%E5%8A%A8%E5%A2%9E%E7%9B%8A",rF.MPYTHON_AI_SENSOR_AUTO_GAIN_MESSAGE0="監視器 自動增益%1",rF.MPYTHON_AI_SENSOR_AUTO_GAIN_TOOLTIP="1開啟監視器自動增益0關閉監視器自動增益",rF.MPYTHON_AI_SENSOR_AUTO_WHITEBAL_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/sensor.html#%E8%AE%BE%E7%BD%AE%E8%87%AA%E5%8A%A8%E5%A2%9E%E7%9B%8A",rF.MPYTHON_AI_SENSOR_AUTO_WHITEBAL_MESSAGE0="監視器 白平衡%1",rF.MPYTHON_AI_SENSOR_AUTO_WHITEBAL_TOOLTIP="設定攝像自動白平衡模式,默認打開。True為打開,False為關閉自動白平衡。若您想追跡顏色,則需關閉白平衡。",rF.MPYTHON_AI_SENSOR_LEVEL_MI_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/sensor.html#%E8%AE%BE%E7%BD%AE%E6%B0%B4%E5%B9%B3%E9%95%9C%E5%83%8F",rF.MPYTHON_AI_SENSOR_LEVEL_MI_MESSAGE0="監視器 %1 %2",rF.MPYTHON_AI_SENSOR_LEVEL_MI_TOOLTIP="1表示開啟水准鏡像 0表示關閉水准鏡像",rF.MPYTHON_AI_LCD_DISPLAY_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.lcd.display",rF.MPYTHON_AI_LCD_DISPLAY_MESSAGE0="屏幕 顯示生效",rF.MPYTHON_AI_LCD_DISPLAY_TOOLTIP="可以在液晶屏上顯示",rF.MPYTHON_AI_LCD_DISPLAY_SIZE_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.lcd.display",rF.MPYTHON_AI_LCD_DISPLAY_SIZE_MESSAGE0="图像 顯示生效 x%1 y%2 宽%3 高%4",rF.MPYTHON_AI_LCD_DISPLAY_SIZE_TOOLTIP="可以在液晶屏上顯示一張圖片",rF.MPYTHON_AI_SENSOR_IMAGES_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/sensor.html#%E8%8E%B7%E5%8F%96%E5%9B%BE%E5%83%8F",rF.MPYTHON_AI_SENSOR_IMAGES_MESSAGE0="監視器 獲取影像",rF.MPYTHON_AI_SENSOR_IMAGES_TOOLTIP="控制監視器捕捉影像",rF.MPYTHON_AI_IMAGE_FACEDETECT_HELPURL="https://maixpy.sipeed.com/zh/libs/Maix/kpu.html#%E8%BF%90%E8%A1%8Cyolo2%E7%BD%91%E7%BB%9C",rF.MPYTHON_AI_IMAGE_FACEDETECT_MESSAGE0="人臉識別",rF.MPYTHON_AI_IMAGE_FACEDETECT_TOOLTIP="",rF.MPYTHON_AI_LCD_SHOW_REC_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.draw_rectangle",rF.MPYTHON_AI_LCD_SHOW_REC_MESSAGE0="矩形%1 x%3 y%4 宽%5 高%6 颜色为 R%7 G%8 B%9 加粗%2",rF.MPYTHON_AI_LCD_SHOW_REC_TOOLTIP="在影像上繪製矩形",rF.MPYTHON_AI_LCD_SHOW_STRING_MESSAGE0="线条 x1%1 y1%2 到x2%3 y2%4 颜色为R%5 G%6 B%7 加粗%8",rF.MPYTHON_AI_LCD_SHOW_STRING_TOOLTIP="在影像上繪製線條",rF.MPYTHON_AI_LCD_SHOW_STRING_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.draw_rectangle",rF.MPYTHON_AI_LCD_CLEAR_ALL_MESSAGE0="螢幕 顯示清空",rF.MPYTHON_AI_LCD_CLEAR_ALL_TOOLTIP="將液晶屏清空為黑色或者指定的顏色",rF.MPYTHON_AI_LCD_CLEAR_ALL_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.draw_rectangle",rF.MPYTHON_AI_LCD_return_colour_MESSAGE0="LCD 返回 x%1 y%2 顏色",rF.MPYTHON_AI_LCD_return_colour_TOOLTIP="返回某個座標點的顏色",rF.MPYTHON_AI_LCD_return_colour_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.draw_rectangle",rF.MPYTHON_AI_LCD_SHOW_CIRCLE_MESSAGE0="圓形%1 x%2 y%3 半径%4 顏色为 R%5 G%6 B%7 加粗%8",rF.MPYTHON_AI_LCD_SHOW_CIRCLE_TOOLTIP="在影像上繪製圓形",rF.MPYTHON_AI_LCD_SHOW_CIRCLE_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.draw_rectangle",rF.MPYTHON_AI_LCD_TEXT_MOST_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.draw_rectangle",rF.MPYTHON_AI_LCD_TEXT_MOST_MESSAGE0="顯示文字 x %1 y %2 内容 %3 顏色为R%4 G%5 B%6 字号%7",rF.MPYTHON_AI_LCD_TEXT_MOST_TOOLTIP="僅支持字母和數位",rF.MPYTHON_AI_LCD_SHOW_TEN_STRING_MESSAGE0="十字線 x%1 y%2 顏色为R%3 G%4 B%5 尺寸%6 加粗%7",rF.MPYTHON_AI_LCD_SHOW_TEN_STRING_TOOLTIP="在影像上繪製十字線",rF.MPYTHON_AI_LCD_SHOW_TEN_STRING_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.draw_rectangle",rF.MPYTHON_AI_LCD_SHOW_ARROWS_MESSAGE0="箭頭 x1%1 y1%2 到x2%3 y2%4 顏色为R%5 G%6 B%7 加粗%8",rF.MPYTHON_AI_LCD_SHOW_ARROWS_TOOLTIP="在影像上繪製一個箭頭",rF.MPYTHON_AI_LCD_SHOW_ARROWS_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.draw_rectangle",rF.MPYTHON_AI_LCD_SHOW_IMAGE_PIRCTURE_HELPURL=".https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.lcd.display",rF.MPYTHON_AI_LCD_SHOW_IMAGE_PIRCTURE_MESSAGE0="顯示影像 路徑%1",rF.MPYTHON_AI_LCD_SHOW_IMAGE_PIRCTURE_TOOLTIP="顯示影像",rF.MPYTHON_AI_LCD_SHOW_IMAGE_HEAT_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.invert",rF.MPYTHON_AI_LCD_SHOW_IMAGE_HEAT_MESSAGE0="圖像轉換為%1",rF.MPYTHON_AI_LCD_SHOW_IMAGE_HEAT_TOOLTIP="黑白翻轉是將二進位影像0(黑色)變為1(白色),1(白色)變為0(黑色),非常快速地翻轉二進位影像中的所有點數值。",rF.MPYTHON_AI_LCD_SHOW_IMAGE_DESCARTES_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.linpolar",rF.MPYTHON_AI_LCD_SHOW_IMAGE_DESCARTES_MESSAGE0="影像 從笛卡爾座標到%1 座標重新投影 反向%2",rF.MPYTHON_AI_LCD_SHOW_IMAGE_DESCARTES_TOOLTIP="",rF.MPYTHON_AI_LCD_SHOW_IMAGE_EROSION_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.dilate",rF.MPYTHON_AI_LCD_SHOW_IMAGE_EROSION_MESSAGE0="影像 膨胀 級別%1",rF.MPYTHON_AI_LCD_SHOW_IMAGE_EROSION_TOOLTIP="膨脹就是對影像高亮部分進行“領域擴張”,效果圖擁有比原圖更大的高亮區域。",rF.MPYTHON_AI_LCD_SHOW_IMAGE_MIDDLE_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.midpoint",rF.MPYTHON_AI_LCD_SHOW_IMAGE_MIDDLE_MESSAGE0="影像 中点濾波 級別%1 滤波%2",rF.MPYTHON_AI_LCD_SHOW_IMAGE_MIDDLE_TOOLTIP="控制影像混合的最小/最大程度。0只適用於最小濾波,1僅用於最大濾波。",rF.MPYTHON_AI_LCD_SHOW_IMAGE_MODE_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.modehttps://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.mode",rF.MPYTHON_AI_LCD_SHOW_IMAGE_MODE_MESSAGE0="影像 众数濾波 級別%1",rF.MPYTHON_AI_LCD_SHOW_IMAGE_MODE_TOOLTIP="在影像上運行眾數濾波,用相鄰點數的模式替換每個點數。",rF.MPYTHON_AI_LCD_SHOW_IMAGE_INDISTINCT_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.mean",rF.MPYTHON_AI_LCD_SHOW_IMAGE_INDISTINCT_MESSAGE0="影像 模糊滤波 级别%1",rF.MPYTHON_AI_LCD_SHOW_IMAGE_INDISTINCT_TOOLTIP="使用盒式濾波器的標準平均值模糊濾波。",rF.MPYTHON_AI_LCD_SHOW_IMAGE_CARTOON_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.cartoon",rF.MPYTHON_AI_LCD_SHOW_IMAGE_CARTOON_MESSAGE0="影像 卡通化 級別%1 起始點數差异%2 相鄰點數差异%3",rF.MPYTHON_AI_LCD_SHOW_IMAGE_CARTOON_TOOLTIP="使图像卡通化",rF.MPYTHON_AI_LCD_SHOW_IMAGE_3D_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.rotation_corr",rF.MPYTHON_AI_LCD_SHOW_IMAGE_3D_MESSAGE0="影像 3D旋轉 上下旋轉%1 左右旋轉%2 度数%3 左右移动%4 上下移动%5 缩放%6",rF.MPYTHON_AI_LCD_SHOW_IMAGE_3D_TOOLTIP="通過執行幀緩衝區的3D旋轉來糾正影像中的透視問題。",rF.MPYTHON_AI_LCD_SHOW_ECTYPE_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.copy",rF.MPYTHON_AI_LCD_SHOW_ECTYPE_MESSAGE0="將影像的副本保存到SD卡 图像名%1 影像顯示區域 x%2 y%3 宽%4 高%5",rF.MPYTHON_AI_LCD_SHOW_ECTYPE_TOOLTIP="將影像的副本保存到SD卡",rF.MPYTHON_AI_LCD_SHOW_ECTYPE_SHOW_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.save",rF.MPYTHON_AI_LCD_SHOW_ECTYPE_SHOW_MESSAGE0="創建一個影像對象的副本 複製影像區域 x%1 y%2 宽%3 高%4",rF.MPYTHON_AI_LCD_SHOW_ECTYPE_SHOW_TOOLTIP="創建一個影像對象的副本",rF.MPYTHON_AI2_NUMBER_DISCERN_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",rF.MPYTHON_AI2_NUMBER_DISCERN_MESSAGE0="手寫數位識別",rF.MPYTHON_AI2_NUMBER_DISCERN_TOOLTIP="手寫數位識別",rF.MPYTHON_AI_LCD_PIXEL_COLOUR_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html?highlight=get_pixel#mpython_classroom_kit.image.set_pixel",rF.MPYTHON_AI_LCD_PIXEL_COLOUR_MESSAGE0="屏幕 x%1 y%2 显示颜色 R%3 G%4 B%5",rF.MPYTHON_AI_LCD_PIXEL_COLOUR_TOOLTIP="屏幕显示颜色",rF.MPYTHON_AI_LCD_COLOUR_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.lcd.clear",rF.MPYTHON_AI_LCD_COLOUR_MESSAGE0="屏幕 初始化 显示颜色 R%1 G%2 B%3",rF.MPYTHON_AI_LCD_COLOUR_TOOLTIP="屏幕显示颜色",rF.MPYTHON_AI_SENSOR_PATTERN_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.camera.set_pixformat",rF.MPYTHON_AI_SENSOR_PATTERN_MESSAGE0="監視器 初始化 點數模式 %1",rF.MPYTHON_AI_SENSOR_PATTERN_TOOLTIP="用於設定監視器點數模式,有黑白和rgb彩色",rF.MPYTHON_AI_TRACE_CILOR_DISPLAYTEN_HELPURL="",rF.MPYTHON_AI_TRACE_CILOR_DISPLAYTEN_MESSAGE0="追跡色塊 顯示%1",rF.MPYTHON_AI_TRACE_CILOR_DISPLAYTEN_TOOLTIP="",rF.MPYTHON_AI2_FACE_TRACKING_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",rF.MPYTHON_AI2_FACE_TRACKING_MESSAGE0="(實驗箱)選擇訓練模型 人臉",rF.MPYTHON_AI2_FACE_TRACKING_TOOLTIP="可以識別並且追蹤人臉,顯示人臉大小等",rF.MPYTHON_AI2_PHOTOGRAPH_TRACKING_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",rF.MPYTHON_AI2_PHOTOGRAPH_TRACKING_MESSAGE0="(實驗箱)調用攝像頭進行 人臉識別",rF.MPYTHON_AI2_PHOTOGRAPH_TRACKING_TOOLTIP="調用攝像頭進行 人臉識別",rF.MPYTHON_AI2_RESULT_FACE_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",rF.MPYTHON_AI2_RESULT_FACE_MESSAGE0="(實驗箱)獲取識別後人臉的 所有參數",rF.MPYTHON_AI2_RESULT_FACE_TOOLTIP="獲取識別後人臉的 所有參數",rF.MPYTHON_AI2_RESULT_FACE_X_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",rF.MPYTHON_AI2_RESULT_FACE_X_MESSAGE0="(實驗箱)獲取識別後人臉的 x座標",rF.MPYTHON_AI2_RESULT_FACE_X_TOOLTIP="獲取識別後人臉的 x座標",rF.MPYTHON_AI2_RESULT_FACE_Y_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",rF.MPYTHON_AI2_RESULT_FACE_Y_MESSAGE0="(實驗箱)獲取識別後人臉的 y座標",rF.MPYTHON_AI2_RESULT_FACE_Y_TOOLTIP="獲取識別後人臉的 y座標",rF.MPYTHON_AI2_RESULT_FACE_W_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",rF.MPYTHON_AI2_RESULT_FACE_W_MESSAGE0="(實驗箱)獲取識別後人臉的 寬度",rF.MPYTHON_AI2_RESULT_FACE_W_TOOLTIP="獲取識別後人臉的 寬度",rF.MPYTHON_AI2_RESULT_FACE_H_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",rF.MPYTHON_AI2_RESULT_FACE_H_MESSAGE0="(實驗箱)獲取識別後人臉的 高度",rF.MPYTHON_AI2_RESULT_FACE_H_TOOLTIP="獲取識別後人臉的 高度",rF.MPYTHON_AI2_RESULT_FACE_VALUE_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",rF.MPYTHON_AI2_RESULT_FACE_VALUE_MESSAGE0="(實驗箱)獲取識別後人臉的 置信度",rF.MPYTHON_AI2_RESULT_FACE_VALUE_TOOLTIP="獲取識別後人臉的 置信度",rF.MPYTHON_AI2_RESULT_FACE_OBJNUM_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",rF.MPYTHON_AI2_RESULT_FACE_OBJNUM_MESSAGE0="(實驗箱)獲取識別後人臉的 數量",rF.MPYTHON_AI2_RESULT_FACE_OBJNUM_TOOLTIP="獲取識別後人臉的 數量",rF.MPYTHON_AI2_20class_TRACKING_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",rF.MPYTHON_AI2_20class_TRACKING_MESSAGE0="(實驗箱)選擇訓練模型 20類",rF.MPYTHON_AI2_20class_TRACKING_TOOLTIP="可以識別20個類型,分別是0-19爲飛機,自行車,鳥,船,瓶子,公交車,汽車,貓,椅子,奶牛,餐桌,狗,屋子,摩托車,人,盆栽,羊,沙發,火車,電視",rF.MPYTHON_AI2_PHOTOGRAPH_20TRACKING_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",rF.MPYTHON_AI2_PHOTOGRAPH_20TRACKING_MESSAGE0="(實驗箱)調用攝像頭進行 20類識別",rF.MPYTHON_AI2_PHOTOGRAPH_20TRACKING_TOOLTIP="調用攝像頭進行 20類識別",rF.MPYTHON_AI2_RESULT_20CLASS_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",rF.MPYTHON_AI2_RESULT_20CLASS_MESSAGE0="(實驗箱)獲取識別後20類的 所有參數",rF.MPYTHON_AI2_RESULT_20CLASS_TOOLTIP="獲取識別後20類的 所有參數",rF.MPYTHON_AI2_RESULT_20CLASS_X_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",rF.MPYTHON_AI2_RESULT_20CLASS_X_MESSAGE0="(實驗箱)獲取識別後20類的 x座標",rF.MPYTHON_AI2_RESULT_20CLASS_X_TOOLTIP="獲取識別後20類的 x座標",rF.MPYTHON_AI2_RESULT_20CLASS_Y_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",rF.MPYTHON_AI2_RESULT_20CLASS_Y_MESSAGE0="(實驗箱)獲取識別後20類的 y座標",rF.MPYTHON_AI2_RESULT_20CLASS_Y_TOOLTIP="獲取識別後20類的 y座標",rF.MPYTHON_AI2_RESULT_20CLASS_W_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",rF.MPYTHON_AI2_RESULT_20CLASS_W_MESSAGE0="(實驗箱)獲取識別後20類的 寬度",rF.MPYTHON_AI2_RESULT_20CLASS_W_TOOLTIP="獲取識別後20類的 寬度",rF.MPYTHON_AI2_RESULT_20CLASS_H_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",rF.MPYTHON_AI2_RESULT_20CLASS_H_MESSAGE0="(實驗箱)獲取識別後20類的 高度",rF.MPYTHON_AI2_RESULT_20CLASS_H_TOOLTIP="獲取識別後20類的 高度",rF.MPYTHON_AI2_RESULT_20CLASS_VALUE_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",rF.MPYTHON_AI2_RESULT_20CLASS_VALUE_MESSAGE0="(實驗箱)獲取識別後20類的 置信度",rF.MPYTHON_AI2_RESULT_20CLASS_VALUE_TOOLTIP="獲取識別後20類的 置信度",rF.MPYTHON_AI2_RESULT_20CLASS_OBJNUM_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",rF.MPYTHON_AI2_RESULT_20CLASS_OBJNUM_MESSAGE0="(實驗箱)獲取識別後20類的 數量",rF.MPYTHON_AI2_RESULT_20CLASS_OBJNUM_TOOLTIP="獲取識別後20類的 數量",rF.MPYTHON_AI2_RESULT_20CLASS_CLASSID_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",rF.MPYTHON_AI2_RESULT_20CLASS_CLASSID_MESSAGE0="(實驗箱)獲取識別後20類的 類型",rF.MPYTHON_AI2_RESULT_20CLASS_CLASSID_TOOLTIP="可以識別20個類型,分別是0-19爲飛機,自行車,鳥,船,瓶子,公交車,汽車,貓,椅子,奶牛,餐桌,狗,屋子,摩托車,人,盆栽,羊,沙發,火車,電視",rF.MPYTHON_AI2_RESULT_20CLASS_INDEX_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",rF.MPYTHON_AI2_RESULT_20CLASS_INDEX_MESSAGE0="(實驗箱)獲取識別後20類的 類型數量",rF.MPYTHON_AI2_RESULT_20CLASS_INDEX_TOOLTIP="獲取識別後20類的 類型數量",rF.MPYTHON_AI2_NUMBER_DISCERN_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",rF.MPYTHON_AI2_NUMBER_DISCERN_MESSAGE0="(實驗箱)選擇訓練模型 手寫數字",rF.MPYTHON_AI2_NUMBER_DISCERN_TOOLTIP="選擇訓練模型 手寫數字",rF.MPYTHON_AI2_RESULT_NUMBER_DISCERN_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",rF.MPYTHON_AI2_RESULT_NUMBER_DISCERN_MESSAGE0="(實驗箱)調用攝像頭進行 手寫數字識別",rF.MPYTHON_AI2_RESULT_NUMBER_DISCERN_TOOLTIP="調用攝像頭進行 手寫數字識別",rF.MPYTHON_AI2_NUMBER_DETECT_ALL_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#id2",rF.MPYTHON_AI2_NUMBER_DETECT_ALL_MESSAGE0="(實驗箱)獲取識別後手寫數字的 所有參數",rF.MPYTHON_AI2_NUMBER_DETECT_ALL_TOOLTIP="獲取識別後手寫數字的 所有參數",rF.MPYTHON_AI2_NUMBER_DETECT_NUMBER_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#id2",rF.MPYTHON_AI2_NUMBER_DETECT_NUMBER_MESSAGE0="(實驗箱)獲取識別後手寫數字的 數字",rF.MPYTHON_AI2_NUMBER_DETECT_NUMBER_TOOLTIP="獲取識別後手寫數字的 數字",rF.MPYTHON_AI2_NUMBER_DETECT_ADIENCE_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#id2",rF.MPYTHON_AI2_NUMBER_DETECT_ADIENCE_MESSAGE0="(實驗箱)獲取識別後手寫數字的 置信度",rF.MPYTHON_AI2_NUMBER_DETECT_ADIENCE_TOOLTIP="獲取識別後手寫數字的 置信度",rF.MPYTHON_AI_IMAGE_LAB_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/image.html#%E4%BE%8B%E7%A8%8B-1%EF%BC%9A-%E6%89%BE%E7%BB%BF%E8%89%B2",rF.MPYTHON_AI_IMAGE_LAB_MESSAGE0="寻找颜色 LAB值%1",rF.MPYTHON_AI_IMAGE_LAB_TOOLTIP="image寻找颜色",rF.MPYTHON_AI_TRACE_COLOR_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.find_blobs",rF.MPYTHON_AI_TRACE_COLOR_MESSAGE0="(實驗箱)追蹤色塊 LAB顏色%1 邊界框小於%2 像素小於%3 過濾",rF.MPYTHON_AI_TRACE_COLOR_TOOLTIP="追蹤色塊",rF.MPYTHON_AI_TRACE_CILOR_DISPLAYTEN_HELPURL="",rF.MPYTHON_AI_TRACE_CILOR_DISPLAYTEN_MESSAGE0="(實驗箱)追蹤色塊 顯示%1",rF.MPYTHON_AI_TRACE_CILOR_DISPLAYTEN_TOOLTIP="",rF.MPYTHON_AI_BLOB_ALL_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#blob",rF.MPYTHON_AI_BLOB_ALL_MESSAGE0="(實驗箱)%1獲取識別後色塊的 所有參數",rF.MPYTHON_AI_BLOB_ALL_TOOLTIP="返回blob 類 -- 色塊對象",rF.MPYTHON_AI_BLOB_X_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#blob",rF.MPYTHON_AI_BLOB_X_MESSAGE0="(實驗箱)%1獲取識別後色塊的 x座標",rF.MPYTHON_AI_BLOB_X_TOOLTIP="返回blob 類 -- 色塊對象",rF.MPYTHON_AI_BLOB_Y_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#blob",rF.MPYTHON_AI_BLOB_Y_MESSAGE0="(實驗箱)%1獲取識別後色塊的 y座標",rF.MPYTHON_AI_BLOB_Y_TOOLTIP="返回blob 類 -- 色塊對象",rF.MPYTHON_AI_BLOB_W_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#blob",rF.MPYTHON_AI_BLOB_W_MESSAGE0="(實驗箱)%1獲取識別後色塊的 寬度",rF.MPYTHON_AI_BLOB_W_TOOLTIP="返回blob 類 -- 色塊對象",rF.MPYTHON_AI_BLOB_H_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#blob",rF.MPYTHON_AI_BLOB_H_MESSAGE0="(實驗箱)%1獲取識別後色塊的 高度",rF.MPYTHON_AI_BLOB_H_TOOLTIP="返回blob 類 -- 色塊對象",rF.MPYTHON_AI_BLOB_NUMBER_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#blob",rF.MPYTHON_AI_BLOB_NUMBER_MESSAGE0="(實驗箱)%1獲取識別後色塊的 數量",rF.MPYTHON_AI_BLOB_NUMBER_TOOLTIP="返回blob 類 -- 色塊對象",rF.MPYTHON_AI_BLOB_CENTER_X_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#blob",rF.MPYTHON_AI_BLOB_CENTER_X_MESSAGE0="(實驗箱)%1獲取識別後色塊的 中心x座標",rF.MPYTHON_AI_BLOB_CENTER_X_TOOLTIP="返回blob 類 -- 色塊對象",rF.MPYTHON_AI_BLOB_CENTER_Y_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#blob",rF.MPYTHON_AI_BLOB_CENTER_Y_MESSAGE0="(實驗箱)%1獲取識別後色塊的 中心y座標",rF.MPYTHON_AI_BLOB_CENTER_Y_TOOLTIP="返回blob 類 -- 色塊對象",rF.MPYTHON_AI_BLOB_ORTHOGON_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#blob",rF.MPYTHON_AI_BLOB_ORTHOGON_MESSAGE0="(實驗箱)%1獲取識別後色塊的 矩形",rF.MPYTHON_AI_BLOB_ORTHOGON_TOOLTIP="返回blob 類 -- 色塊對象",rF.MPYTHON_DRILL_WEIGHT_MESSAGE0="初始化 訓練 %1",rF.MPYTHON_DRILL_WEIGHT_TOOLTIP="",rF.MPYTHON_DRILL_WEIGHT_HELPURL="",rF.MPYTHON_DRILL_LINEAR_REGRESSION_HELPURL="",rF.MPYTHON_DRILL_LINEAR_REGRESSION_MESSAGE0="實例化 線性迴歸直線",rF.MPYTHON_DRILL_LINEAR_REGRESSION_TOOLTIP="",rF.MPYTHON_DRILL_TITLE_HELPURL="",rF.MPYTHON_DRILL_TITLE_MESSAGE0="標題%1 字號%2",rF.MPYTHON_DRILL_TITLE_TOOLTIP="",rF.MPYTHON_DRILL_LABEL_HELPURL="",rF.MPYTHON_DRILL_LABEL_MESSAGE0="標籤%1 標題%2 字號%3",rF.MPYTHON_DRILL_LABEL_TOOLTIP="",rF.MPYTHON_DRILL_DRILL_REALITY_HELPURL="",rF.MPYTHON_DRILL_DRILL_REALITY_MESSAGE0="真實數據 符號標記%1 顏色爲 r%2 g%3 b%4 標題%5",rF.MPYTHON_DRILL_DRILL_REALITY_TOOLTIP="",rF.MPYTHON_DRILL_PREDICTED_REALITY_HELPURL="",rF.MPYTHON_DRILL_PREDICTED_REALITY_MESSAGE0="預測線性迴歸直線 符號標記%1 顏色爲 r%2 g%3 b%4 標題%5",rF.MPYTHON_DRILL_PREDICTED_REALITY_TOOLTIP="",rF.MPYTHON_DRILL_LEGEND_HELPURL="",rF.MPYTHON_DRILL_LEGEND_MESSAGE0="展示圖例",rF.MPYTHON_DRILL_LEGEND_TOOLTIP="",rF.MPYTHON_DRILL_SHOW_HELPURL="",rF.MPYTHON_DRILL_SHOW_MESSAGE0="顯示圖片",rF.MPYTHON_DRILL_SHOW_TOOLTIP="",rF.MPYTHON_DRILL_DRILL_PRINT_HELPURL="",rF.MPYTHON_DRILL_DRILL_PRINT_MESSAGE0="返回對應鍵值%1",rF.MPYTHON_DRILL_DRILL_PRINT_TOOLTIP="",rF.MPYTHON_DRILL_DRILL_full_line="實線",rF.MPYTHON_DRILL_DRILL_dash_line="破折線",rF.MPYTHON_DRILL_DRILL_chain_line="點劃線",rF.MPYTHON_DRILL_DRILL_imaginary_line="虛線",rF.MPYTHON_DRILL_DRILL_dot="點",rF.MPYTHON_DRILL_DRILL_pixel="像素",rF.MPYTHON_DRILL_DRILL_solid_rim="實心圈",rF.MPYTHON_DRILL_DRILL_down_triangle="下三角",rF.MPYTHON_DRILL_DRILL_up_triangle="上三角",rF.MPYTHON_DRILL_DRILL_right_triangle="右三角",rF.MPYTHON_DRILL_DRILL_left_triangle="左三角",rF.MPYTHON_DRILL_DRILL_down_flower_triangle="下花三角",rF.MPYTHON_DRILL_DRILL_up_flower_triangle="上花三角",rF.MPYTHON_DRILL_DRILL_right_flower_triangle="右花三角",rF.MPYTHON_DRILL_DRILL_left_flower_triangle="左花三角",rF.MPYTHON_DRILL_DRILL_solid_square="實心方形",rF.MPYTHON_DRILL_DRILL_solid_pentagon="實心五角",rF.MPYTHON_DRILL_DRILL_star="星形",rF.MPYTHON_DRILL_DRILL_vertical_hexagon="豎六邊形",rF.MPYTHON_DRILL_DRILL_across_hexagon="橫六邊形",rF.MPYTHON_DRILL_DRILL_cross="十字",rF.MPYTHON_DRILL_DRILL_X="X",rF.MPYTHON_DRILL_DRILL_rhombus="菱形",rF.MPYTHON_DRILL_DRILL_thin_rhombus="瘦菱形",rF.MPYTHON_DRILL_DRILL_vertical_line="垂直線",rF.MPYTHONS_FLOWER_DE_LUCE_INITIALIZE_HELPURL="",rF.MPYTHONS_FLOWER_DE_LUCE_INITIALIZE_MESSAGE0="初始化 鳶尾花數據集",rF.MPYTHONS_FLOWER_DE_LUCE_INITIALIZE_TOOLTIP="採用Python的Sklearn機器學習庫中自帶的數據集——鳶尾花數據集。簡單分析數據集之間特徵的關係圖,根據花瓣長度,花瓣寬度,花萼長度,花萼寬度四個特徵進行繪圖虹膜植物數據集可以從龍骨數據集數據集網站獲取,也可以直接從Sklearn。數據集機器學習包得到。數據集共包含4個特徵變量,1個類別變量,共150個有樣本。類別變量分別對應鳶尾花的三個亞屬,分別是山鳶尾(Iris-setosa),變色鳶尾(Iris-versicolor)和維吉尼亞鳶尾(Iris-virginica)分別用(0,1,2)來做映射",rF.MPYTHONS_FLOWER_DE_LUCE_PCA_HELPURL="",rF.MPYTHONS_FLOWER_DE_LUCE_PCA_MESSAGE0="鳶尾花 主成分分析",rF.MPYTHONS_FLOWER_DE_LUCE_PCA_TOOLTIP="",rF.MPYTHONS_FLOWER_DE_LUCE_FA3D_HELPURL="",rF.MPYTHONS_FLOWER_DE_LUCE_FA3D_MESSAGE0="鳶尾花 因子分析 3D",rF.MPYTHONS_FLOWER_DE_LUCE_FA3D_TOOLTIP="",rF.MPYTHONS_FLOWER_DE_LUCE_FA_HELPURL="",rF.MPYTHONS_FLOWER_DE_LUCE_FA_MESSAGE0="鳶尾花 因子分析",rF.MPYTHONS_FLOWER_DE_LUCE_FA_TOOLTIP="",rF.MPYTHONS_FLOWER_DE_LUCE_PCA_DISPLAY_HELPURL="",rF.MPYTHONS_FLOWER_DE_LUCE_PCA_DISPLAY_MESSAGE0="預測圖示 鳶尾花類型%1 呈現內容 x%3 y%4 呈現種類%2 顏色爲 r%5 g%6 b%7 標題%8 向上合併%9",rF.MPYTHONS_FLOWER_DE_LUCE_PCA_DISPLAY_TOOLTIP="",rF.MPYTHONS_FLOWER_DE_LUCE_DATA_HELPURL="",rF.MPYTHONS_FLOWER_DE_LUCE_DATA_MESSAGE0="預測圖示 呈現內容 x%1 y%2 呈現種類%3 顏色爲 r%4 g%5 b%6 標題%7",rF.MPYTHONS_FLOWER_DE_LUCE_DATA_TOOLTIP="",rF.MPYTHONS_FLOWER_DE_LUCE_DATA3D_HELPURL="",rF.MPYTHONS_FLOWER_DE_LUCE_DATA3D_MESSAGE0="3D 預測圖示 呈現內容 x朝向%1 y朝向%2 z朝向%3 顏色爲 r%4 g%5 b%6 標題%7",rF.MPYTHONS_FLOWER_DE_LUCE_DATA3D_TOOLTIP="",rF.MPYTHONS_FLOWER_DE_LUCE_TITLE_HELPURL="",rF.MPYTHONS_FLOWER_DE_LUCE_TITLE_MESSAGE0="標題%1 字號%2",rF.MPYTHONS_FLOWER_DE_LUCE_TITLE_TOOLTIP="",rF.MPYTHONS_FLOWER_DE_LUCE_LABEL_HELPURL="",rF.MPYTHONS_FLOWER_DE_LUCE_LABEL_MESSAGE0="標籤%1 標題%2 字號%3",rF.MPYTHONS_FLOWER_DE_LUCE_LABEL_TOOLTIP="",rF.MPYTHONS_FLOWER_DE_LUCE_TITLE3D_HELPURL="",rF.MPYTHONS_FLOWER_DE_LUCE_TITLE3D_MESSAGE0="3D 標題%1 字號%2",rF.MPYTHONS_FLOWER_DE_LUCE_TITLE3D_TOOLTIP="",rF.MPYTHONS_FLOWER_DE_LUCE_LABEL3D_HELPURL="",rF.MPYTHONS_FLOWER_DE_LUCE_LABEL3D_MESSAGE0="3D 標籤%1 標題%2 字號%3",rF.MPYTHONS_FLOWER_DE_LUCE_LABEL3D_TOOLTIP="",rF.MPYTHONS_FLOWER_DE_LUCE_LEGEND_HELPURL="",rF.MPYTHONS_FLOWER_DE_LUCE_LEGEND_MESSAGE0="展示圖例",rF.MPYTHONS_FLOWER_DE_LUCE_LEGEND_TOOLTIP="",rF.MPYTHONS_FLOWER_DE_LUCE_SHOW_HELPURL="",rF.MPYTHONS_FLOWER_DE_LUCE_SHOW_MESSAGE0="顯示圖片",rF.MPYTHONS_FLOWER_DE_LUCE_SHOW_TOOLTIP="",rF.MPYTHONS_FLOWER_DE_LUCE_LOAD_IRIS_HELPURL="",rF.MPYTHONS_FLOWER_DE_LUCE_LOAD_IRIS_MESSAGE0="花萼和花瓣的x, y座標",rF.MPYTHONS_FLOWER_DE_LUCE_LOAD_IRIS_TOOLTIP="共150條記錄,分別代表50條山鳶尾(Iris-setosa),變色鳶尾(Iris-versicolor),維吉尼亞鳶尾(Iris-virginica)",rF.MPYTHONS_FLOWER_DE_LUCE_Iris_setosa="山鳶尾",rF.MPYTHONS_FLOWER_DE_LUCE_Iris_versicolor="變色鳶尾",rF.MPYTHONS_FLOWER_DE_LUCE_Iris_virginica="維吉尼亞鳶尾",rF.MPYTHONS_FLOWER_DE_LUCE_scatter_diagram="散點圖",rF.MPYTHONS_FLOWER_DE_LUCE_kde_diagram="kde圖",rF.MPYTHONS_FLOWER_DE_LUCE_box_diagram="箱圖",rF.MPYTHONS_FLOWER_DE_LUCE_merge="合並",rF.MPYTHONS_FLOWER_DE_LUCE_not_merge="不合並",rF.MPYTHONS_FLOWER_DE_LUCE_calyx_length="花萼長度",rF.MPYTHONS_FLOWER_DE_LUCE_calyx_width="花萼寬度",rF.MPYTHONS_FLOWER_DE_LUCE_petal_length="花瓣長度",rF.MPYTHONS_FLOWER_DE_LUCE_petal_width="花瓣寬度",rF.MPYTHONS_CONVERT_PICTURE_HELPURL="",rF.MPYTHONS_CONVERT_PICTURE_MESSAGE0="將圖片轉換爲28²二值圖%1 待處理的圖片存儲路徑%2 處理後的圖片存儲路徑%3 格式%4",rF.MPYTHONS_CONVERT_PICTURE_TOOLTIP="掌控板通過串口把WIF傳給語音助手",rF.MPYTHONS_NUMBER_REPERTOIRE_HELPURL="",rF.MPYTHONS_NUMBER_REPERTOIRE_MESSAGE0="查找解析 手寫數字數 據存儲路徑%1",rF.MPYTHONS_NUMBER_REPERTOIRE_TOOLTIP="使用手寫數字字符庫",rF.MPYTHONS_SHOW_NUMBER_PATH_HELPURL="",rF.MPYTHONS_SHOW_NUMBER_PATH_MESSAGE0="手寫數字圖像 存儲路徑%1",rF.MPYTHONS_SHOW_NUMBER_PATH_TOOLTIP="",rF.MPYTHONS_SHOW_NUMBER_HELPURL="",rF.MPYTHONS_SHOW_NUMBER_MESSAGE0="顯示手寫數字圖像",rF.MPYTHONS_SHOW_NUMBER_TOOLTIP="",rF.MPYTHONS_NUMBER_RECOGNITION_HELPURL="",rF.MPYTHONS_NUMBER_RECOGNITION_MESSAGE0="識別手寫數字圖像 存儲路徑%1",rF.MPYTHONS_NUMBER_RECOGNITION_TOOLTIP="",rF.MPYTHONS_NUMBER_PLACEHOLDER_HELPURL="",rF.MPYTHONS_NUMBER_PLACEHOLDER_MESSAGE0="創建變量%1 初始化 神經網絡張量 變量名%2",rF.MPYTHONS_NUMBER_PLACEHOLDER_TOOLTIP="",rF.MPYTHON_DRILL_RESHAPE_MESSAGE0="創建變量%1 將輸入照片變量%2 轉換爲 神經網絡輸出張量%3",rF.MPYTHON_DRILL_RESHAPE_TOOLTIP="",rF.MPYTHON_DRILL_RESHAPE_HELPURL="",rF.MPYTHON_NUMBER_CONV_WEIGHT_MESSAGE0="創建變量%1 共享變量%2 初始化模式%3",rF.MPYTHON_NUMBER_CONV_WEIGHT_TOOLTIP="",rF.MPYTHON_NUMBER_CONV_WEIGHT_HELPURL="",rF.MPYTHON_NUMBER_INITIALIZER_MESSAGE0="產生截斷正態分佈隨機數 輸出張量%1 標準差%2",rF.MPYTHON_NUMBER_INITIALIZER_TOOLTIP="",rF.MPYTHON_NUMBER_INITIALIZER_HELPURL="",rF.MPYTHON_NUMBER_CONSTANT_MESSAGE0="創建常量 數值%1 輸出張量%2",rF.MPYTHON_NUMBER_CONSTANT_TOOLTIP="",rF.MPYTHON_NUMBER_CONSTANT_HELPURL="",rF.MPYTHON_NUMBER_CONV2D_MESSAGE0="神經網絡輸出張量%1 共享變量%2 步長%3 填充%4",rF.MPYTHON_NUMBER_CONV2D_TOOLTIP="",rF.MPYTHON_NUMBER_CONV2D_HELPURL="",rF.MPYTHON_NUMBER_CONV_BIASES_MESSAGE0="張量%1",rF.MPYTHON_NUMBER_CONV_BIASES_TOOLTIP="",rF.MPYTHON_NUMBER_CONV_BIASES_HELPURL="",rF.MPYTHON_NUMBER_CONV_CONV2D_MESSAGE0="卷積二維層 變量%1 %2",rF.MPYTHON_NUMBER_CONV_CONV2D_TOOLTIP="",rF.MPYTHON_NUMBER_CONV_CONV2D_HELPURL="",rF.MPYTHON_NUMBER_RELU_MESSAGE0="創建變量%1 Relu正向激勵函數 卷積二維層%2",rF.MPYTHON_NUMBER_RELU_TOOLTIP="",rF.MPYTHON_NUMBER_RELU_HELPURL="",rF.MPYTHON_NUMBER_MAX_POOL_MESSAGE0="池化二維層 變量%1 卷積層%2 池化窗口%3 步長%4 填充%5",rF.MPYTHON_NUMBER_MAX_POOL_TOOLTIP="",rF.MPYTHON_NUMBER_MAX_POOL_HELPURL="",rF.MPYTHON_NUMBER_MATMUL_MESSAGE0="兩個參數的對應元素各自相乘 x%1 y%2",rF.MPYTHON_NUMBER_MATMUL_TOOLTIP="",rF.MPYTHON_NUMBER_MATMUL_HELPURL="",rF.MPYTHON_NUMBER_ADD_MESSAGE0="全連接層 變量%1 兩個參數的元素相加 x%2 y%3",rF.MPYTHON_NUMBER_ADD_TOOLTIP="",rF.MPYTHON_NUMBER_ADD_HELPURL="",rF.MPYTHON_NUMBER_SOFTMAX_MESSAGE0="創建變量%1 預測模型準確度 變量名%2",rF.MPYTHON_NUMBER_SOFTMAX_TOOLTIP="",rF.MPYTHON_NUMBER_SOFTMAX_HELPURL="",rF.MPYTHON_NUMBER_REDUCE_MEAN_MESSAGE0="創建變量%1 損失函數%2",rF.MPYTHON_NUMBER_REDUCE_MEAN_TOOLTIP="",rF.MPYTHON_NUMBER_REDUCE_MEAN_HELPURL="",rF.MPYTHON_NUMBER_LOG_MESSAGE0="自然對數 %1",rF.MPYTHON_NUMBER_LOG_TOOLTIP="",rF.MPYTHON_NUMBER_LOG_HELPURL="",rF.MPYTHON_NUMBER_REDUCE_SUM_MESSAGE0="壓縮求和%1 維度%2",rF.MPYTHON_NUMBER_REDUCE_SUM_TOOLTIP="因爲日誌函數是單調遞增的,所以logP (Y | X)也會達到最大值,因此在前面加上負號之後,最大化P (Y | X)就等價於最小化了。",rF.MPYTHON_NUMBER_REDUCE_SUM_HELPURL="https://www.cnblogs.com/guoyaohua/p/9217206.html",rF.MPYTHON_NUMBER_TRAIN_MESSAGE0="優化學習速率 %1",rF.MPYTHON_NUMBER_TRAIN_TOOLTIP="",rF.MPYTHON_NUMBER_TRAIN_HELPURL="",rF.MPYTHON_NUMBER_MINIMIZE_MESSAGE0="創建變量%1 優化張量%2",rF.MPYTHON_NUMBER_MINIMIZE_TOOLTIP="",rF.MPYTHON_NUMBER_MINIMIZE_HELPURL="",rF.MPYTHON_NUMBER_INIT_MESSAGE0="初始化模型 完成",rF.MPYTHON_NUMBER_INIT_TOOLTIP="",rF.MPYTHON_NUMBER_INIT_HELPURL="",rF.MPYTHON_NUMBER_TRAIN_TEST_MESSAGE0="選擇 手寫數字集%1 數量%2",rF.MPYTHON_NUMBER_TRAIN_TEST_TOOLTIP="",rF.MPYTHON_NUMBER_TRAIN_TEST_HELPURL="",rF.MPYTHON_NUMBER_SESSION_RUN_MESSAGE0="啓動數據流圖會話進行計算 會話%1 圖片%2 標籤%3",rF.MPYTHON_NUMBER_SESSION_RUN_TOOLTIP="",rF.MPYTHON_NUMBER_SESSION_RUN_HELPURL="",rF.MPYTHON_NUMBER_SESSION_RUN2_MESSAGE0="啓動數據流圖會話進行計算 會話%1 圖片%2 標籤%3",rF.MPYTHON_NUMBER_SESSION_RUN2_TOOLTIP="",rF.MPYTHON_NUMBER_SESSION_RUN2_HELPURL="",rF.MPYTHON_NUMBER_SESSION_RUN3_MESSAGE0="預測模型%1 擬合度%2 會話%3",rF.MPYTHON_NUMBER_SESSION_RUN3_TOOLTIP="",rF.MPYTHON_NUMBER_SESSION_RUN3_HELPURL="",rF.MPYTHON_NUMBER_EQUAL_MESSAGE0="兩個張量的每一維是否相等 x%1 y%2",rF.MPYTHON_NUMBER_EQUAL_TOOLTIP="",rF.MPYTHON_NUMBER_EQUAL_HELPURL="",rF.MPYTHON_NUMBER_ARGMAX_MESSAGE0="張量%1 按%2比較返回最大值的索引",rF.MPYTHON_NUMBER_ARGMAX_TOOLTIP="",rF.MPYTHON_NUMBER_ARGMAX_HELPURL="",rF.MPYTHON_NUMBER_CAST_MESSAGE0="轉爲浮點型 %1",rF.MPYTHON_NUMBER_CAST_TOOLTIP="",rF.MPYTHON_NUMBER_CAST_HELPURL="",rF.MPYTHONS_NUMBER_SAVER_SAVE_HELPURL="",rF.MPYTHONS_NUMBER_SAVER_SAVE_MESSAGE0="手寫數字識別模型 變量名%1 存儲路徑%2",rF.MPYTHONS_NUMBER_SAVER_SAVE_TOOLTIP="MNIST手寫數字識別模型保存路徑",rF.MPYTHONS_NUMBER_SAVER_RESTORE_HELPURL="",rF.MPYTHONS_NUMBER_SAVER_RESTORE_MESSAGE0="加載模型%1 存儲路徑%2",rF.MPYTHONS_NUMBER_SAVER_RESTORE_TOOLTIP="",rF.MPYTHONS_NUMBER_SAME="包含邊界",rF.MPYTHONS_NUMBER_VALID="不包含邊界",rF.MPYTHONS_NUMBER_train="訓練",rF.MPYTHONS_NUMBER_test="測試",rF.MPYTHONS_NUMBER_row="行",rF.MPYTHONS_NUMBER_rank="列",rF.MPYTHONS_FACE_RECOGNITION_CAMERA_HELPURL="",rF.MPYTHONS_FACE_RECOGNITION_CAMERA_MESSAGE0="調用攝像頭 %1",rF.MPYTHONS_FACE_RECOGNITION_CAMERA_TOOLTIP="調用筆記本內置攝像頭,所以參數爲0,如果有其他的攝像頭可以調整參數爲1,2",rF.MPYTHONS_FACE_RECOGNITION_CAMERA_OFF_HELPURL="",rF.MPYTHONS_FACE_RECOGNITION_CAMERA_OFF_MESSAGE0="關閉攝像頭",rF.MPYTHONS_FACE_RECOGNITION_CAMERA_OFF_TOOLTIP="",rF.MPYTHONS_FACE_RECOGNITION_WINDOWS_DELETE_HELPURL="",rF.MPYTHONS_FACE_RECOGNITION_WINDOWS_DELETE_MESSAGE0="刪除所有窗口",rF.MPYTHONS_FACE_RECOGNITION_WINDOWS_DELETE_TOOLTIP="",rF.MPYTHONS_FACE_RECOGNITION_IMPORT_MODEL_SITE_HELPURL="",rF.MPYTHONS_FACE_RECOGNITION_IMPORT_MODEL_SITE_MESSAGE0="加載模型 存儲路徑%1",rF.MPYTHONS_FACE_RECOGNITION_IMPORT_MODEL_SITE_TOOLTIP="",rF.MPYTHONS_FACE_RECOGNITION_READ_IMAGES_HELPURL="",rF.MPYTHONS_FACE_RECOGNITION_READ_IMAGES_MESSAGE0="從攝像頭讀取圖片",rF.MPYTHONS_FACE_RECOGNITION_READ_IMAGES_TOOLTIP="ret如果有讀取圖片就真的,否則假;第二個參數是框架,是當前截取一幀的圖片。",rF.MPYTHONS_FACE_RECOGNITION_GRAY_IMAGES_HELPURL="",rF.MPYTHONS_FACE_RECOGNITION_GRAY_IMAGES_MESSAGE0="轉爲灰度圖片",rF.MPYTHONS_FACE_RECOGNITION_GRAY_IMAGES_TOOLTIP="",rF.MPYTHONS_FACE_RECOGNITION_DETECTION_FACES_HELPURL="",rF.MPYTHONS_FACE_RECOGNITION_DETECTION_FACES_MESSAGE0="檢測人臉 每次圖像尺寸減小比例%1",rF.MPYTHONS_FACE_RECOGNITION_DETECTION_FACES_TOOLTIP="",rF.MPYTHONS_FACE_DISPLAY_RECOGNITION_ORTHOGON_HELPURL="",rF.MPYTHONS_FACE_DISPLAY_RECOGNITION_ORTHOGON_MESSAGE0="人臉區域顯示矩形框 顏色爲 紅%1 綠%2 藍%3",rF.MPYTHONS_FACE_DISPLAY_RECOGNITION_ORTHOGON_TOOLTIP="",rF.MPYTHONS_FACE_RECOGNITIONR_PSTORAGE_PICTURE_HELPURL="",rF.MPYTHONS_FACE_RECOGNITIONR_PSTORAGE_PICTURE_MESSAGE0="保存圖像 位置%1 ID%2 編號%3",rF.MPYTHONS_FACE_RECOGNITIONR_PSTORAGE_PICTURE_TOOLTIP="",rF.MPYTHONS_FACE_RECOGNITIONR_PRESERVE_PICTURE_HELPURL="",rF.MPYTHONS_FACE_RECOGNITIONR_PRESERVE_PICTURE_MESSAGE0="窗口中顯示圖像 文件名%1",rF.MPYTHONS_FACE_RECOGNITIONR_PRESERVE_PICTURE_TOOLTIP="",rF.MPYTHONS_FACE_RECOGNITIONR_ESC_HELPURL="",rF.MPYTHONS_FACE_RECOGNITIONR_ESC_MESSAGE0="通過esc鍵 退出",rF.MPYTHONS_FACE_RECOGNITIONR_ESC_TOOLTIP="在窗口置頂時使用纔有效果",rF.MPYTHONS_FACE_RECOGNITIONR_HELPURL="",rF.MPYTHONS_FACE_RECOGNITIONR_MESSAGE0="獲得人臉在圖像中的座標值 人臉%1",rF.MPYTHONS_FACE_RECOGNITIONR_TOOLTIP="",rF.MPYTHONS_FACE_RECOGNITION_JUDGE_FACES_HELPURL="",rF.MPYTHONS_FACE_RECOGNITION_JUDGE_FACES_MESSAGE0="是否讀取圖片",rF.MPYTHONS_FACE_RECOGNITION_JUDGE_FACES_TOOLTIP="",rF.MPYTHONS_FACE_RECOGNITION_JUDGE_CAMERA_HELPURL="",rF.MPYTHONS_FACE_RECOGNITION_JUDGE_CAMERA_MESSAGE0="是否打開攝像頭",rF.MPYTHONS_FACE_RECOGNITION_JUDGE_CAMERA_TOOLTIP="",rF.MPYTHONS_FACE_RECOGNITION_ACQUIRE_ID_PICTURE_HELPURL="",rF.MPYTHONS_FACE_RECOGNITION_ACQUIRE_ID_PICTURE_MESSAGE0="獲取照片及id 照片存儲路徑%1",rF.MPYTHONS_FACE_RECOGNITION_ACQUIRE_ID_PICTURE_TOOLTIP="",rF.MPYTHONS_FACE_RECOGNITION_INITIALIZE_TRANI_MODEL_HELPURL="",rF.MPYTHONS_FACE_RECOGNITION_INITIALIZE_TRANI_MODEL_MESSAGE0="初始化訓練模型",rF.MPYTHONS_FACE_RECOGNITION_INITIALIZE_TRANI_MODEL_TOOLTIP="",rF.MPYTHONS_FACE_RECOGNITION_START_DRILL_HELPURL="",rF.MPYTHONS_FACE_RECOGNITION_START_DRILL_MESSAGE0="開始訓練模型",rF.MPYTHONS_FACE_RECOGNITION_START_DRILL_TOOLTIP="",rF.MPYTHONS_FACE_RECOGNITION_STORAGE_DRILL_MODEL_HELPURL="",rF.MPYTHONS_FACE_RECOGNITION_STORAGE_DRILL_MODEL_MESSAGE0="%1訓練模型 存儲路徑%2",rF.MPYTHONS_FACE_RECOGNITION_STORAGE_DRILL_MODEL_TOOLTIP="",rF.MPYTHONS_FACE_RECOGNITION_DRILL_NUMBERS_HELPURL="",rF.MPYTHONS_FACE_RECOGNITION_DRILL_NUMBERS_MESSAGE0="人臉模型訓練 數目",rF.MPYTHONS_FACE_RECOGNITION_DRILL_NUMBERS_TOOLTIP="",rF.MPYTHONS_FACE_RECOGNITION_FONT_HELPURL="",rF.MPYTHONS_FACE_RECOGNITION_FONT_MESSAGE0="窗口顯示 識別的名字%1 設置字體爲%2 顏色爲 紅%3 綠%4 藍%5",rF.MPYTHONS_FACE_RECOGNITION_FONT_TOOLTIP="",rF.MPYTHONS_FACE_RECOGNITION_PERCENT_HELPURL="",rF.MPYTHONS_FACE_RECOGNITION_PERCENT_MESSAGE0="窗口顯示 識別的置信度%1 設置字體爲%2 顏色爲 紅%3 綠%4 藍%5",rF.MPYTHONS_FACE_RECOGNITION_PERCENT_TOOLTIP="",rF.MPYTHONS_FACE_RECOGNITION_FORECAST_FACE_INITIALIZE_HELPURL="",rF.MPYTHONS_FACE_RECOGNITION_FORECAST_FACE_INITIALIZE_MESSAGE0="預測人臉 名字%1 置信度%2",rF.MPYTHONS_FACE_RECOGNITION_FORECAST_FACE_INITIALIZE_TOOLTIP="",rF.MPYTHONS_FACE_RECOGNITION_FORECAST_Write="寫入",rF.MPYTHONS_FACE_RECOGNITION_FORECAST_Read="讀取",rF.MPYTHONS_DIALOGUE_ROBOT_INITIALIZE_HELPURL="",rF.MPYTHONS_DIALOGUE_ROBOT_INITIALIZE_MESSAGE0="初始化 聊天机器人",rF.MPYTHONS_ADIALOGUE_ROBOT_INITIALIZE_TOOLTIP="",rF.MPYTHONS_DIALOGUE_ROBOT_CHOOSE_HELPURL="",rF.MPYTHONS_DIALOGUE_ROBOT_CHOOSE_MESSAGE0="选择训练器 聊天机器人",rF.MPYTHONS_ADIALOGUE_ROBOT_CHOOSE_TOOLTIP="",rF.MPYTHONS_DIALOGUE_ROBOT_START_HELPURL="",rF.MPYTHONS_DIALOGUE_ROBOT_START_MESSAGE0="选择与%1 聊天",rF.MPYTHONS_ADIALOGUE_ROBOT_START_TOOLTIP="",rF.MPYTHONS_ADIALOGUE_ROBOT_CORPUS_HELPURL="",rF.MPYTHONS_ADIALOGUE_ROBOT_CORPUS_TOOLTIP="",rF.MPYTHONS_ADIALOGUE_ROBOT_CORPUS_MESSAGE0="自定义 语料库 %1[%2]",rF.MPYTHONS_ADIALOGUE_ROBOT_MY_FAQs_HELPURL="",rF.MPYTHONS_ADIALOGUE_ROBOT_MY_FAQs_MESSAGE0="输入对话 获得响应 %1",rF.MPYTHONS_ADIALOGUE_ROBOT_MY_FAQs_TOOLTIP="",rF.MPYTHONS_ADIALOGUE_ROBOT_FAQs_RETURN_MESSAGE0="识别响应",rF.MPYTHONS_ADIALOGUE_ROBOT_FAQs_RETURN_TOOLTIP="",rF.MPYTHONS_ADIALOGUE_ROBOT_FAQs_RETURN_HELPURL="",rF.MPYTHONS_ADIALOGUE_ROBOT_CORPUS2_HELPURL="",rF.MPYTHONS_ADIALOGUE_ROBOT_CORPUS2_MESSAGE0="选择跟 %1 聊天",rF.MPYTHONS_ADIALOGUE_ROBOT_CORPUS2_TOOLTIP="",rF.Jenny="珍妮",rF.Jack="杰克",rF.Tom="汤姆",rF.MPYTHONS_ADIALOGUE_ROBOT_FEED_HELPURL="",rF.MPYTHONS_ADIALOGUE_ROBOT_FEED_MESSAGE0="选择 %1 %2 模式%3 %4 喂养%5",rF.MPYTHONS_ADIALOGUE_ROBOT_FEED_TOOLTIP="",rF.MPYTHONS_ADIALOGUE_READ_TRAINING_LIBRARY_HELPURL="",rF.MPYTHONS_ADIALOGUE_READ_TRAINING_LIBRARY_MESSAGE0="查看训练库 选择%1",rF.MPYTHONS_ADIALOGUE_READ_TRAINING_LIBRARY_TOOLTIP="",rF.MPYTHON_GESTURE_RANDOM_NUMBER_HELPURL="",rF.MPYTHON_GESTURE_RANDOM_NUMBER_MESSAGE0="生成随机数 %1",rF.MPYTHON_GESTURE_RANDOM_NUMBER_TOOLTIP="",rF.MPYTHON_AGESTURE_SHOW_WINDOW_HELPURL="",rF.MPYTHON_AGESTURE_SHOW_WINDOW_MESSAGE0="显示窗口",rF.MPYTHON_AGESTURE_SHOW_WINDOW_TOOLTIP="",rF.MPYTHON_AGESTURE_IMSHOW_HELPURL="",rF.MPYTHON_AGESTURE_IMSHOW_MESSAGE0="处理图像 %1",rF.MPYTHON_AGESTURE_IMSHOW_TOOLTIP="",rF.MPYTHON_AGESTURE_TRAIN_MODEL_HELPURL="",rF.MPYTHON_AGESTURE_TRAIN_MODEL_MESSAGE0="选择训练库 knn模型",rF.MPYTHON_AGESTURE_TRAIN_MODEL_TOOLTIP="",rF.MPYTHON_AGESTURE_LOAD_MODEL_HELPURL="",rF.MPYTHON_AGESTURE_LOAD_MODEL_MESSAGE0="载入knn模型 存储路径%1",rF.MPYTHON_AGESTURE_LOAD_MODEL_TOOLTIP="",rF.MPYTHON_AGESTURE_OPEN_IMAGES_HELPURL="",rF.MPYTHON_AGESTURE_OPEN_IMAGES_MESSAGE0="%1打开图片 存储路径%2 图片名%3",rF.MPYTHON_AGESTURE_OPEN_IMAGES_TOOLTIP="",rF.MPYTHON_AGESTURE_ARRAY_MESSAGE0="选择%1 构建特征数据%2",rF.MPYTHON_AGESTURE_ARRAY_TOOLTIP="",rF.MPYTHON_AGESTURE_ARRAY_HELPURL="",rF.MPYTHON_GESTURE_RANDOM_RANK_MESSAGE0="打乱排序%1 ",rF.MPYTHON_GESTURE_RANDOM_RANK_TOOLTIP="",rF.MPYTHON_GESTURE_RANDOM_RANK_HELPURL="",rF.MPYTHON_GESTURE_READ_LEND_MESSAGE0=" %1 图片特征",rF.MPYTHON_GESTURE_READ_LEND_TOOLTIP="",rF.MPYTHON_GESTURE_READ_LEND_HELPURL="",rF.MPYTHON_GESTURE_START_SRAIN_HELPURL="",rF.MPYTHON_GESTURE_START_SRAIN_MESSAGE0="开始训练 手势识别 期望%1 目标%2",rF.MPYTHON_GESTURE_START_SRAIN_TOOLTIP="",rF.MPYTHON_GESTURE_SCORE_HELPURL="",rF.MPYTHON_GESTURE_SCORE_MESSAGE0="进行评分 期望%1 目标%2",rF.MPYTHON_GESTURE_SCORE_TOOLTIP="",rF.MPYTHON_GESTURE_DIMENSIONALITY_REDUCTION_HELPURL="",rF.MPYTHON_GESTURE_DIMENSIONALITY_REDUCTION_TOOLTIP="",rF.MPYTHON_GESTURE_DIMENSIONALITY_REDUCTION_MESSAGE0="%1 数组降维 图片总数%2",rF.MPYTHON_GESTURE_FORECAST_HELPURL="",rF.MPYTHON_GESTURE_FORECAST_TOOLTIP="",rF.MPYTHON_GESTURE_FORECAST_MESSAGE0="预测结果%1",rF.MPYTHON_AGESTURE_SAVE_MODEL_HELPURL="",rF.MPYTHON_AGESTURE_SAVE_MODEL_MESSAGE0="保存模型 存储路径%1",rF.MPYTHON_AGESTURE_SAVE_MODEL_TOOLTIP="",rF.MPYTHON_AGESTURE_FORECAST_PICTURE_HELPURL="",rF.MPYTHON_AGESTURE_FORECAST_PICTURE_MESSAGE0="%1图片 预测图片 ",rF.MPYTHON_AGESTURE_FORECAST_PICTURE_TOOLTIP="",rF.MPYTHON_GESTURE_PICTURE_DIMENSIONALITY_REDUCTION_HELPURL="",rF.MPYTHON_GESTURE_PICTURE_DIMENSIONALITY_REDUCTION_TOOLTIP="",rF.MPYTHON_GESTURE_PICTURE_DIMENSIONALITY_REDUCTION_MESSAGE0="%1 彩色图像降维",rF.MPYTHONS_FACEAI_READ_PICTURE_PATH_HELPURL="",rF.MPYTHONS_FACEAI_READ_PICTURE_PATH_MESSAGE0="选择人脸库 图片存储路径%1",rF.MPYTHONS_FACEAI_READ_PICTURE_PATH_TOOLTIP="",rF.MPYTHONS_FACEAI_RECOGNITION_IMPORT_MODEL_SITE_HELPURL="",rF.MPYTHONS_FACEAI_RECOGNITION_IMPORT_MODEL_SITE_MESSAGE0="加载模型 存储路径%1",rF.MPYTHONS_FACEAI_RECOGNITION_IMPORT_MODEL_SITE_TOOLTIP="",rF.MPYTHONS_FACEAI_FACE_GENDER_DETECTION_RETURN_HELPURL="",rF.MPYTHONS_FACEAI_FACE_GENDER_DETECTION_RETURN_MESSAGE0="第%1位人脸性别结果 置信度",rF.MPYTHONS_FACEAI_FACE_GENDER_DETECTION_RETURN_TOOLTIP="",rF.MPYTHONS_FACEAI_FACE_EMOTION_DETECTION_RETURN_HELPURL="",rF.MPYTHONS_FACEAI_FACE_EMOTION_DETECTION_RETURN_MESSAGE0="第%1位人脸情绪结果 置信度",rF.MPYTHONS_FACEAI_FACE_EMOTION_DETECTION_RETURN_TOOLTIP="",rF.MPYTHONS_FACEAI_FACE_GENDER_RESULT_HELPURL="",rF.MPYTHONS_FACEAI_FACE_GENDER_RESULT_MESSAGE0="第%1位人脸性别 结果",rF.MPYTHONS_FACEAI_FACE_GENDER_RESULT_TOOLTIP="",rF.MPYTHONS_FACEAI_FACE_EMOTION_RESULT_HELPURL="",rF.MPYTHONS_FACEAI_FACE_EMOTION_RESULT_MESSAGE0="第%1位人脸情绪 结果",rF.MPYTHONS_FACEAI_FACE_EMOTION_RESULT_TOOLTIP="",rF.MPYTHON_FACEAI_CHOOSE_FACE_POOL_HELPURL="",rF.MPYTHON_FACEAI_CHOOSE_FACE_POOL_MESSAGE0="选择人脸库 %1",rF.MPYTHON_FACEAI_CHOOSE_FACE_POOL_TOOLTIP="",rF.MPYTHONS_FACEAI_FACE_EMOTION_RETURN_HELPURL="",rF.MPYTHONS_FACEAI_FACE_EMOTION_RETURN_MESSAGE0="第%1位情绪为 %2",rF.MPYTHONS_FACEAI_FACE_EMOTION_RETURN_TOOLTIP="",rF.MPYTHONS_FACEAI_FACE_GENDER_RETURN_HELPURL="",rF.MPYTHONS_FACEAI_FACE_GENDER_RETURN_MESSAGE0="第%1位性别为 %2",rF.MPYTHONS_FACEAI_FACE_GENDER_RETURN_TOOLTIP="",rF.MPYTHONS_FACEAI_FACE_NUMBER_RETURN_HELPURL="",rF.MPYTHONS_FACEAI_FACE_NUMBER_RETURN_MESSAGE0="人脸数量",rF.MPYTHONS_FACEAI_FACE_NUMBER_RETURN_TOOLTIP="",rF.MPYTHONS_FACEAI_FACE_EXPRESSION_RETURN_HELPURL="",rF.MPYTHONS_FACEAI_FACE_EXPRESSION_RETURN_MESSAGE0="表情数量",rF.MPYTHONS_FACEAI_FACE_EXPRESSION_RETURN_TOOLTIP="",rF.MPYTHONS_FACEAI_FACE_RECOGNITION_VEDIO_RETURN_HELPURL="",rF.MPYTHONS_FACEAI_FACE_RECOGNITION_VEDIO_RETURN_MESSAGE0="人脸实时检测 %1",rF.MPYTHONS_FACEAI_FACE_RECOGNITION_VEDIO_RETURN_TOOLTIP="",rF.MPYTHONS_FACEAI_FACE_IMG_RESULT_HELPURL="",rF.MPYTHONS_FACEAI_FACE_IMG_RESULT_MESSAGE0="显示图片",rF.MPYTHONS_FACEAI_FACE_IMG_RESULT_TOOLTIP="",rF.MPYTHONS_FACEAI_CHOOSE_FACE_DATABASE_HELPURL="",rF.MPYTHONS_FACEAI_CHOOSE_FACE_DATABASE_MESSAGE0="选择人脸%1 %2",rF.MPYTHONS_FACEAI_CHOOSE_FACE_DATABASE_TOOLTIP="",rF.MPYTHONS_WORD_CLOUD_INITIALIZE_HELPURL="",rF.MPYTHONS_WORD_CLOUD_INITIALIZE_MESSAGE0="初始化 文章聚类",rF.MPYTHONS_WORD_CLOUD_INITIALIZE_TOOLTIP="",rF.MPYTHONS_WORD_CLOUD_TITLE_HELPURL="文章数量不超过100",rF.MPYTHONS_WORD_CLOUD_TITLE_MESSAGE0="标题 第%1文章",rF.MPYTHONS_WORD_CLOUD_TITLE_TOOLTIP="",rF.MPYTHONS_WORD_CLOUD_CONTENT_HELPURL="文章数量不超过100",rF.MPYTHONS_WORD_CLOUD_CONTENT_MESSAGE0="内容 第%1文章",rF.MPYTHONS_WORD_CLOUD_CONTENT_TOOLTIP="",rF.MPYTHONS_WORD_CLOUD_JIEBA_HELPURL="文章数量不超过100",rF.MPYTHONS_WORD_CLOUD_JIEBA_MESSAGE0="文章内容转为列表 第%1文章",rF.MPYTHONS_WORD_CLOUD_JIEBA_TOOLTIP="",rF.MPYTHONS_WORD_CLOUD_STOPWORD_HELPURL="",rF.MPYTHONS_WORD_CLOUD_STOPWORD_MESSAGE0="读取停词表%1",rF.MPYTHONS_WORD_CLOUD_STOPWORD_TOOLTIP="返回的是100篇文章里的符号",rF.MPYTHONS_WORD_CLOUD_DELETE_AFTER_NEWS_HELPURL="",rF.MPYTHONS_WORD_CLOUD_DELETE_AFTER_NEWS_MESSAGE0="删除后的新闻";rF.MPYTHONS_WORD_CLOUD_DELETE_AFTER_NEWS_TOOLTIP="",rF.MPYTHONS_WORD_CLOUD_THESAURUS_CONSTRUCTION_DATA_HELPURL="",rF.MPYTHONS_WORD_CLOUD_THESAURUS_CONSTRUCTION_DATA_MESSAGE0="构造词云所用的数据",rF.MPYTHONS_WORD_CLOUD_THESAURUS_CONSTRUCTION_DATA_TOOLTIP="",rF.MPYTHONS_WORD_CLOUD_COUNT_RANK_HELPURL="",rF.MPYTHONS_WORD_CLOUD_COUNT_RANK_MESSAGE0="计算总数 排序前%1",rF.MPYTHONS_WORD_CLOUD_COUNT_RANK_TOOLTIP="返回的是100篇文章里的文本",rF.MPYTHONS_WORD_CLOUD_SAVE_PICTURE_HELPURL="",rF.MPYTHONS_WORD_CLOUD_SAVE_PICTURE_MESSAGE0="文章聚类训练结果 保存为图片",rF.MPYTHONS_WORD_CLOUD_SAVE_PICTURE_TOOLTIP="",rF.MPYTHONS_WORD_CLOUD_DISPLAY_PICTURE_HELPURL="",rF.MPYTHONS_WORD_CLOUD_DISPLAY_PICTURE_MESSAGE0="显示图片",rF.MPYTHONS_WORD_CLOUD_DISPLAY_PICTURE_TOOLTIP="",rF.FIRST="第一次",rF.LAST="最后一次",rF.MPYTHON_USOCKET_BLOCK="阻塞",rF.MPYTHON_USOCKET_UNBLOCK="非阻塞",rF.MPYTHON_USOCKET_SETSOCKOPT_HELPURL="http://docs.micropython.org/en/latest/library/usocket.html#usocket.socket",rF.MPYTHON_USOCKET_SETSOCKOPT_MESSAGE0="設定socket %1 地址 %2 類型 %3",rF.MPYTHON_USOCKET_SETSOCKOPT_TOOLTIP="設定給定通訊端選項的值。所需的符號常數在通訊端模塊中定義(SO_ *等)。該值可以是整數或表示緩衝區的類位元組對象。",rF.MPYTHON_USOCKET_READLINE_HELPURL="http://docs.micropython.org/en/latest/library/usocket.html#usocket.socket.accept",rF.MPYTHON_USOCKET_READLINE_MESSAGE0="socket %1 接收一行數據,遇分行符號結束並返回接收數據的對象",rF.MPYTHON_USOCKET_READLINE_TOOLTIP="接收一行數據,遇分行符號結束,並返回接收數據的對象",rF.MPYTHON_USOCKET_READ_HELPURL="http://docs.micropython.org/en/latest/library/usocket.html#usocket.socket.read",rF.MPYTHON_USOCKET_READ_MESSAGE0="從socket %1 讀取 %2 字節並返回字節對象",rF.MPYTHON_USOCKET_READ_TOOLTIP="若未給定讀取數量 ,則按照類似 socket.readall() 的模式運行",rF.MPYTHON_USOCKET_SETBLOCKING_HELPURL="http://docs.micropython.org/en/latest/library/usocket.html#usocket.socket.setblocking",rF.MPYTHON_USOCKET_SETBLOCKING_MESSAGE0="設socket %1 為 %2 模式",rF.MPYTHON_USOCKET_SETBLOCKING_TOOLTIP="",rF.MPYTHON_USOCKET_SETTIMEOUT_HELPURL="http://docs.micropython.org/en/latest/library/usocket.html#usocket.socket.settimeout",rF.MPYTHON_USOCKET_SETTIMEOUT_MESSAGE0="socket %1 設超時時間 %2 秒",rF.MPYTHON_USOCKET_SETTIMEOUT_TOOLTIP="",rF.MPYTHON_USOCKET_RECV_HELPURL="http://docs.micropython.org/en/latest/library/usocket.html#usocket.socket.recv",rF.MPYTHON_USOCKET_RECV_MESSAGE0="socket %1 接收並返回接收到的數據對象 最大數據量為 %2",rF.MPYTHON_USOCKET_RECV_TOOLTIP="",rF.MPYTHON_USOCKET_RECVFROM_HELPURL="http://docs.micropython.org/en/latest/library/usocket.html#usocket.socket.recvfrom",rF.MPYTHON_USOCKET_RECVFROM_MESSAGE0="socket %1 接收並返回接收到的數據元組 最大數據量為 %2",rF.MPYTHON_USOCKET_RECVFROM_TOOLTIP="元組格式 (bytes, address)",rF.MPYTHON_USOCKET_SENDALL_HELPURL="http://docs.micropython.org/en/latest/library/usocket.html#usocket.socket.send",rF.MPYTHON_USOCKET_SENDALL_MESSAGE0="socket %1 連續發送%2 並返回發送的位元組數",rF.MPYTHON_USOCKET_SENDALL_TOOLTIP="將所有數據發送到通訊端。通訊端必須連接到遠程通訊端。與send()此不同,此方法將嘗試通過連續發送數據塊來發送所有數據。",rF.MPYTHON_USOCKET_SENDS_HELPURL="http://docs.micropython.org/en/latest/library/usocket.html#usocket.socket.send",rF.MPYTHON_USOCKET_SENDS_MESSAGE0="socket %1 發送 %2 並返回發送的字節數",rF.MPYTHON_USOCKET_SENDS_TOOLTIP="將數據發送到通訊端。通訊端必須連接到遠程通訊端。返回發送的位元組數,可能小於數據長度(“short write”)。",rF.MPYTHON_USOCKET_SEND_HELPURL="http://docs.micropython.org/en/latest/library/usocket.html#usocket.socket.send",rF.MPYTHON_USOCKET_SEND_MESSAGE0="socket %1 發送 %2 並返回發送的字節數",rF.MPYTHON_USOCKET_SEND_TOOLTIP="Send data to the socket. The socket must be connected to a remote socket. Returns number of bytes sent, which may be smaller than the length of data (“short write”).",rF.MPYTHON_TEXT_ESC_HELPURL="",rF.MPYTHON_TEXT_ESC_MESSAGE0="文本轉義字元 %1 ",rF.MPYTHON_TEXT_ESC_TOOLTIP="文本轉義字元",rF.MPYTHON_USOCKET_SENDTO_HELPURL="http://docs.micropython.org/en/latest/library/usocket.html#usocket.socket.sendto",rF.MPYTHON_USOCKET_SENDTO_MESSAGE0="socket %1 發送 %2 到地址 %3",rF.MPYTHON_USOCKET_SENDTO_TOOLTIP="Send data to the socket. The socket should not be connected to a remote socket, since the destination socket is specified by address.",rF.MPYTHON_USOCKET_CONNECT_HELPURL="http://docs.micropython.org/en/latest/library/usocket.html#usocket.socket.connect",rF.MPYTHON_USOCKET_CONNECT_MESSAGE0="socket %1 連接 host %2 端口 %3",rF.MPYTHON_USOCKET_CONNECT_TOOLTIP="",rF.MPYTHON_USOCKET_GETADDRINFO_HELPURL="http://docs.micropython.org/en/latest/library/usocket.html#usocket.socket.getaddrinfo",rF.MPYTHON_USOCKET_GETADDRINFO_MESSAGE0="解析 host %1 端口 %2 並返回 ip",rF.MPYTHON_USOCKET_GETADDRINFO_TOOLTIP="需聯網",rF.MPYTHON_USOCKET_ACCEPT_HELPURL="http://docs.micropython.org/en/latest/library/usocket.html#usocket.socket.accept",rF.MPYTHON_USOCKET_ACCEPT_MESSAGE0="socket %1 接受連接請求並返回socket元組",rF.MPYTHON_USOCKET_ACCEPT_TOOLTIP="接收連接請求。socket需要指定地址並監聽連接。返回值是 (conn, address)。\nconn:新的socket對象,可以用來收發消息\naddress:連接到服務器的客戶端地址",rF.MPYTHON_USOCKET_LISTEN_HELPURL="http://docs.micropython.org/en/latest/library/usocket.html#usocket.socket.listen",rF.MPYTHON_USOCKET_LISTEN_MESSAGE0="監聽socket %1 backlog個數 %2",rF.MPYTHON_USOCKET_LISTEN_TOOLTIP="backlog :接受套接字的最大个数,至少为0,如果没有指定,则默认一个合理值。",rF.MPYTHON_USOCKET_BIND_HELPURL="http://docs.micropython.org/en/latest/library/usocket.html#usocket.socket.bind",rF.MPYTHON_USOCKET_BIND_MESSAGE0="socket %1 綁定地址 %2 端口 %3",rF.MPYTHON_USOCKET_BIND_TOOLTIP="",rF.MPYTHON_USOCKET_CLOSE_HELPURL="http://docs.micropython.org/en/latest/library/usocket.html#usocket.socket.close",rF.MPYTHON_USOCKET_CLOSE_MESSAGE0="socket %1 關閉",rF.MPYTHON_USOCKET_CLOSE_TOOLTIP="",rF.MPYTHON_USOCKET_INIT_HELPURL="http://docs.micropython.org/en/latest/library/usocket.html#usocket.socket",rF.MPYTHON_USOCKET_INIT_MESSAGE0="創建 socket %1 地址 %2 類型 %3",rF.MPYTHON_USOCKET_INIT_TOOLTIP="AF_INET:=2 — TCP/IP – IPv4\nAF_INET6 :=10 — TCP/IP – IPv6\nSOCK_STREAM:=1 — TCP流\nSOCK_DGRAM:=2 — UDP數據報\nSOCK_RAW :=3 — 原始套接字\nSO_REUSEADDR : =4 — socket可重用\n",rF.MPYTHON_GET_POST_HELPURL="",rF.MPYTHON_GET_POST_MESSAGE0="%1 請求網址 %2 提交字段 %3",rF.MPYTHON_GET_POST_TOOLTIP="",rF.MPYTHON_UREQUESTS_GET_POST_HELPURL="",rF.MPYTHON_UREQUESTS_GET_POST_TOOLTIP="",rF.MPYTHON_UREQUESTS_GET_POST_MESSAGE0="%1 請求網址 %2 提交字段 %3",rF.MPYTHON_UREQUESTS_POST_FILE_HELPURL="",rF.MPYTHON_UREQUESTS_POST_FILE_TOOLTIP="",rF.MPYTHON_UREQUESTS_POST_FILE_MESSAGE0="Post 提交文件 %1 請求網址 %2 文件路徑 %3 Mime類型 %4 附加字段 %5",rF.MPYTHON_RESPONSE_HELPURL="",rF.MPYTHON_RESPONSE_MESSAGE0="響應内容 格式 %1",rF.MPYTHON_RESPONSE_TOOLTIP="",rF.STRING="字符串",rF._BYTE="二进制",rF.TEXT="文本",rF.MPYTHON_RESPONSE_ATTRIBUTE_HELPURL="",rF.MPYTHON_RESPONSE_ATTRIBUTE_MESSAGE0="響應屬性 %1",rF.MPYTHON_RESPONSE_ATTRIBUTE_TOOLTIP="",rF.MPYTHON_SETS_PIN_MODE_HELPURL="https://mpython.readthedocs.io/zh/master/board/hardware.html#mpythonpindesc",rF.MPYTHON_SETS_PIN_MODE_TOOLTIP="右鍵幫助,查看引脚聲明",rF.MPYTHON_SETS_PIN_MODE_MESSAGE0="設置引脚 %1 為 %2 模式 %3 並設置值為 %4",rF.MPYTHON_SET_PIN_IN="輸入",rF.MPYTHON_SET_PIN_PUSH_PULL_OUT="推挽輸出",rF.MPYTHON_SET_PIN_LEAKY_OUT="開漏輸出",rF.MPYTHON_SET_PIN_NO_PULL="無上下拉",rF.MPYTHON_SET_PIN_DOWN_PULL="下拉",rF.MPYTHON_SET_PIN_UP_PULL="上拉",rF.MPYTHON_LOCK_OBJECT_ACQUIRE_LOCK_HELPURL="",rF.MPYTHON_LOCK_OBJECT_ACQUIRE_LOCK_MESSAGE0="綫程鎖對象 %1 請求鎖",rF.MPYTHON_LOCK_OBJECT_ACQUIRE_LOCK_TOOLTIP="",rF.MPYTHON_START_NEW_THREAD_HELPURL="",rF.MPYTHON_START_NEW_THREAD_MESSAGE0="子綫程 %1",rF.MPYTHON_START_NEW_THREAD_TOOLTIP="",rF.MPYTHON_UART_INIT_HELPURL="",rF.MPYTHON_UART_INIT_MESSAGE0="串口 %4 初始化 波特率 %1 tx %2 rx %3",rF.MPYTHON_UART_INIT_TOOLTIP="掌控板支持3組串口。0用於REPL,剩下1,2兩組串口可用。所有引脚皆可作爲串口的輸入RX,除 P2、P3 、P4 、P10 只能作爲輸出,其餘所有的引脚理論上都可作爲輸出 TX。",rF.MPYTHON_UART_DEINIT_HELPURL="",rF.MPYTHON_UART_DEINIT_MESSAGE0="關閉串口 %1",rF.MPYTHON_UART_DEINIT_TOOLTIP="關閉 UART 總線",rF.MPYTHON_UART_WRITE_STR_HELPURL="",rF.MPYTHON_UART_WRITE_STR_MESSAGE0="串口 %1 寫入文本 %2 %3",rF.MPYTHON_UART_WRITE_STR_TOOLTIP="將文本寫入總線。\n返回值:寫入或 None 超時的字節數。",rF.MPYTHON_UART_WRITE_HEX_HELPURL="",rF.MPYTHON_UART_WRITE_HEX_MESSAGE0="串口 %1 發送16進制字符串 %2 %3",rF.MPYTHON_UART_WRITE_HEX_TOOLTIP="",rF.MPYTHON_UART_HAS_DATA_HELPURL="",rF.MPYTHON_UART_HAS_DATA_MESSAGE0="串口 %1 有可讀數據",rF.MPYTHON_UART_HAS_DATA_TOOLTIP="返回一個整數,計算可以無阻塞地讀取的字符數。\n如果沒有可用字符,它將返回0,如果有字符,則返回正數。\n即使有多個可讀的字符,該方法也可以返回1。",rF.MPYTHON_UART_READLINE_HELPURL="",rF.MPYTHON_UART_READLINE_MESSAGE0="串口 %1 讀取一行數據",rF.MPYTHON_UART_READLINE_TOOLTIP="讀一行,以換行符結尾。\n返回值:讀取行或 None 超時。",rF.MPYTHON_UART_READ_HELPURL="",rF.MPYTHON_UART_READ_MESSAGE0="串口 %1 讀取數據",rF.MPYTHON_UART_READ_TOOLTIP="讀取盡可能多的串口數據\n返回值:包含讀入字節的字節列表。若讀取超時則返回 None。",rF.MPYTHON_UART_READ_LENGTH_HELPURL="",rF.MPYTHON_UART_READ_LENGTH_MESSAGE0="串口 %1 讀取數據 長度 %2",rF.MPYTHON_UART_READ_LENGTH_TOOLTIP="讀取指定長度字節數據\n返回值:包含讀入字節的字節列表。若讀取超時則返回 None。",rF.MPYTHON_UART_WRITE_BYTE_HELPURL="",rF.MPYTHON_UART_WRITE_BYTE_MESSAGE0="串口 %1 寫入單字節 %2",rF.MPYTHON_UART_WRITE_BYTE_TOOLTIP="參數為 0~255 的整數\n將字節寫入總線。\n返回值:寫入或 None 超時的字節數。",rF.MPYTHON_UART_WRITE_BYTES_HELPURL="",rF.MPYTHON_UART_WRITE_BYTES_MESSAGE0="串口 %1 寫入字節數組 %2",rF.MPYTHON_UART_WRITE_BYTES_TOOLTIP="將字節數組寫入總線。\n返回值:寫入或 None 超時的字節數。",rF.TEXT_FORMAT_MESSAGE0="格式化字符串 %1 % %2",rF.TEXT_FORMAT_TOOLTIP="",rF.TEXT_FORMAT_HELPURL="",rF.TEXT_FORMAT2_MESSAGE0="格式化字符串 %1 format %2",rF.TEXT_FORMAT2_TOOLTIP="",rF.TEXT_FORMAT2_HELPURL="",rF.MPYTHON_BAUDRATE_HELPURL="",rF.MPYTHON_BAUDRATE_MESSAGE0="%1",rF.MPYTHON_BAUDRATE_TOOLTIP="",rF.MPYTHON_HIGH_LOW_HELPURL="",rF.MPYTHON_HIGH_LOW_MESSAGE0="%1",rF.MPYTHON_HIGH_LOW_TOOLTIP="",rF.MPYTHON_TEN_CONVERT_TO_HELPURL="",rF.MPYTHON_TEN_CONVERT_TO_MESSAGE0="10進制整數 %1 轉化為 %2 字符串",rF.MPYTHON_TEN_CONVERT_TO_TOOLTIP="",rF.MPYTHON_BIN="二進制",rF.MPYTHON_OCT="八進制",rF.MPYTHON_HEX="十六進制",rF.MPYTHON_CONVERT_TO_TEN_HELPURL="",rF.MPYTHON_CONVERT_TO_TEN_MESSAGE0="%1 字符串 %2 轉 10進制整數",rF.MPYTHON_CONVERT_TO_TEN_TOOLTIP="",rF.MPYTHON_TEN_CONVERTED_TO_BYTES_HELPURL="",rF.MPYTHON_TEN_CONVERTED_TO_BYTES_MESSAGE0="10進制整數 %2 轉 %1 字节",rF.MPYTHON_TEN_CONVERTED_TO_BYTES_TOOLTIP="",rF.MPYTHON_INT_TO_CHR_HELPURL="",rF.MPYTHON_INT_TO_CHR_MESSAGE0="整型 %1 轉 ASCII 單字符",rF.MPYTHON_INT_TO_CHR_TOOLTIP="ASCII:基於拉丁字母的一套電腦編碼系統,主要用於顯示現代英語和其他西歐語言",rF.MPYTHON_CHR_TO_INT_HELPURL="",rF.MPYTHON_CHR_TO_INT_MESSAGE0="ASCII 單字符 %1 轉 整型",rF.MPYTHON_CHR_TO_INT_TOOLTIP="ASCII:基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。",rF.MPYTHON_STR_TO_HEX_HELPURL="",rF.MPYTHON_STR_TO_HEX_MESSAGE0="字符串 %1 轉 十六進制 字節",rF.MPYTHON_STR_TO_HEX_TOOLTIP="返回結果中用空格分隔兩個十六進制數",rF.MPYTHON_HEX_TO_BIN_STR_HELPURL="",rF.MPYTHON_HEX_TO_BIN_STR_MESSAGE0="十六進制字符串 %1 轉 二進制 字節",rF.MPYTHON_HEX_TO_BIN_STR_TOOLTIP="",rF.MPYTHON_DATA_TO_BASE64_HELPURL="",rF.MPYTHON_DATA_TO_BASE64_MESSAGE0="%1 以 base64 格式編碼 返回字節對象",rF.MPYTHON_DATA_TO_BASE64_TOOLTIP="",rF.MPYTHON_BASE64_TO_DATA_HELPURL="",rF.MPYTHON_BASE64_TO_DATA_MESSAGE0="解碼 base64 數據 %1 返回字節對象",rF.MPYTHON_BASE64_TO_DATA_TOOLTIP="",rF.MPYTHON_UJSON_DUMPS_HELPURL="",rF.MPYTHON_UJSON_DUMPS_MESSAGE0="%1 轉 json 字符串",rF.MPYTHON_UJSON_DUMPS_TOOLTIP="JSON 格式的 key 必須是字符串 ,value 可以是合法的 JSON 數據類型(字符串, 數字, 對象, 數組, 布爾值或 none)",rF.MPYTHON_UJSON_LOADS_HELPURL="",rF.MPYTHON_UJSON_LOADS_MESSAGE0="解析 json 字符串 %1 返回对象",rF.MPYTHON_UJSON_LOADS_TOOLTIP="JSON 格式的 key 必須是字符串 ,value 可以是合法的 JSON 數據類型(字符串, 數字, 對象, 數組, 布爾值或 none)",rF.MPYTHON_BLYNK_TERMINAL_WIDGET_VPIN_HELPURL="",rF.MPYTHON_BLYNK_TERMINAL_WIDGET_VPIN_MESSAGE0="自定義終端部件 Terminal 虛擬管脚 V %1",rF.MPYTHON_BLYNK_TERMINAL_WIDGET_VPIN_TOOLTIP="",rF.MPYTHON_BLYNK_SYNC_VIRTUAL_HELPURL="",rF.MPYTHON_BLYNK_SYNC_VIRTUAL_MESSAGE0="同步虛擬管脚狀態 V %1",rF.MPYTHON_BLYNK_SYNC_VIRTUAL_TOOLTIP="",rF.MPYTHON_BLYNK_ON_DISCONNECTED_HELPURL="",rF.MPYTHON_BLYNK_ON_DISCONNECTED_MESSAGE0="當 Blynk 斷開連接時",rF.MPYTHON_BLYNK_ON_DISCONNECTED_TOOLTIP="",rF.MPYTHON_BLYNK_ON_CONNECTED_HELPURL="",rF.MPYTHON_BLYNK_ON_CONNECTED_MESSAGE0="當 Blynk 連接時",rF.MPYTHON_BLYNK_ON_CONNECTED_TOOLTIP="",rF.MPYTHON_BLYNKTIMER_RUN_HELPURL="",rF.MPYTHON_BLYNKTIMER_RUN_MESSAGE0="運行 Blynk 定時器進程",rF.MPYTHON_BLYNKTIMER_RUN_TOOLTIP="建議放在 '一直重復' 中循環執行",rF.MPYTHON_BLYNK_RUN_HELPURL="",rF.MPYTHON_BLYNK_RUN_MESSAGE0="運行 Blynk 進程",rF.MPYTHON_BLYNK_RUN_TOOLTIP="建議放在 '一直重復' 中循環執行",rF.MPYTHON_BLYNK_APP_NOTIFY_HELPURL="",rF.MPYTHON_BLYNK_APP_NOTIFY_MESSAGE0="Blynk APP 顯示通知 %1",rF.MPYTHON_BLYNK_APP_NOTIFY_TOOLTIP="",rF.MPYTHON_BLYNKTIMER_HELPURL="",rF.MPYTHON_BLYNKTIMER_MESSAGE0="Blynk 定時器 %1 %2 周期 %3 秒",rF.MPYTHON_BLYNKTIMER_TOOLTIP='注意:\n定時器序號為自動獲取,自上而下,從0開始且連續,不可"定時器0,定時器2",此處暴露參數為方便查看!\n參數:\nno_timers_err=False - 如果所有定時器都停止,禁用異常觸發',rF.MPYTHON_BLYNK_GET_TIMERS_HELPURL="",rF.MPYTHON_BLYNK_GET_TIMERS_MESSAGE0="可用的 Blynk 定時器",rF.MPYTHON_BLYNK_GET_TIMERS_TOOLTIP="",rF.MPYTHON_BLYNK_STOP_TIMERS_HELPURL="",rF.MPYTHON_BLYNK_STOP_TIMERS_MESSAGE0="停止 Blynk 定時器 %1",rF.MPYTHON_BLYNK_STOP_TIMERS_TOOLTIP='注意:\n定時器序號為自動獲取,自上而下,從0開始且連續,不可"定時器0,定時器2",此處暴露參數為方便查看!\n參數:\nno_timers_err=False - 如果所有定時器都停止,禁用異常觸發',rF.MPYTHON_UART_INPUT_HELPURL="",rF.MPYTHON_UART_INPUT_MESSAGE0="從串口獲取文本 提示語句 %1",rF.MPYTHON_UART_INPUT_TOOLTIP="",rF.INT_TO_CHR_HELPURL="",rF.INT_TO_CHR_MESSAGE0="整數 %1 轉 ASCII 單字符",rF.INT_TO_CHR_TOOLTIP="",rF.MPYTHON_BLYNK_SET_PROPERTY_HELPURL="",rF.MPYTHON_BLYNK_SET_PROPERTY_MESSAGE0="給虛擬管脚添加 屬性 %1 值 %2",rF.MPYTHON_BLYNK_SET_PROPERTY_TOOLTIP="放於 read 或 write 事件中,虛擬管脚由事件決定,與該管脚綁定的組件會擁有添加的屬性",rF.MPYTHON_BLYNK_EMAIL_HELPURL="",rF.MPYTHON_BLYNK_EMAIL_MESSAGE0="向預設郵箱發郵件 %1 主題 %2 正文 %3",rF.MPYTHON_BLYNK_EMAIL_TOOLTIP="",rF.MPYTHON_BLYNK_SENSOR_DATA_TO_APP_HELPURL="",rF.MPYTHON_BLYNK_SENSOR_DATA_TO_APP_MESSAGE0="發送數據 %1 到 Blynk APP 的 虛擬管脚 V %2",rF.MPYTHON_BLYNK_SENSOR_DATA_TO_APP_TOOLTIP="虛擬管脚:V0 ~ V255",rF.MPYTHON_BLYNK_SETUP_HELPURL="",rF.MPYTHON_BLYNK_SETUP_MESSAGE0="Blynk 設置 %1 服務器 %2 端口 %3 授權碼 %4",rF.MPYTHON_BLYNK_SETUP_TOOLTIP="服務器可填 blynk-cloud.com 或者 blynk.mpython.cn\n默認端口為 8080\n註意:手機APP訪問端口為 9443",rF.MPYTHON_BLYNK_APP_DATA_HELPURL="",rF.MPYTHON_BLYNK_APP_DATA_MESSAGE0="當 從 Blynk APP 收到 虛擬管腳 V %1 的值 %2 時",rF.MPYTHON_BLYNK_APP_DATA_TOOLTIP="虛擬管脚:V0 ~ V255",rF.MPYTHON_BLYNK_RECEIVED_MESSAGE0="當 收到 Blynk 虛擬管腳 V %1 的值",rF.MPYTHON_BLYNK_VALUE_MESSAGE0="從 Blynk 收到的值",rF.MPYTHON_BLYNK_VALUE_TOOLTIP="",rF.MPYTHON_BLYNK_VALUE_HELPURL="",rF.MPYTHON_ONENET_DISCONNECT_MESSAGE0="OneNET 斷開連接",rF.MPYTHON_ONENET_DISCONNECT_TOOLTIP="",rF.MPYTHON_ONENET_DISCONNECT_HELPURL="",rF.MPYTHON_ONENET_MSG_MESSAGE0="從 OneNET 收到的消息",rF.MPYTHON_ONENET_MSG_TOOLTIP="",rF.MPYTHON_ONENET_MSG_HELPURL="",rF.MPYTHON_ONENET_RECV_MESSAGE0="當 從 OneNET 收到消息 %1 時",rF.MPYTHON3_ONENET_RECV_MESSAGE0="當 從 OneNET 收到消息 時",rF.MPYTHON_ONENET_RECV_TOOLTIP="",rF.MPYTHON_ONENET_RECV_HELPURL="",rF.MPYTHON_ONENET_RECV_MSG_MESSAGE0="當 從 OneNET 收到特定消息 %1 時",rF.MPYTHON_ONENET_RECV_MSG_TOOLTIP="",rF.MPYTHON_ONENET_RECV_MSG_HELPURL="",rF.MPYTHON_ONENET_PUB_VALUE_MESSAGE0="向 OneNET 發送數據流 名稱 %1 值 %2",rF.MPYTHON_ONENET_PUB_VALUE_TOOLTIP="",rF.MPYTHON_ONENET_PUB_VALUE_HELPURL="",rF.MPYTHON_ONENET_PUB_DICT_MESSAGE0="向 OneNET 發送數據流 %1",rF.MPYTHON_ONENET_PUB_DICT_TOOLTIP="",rF.MPYTHON_ONENET_PUB_DICT_HELPURL="",rF.MPYTHON_ONENET_PUB_VALUE2_MESSAGE0="向 小程序 發送數據流 名稱 %1 值 %2",rF.MPYTHON_ONENET_PUB_VALUE2_TOOLTIP="",rF.MPYTHON_ONENET_PUB_VALUE2_HELPURL="",rF.MPYTHON_HCSR04_DISTANCE_HELPURL="https://mpython-lib.readthedocs.io/zh/master/hcsr04/index.html#hcsr04",rF.MPYTHON_HCSR04_DISTANCE_MESSAGE0="%1 hcsr04 超聲波距離 測量單位 %2",rF.MPYTHON_HCSR04_DISTANCE_TOOLTIP="",rF.MPYTHON_HCSR04_DISTANCE_MM_HELPURL="https://mpython-lib.readthedocs.io/zh/master/hcsr04/index.html#hcsr04",rF.MPYTHON_HCSR04_DISTANCE_MM_MESSAGE0="%1 hcsr04 超聲波(mm)",rF.MPYTHON_HCSR04_DISTANCE_MM_TOOLTIP="",rF.MPYTHON_HCSR04_OBJ_HELPURL="https://mpython-lib.readthedocs.io/zh/master/hcsr04/index.html#hcsr04",rF.MPYTHON_HCSR04_OBJ_MESSAGE0="hcsr04 超聲波初始化 名稱 %1 trigger %2 echo %3",rF.MPYTHON_HCSR04_OBJ_TOOLTIP="",rF.MPYTHON_PM2_5_MIC_HELPURL="",rF.MPYTHON_PM2_5_MIC_MESSAGE0="rx引脚%1 PM值濃度%2",rF.MPYTHON_PM2_5_MIC_TOOLTIP="",rF.MPYTHON_PM2_5_LitresAir_HELPURL="",rF.MPYTHON_PM2_5_LitresAir_MESSAGE0="rx引脚%1 0.1昇空氣中直徑在%2 顆粒物個數",rF.MPYTHON_PM2_5_LitresAir_TOOLTIP="",rF.MPYTHON3_IR_REMOTE_RECV_MESSAGE0="當 紅外接收端 %1 收到消息時 %2 執行 %3",rF.MPYTHON_IR_REMOTE_ADDRESS_MESSAGE0="紅外回調地址",rF.MPYTHON_IR_REMOTE_MESSAGE_MESSAGE0="紅外接收內容",rF.MPYTHON_IR_REMOTE_RECV_MESSAGE0="紅外接收 %1 回調地址 %2 回調命令 %3",rF.MPYTHON_IR_REMOTE_RECV_HELPURL="",rF.MPYTHON_IR_REMOTE_RECV_TOOLTIP="",rF.MPYTHON_IR_REMOTE_SEND_MESSAGE0="紅外發送 %1 地址 %2 命令 %3",rF.MPYTHON_IR_REMOTE_SEND_HELPURL="",rF.MPYTHON_IR_REMOTE_SEND_TOOLTIP="",rF.MPYTHON_ONENET_ACCEPT_MESSAGE="收到消息",rF.MPYTHON_ONENET="OneNET 設置",rF.MPYTHON_ONENET_WECHAT_APP="小程序 设置",rF.MPYTHON_ONENET_OPTION_BOARDS="可選掌控板",rF.MPYTHON_ONENET_TITLE="OneNET",rF.MPYTHON_SERVER="服務器",rF.MPYTHON_DEVICE_ID="設備ID",rF.MPYTHON_PRODUCT_ID="產品ID",rF.MPYTHON_API_KEY="產品APIKey",rF.MPYTHON_ONENET_CALLBACK="回調函數",rF.MPYTHON_TOPIC="主題",rF.MPYTHON_ONENET_CALLBACK_TITLE="OneNET回調函數",rF.MPYTHON_ONENET_OPTION_BOARDS_HELPURL="",rF.MPYTHON_ONENET_OPTION_BOARDS_MESSAGE0="小程序 選擇掌控板應用 %1",rF.MPYTHON_ONENET_OPTION_BOARDS_TOOLTIP="",rF.TEXT_TO_BYTE_MESSAGE0="轉字節 %1",rF.TEXT_TO_BYTE_TOOLTIP="支持數據類型:string",rF.TEXT_TO_BYTE_HELPURL="",rF.OTHER_TO_BYTE_MESSAGE0="非文本轉字節 %1",rF.OTHER_TO_BYTE_TOOLTIP="",rF.OTHER_TO_BYTE_HELPURL="",rF.MPYTHON_BYTES_DECODE_HELPURL="",rF.MPYTHON_BYTES_DECODE_MESSAGE0="字節 %1 轉 字符串",rF.MPYTHON_BYTES_DECODE_TOOLTIP="",rF.MPYTHON_ONENET_TOOLTIP="創建OneNET連接",rF.MPYTHON_ONENET_INIT_WIFI_MESSAGE0="物聯網 確保連接到 Wi-Fi 名稱 %1 密碼 %2",rF.MPYTHON_ONENET_INIT_WIFI_TOOLTIP="",rF.MPYTHON_ONENET_INIT_WIFI_HELPURL="",rF.MPYTHON_ONENET_RECV_FROM_WECHAT_APP_HELPURL="",rF.MPYTHON_ONENET_RECV_FROM_WECHAT_APP_MESSAGE0="儅從小程序收到消息 %1 和 %2 時",rF.MPYTHON_ONENET_RECV_FROM_WECHAT_APP_TOOLTIP="",rF.MPYTHON_MAC_ADDRESS_HELPURL="",rF.MPYTHON_MAC_ADDRESS_MESSAGE0="MAC 地址",rF.MPYTHON_MAC_ADDRESS_TOOLTIP="",rF.MPYTHON_RADIO_REC_HELPURL="",rF.MPYTHON_RADIO_REC_MESSAGE0="無綫廣播 接收消息",rF.MPYTHON_RADIO_REC_TOOLTIP="所接收為字節型",rF.MPYTHON_RADIO_SEND_HELPURL="",rF.MPYTHON_RADIO_SEND_MESSAGE0="無綫廣播 發送 %1",rF.MPYTHON_RADIO_SEND_TOOLTIP="頻道: 1~13",rF.MPYTHON_RADIO_CHANNEL_HELPURL="",rF.MPYTHON_RADIO_CHANNEL_MESSAGE0="設無綫廣播 頻道為 %1",rF.MPYTHON_RADIO_CHANNEL_TOOLTIP="頻道: 1~13",rF.MPYTHON_RADIO_ON_OFF_HELPURL="",rF.MPYTHON_RADIO_ON_OFF_MESSAGE0="%1 無綫廣播",rF.MPYTHON_RADIO_ON_OFF_TOOLTIP="頻道: 1~13",rF.MPYTHON_RADIO_MSG_MESSAGE0="收到的無線廣播消息",rF.MPYTHON_RADIO_MSG_TOOLTIP="",rF.MPYTHON_RADIO_MSG_HELPURL="",rF.MPYTHON3_RADIO_RECV_MESSAGE0="當 收到無線廣播消息 時 %1 執行 %2",rF.MPYTHON_RADIO_RECV_MESSAGE0="當 收到無線廣播消息 %1 時",rF.MPYTHON_RADIO_RECV_TOOLTIP="頻道: 1~13",rF.MPYTHON_RADIO_RECV_HELPURL="",rF.MPYTHON_RADIO_RECV_MSG_MESSAGE0="當 收到特定無線廣播消息 %1 時 %2 執行 %3",rF.MPYTHON_RADIO_RECV_MSG_TOOLTIP="頻道: 1~13",rF.MPYTHON_RADIO_RECV_MSG_HELPURL="",rF.MPYTHON_UDP_INIT_HELPURL="",rF.MPYTHON_UDP_INIT_MESSAGE0="建立 UDP 連接",rF.MPYTHON_UDP_INIT_TOOLTIP="UDP連接基於Wi-Fi",rF.MPYTHON_UDP_SEND_HELPURL="",rF.MPYTHON_UDP_SEND_MESSAGE0="UDP 群發消息 %1",rF.MPYTHON_UDP_SEND_TOOLTIP="",rF.MPYTHON_UDP_SENDTO_HELPURL="",rF.MPYTHON_UDP_SENDTO_MESSAGE0="UDP 發送消息 %1 到 %2 端口 %3",rF.MPYTHON_UDP_SENDTO_TOOLTIP="",rF.MPYTHON_UDP_RECV_HELPURL="",rF.MPYTHON_UDP_RECV_MESSAGE0="UDP 接收消息",rF.MPYTHON_UDP_RECV_TOOLTIP="",rF.MPYTHON_UDP_RECV_EVENT_HELPURL="",rF.MPYTHON_UDP_RECV_EVENT_MESSAGE0="當從 UDP 收到消息時 %1 執行 %2",rF.MPYTHON_UDP_RECV_EVENT_TOOLTIP="",rF.MPYTHON_UDP_RECV_MSG_MESSAGE0="從 UDP 收到的消息",rF.MPYTHON_UDP_RECV_MSG_TOOLTIP="",rF.MPYTHON_UDP_RECV_MSG_HELPURL="",rF.MPYTHON_AUDIO_PLAY_chirp_MESSAGE0="鳥叫",rF.MPYTHON_AUDIO_PLAY_Pianodarkmelodies_MESSAGE0="鋼琴黑暗旋律配樂",rF.MPYTHON_AUDIO_PLAY_miaow_MESSAGE0="貓叫",rF.MPYTHON_AUDIO_PLAY_bark_MESSAGE0="小狗吠叫",rF.MPYTHON_AUDIO_PLAY_Arichpercussivesound_MESSAGE0="渾厚的打擊音",rF.MPYTHON_AUDIO_PLAY_Soundeffectsfortension_MESSAGE0="緊張效果的音效",rF.MPYTHON_AUDIO_PLAY_Camerashuttersound_MESSAGE0="拍照快門聲",rF.MPYTHON_AUDIO_PLAY_Hundredsofflies_MESSAGE0="數百只蒼蠅",rF.MPYTHON_AUDIO_PLAY_Cricketscry_MESSAGE0="蟋蟀叫聲",rF.MPYTHON_AUDIO_PLAY_Shakethebassline_MESSAGE0="搖晃低音聲線",rF.MPYTHON_AUDIO_PLAY_audiencecheeredandclapped_MESSAGE0="聽眾歡呼掌聲",rF.MPYTHON_AUDIO_PLAY_Cruiseshipwhistle_MESSAGE0="郵輪汽笛",rF.MPYTHON_AUDIO_PLAY_Moderntelephoneringtone_MESSAGE0="現代電話鈴聲",rF.MPYTHON_AUDIO_PLAY_pullingtradish_MESSAGE0="拔蘿蔔",rF.MPYTHON_AUDIO_PLAY_twotigers_MESSAGE0="兩只老虎",rF.MPYTHON_AUDIO_SET_VOLUME_HELPURL="",rF.MPYTHON_AUDIO_SET_VOLUME_MESSAGE0="設音頻音量 %1",rF.MPYTHON_AUDIO_SET_VOLUME_TOOLTIP="",rF.MPYTHON_DISPCHAR_MODE_1="普通",rF.MPYTHON_DISPCHAR_MODE_2="反轉",rF.MPYTHON_DISPCHAR_MODE_3="透明",rF.MPYTHON_AUDIO_XUNFEI_TTS_HELPURL="",rF.MPYTHON_AUDIO_XUNFEI_TTS_MESSAGE0="TTS 語音播放 %1",rF.MPYTHON_AUDIO_XUNFEI_TTS_TOOLTIP="需要在 訊飛開放平臺 www.xfyun.cn 上開通“在線語音合成”服務",rF.MPYTHON_AUDIO_XUNFEI_TTS_CONFIG_HELPURL="https://mpython.readthedocs.io/zh/master/extboard/tutorials/tutorials_parrot.html#id3",rF.MPYTHON_AUDIO_XUNFEI_TTS_CONFIG_MESSAGE0="TTS 語音配置 APPID %1 APIKey %2",rF.MPYTHON_AUDIO_XUNFEI_TTS_CONFIG_TOOLTIP="輸入在 訊飛開放平臺 www.xfyun.cn 獲取的 APPID 與 APIKey\n註意:要設置IP白名單",rF.MPYTHON_AUDIO_PLAY_HELPURL="https://mpython.readthedocs.io/zh/master/library/mPython/audio.html#id1",rF.MPYTHON_AUDIO_PLAY_MESSAGE0="音頻 播放 %1",rF.MPYTHON_AUDIO_PLAY_TOOLTIP="需要有源音箱\nP8 左聲道\nP9 右聲道\nGND 接地\n播放參數: \n網絡 MP3 的 url 或已上傳至掌控板的 MP3, 如'music_1.mp3' ",rF.MPYTHON_AUDIO_PLAY_CHOOSE_HELPURL="https://mpython.readthedocs.io/zh/master/library/mPython/audio.html#id1",rF.MPYTHON_AUDIO_PLAY_CHOOSE_MESSAGE0="音頻 播放 %1",rF.MPYTHON_AUDIO_PLAY_CHOOSE_TOOLTIP="需要有源音箱\nP8 左聲道\nP9 右聲道\nGND 接地\n播放參數: \n網絡 MP3 的 url 或已上傳至掌控板的 MP3, 如'music_1.mp3' ",rF.MPYTHON_AUDIO_DEINIT_HELPURL="",rF.MPYTHON_AUDIO_DEINIT_MESSAGE0="音頻 釋放緩存",rF.MPYTHON_AUDIO_DEINIT_TOOLTIP="",rF.MPYTHON_AUDIO_CMD_HELPURL="",rF.MPYTHON_AUDIO_CMD_MESSAGE0="音頻 %1",rF.MPYTHON_AUDIO_CMD_TOOLTIP="",rF.MPYTHON_AUDIO_INIT_HELPURL="",rF.MPYTHON_AUDIO_INIT_MESSAGE0="音頻 初始化",rF.MPYTHON_AUDIO_INIT_TOOLTIP="為音頻解碼開闢緩存",rF.MPYTHON_AUDIO_START_RECORDING_HELPURL="",rF.MPYTHON_AUDIO_START_RECORDING_MESSAGE0="開始錄音 錄音時長%1秒",rF.MPYTHON_AUDIO_START_RECORDING_TOOLTIP="需要掌控板v1.1以上硬件版本,錄音時長不能超過5秒",rF.MPYTHON_AUDIO_RECORDING_RESULT_HELPURL="",rF.MPYTHON_AUDIO_RECORDING_RESULT_MESSAGE0="錄音結果",rF.MPYTHON_AUDIO_RECORDING_RESULT_TOOLTIP="需要掌控板v1.1以上硬件版本。",rF.MPYTHON_AUDIO_DISCERN_RECORDING_HELPURL="",rF.MPYTHON_AUDIO_DISCERN_RECORDING_MESSAGE0="將 %1 進行識別",rF.MPYTHON_AUDIO_DISCERN_RECORDING_TOOLTIP="需要掌控板v1.1以上硬件版本。",rF.MPYTHON_AUDIO_DISCERN_RECORDING_RESULT_HELPURL="",rF.MPYTHON_AUDIO_DISCERN_RECORDING_RESULT_MESSAGE0="識別錄音結果",rF.MPYTHON_AUDIO_DISCERN_RECORDING_RESULT_TOOLTIP="需要掌控板v1.1以上硬件版本。",rF.MPYTHON_RECORD_INIT_HELPURL="",rF.MPYTHON_RECORD_INIT_MESSAGE0="錄音 初始化",rF.MPYTHON_RECORD_INIT_TOOLTIP="錄音初始化。\n需要掌控板v1.1以上硬件版本。",rF.MPYTHON_RECORD_DEINIT_HELPURL="",rF.MPYTHON_RECORD_DEINIT_MESSAGE0="錄音 釋放資源",rF.MPYTHON_RECORD_DEINIT_TOOLTIP="錄音結束後釋放資源。\n需要掌控板v1.1以上硬件版本。",rF.MPYTHON_RECORD_WAV_HELPURL="",rF.MPYTHON_RECORD_WAV_MESSAGE0="錄制音頻 存儲路徑 %1 時長 %2 秒",rF.MPYTHON_RECORD_WAV_TOOLTIP="錄制音頻,並以 WAV 格式存儲。\n需要掌控板v1.1以上硬件版本。",rF.MPYTHON_ASR_HELPURL="",rF.MPYTHON_ASR_MESSAGE0="識別 %1 秒語音指令",rF.MPYTHON_ASR_TOOLTIP="可以識別3秒內的語音指令。\n需要掌控板v1.1以上硬件版本。",rF.mpython_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",rF.mpython_button_A="P5(按鍵A)",rF.mpython_button_B="P11(按鍵B)",rF.mpython_PIN7_RGB="P7(板載RGB)",rF.MPYTHON_PWM_PIN_P7="P7 (掌控板)",rF.MPYTHON_PWM_PIN_P9="P9 (掌控實驗箱)",rF.mpython_tem="溫度",rF.mpython_hum="濕度",rF.mpython_pre="氣壓",rF.mpython_left_right="左右",rF.MPYTHON_LEFT="左",rF.MPYTHON_RIGHT="右",rF.mpython_front_back="前後",rF.mpython_vertical="垂直",rF.mpython_horizontal="水平",rF.mpython_run_in_back="後臺運行",rF.mpython_run_in_front="前臺運行",rF.mpython_draw="繪制",rF.mpython_clear="清除",rF.mpython_s="秒",rF.mpython_ms="毫秒",rF.mpython_us="微秒",rF.mpython_year="年",rF.mpython_month="月",rF.mpython_date="日",rF.mpython_hour="時",rF.mpython_minute="分",rF.mpython_week="星期數",rF.mpython_days="天數",rF.MPYTHON_ORDER="第",rF.MPYTHON_REVERSE_ORDER="倒數第",rF.MATH_RANDOM_RANDRANGE_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",rF.MATH_RANDOM_RANDRANGE_TOOLTIP="返回指定遞增基數集合中的一個隨機數,基數缺省值為1",rF.MATH_RANDOM_RANDRANGE_MESSAGE0="隨機數 從遞增區間 [%1 ,%2) 遞增步長%3",rF.MATH_KEEP_DECIMAL_HELPURL="",rF.MATH_KEEP_DECIMAL_TOOLTIP="",rF.MATH_KEEP_DECIMAL_MESSAGE0="%1 保留 %2 位小數",rF.MPYTHON_MIN="最小值",rF.MPYTHON_MAX="最大值",rF.MPYTHON_LENTH="長度",rF.TUPLE_MIN_MAX_LEN_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",rF.TUPLE_MIN_MAX_LEN_TOOLTIP="",rF.TUPLE_MIN_MAX_LEN_MESSAGE0="元組 %1 %2",rF.TUPLE_ITEM_EXIST_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",rF.TUPLE_ITEM_EXIST_TOOLTIP="",rF.TUPLE_ITEM_EXIST_MESSAGE0="元組%1 包含%2",rF.LIST_ITEM_EXIST_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",rF.LIST_ITEM_EXIST_TOOLTIP="",rF.LIST_ITEM_EXIST_MESSAGE0="列表%1 包含%2",rF.PARTS_OF_TUPLE_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",rF.PARTS_OF_TUPLE_TOOLTIP="正序計數從0開始,倒序計數從1開始",rF.PARTS_OF_TUPLE_MESSAGE0="返回元組%1 取第%2 項到尾項",rF.PARTS_OF_TUPLE2_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",rF.PARTS_OF_TUPLE2_TOOLTIP="遞增順序取項\n舉例:\n 倒數第5到倒數第2;\n 第0到第5",rF.PARTS_OF_TUPLE2_MESSAGE0="返回元組%1 取%2 %3 項到 %4 %5 項",rF.PARTS_OF_LIST_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",rF.PARTS_OF_LIST_TOOLTIP="遞增順序取項\n舉例:\n 倒數第5到倒數第2;\n 第0到第5",rF.PARTS_OF_LIST_MESSAGE0="返回列表%1 取%2 %3 項到 %4 %5 項",rF.LIST_TO_TUPLE_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",rF.LIST_TO_TUPLE_TOOLTIP="",rF.LIST_TO_TUPLE_MESSAGE0="列表%1 轉元組",rF.tuple_create_with_MESSAGE0="定義元組 %1 = %2 ",rF.tuple_create_with_TOOLTIP="只包含一個元素時,需要在元素後面添加逗號",rF.tuple_create_with_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",rF.tuple_order_item_MESSAGE0="元組%1 %2 %3 項",rF.tuple_order_item_TOOLTIP="正序計數從0開始,倒序計數從1開始",rF.tuple_order_item_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",rF.LIST_ORDER_ITEM_MESSAGE0="列表%1 %2 %3 項",rF.LIST_ORDER_ITEM_TOOLTIP="正序計數從0開始,倒序計數從1開始",rF.LIST_ORDER_ITEM_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",rF.SET_LIST_ORDER_ITEM_MESSAGE0="設列表%1 %2 %3 項為%4",rF.SET_LIST_ORDER_ITEM_TOOLTIP="正序計數從0開始,倒序計數從1開始",rF.SET_LIST_ORDER_ITEM_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",rF.INSERT_LIST_ORDER_ITEM_MESSAGE0="插入列表%1 %2 %3 項為%4",rF.INSERT_LIST_ORDER_ITEM_TOOLTIP="正序計數從0開始,倒序計數從1開始",rF.INSERT_LIST_ORDER_ITEM_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",rF.SET_TUPLE_ORDER_ITEM_MESSAGE0="設元組%1 %2 %3 項為%4",rF.SET_TUPLE_ORDER_ITEM_TOOLTIP="正序計數從0開始,倒序計數從1開始",rF.SET_TUPLE_ORDER_ITEM_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",rF.DICT_CREATE_WITH_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",rF.DICT_CREATE_WITH_TOOLTIP="",rF.DICT_CREATE_WITH_MESSAGE0="定義字典 %1 = %2",rF.SET_CREATE_WITH_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",rF.SET_CREATE_WITH_TOOLTIP="",rF.SET_CREATE_WITH_MESSAGE0="定義集合 %1 = %2",rF.SET_UPDATE_WITH_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",rF.SET_UPDATE_WITH_TOOLTIP="添加參數可為字符串、列表、元組、集合、字典(只添加key),已有元素則不進行操作",rF.SET_UPDATE_WITH_MESSAGE0="集合 %1 添加 %2",rF.INTERSECTION_OF_SETS_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",rF.INTERSECTION_OF_SETS_TOOLTIP="",rF.INTERSECTION_OF_SETS_MESSAGE0="取 %1 集合 %2 集合 %3",rF.MPYTHON_INTERSECTION="交集",rF.MPYTHON_UNION="並集",rF.MPYTHON_DIFFERENCE="差集",rF.SETS_UPDATE_WAYS_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",rF.SETS_UPDATE_WAYS_TOOLTIP="",rF.SETS_UPDATE_WAYS_MESSAGE0="集合 %1 更新為 與集合 %2 的 %3",rF.SUBSET_SUPERSET_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",rF.SUBSET_SUPERSET_TOOLTIP="",rF.SUBSET_SUPERSET_MESSAGE0="集合 %1 為集合 %2 的 %3",rF.MPYTHON_SUBSET="子集",rF.MPYTHON_SUPERSET="超集",rF.LEN_OF_SETS_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",rF.LEN_OF_SETS_TOOLTIP="",rF.LEN_OF_SETS_MESSAGE0="集合 %1 長度",rF.GET_SETS_POP_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",rF.GET_SETS_POP_TOOLTIP="",rF.GET_SETS_POP_MESSAGE0="返回隨機項並移除之 從集合 %1",rF.CREATE_EMPTY_SET_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",rF.CREATE_EMPTY_SET_TOOLTIP="",rF.CREATE_EMPTY_SET_MESSAGE0="創建空集合 %1",rF.BIT_INVERSION_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",rF.BIT_INVERSION_TOOLTIP="對數據的每個二進制位取反",rF.BIT_INVERSION_MESSAGE0="二進制取反 %1",rF.TUPLE_CREATE_WITH_ITEMS_INSERT_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",rF.TUPLE_CREATE_WITH_ITEMS_INSERT_TOOLTIP="正序計數從0開始,倒序計數從1開始",rF.SET_CREATE_WITH_ITEMS_INSERT_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",rF.SET_CREATE_WITH_ITEMS_INSERT_TOOLTIP="項可為字符串、已賦值變量、元組",rF.DICT_CREATE_WITH_ITEMS_INSERT_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",rF.DICT_CREATE_WITH_ITEMS_INSERT_TOOLTIP="正序計數從0開始,倒序計數從1開始",rF.DICT_KEY_VALUE_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",rF.DICT_KEY_VALUE_TOOLTIP="",rF.DICT_KEY_VALUE_MESSAGE0="字典%1 鍵%2 的值",rF.ADD_DICT_KEY_VALUE_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",rF.ADD_DICT_KEY_VALUE_TOOLTIP="已有該鍵則更新該鍵",rF.ADD_DICT_KEY_VALUE_MESSAGE0="字典%1 添加鍵%2 值%3",rF.DICT_LENGTH_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",rF.DICT_LENGTH_TOOLTIP="",rF.DICT_LENGTH_MESSAGE0="字典%1 長度",rF.DICT_KEY_EXIST_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",rF.DICT_KEY_EXIST_TOOLTIP="",rF.DICT_KEY_EXIST_MESSAGE0="字典%1 包含鍵%2",rF.DICT_KEY_OR_VAL_LIST_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",rF.DICT_KEY_OR_VAL_LIST_TOOLTIP="",rF.DICT_KEY_OR_VAL_LIST_MESSAGE0="字典%1 %2的列表",rF.DICT_KEYS="鍵",rF.DICT_VALUES="值",rF.mpython_lists_append_MESSAGE0="列表%1 末尾添加項%2",rF.mpython_lists_append_TOOLTIP="",rF.mpython_lists_append_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",rF.mpython_lists_extend_MESSAGE0="列表%1 追加列表%2",rF.mpython_lists_extend_TOOLTIP="",rF.mpython_lists_extend_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",rF.mpython_lists_clear_MESSAGE0="列表%1 清空",rF.mpython_lists_clear_TOOLTIP="",rF.mpython_lists_clear_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",rF.MPYTHON_REMOVE_REPETITION_MESSAGE0="列表%1 移除重複",rF.MPYTHON_REMOVE_REPETITION_TOOLTIP="",rF.MPYTHON_REMOVE_REPETITION_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",rF.mpython_Timer_value_MESSAGE0="定時器 %1 的計數值",rF.mpython_Timer_value_TOOLTIP="獲取並返回計時器當前計數值",rF.mpython_Timer_deinit_MESSAGE0="清除 定時器/事件 %1",rF.mpython_Timer_deinit_TOOLTIP="取消定時器的初始化。停止計時器,並禁用計時器外圍設備",rF.mpython_Interrupt_AB_HELPURL="https://mpython.readthedocs.io/zh/latest/tutorials/basics/buttons.html#id3",rF.mpython_Interrupt_AB_TOOLTIP="",rF.mpython_Interrupt_AB_MESSAGE0="當按鍵 %1 被 %2 時",rF.mpython_Interrupt_pin_HELPURL="https://mpython.readthedocs.io/zh/latest/tutorials/basics/io/digital_io.html#id3",rF.mpython_Interrupt_pin_TOOLTIP="上升沿觸發:由低電平到高電平;下降沿觸發:由高電平到低電平",rF.mpython_Interrupt_pin_MESSAGE0="當引腳 %1 電平 %2 時",rF.mpython_Interrupt_pin_IRQ_FALLING="↘ 從高到低",rF.mpython_Interrupt_pin_IRQ_RISING="↗ 從低到高",rF.mpython_IRQ_FALLING="按下",rF.mpython_IRQ_RISING="松開",rF.mpython_PERIODIC="重復執行",rF.mpython_ONE_SHOT="延時執行",rF.MPYTHON_IS_SHAKED_MESSAGE0="掌控板 %1",rF.MPYTHON_IS_SHAKED_HELPURL="",rF.MPYTHON_IS_SHAKED_TOOLTIP="",rF.MPYTHON_IS_SHAKED="被搖晃",rF.MPYTHON_IS_THROWN="被拋起",rF.MPYTHON_SHAKE_DETECTOR_MESSAGE0="當掌控板 %1 時",rF.MPYTHON_SHAKE_DETECTOR_HELPURL="",rF.MPYTHON_SHAKE_DETECTOR_TOOLTIP="",rF.MPYTHON_IS_TILTED_MESSAGE0="掌控板 %1",rF.MPYTHON_IS_TILTED_HELPURL="",rF.MPYTHON_IS_TILTED_TOOLTIP="",rF.MPYTHON_TILT_DETECTOR_MESSAGE0="當掌控板 %1 時",rF.MPYTHON_TILT_DETECTOR_HELPURL="",rF.MPYTHON_TILT_DETECTOR_TOOLTIP="",rF.MPYTHON_DIRECTION_FORWARD="向前傾斜",rF.MPYTHON_DIRECTION_BACK="向後傾斜",rF.MPYTHON_DIRECTION_RIGHT="向右傾斜",rF.MPYTHON_DIRECTION_LEFT="向左傾斜",rF.MPYTHON_DIRECTION_NONE="平放",rF.MPYTHON_TOUCH_EVENT_MESSAGE0="當觸摸鍵 %1 被 %2 時",rF.MPYTHON_TOUCH_EVENT_HELPURL="",rF.MPYTHON_TOUCH_EVENT_TOOLTIP="",rF.MPYTHON_TOUCH_EVENT_PRESSED="觸摸",rF.MPYTHON_TOUCH_EVENT_UNPRESSED="釋放",rF.MPYTHON_CUSTOM_EVENT_MESSAGE0="事件 %1 : 當 %2 時",rF.MPYTHON_CUSTOM_EVENT_HELPURL="",rF.MPYTHON_CUSTOM_EVENT_TOOLTIP="自定義事件與定時器共用 1/2/4/7/8/9/10,不可同時占用一個端口。\n最大同時創建4個事件/定時器,如果存在沖突,請嘗試換一個編號。",rF.mpython_music_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",rF.mpython_music_range_pitch_TOOLTIP="時長為單個頻率的時長",rF.mpython_music_range_pitch_MESSAGE0="播放音調 從%1 到%2 步長%3 時長%4 毫秒 引脚 %5",rF.mpython_neopixel_init_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",rF.mpython_neopixel_init_TOOLTIP="",rF.mpython_neopixel_init_MESSAGE0="燈帶初始化 名稱%1 引腳%2 數量%3",rF.MPYTHON_NEOPIXEL_RAINBOW_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",rF.MPYTHON_NEOPIXEL_RAINBOW_TOOLTIP="",rF.MPYTHON_NEOPIXEL_RAINBOW_MESSAGE0="彩虹燈效 燈帶%1 數量 %2 亮度 %3 偏移 %4",rF.MPYTHON_NEOPIXEL_BRIGHTNESS_HELPURL="https://mpython.readthedocs.io/zh/master/library/micropython/neopixel.html#NeoPixel.brightness",rF.MPYTHON_NEOPIXEL_BRIGHTNESS_TOOLTIP="亮度調節, 範圍 0 ~ 100",rF.MPYTHON_NEOPIXEL_BRIGHTNESS_MESSAGE0="燈帶 %1 設置亮度為 %2",rF.mpython_neopixel_single_TOOLTIP="",rF.mpython_neopixel_single_MESSAGE0="燈帶%1 %2號 紅%3 綠%4 藍%5",rF.mpython_neopixel_single_gui_MESSAGE0="燈帶 %1 %2號 顏色為 %3",rF.mpython_neopixel_single_gui_TOOLTIP="",rF.mpython_neopixel_show_TOOLTIP="",rF.mpython_neopixel_show_MESSAGE0="燈帶%1 設置生效",rF.mpython_neopixel_off_TOOLTIP="",rF.mpython_neopixel_off_MESSAGE0="燈帶%1 關閉",rF.mpython_neopixel_all_TOOLTIP="",rF.mpython_neopixel_all_MESSAGE0="燈帶%1 全亮 紅%2 綠%3 藍%4",rF.mpython_neopixel_all_gui_TOOLTIP="",rF.mpython_neopixel_all_gui_MESSAGE0="燈帶%1 全亮 顏色%2",rF.mpython_image_to_oled_MESSAGE0="打開圖片 %1 寬 %2 高 %3",rF.mpython_image_to_oled_TOOLTIP="",rF.mpython_time_localtime_MESSAGE0="本地時間 %1",rF.mpython_time_localtime_TOOLTIP="星期數:返回0~6,周一為0,周日為6\n天數:獲取當前日期是一年中的第幾天\n建議先連接wifi並獲取網絡時間",rF.mpython_WiFi_config_MESSAGE0="Wi-Fi 配置信息 %1",rF.mpython_WiFi_config_TOOLTIP="netmask-子網掩碼;gateway-網關",rF.mpython_time_ticks_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",rF.mpython_time_ticks_MESSAGE0="運行時間 %1",rF.mpython_time_ticks_TOOLTIP="",rF.MPYTHON_TIMER_DEF_MESSAGE0="定義定時器 %1",rF.MPYTHON_TIMER_INIT_MESSAGE0="啟動定時器 %1 %2 周期 %3 毫秒",rF.mpython_Timer_MESSAGE0="設置定時器 %1 %2 周期 %3 毫秒",rF.mpython_Timer_TOOLTIP="創建定時器n,n=1-14。\n最大同時創建4個定時器,如果存在沖突,請嘗試換一個編號。\n3用於內部程序,\n5/6用於伺服系統和ADC,\n11用於搖晃檢測,\n12用於觸摸鍵檢測,\n13用於Radio和DHT11/DHT22定時取值(共用),\n14用於OneNET和傾斜檢測(共用),\n其余端口與自定義事件共用。",rF.mpython_Timer_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/blocks/index.html",rF.mpython_bme280_hum_tem_pre_MESSAGE0="%1",rF.mpython_bme280_hum_tem_pre_TOOLTIP="氣壓單位Pa, 溫度單位攝氏度, 環境濕度單位%",rF.mpython_sway_xyz_MESSAGE0="%1 搖晃掌控板",rF.mpython_sway_xyz_TOOLTIP="掌控板正面朝上,觸摸鍵 'python' 靠近使用者,開始左右或前後搖晃掌控板",rF.mpython_init_bluetooth_MESSAGE0="初始化 藍牙名稱%1",rF.mpython_init_bluetooth_TOOLTIP="初始化 藍牙名稱",rF.mpython_OnOff_bluetooth_MESSAGE0="藍牙設備%1廣播",rF.mpython_OnOff_bluetooth_TOOLTIP="藍牙設備 開啟或關閉廣播",rF.mpython_HID_consumer_bluetooth_MESSAGE0="消費類設備%1 狀態%2",rF.mpython_HID_consumer_bluetooth_TOOLTIP="類比HID消費類設備的控制器,如藍牙遙控器",rF.mpython_HID_release_keyboard_bluetooth_MESSAGE0="鍵盤 釋放按鍵",rF.mpython_HID_release_keyboard_bluetooth_TOOLTIP="HID鍵盤設備",rF.mpython_HID_mouse_bluetooth_MESSAGE0="鼠標%1",rF.mpython_HID_mouse_bluetooth_TOOLTIP="鼠標設備",rF.mpython_HID_release_mouse_bluetooth_MESSAGE0="鼠標 釋放按鍵",rF.mpython_HID_release_mouse_bluetooth_TOOLTIP="鼠標設備",rF.mpython_HID_keyboard_bluetooth_MESSAGE0="鍵盤 按鍵%1",rF.mpython_HID_keyboard_bluetooth_TOOLTIP="鍵盤設備",rF.mpython_HID_keyboard_group_bluetooth_MESSAGE0="HID設備按鍵 %1 組合按鍵%2",rF.mpython_HID_keyboard_group_bluetooth_TOOLTIP="如果想使用多個按鍵組合指令,可以用“|”或運算",rF.mpython_HID_mouse_pointer_bluetooth_MESSAGE0="滑鼠 指標移動 x%2 y%1",rF.mpython_HID_mouse_pointer_bluetooth_TOOLTIP="鼠标坐标x,y轴的相对位移,范围-1023 ~ 1023",rF.mpython_HID_keyboard_group_bluetooth_MESSAGE0="設備 按鍵 %1 組合按鍵%2",rF.mpython_HID_keyboard_group_bluetooth_TOOLTIP="鍵盤設備",rF.mpython_HID_keyboard_part_bluetooth_MESSAGE0="鍵盤 组合設備%1",rF.mpython_HID_keyboard_part_bluetooth_TOOLTIP="如果想使用多個按鍵組合指令,可以用“|”或運算",rF.mpython_HID_keyboard_part_bluetooth_HELPURL="",rF.mpython_init_wifi_MESSAGE0="連接 Wi-Fi 名稱 %1 密碼 %2",rF.mpython_init_wifi_TOOLTIP="讓掌控板接入Wi-Fi環境",rF.MPYTHON_WIFI_IFCONFIG_MESSAGE0="Wi-Fi 設置固定IP %1 IP 地址 %2 子網掩碼 %3 默認網關 %4 DNS %5",rF.MPYTHON_WIFI_IFCONFIG_TOOLTIP="",rF.MPYTHON_WIFI_IFCONFIG_HELPURL="",rF.mpython_dis_WiFi_MESSAGE0="斷開 Wi-Fi 連接",rF.mpython_dis_WiFi_TOOLTIP="",rF.MPYTHON_ENABLE_APWIFI_HELPURL="https://mpython.readthedocs.io/zh/master/tutorials/basics/network/network_basics.html#ap",rF.MPYTHON_ENABLE_APWIFI_TOOLTIP="密碼可以為空,或者8位以上的字母或數字。\nAP模式僅用於掌控板之間的相互通信,不可以作為熱點,令其它設備上網。",rF.MPYTHON_ENABLE_APWIFI_MESSAGE0="開啟 AP模式 名稱 %1 密碼 %2 信道 %3",rF.mpython_disable_APWiFi_MESSAGE0="關閉 AP模式",rF.mpython_disable_APWiFi_TOOLTIP="",rF.mpython_ntptime_settime_MESSAGE0="同步網絡時間 時區 %1 授時服務器 %2",rF.mpython_ntptime_settime_TOOLTIP="NTP時間同步是一種時間同步網絡技術",rF.mpython_wifi_get_date_MESSAGE0="獲取當前日期",rF.mpython_wifi_get_date_TOOLTIP="獲取當前日期字符串 示例:2020年12月12日",rF.mpython_wifi_get_time_MESSAGE0="獲取當前時間",rF.mpython_wifi_get_time_TOOLTIP="獲取當前時間字符串",rF.mpython_ntptime_timezone_E1="東1區",rF.mpython_ntptime_timezone_E2="東2區",rF.mpython_ntptime_timezone_E3="東3區",rF.mpython_ntptime_timezone_E4="東4區",rF.mpython_ntptime_timezone_E5="東5區",rF.mpython_ntptime_timezone_E6="東6區",rF.mpython_ntptime_timezone_E7="東7區",rF.mpython_ntptime_timezone_E8="東8區",rF.mpython_ntptime_timezone_E9="東9區",rF.mpython_ntptime_timezone_E10="東10區",rF.mpython_ntptime_timezone_E11="東11區",rF.mpython_ntptime_timezone_E12="東12區",rF.mpython_ntptime_timezone_0="中時區",rF.mpython_ntptime_timezone_W1="西1區",rF.mpython_ntptime_timezone_W2="西2區",rF.mpython_ntptime_timezone_W3="西3區",rF.mpython_ntptime_timezone_W4="西4區",rF.mpython_ntptime_timezone_W5="西5區",rF.mpython_ntptime_timezone_W6="西6區",rF.mpython_ntptime_timezone_W7="西7區",rF.mpython_ntptime_timezone_W8="西8區",rF.mpython_ntptime_timezone_W9="西9區",rF.mpython_ntptime_timezone_W10="西10區",rF.mpython_ntptime_timezone_W11="西11區",rF.mpython_ntptime_timezone_W12="西12區",rF.FILE_TO_LIST_HELPURL="",rF.FILE_TO_LIST_TOOLTIP="讀出指定路徑的文本文件內容(僅限utf-8格式),並轉為列表形式,以分隔符分隔。",rF.FILE_TO_LIST_MESSAGE0="讀取文本文件 %1 為列表 ,以 %2 分隔",rF.FILE_TO_BIN_HELPURL="",rF.FILE_TO_BIN_TOOLTIP="以二進制格式讀出指定路徑的文件內容。",rF.FILE_TO_BIN_MESSAGE0="讀取文件 %1 的二進制內容",rF.MPYTHON_INIT_FILE_HELPURL="",rF.MPYTHON_INIT_FILE_TOOLTIP="初始化一個文本文件,如果文件不存在則創建文件,如果文件存在則清空內容。",rF.MPYTHON_INIT_FILE_MESSAGE0="初始化文本文件 %1",rF.MPYTHON_WRITE_FILE_HELPURL="",rF.MPYTHON_WRITE_FILE_TOOLTIP="向指定路徑的文本文件寫入內容,如果文件不存在則創建文件。",rF.MPYTHON_WRITE_FILE_MESSAGE0="向文本文件 %1 寫入內容 %2 ,以 %3 分隔",rF.MPYTHON_SDCARD_INIT_HELPURL="https://mpython.readthedocs.io/zh/master/library/mPython/sdcard.html#sdcard.SDCard",rF.MPYTHON_SDCARD_INIT_TOOLTIP="sck: P13\nmosi: P15\nmiso: P14\nsdcard: P16\n須確保 SPI 總線的引腳與 micro SD 卡物理連接正確,並預先使用 FAT 或 FAT32 文件系統格式化 micro SD 卡。",rF.MPYTHON_SDCARD_INIT_MESSAGE0="初始化 SD 卡",rF.MPYTHON_SDCARD_MOUNT_HELPURL="https://mpython.readthedocs.io/zh/master/library/mPython/sdcard.html#sdcard.SDCard",rF.MPYTHON_SDCARD_MOUNT_TOOLTIP="掛載 SDCard 到指定路徑。",rF.MPYTHON_SDCARD_MOUNT_MESSAGE0="掛載 SD 卡到路徑 %1",rF.MPYTHON_ENTER="回車",rF.MPYTHON_COMMA="逗號",rF.MPYTHON_SEMICOLON="分號",rF.MPYTHON_SPACE="空格",rF.mpython_wifi_clock_MESSAGE0="Wi-Fi 模擬時鐘 x %1 y %2 半徑 %3",rF.mpython_wifi_clock_TOOLTIP="需連接 Wi-Fi 使用",rF.mpython_def_clock_MESSAGE0="初始化時鐘%1 x %2 y %3 半徑 %4",rF.mpython_def_clock_TOOLTIP="",rF.mpython_settime_clock_MESSAGE0="時鐘%1 讀取時間",rF.mpython_settime_clock_TOOLTIP="",rF.mpython_draw_clear_clock_MESSAGE0="%1 時鐘 %2",rF.mpython_draw_clear_clock_TOOLTIP="",rF.mpython_tinywebio_start_MESSAGE0="啟動 TinyWebIO 服務 %1",rF.mpython_tinywebio_start_TOOLTIP="啟動該服務需連接Wi-Fi,TinyWebIO服務為App Inventor應用提供遠程控制接口的掌控板工具包",rF.mpython_tinywebio_client_setup_HELPURL="",rF.mpython_tinywebio_client_setup_TOOLTIP="向服務器發布的數據項(逗號分隔)\nbuttona/b 按鍵狀態\ntouchpadp/y/t/h/o/n 觸摸按鍵值\nlight 光線值\nsound 聲音值\naccelerometer 三軸加速度值\nid 掌控板標識\ntime 時間戳\npind 數字IO引腳\npina 模擬IO引腳\n----------\n從服務器讀取的數據項(逗號分隔)\nrgb0/1/2 RGB燈珠\noled OLED顯示屏\nmusic 音樂\nservo 舵機\npind 數字IO引腳\npina 模擬IO引腳",rF.mpython_tinywebio_client_setup_MESSAGE0="設置 TinyWebIO 客戶端參數 %1 TinyWebDB服務器地址 %2 向服務器發布的數據項 %3 從服務器讀取的數據項 %4 存取服務器的時間間隔(ms) %5",rF.mpython_tinywebio_client_action_HELPURL="",rF.mpython_tinywebio_client_action_TOOLTIP="",rF.mpython_tinywebio_client_action_MESSAGE0="%1 TinyWebIO 客戶端",rF.mpython_tinywebio_client_action_start="啟動",rF.mpython_tinywebio_client_action_stop="停止",rF.MPYTHON_CUSTOM_CODE_HELPURL="",rF.MPYTHON_CUSTOM_CODE_TOOLTIP="",rF.MPYTHON_CUSTOM_CODE_MESSAGE0="%1 自定義代碼 %2 %3",rF.MPYTHON_CUSTOM_VALUE_MESSAGE0="自定義返回值 %1",rF.MPYTHON_CUSTOM_TYPE_IMPORT="置頂",rF.MPYTHON_CUSTOM_TYPE_NORMAL="普通",rF.mpython_servo_angle0_MESSAGE0="設置舵機 %1 角度為 %2",rF.mpython_servo_angle_MESSAGE0="設置舵機 %1 角度為 %2 脈寬從 %3 到 %4 最大角度 %5",rF.mpython_servo_angle_TOOLTIP="電源線Vcc(紅色)連接拓展板電源口V,地線GND(棕色)連接拓展板地線口G,控制信號線(橙色)連接所選的拓展板引腳",rF.mpython_dh11_hum_tem_HELPURL="https://mpython.readthedocs.io/zh/latest/classic/dht11.html?highlight=DHT",rF.mpython_dh11_hum_tem_MESSAGE0="DHT11 %1 %2",rF.mpython_dh11_hum_tem_TOOLTIP="DHT11上的 + 連接拓展板的電源口 V ,- 連接拓展板的地線口 G ,out 連接拓展板的引腳 0(即選引腳)",rF.MPYTHON_DH22_HUM_TEM_MESSAGE0="DHT22 %1 %2",rF.MPYTHON_DH22_HUM_TEM_TOOLTIP="",rF.MPYTHON_DH22_HUM_TEM_HELPURL="https://mpython.readthedocs.io/zh/latest/classic/dht11.html?highlight=DHT",rF.mpython_music_note_MESSAGE0="音符 %1 %2 : %3",rF.mpython_music_note_TOOLTIP="音符,如C4:4",rF.mpython_return_list_MESSAGE0="定義列表 %1 = %2",rF.mpython_return_list_TOOLTIP="",rF.mpython_display_Show_MESSAGE0="OLED 顯示生效",rF.mpython_display_Show_TOOLTIP="",rF.mpython_display_DispChar_MESSAGE0="顯示文本 x %1 y %2 內容 %3 模式 %4 %5",rF.mpython_display_DispChar_TOOLTIP="OLED分辨率128x64",rF.mpython_display_DispChar_HELPURL="https://mpython.readthedocs.io/zh/master/library/mPython/mpython.html?highlight=oled#oled.DispChar",rF.mpython_display_DispChar_5lines_MESSAGE0="OLED 第%1 行顯示 %2 模式 %3 %4",rF.mpython_display_DispChar_5lines_TOOLTIP="OLED分辨率128x64",rF.mpython_line1="1",rF.mpython_line2="2",rF.mpython_line3="3",rF.mpython_line4="4",rF.mpython_line5="5",rF.MPYTHON_CLEAR_DISPCHAR_5LINES_MESSAGE0="OLED 清除第 %1 行",rF.MPYTHON_CLEAR_DISPCHAR_5LINES_TOOLTIP="OLED分辨率128x64",rF.MPYTHON_CLEAR_DISPCHAR_5LINES_HELPURL="";rF.mpython_display_fill_0="清空",rF.mpython_display_fill_1="全亮",rF.mpython_display_invert_0="黑底",rF.mpython_display_invert_1="白底",rF.mpython_display_show="生效",rF.mpython_display_fill_MESSAGE0="OLED 顯示 %1",rF.mpython_display_fill_TOOLTIP="",rF.mpython_display_pixel_0="暗",rF.mpython_display_pixel_1="亮",rF.mpython_display_pixel_MESSAGE0="描點 x %1 y %2 為 %3",rF.mpython_display_pixel_TOOLTIP="",rF.mpython_display_hline_0="擦除",rF.mpython_display_hline_1="繪制",rF.mpython_display_hline_MESSAGE0="%1 水平線%2 x%3 y%4 長度%5",rF.mpython_display_hline_TOOLTIP="",rF.mpython_ProgressBar_MESSAGE0="進度條%1 x%2 y%3 寬%4 高%5 進度%6",rF.mpython_ProgressBar_TOOLTIP="",rF.mpython_stripBar_MESSAGE0="柱狀條%1 x%2 y%3 寬%4 高%5 進度%6",rF.mpython_stripBar_TOOLTIP="",rF.MPYTHON_QR_CODE_HELPURL="https://mpython.readthedocs.io/zh/master/library/mPython/gui.html#gui.UI.qr_code",rF.MPYTHON_QR_CODE_TOOLTIP="",rF.MPYTHON_QR_CODE_MESSAGE0="在坐標 x %1 y %2 繪制二維碼 %3 尺寸 %4",rF.MPYTHON_DISPLAY_MODE_0="擦除",rF.MPYTHON_DISPLAY_MODE_1="繪制",rF.MPYTHON_DISPLAY_HOLLOW="空心",rF.MPYTHON_DISPLAY_SOLID="實心",rF.MPYTHON_DISPLAY_HVLINE_MESSAGE0="%1 %2 線 %3 x %4 y %5 長度 %6",rF.MPYTHON_DISPLAY_HVLINE_TOOLTIP="",rF.MPYTHON_DISPLAY_SHAPE_RECT_MESSAGE0="%1 %2 矩形 %3 x %4 y %5 寬 %6 高 %7",rF.MPYTHON_DISPLAY_SHAPE_RECT_TOOLTIP="",rF.MPYTHON_DISPLAY_SHAPE_CIRCLE_MESSAGE0="%1 %2 圓 %3 x %4 y %5 半徑 %6",rF.MPYTHON_DISPLAY_SHAPE_CIRCLE_TOOLTIP="",rF.MPYTHON_DISPLAY_SHAPE_TRIANGLE_MESSAGE0="%1 %2 三角 %3 x1 %4 y1 %5 x2 %6 y2 %7 x3 %8 y3 %9",rF.MPYTHON_DISPLAY_SHAPE_TRIANGLE_TOOLTIP="",rF.MPYTHON_RGB_0="0 #",rF.MPYTHON_RGB_1="1 #",rF.MPYTHON_RGB_2="2 #",rF.MPYTHON_RGB_ALL="所有",rF.MPYTHON_SET_RGB_LIST_COLOR_MESSAGE0="設置 %1 RGB 燈顏色為 %2",rF.MPYTHON_SET_RGB_LIST_COLOR_TOOLTIP="原生亮度的 1/30 能較好顯示色差",rF.MPYTHON_SET_RGB_LIST_NUMBER_MESSAGE0="設置 %1 RGB 燈顏色為 R %2 G %3 B %4",rF.MPYTHON_SET_RGB_LIST_NUMBER_TOOLTIP="原生亮度的 1/30 能較好顯示色差",rF.MPYTHON_OFF_RGB_LIST_MESSAGE0="關閉 %1 RGB 燈",rF.MPYTHON_OFF_RGB_LIST_TOOLTIP="",rF.MPYTHON_MUSIC_PLAY_MESSAGE0="播放音樂 %1 引腳 %2",rF.MPYTHON_MUSIC_PLAY_TOOLTIP="播放內置的音樂",rF.MPYTHON_MUSIC_PLAY_UNTIL_END_MESSAGE0="播放音樂 %1 直到完成 , 引腳 %2",rF.MPYTHON_MUSIC_PLAY_UNTIL_END_TOOLTIP="播放內置的音樂",rF.MPYTHON_MUSIC_GE_CHANG_ZU_GUO="歌唱祖國",rF.MPYTHON_MUSIC_DONG_FANG_HONG="東方紅",rF.MPYTHON_MUSIC_CAI_YUN_ZHUI_YUE="彩雲追月",rF.MPYTHON_MUSIC_ZOU_JIN_XIN_SHI_DAI="走進新時代",rF.MPYTHON_MUSIC_MO_LI_HUA="茉莉花",rF.MPYTHON_MUSIC_YI_MENG_SHAN_XIAO_DIAO="沂蒙山小調",rF.mpython_display_vline_MESSAGE0="%1 垂直線%2 x%3 y%4 長度%5",rF.mpython_display_vline_TOOLTIP="",rF.mpython_display_line_MESSAGE0="%1 線%2 x1 %3 y1 %4 到 x2 %5 y2 %6",rF.mpython_display_line_TOOLTIP="",rF.mpython_display_rect_MESSAGE0="%1 邊框%2 x %3 y %4 寬 %5 高 %6",rF.mpython_display_rect_TOOLTIP="",rF.mpython_display_RoundRect_MESSAGE0="%1 弧角邊框%2 x %3 y %4 寬 %5 高 %6 半徑%7",rF.mpython_display_RoundRect_TOOLTIP="",rF.mpython_display_fill_rect_MESSAGE0="%1 矩形%2 x %3 y %4 寬 %5 高 %6 ",rF.mpython_display_fill_rect_TOOLTIP="",rF.mpython_display_fill_circle_MESSAGE0="%1 實心圓%2 x %3 y %4 半徑 %5",rF.mpython_display_fill_circle_TOOLTIP="",rF.mpython_display_circle_MESSAGE0="%1 空心圓%2 x %3 y %4 半徑 %5",rF.mpython_display_circle_TOOLTIP="",rF.mpython_display_triangle_MESSAGE0="%1 空心三角%2 x%3 y%4 x2%5 y2%6 x3%7 y3%8",rF.mpython_display_triangle_TOOLTIP="",rF.mpython_display_fill_triangle_MESSAGE0="%1 實心三角%2 x%3 y%4 x2%5 y2%6 x3%7 y3%8",rF.mpython_display_fill_triangle_TOOLTIP="",rF.mpython_display_Bitmap_MESSAGE0="%1 圖像 x%2 y%3 寬%4 高%5 16進制圖像數據 %6",rF.mpython_display_Bitmap_TOOLTIP="將16進制圖像數據顯示在OLED屏的指定位置",rF.MPYTHON_GET_PBM_DATA_MESSAGE0="獲取內置圖像 %1 模式%2",rF.MPYTHON_GET_PBM_DATA_TOOLTIP="支持*.pbm 或 *.bmp格式的單色圖像文件,獲取指定路徑的圖像文件數據,返回一個元組對象。",rF.MPYTHON_GET_PBM_DATA_HELPURL="https://mpython.readthedocs.io/zh/master/library/mPython/gui.html#image",rF.MPYTHON_GET_PBM_DATA_CUSTOM_MESSAGE0="獲取自定義圖像 %1 模式%2",rF.MPYTHON_DISPLAY_PBM_DATA_MESSAGE0="在坐標 x %1 y %2 顯示圖像 %3",rF.MPYTHON_DISPLAY_PBM_DATA_TOOLTIP="支持*.pbm 或 *.bmp格式的單色圖像文件",rF.MPYTHON_DISPLAY_PBM_DATA_HELPURL="https://mpython.readthedocs.io/zh/master/library/mPython/gui.html#image",rF.MPYTHON_BITMAP_FROM_FILE_MESSAGE0="在坐標 x %1 y %2 顯示圖像 %5 寬 %3 高 %4",rF.MPYTHON_BITMAP_FROM_FILE_TOOLTIP="",rF.MPYTHON_BITMAP_FROM_FILE_HELPURL="",rF.mpython_horizontal="水平",rF.mpython_vertical="垂直",rF.mpython_display_FrameBuffer_MESSAGE0="構建幀 列表 %1 長 %2 寬 %3 掃描模式 %4",rF.mpython_display_FrameBuffer_TOOLTIP="用圖像取模後數據的列表 ,創建128x64的幀緩存區,以儲存圖片幀",rF.MPYTHON_FONT_DIGIFACE_11="仿數碼管 11像素",rF.MPYTHON_FONT_DIGIFACE_16="仿數碼管 16像素",rF.MPYTHON_FONT_DIGIFACE_21="仿數碼管 21像素",rF.MPYTHON_FONT_DIGIFACE_30="仿數碼管 30像素",rF.MPYTHON_FONT_DIGIFACE_44="仿數碼管 44像素",rF.MPYTHON_FONT_DIGIFACE_IT_30="仿數碼管 斜體 30像素",rF.MPYTHON_FONT_DIGIFACE_IT_42="仿數碼管 斜體 42像素",rF.MPYTHON_FONT_DVSM_12="DejaVu Sans Mono 12像素",rF.MPYTHON_FONT_DVSM_16="DejaVu Sans Mono 16像素",rF.MPYTHON_FONT_DVSM_21="DejaVu Sans Mono 21像素",rF.MPYTHON_FONT_DVSMB_12="DejaVu Sans Mono 黑體 12像素",rF.MPYTHON_FONT_DVSMB_16="DejaVu Sans Mono 黑體 16像素",rF.MPYTHON_FONT_DVSMB_21="DejaVu Sans Mono 黑體 21像素",rF.MPYTHON_FONT_WRAP="自動換行",rF.MPYTHON_FONT_NO_WRAP="不換行",rF.MPYTHON_FACE_1="心形",rF.MPYTHON_FACE_2="心形(小)",rF.MPYTHON_FACE_3="高興",rF.MPYTHON_FACE_4="笑臉",rF.MPYTHON_FACE_5="傷心",rF.MPYTHON_FACE_6="困惑",rF.MPYTHON_FACE_7="生氣",rF.MPYTHON_FACE_8="睡著",rF.MPYTHON_FACE_9="驚訝",rF.MPYTHON_FACE_10="愚蠢",rF.MPYTHON_FACE_11="極妙",rF.MPYTHON_FACE_12="無聊",rF.MPYTHON_FACE_ROCK="石頭",rF.MPYTHON_FACE_PAPER="布",rF.MPYTHON_FACE_SCISSORS="剪刀",rF.MPYTHON_FACE_ROCK_S="石頭(小)",rF.MPYTHON_FACE_PAPER_S="布(小)",rF.MPYTHON_FACE_SCISSORS_S="剪刀(小)",rF.MPYTHON_DISPLAY_FONT_MESSAGE0="在坐標 x %1 y %2 顯示 %3 以 %4 字體 %5",rF.MPYTHON_DISPLAY_FONT_TOOLTIP="",rF.MPYTHON_DISPLAY_FONT_HELPURL="",rF.mpython_front="正向",rF.mpython_reverse="反轉",rF.mpython_display_blit_MESSAGE0="顯示幀 坐標x %1 y %2",rF.mpython_display_blit_TOOLTIP="",rF.mpython_front_reverse_MESSAGE0="像素點bit %1",rF.mpython_front_reverse_TOOLTIP="用於顯示之前",rF.mpython_images_append_MESSAGE0="動圖顯示 幀數%1 周期%2 長%3 寬%4",rF.mpython_images_append_TOOLTIP="上傳至掌控板的pbm圖片需命名為IMAGE.數字,後綴為pbm。如:IMAGE.1.pbm。幀數為7則數字為1至7",rF.mpython_button_is_pressed_MESSAGE0="按鍵%1 被按下",rF.mpython_button_is_pressed_TOOLTIP="",rF.mpython_button_both_pressed_MESSAGE0="AB按鍵都按下",rF.mpython_button_both_pressed_TOOLTIP="",rF.mpython_touchPad_value_MESSAGE0="按鍵%1 被觸摸",rF.mpython_touchPad_value_TOOLTIP="",rF.mpython_touchPad_value_num_MESSAGE0="按鍵%1 觸摸值",rF.mpython_touchPad_value_num_TOOLTIP="",rF.mpython_read_digital_MESSAGE0="讀取引腳 %1 數字值",rF.mpython_read_digital_TOOLTIP="",rF.mpython_read_DS18B20_MESSAGE0="DS18B20 防水溫度感測器 引脚 %1",rF.mpython_read_DS18B20_TOOLTIP="",rF.mpython_read_DS18B20_HELPURL="http://docs.micropython.org/en/latest/esp32/quickref.html?highlight=onewire#onewire-driver",rF.mpython_set_digital_MESSAGE0="設置引腳 %2 數字值為 %1",rF.mpython_set_digital_TOOLTIP="",rF.mpython_read_analog_MESSAGE0="讀取引腳 %1 模擬值",rF.mpython_read_analog_TOOLTIP="",rF.mpython_set_analog_MESSAGE0="設置引腳 %2 模擬值(PWM)為 %1",rF.mpython_set_analog_TOOLTIP="模擬輸出是通過IO引腳輸出脈寬調制信號,輸出指定的電壓值,簡稱PWM。",rF.mpython_set_RGB_MESSAGE0="設置 %1 號 RGB 燈顏色為 R %2 G %3 B %4",rF.mpython_set_RGB_TOOLTIP="原生亮度的 1/30 能較好顯示色差",rF.mpython_set_RGB_color_MESSAGE0="設置 %1 號 RGB 燈顏色為 %2",rF.mpython_set_RGB_color_TOOLTIP="原生亮度的 1/30 能較好顯示色差",rF.mpython_set_RGB_all_MESSAGE0="設置所有 RGB 燈顏色為 R %1 G %2 B %3",rF.mpython_set_RGB_all_TOOLTIP="原生亮度的 1/30 能較好顯示色差",rF.mpython_set_RGB_color_all_MESSAGE0="設置所有 RGB 燈顏色為 %1",rF.mpython_set_RGB_color_all_TOOLTIP="原生亮度的 1/30 能較好顯示色差",rF.mpython_fresh_RGB_MESSAGE0="RGB 燈設置生效",rF.mpython_fresh_RGB_TOOLTIP="",rF.mpython_off_RGB_MESSAGE0="關閉 RGB 燈",rF.mpython_off_RGB_TOOLTIP="",rF.mpython_buzz_state_MESSAGE0="停止播放音樂",rF.mpython_buzz_state_TOOLTIP="",rF.mpython_buzz_freq_MESSAGE0="播放連續音調 %1 引脚 %2",rF.mpython_buzz_freq_TOOLTIP="",rF.mpython_buzz_tone_MESSAGE0="播放音調 %1",rF.mpython_buzz_tone_TOOLTIP="",rF.MPYTHON_MUSIC_TONE_TEMPO_HELPURL="",rF.MPYTHON_MUSIC_TONE_TEMPO_TOOLTIP="默認是掌控板的P6引脚",rF.MPYTHON_MUSIC_TONE_TEMPO_MESSAGE0="播放音符 %1 引脚 %2",rF.MPYTHON_MUSIC_TONE_HELPURL="",rF.MPYTHON_MUSIC_TONE_TOOLTIP="",rF.MPYTHON_MUSIC_TONE_MESSAGE0="音調 %1",rF.MPYTHON_MUSIC_MUSICAL_NOTE_HELPURL="",rF.MPYTHON_MUSIC_MUSICAL_NOTE_TOOLTIP="",rF.MPYTHON_MUSIC_MUSICAL_NOTE_MESSAGE0="音符 %1 節拍 %2",rF.MPYTHON_MUSIC_TICK_HELPURL="",rF.MPYTHON_MUSIC_TICK_TOOLTIP="",rF.MPYTHON_MUSIC_TICK_MESSAGE0="節拍 %1",rF.MPYTHON_4_LINES_HELPURL="",rF.MPYTHON_4_LINES_TOOLTIP="",rF.MPYTHON_4_LINES_MESSAGE0="%1",rF.NUMBER_1="1",rF.NUMBER_1_2="1/2",rF.NUMBER_1_4="1/4",rF.NUMBER_2="2",rF.NUMBER_4="4",rF.mpython_read_sound_MESSAGE0="聲音值",rF.mpython_read_sound_TOOLTIP="",rF.mpython_read_light_MESSAGE0="光線值",rF.mpython_read_light_TOOLTIP="",rF.mpython_accelerometer_get_MESSAGE0="%1 軸加速度",rF.mpython_accelerometer_get_TOOLTIP="",rF.mpython_accelerometer_get_z_MESSAGE0="z軸加速度",rF.mpython_accelerometer_get_z_TOOLTIP="",rF.mpython_accelerometer_get_y_MESSAGE0="y軸加速度",rF.mpython_accelerometer_get_y_TOOLTIP="",rF.mpython_accelerometer_get_x_MESSAGE0="x軸加速度",rF.mpython_accelerometer_get_x_TOOLTIP="",rF.MPYTHON_ACCELEROMETER_RANGE_2G="±2g",rF.MPYTHON_ACCELEROMETER_RANGE_4G="±4g",rF.MPYTHON_ACCELEROMETER_RANGE_8G="±8g",rF.MPYTHON_ACCELEROMETER_RANGE_16G="±16g",rF.MPYTHON_ACCELEROMETER_RES_10_BIT="10bits",rF.MPYTHON_ACCELEROMETER_RES_12_BIT="12bits",rF.MPYTHON_ACCELEROMETER_RES_14_BIT="14bits",rF.MPYTHON_ACCELEROMETER_SET_RANGE_TOOLTIP="設置加速度範圍,默認為 ±2g。",rF.MPYTHON_ACCELEROMETER_SET_RANGE_MESSAGE0="設置加速度範圍為 %1",rF.MPYTHON_ACCELEROMETER_SET_RESOLUTION_TOOLTIP="設置加速度分辨率,默認為 10bits。",rF.MPYTHON_ACCELEROMETER_SET_RESOLUTION_MESSAGE0="設置加速度分辨率為 %1",rF.MPYTHON_ACCELEROMETER_SET_OFFSET_TOOLTIP="校準加速度計的3個軸(x,y,z)的加速值偏差。\n一般情況下無需校準,只有遇到加速度偏差較大時才要校準。\n x , y , z 為調整偏差值,可修正範圍為 ±1g。\n註意:校準數據斷電後不會保存。",rF.MPYTHON_ACCELEROMETER_SET_OFFSET_MESSAGE0="校準加速度值 %1 X軸偏差 %2 Y軸偏差 %3 Z軸偏差 %4",rF.MPYTHON_MAGNETIC_GET_AXIS_TOOLTIP="僅適用於掌控板2.0及以上版本",rF.MPYTHON_MAGNETIC_GET_AXIS_MESSAGE0="%1 軸 磁力",rF.MPYTHON_MAGNETIC_GET_HEADING_TOOLTIP="僅適用於掌控板2.0及以上版本",rF.MPYTHON_MAGNETIC_GET_HEADING_MESSAGE0="指南針方向",rF.MPYTHON_MAGNETIC_CALIBRATE_TOOLTIP="僅適用於掌控板2.0及以上版本",rF.MPYTHON_MAGNETIC_CALIBRATE_MESSAGE0="校準指南針",rF.MPYTHON_MAGNETIC_PEELING_TOOLTIP="僅適用於掌控板2.0及以上版本",rF.MPYTHON_MAGNETIC_PEELING_MESSAGE0="去除當前環境磁場",rF.MPYTHON_MAGNETIC_GET_FIELD_STRENGTH_TOOLTIP="僅適用於掌控板2.0及以上版本",rF.MPYTHON_MAGNETIC_GET_FIELD_STRENGTH_MESSAGE0="磁場強度",rF.MPYTHON_TILT_ANGLE_HELPURL="",rF.MPYTHON_TILT_ANGLE_TOOLTIP="",rF.MPYTHON_TILT_ANGLE_MESSAGE0="%1 軸傾斜角",rF.mpython_random_choice_MESSAGE0="返回隨機項%1",rF.mpython_random_choice_TOOLTIP="以String格式,返回列表或字符串中的隨機項",rF.mpython_i2c_init_MESSAGE0="初始化I2C 波特率%1",rF.mpython_i2c_init_TOOLTIP="SCL引腳19,SDA引腳20,與內部的OLED和加速度傳感器共享I2C總線",rF.MACHINE_TIME_PULSE_US_HELPURL="https://mpython.readthedocs.io/zh/master/library/micropython/machine/machine.html?highlight=machine.time_pulse_us#machine.time_pulse_us",rF.MACHINE_TIME_PULSE_US_MESSAGE0="%1 外部 %2 電平持續時間(微秒)",rF.MACHINE_TIME_PULSE_US_TOOLTIP="",rF.BYTES="字節",rF.MPYTHON_I2C_INIT_HELPURL="https://mpython.readthedocs.io/zh/master/library/micropython/machine/machine.I2C.html#machine.I2C",rF.MPYTHON_I2C_INIT_MESSAGE0="初始化i2c 速率%1",rF.MPYTHON_I2C_INIT_TOOLTIP="",rF.MPYTHON_I2C_DEV_INIT_HELPURL="https://mpython.readthedocs.io/zh/master/library/micropython/machine/machine.I2C.html#machine.I2C",rF.MPYTHON_I2C_DEV_INIT_MESSAGE0="初始化%1 SCL %2 SDA %3 速率 %4",rF.MPYTHON_I2C_DEV_INIT_TOOLTIP="",rF.MPYTHON_I2C_SCAN_HELPURL="https://mpython.readthedocs.io/zh/master/library/micropython/machine/machine.I2C.html?highlight=I2C#machine.I2C.scan",rF.MPYTHON_I2C_SCAN_MESSAGE0="%1 掃描地址",rF.MPYTHON_I2C_SCAN_TOOLTIP="返回壹個數組對象",rF.MPYTHON_I2C_DEINIT_HELPURL="https://mpython.readthedocs.io/zh/master/library/micropython/machine/machine.I2C.html?highlight=I2C#machine.I2C.deinit",rF.MPYTHON_I2C_DEINIT_MESSAGE0="關閉%1總線",rF.MPYTHON_I2C_DEINIT_TOOLTIP="",rF.MPYTHON_I2C_WRITETO_HELPURL="https://mpython.readthedocs.io/zh/master/library/micropython/machine/machine.I2C.html?highlight=I2C#id4",rF.MPYTHON_I2C_WRITETO_MESSAGE0="從%1 %5 地址%2 寫入%3 停止位%4",rF.MPYTHON_I2C_WRITETO_TOOLTIP="地址:Number\n寫入:Number、String",rF.MPYTHON_I2C_READFROM_HELPURL="https://mpython.readthedocs.io/zh/master/library/micropython/machine/machine.I2C.html?highlight=I2C#id4",rF.MPYTHON_I2C_READFROM_MESSAGE0="從%1 %5 地址%2 讀取 字節數%3 停止位%4",rF.MPYTHON_I2C_READFROM_TOOLTIP="地址:Number\n返回:讀取數據的 bytes 對象的字符串",rF.MPYTHON_I2C_READFROM_INTO_HELPURL="https://mpython.readthedocs.io/zh/master/library/micropython/machine/machine.I2C.html?highlight=I2C#id4",rF.MPYTHON_I2C_READFROM_INTO_MESSAGE0="從%1 %6 地址%2 讀入緩存區%3 字節數%4 停止位%5",rF.MPYTHON_I2C_READFROM_INTO_TOOLTIP="",rF.MPYTHON_I2C_WRITETO_MEN_HELPURL="https://mpython.readthedocs.io/zh/master/library/micropython/machine/machine.I2C.html?highlight=I2C#id5",rF.MPYTHON_I2C_WRITETO_MEN_MESSAGE0="從%1 %5 地址%2 寄存器%4 寫入%3",rF.MPYTHON_I2C_WRITETO_MEN_TOOLTIP="地址:Number\n寫入:Number、String",rF.MPYTHON_I2C_READFROM_MEN_HELPURL="https://mpython.readthedocs.io/zh/master/library/micropython/machine/machine.I2C.html?highlight=I2C#id5",rF.MPYTHON_I2C_READFROM_MEN_MESSAGE0="從%1 %5 地址%2 寄存器%4 讀取 字節數%3",rF.MPYTHON_I2C_READFROM_MEN_TOOLTIP="地址:Number\n返回:讀取數據的 bytes 對象的字符串",rF.MPYTHON_I2C_READFROM_MEN_INTO_HELPURL="https://mpython.readthedocs.io/zh/master/library/micropython/machine/machine.I2C.html?highlight=I2C#id5",rF.MPYTHON_I2C_READFROM_MEN_INTO_MESSAGE0="從%1 %6 地址%2 寄存器%5 讀入緩存區%3 字節數%4",rF.MPYTHON_I2C_READFROM_MEN_INTO_TOOLTIP="地址:Number\n返回:讀取數據的 bytes 對象的字符串",rF.mpython_print_MESSAGE0="調試輸出 %1",rF.mpython_print_TOOLTIP="通過串口調試,輸出字符串",rF.MPYTHON_PRINT_TO_CHART_TOOLTIP="",rF.MPYTHON_PRINT_TO_CHART_EMPTY_TITLE="打印數據到圖表",rF.MPYTHON_PRINT_TO_CHART_INPUT_WITH="打印數據到圖表",rF.MPYTHON_PRINT_TO_CHART_ITEM_TITLE="數據",rF.MPYTHON_PRINT_TO_CHART_ITEM_TOOLTIP="",rF.MPYTHON_PRINT_TO_CHART_CONTAINER_TITLE_ADD="數據內容",rF.MPYTHON_PRINT_TO_CHART_CONTAINER_TOOLTIP="",rF.MPYTHON_INIT_CHART_TOOLTIP="",rF.MPYTHON_INIT_CHART_EMPTY_TITLE="初始化圖表列標題",rF.MPYTHON_INIT_CHART_INPUT_WITH="初始化圖表列標題",rF.MPYTHON_INIT_CHART_ITEM_TITLE="標題",rF.MPYTHON_INIT_CHART_ITEM_TOOLTIP="",rF.MPYTHON_INIT_CHART_CONTAINER_TITLE_ADD="數據列標題",rF.MPYTHON_INIT_CHART_CONTAINER_TOOLTIP="",rF.MPYTHON_MS="毫秒",rF.MPYTHON_US="微秒",rF.MPYTHON_TIME_DIFFERENCE_HELPURL="",rF.MPYTHON_TIME_DIFFERENCE_MESSAGE0="返回運行時間差 開始時間 %1 結束時間 %2",rF.MPYTHON_TIME_DIFFERENCE_TOOLTIP="测量连续调用ticks_ms()、ticks_us()间的周期",rF.MPYTHON_TYPE_HELPURL="",rF.MPYTHON_TYPE_MESSAGE0="值 %1 的類型",rF.MPYTHON_TYPE_TOOLTIP="",rF.MPYTHON_TYPE_IS_HELPURL="",rF.MPYTHON_TYPE_IS_MESSAGE0="值 %1 的類型為 %2",rF.MPYTHON_TYPE_IS_TOOLTIP="",rF.MPYTHON_EVAL_HELPURL="",rF.MPYTHON_EVAL_MESSAGE0="計算表達式 %1 的結果",rF.MPYTHON_EVAL_TOOLTIP="計算字符串表達式,並返回結果",rF.MPYTHON_RETURN_HELPURL="",rF.MPYTHON_RETURN_MESSAGE0="return %1",rF.MPYTHON_RETURN_TOOLTIP="",rF.MPYTHON_BLUEBIT_GET_MOTORPEED_HELPURL="",rF.MPYTHON_BLUEBIT_GET_MOTORPEED_MESSAGE0="拓展板 電機速度 %1",rF.MPYTHON_BLUEBIT_GET_MOTORPEED_TOOLTIP="",rF.MPYTHON_M1M2_LED_ON_HELPURL="",rF.MPYTHON_M1M2_LED_ON_MESSAGE0="拓展板 設燈 %1 亮度 %2",rF.MPYTHON_M1M2_LED_ON_TOOLTIP="",rF.MPYTHON_M1M2_LED_OFF_HELPURL="",rF.MPYTHON_M1M2_LED_OFF_MESSAGE0="拓展板 關燈 %1",rF.MPYTHON_M1M2_LED_OFF_TOOLTIP="",rF.MPYTHON_BLUEBIT_AMBIENTLIGHT_HELPURL="",rF.MPYTHON_BLUEBIT_AMBIENTLIGHT_MESSAGE0="I2C數字光綫",rF.MPYTHON_BLUEBIT_AMBIENTLIGHT_TOOLTIP="",rF.MPYTHON_BLUEBIT_GET_COLOR_HELPURL="",rF.MPYTHON_BLUEBIT_GET_COLOR_MESSAGE0="I2C RGB 顔色 %1",rF.MPYTHON_BLUEBIT_GET_COLOR_TOOLTIP="",rF.MPYTHON_BLUEBIT_GET_ALL_COLOR_HELPURL="",rF.MPYTHON_BLUEBIT_GET_ALL_COLOR_MESSAGE0="I2C RGB 顔色",rF.MPYTHON_BLUEBIT_GET_ALL_COLOR_TOOLTIP="以列表形式返回",rF.MPYTHON_BLUEBIT_GET_COLOR_HSV_HELPURL="",rF.MPYTHON_BLUEBIT_GET_COLOR_HSV_MESSAGE0="I2C HSV 顔色 %1",rF.MPYTHON_BLUEBIT_GET_COLOR_HSV_TOOLTIP="色調(H),飽和度(S),明度(V)",rF.MPYTHON_BLUEBIT_GET_ALL_COLOR_HSV_HELPURL="",rF.MPYTHON_BLUEBIT_GET_ALL_COLOR_HSV_MESSAGE0="I2C HSV 顔色",rF.MPYTHON_BLUEBIT_GET_ALL_COLOR_HSV_TOOLTIP="色調(H),飽和度(S),明度(V)",rF.MPYTHON_BLUEBIT_GET_FORCE_MEASURE_HELPURL="",rF.MPYTHON_BLUEBIT_GET_FORCE_MEASURE_MESSAGE0="I2C力感測器 撥碼 %1",rF.MPYTHON_BLUEBIT_GET_FORCE_MEASURE_TOOLTIP="I2C地址與編碼開關的需要對應",rF.MPYTHON_BLUEBIT_GET_ELECTRICITY_MEASURE_HELPURL="",rF.MPYTHON_BLUEBIT_GET_ELECTRICITY_MEASURE_MESSAGE0="I2C电流感測器 撥碼 %1",rF.MPYTHON_BLUEBIT_GET_ELECTRICITY_MEASURE_TOOLTIP="I2C地址與編碼開關的需要對應",rF.MPYTHON_BLUEBIT_GET_VOLTAGE_MEASURE_HELPURL="",rF.MPYTHON_BLUEBIT_GET_VOLTAGE_MEASURE_MESSAGE0="I2C電壓感測器 撥碼 %1",rF.MPYTHON_BLUEBIT_GET_VOLTAGE_MEASURE_TOOLTIP="I2C地址與編碼開關的需要對應",rF.MPYTHON_BLUEBIT_GET_MAGNETIC_MEASURE_HELPURL="",rF.MPYTHON_BLUEBIT_GET_MAGNETIC_MEASURE_MESSAGE0="I2C磁場感測器 撥碼 %1",rF.MPYTHON_BLUEBIT_GET_MAGNETIC_MEASURE_TOOLTIP="I2C地址與編碼開關的需要對應",rF.MPYTHON_BLUEBIT_GET_PH_MEASURE_HELPURL="",rF.MPYTHON_BLUEBIT_GET_PH_MEASURE_MESSAGE0="I2C PH感測器 撥碼 %1",rF.MPYTHON_BLUEBIT_GET_PH_MEASURE_TOOLTIP="I2C地址與編碼開關的需要對應",rF.MPYTHON_BLUEBIT_GET_TDS_MEASURE_HELPURL="",rF.MPYTHON_BLUEBIT_GET_TDS_MEASURE_MESSAGE0="I2C電導率感測器 撥碼 %1",rF.MPYTHON_BLUEBIT_GET_TDS_MEASURE_TOOLTIP="I2C地址與編碼開關的需要對應",rF.MPYTHON_BLUEBIT_GET_PRESSURE_MEASURE_HELPURL="",rF.MPYTHON_BLUEBIT_GET_PRESSURE_MEASURE_MESSAGE0="I2C氣壓感測器 撥碼 %1",rF.MPYTHON_BLUEBIT_GET_PRESSURE_MEASURE_TOOLTIP="I2C地址與編碼開關的需要對應",rF.MPYTHON_BLUEBIT_GET_PHOTOGATE_TIMER_MEASURE_HELPURL="",rF.MPYTHON_BLUEBIT_GET_PHOTOGATE_TIMER_MEASURE_MESSAGE0="I2C光電門感測器 撥碼 %1",rF.MPYTHON_BLUEBIT_GET_PHOTOGATE_TIMER_MEASURE_TOOLTIP="I2C地址與編碼開關的需要對應",rF.MPYTHON_WIFI_ALL_CONFIG_HELPURL="",rF.MPYTHON_WIFI_ALL_CONFIG_MESSAGE0="WI-FI配置信息",rF.MPYTHON_WIFI_ALL_CONFIG_TOOLTIP="以元組形式返回所有wifi配置信息",rF.MPYTHON_WIFI_ISCONNECTED_HELPURL="",rF.MPYTHON_WIFI_ISCONNECTED_MESSAGE0="已連接到 WI-FI",rF.MPYTHON_WIFI_ISCONNECTED_TOOLTIP="",rF.MPYTHON_INIT_ASSISTANT_WIFI_HELPURL="",rF.MPYTHON_INIT_ASSISTANT_WIFI_MESSAGE0="Wi-Fi連接 語音助手 Wi-Fi 名稱 %1 密碼 %2",rF.MPYTHON_INIT_ASSISTANT_WIFI_TOOLTIP="掌控板通過串口把WIF傳給語音助手",rF.MPYTHON_INIT_ASSISTANT_PROFILE_HELPURL="",rF.MPYTHON_INIT_ASSISTANT_PROFILE_TOOLTIP="需要先在檔案系統將文件上傳到板",rF.MPYTHON_INIT_ASSISTANT_PROFILE_MESSAGE0="讀取 語音助手 文字檔 %1",rF.MPYTHON_BLUEBIT_SEG_DISPLAY_HELPURL="",rF.MPYTHON_BLUEBIT_SEG_DISPLAY_MESSAGE0="數碼管顯示 %1",rF.MPYTHON_BLUEBIT_SEG_DISPLAY_TOOLTIP="-999~9999",rF.MPYTHON_MACHINE_RESET_HELPURL="",rF.MPYTHON_MACHINE_RESET_MESSAGE0="復位",rF.MPYTHON_MACHINE_RESET_TOOLTIP="與按下外部RESET按鍵效果一樣",rF.MPYTHON_BLUEBIT_SEG_CLEAR_HELPURL="",rF.MPYTHON_BLUEBIT_SEG_CLEAR_MESSAGE0="清空數碼管",rF.MPYTHON_BLUEBIT_SEG_CLEAR_TOOLTIP="",rF.MPYTHON_MUSIC_PIN_P6="默認",rF.MPYTHON_MUSIC_PIN_P6_HELPURL="",rF.MPYTHON_MUSIC_PIN_P6_MESSAGE0="%1",rF.MPYTHON_MUSIC_PIN_P6_TOOLTIP="",rF.MPYTHON_SLEEP_MESSAGE0="等待 %1 %2",rF.MPYTHON_SLEEP_TOOLTIP="在進行下一個命令前,等待設定的時間。\n1秒(s) = 1,000毫秒(ms)\n1秒(s) = 1,000,000微秒(μs)\n毫秒,符號ms(millisecond)\n微秒,符號μs(microsecond)",rF.MICROBIT_MICROBIT_RUNNING_TIME_MESSAGE0="運行時間",rF.MICROBIT_MICROBIT_RUNNING_TIME_TOOLTIP="獲取開機或復位後的運行時間(毫秒)。",rF.MICROBIT_MICROBIT_RUNNING_TIME_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/microbit.html#microbit.running_time",rF.MICROBIT_MICROBIT_TEMPERATURE_MESSAGE0="溫度",rF.MICROBIT_MICROBIT_TEMPERATURE_TOOLTIP="獲取 micro:bit 的溫度(℃)。",rF.MICROBIT_MICROBIT_TEMPERATURE_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/microbit.html#microbit.temperature",rF.MICROBIT_MUSIC_PLAY_BUILT_IN_MESSAGE0="播放音樂 %1 等待 %2 循環 %3 引脚 %4",rF.MICROBIT_MUSIC_PLAY_BUILT_IN_TOOLTIP="播放內置的音樂,可以設置等待模式和循環播放。",rF.MICROBIT_MUSIC_PLAY_BUILT_IN_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/music.html#built-in-melodies",rF.MICROBIT_MUSIC_PITCH_MESSAGE0="播放音調 %1 %2 延時 %3 毫秒 引脚 %4",rF.MICROBIT_MUSIC_PITCH_TOOLTIP="在設定的時間長度裏播放音調。",rF.MICROBIT_MUSIC_PITCH_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/music.html#music.pitch",rF.MICROBIT_MUSIC_PLAY_LIST_OF_NOTES_MESSAGE0="引脚 %5 播放音符列表 %1 等待 %2 %3 循環 %4",rF.MICROBIT_MUSIC_PLAY_LIST_OF_NOTES_TOOLTIP="播放音符列表,如C4:4、G4:8等,音符為字符串形式。默認是掌控板的P6引脚",rF.MICROBIT_MUSIC_PLAY_LIST_OF_NOTES_HELPURL="https://mpython.readthedocs.io/zh/latest/tutorials/basics/buzz.html",rF.MICROBIT_MUSIC_RESET_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/music.html#music.reset",rF.MICROBIT_MUSIC_RESET_MESSAGE0="恢復音樂設置",rF.MICROBIT_MUSIC_RESET_TOOLTIP="將所有音樂設置 (當前節拍, 音階和周期) 恢復成默認值。",rF.MICROBIT_MUSIC_STOP_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/music.html#music.stop",rF.MICROBIT_MUSIC_STOP_MESSAGE0="停止播放音樂 引脚 %1",rF.MICROBIT_MUSIC_STOP_TOOLTIP="默認是掌控板的P6引脚",rF.MICROBIT_MUSIC_SET_TEMPO_MESSAGE0="設置每一拍等同 %1 分音符,每分鐘節拍數 %2",rF.MICROBIT_MUSIC_SET_TEMPO_TOOLTIP="設置回放速度 (節拍)。一定數量的滴答代表一拍,每拍每分鐘播放次數 (BPM 每分鐘節拍)。",rF.MICROBIT_MUSIC_SET_TEMPO_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/music.html#music.set_tempo",rF.MICROBIT_MUSIC_SET_TEMPO_SPEED_MESSAGE0="設置播放速度為 %1 倍",rF.MICROBIT_MUSIC_SET_TEMPO_SPEED_TOOLTIP="4分音符為1拍,每分鐘節拍數默認120,為1倍的播放速度",rF.MICROBIT_MUSIC_SET_TEMPO_SPEED_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/music.html#music.set_tempo",rF.MICROBIT_MUSIC_GET_TEMPO_MESSAGE0="獲取當前節拍",rF.MICROBIT_MUSIC_GET_TEMPO_TOOLTIP="獲取當前節拍: 每節拍滴答數, 每分鐘節拍 (BPM)。",rF.MICROBIT_MUSIC_GET_TEMPO_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/music.html#music.get_tempo",rF.MICROBIT_NEOPIXEL_INITIALISE_MESSAGE0="使用 引腳 %1 控制, neopixel 彩燈數 %2 ",rF.MICROBIT_NEOPIXEL_INITIALISE_TOOLTIP="控制 neopixels 彩燈。需要設定 neopixels 彩燈數量和控制腳。",rF.MICROBIT_NEOPIXEL_INITIALISE_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/neopixel.html#neopixel.NeoPixel",rF.MICROBIT_NEOPIXEL_CLEAR_MESSAGE0="清除 neopixels 彩燈 %1",rF.MICROBIT_NEOPIXEL_CLEAR_TOOLTIP="清除所有 neopixels 彩燈",rF.MICROBIT_NEOPIXEL_CLEAR_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/neopixel.html#neopixel.NeoPixel.clear",rF.MICROBIT_NEOPIXEL_SHOW_MESSAGE0="顯示 neopixels 彩燈 %1",rF.MICROBIT_NEOPIXEL_SHOW_TOOLTIP="顯示 / 更新全部 neopixels 彩燈。",rF.MICROBIT_NEOPIXEL_SHOW_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/neopixel.html#neopixel.NeoPixel.show",rF.MICROBIT_NEOPIXEL_SET_MESSAGE0="neopixels 彩燈控制 %1 設置位置 %2 紅色 %3 綠色 %4 藍色 %5",rF.MICROBIT_NEOPIXEL_SET_TOOLTIP="更新指定的 neopixel 彩燈的紅、綠、藍 (RGB) 顏色",rF.MICROBIT_NEOPIXEL_SET_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/neopixel.html#using-neopixels",rF.MICROBIT_PIN_TOUCHED_MESSAGE0="引腳 %1 被觸摸",rF.MICROBIT_PIN_TOUCHED_TOOLTIP="如果引腳被觸摸將返回 “真”。",rF.MICROBIT_PIN_TOUCHED_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/pin.html#microbit.MicroBitTouchPin.is_touched",rF.MICROBIT_PIN_WAS_PRESSED_MESSAGE0="引腳 %1 曾經被觸摸",rF.MICROBIT_PIN_WAS_PRESSED_TOOLTIP="如果引腳曾經被觸摸將返回 “真”。",rF.MICROBIT_PIN_WAS_PRESSED_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/pin.html#microbit.MicroBitTouchPin.was_pressed",rF.MICROBIT_PIN_GET_PRESSES_MESSAGE0="引腳 %1 被觸摸的次數",rF.MICROBIT_PIN_GET_PRESSES_TOOLTIP="返回被觸摸的次數,然後清零。",rF.MICROBIT_PIN_GET_PRESSES_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/pin.html#microbit.MicroBitTouchPin.get_presses",rF.MICROBIT_PIN_READ_ANALOG_MESSAGE0="讀取引腳 %1 模擬電壓",rF.MICROBIT_PIN_READ_ANALOG_TOOLTIP="讀取引腳的模擬輸入電壓。",rF.MICROBIT_PIN_READ_ANALOG_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/pin.html#microbit.MicroBitAnalogDigitalPin.read_analog",rF.MICROBIT_PIN_WRITE_ANALOG_MESSAGE0="設置模擬量 %1 到引腳 %2",rF.MICROBIT_PIN_WRITE_ANALOG_TOOLTIP="寫入模擬參數到指定引腳上。",rF.MICROBIT_PIN_WRITE_ANALOG_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/pin.html#microbit.MicroBitAnalogDigitalPin.write_analog",rF.MICROBIT_PIN_READ_DIGITAL_MESSAGE0="讀取引腳 %1 的數字輸入",rF.MICROBIT_PIN_READ_DIGITAL_TOOLTIP="讀取引腳的數字輸入 (真 或 假)。",rF.MICROBIT_PIN_READ_DIGITAL_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/pin.html#microbit.MicroBitDigitalPin.read_digital",rF.MICROBIT_PIN_WRITE_DIGITAL_MESSAGE0="設置數字輸出 %1 到引腳 %2",rF.MICROBIT_PIN_WRITE_DIGITAL_TOOLTIP="寫入數字量 (真 或 假) 到指定引腳。",rF.MICROBIT_PIN_WRITE_DIGITAL_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/pin.html#microbit.MicroBitDigitalPin.write_digital",rF.MICROBIT_RADIO_ON_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/radio.html#radio.on",rF.MICROBIT_RADIO_ON_MESSAGE0="打開無線廣播",rF.MICROBIT_RADIO_ON_TOOLTIP="打開無線廣播。需要明確聲明調用,因為它會消耗更多功率和占用更多內存。",rF.MICROBIT_RADIO_OFF_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/radio.html#radio.off",rF.MICROBIT_RADIO_OFF_MESSAGE0="關閉無線廣播",rF.MICROBIT_RADIO_OFF_TOOLTIP="關閉無線廣播,節省功耗和內存。",rF.MICROBIT_RADIO_CONFIG_MESSAGE0="配置無線廣播消息長度 %1 %2 最大隊列數量 %3 %4 信道 %5 %6 廣播功率 %7 %8 地址 %9 %10 組 %11 %12 數據速率 %13",rF.MICROBIT_RADIO_CONFIG_TOOLTIP="配置無線廣播。\n 長度指單個消息的最大長度; \n 隊列指可以存放在消息隊列中消息的數量; \n 信道指無線廣播使用的無線頻率; \n 功率指發射廣播信號的強度; \n 地址:32位值; \n 組:8位值(0-255); \n 數據速率指數據傳輸的速度。",rF.MICROBIT_RADIO_CONFIG_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/radio.html#radio.config",rF.MICROBIT_RADIO_RESET_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/radio.html#radio.reset",rF.MICROBIT_RADIO_RESET_MESSAGE0="復位無線廣播",rF.MICROBIT_RADIO_RESET_TOOLTIP="恢復無線廣播到默認設置。",rF.MICROBIT_RADIO_SEND_STRING_MESSAGE0="發送消息 %1",rF.MICROBIT_RADIO_SEND_STRING_TOOLTIP="廣播文字消息。",rF.MICROBIT_RADIO_SEND_STRING_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/radio.html#radio.send",rF.MICROBIT_RADIO_SEND_BYTES_MESSAGE0="發送字節 %1",rF.MICROBIT_RADIO_SEND_BYTES_TOOLTIP="廣播字節。",rF.MICROBIT_RADIO_SEND_BYTES_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/radio.html#radio.send",rF.MICROBIT_RADIO_RECEIVE_MESSAGE0="接收消息",rF.MICROBIT_RADIO_RECEIVE_TOOLTIP="接收消息。",rF.MICROBIT_RADIO_RECEIVE_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/radio.html#radio.receive",rF.MICROBIT_RADIO_RECEIVE_BYTES_MESSAGE0="接收字節",rF.MICROBIT_RADIO_RECEIVE_BYTES_TOOLTIP="接收字節。",rF.MICROBIT_RADIO_RECEIVE_BYTES_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/radio.html#radio.receive",rF.MICROBIT_SPEECH_SAY_MESSAGE0="說 %1",rF.MICROBIT_SPEECH_SAY_TOOLTIP="嘗試說英語",rF.MICROBIT_SPEECH_SAY_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/speech.html#speech.say",rF.MICROBIT_SPEECH_PRONOUNCE_MESSAGE0="讀 %1",rF.MICROBIT_SPEECH_PRONOUNCE_TOOLTIP="精確發音。",rF.MICROBIT_SPEECH_PRONOUNCE_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/speech.html#phonemes",rF.MICROBIT_SPEECH_SING_MESSAGE0="唱 %1",rF.MICROBIT_SPEECH_SING_TOOLTIP="象機器人一樣唱歌。",rF.MICROBIT_SPEECH_SING_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/speech.html#singing",rF.MICROBIT_GESTURE_SHAKE="搖晃",rF.MICROBIT_GESTURE_UP="上",rF.MICROBIT_GESTURE_DOWN="下",rF.MICROBIT_GESTURE_LEFT="左",rF.MICROBIT_GESTURE_RIGHT="右",rF.MICROBIT_GESTURE_FACE_UP="朝上",rF.MICROBIT_GESTURE_FACE_DOWN="朝下",rF.MICROBIT_GESTURE_FREEFAIL="自由下落",rF.MICROBIT_IMAGE_HEART="心形",rF.MICROBIT_IMAGE_HEART_SMALL="心(小)",rF.MICROBIT_IMAGE_HAPPY="高興",rF.MICROBIT_IMAGE_SMILE="笑臉",rF.MICROBIT_IMAGE_SAD="傷心",rF.MICROBIT_IMAGE_CONFUSED="困惑",rF.MICROBIT_IMAGE_ANGRY="生氣",rF.MICROBIT_IMAGE_ASLEEP="睡著",rF.MICROBIT_IMAGE_SUPRISED="驚訝",rF.MICROBIT_IMAGE_SILLY="愚蠢",rF.MICROBIT_IMAGE_FABULOUS="極妙",rF.MICROBIT_IMAGE_MEH="無聊",rF.MICROBIT_IMAGE_YES="是",rF.MICROBIT_IMAGE_NO="否",rF.MICROBIT_IMAGE_CLOCK12="12點",rF.MICROBIT_IMAGE_CLOCK11="11點",rF.MICROBIT_IMAGE_CLOCK10="10點",rF.MICROBIT_IMAGE_CLOCK9="9點",rF.MICROBIT_IMAGE_CLOCK8="8點",rF.MICROBIT_IMAGE_CLOCK7="7點",rF.MICROBIT_IMAGE_CLOCK6="6點",rF.MICROBIT_IMAGE_CLOCK5="5點",rF.MICROBIT_IMAGE_CLOCK4="4點",rF.MICROBIT_IMAGE_CLOCK3="3點",rF.MICROBIT_IMAGE_CLOCK2="2點",rF.MICROBIT_IMAGE_CLOCK1="1點",rF.MICROBIT_IMAGE_ARROW_N="箭頭-北",rF.MICROBIT_IMAGE_ARROW_NE="箭頭-東北",rF.MICROBIT_IMAGE_ARROW_E="箭頭-東",rF.MICROBIT_IMAGE_ARROW_SE="箭頭-東南",rF.MICROBIT_IMAGE_ARROW_S="箭頭-南",rF.MICROBIT_IMAGE_ARROW_SW="箭頭-西南",rF.MICROBIT_IMAGE_ARROW_W="箭頭-西",rF.MICROBIT_IMAGE_ARROW_NW="箭頭-西北",rF.MICROBIT_IMAGE_TRIANGLE="三角形",rF.MICROBIT_IMAGE_TRIANGLE_LEFT="左三角形",rF.MICROBIT_IMAGE_CHESSBOARD="棋盤",rF.MICROBIT_IMAGE_DIAMOND="菱形",rF.MICROBIT_IMAGE_DIAMOND_SMALL="菱形(小)",rF.MICROBIT_IMAGE_SQUARE="方形",rF.MICROBIT_IMAGE_SQUARE_SMALL="方形(小)",rF.MICROBIT_IMAGE_RABBIT="兔子",rF.MICROBIT_IMAGE_COW="牛",rF.MICROBIT_IMAGE_MUSIC_CROTCHET="四分音符",rF.MICROBIT_IMAGE_MUSIC_QUAVER="八分音符",rF.MICROBIT_IMAGE_MUSIC_QUAVERS="顫音",rF.MICROBIT_IMAGE_PITCHFORK="叉子",rF.MICROBIT_IMAGE_XMAS="聖誕樹",rF.MICROBIT_IMAGE_PACMAN="吃豆人",rF.MICROBIT_IMAGE_TARGET="目標",rF.MICROBIT_IMAGE_TSHIRT="T恤衫",rF.MICROBIT_IMAGE_ROLLERSKATE="輪滑",rF.MICROBIT_IMAGE_DUCK="鴨子",rF.MICROBIT_IMAGE_HOUSE="房子",rF.MICROBIT_IMAGE_TORTOISE="烏龜",rF.MICROBIT_IMAGE_BUTTERFLY="蝴蝶",rF.MICROBIT_IMAGE_STICKFIGURE="線條畫",rF.MICROBIT_IMAGE_GHOST="幽靈",rF.MICROBIT_IMAGE_SWORD="寶劍",rF.MICROBIT_IMAGE_GIRAFFE="長頸鹿",rF.MICROBIT_IMAGE_SKULL="頭",rF.MICROBIT_IMAGE_UMBRELLA="傘",rF.MICROBIT_IMAGE_SNAKE="蛇",rF.MICROBIT_IMAGE_ALL_CLOCKS="所有時鐘",rF.MICROBIT_IMAGE_ALL_ARROWS="所有箭頭",rF.MICROBIT_PIN_SET_SERVO_HELPURL="http://wiki.labplus.cn/index.php?title=%E8%88%B5%E6%9C%BA",rF.MICROBIT_PIN_SET_SERVO_TOOLTIP="設置舵機角度,範圍為 0 ~ 180度",rF.MICROBIT_PIN_SET_SERVO_MESSAGE0="設置舵機 引腳 %1 角度為 %2",rF.MICROBIT_PIN_SET_MODE_HELPURL="",rF.MICROBIT_PIN_SET_MODE_TOOLTIP="引腳模式有三種:懸空、上拉、下拉",rF.MICROBIT_PIN_SET_MODE_MESSAGE0="設置引腳 %1 模式為 %2",rF.MICROBIT_PIN_MODE_NO="懸空",rF.MICROBIT_PIN_MODE_UP="上拉",rF.MICROBIT_PIN_MODE_DOWN="下拉",rF.MICROBIT_UART_INIT_MESSAGE0="初始化串口波特率為 %3 TX為 %1 RX為 %2",rF.MICROBIT_UART_INIT_TOOLTIP="",rF.MICROBIT_UART_INIT_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/uart.html",rF.MICROBIT_UART_ANY_MSG_RECEIVED_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/uart.html",rF.MICROBIT_UART_ANY_MSG_RECEIVED_TOOLTIP="",rF.MICROBIT_UART_ANY_MSG_RECEIVED_MESSAGE0="串口接收到數據",rF.MICROBIT_UART_READ_MSG_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/uart.html",rF.MICROBIT_UART_READ_MSG_TOOLTIP="",rF.MICROBIT_UART_READ_MSG_MESSAGE0="讀取串口 %1 字節",rF.MICROBIT_UART_READ_MSG_TO_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/uart.html",rF.MICROBIT_UART_READ_MSG_TO_TOOLTIP="",rF.MICROBIT_UART_READ_MSG_TO_MESSAGE0="讀取串口 %1 字節存至 %2",rF.MICROBIT_UART_WRITE_MSG_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/uart.html",rF.MICROBIT_UART_WRITE_MSG_TOOLTIP="",rF.MICROBIT_UART_WRITE_MSG_MESSAGE0="串口發送數據 %1",rF.MICROBIT_ALL_BYTES="全部",rF.MICROBIT_ALINE_BYTES="一行",rF.LABPLUS_BUTTON_IS_PRESSED_MESSAGE0="引腳 %1 被觸發",rF.LABPLUS_BUTTON_IS_PRESSED_TOOLTIP="如果指定按鍵按下返回 “真”,否則返回 “假”。",rF.LABPLUS_BUTTON_IS_PRESSED_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/button.html#Button.is_pressed",rF.LABPLUS_BUTTON_WAS_PRESSED_MESSAGE0="引腳 %1 曾經被觸發",rF.LABPLUS_BUTTON_WAS_PRESSED_TOOLTIP="如果按鍵曾經按下過返回 “真”,否則返回 “假”。",rF.LABPLUS_BUTTON_WAS_PRESSED_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/button.html#Button.was_pressed",rF.LABPLUS_BUTTON_GET_PRESSES_MESSAGE0="引腳 %1 被觸發過的次數",rF.LABPLUS_BUTTON_GET_PRESSES_TOOLTIP="返回按鍵按下的總次數,然後清除計數。",rF.LABPLUS_BUTTON_GET_PRESSES_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/button.html#Button.get_presses",rF.LABPLUS_LED_MESSAGE0="設置LED燈 引腳 %2 輸出 %1",rF.LABPLUS_LED_TOOLTIP="",rF.LABPLUS_LED_HELPURL="http://wiki.labplus.cn/index.php?title=LED",rF.LABPLUS_INFRARED_IS_TRIGGERED_MESSAGE0="紅外探測 引腳 %1 被觸發",rF.LABPLUS_INFRARED_IS_TRIGGERED_TOOLTIP="",rF.LABPLUS_INFRARED_IS_TRIGGERED_HELPURL="http://wiki.labplus.cn/index.php?title=%E7%BA%A2%E5%A4%96%E6%8E%A2%E6%B5%8B",rF.LABPLUS_HEAT_SENSITIVE_DETECTOR_MESSAGE0="熱敏傳感器 引腳 %1 的值",rF.LABPLUS_HEAT_SENSITIVE_DETECTOR_TOOLTIP="",rF.LABPLUS_HEAT_SENSITIVE_DETECTOR_HELPURL="http://wiki.labplus.cn/index.php?title=%E7%83%AD%E6%95%8F%E7%94%B5%E9%98%BB",rF.LABPLUS_I2C_LIGHT_SENSOR_MESSAGE0="I2C數字光線傳感器的值(lux)",rF.LABPLUS_I2C_LIGHT_SENSOR_TOOLTIP="",rF.LABPLUS_I2C_LIGHT_SENSOR_HELPURL="http://wiki.labplus.cn/index.php?title=%E6%95%B0%E5%AD%97%E5%85%89%E7%BA%BF",rF.LABPLUS_WATER_LEVEL_DETECTOR_MESSAGE0="水位傳感器 引腳 %1 的值",rF.LABPLUS_WATER_LEVEL_DETECTOR_TOOLTIP="",rF.LABPLUS_WATER_LEVEL_DETECTOR_HELPURL="http://wiki.labplus.cn/index.php?title=%E6%B0%B4%E4%BD%8D",rF.LABPLUS_SMOKE_DETECTOR_IS_TRIGGERED_MESSAGE0="煙霧探測器 引腳 %1 被觸發",rF.LABPLUS_SMOKE_DETECTOR_IS_TRIGGERED_TOOLTIP="",rF.LABPLUS_SMOKE_DETECTOR_IS_TRIGGERED_HELPURL="http://wiki.labplus.cn/index.php?title=%E7%83%9F%E9%9B%BE",rF.LABPLUS_BUZZER_FOR_HELPURL="http://wiki.labplus.cn/index.php?title=%E8%9C%82%E9%B8%A3%E5%99%A8",rF.LABPLUS_BUZZER_FOR_TOOLTIP="",rF.LABPLUS_BUZZER_FOR_MESSAGE0="以頻率 %1 激活蜂鳴器 引腳0 %2 毫秒",rF.LABPLUS_BUZZER_ON_HELPURL="http://wiki.labplus.cn/index.php?title=%E8%9C%82%E9%B8%A3%E5%99%A8",rF.LABPLUS_BUZZER_ON_TOOLTIP="",rF.LABPLUS_BUZZER_ON_MESSAGE0="以頻率 %1 激活蜂鳴器 引腳0",rF.LABPLUS_BUZZER_OFF_HELPURL="http://wiki.labplus.cn/index.php?title=%E8%9C%82%E9%B8%A3%E5%99%A8",rF.LABPLUS_BUZZER_OFF_TOOLTIP="",rF.LABPLUS_BUZZER_OFF_MESSAGE0="關閉蜂鳴器 引腳0",rF.LABPLUS_TM_HM_SENSOR_MESSAGE0="I2C溫濕度傳感器的 %1 值",rF.LABPLUS_TM_HM_SENSOR_TOOLTIP="",rF.LABPLUS_TM_HM_SENSOR_HELPURL="http://wiki.labplus.cn/index.php?title=%E6%B8%A9%E6%B9%BF%E5%BA%A6",rF.LABPLUS_TM_HM_SENSOR_TM="溫度",rF.LABPLUS_TM_HM_SENSOR_HM="濕度",rF.LABPLUS_SET_SERVO_HELPURL="http://wiki.labplus.cn/index.php?title=%E8%88%B5%E6%9C%BA",rF.LABPLUS_SET_SERVO_TOOLTIP="",rF.LABPLUS_SET_SERVO_MESSAGE0="設置舵機 引腳 %1 角度為 %2",rF.LABPLUS_FINGERPRINT_SENSOR_MESSAGE0="指紋傳感器 引腳 %1 驗證通過",rF.LABPLUS_FINGERPRINT_SENSOR_TOOLTIP="",rF.LABPLUS_FINGERPRINT_SENSOR_HELPURL="http://wiki.labplus.cn/index.php?title=%E6%8C%87%E7%BA%B9",rF.LABPLUS_SET_MOTOR_HELPURL="",rF.LABPLUS_SET_MOTOR_TOOLTIP="",rF.LABPLUS_SET_MOTOR_MESSAGE0="設置電機 %1 方向 %2 速度 %3",rF.LABPLUS_SET_MOTOR_CLOCKWISE="正轉",rF.LABPLUS_SET_MOTOR_ANTI_CLOCKWISE="反轉",rF.LABPLUS_STOP_MOTOR_HELPURL="",rF.LABPLUS_STOP_MOTOR_TOOLTIP="",rF.LABPLUS_STOP_MOTOR_MESSAGE0="停止電機",rF.LABPLUS_GET_RFID_ID_MESSAGE0="射頻卡 引腳 %1 驗證通過",rF.LABPLUS_GET_RFID_ID_TOOLTIP="",rF.LABPLUS_GET_RFID_ID_HELPURL="http://wiki.labplus.cn/index.php?title=RFID",rF.LABPLUS_GET_RFID_VALUE_MESSAGE0="電子錢包 引腳 %1 余額",rF.LABPLUS_GET_RFID_VALUE_TOOLTIP="",rF.LABPLUS_GET_RFID_VALUE_HELPURL="",rF.LABPLUS_SET_RFID_VALUE_MESSAGE0="設置電子錢包 引腳 %1 余額 %2 %3",rF.LABPLUS_SET_RFID_VALUE_TOOLTIP="",rF.LABPLUS_SET_RFID_VALUE_HELPURL="",rF.LABPLUS_SET_RFID_ADD="增加",rF.LABPLUS_SET_RFID_MINUS="減少",rF.LABPLUS_SOUND_IS_TRIGGERED_MESSAGE0="聲音傳感器 引腳 %1 被觸發",rF.LABPLUS_SOUND_IS_TRIGGERED_TOOLTIP="",rF.LABPLUS_SOUND_IS_TRIGGERED_HELPURL="http://wiki.labplus.cn/index.php?title=%E9%BA%A6%E5%85%8B%E9%A3%8E",rF.LABPLUS_USB_SWITCH_HELPURL="",rF.LABPLUS_USB_SWITCH_TOOLTIP="",rF.LABPLUS_USB_SWITCH_MESSAGE0="%1 USB開關 引腳 %2",rF.LABPLUS_USB_SWITCH_ON="打開",rF.LABPLUS_USB_SWITCH_OFF="關閉",rF.LABPLUS_VOICE_RECORD_HELPURL="",rF.LABPLUS_VOICE_RECORD_TOOLTIP="",rF.LABPLUS_VOICE_RECORD_MESSAGE0="%1 語音錄放器 引腳 %2",rF.LABPLUS_VOICE_RECORD_ON="打開",rF.LABPLUS_VOICE_RECORD_OFF="關閉",rF.LABPLUS_RGB_INITIALISE_MESSAGE0="使用 引腳 %1 控制,RGB 彩燈數 %2 ",rF.LABPLUS_RGB_INITIALISE_TOOLTIP="控制 RGB 彩燈。需要設定 neopixels 彩燈數量和控制腳。",rF.LABPLUS_RGB_INITIALISE_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/neopixel.html#neopixel.NeoPixel",rF.LABPLUS_RGB_CLEAR_MESSAGE0="清除 RGB 彩燈 %1",rF.LABPLUS_RGB_CLEAR_TOOLTIP="清除所有 RGB 彩燈",rF.LABPLUS_RGB_CLEAR_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/neopixel.html#neopixel.NeoPixel.clear",rF.LABPLUS_RGB_SHOW_MESSAGE0="顯示 RGB 彩燈 %1",rF.LABPLUS_RGB_SHOW_TOOLTIP="顯示 / 更新全部 RGB 彩燈。",rF.LABPLUS_RGB_SHOW_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/neopixel.html#neopixel.NeoPixel.show",rF.LABPLUS_RGB_SET_MESSAGE0="RGB 彩燈控制 %1 設置位置 %2 紅色 %3 綠色 %4 藍色 %5",rF.LABPLUS_RGB_SET_TOOLTIP="更新指定的 RGB 彩燈的紅、綠、藍 (RGB) 顏色",rF.LABPLUS_RGB_SET_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/neopixel.html#using-neopixels",rF.LABPLUS_COMPITITION_INIT_EXTENDED_PINS_MESSAGE0="設置擴展端口 IO %1 為 %2",rF.LABPLUS_COMPITITION_INIT_EXTENDED_PINS_TOOLTIP="0表示輸出引腳,1表示輸入引腳",rF.LABPLUS_COMPITITION_INIT_EXTENDED_PINS_HELPURL="http://wiki.labplus.cn/index.php?title=%E7%AB%AF%E5%8F%A3%E6%89%A9%E5%B1%95",rF.LABPLUS_COMPITITION_INIT_EXTENDED_PINS_INPUT="輸入",rF.LABPLUS_COMPITITION_INIT_EXTENDED_PINS_OUTPUT="輸出",rF.LABPLUS_READ_EXTENDED_PIN_HELPURL="http://wiki.labplus.cn/index.php?title=%E7%AB%AF%E5%8F%A3%E6%89%A9%E5%B1%95",rF.LABPLUS_READ_EXTENDED_PIN_TOOLTIP="",rF.LABPLUS_READ_EXTENDED_PIN_MESSAGE0="讀取擴展端口值 IO %1",rF.LABPLUS_WRITE_EXTENDED_PIN_HELPURL="http://wiki.labplus.cn/index.php?title=%E7%AB%AF%E5%8F%A3%E6%89%A9%E5%B1%95",rF.LABPLUS_WRITE_EXTENDED_PIN_TOOLTIP="",rF.LABPLUS_WRITE_EXTENDED_PIN_MESSAGE0="設置擴展端口 IO %1 值為 %2",rF.LABPLUS_I2C_ULTRASONIC_HELPURL="http://wiki.labplus.cn/index.php?title=%E8%B6%85%E5%A3%B0%E6%B3%A2",rF.LABPLUS_I2C_ULTRASONIC_TOOLTIP="",rF.LABPLUS_I2C_ULTRASONIC_MESSAGE0="I2C超聲波傳感器的值",rF.MICROBIT_SET_MUSIC_PIN_HELPURL="",rF.MICROBIT_SET_MUSIC_PIN_TOOLTIP="",rF.MICROBIT_SET_MUSIC_PIN_MESSAGE0="設置默認蜂鳴器引腳為 %1",rF.LABPLUS_HUMAN_DETECTOR_IS_TRIGGERED_HELPURL="http://wiki.labplus.cn/index.php?title=%E4%BA%BA%E4%BD%93%E6%84%9F%E5%BA%94",rF.LABPLUS_HUMAN_DETECTOR_IS_TRIGGERED_TOOLTIP="",rF.LABPLUS_HUMAN_DETECTOR_IS_TRIGGERED_MESSAGE0="人體感應 引腳 %1 被觸發",rF.LABPLUS_MAGNETIC_SWITCH_IS_TRIGGERED_HELPURL="http://wiki.labplus.cn/index.php?title=%E9%97%A8%E7%A3%81%E5%BC%80%E5%85%B3",rF.LABPLUS_MAGNETIC_SWITCH_IS_TRIGGERED_TOOLTIP="",rF.LABPLUS_MAGNETIC_SWITCH_IS_TRIGGERED_MESSAGE0="門磁開關 引腳 %1 被觸發",rF.LABPLUS_SOUND_LEVEL_SENSOR_HELPURL="",rF.LABPLUS_SOUND_LEVEL_SENSOR_TOOLTIP="",rF.LABPLUS_SOUND_LEVEL_SENSOR_MESSAGE0="聲音傳感器 引腳 %1 的值",rF.LABPLUS_SMOKE_SENSOR_HELPURL="http://wiki.labplus.cn/index.php?title=%E7%83%9F%E9%9B%BE",rF.LABPLUS_SMOKE_SENSOR_TOOLTIP="",rF.LABPLUS_SMOKE_SENSOR_MESSAGE0="煙霧傳感器 引腳 %1 的值",rF.LABPLUS_SOIL_MOISTURE_SENSOR_HELPURL="http://wiki.labplus.cn/index.php?title=%E5%9C%9F%E5%A3%A4%E6%B9%BF%E5%BA%A6",rF.LABPLUS_SOIL_MOISTURE_SENSOR_TOOLTIP="",rF.LABPLUS_SOIL_MOISTURE_SENSOR_MESSAGE0="土壤濕度傳感器 引腳 %1 的值",rF.LABPLUS_FAN_SWITCH_HELPURL="http://wiki.labplus.cn/index.php?title=%E6%8E%92%E9%A3%8E%E6%89%87",rF.LABPLUS_FAN_SWITCH_TOOLTIP="",rF.LABPLUS_FAN_SWITCH_MESSAGE0="%1 風扇 引腳 %2",rF.LABPLUS_VOICE_RECORD_ON_HELPURL="http://wiki.labplus.cn/index.php?title=%E8%AF%AD%E9%9F%B3%E5%BD%95%E6%94%BE",rF.LABPLUS_VOICE_RECORD_ON_TOOLTIP="",rF.LABPLUS_VOICE_RECORD_ON_MESSAGE0="打開錄放器 %1 引腳 %2",rF.LABPLUS_VOICE_RECORD_PLAY="播放",rF.LABPLUS_VOICE_RECORD_REC="錄音",rF.LABPLUS_VOICE_RECORD_OFF_HELPURL="http://wiki.labplus.cn/index.php?title=%E8%AF%AD%E9%9F%B3%E5%BD%95%E6%94%BE",rF.LABPLUS_VOICE_RECORD_OFF_TOOLTIP="",rF.LABPLUS_VOICE_RECORD_OFF_MESSAGE0="關閉錄放器 引腳 %1",rF.LABPLUS_MOTOR_ON_HELPURL="http://wiki.labplus.cn/index.php?title=%E7%94%B5%E6%9C%BA%E9%A9%B1%E5%8A%A8",rF.LABPLUS_MOTOR_ON_TOOLTIP="",rF.LABPLUS_MOTOR_ON_MESSAGE0="打開直流電機 %1 速度 %2 引腳 %3",rF.LABPLUS_MOTOR_ON_CLOCKWISE="正轉",rF.LABPLUS_MOTOR_ON_ANTICLOCKWISE="反轉",rF.LABPLUS_MOTOR_OFF_HELPURL="http://wiki.labplus.cn/index.php?title=%E7%94%B5%E6%9C%BA%E9%A9%B1%E5%8A%A8",rF.LABPLUS_MOTOR_OFF_TOOLTIP="",rF.LABPLUS_MOTOR_OFF_MESSAGE0="停止直流電機 引腳 %1",rF.LABPLUS_READ_COLOR_FROM_I2C_HELPURL="http://wiki.labplus.cn/index.php?title=%E9%A2%9C%E8%89%B2",rF.LABPLUS_READ_COLOR_FROM_I2C_TOOLTIP="",rF.LABPLUS_READ_COLOR_FROM_I2C_MESSAGE0="I2C顏色傳感器讀取並儲存顏色",rF.LABPLUS_RGB_COLOR_HELPURL="http://wiki.labplus.cn/index.php?title=RGB_LED",rF.LABPLUS_RGB_COLOR_TOOLTIP="讀取已儲存的顏色",rF.LABPLUS_RGB_COLOR_MESSAGE0="RGB顏色 %1",rF.LABPLUS_SET_I2C_DIGITS_HELPURL="http://wiki.labplus.cn/index.php?title=%E6%95%B0%E7%A0%81%E7%AE%A1",rF.LABPLUS_SET_I2C_DIGITS_TOOLTIP="",rF.LABPLUS_SET_I2C_DIGITS_MESSAGE0="設置I2C數碼管的值為 %1",rF.LABPLUS_TURN_OFF_I2C_DIGITS_HELPURL="http://wiki.labplus.cn/index.php?title=%E6%95%B0%E7%A0%81%E7%AE%A1",rF.LABPLUS_TURN_OFF_I2C_DIGITS_TOOLTIP="",rF.LABPLUS_TURN_OFF_I2C_DIGITS_MESSAGE0="關閉I2C數碼管",rF.LABPLUS_UART_SET_MIDI_MELODIC_HELPURL="http://wiki.labplus.cn/index.php?title=%E7%94%B5%E5%AD%90%E7%90%B4",rF.LABPLUS_UART_SET_MIDI_MELODIC_TOOLTIP="",rF.LABPLUS_UART_SET_MIDI_MELODIC_MESSAGE0="設置MIDI模塊音調為 %1",rF.LABPLUS_UART_PLAY_MIDI_NOTE_HELPURL="http://wiki.labplus.cn/index.php?title=%E7%94%B5%E5%AD%90%E7%90%B4",rF.LABPLUS_UART_PLAY_MIDI_NOTE_TOOLTIP="",rF.LABPLUS_UART_PLAY_MIDI_NOTE_MESSAGE0="MIDI模塊 %2 音符 %1",rF.LABPLUS_UART_PLAY_MIDI_NOTE_Do="Do",rF.LABPLUS_UART_PLAY_MIDI_NOTE_Re="Re",rF.LABPLUS_UART_PLAY_MIDI_NOTE_Mi="Mi",rF.LABPLUS_UART_PLAY_MIDI_NOTE_Fa="Fa",rF.LABPLUS_UART_PLAY_MIDI_NOTE_Sol="Sol",rF.LABPLUS_UART_PLAY_MIDI_NOTE_La="La",rF.LABPLUS_UART_PLAY_MIDI_NOTE_Si="Si",rF.LABPLUS_UART_PLAY_MIDI_NOTE="播放",rF.LABPLUS_UART_OFF_MIDI_NOTE="停止",rF.LABPLUS_UART_OFF_MIDI_NOTE_HELPURL="http://wiki.labplus.cn/index.php?title=%E7%94%B5%E5%AD%90%E7%90%B4",rF.LABPLUS_UART_OFF_MIDI_NOTE_TOOLTIP="",rF.LABPLUS_UART_OFF_MIDI_NOTE_MESSAGE0="MIDI模塊停止播放音符 %1",rF.LABPLUS_UART_INIT_MIDI_HELPURL="http://wiki.labplus.cn/index.php?title=%E7%94%B5%E5%AD%90%E7%90%B4",rF.LABPLUS_UART_INIT_MIDI_TOOLTIP="",rF.LABPLUS_UART_INIT_MIDI_MESSAGE0="初始化MIDI模塊 %1",rF.LABPLUS_LINE_FOLLOWER_IS_TRIGGERED_HELPURL="http://wiki.labplus.cn/index.php?title=%E5%BE%AA%E8%BF%B9",rF.LABPLUS_LINE_FOLLOWER_IS_TRIGGERED_TOOLTIP="",rF.LABPLUS_LINE_FOLLOWER_IS_TRIGGERED_MESSAGE0="循跡傳感器 引腳 %1 檢測為黑",rF.LABPLUS_TEMPERATURE_SENSOR_HELPURL="http://wiki.labplus.cn/index.php?title=LM35%E6%B8%A9%E5%BA%A6",rF.LABPLUS_TEMPERATURE_SENSOR_TOOLTIP="",rF.LABPLUS_TEMPERATURE_SENSOR_MESSAGE0="LM35溫度傳感器 引腳 %1 的值",rF.LABPLUS_ROTATE_DIMMER_HELPURL="http://wiki.labplus.cn/index.php?title=%E6%97%8B%E9%92%AE%E7%94%B5%E4%BD%8D%E5%99%A8",rF.LABPLUS_ROTATE_DIMMER_TOOLTIP="",rF.LABPLUS_ROTATE_DIMMER_MESSAGE0="旋轉電位器 引腳 %1 的值",rF.LABPLUS_SHAKE_DETECTOR_IS_TRIGGERED_HELPURL="http://wiki.labplus.cn/index.php?title=%E9%9C%87%E5%8A%A8",rF.LABPLUS_SHAKE_DETECTOR_IS_TRIGGERED_TOOLTIP="",rF.LABPLUS_SHAKE_DETECTOR_IS_TRIGGERED_MESSAGE0="震動傳感器 引腳 %1 被觸發",rF.LABPLUS_LASER_SWITCH_HELPURL="http://wiki.labplus.cn/index.php?title=%E6%BF%80%E5%85%89%E5%8F%91%E5%B0%84",rF.LABPLUS_LASER_SWITCH_TOOLTIP="",rF.LABPLUS_LASER_SWITCH_MESSAGE0="%1 激光開關 引腳 %2",rF.LABPLUS_4BUTTON_HELPURL="http://wiki.labplus.cn/index.php?title=%E5%9B%9B%E6%8C%89%E9%94%AE",rF.LABPLUS_4BUTTON_TOOLTIP="",rF.LABPLUS_4BUTTON_MESSAGE0="四向按鍵模塊 引腳 %1 按鍵 %2 被按下",rF.BLUE="A",rF.GREEN="B",rF.RED="C",rF.YELLOW="D",rF.LABPLUS_JOYSTICK_HELPURL="",rF.LABPLUS_JOYSTICK_TOOLTIP="",rF.LABPLUS_JOYSTICK_MESSAGE0="搖桿 引腳A0 %1 引腳A1 %2 %3 軸的值",rF.LABPLUS_UART_MP3_PLAY_HELPURL="http://wiki.labplus.cn/index.php?title=%E9%9F%B3%E4%B9%90%E6%92%AD%E6%94%BE",rF.LABPLUS_UART_MP3_PLAY_TOOLTIP="",rF.LABPLUS_UART_MP3_PLAY_MESSAGE0="MP3模塊(UART)播放第 %1 首音樂",rF.LABPLUS_UART_MP3_SET_VOLUME_HELPURL="http://wiki.labplus.cn/index.php?title=%E9%9F%B3%E4%B9%90%E6%92%AD%E6%94%BE",rF.LABPLUS_UART_MP3_SET_VOLUME_TOOLTIP="",rF.LABPLUS_UART_MP3_SET_VOLUME_MESSAGE0="設置MP3模塊(UART)音量為 %1",rF.LABPLUS_UART_MP3_SET_STATUS_HELPURL="http://wiki.labplus.cn/index.php?title=%E9%9F%B3%E4%B9%90%E6%92%AD%E6%94%BE",rF.LABPLUS_UART_MP3_SET_STATUS_TOOLTIP="",rF.LABPLUS_UART_MP3_SET_STATUS_MESSAGE0="設置MP3模塊(UART)狀態為 %1",rF.PAUSE="暫停",rF.STOP="停止",rF.PLAY="繼續播放",rF.PLAYNEXT="下一首",rF.PLAYPREV="上一首",rF.LABPLUS_UART_INIT_HELPURL="http://wiki.labplus.cn/index.php?title=Bluebit",rF.LABPLUS_UART_INIT_TOOLTIP="",rF.LABPLUS_UART_INIT_MESSAGE0="初始化串口波特率為 %3 TX為 %1 RX為 %2",rF.LABPLUS_VOICE_RECORD_ON1_HELPURL="http://wiki.labplus.cn/index.php?title=%E8%AF%AD%E9%9F%B3%E5%BD%95%E6%94%BE",rF.LABPLUS_VOICE_RECORD_ON1_TOOLTIP="",rF.LABPLUS_VOICE_RECORD_ON1_MESSAGE0="打開錄放器 %1 %2 引腳REC %3 引腳PLAY %4",rF.LABPLUS_VOICE_RECORD_OFF1_HELPURL="http://wiki.labplus.cn/index.php?title=%E8%AF%AD%E9%9F%B3%E5%BD%95%E6%94%BE",rF.LABPLUS_VOICE_RECORD_OFF1_TOOLTIP="",rF.LABPLUS_VOICE_RECORD_OFF1_MESSAGE0="關閉錄放器 %1 引腳REC %2 引腳PLAY %3",rF.LABPLUS_MOTOR_ON1_HELPURL="http://wiki.labplus.cn/index.php?title=%E7%94%B5%E6%9C%BA%E9%A9%B1%E5%8A%A8",rF.LABPLUS_MOTOR_ON1_TOOLTIP="",rF.LABPLUS_MOTOR_ON1_MESSAGE0="打開直流電機 %1 速度 %2 引腳AIN1 %3 引腳AIN2 %4",rF.LABPLUS_MOTOR_OFF1_HELPURL="http://wiki.labplus.cn/index.php?title=%E7%94%B5%E6%9C%BA%E9%A9%B1%E5%8A%A8",rF.LABPLUS_MOTOR_OFF1_TOOLTIP="",rF.LABPLUS_MOTOR_OFF1_MESSAGE0="停止直流電機 %1 引腳AIN1 %2 引腳AIN2 %3",rF.LABPLUS_SET_I2C_LCD1602_CURSOR_HELPURL="http://wiki.labplus.cn/index.php?title=1602_LCD",rF.LABPLUS_SET_I2C_LCD1602_CURSOR_TOOLTIP="",rF.LABPLUS_SET_I2C_LCD1602_CURSOR_MESSAGE0="設置LCD遊標位置%1 X %2 Y %3";rF.LABPLUS_SET_I2C_LCD1602_PRINT_HELPURL="http://wiki.labplus.cn/index.php?title=1602_LCD",rF.LABPLUS_SET_I2C_LCD1602_PRINT_TOOLTIP="",rF.LABPLUS_SET_I2C_LCD1602_PRINT_MESSAGE0="設置LCD顯示 %1",rF.LABPLUS_SET_I2C_LCD1602_SCROLL_HELPURL="http://wiki.labplus.cn/index.php?title=1602_LCD",rF.LABPLUS_SET_I2C_LCD1602_SCROLL_TOOLTIP="配合循環次數使用",rF.LABPLUS_SET_I2C_LCD1602_SCROLL_MESSAGE0="%1滾動LCD顯示內容",rF.LABPLUS_SET_I2C_LCD1602_SCROLL_ALEFT="向左",rF.LABPLUS_SET_I2C_LCD1602_SCROLL_RIGHTWARD="向右",rF.LABPLUS_SET_I2C_LCD1602_CLEAR_HELPURL="http://wiki.labplus.cn/index.php?title=1602_LCD",rF.LABPLUS_SET_I2C_LCD1602_CLEAR_TOOLTIP="",rF.LABPLUS_SET_I2C_LCD1602_CLEAR_MESSAGE0="清除LCD顯示內容",rF.LABPLUS_UART_ANY_MSG_RECEIVED_HELPURL="http://wiki.labplus.cn/index.php?title=Bluebit",rF.LABPLUS_UART_ANY_MSG_RECEIVED_TOOLTIP="",rF.LABPLUS_UART_ANY_MSG_RECEIVED_MESSAGE0="%1 接收到數據",rF.BLUEBIT_UART="串口",rF.BLUEBIT_INFRARED_SIGNAL="紅外信號",rF.BLUEBIT_BLUEBOOTH="藍牙",rF.LABPLUS_UART_READ_MSG_HELPURL="http://wiki.labplus.cn/index.php?title=Bluebit",rF.LABPLUS_UART_READ_MSG_TOOLTIP="",rF.LABPLUS_UART_READ_MSG_MESSAGE0="讀取 %1 數據",rF.LABPLUS_UART_WRITE_MSG_HELPURL="http://wiki.labplus.cn/index.php?title=Bluebit",rF.LABPLUS_UART_WRITE_MSG_TOOLTIP="",rF.LABPLUS_UART_WRITE_MSG_MESSAGE0="%1 發送數據 %2",rF.LABPLUS_SET_I2C_LED_MATRIX_HELPURL="http://wiki.labplus.cn/index.php?title=%E7%82%B9%E9%98%B5",rF.LABPLUS_SET_I2C_LED_MATRIX_TOOLTIP="",rF.LABPLUS_SET_I2C_LED_MATRIX_MESSAGE0="設置點陣 %1 第一行顯示%2 第二行顯示%3 第三行顯示%4 第四行顯示%5 第五行顯示%6 第六行顯示%7 第七行顯示%8 第八行顯示%9 ",rF.LABPLUS_SET_I2C_LED_MATRIX_MESSAGE2="設置點陣 %1 %2 %3 %4 %5 %6 %7 %8 %9 %10 %11 %12 %13 %14 %15 %16 %17 %18 %19 %20 %21 %22 %23 %24 %25 %26 %27 %28 %29 %30 %31 %32 %33 %34 %35 %36 %37 %38 %39 %40 %41 %42 %43 %44 %45 %46 %47 %48 %49 %50 %51 %52 %53 %54 %55 %56 %57 %58 %59 %60 %61 %62 %63 %64 %65 %66 %67 %68 %69 %70 %71 %72",rF.LABPLUS_SET_I2C_LED_MATRIX_CLEAR_HELPURL="http://wiki.labplus.cn/index.php?title=%E7%82%B9%E9%98%B5",rF.LABPLUS_SET_I2C_LED_MATRIX_CLEAR_TOOLTIP="",rF.LABPLUS_SET_I2C_LED_MATRIX_CLEAR_MESSAGE0="清空點陣",rF.LABPLUS_UART_SET_OLED_HELPURL="http://wiki.labplus.cn/index.php?title=OLED",rF.LABPLUS_UART_SET_OLED_TOOLTIP="",rF.LABPLUS_UART_SET_OLED_MESSAGE0="設置OLED屏 %1 X %2 Y %3 顯示文本 %4 字體為 %5",rF.LABPLUS_UART_SET_OLED_CLEAR_HELPURL="http://wiki.labplus.cn/index.php?title=OLED",rF.LABPLUS_UART_SET_OLED_CLEAR_TOOLTIP="",rF.LABPLUS_UART_SET_OLED_CLEAR_MESSAGE0="在OLED屏上擦除矩陣 %1 X1 %2 Y1 %3 X2 %4 Y2 %5",rF.LABPLUS_UART_SET_OLED_CLEAR_ALL_MESSAGE0="清空OLED屏",rF.LABPLUS_UART_SET_OLED_CLEAR_ALL_HELPURL="http://wiki.labplus.cn/index.php?title=OLED",rF.LABPLUS_UART_SET_OLED_CLEAR_ALL_TOOLTIP="",rF.LABPLUS_LIGHT_SENSOR_HELPURL="http://wiki.labplus.cn/index.php?title=%E6%A8%A1%E6%8B%9F%E5%85%89%E7%BA%BF",rF.LABPLUS_LIGHT_SENSOR_TOOLTIP="",rF.LABPLUS_LIGHT_SENSOR_MESSAGE0="模擬光線傳感器 引腳 %1 的值",rF.LABPLUS_BUTTON_MODULE_IS_PRESSED_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/i2c.html",rF.LABPLUS_BUTTON_MODULE_IS_PRESSED_TOOLTIP="",rF.LABPLUS_BUTTON_MODULE_IS_PRESSED_MESSAGE0="按鍵模塊 引腳 %1 被按下",rF.MICROBIT_EXT2_SET_SERVO_HELPURL="http://wiki.labplus.cn/index.php?title=Extend:bit%E2%85%A1",rF.MICROBIT_EXT2_SET_SERVO_TOOLTIP="",rF.MICROBIT_EXT2_SET_SERVO_MESSAGE0="設置舵機 %1 的角度為 %2",rF.MICROBIT_EXT2_SET_MOTOR_HELPURL="http://wiki.labplus.cn/index.php?title=Extend:bit%E2%85%A1",rF.MICROBIT_EXT2_SET_MOTOR_TOOLTIP="",rF.MICROBIT_EXT2_SET_MOTOR_MESSAGE0="設置馬達 %1 方向 %2 速度 %3",rF.MICROBIT_EXT2_STOP_MOTOR_HELPURL="http://wiki.labplus.cn/index.php?title=Extend:bit%E2%85%A1",rF.MICROBIT_EXT2_STOP_MOTOR_TOOLTIP="",rF.MICROBIT_EXT2_STOP_MOTOR_MESSAGE0="停止馬達 %1",rF.MICROBIT_EXT2_SOUND_VALUE_MESSAGE0="聲音傳感器的值",rF.MICROBIT_EXT2_SOUND_VALUE_HELPURL="http://wiki.labplus.cn/index.php?title=Extend:bit%E2%85%A1",rF.MICROBIT_EXT2_SOUND_VALUE_TOOLTIP="",rF.MICROBIT_EXT2_LIGHT_VALUE_MESSAGE0="光線傳感器的值",rF.MICROBIT_EXT2_LIGHT_VALUE_HELPURL="http://wiki.labplus.cn/index.php?title=Extend:bit%E2%85%A1",rF.MICROBIT_EXT2_LIGHT_VALUE_TOOLTIP="",rF.MICROBIT_INIT_I2C_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/i2c.html",rF.MICROBIT_INIT_I2C_TOOLTIP="",rF.MICROBIT_INIT_I2C_MESSAGE0="初始化I2C 頻率 %1 引腳SDA %2 引腳SCL %3",rF.MICROBIT_I2C_READ_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/i2c.html",rF.MICROBIT_I2C_READ_TOOLTIP="",rF.MICROBIT_I2C_READ_MESSAGE0="I2C讀取從地址 %1 讀取 %2 字節",rF.MICROBIT_I2C_WRITE_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/i2c.html",rF.MICROBIT_I2C_WRITE_TOOLTIP="",rF.MICROBIT_I2C_WRITE_MESSAGE0="I2C寫入 %2 到地址 %1",rF.MICROBIT_CONVERT_BYTEARRAY_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/i2c.html",rF.MICROBIT_CONVERT_BYTEARRAY_TOOLTIP="",rF.MICROBIT_CONVERT_BYTEARRAY_MESSAGE0="bytearray %1",rF.BOTBIT_MOTOR_ON_HELPURL="",rF.BOTBIT_MOTOR_ON_TOOLTIP="範圍:-2000~2000",rF.BOTBIT_MOTOR_ON_MESSAGE0="設置機器人 %1 右輪速度為 %2 左輪速度為 %3",rF.BOTBIT_MOTOR_LEFT="左",rF.BOTBIT_MOTOR_RIGHT="右",rF.BOTBIT_SERVO_UP="上方",rF.BOTBIT_SERVO_DOWN="下方",rF.BOTBIT_MOTOR_FORWARD="前進",rF.BOTBIT_MOTOR_BACKWARD="後退",rF.BOTBIT_HOLDBALL_HELPURL="",rF.BOTBIT_HOLDBALL_TOOLTIP="",rF.BOTBIT_HOLDBALL_MESSAGE0="雙臂抱起",rF.BOTBIT_STEERING_ENGINEL_HELPURL="",rF.BOTBIT_STEERING_ENGINEL_TOOLTIP="角度範圍為-45°~45°",rF.BOTBIT_STEERING_ENGINEL_MESSAGE0="設置 %1臂 %2的角度為 %3",rF.BOTBIT_SERVO_Y="Y軸舵機",rF.BOTBIT_SERVO_X="X軸舵機",rF.BOTBIT_STEERING_ENGINE_LEG_HELPURL="",rF.BOTBIT_STEERING_ENGINE_LEG_TOOLTIP="角度範圍為-45°~45°",rF.BOTBIT_STEERING_ENGINE_LEG_MESSAGE0="設置 %1腿 %2舵機的角度為 %3",rF.BOTBIT_UPDATEPOSITION_HELPURL="",rF.BOTBIT_UPDATEPOSITION_TOOLTIP="",rF.BOTBIT_UPDATEPOSITION_MESSAGE0="刷新舵機角度",rF.BOTBIT_ULTRASONIC_HELPURL="",rF.BOTBIT_ULTRASONIC_TOOLTIP="",rF.BOTBIT_ULTRASONIC_MESSAGE0="超聲波傳感器的值",rF.BOTBIT_WALKING_HELPURL="",rF.BOTBIT_WALKING_TOOLTIP="周期越短, 速度越快, 推薦1000~2000",rF.BOTBIT_WALKING_MESSAGE0="舞步(walking) 步數%2 周期%3 方向%1 ",rF.BOTBIT_WALKING_FORWARD="前",rF.BOTBIT_WALKING_BACK="後",rF.BOTBIT_MOONWALKER_HELPURL="",rF.BOTBIT_MOONWALKER_TOOLTIP="推薦周期1000~2000, 幅度10~50",rF.BOTBIT_MOONWALKER_MESSAGE0="舞步(moonwalker) 步數%2 周期%3 幅度%4 方向%1 ",rF.BOTBIT_MOONWALKER_L="左",rF.BOTBIT_MOONWALKER_R="右",rF.BOTBIT_CRUSAITO_HELPURL="",rF.BOTBIT_CRUSAITO_TOOLTIP="推薦步數2~10, 幅度10~50",rF.BOTBIT_CRUSAITO_MESSAGE0="舞步(crusaito) 步數%2 周期%3 幅度%4 方向%1",rF.BOTBIT_CRUSAITO_CW="逆時針",rF.BOTBIT_CRUSAITO_ANTICW="順時針",rF.BOTBIT_FLAPPING_HELPURL="",rF.BOTBIT_FLAPPING_TOOLTIP="推薦步數5~15, 幅度10~30, 周期1000~2000",rF.BOTBIT_FLAPPING_MESSAGE0="舞步(flapping) 步數%2 周期%3 幅度%4 方向%1",rF.BOTBIT_FLAPPING_FORWARD="前",rF.BOTBIT_FLAPPING_BACK="後",rF.BOTBIT_HOME_HELPURL="",rF.BOTBIT_HOME_TOOLTIP="",rF.BOTBIT_HOME_MESSAGE0="機器人舞步初始化",rF.LABPLUS_UART_SET_MIDI_VOL_HELPURL="http://wiki.labplus.cn/index.php?title=MIDI(%E7%94%B5%E5%AD%90%E7%90%B4)",rF.LABPLUS_UART_SET_MIDI_VOL_TOOLTIP="",rF.LABPLUS_UART_SET_MIDI_VOL_MESSAGE0="設置MIDI模塊音量為 %1",rF.labplus_mapping_MESSAGE0="映射%1 從%2 , %3到%4 , %5",rF.labplus_mapping_TOOLTIP="將0~100中的10映射到0~200中並返回映射值",rF.labplus_mapping_HELPURL="",rF.JOINT_MIDI_PIANO="平臺鋼琴",rF.JOINT_MIDI_BRIGHTACOUSTICPIANO="亮音鋼琴",rF.JOINT_MIDI_ELECTRICGRANDPIANO="電鋼琴",rF.JOINT_MIDI_HARPSICHORD="大鍵琴",rF.JOINT_MIDI_Celesta="鋼片琴",rF.JOINT_MIDI_Glockenspiel="鐘琴",rF.JOINT_MIDI_Musicalbox="音樂盒",rF.JOINT_MIDI_Marimba="馬林巴琴",rF.JOINT_MIDI_Xylophone="木琴",rF.JOINT_MIDI_TubularBell="管鐘",rF.JOINT_MIDI_Dulcimer="洋琴",rF.JOINT_Vibraphone="顫音琴",rF.JOINT_MIDI_ORGAN="音栓風琴",rF.JOINT_Acoustic_Guitar="木吉他",rF.JOINT_Electric_Guitar="電吉他",rF.JOINT_Acoustic_Bass="民謠貝斯",rF.JOINT_String_Ensemble="弦樂合奏",rF.JOINT_Violin="小提琴",rF.JOINT_Trumpet="小號",rF.JOINT_Sax="薩克斯",rF.JOINT_Steel_Drums="鋼鼓",rF.JOINT_Lead="合成音主旋律",rF.JOINT_Pad="合成音襯底",rF.LABPLUS_PLAY_BUZZER_NOTE_HELPURL="http://wiki.labplus.cn/index.php?title=%E8%9C%82%E9%B8%A3%E5%99%A8",rF.LABPLUS_PLAY_BUZZER_NOTE_TOOLTIP="",rF.LABPLUS_PLAY_BUZZER_NOTE_MESSAGE0="播放音調 %1",rF.Carbit_init_MESSAGE0="CarBit初始化",rF.Carbit_init_TOOLTIP="",rF.Carbit_init_HELPURL="http://wiki.labplus.cn/index.php?title=Car:bit",rF.Carbit_setLeftMotor_MESSAGE0="B2電機速度 %1",rF.Carbit_setLeftMotor_TOOLTIP="範圍:-100~100",rF.Carbit_setLeftMotor_HELPURL="http://wiki.labplus.cn/index.php?title=Car:bit",rF.Carbit_setRightMotor_MESSAGE0="B1電機速度 %1",rF.Carbit_setRightMotor_TOOLTIP="範圍:-100~100",rF.Carbit_setRightMotor_HELPURL="http://wiki.labplus.cn/index.php?title=Car:bit",rF.Carbit_analog_light_HELPURL="http://wiki.labplus.cn/index.php?title=Car:bit",rF.Carbit_analog_light_TOOLTIP="Q3對應Pin1,Q4對應Pin2",rF.Carbit_analog_light_MESSAGE0="%1 模擬光線的值",rF.Carbit_Speed_U10_HELPURL="http://wiki.labplus.cn/index.php?title=Car:bit",rF.Carbit_Speed_U10_TOOLTIP="對應U10",rF.Carbit_Speed_U10_MESSAGE0="左輪速度",rF.Carbit_Speed_U11_HELPURL="http://wiki.labplus.cn/index.php?title=Car:bit",rF.Carbit_Speed_U11_TOOLTIP="對應U11",rF.Carbit_Speed_U11_MESSAGE0="右輪速度",rF.Carbit_Distance_HELPURL="http://wiki.labplus.cn/index.php?title=Car:bit",rF.Carbit_Distance_TOOLTIP="",rF.Carbit_Distance_MESSAGE0="超聲波的值",rF.Carbit_tracking_HELPURL="http://wiki.labplus.cn/index.php?title=Car:bit",rF.Carbit_tracking_TOOLTIP="",rF.Carbit_tracking_MESSAGE0="循跡參數 %1 直行速度 %2 最大限速 %3 轉彎延時 %5 轉彎速度系數 %4 ",rF.XUNFEI_SPEECH_TTS_HELPURL="",rF.XUNFEI_SPEECH_TTS_TOOLTIP="合成音頻文件格式只能是 *.pcm",rF.XUNFEI_SPEECH_TTS_MESSAGE0="[訊飛語音] 合成音頻 %1 APPID %2 APISecret %3 APIKey %4 文字內容 %5 轉存為音頻文件 %6",rF.XUNFEI_SPEECH_IAT_HELPURL="",rF.XUNFEI_SPEECH_IAT_TOOLTIP="可識別的音頻格式有 *.pcm 與 *.wav",rF.XUNFEI_SPEECH_IAT_MESSAGE0="[訊飛語音] 識別音頻 %1 APPID %2 APISecret %3 APIKey %4 待識別音頻文件 %5",rF.XUNFEI_SPEECH_IAT_RESULT_HELPURL="",rF.XUNFEI_SPEECH_IAT_RESULT_TOOLTIP="",rF.XUNFEI_SPEECH_IAT_RESULT_MESSAGE0="[訊飛語音] 識別結果",rF.MPYTHON_ZKAI_LCD_INIT_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/lcd.html#lcdinittype1-freq15000000-colorlcdblack",rF.MPYTHON_ZKAI_LCD_INIT_MESSAGE0="LCD 屏幕初始化",rF.MPYTHON_ZKAI_LCD_INIT_TOOLTIP="初始化 LCD 屏幕显示",rF.MPYTHON_ZKAI_LCD_ROTATION_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/lcd.html#lcddirectiondir",rF.MPYTHON_ZKAI_LCD_ROTATION_MESSAGE0="LCD 屏幕方向%1",rF.MPYTHON_ZKAI_LCD_ROTATION_TOOLTIP="设置 LCD 屏幕方向,取值范围 [0,3], 从0到3依次顺时针旋转",rF.MPYTHON_ZKAI_SENSOR_RESET_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/sensor.html#%E5%8D%95%E7%9B%AE%E6%91%84%E5%83%8F%E5%A4%B4%E9%87%8D%E7%BD%AE%E5%87%BD%E6%95%B0",rF.MPYTHON_ZKAI_SENSOR_RESET_MESSAGE0="摄像头 初始化",rF.MPYTHON_ZKAI_SENSOR_RESET_TOOLTIP="初始化单目摄像头",rF.MPYTHON_ZKAI_SENSOR_ENABLE_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/sensor.html#%E8%8E%B7%E5%8F%96%E5%9B%BE%E5%83%8F",rF.MPYTHON_ZKAI_SENSOR_ENABLE_MESSAGE0="摄像头%1",rF.MPYTHON_ZKAI_SENSOR_ENABLE_TOOLTIP="获取图像",rF.MPYTHON_ZKAI_LCD_WIDTHANDHEIGHT_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/lcd.html#lcdwidth",rF.MPYTHON_ZKAI_LCD_WIDTHANDHEIGHT_MESSAGE0="LCD 获取%1",rF.MPYTHON_ZKAI_LCD_WIDTHANDHEIGHT_TOOLTIP="返回 LCD 的宽度(水平分辨率);高度(垂直分辨率)",rF.MPYTHON_ZKAI_LCD_MI_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/lcd.html#lcddirectiondir",rF.MPYTHON_ZKAI_LCD_MI_MESSAGE0="LCD 设置镜像",rF.MPYTHON_ZKAI_LCD_MI_TOOLTIP="设置是否镜像",rF.MPYTHON_ZKAI_LCD_TEXT_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/lcd.html#%E4%BE%8B%E7%A8%8B-1%EF%BC%9A-%E6%98%BE%E7%A4%BA%E8%8B%B1%E6%96%87",rF.MPYTHON_ZKAI_LCD_TEXT_MESSAGE0="显示文本 x %1 y %2 内容 %3",rF.MPYTHON_ZKAI_LCD_TEXT_TOOLTIP="仅支持字母和数字",rF.MPYTHON_ZKAI_SENSOR_OffOn_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/sensor.html#%E5%85%B3%E9%97%AD%E6%91%84%E5%83%8F%E5%A4%B4",rF.MPYTHON_ZKAI_SENSOR_OffOn_MESSAGE0="摄像头%1",rF.MPYTHON_ZKAI_SENSOR_OffOn_TOOLTIP="1 表示开启摄像头 0 表示关闭摄像头",rF.MPYTHON_ZKAI_SENSOR_SKIP_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/sensor.html#%E8%B7%B3%E5%B8%A7",rF.MPYTHON_ZKAI_SENSOR_SKIP_MESSAGE0="摄像头 跳过帧数%1 毫秒%2内的图像 ",rF.MPYTHON_ZKAI_SENSOR_SKIP_TOOLTIP="摄像头跳过指定帧数或者跳过指定时间内的图像",rF.MPYTHON_ZKAI_SENSOR_RETURN_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/sensor.html#%E5%88%86%E8%BE%A8%E7%8E%87%E5%AE%BD%E5%BA%A6",rF.MPYTHON_ZKAI_SENSOR_RETURN_MESSAGE0="摄像头 获取%1",rF.MPYTHON_ZKAI_SENSOR_RETURN_TOOLTIP="(ZKAI)摄像头返回参数(宽高,获取帧缓冲,获取ID)",rF.MPYTHON_ZKAI_SENSOR_SETS_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/sensor.html#%E8%AE%BE%E7%BD%AE%E5%AF%B9%E6%AF%94%E5%BA%A6",rF.MPYTHON_ZKAI_SENSOR_SETS_MESSAGE0="摄像头 设置%1 为%2",rF.MPYTHON_ZKAI_SENSOR_SETS_TOOLTIP="设置摄像头对比度,亮度,饱和度范围为[-2,+2]",rF.MPYTHON_ZKAI_SENSOR_AUTO_GAIN_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/sensor.html#%E8%AE%BE%E7%BD%AE%E8%87%AA%E5%8A%A8%E5%A2%9E%E7%9B%8A",rF.MPYTHON_ZKAI_SENSOR_AUTO_GAIN_MESSAGE0="摄像头 自动增益%1",rF.MPYTHON_ZKAI_SENSOR_AUTO_GAIN_TOOLTIP="1开启摄像头自动增益 0关闭摄像头自动增益",rF.MPYTHON_ZKAI_SENSOR_ACQUIRE_AUTO_GAIN_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/sensor.html#%E8%8E%B7%E5%8F%96%E5%A2%9E%E7%9B%8A%E5%80%BC",rF.MPYTHON_ZKAI_SENSOR_ACQUIRE_AUTO_GAIN_MESSAGE0="摄像头 获取增益值",rF.MPYTHON_ZKAI_SENSOR_ACQUIRE_AUTO_GAIN_TOOLTIP="获取摄像头增益值",rF.MPYTHON_ZKAI_SENSOR_LEVEL_MI_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/sensor.html#%E8%AE%BE%E7%BD%AE%E6%B0%B4%E5%B9%B3%E9%95%9C%E5%83%8F",rF.MPYTHON_ZKAI_SENSOR_LEVEL_MI_MESSAGE0="摄像头 水平镜像%1",rF.MPYTHON_ZKAI_SENSOR_LEVEL_MI_TOOLTIP="1 表示开启水平镜像 0 表示关闭水平镜像",rF.MPYTHON_ZKAI_IMAGE_LAB_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/image.html#%E4%BE%8B%E7%A8%8B-1%EF%BC%9A-%E6%89%BE%E7%BB%BF%E8%89%B2",rF.MPYTHON_ZKAI_IMAGE_LAB_MESSAGE0="寻找颜色 LAB值%1",rF.MPYTHON_ZKAI_IMAGE_LAB_TOOLTIP="image寻找颜色",rF.MPYTHON_ZKAI_TRACE_COLOR_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.find_blobs",rF.MPYTHON_ZKAI_TRACE_COLOR_MESSAGE0="(掌控AI)追蹤色塊 LAB顏色%1 邊界框小於%2 像素小於%3 過濾",rF.MPYTHON_ZKAI_TRACE_COLOR_TOOLTIP="追蹤色塊",rF.MPYTHON_ZKAI_TRACE_CILOR_DISPLAYTEN_HELPURL="",rF.MPYTHON_ZKAI_TRACE_CILOR_DISPLAYTEN_MESSAGE0="(掌控AI)追蹤色塊 顯示%1",rF.MPYTHON_ZKAI_TRACE_CILOR_DISPLAYTEN_TOOLTIP="",rF.MPYTHON_ZKAI_BLOB_ALL_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#blob",rF.MPYTHON_ZKAI_BLOB_ALL_MESSAGE0="(掌控AI)%1獲取識別後色塊的 所有參數",rF.MPYTHON_ZKAI_BLOB_ALL_TOOLTIP="返回blob 類 -- 色塊對象",rF.MPYTHON_ZKAI_BLOB_X_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#blob",rF.MPYTHON_ZKAI_BLOB_X_MESSAGE0="(掌控AI)%1獲取識別後色塊的 x座標",rF.MPYTHON_ZKAI_BLOB_X_TOOLTIP="返回blob 類 -- 色塊對象",rF.MPYTHON_ZKAI_BLOB_Y_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#blob",rF.MPYTHON_ZKAI_BLOB_Y_MESSAGE0="(掌控AI)%1獲取識別後色塊的 y座標",rF.MPYTHON_ZKAI_BLOB_Y_TOOLTIP="返回blob 類 -- 色塊對象",rF.MPYTHON_ZKAI_BLOB_W_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#blob",rF.MPYTHON_ZKAI_BLOB_W_MESSAGE0="(掌控AI)%1獲取識別後色塊的 寬度",rF.MPYTHON_ZKAI_BLOB_W_TOOLTIP="返回blob 類 -- 色塊對象",rF.MPYTHON_ZKAI_BLOB_H_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#blob",rF.MPYTHON_ZKAI_BLOB_H_MESSAGE0="(掌控AI)%1獲取識別後色塊的 高度",rF.MPYTHON_ZKAI_BLOB_H_TOOLTIP="返回blob 類 -- 色塊對象",rF.MPYTHON_ZKAI_BLOB_NUMBER_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#blob",rF.MPYTHON_ZKAI_BLOB_NUMBER_MESSAGE0="(掌控AI)%1獲取識別後色塊的 數量",rF.MPYTHON_ZKAI_BLOB_NUMBER_TOOLTIP="返回blob 類 -- 色塊對象",rF.MPYTHON_ZKAI_BLOB_CENTER_X_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#blob",rF.MPYTHON_ZKAI_BLOB_CENTER_X_MESSAGE0="(掌控AI)%1獲取識別後色塊的 中心x座標",rF.MPYTHON_ZKAI_BLOB_CENTER_X_TOOLTIP="返回blob 類 -- 色塊對象",rF.MPYTHON_ZKAI_BLOB_CENTER_Y_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#blob",rF.MPYTHON_ZKAI_BLOB_CENTER_Y_MESSAGE0="(掌控AI)%1獲取識別後色塊的 中心y座標",rF.MPYTHON_ZKAI_BLOB_CENTER_Y_TOOLTIP="返回blob 類 -- 色塊對象",rF.MPYTHON_ZKAI_BLOB_ORTHOGON_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#blob",rF.MPYTHON_ZKAI_BLOB_ORTHOGON_MESSAGE0="(掌控AI)%1獲取識別後色塊的 矩形",rF.MPYTHON_ZKAI_BLOB_ORTHOGON_TOOLTIP="返回blob 類 -- 色塊對象",rF.MPYTHON_ZKAI2_FACE_TRACKING_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",rF.MPYTHON_ZKAI2_FACE_TRACKING_MESSAGE0="(掌控AI)選擇訓練模型 人臉",rF.MPYTHON_ZKAI2_FACE_TRACKING_TOOLTIP="可以識別並且追蹤人臉,顯示人臉大小等",rF.MPYTHON_ZKAI2_PHOTOGRAPH_TRACKING_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",rF.MPYTHON_ZKAI2_PHOTOGRAPH_TRACKING_MESSAGE0="(掌控AI)調用攝像頭進行 人臉識別",rF.MPYTHON_ZKAI2_PHOTOGRAPH_TRACKING_TOOLTIP="調用攝像頭進行 人臉識別",rF.MPYTHON_ZKAI2_RESULT_FACE_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",rF.MPYTHON_ZKAI2_RESULT_FACE_MESSAGE0="(掌控AI)獲取識別後人臉的 所有參數",rF.MPYTHON_ZKAI2_RESULT_FACE_TOOLTIP="獲取識別後人臉的 所有參數",rF.MPYTHON_ZKAI2_RESULT_FACE_X_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",rF.MPYTHON_ZKAI2_RESULT_FACE_X_MESSAGE0="(掌控AI)獲取識別後人臉的 x座標",rF.MPYTHON_ZKAI2_RESULT_FACE_X_TOOLTIP="獲取識別後人臉的 x座標",rF.MPYTHON_ZKAI2_RESULT_FACE_Y_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",rF.MPYTHON_ZKAI2_RESULT_FACE_Y_MESSAGE0="(掌控AI)獲取識別後人臉的 y座標",rF.MPYTHON_ZKAI2_RESULT_FACE_Y_TOOLTIP="獲取識別後人臉的 y座標",rF.MPYTHON_ZKAI2_RESULT_FACE_W_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",rF.MPYTHON_ZKAI2_RESULT_FACE_W_MESSAGE0="(掌控AI)獲取識別後人臉的 寬度",rF.MPYTHON_ZKAI2_RESULT_FACE_W_TOOLTIP="獲取識別後人臉的 寬度",rF.MPYTHON_ZKAI2_RESULT_FACE_H_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",rF.MPYTHON_ZKAI2_RESULT_FACE_H_MESSAGE0="(掌控AI)獲取識別後人臉的 高度",rF.MPYTHON_ZKAI2_RESULT_FACE_H_TOOLTIP="獲取識別後人臉的 高度",rF.MPYTHON_ZKAI2_RESULT_FACE_VALUE_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",rF.MPYTHON_ZKAI2_RESULT_FACE_VALUE_MESSAGE0="(掌控AI)獲取識別後人臉的 置信度",rF.MPYTHON_ZKAI2_RESULT_FACE_VALUE_TOOLTIP="獲取識別後人臉的 置信度",rF.MPYTHON_ZKAI2_RESULT_FACE_OBJNUM_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",rF.MPYTHON_ZKAI2_RESULT_FACE_OBJNUM_MESSAGE0="(掌控AI)獲取識別後人臉的 數量",rF.MPYTHON_ZKAI2_RESULT_FACE_OBJNUM_TOOLTIP="獲取識別後人臉的 數量",rF.MPYTHON_ZKAI_LCD_DISPLAY_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/lcd.html#lcddisplayimage-roiauto",rF.MPYTHON_ZKAI_LCD_DISPLAY_MESSAGE0="LCD 显示生效",rF.MPYTHON_ZKAI_LCD_DISPLAY_TOOLTIP="可以在液晶屏上显示一张 image",rF.MPYTHON_ZKAI_SENSOR_IMAGES_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/sensor.html#%E8%8E%B7%E5%8F%96%E5%9B%BE%E5%83%8F",rF.MPYTHON_ZKAI_SENSOR_IMAGES_MESSAGE0="摄像头 获取图像",rF.MPYTHON_ZKAI_SENSOR_IMAGES_TOOLTIP="控制摄像头捕捉图像",rF.MPYTHON_ZKAI2_20class_TRACKING_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",rF.MPYTHON_ZKAI2_20class_TRACKING_MESSAGE0="(掌控AI)選擇訓練模型 20類",rF.MPYTHON_ZKAI2_20class_TRACKING_TOOLTIP="可以識別20個類型,分別是0-19爲飛機,自行車,鳥,船,瓶子,公交車,汽車,貓,椅子,奶牛,餐桌,狗,屋子,摩托車,人,盆栽,羊,沙發,火車,電視",rF.MPYTHON_ZKAI2_PHOTOGRAPH_20TRACKING_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",rF.MPYTHON_ZKAI2_PHOTOGRAPH_20TRACKING_MESSAGE0="(掌控AI)調用攝像頭進行 20類識別",rF.MPYTHON_ZKAI2_PHOTOGRAPH_20TRACKING_TOOLTIP="調用攝像頭進行 20類識別",rF.MPYTHON_ZKAI2_RESULT_20CLASS_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",rF.MPYTHON_ZKAI2_RESULT_20CLASS_MESSAGE0="(掌控AI)獲取識別後20類的 所有參數",rF.MPYTHON_ZKAI2_RESULT_20CLASS_TOOLTIP="獲取識別後20類的 所有參數",rF.MPYTHON_ZKAI2_RESULT_20CLASS_X_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",rF.MPYTHON_ZKAI2_RESULT_20CLASS_X_MESSAGE0="(掌控AI)獲取識別後20類的 x座標",rF.MPYTHON_ZKAI2_RESULT_20CLASS_X_TOOLTIP="獲取識別後20類的 x座標",rF.MPYTHON_ZKAI2_RESULT_20CLASS_Y_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",rF.MPYTHON_ZKAI2_RESULT_20CLASS_Y_MESSAGE0="(掌控AI)獲取識別後20類的 y座標",rF.MPYTHON_ZKAI2_RESULT_20CLASS_Y_TOOLTIP="獲取識別後20類的 y座標",rF.MPYTHON_ZKAI2_RESULT_20CLASS_W_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",rF.MPYTHON_ZKAI2_RESULT_20CLASS_W_MESSAGE0="(掌控AI)獲取識別後20類的 寬度",rF.MPYTHON_ZKAI2_RESULT_20CLASS_W_TOOLTIP="獲取識別後20類的 寬度",rF.MPYTHON_ZKAI2_RESULT_20CLASS_H_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",rF.MPYTHON_ZKAI2_RESULT_20CLASS_H_MESSAGE0="(掌控AI)獲取識別後20類的 高度",rF.MPYTHON_ZKAI2_RESULT_20CLASS_H_TOOLTIP="獲取識別後20類的 高度",rF.MPYTHON_ZKAI2_RESULT_20CLASS_VALUE_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",rF.MPYTHON_ZKAI2_RESULT_20CLASS_VALUE_MESSAGE0="(掌控AI)獲取識別後20類的 置信度",rF.MPYTHON_ZKAI2_RESULT_20CLASS_VALUE_TOOLTIP="獲取識別後20類的 置信度",rF.MPYTHON_ZKAI2_RESULT_20CLASS_OBJNUM_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",rF.MPYTHON_ZKAI2_RESULT_20CLASS_OBJNUM_MESSAGE0="(掌控AI)獲取識別後20類的 數量",rF.MPYTHON_ZKAI2_RESULT_20CLASS_OBJNUM_TOOLTIP="獲取識別後20類的 數量",rF.MPYTHON_ZKAI2_RESULT_20CLASS_CLASSID_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",rF.MPYTHON_ZKAI2_RESULT_20CLASS_CLASSID_MESSAGE0="(掌控AI)獲取識別後20類的 類型",rF.MPYTHON_ZKAI2_RESULT_20CLASS_CLASSID_TOOLTIP="可以識別20個類型,分別是0-19爲飛機,自行車,鳥,船,瓶子,公交車,汽車,貓,椅子,奶牛,餐桌,狗,屋子,摩托車,人,盆栽,羊,沙發,火車,電視",rF.MPYTHON_ZKAI2_RESULT_20CLASS_INDEX_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",rF.MPYTHON_ZKAI2_RESULT_20CLASS_INDEX_MESSAGE0="(掌控AI)獲取識別後20類的 類型數量",rF.MPYTHON_ZKAI2_RESULT_20CLASS_INDEX_TOOLTIP="獲取識別後20類的 類型數量",rF.MPYTHON_ZKAI2_NUMBER_DISCERN_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",rF.MPYTHON_ZKAI2_NUMBER_DISCERN_MESSAGE0="(掌控AI)選擇訓練模型 手寫數字",rF.MPYTHON_ZKAI2_NUMBER_DISCERN_TOOLTIP="選擇訓練模型 手寫數字",rF.MPYTHON_ZKAI2_RESULT_NUMBER_DISCERN_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",rF.MPYTHON_ZKAI2_RESULT_NUMBER_DISCERN_MESSAGE0="(掌控AI)調用攝像頭進行 手寫數字識別",rF.MPYTHON_ZKAI2_RESULT_NUMBER_DISCERN_TOOLTIP="調用攝像頭進行 手寫數字識別",rF.MPYTHON_ZKAI2_NUMBER_DETECT_ALL_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#id2",rF.MPYTHON_ZKAI2_NUMBER_DETECT_ALL_MESSAGE0="(掌控AI)獲取識別後手寫數字的 所有參數",rF.MPYTHON_ZKAI2_NUMBER_DETECT_ALL_TOOLTIP="獲取識別後手寫數字的 所有參數",rF.MPYTHON_ZKAI2_NUMBER_DETECT_NUMBER_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#id2",rF.MPYTHON_ZKAI2_NUMBER_DETECT_NUMBER_MESSAGE0="(掌控AI)獲取識別後手寫數字的 數字",rF.MPYTHON_ZKAI2_NUMBER_DETECT_NUMBER_TOOLTIP="獲取識別後手寫數字的 數字",rF.MPYTHON_ZKAI2_NUMBER_DETECT_ADIENCE_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#id2",rF.MPYTHON_ZKAI2_NUMBER_DETECT_ADIENCE_MESSAGE0="(掌控AI)獲取識別後手寫數字的 置信度",rF.MPYTHON_ZKAI2_NUMBER_DETECT_ADIENCE_TOOLTIP="獲取識別後手寫數字的 置信度",rF.MPYTHON_ZKAI_IMAGE_FACEDETECT_HELPURL="https://maixpy.sipeed.com/zh/libs/Maix/kpu.html#%E8%BF%90%E8%A1%8Cyolo2%E7%BD%91%E7%BB%9C",rF.MPYTHON_ZKAI_IMAGE_FACEDETECT_MESSAGE0="人脸识别",rF.MPYTHON_ZKAI_IMAGE_FACEDETECT_TOOLTIP="",rF.MPYTHON_ZKAI_IMAGE_FACEDETECT_RETURN_HELPURL="https://maixpy.sipeed.com/zh/libs/Maix/kpu.html#%E8%BF%90%E8%A1%8Cyolo2%E7%BD%91%E7%BB%9C",rF.MPYTHON_ZKAI_IMAGE_FACEDETECT_RETURN_MESSAGE0="获取 识别%1",rF.MPYTHON_ZKAI_IMAGE_FACEDETECT_RETURN_TOOLTIP="人脸识别的x和y是LCD屏幕的坐标位置;width和height是人脸识别出的宽度和高度;classid是识别出的类别;objnum是人脸识别出的个数",rF.MPYTHON_ZKAI_IMAGE_FACEDETECT_ALL_RETURN_HELPURL="https://maixpy.sipeed.com/zh/libs/Maix/kpu.html#%E8%BF%90%E8%A1%8Cyolo2%E7%BD%91%E7%BB%9C",rF.MPYTHON_ZKAI_IMAGE_FACEDETECT_ALL_RETURN_MESSAGE0="获取 识别 所有参数",rF.MPYTHON_ZKAI_IMAGE_FACEDETECT_ALL_RETURN_TOOLTIP="人脸识别的x和y是LCD屏幕的坐标位置;width和height是人脸识别出的宽度和高度;classid是识别出的类别;objnum是人脸识别出的个数",rF.MPYTHON_ZKAI_IMAGE_FACEDETECT2_HELPURL="https://maixpy.sipeed.com/zh/libs/Maix/kpu.html#%E8%BF%90%E8%A1%8Cyolo2%E7%BD%91%E7%BB%9C",rF.MPYTHON_ZKAI_IMAGE_FACEDETECT2_MESSAGE0="人脸识别",rF.MPYTHON_ZKAI_IMAGE_FACEDETECT2_TOOLTIP="可以放入获取识别的参数",rF.MPYTHON_ZKAI_IMAGE_20CLASS_HELPURL="https://maixpy.sipeed.com/zh/libs/Maix/kpu.html#%E8%BF%90%E8%A1%8Cyolo2%E7%BD%91%E7%BB%9C",rF.MPYTHON_ZKAI_IMAGE_20CLASS_TOOLTIP="可以放入获取识别的参数,可以识别20个类型,分别是飞机,自行车,鸟,船,瓶子,公交车,汽车,猫,椅子,奶牛, 餐桌,狗,屋子,摩托车,人,盆栽,羊,沙发,火车,电视",rF.MPYTHON_ZKAI_LCD_SHOW_REC_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/image.html#imagedrawrectanglex-y-w-h-color-thickness1-fillfalse",rF.MPYTHON_ZKAI_LCD_SHOW_REC_MESSAGE0="矩形%1 x%3 y%4 宽%5 高%6 颜色为 R%7 G%8 B%9 加粗%2",rF.MPYTHON_ZKAI_LCD_SHOW_REC_TOOLTIP="在图像上绘制矩形",rF.MPYTHON_ZKAI_LCD_SHOW_STRING_MESSAGE0="线条 x1%1 y1%2 到x2%3 y2%4 颜色为R%5 G%6 B%7 加粗%8",rF.MPYTHON_ZKAI_LCD_SHOW_STRING_TOOLTIP="在图像上绘制线条",rF.MPYTHON_ZKAI_LCD_SHOW_STRING_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/image.html#imagedrawlinex0-y0-x1-y1-color-thickness1",rF.MPYTHON_ZKAI_LCD_CLEAR_ALL_MESSAGE0="LCD 显示清空",rF.MPYTHON_ZKAI_LCD_CLEAR_ALL_TOOLTIP="将液晶屏清空为黑色或者指定的颜色",rF.MPYTHON_ZKAI_LCD_CLEAR_ALL_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/lcd.html#lcdclear",rF.MPYTHON_ZKAI_LCD_return_colour_MESSAGE0="LCD 返回 x%1 y%2 颜色",rF.MPYTHON_ZKAI_LCD_return_colour_TOOLTIP="返回某个坐标点的颜色",rF.MPYTHON_ZKAI_LCD_return_colour_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/image.html#imagegetpixelx-y-rgbtuple",rF.MPYTHON_ZKAI_LCD_SHOW_CIRCLE_MESSAGE0="圆形%1 x%2 y%3 半径%4 颜色为 R%5 G%6 B%7 加粗%8",rF.MPYTHON_ZKAI_LCD_SHOW_CIRCLE_TOOLTIP="在图像上绘制圆形",rF.MPYTHON_ZKAI_LCD_SHOW_CIRCLE_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/image.html#imagedrawcirclex-y-radius-color-thickness1-fillfalse",rF.MPYTHON_ZKAI_LCD_TEXT_MOST_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/lcd.html#%E4%BE%8B%E7%A8%8B-1%EF%BC%9A-%E6%98%BE%E7%A4%BA%E8%8B%B1%E6%96%87",rF.MPYTHON_ZKAI_LCD_TEXT_MOST_MESSAGE0="显示文本 x %1 y %2 内容 %3 颜色为R%4 G%5 B%6 字号%7",rF.MPYTHON_ZKAI_LCD_TEXT_MOST_TOOLTIP="仅支持字母和数字",rF.MPYTHON_ZKAI_LCD_SHOW_TEN_STRING_MESSAGE0="十字线 x%1 y%2 颜色为R%3 G%4 B%5 尺寸%6 加粗%7",rF.MPYTHON_ZKAI_LCD_SHOW_TEN_STRING_TOOLTIP="在图像上绘制十字线",rF.MPYTHON_ZKAI_LCD_SHOW_TEN_STRING_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/image.html#imagedrawcrossx-y-color-size5-thickness1",rF.MPYTHON_ZKAI_LCD_SHOW_ARROWS_MESSAGE0="箭头 x1%1 y1%2 到x2%3 y2%4 颜色为R%5 G%6 B%7 加粗%8",rF.MPYTHON_ZKAI_LCD_SHOW_ARROWS_TOOLTIP="在图像上绘制一个箭头",rF.MPYTHON_ZKAI_LCD_SHOW_ARROWS_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/image.html#imagedrawarrowx0-y0-x1-y1-color-thickness1",rF.MPYTHON_ZKAI_LCD_SHOW_IMAGE_PIRCTURE_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/lcd.html#%E4%BE%8B%E7%A8%8B-2%EF%BC%9A-%E6%98%BE%E7%A4%BA%E5%9B%BE%E7%89%87",rF.MPYTHON_ZKAI_LCD_SHOW_IMAGE_PIRCTURE_MESSAGE0="显示图像 路径%1",rF.MPYTHON_ZKAI_LCD_SHOW_IMAGE_PIRCTURE_TOOLTIP="显示图像",rF.MPYTHON_ZKAI_LCD_SHOW_IMAGE_HEAT_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/image.html#imagetorainbowcopyfalse",rF.MPYTHON_ZKAI_LCD_SHOW_IMAGE_HEAT_MESSAGE0="LCD 显示热图颜色",rF.MPYTHON_ZKAI_LCD_SHOW_IMAGE_HEAT_TOOLTIP="可以在液晶屏上显示一张 image的热图颜色",rF.MPYTHON_ZKAI_LCD_SHOW_ECTYPE_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/image.html#imagesavepath-roi-quality50",rF.MPYTHON_ZKAI_LCD_SHOW_ECTYPE_MESSAGE0="将图像的副本保存到SD卡 图像名%1 图像显示区域 x%2 y%3 宽%4 高%5",rF.MPYTHON_ZKAI_LCD_SHOW_ECTYPE_TOOLTIP="将图像的副本保存到SD卡",rF.MPYTHON_ZKAI_LCD_SHOW_ECTYPE_SHOW_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/image.html#imagecopyroi-copytofbfalse",rF.MPYTHON_ZKAI_LCD_SHOW_ECTYPE_SHOW_MESSAGE0="创建一个图像对象的副本 复制图像区域 x%1 y%2 宽%3 高%4",rF.MPYTHON_ZKAI_LCD_SHOW_ECTYPE_SHOW_TOOLTIP="创建一个图像对象的副本",rF.MPYTHON_ZKAI_LCD_SHOW_IMAGE_HEAT_GRAYSCALE="灰度",rF.MPYTHON_ZKAI_LCD_SHOW_IMAGE_HEAT_RAINBOW="彩虹",rF.MPYTHON_ZKAI_LCD_SHOW_IMAGE_HEAT_NEGATE="數字反轉",rF.MPYTHON_ZKAI_LCD_SHOW_IMAGE_HEAT_INVERT="黑白翻轉",rF.MPYTHON_ZKAI_LCD_SHOW_IMAGE_DESCARTES_LINPOLAR="線性極",rF.MPYTHON_ZKAI_LCD_SHOW_IMAGE_DESCARTES_LOGPOLAR="對數極",rF.MPYTHON_ZKAI_SENSOR_PATTERN_GRAYSCALE="灰度",rF.MPYTHON_ZKAI_SENSOR_PATTERN_COLOR="彩色",rF.MPYTHON_ZKAI_SENSOR_ENABLE_START="開始抓取圖像",rF.MPYTHON_ZKAI_SENSOR_ENABLE_STOP="停止抓取圖像",rF.MPYTHON_ZKAI_SENSOR_LEVEL_MI_H="水平鏡像",rF.MPYTHON_ZKAI_SENSOR_LEVEL_MI_V="垂直翻轉",rF.MPYTHON_ZKAI_SENSOR_SETS_CONTRAST="對比度",rF.MPYTHON_ZKAI_SENSOR_SETS_BRIGHTNESS="亮度",rF.MPYTHON_ZKAI_SENSOR_SETS_SATURATION="飽和度",rF.MPYTHON_ZKAI2_FACE_YOLO="人臉識別",rF.MPYTHON_ZKAI2_CLASS_20_YOLO="20類識別",rF.MPYTHON_ZKAI2_MNIST_NET="数字识别",rF.MPYTHON_ZKAI2_PHOTOGRAPH_FACE_YOLO="人臉",rF.MPYTHON_ZKAI2_PHOTOGRAPH_CLASS_20_YOLO="0類",rF.MPYTHON_ZKAI_TRACE_COLOR_RECTANGLE="矩形",rF.MPYTHON_ZKAI_TRACE_COLOR_CROSS="十字",rF.MPYTHON_NAME_PYTHON_ENVIRONMENT_HELPURL="",rF.MPYTHON_NAME_PYTHON_ENVIRONMENT_MESSAGE0="聲明python 運行環境",rF.MPYTHON_NAME_PYTHON_ENVIRONMENT_TOOLTIP="",rF.MPYTHON_LARK_GET_ALL_COLOR_MESSAGE0="I2C獲取顔色",rF.MPYTHON_LARK_GET_ALL_COLOR_TOOLTIP="返回列表",rF.MPYTHON_LARK_GET_COLOR_TOOLTIP="",rF.MPYTHON_LARK_GET_COLOR_MESSAGE0="I2C獲取 %1",rF.MPYTHON_lARK_RED="紅色",rF.MPYTHON__LARK_GREEN="綠色",rF.MPYTHON__LARK_BLUE="藍色",rF.MPYTHON_LARK_GET_ALL_COLOR_HSV_TOOLTIP="HSV(Hue, Saturation, Value)",rF.MPYTHON_LARKT_GET_ALL_COLOR_HSV_MESSAGE0="I2C獲取HSV",rF.MPYTHON_LARK_GET_COLOR_HSV_TOOLTIP="HSV(Hue, Saturation, Value)",rF.MPYTHON_LARK_GET_COLOR_HSV_MESSAGE0="i2C獲取HSV %1",rF.MPYTHON_LARK_GET_COLOR_STRING_TOOLTIP="",rF.MPYTHON_LARK_GET_COLOR_STRING_MESSAGE0="I2C獲取顔色",rF.MPYTHON_LARK_DISCERN_COLOR_TOOLTIP="",rF.MPYTHON_LARK_DISCERN_COLOR_MESSAGE0="識別 %1",rF.MPYTHON_LARK_RED="紅色",rF.MPYTHON_LARK_GREEN="綠色",rF.MPYTHON_LARK_BLUE="藍色",rF.MPYTHON_LARK_ORANGE="橙色",rF.MPYTHON_LARK_YELLOW="黃色",rF.MPYTHON_LARK_PURPLE="紫色",rF.MPYTHON_LARK_CYAN="青色",rF.MPYTHON_LARK_NONE="無色",rF.MPYTHON_LARK_NULL="無法獲取",rF.MPYTHON_LARK_ULTRASONIC_TOOLTIP="",rF.MPYTHON_LARK_ULTRASONIC_MESSAGE0="I2C超聲波",rF.MPYTHON_LARK_MOTOR_SET_I2C_TOOLTIP="",rF.MPYTHON_LARK_MOTOR_SET_I2C_MESSAGE0="I2C設置 %1 速度 %2",rF.MPYTHON_LARK_GET_LINE_ON_I2C_TOOLTIP="",rF.mpython_LARK_GET_LINE_ON_I2C_MESSAGE0="I2C獲取 %1 巡綫值",rF.mpython_LARK_GET_LINE_RIGHT_ON_I2C="右邊",rF.mpython_LARK_GET_LINE_LEFT_ON_I2C="左邊",rF.MPYTHON_LARK_SEARCH_LINE_ON_I2C_TOOLTIP="",rF.mpython_LARK_SEARCH_LINE_ON_I2C_MESSAGE0="I2C循跡傳感器 %1 遇到黑綫",rF.MPYTHON_LARK_SEARCH_LEFT="左邊",rF.MPYTHON_LARK_SEARCH_RIGHT="右邊",rF.MPYTHON_LARK_SEARCH_LEFT2="兩邊都",rF.MPYTHON_LARK_SEARCH_RIGHT2="兩邊都無",rF.MPYTHON_LARK_SEARCH_BOTH="兩邊都",rF.MPYTHON_LARK_SEARCH_NONE="兩邊都無",rF.MPYTHON_LARK__CAR_GET_ALL_COLOR_TOOLTIP="Returns as list",rF.MPYTHON_LARK__CAR_GET_ALL_COLOR_MESSAGE0="千里馬獲取顔色",rF.MPYTHON_LARK_CAR_GET_COLOR_TOOLTIP="",rF.MPYTHON_LARK_CAR_GET_COLOR_MESSAGE0="千里馬獲取 %1",rF.MPYTHON_lARK_CAR_RED="紅色",rF.MPYTHON__LARK_CAR_GREEN="綠色",rF.MPYTHON__LARK_CAR_BLUE="藍色",rF.MPYTHON_LARK_CAR_GET_ALL_COLOR_HSV_TOOLTIP="HSV(Hue, Saturation, Value)",rF.MPYTHON_LARKT_CAR_GET_ALL_COLOR_HSV_MESSAGE0="千里馬獲取HSV",rF.MPYTHON_LARK_CAR_GET_COLOR_HSV_TOOLTIP="HSV(Hue, Saturation, Value)",rF.MPYTHON_LARK_CAR_GET_COLOR_HSV_MESSAGE0="千里馬HSV %1",rF.MPYTHON_LARK_CAR_GET_COLOR_STRING_TOOLTIP="",rF.MPYTHON_LARK_CAR_GET_COLOR_STRING_MESSAGE0="千里馬識別顔色",rF.MPYTHON_LARK_CAR_DISCERN_COLOR_TOOLTIP="",rF.MPYTHON_LARK_CAR_DISCERN_COLOR_MESSAGE0="千里馬識別顔色 %1",rF.MPYTHON_LARK_CAR_RED="紅色",rF.MPYTHON_LARK_CAR_GREEN="綠色",rF.MPYTHON_LARK_CAR_BLUE="藍色",rF.MPYTHON_LARK_CAR_ORANGE="橙色",rF.MPYTHON_LARK_CAR_YELLOW="黃色",rF.MPYTHON_LARK_CAR_PURPLE="紫色",rF.MPYTHON_LARK_CAR_CYAN="青色",rF.MPYTHON_LARK_CAR_NONE="無識別",rF.MPYTHON_LARK_CAR_NULL="識別錯誤",rF.MPYTHON_LARK_CAR_ULTRASONIC_TOOLTIP="",rF.MPYTHON_LARK_CAR_ULTRASONIC_MESSAGE0="千里馬獲取超聲波",rF.MPYTHON_LARK_CAR_GET_LINE_ON_I2C_TOOLTIP="",rF.mpython_LARK_CAR_GET_LINE_ON_I2C_MESSAGE0="千里馬獲取 %1 循跡數值",rF.mpython_LARK_CAR_GET_LINE_RIGHT_ON_I2C="右邊",rF.mpython_LARK_CAR_GET_LINE_LEFT_ON_I2C="左邊",rF.MPYTHON_LARK_CAR_SEARCH_LINE_ON_I2C_TOOLTIP="",rF.mpython_LARK_CAR_SEARCH_LINE_ON_I2C_MESSAGE0="千里馬循跡 %1 碰到黑綫",rF.MPYTHON_LARK_CAR_SEARCH_LEFT="左邊",rF.MPYTHON_LARK_CAR_SEARCH_RIGHT="右邊",rF.MPYTHON_LARK_CAR_SEARCH_LEFT2="兩邊",rF.MPYTHON_LARK_CAR_SEARCH_NONE="兩邊都沒有",rF.MPYTHON_LARK_MOTOR_SET_I2C_TOOLTIP="",rF.MPYTHON_LARK_MOTOR_SET_I2C_MESSAGE0="電機驅動 %1 速度 %2",rF.MPYTHON_LARK_MOTOR2_SET_I2C_TOOLTIP="",rF.MPYTHON_LARK_MOTOR2_SET_I2C_MESSAGE0="千里馬 %1 速度 %2",rF.MPYTHON_LARK_CAR_MOTION_LEFT="左轉",rF.MPYTHON_LARK_CAR_MOTION_RIGHT="右轉",rF.MPYTHON_LARK_CAR_MOTION_FORWARD="前進",rF.MPYTHON_LARK_CAR_MOTION_BACKWARD="後退",rF.MPYTHON_LARK_CAR_MOTION_STOP="停止",rF.MPYTHON_DEFINE_THREAD_MESSAGE0="定義線程 %1",rF.MPYTHON_RUN_THREAD_MESSAGE0="運行線程 %1",rF.NUMBER_TO_BYTES_MESSAGE0="(struct.pack) 轉換數字為bytes %1 %2 %3 %4 待轉換數字 %5",rF.BYTES_TO_NUMBER_MESSAGE0="(struct.unpack) 解包bytes為數字 %1 %2 %3 %4 待轉換bytes %5",rF.LITTLE_ENDIAN="低字節序(默認)",rF.BIG_ENDIAN="高字節序",rF.MPYTHON2_ACCELEROMETER_EVENT_MESSAGE0="[適用2.0板] 當掌控板 %1 時",rF.MPYTHON2_ACCELEROMETER_EVENT_HELPURL="",rF.MPYTHON2_ACCELEROMETER_EVENT_TOOLTIP="",rF.MPYTHON2_ACCELEROMETER_EVENT_TILT_LEFT="向左傾斜",rF.MPYTHON2_ACCELEROMETER_EVENT_TILT_RIGHT="向右傾斜",rF.MPYTHON2_ACCELEROMETER_EVENT_TILT_UP="向前傾斜",rF.MPYTHON2_ACCELEROMETER_EVENT_TILT_DOWN="向後傾斜",rF.MPYTHON2_ACCELEROMETER_EVENT_FACE_UP="正面朝上",rF.MPYTHON2_ACCELEROMETER_EVENT_FACE_DOWN="正面朝下",rF.MPYTHON2_ACCELEROMETER_EVENT_SINGLE_CLICK="被單擊",rF.MPYTHON2_ACCELEROMETER_EVENT_DOUBLE_CLICK="被雙擊",rF.MPYTHON2_ACCELEROMETER_EVENT_FREEFALL="墜落",rF.MPYTHON2_ACCELEROMETER_ROLL_ANGLE="橫滾角",rF.MPYTHON2_ACCELEROMETER_PITCH_ANGLE="俯仰角",rF.MPYTHON2_ACCELEROMETER_ANGLE_HELPURL="",rF.MPYTHON2_ACCELEROMETER_ANGLE_TOOLTIP="",rF.MPYTHON2_ACCELEROMETER_ANGLE_MESSAGE0="掌控板 %1",rF.MPYTHON2_BUTTON_IS_PRESSED_HELPURL="",rF.MPYTHON2_BUTTON_IS_PRESSED_TOOLTIP="",rF.MPYTHON2_BUTTON_IS_PRESSED_MESSAGE0="按鍵 %1 已經按下",rF.MPYTHON2_BUTTON_WAS_PRESSED_HELPURL="",rF.MPYTHON2_BUTTON_WAS_PRESSED_TOOLTIP="",rF.MPYTHON2_BUTTON_WAS_PRESSED_MESSAGE0="按鍵 %1 曾經按下",rF.MPYTHON2_BUTTON_GET_PRESSES_HELPURL="",rF.MPYTHON2_BUTTON_GET_PRESSES_TOOLTIP="",rF.MPYTHON2_BUTTON_GET_PRESSES_MESSAGE0="按鍵 %1 按下過的次數",rF.MPYTHON2_BUTTON_EVENT_MESSAGE0="當按鍵 %1 被 %2 時",rF.MPYTHON2_BUTTON_EVENT_HELPURL="",rF.MPYTHON2_BUTTON_EVENT_TOOLTIP="",rF.MPYTHON2_BUTTON_EVENT_PRESSED="按下",rF.MPYTHON2_BUTTON_EVENT_RELEASED="松開",rF.MPYTHON2_TOUCHPAD_IS_PRESSED_HELPURL="",rF.MPYTHON2_TOUCHPAD_IS_PRESSED_TOOLTIP="",rF.MPYTHON2_TOUCHPAD_IS_PRESSED_MESSAGE0="觸摸鍵 %1 已經按下",rF.MPYTHON2_TOUCHPAD_WAS_PRESSED_HELPURL="",rF.MPYTHON2_TOUCHPAD_WAS_PRESSED_TOOLTIP="",rF.MPYTHON2_TOUCHPAD_WAS_PRESSED_MESSAGE0="觸摸鍵 %1 曾經按下",rF.MPYTHON2_TOUCHPAD_GET_PRESSES_HELPURL="",rF.MPYTHON2_TOUCHPAD_GET_PRESSES_TOOLTIP="",rF.MPYTHON2_TOUCHPAD_GET_PRESSES_MESSAGE0="觸摸鍵 %1 按下過的次數",rF.MPYTHON2_TOUCHPAD_VALUE_HELPURL="",rF.MPYTHON2_TOUCHPAD_VALUE_TOOLTIP="",rF.MPYTHON2_TOUCHPAD_VALUE_MESSAGE0="觸摸鍵 %1 值",rF.MPYTHON2_TOUCHPAD_EVENT_MESSAGE0="當觸摸鍵 %1 被 %2 時",rF.MPYTHON2_TOUCHPAD_EVENT_HELPURL="",rF.MPYTHON2_TOUCHPAD_EVENT_TOOLTIP="",rF.MPYTHON2_TOUCHPAD_EVENT_PRESSED="觸摸",rF.MPYTHON2_TOUCHPAD_EVENT_RELEASED="釋放",rF.MPYTHON2_TOUCHPAD_THRESHOLD_MESSAGE0="設置觸摸鍵 %1 閥值為 %2",rF.MPYTHON2_TOUCHPAD_THRESHOLD_HELPURL="",rF.MPYTHON2_TOUCHPAD_THRESHOLD_TOOLTIP="",rF.BLE_UUID_HELPURL="https://mpython-ble.readthedocs.io/zh/master/api/index.html#UUID",rF.BLE_UUID_TOOLTIP="",rF.BLE_SETUP_PERIPHERAL_HELPURL="",rF.BLE_SETUP_PERIPHERAL_TOOLTIP="",rF.BLE_SETUP_PERIPHERAL_MESSAGE0="構建 BLE 外圍設備對象 %1 顯示名稱 %2 Service UUID %3",rF.BLE_ADD_CHARACTERISTIC_HELPURL="",rF.BLE_ADD_CHARACTERISTIC_TOOLTIP="",rF.BLE_ADD_CHARACTERISTIC_MESSAGE0="定義 BLE 屬性 %1 %2 Characteristic UUID %3 Read %4 Write %5 Notity %6",rF.BLE_PERIPHERAL_ADVERTISE_HELPURL="",rF.BLE_PERIPHERAL_ADVERTISE_TOOLTIP="",rF.BLE_PERIPHERAL_ADVERTISE_MESSAGE0="BLE 外圍設備 %1",rF.BLE_START_BROADCASTING="開始廣播",rF.BLE_STOP_BROADCASTING="停止廣播",rF.BLE_PERIPHERAL_ATTRUBUTE_READ_HELPURL="",rF.BLE_PERIPHERAL_ATTRUBUTE_READ_TOOLTIP="",rF.BLE_PERIPHERAL_ATTRUBUTE_READ_MESSAGE0="讀 BLE 設備的屬性 %1",rF.BLE_PERIPHERAL_ATTRUBUTE_WRITE_HELPURL="",rF.BLE_PERIPHERAL_ATTRUBUTE_WRITE_TOOLTIP="",rF.BLE_PERIPHERAL_ATTRUBUTE_WRITE_MESSAGE0="寫 BLE 設備的屬性 %1 %2 值 %3 Notify %4",rF.BLE_PERIPHERAL_DISCONNECT_HELPURL="",rF.BLE_PERIPHERAL_DISCONNECT_TOOLTIP="",rF.BLE_PERIPHERAL_DISCONNECT_MESSAGE0="BLE 外圍設備斷開連接",rF.BLE_PERIPHERAL_MAC_HELPURL="",rF.BLE_PERIPHERAL_MAC_TOOLTIP="",rF.BLE_PERIPHERAL_MAC_MESSAGE0="BLE 外圍設備 MAC地址",rF.BLE_PERIPHERAL_CONNECTION_CALLBACK_HELPURL="",rF.BLE_PERIPHERAL_CONNECTION_CALLBACK_TOOLTIP="",rF.BLE_PERIPHERAL_CONNECTION_CALLBACK_MESSAGE0="當 BLE 與中央設備建立連接時 %1 連接句柄 %2 地址類型 %3 中央設備的MAC地址 %4",rF.BLE_PERIPHERAL_WRITE_CALLBACK_HELPURL="",rF.BLE_PERIPHERAL_WRITE_CALLBACK_TOOLTIP="",rF.BLE_PERIPHERAL_WRITE_CALLBACK_MESSAGE0="當 BLE 設備的屬性值被改寫時 %1 連接句柄 %2 被寫屬性句柄 %3 寫入的數據 %4",rF.BLE_SETUP_CENTERAL_HELPURL="",rF.BLE_SETUP_CENTERAL_TOOLTIP="",rF.BLE_SETUP_CENTERAL_MESSAGE0="構建 BLE 中央設備對象 顯示名稱 %1",rF.BLE_CENTERAL_CONNECT_HELPURL="",rF.BLE_CENTERAL_CONNECT_TOOLTIP="",rF.BLE_CENTERAL_CONNECT_MESSAGE0="BLE 中央設備連接到 %1 %2",rF.BLE_CENTERAL_IS_CONNECTED_HELPURL="",rF.BLE_CENTERAL_IS_CONNECTED_TOOLTIP="",rF.BLE_CENTERAL_IS_CONNECTED_MESSAGE0="BLE 外圍設備已連接 ?",rF.BLE_CENTERAL_DEF_CHARACTERISTIC_HELPURL="",rF.BLE_CENTERAL_DEF_CHARACTERISTIC_TOOLTIP="",rF.BLE_CENTERAL_DEF_CHARACTERISTIC_MESSAGE0="設定 %1 為 已連接外圍設備 屬性對象 %2 Service UUID %3 Characteristic UUID %4",rF.BLE_CENTERAL_CHARACTERISTIC_READ_HELPURL="",rF.BLE_CENTERAL_CHARACTERISTIC_READ_TOOLTIP="",rF.BLE_CENTERAL_CHARACTERISTIC_READ_MESSAGE0="讀 已連接外圍設備的 屬性 %1 值",rF.BLE_CENTERAL_CHARACTERISTIC_WRITE_HELPURL="",rF.BLE_CENTERAL_CHARACTERISTIC_WRITE_TOOLTIP="",rF.BLE_CENTERAL_CHARACTERISTIC_WRITE_MESSAGE0="寫 已連接外圍設備的 屬性 %1 值 %2",rF.BLE_CENTERAL_NOTIFY_CALLBACK_HELPURL="",rF.BLE_CENTERAL_NOTIFY_CALLBACK_TOOLTIP="",rF.BLE_CENTERAL_NOTIFY_CALLBACK_MESSAGE0="當 已連接外圍設備發起 Notify 通知事件時 %1 屬性的值柄 %2 通知的屬性值 %3",rF.BLE_CENTERAL_CONNECTED_INFO_HELPURL="",rF.BLE_CENTERAL_CONNECTED_INFO_TOOLTIP="",rF.BLE_CENTERAL_CONNECTED_INFO_MESSAGE0="已連接的外圍設備 %1",rF.BLE_CENTERAL_CLOSE_HELPURL="",rF.BLE_CENTERAL_CLOSE_TOOLTIP="",rF.BLE_CENTERAL_CLOSE_MESSAGE0="BLE 中央設備 斷開連接",rF.BLE_INFO_NAME="藍牙名稱",rF.BLE_INFO_MAC="MAC地址",rF.BLE_INFO_RSSI="信號強度",rF.BLE_INFO_ADDRTYPE="地址類型",rF.BLE_INFO_ADVTYPE="廣播類型",rF.BLE_INFO_DATA="原始數據(元組)",rF.BLE_SETUP_UART_HELPURL="",rF.BLE_SETUP_UART_TOOLTIP="",rF.BLE_SETUP_UART_MESSAGE0="構建 BLE UART從機 顯示名稱 %1",rF.BLE_UART_IS_CONNECTED_HELPURL="",rF.BLE_UART_IS_CONNECTED_TOOLTIP="",rF.BLE_UART_IS_CONNECTED_MESSAGE0="BLE UART 已連接 ?",rF.BLE_UART_ANY_HELPURL="",rF.BLE_UART_ANY_TOOLTIP="",rF.BLE_UART_ANY_MESSAGE0="BLE UART 可讀字節數量",rF.BLE_UART_IRQ_HELPURL="",rF.BLE_UART_IRQ_TOOLTIP="",rF.BLE_UART_IRQ_MESSAGE0="當 BLE UART 接收到數據時 %1 執行 %2",rF.BLE_UART_READ_HELPURL="",rF.BLE_UART_READ_TOOLTIP="從 UART 另一端發送過來的消息",rF.BLE_UART_READ_MESSAGE0="已接收數據",rF.BLE_UART_WRITE_HELPURL="",rF.BLE_UART_WRITE_TOOLTIP="",rF.BLE_UART_WRITE_MESSAGE0="BLE UART 發送字節 %1",rF.BLE_UART_CLOSE_HELPURL="",rF.BLE_UART_CLOSE_TOOLTIP="",rF.BLE_UART_CLOSE_MESSAGE0="BLE UART 斷開連接",rF.BLE_SETUP_UART_MASTER_HELPURL="",rF.BLE_SETUP_UART_MASTER_TOOLTIP="",rF.BLE_SETUP_UART_MASTER_MESSAGE0="構建 BLE UART主機 連接到 %1 %2",rF.BLE_SETUP_HID_HELPURL="",rF.BLE_SETUP_HID_TOOLTIP="",rF.BLE_SETUP_HID_MESSAGE0="構建 BLE HID %1 對象 %2 顯示名稱 %3 電池電量 %4",rF.BLE_HID_MOUSE="鼠標",rF.BLE_HID_KEYBOARD="鍵盤",rF.BLE_HID_CONSUMER="遙控器",rF.BLE_HID_ADVERTISE_HELPURL="",rF.BLE_HID_ADVERTISE_TOOLTIP="",rF.BLE_HID_ADVERTISE_MESSAGE0="BLE HID設備 %1",rF.BLE_HID_CONNECT_EVENT_HELPURL="",rF.BLE_HID_CONNECT_EVENT_TOOLTIP="",rF.BLE_HID_CONNECT_EVENT_MESSAGE0="當 BLE HID設備 連接時",rF.BLE_HID_DISCONNECT_HELPURL="",rF.BLE_HID_DISCONNECT_TOOLTIP="",rF.BLE_HID_DISCONNECT_MESSAGE0="BLE HID設備 斷開連接",rF.BLE_HID_BATTERY_LEVEL_HELPURL="",rF.BLE_HID_BATTERY_LEVEL_TOOLTIP="",rF.BLE_HID_BATTERY_LEVEL_MESSAGE0="BLE HID設備 電池電量",rF.BLE_HID_MOUSE_BUTTONS_HELPURL="",rF.BLE_HID_MOUSE_BUTTONS_TOOLTIP="",rF.BLE_HID_MOUSE_BUTTONS_MESSAGE0="鼠標鍵 %1",rF.BLE_HID_MOUSE_CLICK_HELPURL="",rF.BLE_HID_MOUSE_CLICK_TOOLTIP="",rF.BLE_HID_MOUSE_CLICK_MESSAGE0="BLE HID 鼠標 點擊按鍵 %1",rF.BLE_HID_MOUSE_PRESS_HELPURL="",rF.BLE_HID_MOUSE_PRESS_TOOLTIP="",rF.BLE_HID_MOUSE_PRESS_MESSAGE0="BLE HID 鼠標 長按按鍵 %1",rF.BLE_HID_MOUSE_RELEASE_HELPURL="",rF.BLE_HID_MOUSE_RELEASE_TOOLTIP="",rF.BLE_HID_MOUSE_RELEASE_MESSAGE0="BLE HID 鼠標 釋放按鍵 %1",rF.BLE_HID_MOUSE_RELEASE_ALL_HELPURL="",rF.BLE_HID_MOUSE_RELEASE_ALL_TOOLTIP="",rF.BLE_HID_MOUSE_RELEASE_ALL_MESSAGE0="BLE HID 鼠標 釋放所有按鍵",rF.BLE_HID_MOUSE_MOVE_HELPURL="",rF.BLE_HID_MOUSE_MOVE_TOOLTIP="x, y - 光標移動量,範圍 ±127 。\nwheel - 滾輪,範圍 ±127 。",rF.BLE_HID_MOUSE_MOVE_MESSAGE0="BLE HID 鼠標 光標移動 %1 X軸移動量 %2 Y軸移動量 %3 滾輪 %4",rF.BLE_HID_KEYBOARD_BUTTONS_HELPURL="",rF.BLE_HID_KEYBOARD_BUTTONS_TOOLTIP="",rF.BLE_HID_KEYBOARD_BUTTONS_MESSAGE0="鍵盤按鍵 %1",rF.BLE_HID_KEYBOARD_SEND_HELPURL="",rF.BLE_HID_KEYBOARD_SEND_TOOLTIP="",rF.BLE_HID_KEYBOARD_SEND_MESSAGE0="BLE HID 鍵盤 按下按鍵 %1",rF.BLE_HID_KEYBOARD_SEND_MULTI_HELPURL="",rF.BLE_HID_KEYBOARD_SEND_MULTI_TOOLTIP="",rF.BLE_HID_KEYBOARD_SEND_MULTI_MESSAGE0="BLE HID 鍵盤 同時按下按鍵 %1 %2 %3",rF.BLE_HID_KEYBOARD_PRESS_HELPURL="",rF.BLE_HID_KEYBOARD_PRESS_TOOLTIP="",rF.BLE_HID_KEYBOARD_PRESS_MESSAGE0="BLE HID 鍵盤 長按按鍵 %1",rF.BLE_HID_KEYBOARD_RELEASE_HELPURL="",rF.BLE_HID_KEYBOARD_RELEASE_TOOLTIP="",rF.BLE_HID_KEYBOARD_RELEASE_MESSAGE0="BLE HID 鍵盤 釋放按鍵 %1",rF.BLE_HID_KEYBOARD_RELEASE_ALL_HELPURL="",rF.BLE_HID_KEYBOARD_RELEASE_ALL_TOOLTIP="",rF.BLE_HID_KEYBOARD_RELEASE_ALL_MESSAGE0="BLE HID 鍵盤 釋放所有按鍵",rF.BLE_HID_CONSUMER_BUTTONS_HELPURL="",rF.BLE_HID_CONSUMER_BUTTONS_TOOLTIP="",rF.BLE_HID_CONSUMER_BUTTONS_MESSAGE0="遙控器鍵 %1",rF.BLE_HID_CONSUMER_SEND_HELPURL="",rF.BLE_HID_CONSUMER_SEND_TOOLTIP="",rF.BLE_HID_CONSUMER_SEND_MESSAGE0="BLE HID 遙控器點擊 %1",rF.BLE_SETUP_IBEACON_HELPURL="",rF.BLE_SETUP_IBEACON_TOOLTIP="",rF.BLE_SETUP_IBEACON_MESSAGE0="構建 BLE iBeacon設備 %1 UUID %2 major %3 minor %4",rF.BLE_IBEACON_ADVERTISE_HELPURL="",rF.BLE_IBEACON_ADVERTISE_TOOLTIP="",rF.BLE_IBEACON_ADVERTISE_MESSAGE0="BLE iBeacon設備 %1",rF.MPYTHON_PARROT_GET_BATTERY_LEVEL_HELPURL="",rF.MPYTHON_PARROT_GET_BATTERY_LEVEL_TOOLTIP="返回電量,單位mV",rF.MPYTHON_PARROT_GET_BATTERY_LEVEL_MESSAGE0="拓展板的電壓值(mV)",rF.MPYTHON_BLUEBIT_IR_ENCODE_RAW_HELPURL="",rF.MPYTHON_BLUEBIT_IR_ENCODE_RAW_TOOLTIP="返回編碼後的紅外脈沖數據buff",rF.MPYTHON_BLUEBIT_IR_ENCODE_RAW_MESSAGE0="拓展板 紅外脈沖任意編碼 %1 載波頻率(Hz) %2 code總數 %3 循環碼位置 %4 code列表 %5 編碼波形數據 %6",rF.MPYTHON_BLUEBIT_IR_ENCODE_NEC_HELPURL="",rF.MPYTHON_BLUEBIT_IR_ENCODE_NEC_TOOLTIP="返回編碼後的紅外脈沖數據buff\n用戶碼:0~255\n命令碼:0~255",rF.MPYTHON_BLUEBIT_IR_ENCODE_NEC_MESSAGE0="拓展板 紅外脈沖NEC編碼 %1 用戶碼 %2 命令碼 %3",rF.MPYTHON_BLUEBIT_IR_SEND_HELPURL="",rF.MPYTHON_BLUEBIT_IR_SEND_TOOLTIP="",rF.MPYTHON_BLUEBIT_IR_SEND_MESSAGE0="拓展板 發送紅外脈沖數據 %1 %2",rF.MPYTHON_BLUEBIT_IR_SEND_REPEAT_0="只發一次",rF.MPYTHON_BLUEBIT_IR_SEND_REPEAT_1="持續發送",rF.MPYTHON_BLUEBIT_IR_STOP_SEND_HELPURL="",rF.MPYTHON_BLUEBIT_IR_STOP_SEND_TOOLTIP="當發送重復碼後,使用此函數來停止發送。",rF.MPYTHON_BLUEBIT_IR_STOP_SEND_MESSAGE0="拓展板 停止發送紅外脈沖數據",rF.MPYTHON_BLUEBIT_IR_LEARN_HELPURL="",rF.MPYTHON_BLUEBIT_IR_LEARN_TOOLTIP="學習開始後,需等待4秒,之後返回學習結果。",rF.MPYTHON_BLUEBIT_IR_LEARN_MESSAGE0="拓展板 開始紅外學習",rF.MPYTHON_BLUEBIT_IR_GET_LEARN_STATUS_HELPURL="",rF.MPYTHON_BLUEBIT_IR_GET_LEARN_STATUS_TOOLTIP="",rF.MPYTHON_BLUEBIT_IR_GET_LEARN_STATUS_MESSAGE0="拓展板 紅外學習有結果 ?",rF.MPYTHON_BLUEBIT_IR_GET_LEARN_DATA_HELPURL="",rF.MPYTHON_BLUEBIT_IR_GET_LEARN_DATA_TOOLTIP="返回學習後的“紅外編碼數據”,須在 learn 函數後使用。",rF.MPYTHON_BLUEBIT_IR_GET_LEARN_DATA_MESSAGE0="拓展板 學習到的紅外編碼數據",rF.MPYTHON_MLX90615_SET_HELPURL="",rF.MPYTHON_MLX90615_SET_MESSAGE0="MLX90615 非接觸測溫傳感器 設置發射系數%1",rF.MPYTHON_MLX90615_SET_TOOLTIP="",rF.MPYTHON_MLX90615_GET_HELPURL="",rF.MPYTHON_MLX90615_GET_MESSAGE0="MLX90615 非接觸測溫傳感器 獲取系數",rF.MPYTHON_MLX90615_GET_TOOLTIP="",rF.MPYTHON_MLX90615_THERMOMETRY_HELPURL="",rF.MPYTHON_MLX90615_THERMOMETRY_MESSAGE0="MLX90615 非接觸測溫傳感器 獲取測溫",rF.MPYTHON_MLX90615_THERMOMETRY_TOOLTIP="",rF.MPYTHON_MQ135_INIT_HELPURL="",rF.MPYTHON_MQ135_INIT_MESSAGE0="MQ135初始化 輸出引腳%1 溫度%2 ℃ 濕度%3 %",rF.MPYTHON_MQ135_INIT_TOOLTIP="MQ135上的VCC 連接擴展板的電源口 V ,GND連接擴展板的地線口 G ,AO輸出連接擴展板的引腳 P0/P1(即選引腳)\nMQ135主要用於檢測空氣中的二氧化碳、酒精、苯、氮氧化物、氨等氣體的濃度",rF.MPYTHON_MQ135_OPTIONS_MESSAGE0="MQ135 返回 %1",rF.MPYTHON_MQ135_OPTIONS_HELPURL="",rF.MPYTHON_MQ135_OPTIONS_TOOLTIP="返回探測到的二氧化碳的百萬分之一(假設只有空氣中的二氧化碳) ppm濃度",rF.MPYTHON_MQ135_GET_RZERO="校正傳感器電阻",rF.MPYTHON_MQ135_GET_CORRECTED_RZERO="校正傳感器電阻(校準溫度、濕度)",rF.MPYTHON_MQ135_GET_PPM="二氧化碳、酒精、苯、氮氧化物、氨等氣體ppm濃度",rF.MPYTHON_MQ135_GET_CORRECTED_PPM="二氧化碳、酒精、苯、氮氧化物、氨等氣體ppm濃度(校準溫度、濕度)",rF.mpython_gyroscope_get_HELPURL="",rF.mpython_gyroscope_get_MESSAGE0="%1 軸角速度",rF.mpython_gyroscope_get_TOOLTIP="v2.3版本以上掌控版適用",rF.MPYTHON_GYROSCOPE_RANGE_16_DPS="±16dps",rF.MPYTHON_GYROSCOPE_RANGE_32_DPS="±32dps",rF.MPYTHON_GYROSCOPE_RANGE_64_DPS="±64dps",rF.MPYTHON_GYROSCOPE_RANGE_128_DPS="±128dps",rF.MPYTHON_GYROSCOPE_RANGE_256_DPS="±256dps",rF.MPYTHON_GYROSCOPE_RANGE_512_DPS="±512dps",rF.MPYTHON_GYROSCOPE_RANGE_1024_DPS="±1024dps",rF.MPYTHON_GYROSCOPE_RANGE_2048_DPS="±2048dps",rF.MPYTHON_GYROSCOPE_SET_RANGE_HELPURL="",rF.MPYTHON_GYROSCOPE_SET_RANGE_TOOLTIP="設置角速度範圍,默認為 ±256dps。僅適用於掌控板2.3及以上版本",rF.MPYTHON_GYROSCOPE_SET_RANGE_MESSAGE0="設置角速度範圍為 %1",rF.MPYTHON_GYROSCOPE_SET_OFFSET_HELPURL="",rF.MPYTHON_GYROSCOPE_SET_OFFSET_TOOLTIP="校準陀螺儀角速度計的3個軸(x,y,z)的角速度值偏差。\n一般情況下無需校準,只有遇到角速度偏差較大時才要校準。\n x , y , z 為調整偏差值,可修正範圍為 ±1024dps。\n註意:v2.3版本以後適用",rF.MPYTHON_GYROSCOPE_SET_OFFSET_MESSAGE0="校準角速度值 %1 X軸偏差 %2 Y軸偏差 %3 Z軸偏差 %4";const SF=rF,lF={TEXT_IS_NUMBER_HELPURL:"",TEXT_IS_NUMBER_TOOLTIP:"",TEXT_IS_NUMBER_MESSAGE0:"%1 %2",TEXT_IS_DIGIT:"is number",TEXT_IS_ALPHA:"is letter",TEXT_IS_ALNUM:"is mix of numbers and letters",REDO:"Redo",UNDO:"Undo",DELETE_VARIABLE:'Delete "%1" variable',DELETE_VARIABLE_CONFIRMATION:'Delete %1 of the "%2" variable?',CONTROLS_REPEAT_FOREVER:"repeat forever",CONTROLS_REPEAT_FOREVER_TOOLTIP:"Do some statements forever times",TEXT_LIST_START:"create list [",TEXT_LIST_END:"]",TEXT_TUPLE_START:"create tuple (",TEXT_TUPLE_END:")",TEXT_DICT_START:"create dictionary {",TEXT_DICT_END:"}",TEXT_SET_START:"create set {",TEXT_SET_END:"}",TEXT_SET_HELPURL:"https://mpythonx.readthedocs.io/zh_CN/latest/index.html",TUPLE_CREATE_EMPTY_TITLE:"create empty tuple",DICT_CREATE_EMPTY_TITLE:"create empty dictionary",SET_CREATE_EMPTY_TITLE:"create empty sets",TUPLE_CREATE_WITH_CONTAINER_TITLE_ADD:"tuple",DICT_CREATE_WITH_CONTAINER_TITLE_ADD:"dictionary",SET_CREATE_WITH_CONTAINER_TITLE_ADD:"sets",TUPLE_CREATE_WITH_CONTAINER_TOOLTIP:"Add, remove, or rearrange sections to reconfigure this tuple block.",DICT_CREATE_WITH_CONTAINER_TOOLTIP:"Add, remove, or rearrange sections to reconfigure this dictionary block.",TUPLE_CREATE_WITH_INPUT_WITH:"create tuple with",DICT_CREATE_WITH_INPUT_WITH:"create dictionary with",SET_CREATE_WITH_INPUT_WITH:"create sets with",TUPLE_CREATE_WITH_ITEM_TOOLTIP:"Add an item to the tuple.",DICT_CREATE_WITH_ITEM_TOOLTIP:"Add an item to the dictionary.",SET_CREATE_WITH_ITEM_TOOLTIP:"Add an item to the sets.",LISTS_SORT_HELPURL:"https://github.com/google/blockly/wiki/Lists#sorting-a-list",LISTS_SORT_ORDER_ASCENDING:"ascending",LISTS_SORT_ORDER_DESCENDING:"descending",LISTS_SORT_TITLE:"sort %1 %2 %3",LISTS_SORT_TOOLTIP:"Sort a copy of a list.",LISTS_SORT_TYPE_IGNORECASE:"by letter, ignore case",LISTS_SORT_TYPE_NUMERIC:"by number",LISTS_SORT_TYPE_TEXT:"by letter",labplus_mapping_MESSAGE0:"map %1 from %2 , %3 to %4 , %5",labplus_mapping_TOOLTIP:"Map 10 of 0~100 to 0~200 and return the mapped value",labplus_mapping_HELPURL:"",MPYTHON_OPEN:"on",MPYTHON_CLOSE:"off",MPYTHONBOX_RGB_IMAGE_SHIFT_LEFT:"shift left",MPYTHONBOX_RGB_IMAGE_SHIFT_RIGHT:"shift right",MPYTHONBOX_RGB_IMAGE_SHIFT_UP:"shift up",MPYTHONBOX_RGB_IMAGE_SHIFT_DOWN:"shift down",MPYTHON_AI_LCD_SHOW_IMAGE_HEAT_GRAYSCALE:"grayscale",MPYTHON_AI_LCD_SHOW_IMAGE_HEAT_RAINBOW:"rainbow",MPYTHON_AI_LCD_SHOW_IMAGE_HEAT_NEGATE:"negate",MPYTHON_AI_LCD_SHOW_IMAGE_HEAT_INVERT:"invert",MPYTHON_AI_LCD_SHOW_IMAGE_DESCARTES_LINPOLAR:"line polar",MPYTHON_AI_LCD_SHOW_IMAGE_DESCARTES_LOGPOLAR:"log polar",MPYTHON_AI_SENSOR_PATTERN_GRAYSCALE:"grayscale",MPYTHON_AI_SENSOR_PATTERN_COLOR:"color",MPYTHON_AI_SENSOR_ENABLE_START:"start capturing image",MPYTHON_AI_SENSOR_ENABLE_STOP:"stop capturing image",MPYTHON_AI_SENSOR_LEVEL_MI_H:"horizontal mirror",MPYTHON_AI_SENSOR_LEVEL_MI_V:"vertical flip",MPYTHON_AI_SENSOR_SETS_CONTRAST:"contrast",MPYTHON_AI_SENSOR_SETS_BRIGHTNESS:"brightness",MPYTHON_AI_SENSOR_SETS_SATURATION:"saturation",MPYTHON_AI2_FACE_YOLO:"FACE YOLO",MPYTHON_AI2_CLASS_20_YOLO:"CLASS 20 YOLO",MPYTHON_AI_TRACE_COLOR_RECTANGLE:"rectangle",MPYTHON_AI_TRACE_COLOR_CROSS:"cross",TEXT_APPEND_TEXT_HELPURL:"",TEXT_APPEND_TEXT_TOOLTIP:"",TEXT_APPEND_TEXT_MESSAGE0:"%1 append text %2",MPYTHON_AUDIO_PLAY_chirp_MESSAGE0:"鸟叫",MPYTHON_AUDIO_PLAY_Pianodarkmelodies_MESSAGE0:"钢琴黑暗旋律配乐",MPYTHON_AUDIO_PLAY_miaow_MESSAGE0:"猫叫",MPYTHON_AUDIO_PLAY_bark_MESSAGE0:"小狗吠叫",MPYTHON_AUDIO_PLAY_Arichpercussivesound_MESSAGE0:"浑厚的打击音",MPYTHON_AUDIO_PLAY_Soundeffectsfortension_MESSAGE0:"紧张效果的音效",MPYTHON_AUDIO_PLAY_Camerashuttersound_MESSAGE0:"拍照快门声",MPYTHON_AUDIO_PLAY_Hundredsofflies_MESSAGE0:"数百只苍蝇",MPYTHON_AUDIO_PLAY_Cricketscry_MESSAGE0:"蟋蟀叫声",MPYTHON_AUDIO_PLAY_Shakethebassline_MESSAGE0:"摇晃低音声线",MPYTHON_AUDIO_PLAY_audiencecheeredandclapped_MESSAGE0:"听众欢呼掌声",MPYTHON_AUDIO_PLAY_Cruiseshipwhistle_MESSAGE0:"邮轮汽笛",MPYTHON_AUDIO_PLAY_Moderntelephoneringtone_MESSAGE0:"现代电话铃声",MPYTHON_AUDIO_PLAY_pullingtradish_MESSAGE0:"拔萝卜",MPYTHON_AUDIO_PLAY_twotigers_MESSAGE0:"两只老虎",MPYTHON_AUDIO_SET_VOLUME_HELPURL:"",MPYTHON_AUDIO_SET_VOLUME_MESSAGE0:"set Audio volume as %1",MPYTHON_AUDIO_SET_VOLUME_TOOLTIP:"",MPYTHON_BLUEBIT_GET_MOTORPEED_HELPURL:"",MPYTHON_BLUEBIT_GET_MOTORPEED_MESSAGE0:"expansion-board speed of DC motor %1",MPYTHON_BLUEBIT_GET_MOTORPEED_TOOLTIP:"",MPYTHON_M1M2_LED_ON_HELPURL:"",MPYTHON_M1M2_LED_ON_MESSAGE0:"expansion-board set led at %1 brightness %2",MPYTHON_M1M2_LED_ON_TOOLTIP:"",MPYTHON_M1M2_LED_OFF_HELPURL:"",MPYTHON_M1M2_LED_OFF_MESSAGE0:"expansion-board turn off led at %1",MPYTHON_M1M2_LED_OFF_TOOLTIP:"",MPYTHON_BLUEBIT_HELPURL:"http://wiki.labplus.cn/index.php?title=Bluebit",MPYTHON_BLUEBIT_NEWRFID_READ_MESSAGE0:"I2C RFID Read wallet data",MPYTHON_BLUEBIT_NEWRFID_READ_TOOLTIP:"Read block data, length 16 bytes",MPYTHON_BLUEBIT_NEWRFID_READ_HELPURL:"https://mpython.readthedocs.io/zh/master/library/mPython/bluebit.html#rfid",MPYTHON_BLUEBIT_NEWRFID_WRITE_MESSAGE0:"I2C RFID Write wallet data%1",MPYTHON_BLUEBIT_NEWRFID_WRITE_TOOLTIP:"Write block data, length 16 bytes",MPYTHON_BLUEBIT_NEWRFID_WRITE_HELPURL:"https://mpython.readthedocs.io/zh/master/library/mPython/bluebit.html#rfid",MPYTHON_BLUEBIT_NEWRFID_MONEY_MESSAGE0:"I2C RFID wallet%1 money%2",MPYTHON_BLUEBIT_NEWRFID_MONEY_TOOLTIP:"",MPYTHON_BLUEBIT_NEWRFID_MONEY_HELPURL:"https://mpython.readthedocs.io/zh/master/library/mPython/bluebit.html#rfid",MPYTHON_BLUEBIT_NEWRFID_INC_MESSAGE0:"Recharge",MPYTHON_BLUEBIT_NEWRFID_DEC_MESSAGE0:"Deduction fee",MPYTHON_BLUEBIT_NEWRFID_GET_MESSAGE0:"I2C RFID Get wallet balance",MPYTHON_BLUEBIT_NEWRFID_GET_TOOLTIP:"",MPYTHON_BLUEBIT_NEWRFID_GET_HELPURL:"https://mpython.readthedocs.io/zh/master/library/mPython/bluebit.html#rfid",MPYTHON_BLUEBIT_NEWRFID_GETSERIAL_MESSAGE0:"I2C RFID Get serial number",MPYTHON_BLUEBIT_NEWRFID_GETSERIAL_TOOLTIP:"",MPYTHON_BLUEBIT_NEWRFID_GETSERIAL_HELPURL:"https://mpython.readthedocs.io/zh/master/library/mPython/bluebit.html#rfid",MPYTHON_BLUEBIT_NEWRFID_SET_MESSAGE0:"I2C RFID Initialize Wallet",MPYTHON_BLUEBIT_NEWRFID_SET_TOOLTIP:"",MPYTHON_BLUEBIT_NEWRFID_SET_HELPURL:"https://mpython.readthedocs.io/zh/master/library/mPython/bluebit.html#rfid",MPYTHON_BLUEBIT_NEWRFID_SCAN_MESSAGE0:"I2C RFID scanning",MPYTHON_BLUEBIT_NEWRFID_SCAN_TOOLTIP:"",MPYTHON_BLUEBIT_NEWRFID_SCAN_HELPURL:"https://mpython.readthedocs.io/zh/master/library/mPython/bluebit.html#rfid",MPYTHON_BLUEBIT_ULTRASONIC_MESSAGE0:"I2C ultrasonic value",MPYTHON_BLUEBIT_ULTRASONIC_TOOLTIP:"",MPYTHON_BLUEBIT_ULTRASONIC_HELPURL:"http://wiki.labplus.cn/index.php?title=Bluebit",MPYTHON_BLUEBIT_READ_DIGITAL_MESSAGE0:"%1 on pin %2 be triggered",MPYTHON_BLUEBIT_READ_DIGITAL_TOOLTIP:"",MPYTHON_BLUEBIT_READ_DIGITAL_HELPURL:"http://wiki.labplus.cn/index.php?title=Bluebit",MPYTHON_BLUEBIT_READ_ANALOG_MESSAGE0:"%1 on pin %2 analog value",MPYTHON_BLUEBIT_READ_ANALOG_TOOLTIP:"",MPYTHON_BLUEBIT_READ_ANALOG_HELPURL:"http://wiki.labplus.cn/index.php?title=Bluebit",MPYTHON_BLUEBIT_SET_ANALOG_MESSAGE0:"set LED on pin %2 value as %1",MPYTHON_BLUEBIT_SET_ANALOG_TOOLTIP:"",MPYTHON_BLUEBIT_SET_ANALOG_HELPURL:"http://wiki.labplus.cn/index.php?title=Bluebit",MPYTHON_BLUEBIT_LINE_FOLLOWER_MESSAGE0:"tracking sensor on pin %1 detected as black",MPYTHON_BLUEBIT_LINE_FOLLOWER_TOOLTIP:"",MPYTHON_BLUEBIT_LINE_FOLLOWER_HELPURL:"http://wiki.labplus.cn/index.php?title=Bluebit",MPYTHON_BLUEBIT_SET_TRUE_HELPURL:"http://wiki.labplus.cn/index.php?title=Bluebit",MPYTHON_BLUEBIT_SET_TRUE_MESSAGE0:"turn on %1 on pin %2",MPYTHON_BLUEBIT_SET_TRUE_TOOLTIP:"",MPYTHON_BLUEBIT_SET_FALSE_HELPURL:"http://wiki.labplus.cn/index.php?title=Bluebit",MPYTHON_BLUEBIT_SET_FALSE_MESSAGE0:"turn off %1 on pin %2",MPYTHON_BLUEBIT_SET_FALSE_TOOLTIP:"",MPYTHON_BLUEBIT_VOICE_RECORD_ON_HELPURL:"http://wiki.labplus.cn/index.php?title=%E8%AF%AD%E9%9F%B3%E5%BD%95%E6%94%BE",MPYTHON_BLUEBIT_VOICE_RECORD_ON_TOOLTIP:"",MPYTHON_BLUEBIT_VOICE_RECORD_ON_MESSAGE0:"turn on recorder %1 %2 REC %3 PLAY %4",MPYTHON_BLUEBIT_VOICE_RECORD_OFF_HELPURL:"http://wiki.labplus.cn/index.php?title=%E8%AF%AD%E9%9F%B3%E5%BD%95%E6%94%BE",MPYTHON_BLUEBIT_VOICE_RECORD_OFF_TOOLTIP:"",MPYTHON_BLUEBIT_VOICE_RECORD_OFF_MESSAGE0:"turn off recorder %1 REC %2 PLAY %3",MPYTHON_BLUEBIT_VOICE_RECORD_PLAY:"PLAY",MPYTHON_BLUEBIT_VOICE_RECORD_REC:"REC",STOP:("STOP","STOP"),MPYTHON_BLUEBIT_IR_RECEIVE:"infrared detection",MPYTHON_BLUEBIT_SOUND:"microphone",MPYTHON_BLUEBIT_LINE_FOLLOWER:"tracking sensor",MPYTHON_BLUEBIT_VIBRATION:"vibration sensor",MPYTHON_BLUEBIT_RFID:"RF card",MPYTHON_BLUEBIT_FINGERPRINT_SCANNER:"fingerprint scanner",MPYTHON_BLUEBIT_PIR:"PIR sensor",MPYTHON_BLUEBIT_MAGNETIC:"magnetic switch",MPYTHON_BLUEBIT_BUTTON:"button",MPYTHON_BLUEBIT_RELAY:"relay",MPYTHON_BLUEBIT_LIMIT_SWITCH:"limit switch",MPYTHON_BLUEBIT_FAN:"fan",MPYTHON_BLUEBIT_LASER:"laser",MPYTHON_BLUEBIT_NTC_TEMP:"NTC temperature",MPYTHON_BLUEBIT_WATER:"water level",MPYTHON_BLUEBIT_SOIL_MOISTURE:"soil moisture",MPYTHON_BLUEBIT_ROTATE_DIMMER:"rotate dimmer",MPYTHON_BLUEBIT_LINEAR_SLIDING_POTENTIOMETER:"sliding potentiometer",MPYTHON_BLUEBIT_ANALOG_LIGHT:"analog light",MPYTHON_BLUEBIT_LM35_TEMP:"LM35 temperature",MPYTHON_BLUEBIT_SMOKE:"smoke",MPYTHON_BLUEBIT_MOTOR_ON_CLOCKWISE:"corotation",MPYTHON_BLUEBIT_MOTOR_ON_ANTICLOCKWISE:"reverse",MPYTHON_BLUEBIT_READ_SOIL_HELPURL:"",MPYTHON_BLUEBIT_READ_SOIL_TOOLTIP:"New soil moisture",MPYTHON_BLUEBIT_READ_SOIL_MESSAGE0:"soil moisture(new)%1",MPYTHON_BLUEBIT_MOTOR_ON_HELPURL:"http://wiki.labplus.cn/index.php?title=%E7%94%B5%E6%9C%BA%E9%A9%B1%E5%8A%A8",MPYTHON_BLUEBIT_MOTOR_ON_TOOLTIP:"speed:Map -100~100 to -1023~1023",MPYTHON_BLUEBIT_MOTOR_ON_MESSAGE0:"turn on DC motor %1 speed %2 pin AIN1 %3 pin AIN2 %4",MPYTHON_BLUEBIT_MOTOR_OFF_HELPURL:"http://wiki.labplus.cn/index.php?title=%E7%94%B5%E6%9C%BA%E9%A9%B1%E5%8A%A8",MPYTHON_BLUEBIT_MOTOR_OFF_TOOLTIP:"",MPYTHON_BLUEBIT_MOTOR_OFF_MESSAGE0:"stop DC motor %1 pin AIN1 %2 pin AIN2 %3",MPYTHON_BLUEBIT_SET_FAN_HELPURL:"",MPYTHON_BLUEBIT_SET_FAN_TOOLTIP:"",MPYTHON_BLUEBIT_SET_FAN_MESSAGE0:"expansion-board turn on the fan %1",MPYTHON_LEFT:"LEFT",MPYTHON_RIGHT:"RIGHT",MPYTHON_BLUEBIT_SET_FAN_OFF_HELPURL:"",MPYTHON_BLUEBIT_SET_FAN_OFF_TOOLTIP:"",MPYTHON_BLUEBIT_SET_FAN_OFF_MESSAGE0:"expansion-board turn off the fan %1",MPYTHON_BLUEBIT_4BUTTON_HELPURL:"http://wiki.MPYTHON_BLUEBIT.cn/index.php?title=%E5%9B%9B%E6%8C%89%E9%94%AE",MPYTHON_BLUEBIT_4BUTTON_TOOLTIP:"",MPYTHON_BLUEBIT_4BUTTON_MESSAGE0:"Navigation button module pin %1 button %2 is pressed",BLUE:"A",GREEN:"B",RED:"C",YELLOW:"D",MPYTHON_BLUEBIT_JOYSTICK_HELPURL:"",MPYTHON_BLUEBIT_JOYSTICK_TOOLTIP:"",MPYTHON_BLUEBIT_JOYSTICK_MESSAGE0:"Thumb joystick pin A0 %1 pin A1 %2 %3 axis",MPYTHON_BLUEBIT_MOTOR_ON_I2C_HELPURL:"",MPYTHON_BLUEBIT_MOTOR_ON_I2C_TOOLTIP:"speed: 0~100",MPYTHON_BLUEBIT_MOTOR_ON_I2C_MESSAGE0:"expansion-board turn on DC motor %1 %2 speed %3",MPYTHON_BLUEBIT_BLUEBIT_MOTOR_OFF_I2C_HELPURL:"",MPYTHON_BLUEBIT_MOTOR_OFF_I2C_TOOLTIP:"speed: 0~100",MPYTHON_BLUEBIT_MOTOR_OFF_I2C_MESSAGE0:"expansion-board stop DC motor",MPYTHON_BLUEBIT_CODED_THREE_MOTOR_ON_I2C_HELPURL:"",MPYTHON_BLUEBIT_CODED_THREE_MOTOR_ON_I2C_TOOLTIP:"speed: -1023~1023",MPYTHON_BLUEBIT_CODED_THREE_MOTOR_ON_I2C_MESSAGE0:"Coded motor mode%1 dial code%2 M1 speed%3 M2 speed%4",MPYTHON_BLUEBIT_CODED_STOP_MOTOR_ON_I2C_HELPURL:"",MPYTHON_BLUEBIT_CODED_STOP_MOTOR_ON_I2C_TOOLTIP:"Stop Coding Motor Rotation",MPYTHON_BLUEBIT_CODED_STOP_MOTOR_ON_I2C_MESSAGE0:"Stop Coding Motor Rotation %1",MPYTHON_BLUEBIT_INIT_MIDI_HELPURL:"",MPYTHON_BLUEBIT_INIT_MIDI_MESSAGE0:"Initialize MIDI TX pin %1",MPYTHON_BLUEBIT_INIT_MIDI_TOOLTIP:"",MPYTHON_BLUEBIT_MIDI_VOLUME_HELPURL:"",MPYTHON_BLUEBIT_MIDI_VOLUME_MESSAGE0:"Set MIDI volume as %1",MPYTHON_BLUEBIT_MIDI_VOLUME_TOOLTIP:"volume range:0~127",MIDI_PIANO:"ACOUSTIC GRAND PIANO",MIDI_BRIGHTACOUSTICPIANO:"BRIGHT ACOUSTIC PIANO",MIDI_ELECTRICGRANDPIANO:"ELECTRIC GRAND PIANO",MIDI_HARPSICHORD:"HARPSICHORD",MIDI_CELESTA:"CELESTA",MIDI_GLOCKENSPIEL:"GLOCKENSPIEL",MIDI_MUSICALBOX:"MUSICAL BOX",MIDI_MARIMBA:"MARIMBA",MIDI_XYLOPHONE:"XYLOPHONE",MIDI_TUBULARBELL:"TUBULAR BELL",MIDI_DULCIMER:"DULCIMER",MIDI_VIBRAPHONE:"VIBRAPHONE",MIDI_ORGAN:"DRAWBAR ORGAN",MIDI_ACOUSTIC_GUITAR:"ACOUSTIC GUITAR",MIDI_ELECTRIC_GUITAR:"ELECTRIC GUITAR",MIDI_ACOUSTIC_BASS:"ACOUSTIC BASS",MIDI_STRING_ENSEMBLE:"STRING ENSEMBLE",MIDI_VIOLIN:"VIOLIN",MIDI_TRUMPET:"TRUMPET",MIDI_SAX:"SAX",MIDI_STEEL_DRUMS:"STEEL DRUMS",MIDI_LEAD:"LEAD",MIDI_PAD:"PAD",MPYTHON_BLUEBIT_MIDI_INSTRUMENT_HELPURL:"",MPYTHON_BLUEBIT_MIDI_INSTRUMENT_MESSAGE0:"Set MIDI instrument as %1",MPYTHON_BLUEBIT_MIDI_INSTRUMENT_TOOLTIP:"",MPYTHON_BLUEBIT_MIDI_PLAY_HELPURL:"",MPYTHON_BLUEBIT_MIDI_PLAY_MESSAGE0:"MIDI %1 tone %2",MPYTHON_BLUEBIT_MIDI_PLAY_TOOLTIP:"",MPYTHON_BLUEBIT_MATRIX_BRIGHTNESS_HELPURL:"",MPYTHON_BLUEBIT_MATRIX_BRIGHTNESS_MESSAGE0:"Set matrix`s brightness level as %1",MPYTHON_BLUEBIT_MATRIX_BRIGHTNESS_TOOLTIP:"brightness level:0~15",MPYTHON_BLUEBIT_MATRIX_FILL_HELPURL:"",MPYTHON_BLUEBIT_MATRIX_FILL_MESSAGE0:"Set matrix %1",MPYTHON_BLUEBIT_MATRIX_FILL_TOOLTIP:"",MPYTHON_BLUEBIT_MATRIX_BITMAP_HELPURL:"",MPYTHON_BLUEBIT_MATRIX_BITMAP_MESSAGE0:"Set matrix %1 %2 %3 %4 %5 %6 %7 %8 %9 %10 %11 %12 %13 %14 %15 %16 %17 %18 %19 %20 %21 %22 %23 %24 %25 %26 %27 %28 %29 %30 %31 %32 %33 %34 %35 %36 %37 %38 %39 %40 %41 %42 %43 %44 %45 %46 %47 %48 %49 %50 %51 %52 %53 %54 %55 %56 %57 %58 %59 %60 %61 %62 %63 %64 %65 %66 %67 %68 %69 %70 %71 %72",MPYTHON_BLUEBIT_MATRIX_BITMAP_TOOLTIP:"",MPYTHON_BLUEBIT_MATRIX_SHOW_HELPURL:"",MPYTHON_BLUEBIT_MATRIX_SHOW_MESSAGE0:"The setting of matrix takes effect",MPYTHON_BLUEBIT_MATRIX_SHOW_TOOLTIP:"",MPYTHON_BLUEBIT_MP3_VOLUME_HELPURL:"",MPYTHON_BLUEBIT_MP3_VOLUME_MESSAGE0:"Set MP3 volume as %1",MPYTHON_BLUEBIT_MP3_VOLUME_TOOLTIP:"volume:0~30",MPYTHON_BLUEBIT_MP3_INIT_HELPURL:"",MPYTHON_BLUEBIT_MP3_INIT_MESSAGE0:"Init MP3 TX pin %1",MPYTHON_BLUEBIT_MP3_INIT_TOOLTIP:"The tx pin of the mPython board is connected to the RXI pin of the music module",MPYTHON_BLUEBIT_MP3_VOLUME_PLUS_HELPURL:"",MPYTHON_BLUEBIT_MP3_VOLUME_PLUS_MESSAGE0:"MP3 volume %1",MPYTHON_BLUEBIT_MP3_VOLUME_PLUS_TOOLTIP:"",MPYTHON_PLUS_1:"plus 1",MPYTHON_MINUS_1:"minus 1",MPYTHON_BLUEBIT_MP3_PLAY_SONG_HELPURL:"",MPYTHON_BLUEBIT_MP3_PLAY_SONG_MESSAGE0:"Mp3 plays song with order %1",MPYTHON_BLUEBIT_MP3_PLAY_SONG_TOOLTIP:"",PAUSE:"PAUSE",PLAY:"GO ON",PLAYNEXT:"NEXT SONG",PLAYPREV:"LAST SONG",MPYTHON_BLUEBIT_MP3_CMD_HELPURL:"",MPYTHON_BLUEBIT_MP3_CMD_MESSAGE0:"MP3 play %1",MPYTHON_BLUEBIT_MP3_CMD_TOOLTIP:"",LABPLUS_USB_SWITCH_ON:"ON",LABPLUS_USB_SWITCH_OFF:"OFF",MPYTHON_BLUEBIT_MP3_SINGLELOOP_HELPURL:"",MPYTHON_BLUEBIT_MP3_SINGLELOOP_MESSAGE0:"MP3 single-loop mode %1",MPYTHON_BLUEBIT_MP3_SINGLELOOP_TOOLTIP:"",MPYTHON_BLUEBIT_EXTIO_IOMODE_HELPURL:"",MPYTHON_BLUEBIT_EXTIO_IOMODE_MESSAGE0:"Set EXT IO module`s IO %2 as %1",MPYTHON_BLUEBIT_EXTIO_IOMODE_TOOLTIP:"IO: 0~7",LABPLUS_COMPITITION_INIT_EXTENDED_PINS_OUTPUT:"OUTPUT",LABPLUS_COMPITITION_INIT_EXTENDED_PINS_INPUT:"INPUT",MPYTHON_BLUEBIT_EXTIO_READIO_HELPURL:"",MPYTHON_BLUEBIT_EXTIO_READIO_MESSAGE0:"Value of EXT IO at IO %1",MPYTHON_BLUEBIT_EXTIO_READIO_TOOLTIP:"",MPYTHON_BLUEBIT_EXTIO_WRITEIO_HELPURL:"",MPYTHON_BLUEBIT_EXTIO_WRITEIO_MESSAGE0:"Set EXT IO module`s IO %2 as %1",MPYTHON_BLUEBIT_EXTIO_WRITEIO_TOOLTIP:"",MPYTHON_LCD_OBJECT_HELPURL:"",MPYTHON_LCD_OBJECT_MESSAGE0:"initialise LCD1602",MPYTHON_LCD_OBJECT_TOOLTIP:"",MPYTHON_LCD_PRINT_HELPURL:"",MPYTHON_LCD_PRINT_MESSAGE0:"LCD1602 display %1",MPYTHON_LCD_PRINT_TOOLTIP:"",MPYTHON_LCD_HOME_HELPURL:"",MPYTHON_LCD_HOME_MESSAGE0:"LCD1602 cursor returns to the origin",MPYTHON_LCD_HOME_TOOLTIP:"",MPYTHON_LCD_CURSOR_HELPURL:"",MPYTHON_LCD_CURSOR_MESSAGE0:"LCD1602 cursor %1",MPYTHON_LCD_CURSOR_TOOLTIP:"",MPYTHON_LCD_SET_CURSOR_HELPURL:"",MPYTHON_LCD_SET_CURSOR_MESSAGE0:"LCD1602 starts with row %2 column %1",MPYTHON_LCD_SET_CURSOR_TOOLTIP:"Row and column count from 0",MPYTHON_LCD_CLEAR_HELPURL:"",MPYTHON_LCD_CLEAR_MESSAGE0:"LCD1602 clear",MPYTHON_LCD_CLEAR_TOOLTIP:"",MPYTHON_LCD_CURSOR_BLINK:"BLINK",MPYTHON_LCD_CURSOR_NO_BLINK:"NO BLINK",MPYTHON_LEFT_TO_RIGHT:"LEFT TO RIGHT",MPYTHON_RIGHT_TO_LEFT:"RIGHT TO LEFT",MPYTHON_LCD_TEXT_DIRECTION_HELPURL:"",MPYTHON_LCD_TEXT_DIRECTION_MESSAGE0:"LCD1602 text direction %1",MPYTHON_LCD_TEXT_DIRECTION_TOOLTIP:"",MPYTHON_LCD_MOVE_HELPURL:"",MPYTHON_LCD_MOVE_MESSAGE0:"LCD1602 scrolls a column to %1",MPYTHON_LCD_MOVE_TOOLTIP:"",MPYTHON_IR_TRANS_HELPURL:"",MPYTHON_IR_TRANS_MESSAGE0:"infrared transmission of string with one byte length %1 tx pin %2",MPYTHON_IR_TRANS_TOOLTIP:"string with one byte length: 'A', 'b', '1' and so on",OUTPUT_PIN_HELPURL:"",OUTPUT_PIN_MESSAGE0:"%1",OUTPUT_PIN_TOOLTIP:"",INPUT_PIN_HELPURL:"",INPUT_PIN_MESSAGE0:"%1",INPUT_PIN_TOOLTIP:"",READ_ANALOG_PIN_HELPURL:"",READ_ANALOG_PIN_MESSAGE0:"%1",READ_ANALOG_PIN_TOOLTIP:"",SET_DIGITAL_HELPURL:"",SET_DIGITAL_MESSAGE0:"%1",SET_DIGITAL_TOOLTIP:"",SET_ANALOG_HELPURL:"",SET_ANALOG_MESSAGE0:"%1",SET_ANALOG_TOOLTIP:"",ALL_PIN_HELPURL:"",ALL_PIN_MESSAGE0:"%1",ALL_PIN_TOOLTIP:"",PWM_PIN_HELPURL:"",PWM_PIN_MESSAGE0:"%1",PWM_PIN_TOOLTIP:"",DH11_HUM_TEM_PIN_HELPURL:"",DH11_HUM_TEM_PIN_MESSAGE0:"%1",DH11_HUM_TEM_PIN_TOOLTIP:"",UART_TX_PIN_HELPURL:"",UART_TX_PIN_MESSAGE0:"%1",UART_TX_PIN_TOOLTIP:"",UART_RX_PIN_HELPURL:"",UART_RX_PIN_MESSAGE0:"%1",UART_RX_PIN_TOOLTIP:"",I2C_PIN_HELPURL:"",I2C_PIN_MESSAGE0:"%1",I2C_PIN_TOOLTIP:"",MQTT_COMMON_SETUP_HELPURL:"https://mpython.readthedocs.io/zh/master/library/mPython/umqtt.simple.html?highlight=mqtt#MQTTClient",MQTT_COMMON_SETUP_MESSAGE0:"MQTT %1 client_id %2 server %3 port %4 user %5 password %6 keepalive %7",MQTT_COMMON_SETUP_TOOLTIP:"",MQTT_TENCENT_SETUP_HELPURL:"https://mpython.readthedocs.io/zh/master/library/mPython/umqtt.simple.html?highlight=mqtt#MQTTClient",MQTT_TENCENT_SETUP_MESSAGE0:"MQTT Tencent IoT %1 Server %2 Port %3 AppId %4 Device %5 -- Output -- %6 ReportTopic %7 ControlTopic %8",MQTT_TENCENT_SETUP_TOOLTIP:"",MQTT_TENCENT_SETUPS_HELPURL:"https://mpython.readthedocs.io/zh/master/library/mPython/umqtt.simple.html?highlight=mqtt#MQTTClient",MQTT_TENCENT_SETUPS_MESSAGE0:"MQTT Tencent IoT %1 Server %2 Port %3 AppId %4 Device %5 -- Output -- %6 ReportTopic %7 ControlTopic %8",MQTT_TENCENT_SETUPS_TOOLTIP:"",MQTT_SETUP_HELPURL:"https://mpython.readthedocs.io/zh/master/tutorials/advance/iot/mqtt.html#id2",MQTT_SETUP_MESSAGE0:"MQTT-Easy IoT %1 Server %2 Client ID %5 Iot_id %3 Iot_pwd %4",MQTT_SETUP_TOOLTIP:"",MQTT_CONNECT_HELPURL:"https://mpython.readthedocs.io/zh/master/tutorials/advance/iot/mqtt.html#id2",MQTT_CONNECT_MESSAGE0:"connect to MQTT",MQTT_CONNECT_TOOLTIP:"",MQTT_PUBLISH_HELPURL:"https://mpython.readthedocs.io/zh/master/tutorials/advance/iot/mqtt.html#id2",MQTT_PUBLISH_MESSAGE0:"publish %1 to topic %2",MQTT_PUBLISH_TOOLTIP:"",MQTT_REC_FROM_TOPIC_HELPURL:"https://mpython.readthedocs.io/zh/master/tutorials/advance/iot/mqtt.html#id2",MQTT_REC_FROM_TOPIC_MESSAGE0:"when recieved %2 from topic %1",MQTT_REC_FROM_TOPIC_TOOLTIP:"",MQTT_RECEIVE_HELPURL:"https://mpython.readthedocs.io/zh/master/tutorials/advance/iot/mqtt.html#id2",MQTT_RECEIVE_MESSAGE0:"when recieved %2 from topic %1",MQTT_RECEIVE_TOOLTIP:'Parameter "topic" only accepts variable',MQTT_RECEIVED_MESSAGE0:"when recieved message from topic %1",MQTT_MESSAGE_HELPURL:"https://mpython.readthedocs.io/zh/master/tutorials/advance/iot/mqtt.html#id2",MQTT_MESSAGE_MESSAGE0:"message from MQTT",MQTT_MESSAGE_TOOLTIP:"",MQTT_WAIT_MSG_HELPURL:"https://mpython.readthedocs.io/zh/master/tutorials/advance/iot/mqtt.html#id2",MQTT_WAIT_MSG_MESSAGE0:"wait for topic message in %1 mode",MQTT_WAIT_MSG_TOOLTIP:"It is recommended to run in 'while True'",MQTT_DISCONNECT_HELPURL:"https://mpython.readthedocs.io/zh/master/tutorials/advance/iot/mqtt.html#id2",MQTT_DISCONNECT_MESSAGE0:"disconnect from MQTT",MQTT_DISCONNECT_TOOLTIP:"",MQTT_LAST_WILL_HELPURL:"https://mpython.readthedocs.io/zh/master/library/mPython/umqtt.simple.html?highlight=mqtt#MQTTClient.set_last_will",MQTT_LAST_WILL_MESSAGE0:"set MQTT topic %2 last will message as %1",MQTT_LAST_WILL_TOOLTIP:'Set the MQTT "last will" message. Should be called before connect().',MPYTHON_SIOT_CONNECT_HELPURL:"",MPYTHON_SIOT_CONNECT_TOOLTIP:"",MPYTHON_SIOT_CONNECT_MESSAGE0:"SIoT setting %1 client_id %2 server %3 user %4 password %5",MPYTHON_SIOT_ISCONNECTED_HELPURL:"",MPYTHON_SIOT_ISCONNECTED_TOOLTIP:"",MPYTHON_SIOT_ISCONNECTED_MESSAGE0:"SIoT is connected ?",MPYTHON_SIOT_SUBSCRIBE_HELPURL:"",MPYTHON_SIOT_SUBSCRIBE_TOOLTIP:"",MPYTHON_SIOT_SUBSCRIBE_MESSAGE0:"SIoT subscribe",MPYTHON_SIOT_SUBSCRIBE_EMPTY_TITLE:"click the left star to subscribe SIoT topic",MPYTHON_SIOT_SUBSCRIBE_INPUT_WITH:"subscribe SIoT Topic1",MPYTHON_SIOT_SUBSCRIBE_ITEM_TITLE:"Topic",MPYTHON_SIOT_SUBSCRIBE_ITEM_TOOLTIP:"",MPYTHON_SIOT_SUBSCRIBE_CONTAINER_TITLE_ADD:"add up to 5 topics",MPYTHON_SIOT_SUBSCRIBE_CONTAINER_TOOLTIP:"",MPYTHON_SIOT_DISCONNECT_HELPURL:"",MPYTHON_SIOT_DISCONNECT_TOOLTIP:"",MPYTHON_SIOT_DISCONNECT_MESSAGE0:"SIoT disconnect",MPYTHON_SIOT_MESSAGE_HELPURL:"",MPYTHON_SIOT_MESSAGE_TOOLTIP:"",MPYTHON_SIOT_MESSAGE_MESSAGE0:"SIoT message",MPYTHON_SIOT_TOPIC1:"Topic1",MPYTHON_SIOT_TOPIC2:"Topic2",MPYTHON_SIOT_TOPIC3:"Topic3",MPYTHON_SIOT_TOPIC4:"Topic4",MPYTHON_SIOT_TOPIC5:"Topic5",MPYTHON_SIOT_PUBLISH_HELPURL:"",MPYTHON_SIOT_PUBLISH_TOOLTIP:"",MPYTHON_SIOT_PUBLISH_MESSAGE0:"SIoT publish message %1 to %2",MPYTHON_SIOT_PUBLISH_TO_MESSAGE0:"SIoT publish message %1 to topic %2",MPYTHON_SIOT_RECEIVE_HELPURL:"",MPYTHON_SIOT_RECEIVE_TOOLTIP:"",MPYTHON_SIOT_RECEIVE_MESSAGE0:"when SIoT received message from %1 %2 do %3",MPYTHON_SIOT_RECEIVE_FROM_MESSAGE0:"when SIoT received message from topic %1 %2 do %3",MPYTHON_IR_RECV_HELPURL:"",MPYTHON_IR_RECV_MESSAGE0:"infrared received int at rx pin %1",MPYTHON_IR_RECV_TOOLTIP:"The first time the receive is always empty",MPYTHON_BLUEBIT_OLED_PRINT_HELPURL:"",MPYTHON_BLUEBIT_OLED_PRINT_MESSAGE0:"bluebit OLED show %1 at x %2 y %3",MPYTHON_BLUEBIT_OLED_PRINT_TOOLTIP:"",MPYTHON_BLUEBIT_OLED_INIT_HELPURL:"",MPYTHON_BLUEBIT_OLED_INIT_MESSAGE0:"bluebit OLED init at tx %1 rx %2",MPYTHON_BLUEBIT_OLED_INIT_TOOLTIP:"",MPYTHON_BLUEBIT_OLED_CLEAR_HELPURL:"",MPYTHON_BLUEBIT_OLED_CLEAR_MESSAGE0:"bluebit OLED clear",MPYTHON_BLUEBIT_OLED_CLEAR_TOOLTIP:"",MPYTHON_BLUEBIT_OLED_BMP_HELPURL:"",MPYTHON_BLUEBIT_OLED_BMP_MESSAGE0:"bluebit OLED show image x %1 y %2 width %3 height %4 with hex image data %5",MPYTHON_BLUEBIT_OLED_BMP_TOOLTIP:"",MICROBIT_GESTURE_SHAKE:"shake",MICROBIT_GESTURE_UP:"up",MICROBIT_GESTURE_DOWN:"down",MICROBIT_GESTURE_LEFT:"left",MICROBIT_GESTURE_RIGHT:"Right",MICROBIT_GESTURE_FACE_UP:"upward",MICROBIT_GESTURE_FACE_DOWN:"down",MICROBIT_GESTURE_FREEFAIL:"free fall",MICROBIT_IMAGE_HEART:"heart",MICROBIT_IMAGE_HEART_SMALL:"heart (small)",MICROBIT_IMAGE_HAPPY:"Happy",MICROBIT_IMAGE_SMILE:"Smile Face",MICROBIT_IMAGE_SAD:"sad",MICROBIT_IMAGE_CONFUSED:"confusion",MICROBIT_IMAGE_ANGRY:"angry",MICROBIT_IMAGE_ASLEEP:"Sleep",MICROBIT_IMAGE_SUPRISED:"surprise",MICROBIT_IMAGE_SILLY:"Stupid",MICROBIT_IMAGE_FABULOUS:"Wonderful",MICROBIT_IMAGE_MEH:"Boredom",MICROBIT_IMAGE_YES:"Yes",MICROBIT_IMAGE_NO:"No",MICROBIT_IMAGE_CLOCK12:"12 clock",MICROBIT_IMAGE_CLOCK11:"11 clock",MICROBIT_IMAGE_CLOCK10:"10 clock",MICROBIT_IMAGE_CLOCK9:"9 clock",MICROBIT_IMAGE_CLOCK8:"8 clock",MICROBIT_IMAGE_CLOCK7:"7 clock",MICROBIT_IMAGE_CLOCK6:"6 clock",MICROBIT_IMAGE_CLOCK5:"5 clock",MICROBIT_IMAGE_CLOCK4:"4 clock",MICROBIT_IMAGE_CLOCK3:"3 clock",MICROBIT_IMAGE_CLOCK2:"2 clock",MICROBIT_IMAGE_CLOCK1:"1 clock",MICROBIT_IMAGE_ARROW_N:"Arrow-North",MICROBIT_IMAGE_ARROW_NE:"Arrow-Northeast",MICROBIT_IMAGE_ARROW_E:"arrow-east",MICROBIT_IMAGE_ARROW_SE:"arrow-southeast",MICROBIT_IMAGE_ARROW_S:"Arrow-South",MICROBIT_IMAGE_ARROW_SW:"arrow-southwest",MICROBIT_IMAGE_ARROW_W:"Arrow-West",MICROBIT_IMAGE_ARROW_NW:"Arrow-Northwest",MICROBIT_IMAGE_TRIANGLE:"triangle",MICROBIT_IMAGE_TRIANGLE_LEFT:"left triangle",MICROBIT_IMAGE_CHESSBOARD:"chessboard",MICROBIT_IMAGE_DIAMOND:"diamond",MICROBIT_IMAGE_DIAMOND_SMALL:"diamond (small)",MICROBIT_IMAGE_SQUARE:"square",MICROBIT_IMAGE_SQUARE_SMALL:"Square (small)",MICROBIT_IMAGE_RABBIT:"Rabbit",MICROBIT_IMAGE_COW:"cow",MICROBIT_IMAGE_MUSIC_CROTCHET:"quarter note",MICROBIT_IMAGE_MUSIC_QUAVER:"octave",MICROBIT_IMAGE_MUSIC_QUAVERS:"tremolo",MICROBIT_IMAGE_PITCHFORK:"fork",MICROBIT_IMAGE_XMAS:"Christmas Tree",MICROBIT_IMAGE_PACMAN:"Bean Eater",MICROBIT_IMAGE_TARGET:"target",MICROBIT_IMAGE_TSHIRT:"T-shirt",MICROBIT_IMAGE_ROLLERSKATE:"Roller Skating",MICROBIT_IMAGE_DUCK:"duck",MICROBIT_IMAGE_HOUSE:"House",MICROBIT_IMAGE_TORTOISE:"tortoise",MICROBIT_IMAGE_BUTTERFLY:"Butterfly",MICROBIT_IMAGE_STICKFIGURE:"line drawing",MICROBIT_IMAGE_GHOST:"Ghost",MICROBIT_IMAGE_SWORD:"Sword",MICROBIT_IMAGE_GIRAFFE:"Giraffe",MICROBIT_IMAGE_SKULL:"Head",MICROBIT_IMAGE_UMBRELLA:"umbrella",MICROBIT_IMAGE_SNAKE:"snake",MICROBIT_IMAGE_ALL_CLOCKS:"All Clocks",MICROBIT_IMAGE_ALL_ARROWS:"All arrows",mpython_bme280_hum_tem_pre_MESSAGE0:("Meteorological %1","%1"),mpython_bme280_hum_tem_pre_TOOLTIP:("%","Air pressure unit is 'Pa', temperature unit is 'Celsius', ambient humidity unit is '%'"),mpythonbox_sound_MESSAGE0:"Sound value",mpythonbox_sound_TOOLTIP:"0~4095。",mpythonbox_sound_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mPythonBox/lib/mpython.html",MPYTHONBOX_SLIDER_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mPythonBox/lib/mpython_box.html#mpython-box",MPYTHONBOX_SLIDER_MESSAGE0:"Slide bar",MPYTHONBOX_SLIDER_TOOLTIP:"0~4095。",MPYTHONBOX_5BUTTON_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mPythonBox/lib/mpython_box.html#mpython-box",MPYTHONBOX_5BUTTON_MESSAGE0:"Five way button%1",MPYTHONBOX_5BUTTON_TOOLTIP:"",MPYTHONBOX_MOTOR_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mPythonBox/lib/mpython_box.html#mpython-box",MPYTHONBOX_MOTOR_MESSAGE0:"Motor speed%1",MPYTHONBOX_MOTOR_TOOLTIP:"",MPYTHONBOX_ULTRASONIC_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mPythonBox/lib/mpython_box.html#mpython_box.get_key",MPYTHONBOX_ULTRASONIC_MESSAGE0:"Ultrasonic",MPYTHONBOX_ULTRASONIC_TOOLTIP:"3~340CM",MPYTHONBOX_THEHUMANBODYINFRARE_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mPythonBox/lib/mpython_box.html#mpython_box.get_key",MPYTHONBOX_THEHUMANBODYINFRARE_MESSAGE0:"Human body infrared",MPYTHONBOX_THEHUMANBODYINFRARE_TOOLTIP:"",MPYTHONBOX_RGB_pixel_HELPURL:"",MPYTHONBOX_RGB_pixel_MESSAGE0:"Set column%1 line%2 R%3 G%4 B%5",MPYTHONBOX_RGB_pixel_TOOLTIP:"",MPYTHONBOX_RGB_get_pixel_HELPURL:"",MPYTHONBOX_RGB_get_pixel_MESSAGE0:"Returns the RGB color of column%1, line%2",MPYTHONBOX_RGB_get_pixel_TOOLTIP:"",MPYTHONBOX_RGB_ImageText_HELPURL:"",MPYTHONBOX_RGB_ImageText_MESSAGE0:"Scroll Display Text%1 Speed%2",MPYTHONBOX_RGB_ImageText_TOOLTIP:"",MPYTHONBOX_RGB_SetImage_HELPURL:("",""),MPYTHONBOX_RGB_SetImage_TOOLTIP:("",""),MPYTHONBOX_RGB_SetImage_MESSAGE0:("Create image %1 row1 %2 row2 %3 row3 %4 row4 %5 row5 %6","Create an image %1 The first line%2, the second line%3, the third line%4, the fourth line%5, the fifth line%6"),MPYTHONBOX_RGB_Image_HELPURL:"",MPYTHONBOX_RGB_Image_MESSAGE0:"According to the image%1",MPYTHONBOX_RGB_Image_TOOLTIP:"According to the image",MPYTHONBOX_RGB_SHOW_IMAGE_MESSAGE0:"Display image/text %1",MPYTHONBOX_RGB_SHOW_IMAGE_TOOLTIP:"",MPYTHONBOX_RGB_SHOW_IMAGE_HELPURL:"",MPYTHONBOX_RGB_SHOW_IMAGEImport_MESSAGE0:"Display image %1",MPYTHONBOX_RGB_SHOW_IMAGEImport_TOOLTIP:"Display image。",MPYTHONBOX_RGB_SHOW_IMAGEImport_HELPURL:"",MPYTHONBOX_RGB_SHOW_IMAGE_Copy_MESSAGE0:"Copy image %1",MPYTHONBOX_RGB_SHOW_IMAGE_Copy_TOOLTIP:"Copy image",MPYTHONBOX_RGB_SHOW_IMAGE_Copy_HELPURL:"",MPYTHONBOX_RGB_ImageCot_HELPURL:"",MPYTHONBOX_RGB_ImageCot_MESSAGE0:"Cut image%1 column%2 rows%3 width%4 high%5",MPYTHONBOX_RGB_ImageCot_TOOLTIP:"Cut image",MPYTHONBOX_RGB_IMAGE_BUILTINS_MESSAGE0:"Built in image %1",MPYTHONBOX_RGB_IMAGE_BUILTINS_TOOLTIP:"Select a built-in image.",MPYTHONBOX_RGB_IMAGE_BUILTINS_HELPURL:"",MPYTHONBOX_RGB_IMAGE_SHIFT_MESSAGE0:"Translation image %1 %2 %3 ",MPYTHONBOX_RGB_IMAGE_SHIFT_TOOLTIP:"Move the image in a specific direction and return the result of the move.",MPYTHONBOX_RGB_IMAGE_SHIFT_HELPURL:"",MPYTHONBOX_RGB_clear_HELPURL:"",MPYTHONBOX_RGB_clear_MESSAGE0:"Turn off all RGB",MPYTHONBOX_RGB_clear_TOOLTIP:"",MPYTHONBOX_RGB_pixel_return_HELPURL:"",MPYTHONBOX_RGB_pixel_return_MESSAGE0:"Return %1 column %2 line colour",MPYTHONBOX_RGB_pixel_return_TOOLTIP:"Return to the number of columns, row RGB color",MPYTHONBOX_TRIAXIAL_ACCELERATION_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython.html",MPYTHONBOX_TRIAXIAL_ACCELERATION_MESSAGE0:"%1Triaxial acceleration",MPYTHONBOX_TRIAXIAL_ACCELERATION_TOOLTIP:"Unit g, range-2~+2g。",MPYTHONBOX_TRIAXIAL_AUGULAR_VELOCITY_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython.html",MPYTHONBOX_TRIAXIAL_AUGULAR_VELOCITY_MESSAGE0:"%1Triaxial angular velocity",MPYTHONBOX_TRIAXIAL_AUGULAR_VELOCITY_TOOLTIP:"range±500°/seconds",MPYTHONBOX_EULER_ANGLE_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython.html",MPYTHONBOX_EULER_ANGLE_MESSAGE0:"%1Euler Angle",MPYTHONBOX_EULER_ANGLE_TOOLTIP:"Returns the current euler Angle(Pitch,Roll,Yaw),Unit Angle",MPYTHONBOX_QUATERNION_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython.html",MPYTHONBOX_QUATERNION_MESSAGE0:"%1quaternions",MPYTHONBOX_QUATERNION_TOOLTIP:"Returns the current quaternion(w,x,y,z)",MPYTHONBOX_CAMERA_LED_HELPURL:"",MPYTHONBOX_CAMERA_LED_MESSAGE0:"camear light %1",MPYTHONBOX_CAMERA_LED_TOOLTIP:"",LIST_FIRST_INDEX_HELPURL:"",LIST_FIRST_INDEX_MESSAGE0:"Location of item%1 in list%2 %3",LIST_FIRST_INDEX_TOOLTIP:"",MPYTHON_AI_LCD_INIT_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.lcd.init",MPYTHON_AI_LCD_INIT_MESSAGE0:"Screen Initialization ",MPYTHON_AI_LCD_INIT_TOOLTIP:"",MPYTHON_AI_SENSOR_RESET_HELPURL:"https://maixpy.sipeed.com/zh/libs/machine_vision/sensor.html#%E5%8D%95%E7%9B%AE%E6%91%84%E5%83%8F%E5%A4%B4%E9%87%8D%E7%BD%AE%E5%87%BD%E6%95%B0",MPYTHON_AI_SENSOR_RESET_MESSAGE0:"Initialize the camera",MPYTHON_AI_SENSOR_RESET_TOOLTIP:"",MPYTHON_AI_SENSOR_ENABLE_HELPURL:"https://maixpy.sipeed.com/zh/libs/machine_vision/sensor.html#%E8%8E%B7%E5%8F%96%E5%9B%BE%E5%83%8F",MPYTHON_AI_SENSOR_ENABLE_MESSAGE0:"Camera%1",MPYTHON_AI_SENSOR_ENABLE_TOOLTIP:"",MPYTHON_AI_LCD_TEXT_HELPURL:"https://maixpy.sipeed.com/zh/libs/machine_vision/lcd.html#%E4%BE%8B%E7%A8%8B-1%EF%BC%9A-%E6%98%BE%E7%A4%BA%E8%8B%B1%E6%96%87",MPYTHON_AI_LCD_TEXT_MESSAGE0:"Display text x %1 y %2 content %3",MPYTHON_AI_LCD_TEXT_TOOLTIP:"",MPYTHON_AI_SENSOR_SKIP_HELPURL:"https://maixpy.sipeed.com/zh/libs/machine_vision/sensor.html#%E8%B7%B3%E5%B8%A7",MPYTHON_AI_SENSOR_SKIP_MESSAGE0:"The number of frames skipped by the camera %1 Millisecond %2 ",MPYTHON_AI_SENSOR_SKIP_TOOLTIP:"",MPYTHON_AI_SENSOR_RETURN_HELPURL:"https://maixpy.sipeed.com/zh/libs/machine_vision/sensor.html#%E5%88%86%E8%BE%A8%E7%8E%87%E5%AE%BD%E5%BA%A6",MPYTHON_AI_SENSOR_RETURN_MESSAGE0:"测 摄像头 获取%1",MPYTHON_AI_SENSOR_RETURN_TOOLTIP:"",MPYTHON_AI_SENSOR_SETS_HELPURL:"https://maixpy.sipeed.com/zh/libs/machine_vision/sensor.html#%E8%AE%BE%E7%BD%AE%E5%AF%B9%E6%AF%94%E5%BA%A6",MPYTHON_AI_SENSOR_SETS_MESSAGE0:"Camera set %1 as %2",MPYTHON_AI_SENSOR_SETS_TOOLTIP:"",MPYTHON_AI_SENSOR_AUTO_GAIN_HELPURL:"https://maixpy.sipeed.com/zh/libs/machine_vision/sensor.html#%E8%AE%BE%E7%BD%AE%E8%87%AA%E5%8A%A8%E5%A2%9E%E7%9B%8A",MPYTHON_AI_SENSOR_AUTO_GAIN_MESSAGE0:"Automatic gain of camera%1",MPYTHON_AI_SENSOR_AUTO_GAIN_TOOLTIP:"",MPYTHON_AI_SENSOR_AUTO_WHITEBAL_HELPURL:"https://maixpy.sipeed.com/zh/libs/machine_vision/sensor.html#%E8%AE%BE%E7%BD%AE%E8%87%AA%E5%8A%A8%E5%A2%9E%E7%9B%8A",MPYTHON_AI_SENSOR_AUTO_WHITEBAL_MESSAGE0:"Camera White Balance%1",MPYTHON_AI_SENSOR_AUTO_WHITEBAL_TOOLTIP:"",MPYTHON_AI_SENSOR_LEVEL_MI_HELPURL:"https://maixpy.sipeed.com/zh/libs/machine_vision/sensor.html#%E8%AE%BE%E7%BD%AE%E6%B0%B4%E5%B9%B3%E9%95%9C%E5%83%8F",MPYTHON_AI_SENSOR_LEVEL_MI_MESSAGE0:"Camera %1 %2",MPYTHON_AI_SENSOR_LEVEL_MI_TOOLTIP:"",MPYTHON_AI_LCD_DISPLAY_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.lcd.display",MPYTHON_AI_LCD_DISPLAY_MESSAGE0:"Screen display takes effect",MPYTHON_AI_LCD_DISPLAY_TOOLTIP:"",MPYTHON_AI_LCD_DISPLAY_SIZE_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.lcd.display",MPYTHON_AI_LCD_DISPLAY_SIZE_MESSAGE0:"Image display takes effect x%1 y%2 wide%3 high%4",MPYTHON_AI_LCD_DISPLAY_SIZE_TOOLTIP:"",MPYTHON_AI_SENSOR_IMAGES_HELPURL:"https://maixpy.sipeed.com/zh/libs/machine_vision/sensor.html#%E8%8E%B7%E5%8F%96%E5%9B%BE%E5%83%8F",MPYTHON_AI_SENSOR_IMAGES_MESSAGE0:"Camera captures images",MPYTHON_AI_SENSOR_IMAGES_TOOLTIP:"",MPYTHON_AI_IMAGE_FACEDETECT_HELPURL:"https://maixpy.sipeed.com/zh/libs/Maix/kpu.html#%E8%BF%90%E8%A1%8Cyolo2%E7%BD%91%E7%BB%9C",MPYTHON_AI_IMAGE_FACEDETECT_MESSAGE0:"Face recognition",MPYTHON_AI_IMAGE_FACEDETECT_TOOLTIP:"",MPYTHON_AI_LCD_SHOW_REC_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.draw_rectangle",MPYTHON_AI_LCD_SHOW_REC_MESSAGE0:"Rectangular%1 x%3 y%4 width%5 high%6 color R%7 G%8 B%9 coarsening%2",MPYTHON_AI_LCD_SHOW_REC_TOOLTIP:"",MPYTHON_AI_LCD_SHOW_STRING_MESSAGE0:"line x1%1 y1%2 reachx2%3 y2%4 Color isR%5 G%6 B%7 Thickening%8",MPYTHON_AI_LCD_SHOW_STRING_TOOLTIP:"",MPYTHON_AI_LCD_SHOW_STRING_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.draw_rectangle",MPYTHON_AI_LCD_CLEAR_ALL_MESSAGE0:"Clear screen display",MPYTHON_AI_LCD_CLEAR_ALL_TOOLTIP:"",MPYTHON_AI_LCD_CLEAR_ALL_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.draw_rectangle",MPYTHON_AI_LCD_return_colour_MESSAGE0:"LCD Return x%1 y%2 colour",MPYTHON_AI_LCD_return_colour_TOOLTIP:"",MPYTHON_AI_LCD_return_colour_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.draw_rectangle",MPYTHON_AI_LCD_SHOW_CIRCLE_MESSAGE0:"circular%1 x%2 y%3 radius%4 colour R%5 G%6 B%7 Thickening%8",MPYTHON_AI_LCD_SHOW_CIRCLE_TOOLTIP:"",MPYTHON_AI_LCD_SHOW_CIRCLE_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.draw_rectangle",MPYTHON_AI_LCD_TEXT_MOST_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.draw_rectangle",MPYTHON_AI_LCD_TEXT_MOST_MESSAGE0:"Display text x %1 y %2 content %3 colourR%4 G%5 B%6 size%7",MPYTHON_AI_LCD_TEXT_MOST_TOOLTIP:"",MPYTHON_AI_LCD_SHOW_TEN_STRING_MESSAGE0:"Cross line x%1 y%2 colourR%3 G%4 B%5 size%6 Thickening%7",MPYTHON_AI_LCD_SHOW_TEN_STRING_TOOLTIP:"",MPYTHON_AI_LCD_SHOW_TEN_STRING_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.draw_rectangle",MPYTHON_AI_LCD_SHOW_ARROWS_MESSAGE0:"Arrow x1%1 y1%2 x2%3 y2%4 colourR%5 G%6 B%7 Thickening%8",MPYTHON_AI_LCD_SHOW_ARROWS_TOOLTIP:"",MPYTHON_AI_LCD_SHOW_ARROWS_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.draw_rectangle",MPYTHON_AI_LCD_SHOW_IMAGE_PIRCTURE_HELPURL:".https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.lcd.display",MPYTHON_AI_LCD_SHOW_IMAGE_PIRCTURE_MESSAGE0:"Display image path%1",MPYTHON_AI_LCD_SHOW_IMAGE_PIRCTURE_TOOLTIP:"",MPYTHON_AI_LCD_SHOW_IMAGE_HEAT_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.invert",MPYTHON_AI_LCD_SHOW_IMAGE_HEAT_MESSAGE0:"Image conversion to%1",MPYTHON_AI_LCD_SHOW_IMAGE_HEAT_TOOLTIP:"",MPYTHON_AI_LCD_SHOW_IMAGE_DESCARTES_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.linpolar",MPYTHON_AI_LCD_SHOW_IMAGE_DESCARTES_MESSAGE0:"Image from Cartesian coordinates to%1 Reprojection of coordinates %2",MPYTHON_AI_LCD_SHOW_IMAGE_DESCARTES_TOOLTIP:"",MPYTHON_AI_LCD_SHOW_IMAGE_EROSION_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.dilate",MPYTHON_AI_LCD_SHOW_IMAGE_EROSION_MESSAGE0:"Image Expansion Level%1",MPYTHON_AI_LCD_SHOW_IMAGE_EROSION_TOOLTIP:"",MPYTHON_AI_LCD_SHOW_IMAGE_MIDDLE_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.midpoint",MPYTHON_AI_LCD_SHOW_IMAGE_MIDDLE_MESSAGE0:"Image Point Filtering Level%1 Wave filtering%2",MPYTHON_AI_LCD_SHOW_IMAGE_MIDDLE_TOOLTIP:"",MPYTHON_AI_LCD_SHOW_IMAGE_MODE_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.modehttps://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.mode",MPYTHON_AI_LCD_SHOW_IMAGE_MODE_MESSAGE0:"Image Modal Filtering Level%1",MPYTHON_AI_LCD_SHOW_IMAGE_MODE_TOOLTIP:"",MPYTHON_AI_LCD_SHOW_IMAGE_INDISTINCT_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.mean",MPYTHON_AI_LCD_SHOW_IMAGE_INDISTINCT_MESSAGE0:"Image Fuzzy Filtering Level%1",MPYTHON_AI_LCD_SHOW_IMAGE_INDISTINCT_TOOLTIP:"",MPYTHON_AI_LCD_SHOW_IMAGE_CARTOON_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.cartoon",MPYTHON_AI_LCD_SHOW_IMAGE_CARTOON_MESSAGE0:"Image Cartoonization Level%1 Initial Pixel Difference%2 Adjacent pixel difference%3",MPYTHON_AI_LCD_SHOW_IMAGE_CARTOON_TOOLTIP:"",MPYTHON_AI_LCD_SHOW_IMAGE_3D_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.rotation_corr",MPYTHON_AI_LCD_SHOW_IMAGE_3D_MESSAGE0:"Image 3D Rotation Up and Down%1 Rotate left and right%2 degrees%3 or so move%4 up and down move%5 zoom%6",MPYTHON_AI_LCD_SHOW_IMAGE_3D_TOOLTIP:"",MPYTHON_AI_LCD_SHOW_ECTYPE_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.copy",MPYTHON_AI_LCD_SHOW_ECTYPE_MESSAGE0:"Save a copy of the image to the SD card image name%1 Image display area x%2 y%3 wide%4 high%5",MPYTHON_AI_LCD_SHOW_ECTYPE_TOOLTIP:"",MPYTHON_AI_LCD_SHOW_ECTYPE_SHOW_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.save",MPYTHON_AI_LCD_SHOW_ECTYPE_SHOW_MESSAGE0:"Create a copy of the image object to copy the image area x%1 y%2 wide%3 high%4",MPYTHON_AI_LCD_SHOW_ECTYPE_SHOW_TOOLTIP:"",MPYTHON_AI2_20CLASS_TRACKING_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",MPYTHON_AI2_20CLASS_TRACKING_MESSAGE0:"20 kinds of recognition",MPYTHON_AI2_20CLASS_TRACKING_TOOLTIP:"",MPYTHON_AI2_NUMBER_DISCERN_HELPURL:("https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model","https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model"),MPYTHON_AI2_NUMBER_DISCERN_MESSAGE0:("Handwritten Number Recognition",'set the training model to "Number ID"'),MPYTHON_AI2_NUMBER_DISCERN_TOOLTIP:("","Select training model handwritten numerals"),MPYTHON_AI_LCD_PIXEL_COLOUR_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html?highlight=get_pixel#mpython_classroom_kit.image.set_pixel",MPYTHON_AI_LCD_PIXEL_COLOUR_MESSAGE0:"screen x%1 y%2 Display color R%3 G%4 B%5",MPYTHON_AI_LCD_PIXEL_COLOUR_TOOLTIP:"",MPYTHON_AI_LCD_COLOUR_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.lcd.clear",MPYTHON_AI_LCD_COLOUR_MESSAGE0:"Screen Initialization Display Color R%1 G%2 B%3",MPYTHON_AI_LCD_COLOUR_TOOLTIP:"",MPYTHON_AI_SENSOR_PATTERN_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.camera.set_pixformat",MPYTHON_AI_SENSOR_PATTERN_MESSAGE0:"Initialize the camera, set pixel mode as %1",MPYTHON_AI_SENSOR_PATTERN_TOOLTIP:"",MPYTHON_AI_TRACE_CILOR_DISPLAYTEN_HELPURL:("",""),MPYTHON_AI_TRACE_CILOR_DISPLAYTEN_MESSAGE0:("Tracking color display%1","Trace color display%1"),MPYTHON_AI_TRACE_CILOR_DISPLAYTEN_TOOLTIP:("",""),MPYTHON_AI2_FACE_TRACKING_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",MPYTHON_AI2_FACE_TRACKING_MESSAGE0:'set the training model to "Face ID"',MPYTHON_AI2_FACE_TRACKING_TOOLTIP:"It can recognize and track faces, display face size and so on",MPYTHON_AI2_PHOTOGRAPH_TRACKING_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",MPYTHON_AI2_PHOTOGRAPH_TRACKING_MESSAGE0:'call the camera for "Face ID"',MPYTHON_AI2_PHOTOGRAPH_TRACKING_TOOLTIP:"It can recognize and track faces, display face size and so on",MPYTHON_AI2_RESULT_FACE_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",MPYTHON_AI2_RESULT_FACE_MESSAGE0:'get the recognition result of "Face ID"',MPYTHON_AI2_RESULT_FACE_TOOLTIP:"After acquisition and identification All the parameters",MPYTHON_AI2_RESULT_FACE_X_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",MPYTHON_AI2_RESULT_FACE_X_MESSAGE0:'get the X coordinate of the "Face ID" result',MPYTHON_AI2_RESULT_FACE_X_TOOLTIP:"After acquisition and identification x coordinates",MPYTHON_AI2_RESULT_FACE_Y_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",MPYTHON_AI2_RESULT_FACE_Y_MESSAGE0:'get the Y coordinate of the "Face ID" result',MPYTHON_AI2_RESULT_FACE_Y_TOOLTIP:"After acquisition and identification y coordinates",MPYTHON_AI2_RESULT_FACE_W_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",MPYTHON_AI2_RESULT_FACE_W_MESSAGE0:'get the width of the "Face ID" result',MPYTHON_AI2_RESULT_FACE_W_TOOLTIP:"After acquisition and identification width",MPYTHON_AI2_RESULT_FACE_H_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",MPYTHON_AI2_RESULT_FACE_H_MESSAGE0:'get the height of the "Face ID" result',MPYTHON_AI2_RESULT_FACE_H_TOOLTIP:"After acquisition and identification height",MPYTHON_AI2_RESULT_FACE_VALUE_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",MPYTHON_AI2_RESULT_FACE_VALUE_MESSAGE0:'get the confidence of the "Face ID" result',MPYTHON_AI2_RESULT_FACE_VALUE_TOOLTIP:"After acquisition and identification Confidence",MPYTHON_AI2_RESULT_FACE_OBJNUM_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",MPYTHON_AI2_RESULT_FACE_OBJNUM_MESSAGE0:'get the object count of the "Face ID" result',MPYTHON_AI2_RESULT_FACE_OBJNUM_TOOLTIP:"After acquisition and identification number",MPYTHON_AI2_20class_TRACKING_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",MPYTHON_AI2_20class_TRACKING_MESSAGE0:'set the training model to "20 Class ID"',MPYTHON_AI2_20class_TRACKING_TOOLTIP:"Can identify 20 types, respectively are 0-19 for aircraft, bicycle, bird, boat, bottle, bus, car, cat, chair, cow, dining table, dog, house, motorcycle, person, potted plant, sheep, sofa, train, TV",MPYTHON_AI2_PHOTOGRAPH_20TRACKING_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",MPYTHON_AI2_PHOTOGRAPH_20TRACKING_MESSAGE0:'call the camera for "20 Class ID"',MPYTHON_AI2_PHOTOGRAPH_20TRACKING_TOOLTIP:"",MPYTHON_AI2_RESULT_20CLASS_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",MPYTHON_AI2_RESULT_20CLASS_MESSAGE0:'get the recognition result of "20 Class ID"',MPYTHON_AI2_RESULT_20CLASS_TOOLTIP:"After acquisition and identification All the parameters",MPYTHON_AI2_RESULT_20CLASS_X_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",MPYTHON_AI2_RESULT_20CLASS_X_MESSAGE0:'get the X coordinate of the "20 Class ID" result',MPYTHON_AI2_RESULT_20CLASS_X_TOOLTIP:"After acquisition and identification x coordinates",MPYTHON_AI2_RESULT_20CLASS_Y_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",MPYTHON_AI2_RESULT_20CLASS_Y_MESSAGE0:'get the Y coordinate of the "20 Class ID" result',MPYTHON_AI2_RESULT_20CLASS_Y_TOOLTIP:"After acquisition and identification y coordinates",MPYTHON_AI2_RESULT_20CLASS_W_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",MPYTHON_AI2_RESULT_20CLASS_W_MESSAGE0:'get the width of the "20 Class ID" result',MPYTHON_AI2_RESULT_20CLASS_W_TOOLTIP:"After acquisition and identification width",MPYTHON_AI2_RESULT_20CLASS_H_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",MPYTHON_AI2_RESULT_20CLASS_H_MESSAGE0:'get the height of the "20 Class ID" result',MPYTHON_AI2_RESULT_20CLASS_H_TOOLTIP:"After acquisition and identification height",MPYTHON_AI2_RESULT_20CLASS_VALUE_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",MPYTHON_AI2_RESULT_20CLASS_VALUE_MESSAGE0:'get the confidence of the "20 Class ID" result',MPYTHON_AI2_RESULT_20CLASS_VALUE_TOOLTIP:"After acquisition and identification Confidence",MPYTHON_AI2_RESULT_20CLASS_OBJNUM_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",MPYTHON_AI2_RESULT_20CLASS_OBJNUM_MESSAGE0:'get the object count of the "20 Class ID" result',MPYTHON_AI2_RESULT_20CLASS_OBJNUM_TOOLTIP:"After acquisition and identification number",MPYTHON_AI2_RESULT_20CLASS_CLASSID_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",MPYTHON_AI2_RESULT_20CLASS_CLASSID_MESSAGE0:'get the type name of the "20 Class ID" result',MPYTHON_AI2_RESULT_20CLASS_CLASSID_TOOLTIP:"Can identify 20 types, respectively are 0-19 for aircraft, bicycle, bird, boat, bottle, bus, car, cat, chair, cow, dining table, dog, house, motorcycle, person, potted plant, sheep, sofa, train, TV",MPYTHON_AI2_RESULT_20CLASS_INDEX_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",MPYTHON_AI2_RESULT_20CLASS_INDEX_MESSAGE0:'get the type count of the "20 Class ID" result',MPYTHON_AI2_RESULT_20CLASS_INDEX_TOOLTIP:"After acquisition and identification type number",MPYTHON_AI2_RESULT_NUMBER_DISCERN_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",MPYTHON_AI2_RESULT_NUMBER_DISCERN_MESSAGE0:'call the camera for "Number ID"',MPYTHON_AI2_RESULT_NUMBER_DISCERN_TOOLTIP:"Call camera identification",MPYTHON_AI2_NUMBER_DETECT_ALL_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#id2",MPYTHON_AI2_NUMBER_DETECT_ALL_MESSAGE0:'get the recognition result of "Number ID"',MPYTHON_AI2_NUMBER_DETECT_ALL_TOOLTIP:"Handwritten digit recognition parameters",MPYTHON_AI2_NUMBER_DETECT_NUMBER_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#id2",MPYTHON_AI2_NUMBER_DETECT_NUMBER_MESSAGE0:'get the digital of the "Number ID" result',MPYTHON_AI2_NUMBER_DETECT_NUMBER_TOOLTIP:"Handwritten digits recognize Numbers",MPYTHON_AI2_NUMBER_DETECT_ADIENCE_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#id2",MPYTHON_AI2_NUMBER_DETECT_ADIENCE_MESSAGE0:'get the confidence of the "Number ID" result',MPYTHON_AI2_NUMBER_DETECT_ADIENCE_TOOLTIP:"Handwritten digit recognition digital confidence",MPYTHON_AI_TRACE_COLOR_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.find_blobs",MPYTHON_AI_TRACE_COLOR_MESSAGE0:"Trace color block LAB color %1 bounding box less than %2 pixels less than %3 filter",MPYTHON_AI_TRACE_COLOR_TOOLTIP:"Track the color piece",MPYTHON_AI_BLOB_ALL_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#blob",MPYTHON_AI_BLOB_ALL_MESSAGE0:"%1Color piece block all parameters",MPYTHON_AI_BLOB_ALL_TOOLTIP:"Returns blob class -- a color block object",MPYTHON_AI_BLOB_X_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#blob",MPYTHON_AI_BLOB_X_MESSAGE0:"%1Color piece x coordinates",MPYTHON_AI_BLOB_X_TOOLTIP:"Returns blob class -- a color block object",MPYTHON_AI_BLOB_Y_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#blob",MPYTHON_AI_BLOB_Y_MESSAGE0:"%1Color piece y coordinates",MPYTHON_AI_BLOB_Y_TOOLTIP:"Returns blob class -- a color block object",MPYTHON_AI_BLOB_W_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#blob",MPYTHON_AI_BLOB_W_MESSAGE0:"%1Color piece width",MPYTHON_AI_BLOB_W_TOOLTIP:"Returns blob class -- a color block object",MPYTHON_AI_BLOB_H_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#blob",MPYTHON_AI_BLOB_H_MESSAGE0:"%1Color piece height",MPYTHON_AI_BLOB_H_TOOLTIP:"Returns blob class -- a color block object",MPYTHON_AI_BLOB_NUMBER_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#blob",MPYTHON_AI_BLOB_NUMBER_MESSAGE0:"%1Color piece number",MPYTHON_AI_BLOB_NUMBER_TOOLTIP:"Returns blob class -- a color block object",MPYTHON_AI_BLOB_CENTER_X_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#blob",MPYTHON_AI_BLOB_CENTER_X_MESSAGE0:"%1Color piece center x coordinates",MPYTHON_AI_BLOB_CENTER_X_TOOLTIP:"Returns blob class -- a color block object",MPYTHON_AI_BLOB_CENTER_Y_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#blob",MPYTHON_AI_BLOB_CENTER_Y_MESSAGE0:"%1Color piece center y coordinates",MPYTHON_AI_BLOB_CENTER_Y_TOOLTIP:"Returns blob class -- a color block object",MPYTHON_AI_BLOB_ORTHOGON_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#blob",MPYTHON_AI_BLOB_ORTHOGON_MESSAGE0:"%1Color piece rectangular",MPYTHON_AI_BLOB_ORTHOGON_TOOLTIP:"Returns blob class -- a color block object",MPYTHON_DRILL_WEIGHT_MESSAGE0:"Initialize training%1",MPYTHON_DRILL_WEIGHT_TOOLTIP:"",MPYTHON_DRILL_WEIGHT_HELPURL:"",MPYTHON_DRILL_LINEAR_REGRESSION_HELPURL:"",MPYTHON_DRILL_LINEAR_REGRESSION_MESSAGE0:"Instantiate the linear regression line",MPYTHON_DRILL_LINEAR_REGRESSION_TOOLTIP:"",MPYTHON_DRILL_TITLE_HELPURL:"",MPYTHON_DRILL_TITLE_MESSAGE0:" title%1 size%2",MPYTHON_DRILL_TITLE_TOOLTIP:"",MPYTHON_DRILL_LABEL_HELPURL:"",MPYTHON_DRILL_LABEL_MESSAGE0:"label%1 title%2 size%3",MPYTHON_DRILL_LABEL_TOOLTIP:"",MPYTHON_DRILL_DRILL_REALITY_HELPURL:"",MPYTHON_DRILL_DRILL_REALITY_MESSAGE0:"Real data lines Sign marks%1 The color of r%2 g%3 b%4 title%5",MPYTHON_DRILL_DRILL_REALITY_TOOLTIP:"",MPYTHON_DRILL_PREDICTED_REALITY_HELPURL:"",MPYTHON_DRILL_PREDICTED_REALITY_MESSAGE0:"Predict linear regression lines Sign marks%1 The color of r%2 g%3 b%4 title%5",MPYTHON_DRILL_PREDICTED_REALITY_TOOLTIP:"",MPYTHON_DRILL_LEGEND_HELPURL:"",MPYTHON_DRILL_LEGEND_MESSAGE0:"Show legend",MPYTHON_DRILL_LEGEND_TOOLTIP:"",MPYTHON_DRILL_SHOW_HELPURL:"",MPYTHON_DRILL_SHOW_MESSAGE0:"Display images",MPYTHON_DRILL_SHOW_TOOLTIP:"",MPYTHON_DRILL_DRILL_PRINT_HELPURL:"",MPYTHON_DRILL_DRILL_PRINT_MESSAGE0:"Returns the corresponding key value%1",MPYTHON_DRILL_DRILL_PRINT_TOOLTIP:"",MPYTHONS_FLOWER_DE_LUCE_INITIALIZE_HELPURL:"",MPYTHONS_FLOWER_DE_LUCE_INITIALIZE_MESSAGE0:"Initialize Iris dataset",MPYTHONS_FLOWER_DE_LUCE_INITIALIZE_TOOLTIP:"",MPYTHONS_FLOWER_DE_LUCE_PCA_HELPURL:"",MPYTHONS_FLOWER_DE_LUCE_PCA_MESSAGE0:"flower-de-luce Principal component analysis",MPYTHONS_FLOWER_DE_LUCE_PCA_TOOLTIP:"",MPYTHONS_FLOWER_DE_LUCE_FA3D_HELPURL:"",MPYTHONS_FLOWER_DE_LUCE_FA3D_MESSAGE0:"flower-de-luce Factor analysis 3D",MPYTHONS_FLOWER_DE_LUCE_FA3D_TOOLTIP:"",MPYTHONS_FLOWER_DE_LUCE_FA_HELPURL:"",MPYTHONS_FLOWER_DE_LUCE_FA_MESSAGE0:"flower-de-luce Factor analysis",MPYTHONS_FLOWER_DE_LUCE_FA_TOOLTIP:"",MPYTHONS_FLOWER_DE_LUCE_PCA_DISPLAY_HELPURL:"",MPYTHONS_FLOWER_DE_LUCE_PCA_DISPLAY_MESSAGE0:"Predicting graphic flower-de-luce type%1 Render content x%3 y%4 Present species%2 color r%5 g%6 b%7 title%8 upward merge%9",MPYTHONS_FLOWER_DE_LUCE_PCA_DISPLAY_TOOLTIP:"",MPYTHONS_FLOWER_DE_LUCE_DATA_HELPURL:"",MPYTHONS_FLOWER_DE_LUCE_DATA_MESSAGE0:"Predicting graphic Render content x%1 y%2 Present species%3 color r%4 g%5 b%6 title%7",MPYTHONS_FLOWER_DE_LUCE_DATA_TOOLTIP:"",MPYTHONS_FLOWER_DE_LUCE_DATA3D_HELPURL:"",MPYTHONS_FLOWER_DE_LUCE_DATA3D_MESSAGE0:"3D Predicting graphic Render content x%1 y%2 z%3 color r%4 g%5 b%6 title%7",MPYTHONS_FLOWER_DE_LUCE_DATA3D_TOOLTIP:"",MPYTHONS_FLOWER_DE_LUCE_TITLE_HELPURL:"",MPYTHONS_FLOWER_DE_LUCE_TITLE_MESSAGE0:" title%1 size%2",MPYTHONS_FLOWER_DE_LUCE_TITLE_TOOLTIP:"",MPYTHONS_FLOWER_DE_LUCE_LABEL_HELPURL:"",MPYTHONS_FLOWER_DE_LUCE_LABEL_MESSAGE0:"label%1 title%2 size%3",MPYTHONS_FLOWER_DE_LUCE_LABEL_TOOLTIP:"",MPYTHONS_FLOWER_DE_LUCE_TITLE3D_HELPURL:"",MPYTHONS_FLOWER_DE_LUCE_TITLE3D_MESSAGE0:"3D title%1 size%2",MPYTHONS_FLOWER_DE_LUCE_TITLE3D_TOOLTIP:"",MPYTHONS_FLOWER_DE_LUCE_LABEL3D_HELPURL:"",MPYTHONS_FLOWER_DE_LUCE_LABEL3D_MESSAGE0:"3D label%1 title%2 size%3",MPYTHONS_FLOWER_DE_LUCE_LABEL3D_TOOLTIP:"",MPYTHONS_FLOWER_DE_LUCE_LEGEND_HELPURL:"",MPYTHONS_FLOWER_DE_LUCE_LEGEND_MESSAGE0:"Show legend",MPYTHONS_FLOWER_DE_LUCE_LEGEND_TOOLTIP:"",MPYTHONS_FLOWER_DE_LUCE_SHOW_HELPURL:"",MPYTHONS_FLOWER_DE_LUCE_SHOW_MESSAGE0:"Display images",MPYTHONS_FLOWER_DE_LUCE_SHOW_TOOLTIP:"",MPYTHONS_FLOWER_DE_LUCE_LOAD_IRIS_HELPURL:"",MPYTHONS_FLOWER_DE_LUCE_LOAD_IRIS_MESSAGE0:"X and y coordinates of calyx and petals",MPYTHONS_FLOWER_DE_LUCE_LOAD_IRIS_TOOLTIP:"There are 150 records, representing 50 Iris-setosa, Iris-versicolor and Iris-virginica respectively",MPYTHONS_FLOWER_DE_LUCE_Iris_setosa:"Iris setosa",MPYTHONS_FLOWER_DE_LUCE_Iris_versicolor:"Iris versicolor",MPYTHONS_FLOWER_DE_LUCE_Iris_virginica:"Iris virginica",MPYTHONS_FLOWER_DE_LUCE_scatter_diagram:"scatter diagram",MPYTHONS_FLOWER_DE_LUCE_kde_diagram:"kde diagram",MPYTHONS_FLOWER_DE_LUCE_box_diagram:"box diagram",MPYTHONS_FLOWER_DE_LUCE_merge:"merge",MPYTHONS_FLOWER_DE_LUCE_not_merge:"Don it merge",MPYTHONS_FLOWER_DE_LUCE_calyx_length:"calyx length",MPYTHONS_FLOWER_DE_LUCE_calyx_width:"calyx width",MPYTHONS_FLOWER_DE_LUCE_petal_length:"petal length",MPYTHONS_FLOWER_DE_LUCE_petal_width:"petal width",MPYTHON_DRILL_DRILL_full_line:"full line",MPYTHON_DRILL_DRILL_dash_line:"dash line",MPYTHON_DRILL_DRILL_chain_line:"chain line",MPYTHON_DRILL_DRILL_imaginary_line:"imaginary line",MPYTHON_DRILL_DRILL_dot:"dot",MPYTHON_DRILL_DRILL_pixel:"pixel",MPYTHON_DRILL_DRILL_solid_rim:"solid rim",MPYTHON_DRILL_DRILL_down_triangle:"down triangle",MPYTHON_DRILL_DRILL_up_triangle:"up triangle",MPYTHON_DRILL_DRILL_right_triangle:"right triangle",MPYTHON_DRILL_DRILL_left_triangle:"left triangle",MPYTHON_DRILL_DRILL_down_flower_triangle:"down flower triangle",MPYTHON_DRILL_DRILL_up_flower_triangle:"up flower triangle",MPYTHON_DRILL_DRILL_right_flower_triangle:"right flower triangle",MPYTHON_DRILL_DRILL_left_flower_triangle:"left flower triangle",MPYTHON_DRILL_DRILL_solid_square:"solid square",MPYTHON_DRILL_DRILL_solid_pentagon:"solid pentagon",MPYTHON_DRILL_DRILL_star:"star",MPYTHON_DRILL_DRILL_vertical_hexagon:"vertical hexagon",MPYTHON_DRILL_DRILL_across_hexagon:"across hexagon",MPYTHON_DRILL_DRILL_cross:"cross",MPYTHON_DRILL_DRILL_X:"X",MPYTHON_DRILL_DRILL_rhombus:"rhombus",MPYTHON_DRILL_DRILL_thin_rhombus:"thin rhombus",MPYTHON_DRILL_DRILL_vertical_line:"vertical line",MPYTHONS_CONVERT_PICTURE_HELPURL:" ",MPYTHONS_CONVERT_PICTURE_MESSAGE0:" convert image to 28 ^ 2 binary image %1 pending image storage path %2 processed image storage path %3 format %4",MPYTHONS_CONVERT_PICTURE_TOOLTIP:"control board passes WIF to voice assistant via serial port ",MPYTHONS_NUMBER_REPERTOIRE_HELPURL:" ",MPYTHONS_NUMBER_REPERTOIRE_MESSAGE0:" find parse handwritten numeric data store path %1",MPYTHONS_NUMBER_REPERTOIRE_TOOLTIP:"use handwritten number library ",MPYTHONS_SHOW_NUMBER_PATH_HELPURL:" ",MPYTHONS_SHOW_NUMBER_PATH_MESSAGE0:" handwritten digital image storage path %1",MPYTHONS_SHOW_NUMBER_PATH_TOOLTIP:"path of handwritten digital image ",MPYTHONS_SHOW_NUMBER_HELPURL:" ",MPYTHONS_SHOW_NUMBER_MESSAGE0:" display handwritten digital image ",MPYTHONS_SHOW_NUMBER_TOOLTIP:"display handwritten digital image ",MPYTHONS_NUMBER_RECOGNITION_HELPURL:" ",MPYTHONS_NUMBER_RECOGNITION_MESSAGE0:" identify handwritten digital image storage path %1",MPYTHONS_NUMBER_RECOGNITION_TOOLTIP:"path to recognize handwritten digital image ",MPYTHONS_NUMBER_PLACEHOLDER_HELPURL:" ",MPYTHONS_NUMBER_PLACEHOLDER_MESSAGE0:" create variable %1 initialize neural network tensor variable name %2",MPYTHONS_NUMBER_PLACEHOLDER_TOOLTIP:" ",MPYTHON_DRILL_RESHAPE_MESSAGE0:"create variable %1 and convert the input photo variable %2 into neural network output tensor %3",MPYTHON_DRILL_RESHAPE_TOOLTIP:" ",MPYTHON_DRILL_RESHAPE_HELPURL:" ",MPYTHON_NUMBER_CONV_WEIGHT_MESSAGE0:"create variable %1 Shared variable name %2 initialization mode %3",MPYTHON_NUMBER_CONV_WEIGHT_TOOLTIP:" ",MPYTHON_NUMBER_CONV_WEIGHT_HELPURL:" ",MPYTHON_NUMBER_INITIALIZER_MESSAGE0:"produce truncated normal distribution random number output tensor %1 standard deviation %2",MPYTHON_NUMBER_INITIALIZER_TOOLTIP:" ",MPYTHON_NUMBER_INITIALIZER_HELPURL:" ",MPYTHON_NUMBER_CONSTANT_MESSAGE0:"create constant value %1 output tensor %2",MPYTHON_NUMBER_CONSTANT_TOOLTIP:" ",MPYTHON_NUMBER_CONSTANT_HELPURL:" ",MPYTHON_NUMBER_CONV2D_MESSAGE0:"neural network output tensor %1 Shared variable %2 step size %3 fill %4",MPYTHON_NUMBER_CONV2D_TOOLTIP:" ",MPYTHON_NUMBER_CONV2D_HELPURL:" ",MPYTHON_NUMBER_CONV_BIASES_MESSAGE0:"tensor %1",MPYTHON_NUMBER_CONV_BIASES_TOOLTIP:" ",MPYTHON_NUMBER_CONV_BIASES_HELPURL:" ",MPYTHON_NUMBER_CONV_CONV2D_MESSAGE0:"convolution two-dimensional variable %1 %2",MPYTHON_NUMBER_CONV_CONV2D_TOOLTIP:" ",MPYTHON_NUMBER_CONV_CONV2D_HELPURL:" ",MPYTHON_NUMBER_RELU_MESSAGE0:"create variable %1 Relu forward drive function convolution 2d layer %2",MPYTHON_NUMBER_RELU_TOOLTIP:" ",MPYTHON_NUMBER_RELU_HELPURL:" ",MPYTHON_NUMBER_MAX_POOL_MESSAGE0:"pooling 2d layer variable %1 convolution layer %2 pooling window %3 step size %4 fill %5",MPYTHON_NUMBER_MAX_POOL_TOOLTIP:" ",MPYTHON_NUMBER_MAX_POOL_HELPURL:" ",MPYTHON_NUMBER_MATMUL_MESSAGE0:"the corresponding elements of the two parameters are multiplied x%1 y%2",MPYTHON_NUMBER_MATMUL_TOOLTIP:" ",MPYTHON_NUMBER_MATMUL_HELPURL:" ",MPYTHON_NUMBER_ADD_MESSAGE0:"full connection layer variable %1 add elements of two parameters x%2 y%3",MPYTHON_NUMBER_ADD_TOOLTIP:" ",MPYTHON_NUMBER_ADD_HELPURL:" ",MPYTHON_NUMBER_SOFTMAX_MESSAGE0:"create variable %1 prediction model accuracy variable name %2",MPYTHON_NUMBER_SOFTMAX_TOOLTIP:" ",MPYTHON_NUMBER_SOFTMAX_HELPURL:" ",MPYTHON_NUMBER_REDUCE_MEAN_MESSAGE0:"create variable %1 loss function %2",MPYTHON_NUMBER_REDUCE_MEAN_TOOLTIP:" ",MPYTHON_NUMBER_REDUCE_MEAN_HELPURL:" ",MPYTHON_NUMBER_LOG_MESSAGE0:"natural logarithm %1",MPYTHON_NUMBER_LOG_TOOLTIP:" ",MPYTHON_NUMBER_LOG_HELPURL:" ",MPYTHON_NUMBER_REDUCE_SUM_MESSAGE0:"compress sum %1 dimension %2",MPYTHON_NUMBER_REDUCE_SUM_TOOLTIP:"because the log function is monotonically increasing, logP(Y|X) will also reach its maximum value, so maximizing P(Y|X) after adding a negative sign in front is equivalent to minimizing L.",MPYTHON_NUMBER_REDUCE_SUM_HELPURL:"https://www.cnblogs.com/guoyaohua/p/9217206.html",MPYTHON_NUMBER_TRAIN_MESSAGE0:"optimize learning rate %1",MPYTHON_NUMBER_TRAIN_TOOLTIP:" ",MPYTHON_NUMBER_TRAIN_HELPURL:" ",MPYTHON_NUMBER_MINIMIZE_MESSAGE0:"create variable %1 optimize tensor %2",MPYTHON_NUMBER_MINIMIZE_TOOLTIP:" ",MPYTHON_NUMBER_MINIMIZE_HELPURL:" ",MPYTHON_NUMBER_INIT_MESSAGE0:"initialization model complete ",MPYTHON_NUMBER_INIT_TOOLTIP:" ",MPYTHON_NUMBER_INIT_HELPURL:" ",MPYTHON_NUMBER_TRAIN_TEST_MESSAGE0:"select handwritten number set %1 number %2",MPYTHON_NUMBER_TRAIN_TEST_TOOLTIP:" ",MPYTHON_NUMBER_TRAIN_TEST_HELPURL:" ",MPYTHON_NUMBER_SESSION_RUN_MESSAGE0:"start data stream graph session to compute session %1 picture %2 tag %3",MPYTHON_NUMBER_SESSION_RUN_TOOLTIP:" ",MPYTHON_NUMBER_SESSION_RUN_HELPURL:" ",MPYTHON_NUMBER_SESSION_RUN2_MESSAGE0:"start data stream graph session to compute session %1 picture %2 tag %3",MPYTHON_NUMBER_SESSION_RUN2_TOOLTIP:" ",MPYTHON_NUMBER_SESSION_RUN2_HELPURL:" ",MPYTHON_NUMBER_SESSION_RUN3_MESSAGE0:"prediction model %1 fit %2 session %3",MPYTHON_NUMBER_SESSION_RUN3_TOOLTIP:" ",MPYTHON_NUMBER_SESSION_RUN3_HELPURL:" ",MPYTHON_NUMBER_EQUAL_MESSAGE0:"Whether each dimension of two tensors is equalx%1 y%2",MPYTHON_NUMBER_EQUAL_TOOLTIP:"",MPYTHON_NUMBER_EQUAL_HELPURL:"",MPYTHON_NUMBER_ARGMAX_MESSAGE0:"tensor%1 %2Compare the index that returns the maximum value",MPYTHON_NUMBER_ARGMAX_TOOLTIP:"",MPYTHON_NUMBER_ARGMAX_HELPURL:"",MPYTHON_NUMBER_CAST_MESSAGE0:"Floating point %1",MPYTHON_NUMBER_CAST_TOOLTIP:"",MPYTHON_NUMBER_CAST_HELPURL:"",MPYTHONS_NUMBER_SAVER_SAVE_HELPURL:"",MPYTHONS_NUMBER_SAVER_SAVE_MESSAGE0:"Handwritten numeral recognition model variable name %1 store path%2",MPYTHONS_NUMBER_SAVER_SAVE_TOOLTIP:"MNIST Handwritten numeral recognition model Save the path",MPYTHONS_NUMBER_SAVER_RESTORE_HELPURL:"",MPYTHONS_NUMBER_SAVER_RESTORE_MESSAGE0:"Load model %1 store path%2",MPYTHONS_NUMBER_SAVER_RESTORE_TOOLTIP:"Load model",MPYTHONS_NUMBER_SAME:"SAME",MPYTHONS_NUMBER_VALID:"VALID",MPYTHONS_NUMBER_train:"train",MPYTHONS_NUMBER_test:"test",MPYTHONS_NUMBER_row:"row",MPYTHONS_NUMBER_rank:"rank",MPYTHONS_FACE_RECOGNITION_CAMERA_HELPURL:"",MPYTHONS_FACE_RECOGNITION_CAMERA_MESSAGE0:"Call camera %1",MPYTHONS_FACE_RECOGNITION_CAMERA_TOOLTIP:"Call the built-in camera in the notebook, so the parameter is 0. If there are other cameras, the parameter can be adjusted to 1,2",MPYTHONS_FACE_RECOGNITION_CAMERA_OFF_HELPURL:"",MPYTHONS_FACE_RECOGNITION_CAMERA_OFF_MESSAGE0:"off the camera",MPYTHONS_FACE_RECOGNITION_CAMERA_OFF_TOOLTIP:"",MPYTHONS_FACE_RECOGNITION_WINDOWS_DELETE_HELPURL:"",MPYTHONS_FACE_RECOGNITION_WINDOWS_DELETE_MESSAGE0:"Delete all Windows",MPYTHONS_FACE_RECOGNITION_WINDOWS_DELETE_TOOLTIP:"",MPYTHONS_FACE_RECOGNITION_IMPORT_MODEL_SITE_HELPURL:"",MPYTHONS_FACE_RECOGNITION_IMPORT_MODEL_SITE_MESSAGE0:"Load model store path%1",MPYTHONS_FACE_RECOGNITION_IMPORT_MODEL_SITE_TOOLTIP:"",MPYTHONS_FACE_RECOGNITION_READ_IMAGES_HELPURL:"",MPYTHONS_FACE_RECOGNITION_READ_IMAGES_MESSAGE0:"Read the picture from the camera",MPYTHONS_FACE_RECOGNITION_READ_IMAGES_TOOLTIP:"Ret True if the image is read, otherwise false;The second parameter is frame, which is the image of the currently captured frame.",MPYTHONS_FACE_RECOGNITION_GRAY_IMAGES_HELPURL:"",MPYTHONS_FACE_RECOGNITION_GRAY_IMAGES_MESSAGE0:"Grayscale image",MPYTHONS_FACE_RECOGNITION_GRAY_IMAGES_TOOLTIP:"",MPYTHONS_FACE_RECOGNITION_DETECTION_FACES_HELPURL:"",MPYTHONS_FACE_RECOGNITION_DETECTION_FACES_MESSAGE0:"Each time the face is detected, the image size is reduced proportionally%1",MPYTHONS_FACE_RECOGNITION_DETECTION_FACES_TOOLTIP:"",MPYTHONS_FACE_DISPLAY_RECOGNITION_ORTHOGON_HELPURL:"",MPYTHONS_FACE_DISPLAY_RECOGNITION_ORTHOGON_MESSAGE0:"Face area displays rectangular box color r%1 g%2 b%3",MPYTHONS_FACE_DISPLAY_RECOGNITION_ORTHOGON_TOOLTIP:"",MPYTHONS_FACE_RECOGNITIONR_PSTORAGE_PICTURE_HELPURL:"",MPYTHONS_FACE_RECOGNITIONR_PSTORAGE_PICTURE_MESSAGE0:"Save the image location%1 ID%2 Serial number%3",MPYTHONS_FACE_RECOGNITIONR_PSTORAGE_PICTURE_TOOLTIP:"",MPYTHONS_FACE_RECOGNITIONR_PRESERVE_PICTURE_HELPURL:"",MPYTHONS_FACE_RECOGNITIONR_PRESERVE_PICTURE_MESSAGE0:"Window to display the image filename%1",MPYTHONS_FACE_RECOGNITIONR_PRESERVE_PICTURE_TOOLTIP:"",MPYTHONS_FACE_RECOGNITIONR_ESC_HELPURL:"",MPYTHONS_FACE_RECOGNITIONR_ESC_MESSAGE0:"Exit via esc key",MPYTHONS_FACE_RECOGNITIONR_ESC_TOOLTIP:"Use only when the window is on top",MPYTHONS_FACE_RECOGNITIONR_HELPURL:"",MPYTHONS_FACE_RECOGNITIONR_MESSAGE0:"Gets the coordinate value of the face in the image face%1",MPYTHONS_FACE_RECOGNITIONR_TOOLTIP:"",MPYTHONS_FACE_RECOGNITION_JUDGE_FACES_HELPURL:"",MPYTHONS_FACE_RECOGNITION_JUDGE_FACES_MESSAGE0:"If the image is read",MPYTHONS_FACE_RECOGNITION_JUDGE_FACES_TOOLTIP:"",MPYTHONS_FACE_RECOGNITION_JUDGE_CAMERA_HELPURL:"",MPYTHONS_FACE_RECOGNITION_JUDGE_CAMERA_MESSAGE0:"Whether to turn on the camera",MPYTHONS_FACE_RECOGNITION_JUDGE_CAMERA_TOOLTIP:"",MPYTHONS_FACE_RECOGNITION_ACQUIRE_ID_PICTURE_HELPURL:"",MPYTHONS_FACE_RECOGNITION_ACQUIRE_ID_PICTURE_MESSAGE0:"Get photos and id Photo storage path%1",MPYTHONS_FACE_RECOGNITION_ACQUIRE_ID_PICTURE_TOOLTIP:"",MPYTHONS_FACE_RECOGNITION_INITIALIZE_TRANI_MODEL_HELPURL:"",MPYTHONS_FACE_RECOGNITION_INITIALIZE_TRANI_MODEL_MESSAGE0:"Initialize Training model",MPYTHONS_FACE_RECOGNITION_INITIALIZE_TRANI_MODEL_TOOLTIP:"",MPYTHONS_FACE_RECOGNITION_START_DRILL_HELPURL:"",MPYTHONS_FACE_RECOGNITION_START_DRILL_MESSAGE0:"Start Training model",MPYTHONS_FACE_RECOGNITION_START_DRILL_TOOLTIP:"",MPYTHONS_FACE_RECOGNITION_STORAGE_DRILL_MODEL_HELPURL:"",MPYTHONS_FACE_RECOGNITION_STORAGE_DRILL_MODEL_MESSAGE0:"%1Training model store path%2",MPYTHONS_FACE_RECOGNITION_STORAGE_DRILL_MODEL_TOOLTIP:"",MPYTHONS_FACE_RECOGNITION_DRILL_NUMBERS_HELPURL:"",MPYTHONS_FACE_RECOGNITION_DRILL_NUMBERS_MESSAGE0:"Face model training number",MPYTHONS_FACE_RECOGNITION_DRILL_NUMBERS_TOOLTIP:"",MPYTHONS_FACE_RECOGNITION_FONT_HELPURL:"",MPYTHONS_FACE_RECOGNITION_FONT_MESSAGE0:"Window display Recognized name%1 Set font to%2 color r%3 g%4 b%5",MPYTHONS_FACE_RECOGNITION_FONT_TOOLTIP:"",MPYTHONS_FACE_RECOGNITION_PERCENT_HELPURL:"",MPYTHONS_FACE_RECOGNITION_PERCENT_MESSAGE0:"Window display Confidence of identification%1 Set font to%2 color r%3 g%4 b%5",MPYTHONS_FACE_RECOGNITION_PERCENT_TOOLTIP:"",MPYTHONS_FACE_RECOGNITION_FORECAST_FACE_INITIALIZE_HELPURL:"",MPYTHONS_FACE_RECOGNITION_FORECAST_FACE_INITIALIZE_MESSAGE0:"Predict human face name%1 Degree of confidence%2",MPYTHONS_FACE_RECOGNITION_FORECAST_FACE_INITIALIZE_TOOLTIP:"",MPYTHONS_FACE_RECOGNITION_FORECAST_Write:"write",MPYTHONS_FACE_RECOGNITION_FORECAST_Read:"read",MPYTHONS_DIALOGUE_ROBOT_INITIALIZE_HELPURL:"",MPYTHONS_DIALOGUE_ROBOT_INITIALIZE_MESSAGE0:"初始化 聊天机器人",MPYTHONS_ADIALOGUE_ROBOT_INITIALIZE_TOOLTIP:"",MPYTHONS_DIALOGUE_ROBOT_CHOOSE_HELPURL:"",MPYTHONS_DIALOGUE_ROBOT_CHOOSE_MESSAGE0:"选择训练器 聊天机器人",MPYTHONS_ADIALOGUE_ROBOT_CHOOSE_TOOLTIP:"",MPYTHONS_DIALOGUE_ROBOT_START_HELPURL:"",MPYTHONS_DIALOGUE_ROBOT_START_MESSAGE0:"选择与%1 聊天",MPYTHONS_ADIALOGUE_ROBOT_START_TOOLTIP:"",MPYTHONS_ADIALOGUE_ROBOT_CORPUS_HELPURL:"",MPYTHONS_ADIALOGUE_ROBOT_CORPUS_TOOLTIP:"",MPYTHONS_ADIALOGUE_ROBOT_CORPUS_MESSAGE0:"自定义 语料库 %1[%2]",MPYTHONS_ADIALOGUE_ROBOT_MY_FAQs_HELPURL:"",MPYTHONS_ADIALOGUE_ROBOT_MY_FAQs_MESSAGE0:"输入对话 获得响应 %1",MPYTHONS_ADIALOGUE_ROBOT_MY_FAQs_TOOLTIP:"",MPYTHONS_ADIALOGUE_ROBOT_FAQs_RETURN_MESSAGE0:"识别响应",MPYTHONS_ADIALOGUE_ROBOT_FAQs_RETURN_TOOLTIP:"",MPYTHONS_ADIALOGUE_ROBOT_FAQs_RETURN_HELPURL:"",MPYTHONS_ADIALOGUE_ROBOT_CORPUS2_HELPURL:"",MPYTHONS_ADIALOGUE_ROBOT_CORPUS2_MESSAGE0:"选择跟 %1 聊天",MPYTHONS_ADIALOGUE_ROBOT_CORPUS2_TOOLTIP:"",Jenny:"珍妮",Jack:"杰克",Tom:"汤姆",MPYTHONS_ADIALOGUE_ROBOT_FEED_HELPURL:"",MPYTHONS_ADIALOGUE_ROBOT_FEED_MESSAGE0:"选择 %1 %2 模式%3 %4 喂养%5",MPYTHONS_ADIALOGUE_ROBOT_FEED_TOOLTIP:"",MPYTHONS_ADIALOGUE_READ_TRAINING_LIBRARY_HELPURL:"",MPYTHONS_ADIALOGUE_READ_TRAINING_LIBRARY_MESSAGE0:"查看训练库 选择%1",MPYTHONS_ADIALOGUE_READ_TRAINING_LIBRARY_TOOLTIP:"",MPYTHON_GESTURE_RANDOM_NUMBER_HELPURL:"",MPYTHON_GESTURE_RANDOM_NUMBER_MESSAGE0:"生成随机数 %1",MPYTHON_GESTURE_RANDOM_NUMBER_TOOLTIP:"",MPYTHON_AGESTURE_SHOW_WINDOW_HELPURL:"",MPYTHON_AGESTURE_SHOW_WINDOW_MESSAGE0:"显示窗口",MPYTHON_AGESTURE_SHOW_WINDOW_TOOLTIP:"",MPYTHON_AGESTURE_IMSHOW_HELPURL:"",MPYTHON_AGESTURE_IMSHOW_MESSAGE0:"处理图像 %1",MPYTHON_AGESTURE_IMSHOW_TOOLTIP:"",MPYTHON_AGESTURE_TRAIN_MODEL_HELPURL:"",MPYTHON_AGESTURE_TRAIN_MODEL_MESSAGE0:"选择训练库 knn模型",MPYTHON_AGESTURE_TRAIN_MODEL_TOOLTIP:"",MPYTHON_AGESTURE_LOAD_MODEL_HELPURL:"",MPYTHON_AGESTURE_LOAD_MODEL_MESSAGE0:"载入knn模型 存储路径%1",MPYTHON_AGESTURE_LOAD_MODEL_TOOLTIP:"",MPYTHON_AGESTURE_OPEN_IMAGES_HELPURL:"",MPYTHON_AGESTURE_OPEN_IMAGES_MESSAGE0:"%1打开图片 存储路径%2 图片名%3",MPYTHON_AGESTURE_OPEN_IMAGES_TOOLTIP:"",MPYTHON_AGESTURE_ARRAY_MESSAGE0:"选择%1 构建特征数据%2",MPYTHON_AGESTURE_ARRAY_TOOLTIP:"",MPYTHON_AGESTURE_ARRAY_HELPURL:"",MPYTHON_GESTURE_RANDOM_RANK_MESSAGE0:"打乱排序%1 ",MPYTHON_GESTURE_RANDOM_RANK_TOOLTIP:"",MPYTHON_GESTURE_RANDOM_RANK_HELPURL:"",MPYTHON_GESTURE_READ_LEND_MESSAGE0:" %1 图片特征",MPYTHON_GESTURE_READ_LEND_TOOLTIP:"",MPYTHON_GESTURE_READ_LEND_HELPURL:"",MPYTHON_GESTURE_START_SRAIN_HELPURL:"",MPYTHON_GESTURE_START_SRAIN_MESSAGE0:"开始训练 手势识别 期望%1 目标%2",MPYTHON_GESTURE_START_SRAIN_TOOLTIP:"",MPYTHON_GESTURE_SCORE_HELPURL:"",MPYTHON_GESTURE_SCORE_MESSAGE0:"进行评分 期望%1 目标%2",MPYTHON_GESTURE_SCORE_TOOLTIP:"",MPYTHON_GESTURE_DIMENSIONALITY_REDUCTION_HELPURL:"",MPYTHON_GESTURE_DIMENSIONALITY_REDUCTION_TOOLTIP:"",MPYTHON_GESTURE_DIMENSIONALITY_REDUCTION_MESSAGE0:"%1 数组降维 图片总数%2",MPYTHON_GESTURE_FORECAST_HELPURL:"",MPYTHON_GESTURE_FORECAST_TOOLTIP:"",MPYTHON_GESTURE_FORECAST_MESSAGE0:"预测结果%1",MPYTHON_AGESTURE_SAVE_MODEL_HELPURL:"",MPYTHON_AGESTURE_SAVE_MODEL_MESSAGE0:"保存模型 存储路径%1",MPYTHON_AGESTURE_SAVE_MODEL_TOOLTIP:"",MPYTHON_AGESTURE_FORECAST_PICTURE_HELPURL:"",MPYTHON_AGESTURE_FORECAST_PICTURE_MESSAGE0:"%1图片 预测图片 ",MPYTHON_AGESTURE_FORECAST_PICTURE_TOOLTIP:"",MPYTHON_GESTURE_PICTURE_DIMENSIONALITY_REDUCTION_HELPURL:"",MPYTHON_GESTURE_PICTURE_DIMENSIONALITY_REDUCTION_TOOLTIP:"",MPYTHON_GESTURE_PICTURE_DIMENSIONALITY_REDUCTION_MESSAGE0:"%1 彩色图像降维",MPYTHONS_FACEAI_READ_PICTURE_PATH_HELPURL:"",MPYTHONS_FACEAI_READ_PICTURE_PATH_MESSAGE0:"选择人脸库 图片存储路径%1",MPYTHONS_FACEAI_READ_PICTURE_PATH_TOOLTIP:"",MPYTHONS_FACEAI_RECOGNITION_IMPORT_MODEL_SITE_HELPURL:"",MPYTHONS_FACEAI_RECOGNITION_IMPORT_MODEL_SITE_MESSAGE0:"加载模型 存储路径%1",MPYTHONS_FACEAI_RECOGNITION_IMPORT_MODEL_SITE_TOOLTIP:"",MPYTHONS_FACEAI_FACE_GENDER_DETECTION_RETURN_HELPURL:"",MPYTHONS_FACEAI_FACE_GENDER_DETECTION_RETURN_MESSAGE0:"第%1位人脸性别结果 置信度",MPYTHONS_FACEAI_FACE_GENDER_DETECTION_RETURN_TOOLTIP:"",MPYTHONS_FACEAI_FACE_EMOTION_DETECTION_RETURN_HELPURL:"",MPYTHONS_FACEAI_FACE_EMOTION_DETECTION_RETURN_MESSAGE0:"第%1位人脸情绪结果 置信度",MPYTHONS_FACEAI_FACE_EMOTION_DETECTION_RETURN_TOOLTIP:"",MPYTHONS_FACEAI_FACE_GENDER_RESULT_HELPURL:"",MPYTHONS_FACEAI_FACE_GENDER_RESULT_MESSAGE0:"第%1位人脸性别 结果",MPYTHONS_FACEAI_FACE_GENDER_RESULT_TOOLTIP:"",MPYTHONS_FACEAI_FACE_EMOTION_RESULT_HELPURL:"",MPYTHONS_FACEAI_FACE_EMOTION_RESULT_MESSAGE0:"第%1位人脸情绪 结果",MPYTHONS_FACEAI_FACE_EMOTION_RESULT_TOOLTIP:"",MPYTHON_FACEAI_CHOOSE_FACE_POOL_HELPURL:"",MPYTHON_FACEAI_CHOOSE_FACE_POOL_MESSAGE0:"选择人脸库 %1",MPYTHON_FACEAI_CHOOSE_FACE_POOL_TOOLTIP:"",MPYTHONS_FACEAI_FACE_EMOTION_RETURN_HELPURL:"",MPYTHONS_FACEAI_FACE_EMOTION_RETURN_MESSAGE0:"第%1位情绪为 %2",MPYTHONS_FACEAI_FACE_EMOTION_RETURN_TOOLTIP:"",MPYTHONS_FACEAI_FACE_GENDER_RETURN_HELPURL:"",MPYTHONS_FACEAI_FACE_GENDER_RETURN_MESSAGE0:"第%1位性别为 %2",MPYTHONS_FACEAI_FACE_GENDER_RETURN_TOOLTIP:"",MPYTHONS_FACEAI_FACE_NUMBER_RETURN_HELPURL:"",MPYTHONS_FACEAI_FACE_NUMBER_RETURN_MESSAGE0:"人脸数量",MPYTHONS_FACEAI_FACE_NUMBER_RETURN_TOOLTIP:"",MPYTHONS_FACEAI_FACE_EXPRESSION_RETURN_HELPURL:"",MPYTHONS_FACEAI_FACE_EXPRESSION_RETURN_MESSAGE0:"表情数量",MPYTHONS_FACEAI_FACE_EXPRESSION_RETURN_TOOLTIP:"",MPYTHONS_FACEAI_FACE_RECOGNITION_VEDIO_RETURN_HELPURL:"",MPYTHONS_FACEAI_FACE_RECOGNITION_VEDIO_RETURN_MESSAGE0:"人脸实时检测 %1",MPYTHONS_FACEAI_FACE_RECOGNITION_VEDIO_RETURN_TOOLTIP:"",MPYTHONS_FACEAI_FACE_IMG_RESULT_HELPURL:"",MPYTHONS_FACEAI_FACE_IMG_RESULT_MESSAGE0:"显示图片",MPYTHONS_FACEAI_FACE_IMG_RESULT_TOOLTIP:"",MPYTHONS_FACEAI_CHOOSE_FACE_DATABASE_HELPURL:"",MPYTHONS_FACEAI_CHOOSE_FACE_DATABASE_MESSAGE0:"选择人脸%1 %2",MPYTHONS_FACEAI_CHOOSE_FACE_DATABASE_TOOLTIP:"",MPYTHONS_WORD_CLOUD_INITIALIZE_HELPURL:"",MPYTHONS_WORD_CLOUD_INITIALIZE_MESSAGE0:"初始化 文章聚类",MPYTHONS_WORD_CLOUD_INITIALIZE_TOOLTIP:"",MPYTHONS_WORD_CLOUD_TITLE_HELPURL:"文章数量不超过100",MPYTHONS_WORD_CLOUD_TITLE_MESSAGE0:"标题 第%1文章",MPYTHONS_WORD_CLOUD_TITLE_TOOLTIP:"",MPYTHONS_WORD_CLOUD_CONTENT_HELPURL:"文章数量不超过100",MPYTHONS_WORD_CLOUD_CONTENT_MESSAGE0:"内容 第%1文章",MPYTHONS_WORD_CLOUD_CONTENT_TOOLTIP:"",MPYTHONS_WORD_CLOUD_JIEBA_HELPURL:"文章数量不超过100",MPYTHONS_WORD_CLOUD_JIEBA_MESSAGE0:"文章内容转为列表 第%1文章",MPYTHONS_WORD_CLOUD_JIEBA_TOOLTIP:"",MPYTHONS_WORD_CLOUD_STOPWORD_HELPURL:"",MPYTHONS_WORD_CLOUD_STOPWORD_MESSAGE0:"读取停词表%1",MPYTHONS_WORD_CLOUD_STOPWORD_TOOLTIP:"返回的是100篇文章里的符号",MPYTHONS_WORD_CLOUD_DELETE_AFTER_NEWS_HELPURL:"",MPYTHONS_WORD_CLOUD_DELETE_AFTER_NEWS_MESSAGE0:"删除后的新闻",MPYTHONS_WORD_CLOUD_DELETE_AFTER_NEWS_TOOLTIP:"",MPYTHONS_WORD_CLOUD_THESAURUS_CONSTRUCTION_DATA_HELPURL:"",MPYTHONS_WORD_CLOUD_THESAURUS_CONSTRUCTION_DATA_MESSAGE0:"构造词云所用的数据",MPYTHONS_WORD_CLOUD_THESAURUS_CONSTRUCTION_DATA_TOOLTIP:"",MPYTHONS_WORD_CLOUD_COUNT_RANK_HELPURL:"",MPYTHONS_WORD_CLOUD_COUNT_RANK_MESSAGE0:"计算总数 排序前%1",MPYTHONS_WORD_CLOUD_COUNT_RANK_TOOLTIP:"返回的是100篇文章里的文本",MPYTHONS_WORD_CLOUD_SAVE_PICTURE_HELPURL:"",MPYTHONS_WORD_CLOUD_SAVE_PICTURE_MESSAGE0:"文章聚类训练结果 保存为图片",MPYTHONS_WORD_CLOUD_SAVE_PICTURE_TOOLTIP:"",MPYTHONS_WORD_CLOUD_DISPLAY_PICTURE_HELPURL:"",MPYTHONS_WORD_CLOUD_DISPLAY_PICTURE_MESSAGE0:"显示图片",MPYTHONS_WORD_CLOUD_DISPLAY_PICTURE_TOOLTIP:"",FIRST:"first",LAST:"last",MPYTHON_USOCKET_BLOCK:"block",MPYTHON_USOCKET_UNBLOCK:"unblock",MPYTHON_USOCKET_SETSOCKOPT_HELPURL:"http://docs.micropython.org/en/latest/library/usocket.html#usocket.socket",MPYTHON_USOCKET_SETSOCKOPT_MESSAGE0:"set socket %1 with af %2 and type %3",MPYTHON_USOCKET_SETSOCKOPT_TOOLTIP:"Sets the value of a given socket option. The required symbolic constants are defined in the socket module (SO_*, etc.). This value can be an integer or a class byte object representing a buffer.",MPYTHON_USOCKET_READ_HELPURL:"http://docs.micropython.org/en/latest/library/usocket.html#usocket.socket.read",MPYTHON_USOCKET_READ_MESSAGE0:"read %2 bytes from socket %1 and returns a byte object",MPYTHON_USOCKET_READ_TOOLTIP:"if no number of read is given, run in a mode similar to socket.readall ()",MPYTHON_USOCKET_SETBLOCKING_HELPURL:"http://docs.micropython.org/en/latest/library/usocket.html#usocket.socket.setblocking",MPYTHON_USOCKET_SETBLOCKING_MESSAGE0:"set socket %1 as %2 mode ",MPYTHON_USOCKET_SETBLOCKING_TOOLTIP:"",MPYTHON_USOCKET_SETTIMEOUT_HELPURL:"http://docs.micropython.org/en/latest/library/usocket.html#usocket.socket.settimeout",MPYTHON_USOCKET_SETTIMEOUT_MESSAGE0:"socket %1 sets timeout as %2 seconds",MPYTHON_USOCKET_SETTIMEOUT_TOOLTIP:"",MPYTHON_USOCKET_SENDALL_HELPURL:"http://docs.micropython.org/en/latest/library/usocket.html#usocket.socket.send",MPYTHON_USOCKET_SENDALL_MESSAGE0:"Socket%1 sends%2 continuously and returns the number of bytes sent",MPYTHON_USOCKET_SENDALL_TOOLTIP:"Send all data to sockets. Sockets must be connected to remote sockets. Unlike send (), this method will attempt to send all data by sending blocks continuously.",MPYTHON_USOCKET_SENDS_HELPURL:"http://docs.micropython.org/en/latest/library/usocket.html#usocket.socket.send",MPYTHON_USOCKET_SENDS_MESSAGE0:"socket %1 send %2 and returns the number of bytes sent",MPYTHON_USOCKET_SENDS_TOOLTIP:"Send data to the socket. The socket must be connected to a remote socket. Returns number of bytes sent, which may be smaller than the length of data (“short write”).",MPYTHON_USOCKET_SEND_HELPURL:"http://docs.micropython.org/en/latest/library/usocket.html#usocket.socket.send",MPYTHON_USOCKET_SEND_MESSAGE0:"socket %1 send %2 and returns the number of bytes sent",MPYTHON_USOCKET_SEND_TOOLTIP:"Send data to the socket. The socket must be connected to a remote socket. Returns number of bytes sent, which may be smaller than the length of data (“short write”).",MPYTHON_LINE_BREAK_HELPURL:"",MPYTHON_LINE_BREAK_MESSAGE0:"Escape character %1",MPYTHON_LINE_BREAK_TOOLTIP:"Escape character",MPYTHON_USOCKET_SENDTO_HELPURL:"http://docs.micropython.org/en/latest/library/usocket.html#usocket.socket.sendto",MPYTHON_USOCKET_SENDTO_MESSAGE0:"socket %1 send %2 to address %3",MPYTHON_USOCKET_SENDTO_TOOLTIP:"Send data to the socket. The socket should not be connected to a remote socket, since the destination socket is specified by address.",MPYTHON_USOCKET_RECV_HELPURL:"http://docs.micropython.org/en/latest/library/usocket.html#usocket.socket.recv",MPYTHON_USOCKET_RECV_MESSAGE0:"socket %1 receives with maximum amount %2 and returns received data object",MPYTHON_USOCKET_RECV_TOOLTIP:"",MPYTHON_TEXT_ESC_HELPURL:"",MPYTHON_TEXT_ESC_MESSAGE0:"text ESC %1",MPYTHON_TEXT_ESC_TOOLTIP:"text ESC",MPYTHON_USOCKET_RECVFROM_HELPURL:"http://docs.micropython.org/en/latest/library/usocket.html#usocket.socket.recvfrom",MPYTHON_USOCKET_RECVFROM_MESSAGE0:"socket %1 receives with maximum amount %2 and returns received data tuple",MPYTHON_USOCKET_RECVFROM_TOOLTIP:"Tuple format: (bytes, address)",MPYTHON_USOCKET_CONNECT_HELPURL:"http://docs.micropython.org/en/latest/library/usocket.html#usocket.socket.connect",MPYTHON_USOCKET_CONNECT_MESSAGE0:"socket %1 connect to host %2 with port %3",MPYTHON_USOCKET_CONNECT_TOOLTIP:"",MPYTHON_USOCKET_GETADDRINFO_HELPURL:"http://docs.micropython.org/en/latest/library/usocket.html#usocket.socket.getaddrinfo",MPYTHON_USOCKET_GETADDRINFO_MESSAGE0:"parse host %1 with port %2 and return ip",MPYTHON_USOCKET_GETADDRINFO_TOOLTIP:"Internet required",MPYTHON_USOCKET_ACCEPT_HELPURL:"http://docs.micropython.org/en/latest/library/usocket.html#usocket.socket.accept",MPYTHON_USOCKET_ACCEPT_MESSAGE0:"socket %1 receive connection request and return socket tuple",MPYTHON_USOCKET_ACCEPT_TOOLTIP:"Receive connection request.Socket needs to specify an address and listen to the connection.The return value is (conn, address)\nconn: A new socket object that can be used to send and receive message\naddress: Client address connected to the server",MPYTHON_USOCKET_LISTEN_HELPURL:"http://docs.micropython.org/en/latest/library/usocket.html#usocket.socket.listen",MPYTHON_USOCKET_LISTEN_MESSAGE0:"listen to socket %1 with backlog as %2",MPYTHON_USOCKET_LISTEN_TOOLTIP:"backlog : Maximum number of accepted sockets, at least 0, default reasonable value if not specified",MPYTHON_USOCKET_BIND_HELPURL:"http://docs.micropython.org/en/latest/library/usocket.html#usocket.socket.bind",MPYTHON_USOCKET_BIND_MESSAGE0:"socket %1 bind with address %2 and port %3",MPYTHON_USOCKET_BIND_TOOLTIP:"",MPYTHON_USOCKET_CLOSE_HELPURL:"http://docs.micropython.org/en/latest/library/usocket.html#usocket.socket.close",MPYTHON_USOCKET_CLOSE_MESSAGE0:"close socket %1",MPYTHON_USOCKET_CLOSE_TOOLTIP:"",MPYTHON_USOCKET_INIT_HELPURL:"http://docs.micropython.org/en/latest/library/usocket.html#usocket.socket",MPYTHON_USOCKET_INIT_MESSAGE0:"create socket %1 with af %2 and type %3",MPYTHON_USOCKET_INIT_TOOLTIP:"AF_INET:=2 — TCP/IP – IPv4\nAF_INET6 :=10 — TCP/IP – IPv6\nSOCK_STREAM:=1 — TCP stream\nSOCK_DGRAM:=2 — UDP datagram\nSOCK_RAW :=3 — Original socket\nSO_REUSEADDR : =4 — Socket reusable\n",MPYTHON_GET_POST_HELPURL:"",MPYTHON_GET_POST_MESSAGE0:"%1 request url %2 submit fields %3",MPYTHON_GET_POST_TOOLTIP:"",MPYTHON_UREQUESTS_GET_POST_HELPURL:"",MPYTHON_UREQUESTS_GET_POST_TOOLTIP:"",MPYTHON_UREQUESTS_GET_POST_MESSAGE0:"%1 request url %2 submit fields %3",MPYTHON_UREQUESTS_POST_FILE_HELPURL:"",MPYTHON_UREQUESTS_POST_FILE_TOOLTIP:"",MPYTHON_UREQUESTS_POST_FILE_MESSAGE0:"Post submit file %1 request url %2 file path %3 mime type %4 fields %5",MPYTHON_RESPONSE_HELPURL:"",MPYTHON_RESPONSE_MESSAGE0:"return response content as %1",MPYTHON_RESPONSE_TOOLTIP:"",STRING:"string",_BYTE:"byte",TEXT:"text",MPYTHON_RESPONSE_ATTRIBUTE_HELPURL:"",MPYTHON_RESPONSE_ATTRIBUTE_MESSAGE0:"response attribute %1",MPYTHON_RESPONSE_ATTRIBUTE_TOOLTIP:"",MPYTHON_SLEEP_MESSAGE0:"waiting for %1 %2",MPYTHON_SLEEP_TOOLTIP:"Wait for the time before proceeding to the next command.\n1 second = 1,000 milliseconds (ms)\n1 second = 1,000,000 microseconds (μs)",MPYTHON_MS:"millisecond(ms)",MPYTHON_US:"microsecond(μs)",MPYTHON_TIME_DIFFERENCE_HELPURL:"",MPYTHON_TIME_DIFFERENCE_MESSAGE0:"Return time difference from %1 to %2",MPYTHON_TIME_DIFFERENCE_TOOLTIP:"Measure the period between successive calls to ticks_ms (), ticks_us ()",MPYTHON_TYPE_HELPURL:"",MPYTHON_TYPE_MESSAGE0:"type %1",MPYTHON_TYPE_TOOLTIP:"",MPYTHON_TYPE_IS_HELPURL:"",MPYTHON_TYPE_IS_MESSAGE0:"type %1 is %2",MPYTHON_TYPE_IS_TOOLTIP:"",MPYTHON_EVAL_HELPURL:"",MPYTHON_EVAL_MESSAGE0:"eval %1",MPYTHON_EVAL_TOOLTIP:"Simulate a string expression and return the result",MPYTHON_RETURN_HELPURL:"",MPYTHON_RETURN_MESSAGE0:"return %1",MPYTHON_RETURN_TOOLTIP:"",MPYTHON_BLUEBIT_AMBIENTLIGHT_HELPURL:"",MPYTHON_BLUEBIT_AMBIENTLIGHT_MESSAGE0:"I2C digital ray",MPYTHON_BLUEBIT_AMBIENTLIGHT_TOOLTIP:"",MPYTHON_WIFI_ALL_CONFIG_HELPURL:"",MPYTHON_WIFI_ALL_CONFIG_MESSAGE0:"Wi-Fi configuration information",MPYTHON_WIFI_ALL_CONFIG_TOOLTIP:"Returns all wifi configuration information as tuples",MPYTHON_WIFI_ISCONNECTED_HELPURL:"",MPYTHON_WIFI_ISCONNECTED_MESSAGE0:"Has connected to Wi-Fi",MPYTHON_WIFI_ISCONNECTED_TOOLTIP:"",MPYTHON_INIT_ASSISTANT_WIFI_HELPURL:"",MPYTHON_INIT_ASSISTANT_WIFI_MESSAGE0:"Wi-Fi Connect voice assistant Wi-Fi name%1 password%2",MPYTHON_INIT_ASSISTANT_WIFI_TOOLTIP:"Control board passes WIF to voice assistant through serial port",MPYTHON_INIT_ASSISTANT_PROFILE_HELPURL:"",MPYTHON_INIT_ASSISTANT_PROFILE_TOOLTIP:"Files need to be uploaded to the board on the file system first",MPYTHON_INIT_ASSISTANT_PROFILE_MESSAGE0:"Read Voice Assistant Text Files %1",MPYTHON_BLUEBIT_SEG_DISPLAY_HELPURL:"",MPYTHON_BLUEBIT_SEG_DISPLAY_MESSAGE0:"digital tube display %1",MPYTHON_BLUEBIT_SEG_DISPLAY_TOOLTIP:"-999~9999",MPYTHON_BLUEBIT_SEG_CLEAR_HELPURL:"",MPYTHON_BLUEBIT_SEG_CLEAR_MESSAGE0:"clear the digital tube display",MPYTHON_BLUEBIT_SEG_CLEAR_TOOLTIP:"",MPYTHON_MACHINE_RESET_HELPURL:"",MPYTHON_MACHINE_RESET_MESSAGE0:"reset",MPYTHON_MACHINE_RESET_TOOLTIP:"Same as pressing an external reset button",MPYTHON_BLUEBIT_GET_COLOR_HELPURL:"",MPYTHON_BLUEBIT_GET_COLOR_MESSAGE0:"I2C RGB color %1",MPYTHON_BLUEBIT_GET_COLOR_TOOLTIP:"",MPYTHON_BLUEBIT_GET_ALL_COLOR_HELPURL:"",MPYTHON_BLUEBIT_GET_ALL_COLOR_MESSAGE0:"I2C RGB color",MPYTHON_BLUEBIT_GET_ALL_COLOR_TOOLTIP:"Returns as list",MPYTHON_BLUEBIT_GET_COLOR_HSV_HELPURL:"",MPYTHON_BLUEBIT_GET_COLOR_HSV_MESSAGE0:"I2C HSV color %1",MPYTHON_BLUEBIT_GET_COLOR_HSV_TOOLTIP:"HSV(Hue, Saturation, Value)",MPYTHON_BLUEBIT_GET_ALL_COLOR_HSV_HELPURL:"",MPYTHON_BLUEBIT_GET_ALL_COLOR_HSV_MESSAGE0:"I2C HSV color",MPYTHON_BLUEBIT_GET_ALL_COLOR_HSV_TOOLTIP:"HSV(Hue, Saturation, Value)",MPYTHON_BLUEBIT_GET_FORCE_MEASURE_HELPURL:"",MPYTHON_BLUEBIT_GET_FORCE_MEASURE_MESSAGE0:"I2C force sensor Dial code %1",MPYTHON_BLUEBIT_GET_FORCE_MEASURE_TOOLTIP:"I2C Address Corresponds to the Requirements of Coding Switches",MPYTHON_BLUEBIT_GET_ELECTRICITY_MEASURE_HELPURL:"",MPYTHON_BLUEBIT_GET_ELECTRICITY_MEASURE_MESSAGE0:"I2C current sensor Dial code %1",MPYTHON_BLUEBIT_GET_ELECTRICITY_MEASURE_TOOLTIP:"I2C Address Corresponds to the Requirements of Coding Switches",MPYTHON_BLUEBIT_GET_VOLTAGE_MEASURE_HELPURL:"",MPYTHON_BLUEBIT_GET_VOLTAGE_MEASURE_MESSAGE0:"I2C voltage sensor Dial code %1",MPYTHON_BLUEBIT_GET_VOLTAGE_MEASURE_TOOLTIP:"I2C Address Corresponds to the Requirements of Coding Switches",MPYTHON_BLUEBIT_GET_MAGNETIC_MEASURE_HELPURL:"",MPYTHON_BLUEBIT_GET_MAGNETIC_MEASURE_MESSAGE0:"I2C magnetic sensor Dial code %1",MPYTHON_BLUEBIT_GET_MAGNETIC_MEASURE_TOOLTIP:"I2C Address Corresponds to the Requirements of Coding Switches",MPYTHON_BLUEBIT_GET_PH_MEASURE_HELPURL:"",MPYTHON_BLUEBIT_GET_PH_MEASURE_MESSAGE0:"I2C PH sensor Dial code %1",MPYTHON_BLUEBIT_GET_PH_MEASURE_TOOLTIP:"I2C Address Corresponds to the Requirements of Coding Switches",MPYTHON_BLUEBIT_GET_TDS_MEASURE_HELPURL:"",MPYTHON_BLUEBIT_GET_TDS_MEASURE_MESSAGE0:"I2C TDS sensor Dial code %1",MPYTHON_BLUEBIT_GET_TDS_MEASURE_TOOLTIP:"I2C Address Corresponds to the Requirements of Coding Switches",MPYTHON_BLUEBIT_GET_PRESSURE_MEASURE_HELPURL:"",MPYTHON_BLUEBIT_GET_PRESSURE_MEASURE_MESSAGE0:"I2C Pressure sensor Dial code %1",MPYTHON_BLUEBIT_GET_PRESSURE_MEASURE_TOOLTIP:"I2C Address Corresponds to the Requirements of Coding Switches",MPYTHON_BLUEBIT_GET_PHOTOGATE_TIMER_MEASURE_HELPURL:"",MPYTHON_BLUEBIT_GET_PHOTOGATE_TIMER_MEASURE_MESSAGE0:"I2C Photogate Timer sensor Dial code %1",MPYTHON_BLUEBIT_GET_PHOTOGATE_TIMER_MEASURE_TOOLTIP:"I2C Address Corresponds to the Requirements of Coding Switches",MPYTHON_RED:"red",MPYTHON_GREEN:"green",MPYTHON_BLUE:"blue",MPYTHON_MUSIC_PIN_P6:"default",MPYTHON_MUSIC_PIN_P6_HELPURL:"",MPYTHON_MUSIC_PIN_P6_MESSAGE0:"%1",MPYTHON_MUSIC_PIN_P6_TOOLTIP:"",MICROBIT_MUSIC_PLAY_BUILT_IN_MESSAGE0:"play music %1 wait %2 loop %3 Pin %4",MICROBIT_MUSIC_PLAY_BUILT_IN_TOOLTIP:"Play the built-in music, you can set the standby mode and loop playback.",MICROBIT_MUSIC_PLAY_BUILT_IN_HELPURL:"https://microbit-micropython.readthedocs.io/en/latest/music.html#built-in-melodies",MICROBIT_MUSIC_PITCH_MESSAGE0:"play tone %1 %2 delay %3 millisecond(s) at Pin %4",MICROBIT_MUSIC_PITCH_TOOLTIP:"Plays the tone for the set length of time.",MICROBIT_MUSIC_PITCH_HELPURL:"https://microbit-micropython.readthedocs.io/en/latest/music.html#music.pitch",MICROBIT_MUSIC_PLAY_LIST_OF_NOTES_MESSAGE0:"at Pin %5 play note list %1 wait %2 %3 loop %4",MICROBIT_MUSIC_PLAY_LIST_OF_NOTES_TOOLTIP:"Play a list of notes, such as C4:4, G4:8, etc., the notes are in string form, the default pin is P6 of the mPython board",MICROBIT_MUSIC_PLAY_LIST_OF_NOTES_HELPURL:"https://mpython.readthedocs.io/zh/latest/tutorials/basics/buzz.html",MICROBIT_MUSIC_RESET_HELPURL:"https://microbit-micropython.readthedocs.io/en/latest/music.html#music.reset",MICROBIT_MUSIC_RESET_MESSAGE0:"restore music settings",MICROBIT_MUSIC_RESET_TOOLTIP:"Restore all music settings (current beats, scales, and periods) to their default values.",MICROBIT_MUSIC_STOP_HELPURL:"https://microbit-micropython.readthedocs.io/en/latest/music.html#music.stop",MICROBIT_MUSIC_STOP_MESSAGE0:"stop playing music at Pin %1",MICROBIT_MUSIC_STOP_TOOLTIP:"The default pin is P6 of the mPython board",MICROBIT_MUSIC_SET_TEMPO_MESSAGE0:"set each beat equal to %1 notes, the number of beats per minute is %2",MICROBIT_MUSIC_SET_TEMPO_TOOLTIP:"Set the playback speed (beat). A certain number of tick represents a beat, the number of beats per minute per beat (BPM beats per minute).",MICROBIT_MUSIC_SET_TEMPO_HELPURL:"https://microbit-micropython.readthedocs.io/en/latest/music.html#music.set_tempo",MICROBIT_MUSIC_SET_TEMPO_SPEED_MESSAGE0:"set the playback speed to %1 times",MICROBIT_MUSIC_SET_TEMPO_SPEED_TOOLTIP:"The 4th note is 1 beat, and the number of beats per minute is 120 by default, which is 1 times the playback speed.",MICROBIT_MUSIC_SET_TEMPO_SPEED_HELPURL:"https://microbit-micropython.readthedocs.io/en/latest/music.html#music.set_tempo",MICROBIT_MUSIC_GET_TEMPO_MESSAGE0:"current beats",MICROBIT_MUSIC_GET_TEMPO_TOOLTIP:"Get current beats: Taps per beat, beats per minute (BPM).",MICROBIT_MUSIC_GET_TEMPO_HELPURL:"https://microbit-micropython.readthedocs.io/en/latest/music.html#music.get_tempo",MPYTHON_BLUEBIT_HUM_TEM_HELPURL:"",MPYTHON_BLUEBIT_HUM_TEM_TOOLTIP:"",MPYTHON_BLUEBIT_HUM_TEM_MESSAGE0:"I2C %1",MPYTHON_BLUEBIT_TEMPERATURE:"temperature",MPYTHON_BLUEBIT_HUMIDITY:"humidity",MPYTHON_UART_INIT_HELPURL:"",MPYTHON_UART_INIT_MESSAGE0:"initialize serial port %4 as baudrate %1 tx %2 rx %3",MPYTHON_UART_INIT_TOOLTIP:"mPython board supports 3 sets of serial ports. 0 for repl, remaining 1, 2 sets of serial ports available. All pins can be used as the input of serial port rx, except P2, p3, p4, p10 can only be used as input, and all the other pins can be used as output tx. in theory.",MPYTHON_UART_DEINIT_HELPURL:"",MPYTHON_UART_DEINIT_MESSAGE0:"close serial port %1",MPYTHON_UART_DEINIT_TOOLTIP:"Turn off the UART bus",MPYTHON_UART_WRITE_STR_HELPURL:"",MPYTHON_UART_WRITE_STR_MESSAGE0:"serial port %1 write string %2 %3",MPYTHON_UART_WRITE_STR_TOOLTIP:"Write a text to the bus. \nReturn value: The number of bytes to write or None to time out.",MPYTHON_UART_WRITE_HEX_HELPURL:"",MPYTHON_UART_WRITE_HEX_MESSAGE0:"serial port %1 write hex string %2 %3",MPYTHON_UART_WRITE_HEX_TOOLTIP:"",MPYTHON_UART_HAS_DATA_HELPURL:"",MPYTHON_UART_HAS_DATA_MESSAGE0:"serial port %1 has readable data",MPYTHON_UART_HAS_DATA_TOOLTIP:"Returns an integer that counts the number of characters that can be read without blocking. \n If there are no characters available, it will return 0, if there are characters, it will return a positive number. \n This method can return 1 even if there are multiple readable characters.",MPYTHON_UART_READLINE_HELPURL:"",MPYTHON_UART_READLINE_MESSAGE0:"serial port %1 read a line of data",MPYTHON_UART_READLINE_TOOLTIP:"Read a line and end with a newline character.\nReturn value: Read row or None timeout.",MPYTHON_UART_READ_HELPURL:"",MPYTHON_UART_READ_MESSAGE0:"serial port %1 read data",MPYTHON_UART_READ_TOOLTIP:"Read as much serial data as possible.\n Return value: A list of bytes containing the bytes read. Returns None if the read times out.",MPYTHON_UART_READ_LENGTH_HELPURL:"",MPYTHON_UART_READ_LENGTH_MESSAGE0:"serial port %1 read data with length as %2",MPYTHON_UART_READ_LENGTH_TOOLTIP:"Read the specified length bytes data.\n Return value: A list of bytes containing the bytes read. Returns None if the read times out.",MPYTHON_UART_WRITE_BYTE_HELPURL:"",MPYTHON_UART_WRITE_BYTE_MESSAGE0:"serial port %1 write a byte %2",MPYTHON_UART_WRITE_BYTE_TOOLTIP:"The parameter is a integer as 0~255\nWrite a byte to the bus. \nReturn value: The number of bytes to write or None to time out.",MPYTHON_UART_WRITE_BYTES_HELPURL:"",MPYTHON_UART_WRITE_BYTES_MESSAGE0:"serial port %1 write bytes %2",MPYTHON_UART_WRITE_BYTES_TOOLTIP:"Write some bytes to the bus. \nReturn value: The number of bytes to write or None to time out.",TEXT_FORMAT_MESSAGE0:"format string %1 % %2",TEXT_FORMAT_TOOLTIP:"",TEXT_FORMAT_HELPURL:"",TEXT_FORMAT2_MESSAGE0:"format string %1 with %2",TEXT_FORMAT2_TOOLTIP:"",TEXT_FORMAT2_HELPURL:"",MPYTHON_BAUDRATE_HELPURL:"",MPYTHON_BAUDRATE_MESSAGE0:"%1",MPYTHON_BAUDRATE_TOOLTIP:"",MPYTHON_HIGH_LOW_HELPURL:"",MPYTHON_HIGH_LOW_MESSAGE0:"%1",MPYTHON_HIGH_LOW_TOOLTIP:"",MPYTHON_TEN_CONVERT_TO_HELPURL:"",MPYTHON_TEN_CONVERT_TO_MESSAGE0:"decimal int num %1 converted to %2 string",MPYTHON_TEN_CONVERT_TO_TOOLTIP:"",MPYTHON_BIN:"BIN",MPYTHON_OCT:"OCT",MPYTHON_HEX:"HEX",MPYTHON_CONVERT_TO_TEN_HELPURL:"",MPYTHON_CONVERT_TO_TEN_MESSAGE0:"%1 string %2 converted to decimal int num",MPYTHON_CONVERT_TO_TEN_TOOLTIP:"",MPYTHON_TEN_CONVERTED_TO_BYTES_HELPURL:"",MPYTHON_TEN_CONVERTED_TO_BYTES_MESSAGE0:"decimal int num %2 converted to %1 bytes",MPYTHON_TEN_CONVERTED_TO_BYTES_TOOLTIP:"",MPYTHON_INT_TO_CHR_HELPURL:"",MPYTHON_INT_TO_CHR_MESSAGE0:"shaping number %1 converted to character in ASCII",MPYTHON_INT_TO_CHR_TOOLTIP:"ASCII is a computer coding system based on the Latin alphabet, mainly used to display modern English and other Western European languages",MPYTHON_STR_TO_HEX_HELPURL:"",MPYTHON_STR_TO_HEX_MESSAGE0:"string %1 converted to hex bytes",MPYTHON_STR_TO_HEX_TOOLTIP:"Returns two hexadecimal numbers separated by spaces in the result",MPYTHON_CHR_TO_INT_HELPURL:"",MPYTHON_CHR_TO_INT_MESSAGE0:"character in ASCII %1 converted to shaping number",MPYTHON_CHR_TO_INT_TOOLTIP:"ASCII is a computer coding system based on the Latin alphabet, mainly used to display modern English and other Western European languages",MPYTHON_HEX_TO_BIN_STR_HELPURL:"",MPYTHON_HEX_TO_BIN_STR_MESSAGE0:"hex string %1 converted to bin bytes",MPYTHON_HEX_TO_BIN_STR_TOOLTIP:"",MPYTHON_DATA_TO_BASE64_HELPURL:"",MPYTHON_DATA_TO_BASE64_MESSAGE0:"encoding data %1 in base64 and return byte object",MPYTHON_DATA_TO_BASE64_TOOLTIP:"Base64 encoding is a process from binary to character",MPYTHON_BASE64_TO_DATA_HELPURL:"",MPYTHON_BASE64_TO_DATA_MESSAGE0:"decoding base64 data %1 and return byte object",MPYTHON_BASE64_TO_DATA_TOOLTIP:"Base64 encoding is a process from binary to character",MPYTHON_UJSON_DUMPS_HELPURL:"",MPYTHON_UJSON_DUMPS_MESSAGE0:"%1 converted to json string",MPYTHON_UJSON_DUMPS_TOOLTIP:"Key in json format must be a string, and value can be a legitimate json data type (string, number, object, array, Boolean, or none",MPYTHON_UJSON_LOADS_HELPURL:"",MPYTHON_UJSON_LOADS_MESSAGE0:"parse json string %1 and return the object",MPYTHON_UJSON_LOADS_TOOLTIP:"Key in json format must be a string, and value can be a legitimate json data type (string, number, object, array, Boolean, or none",MPYTHON_SETS_PIN_MODE_HELPURL:"https://mpython.readthedocs.io/zh/master/board/hardware.html#mpythonpindesc",MPYTHON_SETS_PIN_MODE_TOOLTIP:"Right-click help to view the pin declaration",MPYTHON_SETS_PIN_MODE_MESSAGE0:"set pin %1 as %2 mode %3 and set the value to %4",MPYTHON_SET_PIN_IN:"input",MPYTHON_SET_PIN_PUSH_PULL_OUT:"Push-pull output",MPYTHON_SET_PIN_LEAKY_OUT:"Leaky output",MPYTHON_SET_PIN_NO_PULL:"no pull",MPYTHON_SET_PIN_DOWN_PULL:"pull down",MPYTHON_SET_PIN_UP_PULL:"pull up",MPYTHON_LOCK_OBJECT_ACQUIRE_LOCK_HELPURL:"",MPYTHON_LOCK_OBJECT_ACQUIRE_LOCK_MESSAGE0:"thread lock object %1 requests lock",MPYTHON_LOCK_OBJECT_ACQUIRE_LOCK_TOOLTIP:"",MPYTHON_START_NEW_THREAD_HELPURL:"",MPYTHON_START_NEW_THREAD_MESSAGE0:"thread %1",MPYTHON_START_NEW_THREAD_TOOLTIP:"",MPYTHON_BLYNK_TERMINAL_WIDGET_VPIN_HELPURL:"",MPYTHON_BLYNK_TERMINAL_WIDGET_VPIN_MESSAGE0:"custom terminal widget on virtual pin V %1",MPYTHON_BLYNK_TERMINAL_WIDGET_VPIN_TOOLTIP:"",MPYTHON_BLYNK_SYNC_VIRTUAL_HELPURL:"",MPYTHON_BLYNK_SYNC_VIRTUAL_MESSAGE0:"synchronizing the status of virtual pin V %1",MPYTHON_BLYNK_SYNC_VIRTUAL_TOOLTIP:"",MPYTHON_BLYNK_ON_DISCONNECTED_HELPURL:"",MPYTHON_BLYNK_ON_DISCONNECTED_MESSAGE0:"when Blynk disconnected",MPYTHON_BLYNK_ON_DISCONNECTED_TOOLTIP:"",MPYTHON_BLYNK_ON_CONNECTED_HELPURL:"",MPYTHON_BLYNK_ON_CONNECTED_MESSAGE0:"when Blynk connected",MPYTHON_BLYNK_ON_CONNECTED_TOOLTIP:"",MPYTHON_BLYNKTIMER_RUN_HELPURL:"",MPYTHON_BLYNKTIMER_RUN_MESSAGE0:"run the BlynkTimer processes",MPYTHON_BLYNKTIMER_RUN_TOOLTIP:"It is recommended to put this block in 'repeat forever' block",MPYTHON_BLYNK_RUN_HELPURL:"",MPYTHON_BLYNK_RUN_MESSAGE0:"run the Blynk processes",MPYTHON_BLYNK_RUN_TOOLTIP:"It is recommended to put this block in 'repeat forever' block",MPYTHON_BLYNK_APP_NOTIFY_HELPURL:"",MPYTHON_BLYNK_APP_NOTIFY_MESSAGE0:"Blynk APP notifies %1",MPYTHON_BLYNK_APP_NOTIFY_TOOLTIP:"",MPYTHON_BLYNKTIMER_HELPURL:"",MPYTHON_BLYNKTIMER_MESSAGE0:"BlynkTimer number %1 mode %2 period %3 seconds",MPYTHON_BLYNKTIMER_TOOLTIP:'Note:\nthe serial number of the timer is automatically obtained, from top to bottom, starting from 0 and continuous, don`t do this"timer 0, timer 2", the exposed serial number parameter is convenient to view here!\nParameter:\nno_timers_err=False - disable exception raise if all all timers were stopped',MPYTHON_BLYNK_STOP_TIMERS_HELPURL:"",MPYTHON_BLYNK_STOP_TIMERS_MESSAGE0:"stop Blynk timer %1",MPYTHON_BLYNK_STOP_TIMERS_TOOLTIP:'Note:\nthe serial number of the timer is automatically obtained, from top to bottom, starting from 0 and continuous, don`t do this"timer 0, timer 2", the exposed serial number parameter is convenient to view here!\nParameter:\nno_timers_err=False - disable exception raise if all all timers were stopped',MPYTHON_UART_INPUT_HELPURL:"",MPYTHON_UART_INPUT_MESSAGE0:"get input text from serial port, title %1",MPYTHON_UART_INPUT_TOOLTIP:"",MPYTHON_BLYNK_SET_PROPERTY_HELPURL:"",MPYTHON_BLYNK_SET_PROPERTY_MESSAGE0:"set property %1 and value %2 to virtual pin",MPYTHON_BLYNK_SET_PROPERTY_TOOLTIP:"Placed in a read or write event, the virtual pin is determined by the event,the component bound to the pin will have the added property",MPYTHON_BLYNK_EMAIL_HELPURL:"",MPYTHON_BLYNK_EMAIL_MESSAGE0:"email to pre-set email address with %1 subject %2 body %3",MPYTHON_BLYNK_EMAIL_TOOLTIP:"",MPYTHON_BLYNK_GET_TIMERS_HELPURL:"",MPYTHON_BLYNK_GET_TIMERS_MESSAGE0:"available Blynk timers",MPYTHON_BLYNK_GET_TIMERS_TOOLTIP:"",MPYTHON_BLYNK_SENSOR_DATA_TO_APP_HELPURL:"",MPYTHON_BLYNK_SENSOR_DATA_TO_APP_MESSAGE0:"send data %1 to Blynk APP's virtual pin V %2",MPYTHON_BLYNK_SENSOR_DATA_TO_APP_TOOLTIP:"virtual pin: V0 ~ V255",MPYTHON_BLYNK_APP_DATA_HELPURL:"",MPYTHON_BLYNK_APP_DATA_MESSAGE0:"when received value %2 of virtual pin V %1 from Blynk",MPYTHON_BLYNK_APP_DATA_TOOLTIP:"Virtual pin: V0 ~ V255",MPYTHON_BLYNK_RECEIVED_MESSAGE0:"when received value of virtual pin V %1 from Blynk",MPYTHON_BLYNK_VALUE_MESSAGE0:"value from Blynk",MPYTHON_BLYNK_VALUE_TOOLTIP:"",MPYTHON_BLYNK_VALUE_HELPURL:"",MPYTHON_BLYNK_SETUP_HELPURL:"",MPYTHON_BLYNK_SETUP_MESSAGE0:"Blynk Settings %1 server %2 port %3 authorization code %4",MPYTHON_BLYNK_SETUP_TOOLTIP:'The server can be set to "blynk-cloud.com" or "blynk.mpython.cn"\n The default port is 8080\n Note: The mobile APP access port is 9443.',INT_TO_CHR_HELPURL:"",INT_TO_CHR_MESSAGE0:"int %1 to ASCII single character",INT_TO_CHR_TOOLTIP:"",a123_HELPURL:"",a123_MESSAGE0:"新 %1",a123_TOOLTIP:"",MPYTHON_ONENET_DISCONNECT_MESSAGE0:"disconnect from OneNET",MPYTHON_ONENET_DISCONNECT_TOOLTIP:"",MPYTHON_ONENET_DISCONNECT_HELPURL:"",MPYTHON_ONENET_MSG_MESSAGE0:"message from OneNET",MPYTHON_ONENET_MSG_TOOLTIP:"",MPYTHON_ONENET_MSG_HELPURL:"",MPYTHON_ONENET_RECV_MESSAGE0:"when received message %1 from OneNET",MPYTHON3_ONENET_RECV_MESSAGE0:"when received message from OneNET",MPYTHON_ONENET_RECV_TOOLTIP:"",MPYTHON_ONENET_RECV_HELPURL:"",MPYTHON_ONENET_RECV_MSG_MESSAGE0:"when received specific message %1 from OneNET",MPYTHON_ONENET_RECV_MSG_TOOLTIP:"",MPYTHON_ONENET_RECV_MSG_HELPURL:"",MPYTHON_ONENET_PUB_VALUE_MESSAGE0:"publish data to OneNET, name %1 value %2",MPYTHON_ONENET_PUB_VALUE_TOOLTIP:"",MPYTHON_ONENET_PUB_VALUE_HELPURL:"",MPYTHON_ONENET_PUB_DICT_MESSAGE0:"publish data to OneNET %1",MPYTHON_ONENET_PUB_DICT_TOOLTIP:"",MPYTHON_ONENET_PUB_DICT_HELPURL:"",MPYTHON_HCSR04_DISTANCE_HELPURL:"https://mpython-lib.readthedocs.io/zh/master/hcsr04/index.html#hcsr04",MPYTHON_HCSR04_DISTANCE_MESSAGE0:"%1 hcsr04 untrasonic distance, unit %2",MPYTHON_HCSR04_DISTANCE_TOOLTIP:"",MPYTHON_HCSR04_DISTANCE_MM_HELPURL:"https://mpython-lib.readthedocs.io/zh/master/hcsr04/index.html#hcsr04",MPYTHON_HCSR04_DISTANCE_MM_MESSAGE0:"%1 hcsr04 untrasonic(mm)",MPYTHON_HCSR04_DISTANCE_MM_TOOLTIP:"",MPYTHON_HCSR04_OBJ_HELPURL:"https://mpython-lib.readthedocs.io/zh/master/hcsr04/index.html#hcsr04",MPYTHON_HCSR04_OBJ_MESSAGE0:"Hcsr04 ultrasonic initialize name %1 trigger %2 echo %3",MPYTHON_HCSR04_OBJ_TOOLTIP:"",MPYTHON_PM2_5_LitresAir_HELPURL:"",MPYTHON_PM2_5_LitresAir_MESSAGE0:"RX pin %1 Number of particles with diameter of %2 in 0.1 liter air",MPYTHON_PM2_5_LitresAir_TOOLTIP:"",MPYTHON_PM2_5_MIC_HELPURL:"",MPYTHON_PM2_5_MIC_MESSAGE0:"RX pin %1 PM value concentration %2",MPYTHON_PM2_5_MIC_TOOLTIP:"",MPYTHON3_IR_REMOTE_RECV_MESSAGE0:"when infrared receiver %1 received message %2 do %3",MPYTHON_IR_REMOTE_ADDRESS_MESSAGE0:"callback address",MPYTHON_IR_REMOTE_MESSAGE_MESSAGE0:"received message",MPYTHON_IR_REMOTE_RECV_MESSAGE0:"infrared receive %1 callback address %2 callback command %3",MPYTHON_IR_REMOTE_RECV_HELPURL:"",MPYTHON_IR_REMOTE_RECV_TOOLTIP:"",MPYTHON_IR_REMOTE_SEND_MESSAGE0:"infrared send %1 address %2 command %3",MPYTHON_IR_REMOTE_SEND_HELPURL:"",MPYTHON_IR_REMOTE_SEND_TOOLTIP:"",MPYTHON_ONENET_PUB_VALUE2_MESSAGE0:"publish data to Wechat app, name %1 value %2",MPYTHON_ONENET_PUB_VALUE2_TOOLTIP:"",MPYTHON_ONENET_PUB_VALUE2_HELPURL:"",MPYTHON_ONENET_ACCEPT_MESSAGE:"If received message",MPYTHON_ONENET:"OneNET settings",MPYTHON_ONENET_WECHAT_APP:"Wechat app settings",MPYTHON_ONENET_OPTION_BOARDS:"optional mPython boards",MPYTHON_ONENET_TITLE:"OneNET",MPYTHON_SERVER:"server",MPYTHON_DEVICE_ID:"device_id",MPYTHON_PRODUCT_ID:"product_id",MPYTHON_API_KEY:"product_APIKey",MPYTHON_TOPIC:"topic",MPYTHON_ONENET_CALLBACK:"Callback function",MPYTHON_ONENET_CALLBACK_TITLE:"OneNET callback",MPYTHON_ONENET_OPTION_BOARDS_HELPURL:"",MPYTHON_ONENET_OPTION_BOARDS_MESSAGE0:"choose mPython App %1 in WeChat App",MPYTHON_ONENET_OPTION_BOARDS_TOOLTIP:"",TEXT_TO_BYTE_MESSAGE0:"convert %1 to bytes",TEXT_TO_BYTE_TOOLTIP:"Supported data type as string",TEXT_TO_BYTE_HELPURL:"",OTHER_TO_BYTE_MESSAGE0:"convert Non-text %1 to bytes",OTHER_TO_BYTE_TOOLTIP:"",OTHER_TO_BYTE_HELPURL:"",MPYTHON_BYTES_DECODE_HELPURL:"",MPYTHON_BYTES_DECODE_MESSAGE0:"convert bytes %1 to string",MPYTHON_BYTES_DECODE_TOOLTIP:"",MPYTHON_ONENET_TOOLTIP:"Create a OneNET connection",MPYTHON_ONENET_INIT_WIFI_MESSAGE0:"IoT make sure to connect to Wi-Fi with SSID %1 & Password %2",MPYTHON_ONENET_INIT_WIFI_TOOLTIP:"Let the board access the Wi-Fi environment",MPYTHON_ONENET_INIT_WIFI_HELPURL:"",MPYTHON_ONENET_RECV_FROM_WECHAT_APP_HELPURL:"",MPYTHON_ONENET_RECV_FROM_WECHAT_APP_MESSAGE0:"when receives %1 and %2 from WeChat App",MPYTHON_ONENET_RECV_FROM_WECHAT_APP_TOOLTIP:"",MPYTHON_MAC_ADDRESS_HELPURL:"",MPYTHON_MAC_ADDRESS_MESSAGE0:"MAC Address",MPYTHON_MAC_ADDRESS_TOOLTIP:"",MPYTHON_RADIO_REC_HELPURL:"",MPYTHON_RADIO_REC_MESSAGE0:"radio received",MPYTHON_RADIO_REC_TOOLTIP:"received data is bytes",MPYTHON_RADIO_SEND_HELPURL:"",MPYTHON_RADIO_SEND_MESSAGE0:"radio sends %1",MPYTHON_RADIO_SEND_TOOLTIP:"channel: 1~13",MPYTHON_RADIO_CHANNEL_HELPURL:"",MPYTHON_RADIO_CHANNEL_MESSAGE0:"set radio channel %1",MPYTHON_RADIO_CHANNEL_TOOLTIP:"channel: 1~13",MPYTHON_RADIO_ON_OFF_HELPURL:"",MPYTHON_RADIO_ON_OFF_MESSAGE0:"%1 radio",MPYTHON_RADIO_ON_OFF_TOOLTIP:"channel: 1~13",MPYTHON_RADIO_MSG_MESSAGE0:"message from Radio",MPYTHON_RADIO_MSG_TOOLTIP:"",MPYTHON_RADIO_MSG_HELPURL:"",MPYTHON3_RADIO_RECV_MESSAGE0:"when receiving broadcast message from Radio %1 do %2",MPYTHON_RADIO_RECV_MESSAGE0:"when receiving broadcast message %1 from Radio",MPYTHON_RADIO_RECV_TOOLTIP:"channel: 1~13",MPYTHON_RADIO_RECV_HELPURL:"",MPYTHON_RADIO_RECV_MSG_MESSAGE0:"when receiving specific broadcast message %1 from Radio %2 do %3",MPYTHON_RADIO_RECV_MSG_TOOLTIP:"channel: 1~13",MPYTHON_RADIO_RECV_MSG_HELPURL:"",MPYTHON_UDP_INIT_HELPURL:"",MPYTHON_UDP_INIT_MESSAGE0:"connect to UDP",MPYTHON_UDP_INIT_TOOLTIP:"base on Wi-Fi",MPYTHON_UDP_SEND_HELPURL:"",MPYTHON_UDP_SEND_MESSAGE0:"UDP send message %1 to all",MPYTHON_UDP_SEND_TOOLTIP:"",MPYTHON_UDP_SENDTO_HELPURL:"",MPYTHON_UDP_SENDTO_MESSAGE0:"UDP send message %1 to %2 port %3",MPYTHON_UDP_SENDTO_TOOLTIP:"",MPYTHON_UDP_RECV_HELPURL:"",MPYTHON_UDP_RECV_MESSAGE0:"UDP receive message",MPYTHON_UDP_RECV_TOOLTIP:"",MPYTHON_UDP_RECV_EVENT_HELPURL:"",MPYTHON_UDP_RECV_EVENT_MESSAGE0:"when received message from UDP %1 do %2",MPYTHON_UDP_RECV_EVENT_TOOLTIP:"",MPYTHON_UDP_RECV_MSG_MESSAGE0:"message from UDP",MPYTHON_UDP_RECV_MSG_TOOLTIP:"",MPYTHON_UDP_RECV_MSG_HELPURL:"",MPYTHON_DISPCHAR_MODE_1:"normal",MPYTHON_DISPCHAR_MODE_2:"rev",MPYTHON_DISPCHAR_MODE_3:"trans",MPYTHON_AUDIO_XUNFEI_TTS_HELPURL:"",MPYTHON_AUDIO_XUNFEI_TTS_MESSAGE0:"TTS play text %1",MPYTHON_AUDIO_XUNFEI_TTS_TOOLTIP:'The "Online Speech Synthesis" service needs to be enabled on the "Xunfei Open Platform" www.xfyun.cn',MPYTHON_AUDIO_XUNFEI_TTS_CONFIG_HELPURL:"https://mpython.readthedocs.io/zh/master/extboard/tutorials/tutorials_parrot.html#id3",MPYTHON_AUDIO_XUNFEI_TTS_CONFIG_MESSAGE0:"TTS config APPID %1 APIKey %2",MPYTHON_AUDIO_XUNFEI_TTS_CONFIG_TOOLTIP:'Enter the APPID and APIKey obtained on the "Xunfei Open Platform" www.xfyun.cn\nNote: To set the IP whitelist',MPYTHON_AUDIO_PLAY_HELPURL:"https://mpython.readthedocs.io/zh/master/library/mPython/audio.html#id1",MPYTHON_AUDIO_PLAY_MESSAGE0:"Audio play %1",MPYTHON_AUDIO_PLAY_TOOLTIP:"Need active speakers\nP8 left channel\nP9 right channel\nGND ground\nparameter: \n the url of the network mp3, or the mp3 that has been uploaded to the mPython board, e.g 'music_1.mp3'",MPYTHON_AUDIO_PLAY_CHOOSE_HELPURL:"https://mpython.readthedocs.io/zh/master/library/mPython/audio.html#id1",MPYTHON_AUDIO_PLAY_CHOOSE_MESSAGE0:"Audio play %1",MPYTHON_AUDIO_PLAY_CHOOSE_TOOLTIP:"Need active speakers\nP8 left channel\nP9 right channel\nGND ground\nparameter: \n the url of the network mp3, or the mp3 that has been uploaded to the mPython board, e.g 'music_1.mp3'",MPYTHON_AUDIO_DEINIT_HELPURL:"",MPYTHON_AUDIO_DEINIT_MESSAGE0:"deinit Audio",MPYTHON_AUDIO_DEINIT_TOOLTIP:"Create a cache for controlling the audio decoding",MPYTHON_AUDIO_CMD_HELPURL:"",MPYTHON_AUDIO_CMD_MESSAGE0:"Audio %1",MPYTHON_AUDIO_CMD_TOOLTIP:"",MPYTHON_AUDIO_INIT_HELPURL:"",MPYTHON_AUDIO_INIT_MESSAGE0:"initialize Audio",MPYTHON_AUDIO_INIT_TOOLTIP:"Create a cache for controlling the audio decoding",MPYTHON_AUDIO_START_RECORDING_HELPURL:"",MPYTHON_AUDIO_START_RECORDING_MESSAGE0:"Start the recording The recording time %1 seconds",MPYTHON_AUDIO_START_RECORDING_TOOLTIP:"Need mPython board v1.1 or above hardware version.The recording should not be longer than 5 seconds",MPYTHON_AUDIO_RECORDING_RESULT_HELPURL:"",MPYTHON_AUDIO_RECORDING_RESULT_MESSAGE0:"Recording the results",MPYTHON_AUDIO_RECORDING_RESULT_TOOLTIP:"Need mPython board v1.1 or above hardware version.",MPYTHON_AUDIO_DISCERN_RECORDING_HELPURL:"",MPYTHON_AUDIO_DISCERN_RECORDING_MESSAGE0:"For %1 Discern",MPYTHON_AUDIO_DISCERN_RECORDING_TOOLTIP:"Need mPython board v1.1 or above hardware version.",MPYTHON_AUDIO_DISCERN_RECORDING_RESULT_HELPURL:"",MPYTHON_AUDIO_DISCERN_RECORDING_RESULT_MESSAGE0:"Discern Recording the results",MPYTHON_AUDIO_DISCERN_RECORDING_RESULT_TOOLTIP:"Need mPython board v1.1 or above hardware version.",MPYTHON_RECORD_INIT_HELPURL:"",MPYTHON_RECORD_INIT_MESSAGE0:"initialize Recording",MPYTHON_RECORD_INIT_TOOLTIP:"Recording initialization.\nNeed mPython board v1.1 or above hardware version.",MPYTHON_RECORD_DEINIT_HELPURL:"",MPYTHON_RECORD_DEINIT_MESSAGE0:"Trelease cache of Recording",MPYTHON_RECORD_DEINIT_TOOLTIP:"Release the cache after the recording ends.\nNeed mPython board v1.1 or above hardware version.",MPYTHON_RECORD_WAV_HELPURL:"",MPYTHON_RECORD_WAV_MESSAGE0:"record audio with storage path %1 and duration %2 second(s)",MPYTHON_RECORD_WAV_TOOLTIP:"Record audio and store it in *.wav format.\nNeed mPython board v1.1 or above hardware version.",MPYTHON_ASR_HELPURL:"",MPYTHON_ASR_MESSAGE0:"get voice command within %1 seconds",MPYTHON_ASR_TOOLTIP:"Can recognize voice command within 3 seconds.\nNeed mPython board v1.1 or above hardware version.",mpython_HELPURL:"https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",mpython_button_A:"P5 (button A)",mpython_button_B:"P11 (button B)",mpython_PIN7_RGB:"P7 (Onboard RGB)",MPYTHON_PWM_PIN_P7:"P7 (mPython board)",MPYTHON_PWM_PIN_P9:"P9 (mPython box)",mpython_tem:"temperature",mpython_hum:"humidity",mpython_pre:"air pressure",mpython_left_right:"left-right",mpython_front_back:"front-back",mpython_vertical:("vertical","vertical"),mpython_horizontal:("horizontal","horizontal"),mpython_run_in_back:"background",mpython_run_in_front:"foreground",mpython_draw:"draw",mpython_clear:"clear",mpython_s:"second",mpython_ms:"millisecond",mpython_us:"microsecond",mpython_year:"year",mpython_month:"month",mpython_date:"day",mpython_hour:"hour",mpython_minute:"minute",mpython_week:"week number",mpython_days:"days number",MPYTHON_ORDER:"#",MPYTHON_REVERSE_ORDER:"countdown #",MATH_RANDOM_RANDRANGE_HELPURL:"https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",MATH_RANDOM_RANDRANGE_TOOLTIP:"Returns a random number in the specified incremental cardinality set, the base value defaults to 1",MATH_RANDOM_RANDRANGE_MESSAGE0:"random number increments from increment interval [%1 , %2) by step %3",MATH_KEEP_DECIMAL_HELPURL:"",MATH_KEEP_DECIMAL_TOOLTIP:"",MATH_KEEP_DECIMAL_MESSAGE0:"%1 keep %2 decimal places",MPYTHON_MIN:"min value",MPYTHON_MAX:"max value",MPYTHON_LENTH:"length",TUPLE_MIN_MAX_LEN_HELPURL:"https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",TUPLE_MIN_MAX_LEN_TOOLTIP:"",TUPLE_MIN_MAX_LEN_MESSAGE0:"tuple %1 %2",TUPLE_ITEM_EXIST_HELPURL:"https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",TUPLE_ITEM_EXIST_TOOLTIP:"",TUPLE_ITEM_EXIST_MESSAGE0:"tuple %1 include %2",LIST_ITEM_EXIST_HELPURL:"https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",LIST_ITEM_EXIST_TOOLTIP:"",LIST_ITEM_EXIST_MESSAGE0:"list %1 include %2",PARTS_OF_TUPLE_HELPURL:"https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",PARTS_OF_TUPLE_TOOLTIP:"The sequence count starts from 0, and the reverse count starts from 1.",PARTS_OF_TUPLE_MESSAGE0:"return tuple %1 from the %2 to the last item",PARTS_OF_TUPLE2_HELPURL:"https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",PARTS_OF_TUPLE2_TOOLTIP:"Incremental order fetching \n Example: \n reciprocal number 5 to reciprocal number 2; \n 0th to 5th",PARTS_OF_TUPLE2_MESSAGE0:"return tuple %1 takes %2 %3 items to %4 %5 items",PARTS_OF_LIST_HELPURL:"https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",PARTS_OF_LIST_TOOLTIP:"Incremental order fetching \n Example: \n reciprocal number 5 to reciprocal number 2; \n 0th to 5th",PARTS_OF_LIST_MESSAGE0:"return list %1 takes %2 %3 items to %4 %5 items",LIST_TO_TUPLE_HELPURL:"https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",LIST_TO_TUPLE_TOOLTIP:"",LIST_TO_TUPLE_MESSAGE0:"list %1 conversion to tuple",tuple_create_with_MESSAGE0:"define tuple %1 = %2 ",tuple_create_with_TOOLTIP:"When you only have one element, you need to add a comma after the element",tuple_create_with_HELPURL:"https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",tuple_order_item_MESSAGE0:"tuple %1 %2 %3 item",tuple_order_item_TOOLTIP:"The sequence count starts from 0, and the reverse count starts from 1.",tuple_order_item_HELPURL:"https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",LIST_ORDER_ITEM_MESSAGE0:"list %1 %2 %3 item",LIST_ORDER_ITEM_TOOLTIP:"The sequence count starts from 0, and the reverse count starts from 1.",LIST_ORDER_ITEM_HELPURL:"https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",SET_LIST_ORDER_ITEM_MESSAGE0:"set list %1 %2 %3 item as %4",SET_LIST_ORDER_ITEM_TOOLTIP:"The sequence count starts from 0, and the reverse count starts from 1.",SET_LIST_ORDER_ITEM_HELPURL:"https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",INSERT_LIST_ORDER_ITEM_MESSAGE0:"insert list %1 %2 %3 item as %4",INSERT_LIST_ORDER_ITEM_TOOLTIP:"The sequence count starts from 0, and the reverse count starts from 1.",INSERT_LIST_ORDER_ITEM_HELPURL:"https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",SET_TUPLE_ORDER_ITEM_MESSAGE0:"set tuple %1 %2 %3 item as %4",SET_TUPLE_ORDER_ITEM_TOOLTIP:"The sequence count starts from 0, and the reverse count starts from 1.",SET_TUPLE_ORDER_ITEM_HELPURL:"https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",DICT_CREATE_WITH_HELPURL:"https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",DICT_CREATE_WITH_TOOLTIP:"",DICT_CREATE_WITH_MESSAGE0:"define dictionary %1 = %2",SET_CREATE_WITH_HELPURL:"https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",SET_CREATE_WITH_TOOLTIP:"",SET_CREATE_WITH_MESSAGE0:"define set %1 = %2",SET_UPDATE_WITH_HELPURL:"https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",SET_UPDATE_WITH_TOOLTIP:"Add parameters as strings, lists, tuples, sets, dictionaries (add only key). For existing elements, do not do anything",SET_UPDATE_WITH_MESSAGE0:"update set %1 with %2",INTERSECTION_OF_SETS_HELPURL:"https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",INTERSECTION_OF_SETS_TOOLTIP:"",INTERSECTION_OF_SETS_MESSAGE0:"%1 of set %2 and set %3",MPYTHON_INTERSECTION:"intersection",MPYTHON_UNION:"union",MPYTHON_DIFFERENCE:"difference",SETS_UPDATE_WAYS_HELPURL:"https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",SETS_UPDATE_WAYS_TOOLTIP:"",SETS_UPDATE_WAYS_MESSAGE0:"update set %1 as the %3 with set %2",SUBSET_SUPERSET_HELPURL:"https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",SUBSET_SUPERSET_TOOLTIP:"",SUBSET_SUPERSET_MESSAGE0:"set %1 is %3 of set %2",MPYTHON_SUBSET:"subset",MPYTHON_SUPERSET:"superset",GET_SETS_POP_HELPURL:"https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",GET_SETS_POP_TOOLTIP:"",GET_SETS_POP_MESSAGE0:"return a random item from the set %1, and remove it",LEN_OF_SETS_HELPURL:"https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",LEN_OF_SETS_TOOLTIP:"",LEN_OF_SETS_MESSAGE0:"length of set %1",CREATE_EMPTY_SET_HELPURL:"https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",CREATE_EMPTY_SET_TOOLTIP:"",CREATE_EMPTY_SET_MESSAGE0:"create empty sets %1",BIT_INVERSION_HELPURL:"https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",BIT_INVERSION_TOOLTIP:"Reverse each binary bit of data",BIT_INVERSION_MESSAGE0:"invert each binary bit of the data %1",TUPLE_CREATE_WITH_ITEMS_INSERT_HELPURL:"https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",TUPLE_CREATE_WITH_ITEMS_INSERT_TOOLTIP:"The sequence count starts from 0, and the reverse count starts from 1.",SET_CREATE_WITH_ITEMS_INSERT_HELPURL:"https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",SET_CREATE_WITH_ITEMS_INSERT_TOOLTIP:"Items can be strings, assigned variables, tuples",DICT_CREATE_WITH_ITEMS_INSERT_HELPURL:"https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",DICT_CREATE_WITH_ITEMS_INSERT_TOOLTIP:"",DICT_KEY_VALUE_HELPURL:"https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",DICT_KEY_VALUE_TOOLTIP:"",DICT_KEY_VALUE_MESSAGE0:"value of the key %2 in dictionary %1",ADD_DICT_KEY_VALUE_HELPURL:"https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",ADD_DICT_KEY_VALUE_TOOLTIP:"Update the key if the key already exists",ADD_DICT_KEY_VALUE_MESSAGE0:"add key %2 & value %3 to dictionary %1",DICT_LENGTH_HELPURL:"https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",DICT_LENGTH_TOOLTIP:"",DICT_LENGTH_MESSAGE0:"length of dictionary %1",DICT_KEY_EXIST_HELPURL:"https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",DICT_KEY_EXIST_TOOLTIP:"",DICT_KEY_EXIST_MESSAGE0:"dictionary %1 include key %2",DICT_KEY_OR_VAL_LIST_HELPURL:"https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",DICT_KEY_OR_VAL_LIST_TOOLTIP:"",DICT_KEY_OR_VAL_LIST_MESSAGE0:"list of %2 in dictionary %1",DICT_KEYS:"KEY",DICT_VALUES:"VALUE",mpython_lists_append_MESSAGE0:"add item %2 at the end of list %1",mpython_lists_append_TOOLTIP:"",mpython_lists_append_HELPURL:"https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",mpython_lists_extend_MESSAGE0:"list %1 append list %2",mpython_lists_extend_TOOLTIP:"",mpython_lists_extend_HELPURL:"https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",mpython_lists_clear_MESSAGE0:"clear list %1",mpython_lists_clear_TOOLTIP:"",mpython_lists_clear_HELPURL:"https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",MPYTHON_REMOVE_REPETITION_MESSAGE0:"list%1 remove repetition",MPYTHON_REMOVE_REPETITION_TOOLTIP:"",MPYTHON_REMOVE_REPETITION_HELPURL:"https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",mpython_Timer_value_MESSAGE0:"timer %1 count value",mpython_Timer_value_TOOLTIP:"Get and return the current count value of the timer",mpython_Timer_deinit_MESSAGE0:"clear timer / event %1",mpython_Timer_deinit_TOOLTIP:"Cancel the initialization of the timer. Stop timer and disable timer peripherals",mpython_Interrupt_AB_HELPURL:"https://mpython.readthedocs.io/zh/latest/tutorials/basics/buttons.html#id3",mpython_Interrupt_AB_TOOLTIP:"",mpython_Interrupt_AB_MESSAGE0:"when the button %1 is %2",mpython_Interrupt_pin_HELPURL:"https://mpython.readthedocs.io/zh/latest/tutorials/basics/io/digital_io.html#id3",mpython_Interrupt_pin_TOOLTIP:"Rising edge trigger: from low level to high level; falling edge trigger: from high level to low level",mpython_Interrupt_pin_MESSAGE0:"when pin %1 level is from %2",mpython_Interrupt_pin_IRQ_FALLING:"↘ high to low",mpython_Interrupt_pin_IRQ_RISING:"↗ low to high",mpython_IRQ_FALLING:"pressed",mpython_IRQ_RISING:"released",mpython_PERIODIC:"repeated mode",mpython_ONE_SHOT:"delayed mode",MPYTHON_IS_SHAKED_MESSAGE0:"the board %1",MPYTHON_IS_SHAKED_HELPURL:"",MPYTHON_IS_SHAKED_TOOLTIP:"",MPYTHON_IS_SHAKED:"was shaked",MPYTHON_IS_THROWN:"was thrown",MPYTHON_SHAKE_DETECTOR_MESSAGE0:"when the board %1",MPYTHON_SHAKE_DETECTOR_HELPURL:"",MPYTHON_SHAKE_DETECTOR_TOOLTIP:"",MPYTHON_IS_TILTED_MESSAGE0:"the board is %1",MPYTHON_IS_TILTED_HELPURL:"",MPYTHON_IS_TILTED_TOOLTIP:"",MPYTHON_TILT_DETECTOR_MESSAGE0:"when the board is %1",MPYTHON_TILT_DETECTOR_HELPURL:"",MPYTHON_TILT_DETECTOR_TOOLTIP:"",MPYTHON_DIRECTION_FORWARD:"tilt forward",MPYTHON_DIRECTION_BACK:"tilt back",MPYTHON_DIRECTION_RIGHT:"tilt right",MPYTHON_DIRECTION_LEFT:"tilt left",MPYTHON_DIRECTION_NONE:"flat",MPYTHON_TOUCH_EVENT_MESSAGE0:"when the touchpad %1 is %2",MPYTHON_TOUCH_EVENT_HELPURL:"",MPYTHON_TOUCH_EVENT_TOOLTIP:"",MPYTHON_TOUCH_EVENT_PRESSED:"pressed",MPYTHON_TOUCH_EVENT_UNPRESSED:"unpressed",MPYTHON_CUSTOM_EVENT_MESSAGE0:"event %1 : when %2",MPYTHON_CUSTOM_EVENT_HELPURL:"",MPYTHON_CUSTOM_EVENT_TOOLTIP:"Custom events use port 1/2/4/7/8/9/10, shared with Timers, cannot access one port at the same time.\nMax up to 4 events/timers at the same time.\nIf there is conflict, try changing the number.",mpython_music_HELPURL:"https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",mpython_music_range_pitch_TOOLTIP:"duration is the length of a single frequency",mpython_music_range_pitch_MESSAGE0:"play tone from %1 to %2 step %3 duration %4 ms Pin %5",mpython_neopixel_init_HELPURL:"https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",mpython_neopixel_init_TOOLTIP:"",mpython_neopixel_init_MESSAGE0:"initialize light strip with Name %1 Pin %2 Quantity %3",MPYTHON_NEOPIXEL_RAINBOW_HELPURL:"https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",MPYTHON_NEOPIXEL_RAINBOW_TOOLTIP:"",MPYTHON_NEOPIXEL_RAINBOW_MESSAGE0:"define rainbow effect of light strip with Name %1 Quantity %2 bright %3 offset %4",MPYTHON_NEOPIXEL_BRIGHTNESS_HELPURL:"https://mpython.readthedocs.io/zh/master/library/micropython/neopixel.html#NeoPixel.brightness",MPYTHON_NEOPIXEL_BRIGHTNESS_TOOLTIP:"Adjust the brightness range of 0 to 100",MPYTHON_NEOPIXEL_BRIGHTNESS_MESSAGE0:"light strip %1 set brightness as %2",mpython_neopixel_single_TOOLTIP:"",mpython_neopixel_single_MESSAGE0:"light strip %1 # %2 R %3 G %4 B %5",mpython_neopixel_single_gui_MESSAGE0:"light strip %1 # %2 color as %3",mpython_neopixel_single_gui_TOOLTIP:"",mpython_neopixel_show_TOOLTIP:"",mpython_neopixel_show_MESSAGE0:"light strip %1 setting take effect",mpython_neopixel_off_TOOLTIP:"",mpython_neopixel_off_MESSAGE0:"light strip %1 off",mpython_neopixel_all_TOOLTIP:"",mpython_neopixel_all_MESSAGE0:"light strip %1 full bright R %2 G %3 B %4",mpython_neopixel_all_gui_TOOLTIP:"",mpython_neopixel_all_gui_MESSAGE0:"light strip %1 full bright with color %2",mpython_time_localtime_MESSAGE0:"local time %1",mpython_time_localtime_TOOLTIP:"Week number: return 0 to 6, Monday is 0, Sunday is 6\nDays number: return the position of the day in the year\nIt is recommended to connect wifi and get network time first.",mpython_WiFi_config_MESSAGE0:"Wi-Fi configuration information %1",mpython_WiFi_config_TOOLTIP:"",mpython_time_ticks_HELPURL:"https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",mpython_time_ticks_MESSAGE0:"run time %1",mpython_time_ticks_TOOLTIP:"",MPYTHON_TIMER_DEF_MESSAGE0:"define timer %1",MPYTHON_TIMER_INIT_MESSAGE0:"init timer %1 %2 , cycle %3 millisecond(s)",mpython_Timer_MESSAGE0:"set timer %1 %2 , cycle %3 millisecond(s)",mpython_Timer_TOOLTIP:"Create timer n, n=1-14.\nMax up to 4 timers at the same time.\nIf there is conflict, try changing the number.\n3 for internal program,\n5/6 for servo system and ADC,\n11 is used for shaked event,\n12 is used for touchpad event,\n13 is used for Radio or DHT11/DHT22 timing value,\n14 is used for OneNET or tilt detection,\nothers ports are shared with custom events.",mpython_Timer_HELPURL:"https://mpythonx.readthedocs.io/zh_CN/latest/blocks/index.html",mpython_init_bluetooth_MESSAGE0:"Initialize Bluetooth Name %1",mpython_init_bluetooth_TOOLTIP:"Initialize Bluetooth Name",mpython_OnOff_bluetooth_MESSAGE0:"Bluetooth device %1 broadcasting",mpython_OnOff_bluetooth_TOOLTIP:"Bluetooth devices turn on or off broadcasting",mpython_HID_consumer_bluetooth_MESSAGE0:"HID Consumption Equipment%1 Status%2",mpython_HID_consumer_bluetooth_TOOLTIP:"Controllers that simulate HID consumer devices, such as Bluetooth remote controls",mpython_HID_mouse_bluetooth_MESSAGE0:"HID Mouse button%1",mpython_HID_mouse_bluetooth_TOOLTIP:"HID Mouse button",mpython_HID_mouse_pointer_bluetooth_MESSAGE0:"Mouse pointer movement x%2 y%1",mpython_HID_mouse_pointer_bluetooth_TOOLTIP:"Relative Displacement of Mouse Pointer Coordinates X and Y,Range -1023 ~ 1023",mpython_HID_release_mouse_bluetooth_MESSAGE0:"Mouse Release Key",mpython_HID_release_mouse_bluetooth_TOOLTIP:"Mouse device",mpython_HID_keyboard_bluetooth_MESSAGE0:"HID Keyboard device keys%1",mpython_HID_keyboard_bluetooth_TOOLTIP:"HID keyboard equipment",mpython_HID_keyboard_group_bluetooth_MESSAGE0:"HID device keys%1 combination keys%2",mpython_HID_keyboard_group_bluetooth_TOOLTIP:'If you want to use multiple keystrokes to combine instructions, you can use "|" or arithmetic',mpython_HID_keyboard_part_bluetooth_MESSAGE0:"HID Device combination key%1",mpython_HID_keyboard_part_bluetooth_TOOLTIP:'If you want to use multiple key combinations of instructions, you can use "|" or operation',mpython_HID_release_keyboard_bluetooth_MESSAGE0:"Keyboard Release Key",mpython_HID_release_keyboard_bluetooth_TOOLTIP:"Keyboard equipment",mpython_init_wifi_MESSAGE0:"connect to Wi-Fi with SSID %1 & Password %2",mpython_init_wifi_TOOLTIP:"Let the board access the Wi-Fi environment",MPYTHON_WIFI_IFCONFIG_MESSAGE0:"Wi-Fi set static IP %1 IP address %2 netmask %3 gateway %4 DNS %5",MPYTHON_WIFI_IFCONFIG_TOOLTIP:"",MPYTHON_WIFI_IFCONFIG_HELPURL:"",mpython_dis_WiFi_MESSAGE0:"disconnect Wi-Fi connection",mpython_dis_WiFi_TOOLTIP:"",MPYTHON_ENABLE_APWIFI_HELPURL:"https://mpython.readthedocs.io/zh/master/tutorials/basics/network/network_basics.html#ap",MPYTHON_ENABLE_APWIFI_TOOLTIP:"The password can be empty or alphanumeric with more than 8 digits.\nAP mode is only used for communication between the control boards. It cannot be used as a hotspot to make other devices access the Internet.",MPYTHON_ENABLE_APWIFI_MESSAGE0:"open AP mode with SSID %1 & Password %2 Channel %3",mpython_disable_APWiFi_MESSAGE0:"close AP mode",mpython_disable_APWiFi_TOOLTIP:"",mpython_ntptime_settime_MESSAGE0:"synchronize network time, timezone %1 & timing server %2",mpython_ntptime_settime_TOOLTIP:"NTP time synchronization is a time synchronization network technology",mpython_wifi_get_date_MESSAGE0:"get the current date string",mpython_wifi_get_date_TOOLTIP:"",mpython_wifi_get_time_MESSAGE0:"get the current time string",mpython_wifi_get_time_TOOLTIP:"",mpython_ntptime_timezone_E1:"UTC+1",mpython_ntptime_timezone_E2:"UTC+2",mpython_ntptime_timezone_E3:"UTC+3",mpython_ntptime_timezone_E4:"UTC+4",mpython_ntptime_timezone_E5:"UTC+5",mpython_ntptime_timezone_E6:"UTC+6",mpython_ntptime_timezone_E7:"UTC+7",mpython_ntptime_timezone_E8:"UTC+8",mpython_ntptime_timezone_E9:"UTC+9",mpython_ntptime_timezone_E10:"UTC+10",mpython_ntptime_timezone_E11:"UTC+11",mpython_ntptime_timezone_E12:"UTC+12",mpython_ntptime_timezone_0:"UTC",mpython_ntptime_timezone_W1:"UTC-1",mpython_ntptime_timezone_W2:"UTC-2",mpython_ntptime_timezone_W3:"UTC-3",mpython_ntptime_timezone_W4:"UTC-4",mpython_ntptime_timezone_W5:"UTC-5",mpython_ntptime_timezone_W6:"UTC-6",mpython_ntptime_timezone_W7:"UTC-7",mpython_ntptime_timezone_W8:"UTC-8",mpython_ntptime_timezone_W9:"UTC-9",mpython_ntptime_timezone_W10:"UTC-10",mpython_ntptime_timezone_W11:"UTC-11",mpython_ntptime_timezone_W12:"UTC-12",FILE_TO_LIST_HELPURL:"",FILE_TO_LIST_TOOLTIP:"Read the text file content of the specified path (only in UTF-8 format) and converts it to a list format, separated by the selected separator.",FILE_TO_LIST_MESSAGE0:"convert the text file %1 to a list separated by %2",FILE_TO_BIN_HELPURL:"",FILE_TO_BIN_TOOLTIP:"Reads the contents of the file in the specified path in binary format.",FILE_TO_BIN_MESSAGE0:"read the binary content of file %1",MPYTHON_INIT_FILE_HELPURL:"",MPYTHON_INIT_FILE_TOOLTIP:"Initializes a text file, creates a file if it does not exist, and clears the content if it exists.",MPYTHON_INIT_FILE_MESSAGE0:"initialize text file %1",MPYTHON_WRITE_FILE_HELPURL:"",MPYTHON_WRITE_FILE_TOOLTIP:"Writes content to a text file of the specified path, and creates a file if the file does not exist.",MPYTHON_WRITE_FILE_MESSAGE0:"write content %2 to the text file %1 separated by %3",MPYTHON_SDCARD_INIT_HELPURL:"https://mpython.readthedocs.io/zh/master/library/mPython/sdcard.html#sdcard.SDCard",MPYTHON_SDCARD_INIT_TOOLTIP:"sck: P13\nmosi: P15\nmiso: P14\nsdcard: P16\nMake sure that the pins of the SPI bus are connected to the micro SD card which is formatted by using the FAT or FAT32 file system.",MPYTHON_SDCARD_INIT_MESSAGE0:"initialize SD card",MPYTHON_SDCARD_MOUNT_HELPURL:"https://mpython.readthedocs.io/zh/master/library/mPython/sdcard.html#sdcard.SDCard",MPYTHON_SDCARD_MOUNT_TOOLTIP:"Mount the SD card to the specified path.",MPYTHON_SDCARD_MOUNT_MESSAGE0:"mount SD card to path %1",MPYTHON_ENTER:"enter",MPYTHON_COMMA:"comma",MPYTHON_SEMICOLON:"semicolon",MPYTHON_SPACE:"space",mpython_def_clock_MESSAGE0:"initialize clock %1 x %2 y %3 radius %4",mpython_def_clock_TOOLTIP:"",mpython_settime_clock_MESSAGE0:"clock %1 read time",mpython_settime_clock_TOOLTIP:"",mpython_draw_clear_clock_MESSAGE0:"%1 clock %2",mpython_draw_clear_clock_TOOLTIP:"",mpython_tinywebio_start_MESSAGE0:"start TinyWebIO service, run in %1",mpython_tinywebio_start_TOOLTIP:"Wi-Fi is required to start the service, and the TinyWebIO service provides a remote control interface for the App Inventor application.",mpython_tinywebio_client_setup_HELPURL:"",mpython_tinywebio_client_setup_TOOLTIP:"Items send to the server (separated by comma)\nbuttona/b Button status\ntouchpadp/y/t/h/o/n Touch button value \nlight Light value\nsound Sound value\naccelerometer Triaxial acceleration value\nid the board identification \ntime timestamp \npind digital IO pin \npina analog IO pin\n----------\nItems read from the server (separated by comma)\nrgb0/ 1/2 RGB lamp bead \noled OLED display \nmusic music \nservo steering gear \npind digital IO pin \npina analog IO pin",mpython_tinywebio_client_setup_MESSAGE0:"setup TinyWebIO client params %1 TinyWebDB server address %2 items send to the server %3 items read from the server %4 access server time interval(ms) %5",mpython_tinywebio_client_action_HELPURL:"",mpython_tinywebio_client_action_TOOLTIP:"",mpython_tinywebio_client_action_MESSAGE0:"%1 TinyWebIO client",mpython_tinywebio_client_action_start:"start",mpython_tinywebio_client_action_stop:"stop",MPYTHON_CUSTOM_CODE_HELPURL:"",MPYTHON_CUSTOM_CODE_TOOLTIP:"",MPYTHON_CUSTOM_CODE_MESSAGE0:"%1 custom code %2 %3",MPYTHON_CUSTOM_TYPE_IMPORT:"topping",MPYTHON_CUSTOM_TYPE_NORMAL:"normal",MPYTHON_CUSTOM_VALUE_MESSAGE0:"custom value %1",mpython_servo_angle0_MESSAGE0:"set the servo %1 angle as %2",mpython_servo_angle_MESSAGE0:"set the servo %1 angle as %2 pulse width from %3 us to %4 us actuation range as %5",mpython_servo_angle_TOOLTIP:"power cable Vcc (red) connected to expansion-board power port V, ground line GND (brown) connected to expansion-board ground port G, control signal line (orange) connected to selected expansion-board pins",mpython_dh11_hum_tem_MESSAGE0:"DHT11 %1 %2",mpython_dh11_hum_tem_TOOLTIP:'"+" on the DHT11 connects the power port of the expansion-board V, "-" connects the ground port of the expansion-board G, "out" connects the pin0 of the expansion-board',MPYTHON_DH22_HUM_TEM_MESSAGE0:"DHT22 %1 %2",MPYTHON_DH22_HUM_TEM_TOOLTIP:"",MPYTHON_DH22_HUM_TEM_HELPURL:"https://mpython.readthedocs.io/zh/latest/classic/dht11.html?highlight=DHT",mpython_music_note_MESSAGE0:"note %1 %2 : %3",mpython_music_note_TOOLTIP:"Note, such as C4:4",mpython_return_list_MESSAGE0:"define list %1 = %2",mpython_return_list_TOOLTIP:"",mpython_display_Show_MESSAGE0:"OLED setting take effect",mpython_display_Show_TOOLTIP:"",mpython_display_DispChar_MESSAGE0:"display text %3 at x %1 y %2 text mode %4 %5",mpython_display_DispChar_TOOLTIP:"OLED resolution 128x64",mpython_display_DispChar_HELPURL:"https://mpython.readthedocs.io/zh/master/library/mPython/mpython.html?highlight=oled#oled.DispChar",mpython_display_DispChar_5lines_MESSAGE0:"OLED line %1 shows %2 text mode %3 %4",mpython_display_DispChar_5lines_TOOLTIP:"OLED resolution 128x64",mpython_line1:"1",mpython_line2:"2",mpython_line3:"3",mpython_line4:"4",mpython_line5:"5",MPYTHON_CLEAR_DISPCHAR_5LINES_MESSAGE0:"OLED clear line %1",MPYTHON_CLEAR_DISPCHAR_5LINES_TOOLTIP:"OLED resolution 128x64",MPYTHON_CLEAR_DISPCHAR_5LINES_HELPURL:"",mpython_display_fill_0:"clear",mpython_display_fill_1:"full bright",mpython_display_invert_0:"black background",mpython_display_invert_1:"white background",mpython_display_show:"show",mpython_display_fill_MESSAGE0:"OLED display %1",mpython_display_fill_TOOLTIP:"",mpython_display_pixel_0:"dark",mpython_display_pixel_1:"bright",mpython_display_pixel_MESSAGE0:"draw a point x %1 y %2 as %3",mpython_display_pixel_TOOLTIP:"",mpython_display_hline_0:"erase",mpython_display_hline_1:"draw",mpython_display_hline_MESSAGE0:"%1 horizontal line %2 x %3 y %4 length %5",mpython_display_hline_TOOLTIP:"",mpython_ProgressBar_MESSAGE0:"progress bar %1 x %2 y %3 width %4 height %5 progress %6",mpython_ProgressBar_TOOLTIP:"",mpython_stripBar_MESSAGE0:"column bar %1 x %2 y %3 width %4 height %5 progress %6",mpython_stripBar_TOOLTIP:"",MPYTHON_QR_CODE_HELPURL:"https://mpython.readthedocs.io/zh/master/library/mPython/gui.html#gui.UI.qr_code",MPYTHON_QR_CODE_TOOLTIP:"",MPYTHON_QR_CODE_MESSAGE0:"display QR code %3 at x %1 y %2 with size %4",MPYTHON_DISPLAY_MODE_0:"erase",MPYTHON_DISPLAY_MODE_1:"draw",MPYTHON_DISPLAY_HOLLOW:"hollow",MPYTHON_DISPLAY_SOLID:"solid",MPYTHON_DISPLAY_HVLINE_MESSAGE0:"%1 %2 line %3 x %4 y %5 length %6",MPYTHON_DISPLAY_HVLINE_TOOLTIP:"",MPYTHON_DISPLAY_SHAPE_RECT_MESSAGE0:"%1 %2 rectangle %3 x %4 y %5 width %6 height %7",MPYTHON_DISPLAY_SHAPE_RECT_TOOLTIP:"",MPYTHON_DISPLAY_SHAPE_CIRCLE_MESSAGE0:"%1 %2 circle %3 x %4 y %5 radius %6",MPYTHON_DISPLAY_SHAPE_CIRCLE_TOOLTIP:"",MPYTHON_DISPLAY_SHAPE_TRIANGLE_MESSAGE0:"%1 %2 triangle %3 x1 %4 y1 %5 x2 %6 y2 %7 x3 %8 y3 %9",MPYTHON_DISPLAY_SHAPE_TRIANGLE_TOOLTIP:"",MPYTHON_RGB_0:"0 #",MPYTHON_RGB_1:"1 #",MPYTHON_RGB_2:"2 #",MPYTHON_RGB_ALL:"all",MPYTHON_SET_RGB_LIST_COLOR_MESSAGE0:"set %1 RGB light(s) color to %2",MPYTHON_SET_RGB_LIST_COLOR_TOOLTIP:"1/30 of the original brightness can better display the color difference",MPYTHON_SET_RGB_LIST_NUMBER_MESSAGE0:"set %1 RGB light(s) color to R%2 G%3 B%4",MPYTHON_SET_RGB_LIST_NUMBER_TOOLTIP:"1/30 of the original brightness can better display the color difference",MPYTHON_OFF_RGB_LIST_MESSAGE0:"turn off %1 RGB light(s)",MPYTHON_OFF_RGB_LIST_TOOLTIP:"",MPYTHON_MUSIC_PLAY_MESSAGE0:"play music %1 Pin %2",MPYTHON_MUSIC_PLAY_TOOLTIP:"Play the built-in music",MPYTHON_MUSIC_PLAY_UNTIL_END_MESSAGE0:"play music %1 until end, Pin %2",MPYTHON_MUSIC_PLAY_UNTIL_END_TOOLTIP:"Play the built-in music",MPYTHON_MUSIC_GE_CHANG_ZU_GUO:"GE_CHANG_ZU_GUO",MPYTHON_MUSIC_DONG_FANG_HONG:"DONG_FANG_HONG",MPYTHON_MUSIC_CAI_YUN_ZHUI_YUE:"CAI_YUN_ZHUI_YUE",MPYTHON_MUSIC_ZOU_JIN_XIN_SHI_DAI:"ZOU_JIN_XIN_SHI_DAI",MPYTHON_MUSIC_MO_LI_HUA:"MO_LI_HUA",MPYTHON_MUSIC_YI_MENG_SHAN_XIAO_DIAO:"YI_MENG_SHAN_XIAO_DIAO",mpython_display_vline_MESSAGE0:"%1 vertical line %2 x %3 y %4 length %5",mpython_display_vline_TOOLTIP:"",mpython_display_line_MESSAGE0:"%1 line %2 x1 %3 y1 %4 to x2 %5 y2 %6",mpython_display_line_TOOLTIP:"",mpython_display_rect_MESSAGE0:"%1 border %2 x %3 y %4 width %5 height %6",mpython_display_rect_TOOLTIP:"",mpython_display_RoundRect_MESSAGE0:"%1 arc border %2 x %3 y %4 width %5 height %6 radius %7",mpython_display_RoundRect_TOOLTIP:"",mpython_display_fill_rect_MESSAGE0:"%1 rectangle %2 x %3 y %4 width %5 height %6",mpython_display_fill_rect_TOOLTIP:"",mpython_display_fill_circle_MESSAGE0:"%1 solid circle %2 x %3 y %4 radius %5",mpython_display_fill_circle_TOOLTIP:"",mpython_display_circle_MESSAGE0:"%1 hollow circle %2 x %3 y %4 radius %5",mpython_display_circle_TOOLTIP:"",mpython_display_triangle_MESSAGE0:"%1 hollow triangle %2 x %3 y %4 x2 %5 y2 %6 x3 %7 y3 %8",mpython_display_triangle_TOOLTIP:"",mpython_display_fill_triangle_MESSAGE0:"%1 solid triangle %2 x %3 y %4 x2 %5 y2 %6 x3 %7 y3 %8",mpython_display_fill_triangle_TOOLTIP:"",mpython_display_Bitmap_MESSAGE0:"%1 pattern x %2 y %3 width %4 height %5 with hex image data %6",mpython_display_Bitmap_TOOLTIP:"Display hex image data at a specified position on the OLED screen",MPYTHON_GET_PBM_DATA_MESSAGE0:"get inner image %1 Pattern %2",MPYTHON_GET_PBM_DATA_TOOLTIP:"Supports * .PBM or * .PBM format monochrome image files, retrieves image file data of specified path, and returns a tuple object",MPYTHON_GET_PBM_DATA_HELPURL:"https://mpython.readthedocs.io/zh/master/library/mPython/gui.html#image",MPYTHON_GET_PBM_DATA_CUSTOM_MESSAGE0:"Get custom image%1 mode%2",MPYTHON_DISPLAY_PBM_DATA_MESSAGE0:"display image at x %1 y %2 with data %3",MPYTHON_DISPLAY_PBM_DATA_TOOLTIP:"Monochromatic image files supporting * .PBM or * .PBM formats",MPYTHON_DISPLAY_PBM_DATA_HELPURL:"https://mpython.readthedocs.io/zh/master/library/mPython/gui.html#image",MPYTHON_BITMAP_FROM_FILE_MESSAGE0:"display image at x %1 y %2 with data %5 width %3 height %4",MPYTHON_BITMAP_FROM_FILE_TOOLTIP:"",MPYTHON_BITMAP_FROM_FILE_HELPURL:"",mpython_front:"front",mpython_reverse:"reverse",MPYTHON_FONT_DIGIFACE_11:"Digiface 11px",MPYTHON_FONT_DIGIFACE_16:"Digiface 16px",MPYTHON_FONT_DIGIFACE_21:"Digiface 21px",MPYTHON_FONT_DIGIFACE_30:"Digiface 30px",MPYTHON_FONT_DIGIFACE_44:"Digiface 44px",MPYTHON_FONT_DIGIFACE_IT_30:"Digiface Italic 30px",MPYTHON_FONT_DIGIFACE_IT_42:"Digiface Italic 42px",MPYTHON_FONT_DVSM_12:"DejaVu Sans Mono 12px",MPYTHON_FONT_DVSM_16:"DejaVu Sans Mono 16px",MPYTHON_FONT_DVSM_21:"DejaVu Sans Mono 21px",MPYTHON_FONT_DVSMB_12:"DejaVu Sans Mono Bold 12px",MPYTHON_FONT_DVSMB_16:"DejaVu Sans Mono Bold 16px",MPYTHON_FONT_DVSMB_21:"DejaVu Sans Mono Bold 21px",MPYTHON_FONT_WRAP:"auto wrap",MPYTHON_FONT_NO_WRAP:"no wrap",MPYTHON_FACE_1:"Heart",MPYTHON_FACE_2:"Small heart",MPYTHON_FACE_3:"Happy",MPYTHON_FACE_4:"Smile",MPYTHON_FACE_5:"Sad",MPYTHON_FACE_6:"Confused",MPYTHON_FACE_7:"Angry",MPYTHON_FACE_8:"Sleep",MPYTHON_FACE_9:"Surprise",MPYTHON_FACE_10:"Silly",MPYTHON_FACE_11:"Wonderful",MPYTHON_FACE_12:"Bored",MPYTHON_FACE_ROCK:"Rock",MPYTHON_FACE_PAPER:"Paper",MPYTHON_FACE_SCISSORS:"Scissors",MPYTHON_FACE_ROCK_S:"Small rock",MPYTHON_FACE_PAPER_S:"Small paper",MPYTHON_FACE_SCISSORS_S:"Small scissors",MPYTHON_DISPLAY_FONT_MESSAGE0:"display text %3 at x %1 y %2, using %4 font with %5",MPYTHON_DISPLAY_FONT_TOOLTIP:"",MPYTHON_DISPLAY_FONT_HELPURL:"",mpython_button_is_pressed_MESSAGE0:"button %1 is pressed",mpython_button_is_pressed_TOOLTIP:"",mpython_touchPad_value_MESSAGE0:"button %1 is touched",mpython_touchPad_value_TOOLTIP:"",mpython_touchPad_value_num_MESSAGE0:"button %1 touch value",mpython_touchPad_value_num_TOOLTIP:"",mpython_read_digital_MESSAGE0:"pin %1 digital value",mpython_read_digital_TOOLTIP:"",mpython_read_DS18B20_MESSAGE0:"DS18B20 waterproof temperature sensor at pin %1",mpython_read_DS18B20_TOOLTIP:"",mpython_read_DS18B20_HELPURL:"http://docs.micropython.org/en/latest/esp32/quickref.html?highlight=onewire#onewire-driver",mpython_set_digital_MESSAGE0:"set pin %2 digital value to %1",mpython_set_digital_TOOLTIP:"",mpython_read_analog_MESSAGE0:"pin %1 analog value",mpython_read_analog_TOOLTIP:"",mpython_set_analog_MESSAGE0:"set pin %2 analog value (PWM) to %1",mpython_set_analog_TOOLTIP:"The analog output is a pulse width modulated signal output through the IO pin, which outputs a specified voltage value, referred to as PWM.",mpython_set_RGB_MESSAGE0:"set %1 RGB light color to R %2 G %3 B %4",mpython_set_RGB_TOOLTIP:"1/30 of the original brightness can better display the color difference",mpython_set_RGB_color_MESSAGE0:"set %1 RGB light color to %2",mpython_set_RGB_color_TOOLTIP:"1/30 of the original brightness can better display the color difference",mpython_set_RGB_all_MESSAGE0:"set all RGB lights color to R %1 G %2 B %3",mpython_set_RGB_all_TOOLTIP:"1/30 of the original brightness can better display the color difference",mpython_set_RGB_color_all_MESSAGE0:"set all RGB lights color to %1",mpython_set_RGB_color_all_TOOLTIP:"1/30 of the original brightness can better display the color difference",mpython_fresh_RGB_MESSAGE0:"RGB lights settings take effect",mpython_fresh_RGB_TOOLTIP:"",mpython_off_RGB_MESSAGE0:"turn off all RGB lights",mpython_off_RGB_TOOLTIP:"",mpython_buzz_state_MESSAGE0:"stop playing music",mpython_buzz_state_TOOLTIP:"",mpython_buzz_freq_MESSAGE0:"play continuous tone %1 at Pin %2",mpython_buzz_freq_TOOLTIP:"",mpython_buzz_tone_MESSAGE0:"play tone %1",mpython_buzz_tone_TOOLTIP:"",MPYTHON_MUSIC_TONE_TEMPO_HELPURL:"",MPYTHON_MUSIC_TONE_TEMPO_TOOLTIP:"The default pin is P6 of the mPython board",MPYTHON_MUSIC_TONE_TEMPO_MESSAGE0:"play musical note %1 at Pin %2",MPYTHON_MUSIC_TONE_HELPURL:"",MPYTHON_MUSIC_TONE_TOOLTIP:"",MPYTHON_MUSIC_TONE_MESSAGE0:"tone %1",MPYTHON_MUSIC_MUSICAL_NOTE_HELPURL:"",MPYTHON_MUSIC_MUSICAL_NOTE_TOOLTIP:"",MPYTHON_MUSIC_MUSICAL_NOTE_MESSAGE0:"note %1 beat %2",MPYTHON_MUSIC_TICK_HELPURL:"",MPYTHON_MUSIC_TICK_TOOLTIP:"",MPYTHON_MUSIC_TICK_MESSAGE0:"beat %1",MPYTHON_4_LINES_HELPURL:"",MPYTHON_4_LINES_TOOLTIP:"",MPYTHON_4_LINES_MESSAGE0:"%1",NUMBER_1:"1",NUMBER_1_2:"1/2",NUMBER_1_4:"1/4",NUMBER_2:"2",NUMBER_4:"4",mpython_read_sound_MESSAGE0:"sound value",mpython_read_sound_TOOLTIP:"",mpython_read_light_MESSAGE0:"light value",mpython_read_light_TOOLTIP:"",mpython_accelerometer_get_MESSAGE0:"%1 axis acceleration",mpython_accelerometer_get_TOOLTIP:"",MPYTHON_ACCELEROMETER_RANGE_2G:"±2g",MPYTHON_ACCELEROMETER_RANGE_4G:"±4g",MPYTHON_ACCELEROMETER_RANGE_8G:"±8g",MPYTHON_ACCELEROMETER_RANGE_16G:"±16g",MPYTHON_ACCELEROMETER_RES_10_BIT:"10bits",MPYTHON_ACCELEROMETER_RES_12_BIT:"12bits",MPYTHON_ACCELEROMETER_RES_14_BIT:"14bits",MPYTHON_ACCELEROMETER_SET_RANGE_TOOLTIP:"Set the acceleration range, the default is ±2g。",MPYTHON_ACCELEROMETER_SET_RANGE_MESSAGE0:"set acceleration range to %1",MPYTHON_ACCELEROMETER_SET_RESOLUTION_TOOLTIP:"Set the acceleration resolution, the default is 10bits。",MPYTHON_ACCELEROMETER_SET_RESOLUTION_MESSAGE0:"set acceleration resolution to %1",MPYTHON_ACCELEROMETER_SET_OFFSET_TOOLTIP:"Calibrate the acceleration value deviation of the three axes (x, y, z) of the accelerometer.\nIn general, calibration is not required, and calibration is only required when the acceleration deviation is large.\nx , y , z are the adjustment deviation values, and the correction range is ±1g.\nNote: Calibration data will not be saved after power off.",MPYTHON_ACCELEROMETER_SET_OFFSET_MESSAGE0:"calibration acceleration value with %1 X axis deviation %2 Y axis deviation %3 Z axis deviation %4",MPYTHON_MAGNETIC_GET_AXIS_TOOLTIP:"Only applicable to mPython board 2.0 and above",MPYTHON_MAGNETIC_GET_AXIS_MESSAGE0:"magnetic force of %1 axis",MPYTHON_MAGNETIC_GET_HEADING_TOOLTIP:"Only applicable to mPython board 2.0 and above",MPYTHON_MAGNETIC_GET_HEADING_MESSAGE0:"get magnetic heading",MPYTHON_MAGNETIC_CALIBRATE_TOOLTIP:"Only applicable to mPython board 2.0 and above",MPYTHON_MAGNETIC_CALIBRATE_MESSAGE0:"magnetic calibrate",MPYTHON_MAGNETIC_PEELING_TOOLTIP:"Only applicable to mPython board 2.0 and above",MPYTHON_MAGNETIC_PEELING_MESSAGE0:"magnetic peeling",MPYTHON_MAGNETIC_GET_FIELD_STRENGTH_TOOLTIP:"Only applicable to mPython board 2.0 and above",MPYTHON_MAGNETIC_GET_FIELD_STRENGTH_MESSAGE0:"get magnetic field strength",MPYTHON_TILT_ANGLE_HELPURL:"",MPYTHON_TILT_ANGLE_TOOLTIP:"",MPYTHON_TILT_ANGLE_MESSAGE0:"%1 axis tilt angle",mpython_random_choice_MESSAGE0:"random item %1",mpython_random_choice_TOOLTIP:"Return a random item in a list or string in String format",MACHINE_TIME_PULSE_US_HELPURL:"https://mpython.readthedocs.io/zh/master/library/micropython/machine/machine.html?highlight=machine.time_pulse_us#machine.time_pulse_us",MACHINE_TIME_PULSE_US_MESSAGE0:"duration(us) of external %2 pulse level at %1",MACHINE_TIME_PULSE_US_TOOLTIP:"",BYTES:"bytes",MPYTHON_I2C_INIT_HELPURL:"https://mpython.readthedocs.io/zh/master/library/micropython/machine/machine.I2C.html#machine.I2C",MPYTHON_I2C_INIT_MESSAGE0:"init i2c with baudrate %1",MPYTHON_I2C_INIT_TOOLTIP:"",MPYTHON_I2C_DEV_INIT_HELPURL:"https://mpython.readthedocs.io/zh/master/library/micropython/machine/machine.I2C.html#machine.I2C",MPYTHON_I2C_DEV_INIT_MESSAGE0:"init %1 SCL %2 SDA %3 baudrate %4",MPYTHON_I2C_DEV_INIT_TOOLTIP:"",MPYTHON_I2C_SCAN_HELPURL:"https://mpython.readthedocs.io/zh/master/library/micropython/machine/machine.I2C.html?highlight=I2C#machine.I2C.scan",MPYTHON_I2C_SCAN_MESSAGE0:"%1 scan result",MPYTHON_I2C_SCAN_TOOLTIP:"Return an array object",MPYTHON_I2C_DEINIT_HELPURL:"https://mpython.readthedocs.io/zh/master/library/micropython/machine/machine.I2C.html?highlight=I2C#machine.I2C.deinit",MPYTHON_I2C_DEINIT_MESSAGE0:"deinit %1",MPYTHON_I2C_DEINIT_TOOLTIP:"",MPYTHON_I2C_WRITETO_HELPURL:"https://mpython.readthedocs.io/zh/master/library/micropython/machine/machine.I2C.html?highlight=I2C#id4",MPYTHON_I2C_WRITETO_MESSAGE0:"write to %1 %5 address %2 data %3 stop bit %4",MPYTHON_I2C_WRITETO_TOOLTIP:"Address: Number\nData: Number, String",MPYTHON_I2C_READFROM_HELPURL:"https://mpython.readthedocs.io/zh/master/library/micropython/machine/machine.I2C.html?highlight=I2C#id4",MPYTHON_I2C_READFROM_MESSAGE0:"read from %1 %5 address %2 bytes num %3 stop bit %4",MPYTHON_I2C_READFROM_TOOLTIP:"Address: Number\nReturn: Convert bytes data to string",MPYTHON_I2C_READFROM_INTO_HELPURL:"https://mpython.readthedocs.io/zh/master/library/micropython/machine/machine.I2C.html?highlight=I2C#id4",MPYTHON_I2C_READFROM_INTO_MESSAGE0:"read from %1 %6 address %2 into %3 bytes num %4 stop bit %5",MPYTHON_I2C_READFROM_INTO_TOOLTIP:"",MPYTHON_I2C_WRITETO_MEN_HELPURL:"https://mpython.readthedocs.io/zh/master/library/micropython/machine/machine.I2C.html?highlight=I2C#id5",MPYTHON_I2C_WRITETO_MEN_MESSAGE0:"write to %1 %5 address %2 mem %4 data %3",MPYTHON_I2C_WRITETO_MEN_TOOLTIP:"Address: Number\nData: Number, String",MPYTHON_I2C_READFROM_MEN_HELPURL:"https://mpython.readthedocs.io/zh/master/library/micropython/machine/machine.I2C.html?highlight=I2C#id5",MPYTHON_I2C_READFROM_MEN_MESSAGE0:"read from %1 %5 address %2 mem %4 bytes num %3",MPYTHON_I2C_READFROM_MEN_TOOLTIP:"Address: Number\nReturn: Convert bytes data to string",MPYTHON_I2C_READFROM_MEN_INTO_HELPURL:"https://mpython.readthedocs.io/zh/master/library/micropython/machine/machine.I2C.html?highlight=I2C#id5",MPYTHON_I2C_READFROM_MEN_INTO_MESSAGE0:"read from %1 %6 address %2 mem %5 into %3 bytes num %4",MPYTHON_I2C_READFROM_MEN_INTO_TOOLTIP:"Address: Number\nReturn: Convert bytes data to string",MICROBIT_CONVERT_BYTEARRAY_HELPURL:"https://microbit-micropython.readthedocs.io/en/latest/i2c.html",MICROBIT_CONVERT_BYTEARRAY_TOOLTIP:"",MICROBIT_CONVERT_BYTEARRAY_MESSAGE0:"bytearray %1",AUTH:"Please authorize this app to enable your work to be saved and to allow it to be shared by you.",CHAT:"Chat with your collaborator by typing in this box!",TRY_EXCEPT_FINALLY:"finally",TRY_EXCEPT_FINALLY_TOOLTIP:"",TRY_EXCEPT_EXCEPT:"except",TRY_EXCEPT_EXCEPT_TOOLTIP:"",TRY_EXCEPT_TRY:"try",TRY_EXCEPT_TRY_TOOLTIP:"",TRY_EXCEPT_HELPURL:"https://mpythonx.readthedocs.io/zh_CN/latest/index.html",LISTS_POP_HELPURL:"",LISTS_POP_TOOLTIP:"",LISTS_POP_MESSAGE0:"remove %2 item in list %1",MATH_CONVERT_HELPURL:"",MATH_CONVERT_MESSAGE0:"%1 %2",MATH_CONVERT_TOOLTIP:"Conversion data type",MATH_DIVISION_CONSULT_HELPURL:"",MATH_DIVISION_CONSULT_TITLE:"the integer part of the quotient %1 ÷ %2",MATH_DIVISION_CONSULT_TOOLTIP:"",MATH_NUMBER_BITS_OPS_HELPURL:"",MATH_NUMBER_BITS_OPS_MESSAGE0:"%1 %2 %3",MATH_NUMBER_BITS_OPS_TOOLTIP:"Bitwise operations on numbers",ME:"Me",MPYTHON_PRINT_TO_CHART_TOOLTIP:"",MPYTHON_PRINT_TO_CHART_EMPTY_TITLE:"print data to chart",MPYTHON_PRINT_TO_CHART_INPUT_WITH:"print data to chart",MPYTHON_PRINT_TO_CHART_ITEM_TITLE:"data",MPYTHON_PRINT_TO_CHART_ITEM_TOOLTIP:"",MPYTHON_PRINT_TO_CHART_CONTAINER_TITLE_ADD:"data content",MPYTHON_PRINT_TO_CHART_CONTAINER_TOOLTIP:"",MPYTHON_INIT_CHART_TOOLTIP:"",MPYTHON_INIT_CHART_EMPTY_TITLE:"init chart column headers",MPYTHON_INIT_CHART_INPUT_WITH:"init chart column headers",MPYTHON_INIT_CHART_ITEM_TITLE:"header",MPYTHON_INIT_CHART_ITEM_TOOLTIP:"",MPYTHON_INIT_CHART_CONTAINER_TITLE_ADD:"column header",MPYTHON_INIT_CHART_CONTAINER_TOOLTIP:"",MICROBIT_IMAGE_CREATE1_MESSAGE0:"create image %1 line 1 %2 line 2 %3 line 3 %4 line 4 %5 line 5 %6",MICROBIT_IMAGE_CREATE1_TOOLTIP:"Create new image.",MICROBIT_IMAGE_CREATE1_HELPURL:"",ADD_COMMENT:"Add Comment",CHANGE_VALUE_TITLE:"Change value:",COLLAPSE_ALL:"Collapse Blocks",COLLAPSE_BLOCK:"Collapse Block",COLOUR_BLEND_COLOUR1:"colour 1",COLOUR_BLEND_COLOUR2:"colour 2",COLOUR_BLEND_HELPURL:"http://meyerweb.com/eric/tools/color-blend/",COLOUR_BLEND_RATIO:"ratio",COLOUR_BLEND_TITLE:"blend",COLOUR_BLEND_TOOLTIP:"Blends two colours together with a given ratio (0.0 - 1.0).",COLOUR_PICKER_HELPURL:"https://en.wikipedia.org/wiki/Color",COLOUR_PICKER_TOOLTIP:"Choose a colour from the palette.",COLOUR_RANDOM_HELPURL:"http://randomcolour.com",COLOUR_RANDOM_TITLE:"random colour",COLOUR_RANDOM_TOOLTIP:"Choose a colour at random.",COLOUR_RGB_BLUE:"blue",COLOUR_RGB_GREEN:"green",COLOUR_RGB_HELPURL:"http://www.december.com/html/spec/colorper.html",COLOUR_RGB_RED:"red",COLOUR_RGB_TITLE:"colour with",COLOUR_RGB_TOOLTIP:"Create a colour with the specified amount of red, green, and blue. All values must be between 0 and 100.",CONTROLS_FLOW_STATEMENTS_HELPURL:"https://github.com/google/blockly/wiki/Loops#loop-termination-blocks",CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK:"break out of loop",CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE:"continue with next iteration of loop",CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK:"Break out of the containing loop.",CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE:"Skip the rest of this loop, and continue with the next iteration.",CONTROLS_FLOW_STATEMENTS_WARNING:"Warning: This block may only be used within a loop.",CONTROLS_FOREACH_HELPURL:"https://github.com/google/blockly/wiki/Loops#for-each",CONTROLS_FOREACH_TITLE:"for each item %1 in list %2",CONTROLS_FOREACH_TOOLTIP:"For each item in a list, set the variable '%1' to the item, and then do some statements.",CONTROLS_FOR_HELPURL:"https://github.com/google/blockly/wiki/Loops#count-with",CONTROLS_FOR_TITLE:"count with %1 from %2 to %3 by %4",CONTROLS_FOR_TOOLTIP:"Have the variable '%1' take on the values from the start number to the end number, counting by the specified interval, and do the specified blocks.",CONTROLS_IF_ELSEIF_TOOLTIP:"Add a condition to the if block.",CONTROLS_IF_ELSE_TOOLTIP:"Add a final, catch-all condition to the if block.",CONTROLS_IF_HELPURL:"https://github.com/google/blockly/wiki/IfElse",CONTROLS_IF_IF_TOOLTIP:"Add, remove, or reorder sections to reconfigure this if block.",CONTROLS_IF_MSG_ELSE:"else",CONTROLS_IF_MSG_ELSEIF:"else if",CONTROLS_IF_MSG_IF:"if",CONTROLS_IF_TOOLTIP_1:"If a value is true, then do some statements.",CONTROLS_IF_TOOLTIP_2:"If a value is true, then do the first block of statements. Otherwise, do the second block of statements.",CONTROLS_IF_TOOLTIP_3:"If the first value is true, then do the first block of statements. Otherwise, if the second value is true, do the second block of statements.",CONTROLS_IF_TOOLTIP_4:"If the first value is true, then do the first block of statements. Otherwise, if the second value is true, do the second block of statements. If none of the values are true, do the last block of statements.",CONTROLS_REPEAT_HELPURL:"https://en.wikipedia.org/wiki/For_loop",CONTROLS_REPEAT_INPUT_DO:"",CONTROLS_REPEAT_TITLE:"repeat %1 times",CONTROLS_REPEAT_TOOLTIP:"Do some statements several times.",CONTROLS_WHILEUNTIL_HELPURL:"https://github.com/google/blockly/wiki/Loops#repeat",CONTROLS_WHILEUNTIL_OPERATOR_UNTIL:"repeat until",CONTROLS_WHILEUNTIL_OPERATOR_WHILE:"repeat while",CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL:"While a value is false, then do some statements.",CONTROLS_WHILEUNTIL_TOOLTIP_WHILE:"While a value is true, then do some statements.",DELETE_BLOCK:"Delete Block",DELETE_X_BLOCKS:"Delete %1 Blocks",DISABLE_BLOCK:"Disable Block",DUPLICATE_BLOCK:"Duplicate",ENABLE_BLOCK:"Enable Block",EXPAND_ALL:"Expand Blocks",EXPAND_BLOCK:"Expand Block",EXTERNAL_INPUTS:"External Inputs",HELP:"Help",INLINE_INPUTS:"Inline Inputs",LISTS_CREATE_EMPTY_HELPURL:"https://github.com/google/blockly/wiki/Lists#create-empty-list",LISTS_CREATE_EMPTY_TITLE:"create empty list",LISTS_CREATE_EMPTY_TOOLTIP:"Returns a list, of length 0, containing no data records",LISTS_CREATE_WITH_CONTAINER_TITLE_ADD:"list",LISTS_CREATE_WITH_CONTAINER_TOOLTIP:"Add, remove, or reorder sections to reconfigure this list block.",SET_CREATE_WITH_CONTAINER_TOOLTIP:"Add, remove, or reorder sections to reconfigure this set block.",LISTS_CREATE_WITH_HELPURL:"https://github.com/google/blockly/wiki/Lists#create-list-with",LISTS_CREATE_WITH_INPUT_WITH:"create list with",LISTS_CREATE_WITH_ITEM_TOOLTIP:"Add an item to the list.",LISTS_CREATE_WITH_TOOLTIP:"Create a list with any number of items.",LISTS_GET_INDEX_FIRST:"first",LISTS_GET_INDEX_FROM_END:"# from end",LISTS_GET_INDEX_FROM_START:"#",LISTS_GET_INDEX_GET:"get",LISTS_GET_INDEX_GET_REMOVE:"get and remove",LISTS_GET_INDEX_LAST:"last",LISTS_GET_INDEX_RANDOM:"random",LISTS_GET_INDEX_REMOVE:"remove",LISTS_GET_INDEX_TAIL:"",LISTS_GET_INDEX_TOOLTIP_GET_FIRST:"Returns the first item in a list.",LISTS_GET_INDEX_TOOLTIP_GET_FROM_END:"Returns the item at the specified position in a list. #1 is the last item.",LISTS_GET_INDEX_TOOLTIP_GET_FROM_START:"Returns the item at the specified position in a list. #1 is the first item.",LISTS_GET_INDEX_TOOLTIP_GET_LAST:"Returns the last item in a list.",LISTS_GET_INDEX_TOOLTIP_GET_RANDOM:"Returns a random item in a list.",LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST:"Removes and returns the first item in a list.",LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM_END:"Removes and returns the item at the specified position in a list. #1 is the last item.",LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM_START:"Removes and returns the item at the specified position in a list. #1 is the first item.",LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST:"Removes and returns the last item in a list.",LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM:"Removes and returns a random item in a list.",LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST:"Removes the first item in a list.",LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM_END:"Removes the item at the specified position in a list. #1 is the last item.",LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM_START:"Removes the item at the specified position in a list. #1 is the first item.",LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST:"Removes the last item in a list.",LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM:"Removes a random item in a list.",LISTS_GET_SUBLIST_END_FROM_END:"to # from end",LISTS_GET_SUBLIST_END_FROM_START:"to #",LISTS_GET_SUBLIST_END_LAST:"to last",LISTS_GET_SUBLIST_HELPURL:"https://github.com/google/blockly/wiki/Lists#getting-a-sublist",LISTS_GET_SUBLIST_START_FIRST:"get sub-list from first",LISTS_GET_SUBLIST_START_FROM_END:"get sub-list from # from end",LISTS_GET_SUBLIST_START_FROM_START:"get sub-list from #",LISTS_GET_SUBLIST_TAIL:"",LISTS_GET_SUBLIST_TOOLTIP:"Creates a copy of the specified portion of a list.",LISTS_INDEX_OF_FIRST:"find first occurrence of item",LISTS_INDEX_OF_HELPURL:"https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list",LISTS_INDEX_OF_LAST:"find last occurrence of item",LISTS_INDEX_OF_TOOLTIP:"Returns the index of the first/last occurrence of the item in the list. Returns 0 if text is not found.",LISTS_INLIST:"in list",LISTS_ISEMPTY_HELPURL:"https://github.com/google/blockly/wiki/Lists#is-empty",LISTS_ISEMPTY_TITLE:"%1 is empty",LISTS_ISEMPTY_TOOLTIP:"Returns true if the list is empty.",LISTS_LENGTH_HELPURL:"https://github.com/google/blockly/wiki/Lists#length-of",LISTS_LENGTH_TITLE:"length of %1",LISTS_LENGTH_TOOLTIP:"Returns the length of a list.",LISTS_REPEAT_HELPURL:"https://github.com/google/blockly/wiki/Lists#create-list-with",LISTS_REPEAT_TITLE:"create list with item %1 repeated %2 times",LISTS_REPEAT_TOOLTIP:"Creates a list consisting of the given value repeated the specified number of times.",LISTS_SET_INDEX_HELPURL:"https://github.com/google/blockly/wiki/Lists#in-list--set",LISTS_SET_INDEX_INPUT_TO:"as",LISTS_SET_INDEX_INSERT:"insert at",LISTS_SET_INDEX_SET:"set",LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST:"Inserts the item at the start of a list.",LISTS_SET_INDEX_TOOLTIP_INSERT_FROM_END:"Inserts the item at the specified position in a list. #1 is the last item.",LISTS_SET_INDEX_TOOLTIP_INSERT_FROM_START:"Inserts the item at the specified position in a list. #1 is the first item.",LISTS_SET_INDEX_TOOLTIP_INSERT_LAST:"Append the item to the end of a list.",LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM:"Inserts the item randomly in a list.",LISTS_SET_INDEX_TOOLTIP_SET_FIRST:"Sets the first item in a list.",LISTS_SET_INDEX_TOOLTIP_SET_FROM_END:"Sets the item at the specified position in a list. #1 is the last item.",LISTS_SET_INDEX_TOOLTIP_SET_FROM_START:"Sets the item at the specified position in a list. #1 is the first item.",LISTS_SET_INDEX_TOOLTIP_SET_LAST:"Sets the last item in a list.",LISTS_SET_INDEX_TOOLTIP_SET_RANDOM:"Sets a random item in a list.",LISTS_SPLIT_HELPURL:"https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists",LISTS_SPLIT_LIST_FROM_TEXT:"make list from text",LISTS_SPLIT_TEXT_FROM_LIST:"make text from list",LISTS_SPLIT_TOOLTIP_JOIN:"Join a list of texts into one text, separated by a delimiter.",LISTS_SPLIT_TOOLTIP_SPLIT:"Split text into a list of texts, breaking at each delimiter.",LISTS_SPLIT_WITH_DELIMITER:"with delimiter",LOGIC_BOOLEAN_FALSE:"false",LOGIC_BOOLEAN_HELPURL:"https://github.com/google/blockly/wiki/Logic#values",LOGIC_BOOLEAN_TOOLTIP:"Returns either true or false.",LOGIC_BOOLEAN_TRUE:"true",LOGIC_COMPARE_HELPURL:"https://en.wikipedia.org/wiki/Inequality_(mathematics)",LOGIC_COMPARE_TOOLTIP_EQ:"Return true if both inputs equal each other.",LOGIC_COMPARE_TOOLTIP_GT:"Return true if the first input is greater than the second input.",LOGIC_COMPARE_TOOLTIP_GTE:"Return true if the first input is greater than or equal to the second input.",LOGIC_COMPARE_TOOLTIP_LT:"Return true if the first input is smaller than the second input.",LOGIC_COMPARE_TOOLTIP_LTE:"Return true if the first input is smaller than or equal to the second input.",LOGIC_COMPARE_TOOLTIP_NEQ:"Return true if both inputs are not equal to each other.",LOGIC_NEGATE_HELPURL:"https://github.com/google/blockly/wiki/Logic#not",LOGIC_NEGATE_TITLE:"not %1",LOGIC_NEGATE_TOOLTIP:"Returns true if the input is false. Returns false if the input is true.",LOGIC_NULL:"null",LOGIC_NULL_HELPURL:"https://en.wikipedia.org/wiki/Nullable_type",LOGIC_NULL_TOOLTIP:"Returns null.",LOGIC_OPERATION_AND:"and",LOGIC_OPERATION_HELPURL:"https://github.com/google/blockly/wiki/Logic#logical-operations",LOGIC_OPERATION_OR:"or",LOGIC_OPERATION_TOOLTIP_AND:"Return true if both inputs are true.",LOGIC_OPERATION_TOOLTIP_OR:"Return true if at least one of the inputs is true.",LOGIC_TERNARY_CONDITION:"test",LOGIC_TERNARY_HELPURL:"https://en.wikipedia.org/wiki/%3F:",LOGIC_TERNARY_IF_FALSE:"if false",LOGIC_TERNARY_IF_TRUE:"if true",LOGIC_TERNARY_TOOLTIP:"Check the condition in 'test'. If the condition is true, returns the 'if true' value; otherwise returns the 'if false' value.",MATH_ADDITION_SYMBOL:"+",MATH_ARITHMETIC_HELPURL:"https://en.wikipedia.org/wiki/Arithmetic",MATH_ARITHMETIC_TOOLTIP_ADD:"Return the sum of the two numbers.",MATH_ARITHMETIC_TOOLTIP_DIVIDE:"Return the quotient of the two numbers.",MATH_ARITHMETIC_TOOLTIP_MINUS:"Return the difference of the two numbers.",MATH_ARITHMETIC_TOOLTIP_MULTIPLY:"Return the product of the two numbers.",MATH_ARITHMETIC_TOOLTIP_POWER:"Return the first number raised to the power of the second number.",MATH_CHANGE_HELPURL:"https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter",MATH_CHANGE_TITLE:"change %1 by %2",MATH_CHANGE_TOOLTIP:"Add a number to variable '%1'.",MATH_CONSTANT_HELPURL:"https://en.wikipedia.org/wiki/Mathematical_constant",MATH_CONSTANT_TOOLTIP:"Return one of the common constants: π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…), or ∞ (infinity).",MATH_CONSTRAIN_HELPURL:"https://en.wikipedia.org/wiki/Clamping_%28graphics%29",MATH_CONSTRAIN_TITLE:"constrain %1 low %2 high %3",MATH_CONSTRAIN_TOOLTIP:"Constrain a number to be between the specified limits (inclusive).",MATH_DIVISION_SYMBOL:"÷",MATH_IS_DIVISIBLE_BY:"is divisible by",MATH_IS_EVEN:"is even",MATH_IS_NEGATIVE:"is negative",MATH_IS_ODD:"is odd",MATH_IS_POSITIVE:"is positive",MATH_IS_PRIME:"is prime",MATH_IS_TOOLTIP:"Check if a number is an even, odd, prime, whole, positive, negative, or if it is divisible by certain number. Returns true or false.",MATH_IS_WHOLE:"is whole",MATH_MODULO_HELPURL:"https://en.wikipedia.org/wiki/Modulo_operation",MATH_MODULO_TITLE:"remainder of %1 ÷ %2",MATH_MODULO_TOOLTIP:"Return the remainder from dividing the two numbers.",MATH_MULTIPLICATION_SYMBOL:"×",MATH_NUMBER_HELPURL:"https://en.wikipedia.org/wiki/Number",MATH_NUMBER_TOOLTIP:"A number.",MATH_ONLIST_HELPURL:"",MATH_ONLIST_OPERATOR_AVERAGE:"average of list",MATH_ONLIST_OPERATOR_MAX:"max of list",MATH_ONLIST_OPERATOR_MEDIAN:"median of list",MATH_ONLIST_OPERATOR_MIN:"min of list",MATH_ONLIST_OPERATOR_MODE:"modes of list",MATH_ONLIST_OPERATOR_RANDOM:"random item of list",MATH_ONLIST_OPERATOR_STD_DEV:"standard deviation of list",MATH_ONLIST_OPERATOR_SUM:"sum of list",MATH_ONLIST_TOOLTIP_AVERAGE:"Return the average (arithmetic mean) of the numeric values in the list.",MATH_ONLIST_TOOLTIP_MAX:"Return the largest number in the list.",MATH_ONLIST_TOOLTIP_MEDIAN:"Return the median number in the list.",MATH_ONLIST_TOOLTIP_MIN:"Return the smallest number in the list.",MATH_ONLIST_TOOLTIP_MODE:"Return a list of the most common item(s) in the list.",MATH_ONLIST_TOOLTIP_RANDOM:"Return a random element from the list.",MATH_ONLIST_TOOLTIP_STD_DEV:"Return the standard deviation of the list.",MATH_ONLIST_TOOLTIP_SUM:"Return the sum of all the numbers in the list.",MATH_POWER_SYMBOL:"**",MATH_RANDOM_FLOAT_HELPURL:"https://en.wikipedia.org/wiki/Random_number_generation",MATH_RANDOM_FLOAT_TITLE_RANDOM:"random fraction",MATH_RANDOM_FLOAT_TOOLTIP:"Return a random fraction between 0.0 (inclusive) and 1.0 (exclusive).",MATH_RANDOM_INT_HELPURL:"https://en.wikipedia.org/wiki/Random_number_generation",MATH_RANDOM_INT_TITLE:"random integer from %1 to %2",MATH_RANDOM_INT_TOOLTIP:"Return a random integer between the two specified limits, inclusive.",MATH_ROUND_HELPURL:"https://en.wikipedia.org/wiki/Rounding",MATH_ROUND_OPERATOR_ROUND:"round",MATH_ROUND_OPERATOR_ROUNDDOWN:"round down",MATH_ROUND_OPERATOR_ROUNDUP:"round up",MATH_ROUND_TOOLTIP:"Round a number up or down.",MATH_SINGLE_HELPURL:"https://en.wikipedia.org/wiki/Square_root",MATH_SINGLE_OP_ABSOLUTE:"absolute",MATH_SINGLE_OP_ROOT:"square root",MATH_SINGLE_TOOLTIP_ABS:"Return the absolute value of a number.",MATH_SINGLE_TOOLTIP_EXP:"Return e to the power of a number.",MATH_SINGLE_TOOLTIP_LN:"Return the natural logarithm of a number.",MATH_SINGLE_TOOLTIP_LOG10:"Return the base 10 logarithm of a number.",MATH_SINGLE_TOOLTIP_NEG:"Return the negation of a number.",MATH_SINGLE_TOOLTIP_POW10:"Return 10 to the power of a number.",MATH_SINGLE_TOOLTIP_ROOT:"Return the square root of a number.",MATH_SUBTRACTION_SYMBOL:"-",MATH_TRIG_ACOS:"acos",MATH_TRIG_ASIN:"asin",MATH_TRIG_ATAN:"atan",MATH_TRIG_COS:"cos",MATH_TRIG_HELPURL:"https://en.wikipedia.org/wiki/Trigonometric_functions",MATH_TRIG_SIN:"sin",MATH_TRIG_TAN:"tan",MATH_TRIG_TOOLTIP_ACOS:"Return the arccosine of a number.",MATH_TRIG_TOOLTIP_ASIN:"Return the arcsine of a number.",MATH_TRIG_TOOLTIP_ATAN:"Return the arctangent of a number.",MATH_TRIG_TOOLTIP_COS:"Return the cosine of a degree (not radian).",MATH_TRIG_TOOLTIP_SIN:"Return the sine of a degree (not radian).",MATH_TRIG_TOOLTIP_TAN:"Return the tangent of a degree (not radian).",NEW_VARIABLE:"New variable...",NEW_VARIABLE_TITLE:"New variable name:",ORDINAL_NUMBER_SUFFIX:"",PROCEDURES_ALLOW_STATEMENTS:"allow statements",PROCEDURES_BEFORE_PARAMS:"with:",PROCEDURES_CALLNORETURN_CALL:"",PROCEDURES_CALLNORETURN_HELPURL:"https://en.wikipedia.org/wiki/Procedure_%28computer_science%29",PROCEDURES_CALLNORETURN_TOOLTIP:"Run the user-defined function '%1'.",PROCEDURES_CALLRETURN_HELPURL:"https://en.wikipedia.org/wiki/Procedure_%28computer_science%29",PROCEDURES_CALLRETURN_TOOLTIP:"Run the user-defined function '%1' and use its output.",PROCEDURES_CALL_BEFORE_PARAMS:"with:",PROCEDURES_CREATE_DO:"Create '%1'",PROCEDURES_DEFNORETURN_COMMENT:"",PROCEDURES_DEFNORETURN_DO:"",PROCEDURES_DEFNORETURN_HELPURL:"https://en.wikipedia.org/wiki/Procedure_%28computer_science%29",PROCEDURES_DEFNORETURN_PROCEDURE:"my_func",PROCEDURES_DEFNORETURN_TITLE:"to",PROCEDURES_DEFNORETURN_TOOLTIP:"Creates a function with no output.",PROCEDURES_DEFRETURN_HELPURL:"https://en.wikipedia.org/wiki/Procedure_%28computer_science%29",PROCEDURES_DEFRETURN_RETURN:"return",PROCEDURES_DEFRETURN_TOOLTIP:"Creates a function with an output.",PROCEDURES_DEF_DUPLICATE_WARNING:"Warning: This function has duplicate parameters.",PROCEDURES_HIGHLIGHT_DEF:"Highlight function definition",PROCEDURES_IFRETURN_TOOLTIP:"If a value is true, then return a second value.",PROCEDURES_IFRETURN_WARNING:"Warning: This block may be used only within a function definition.",PROCEDURES_MUTATORARG_TITLE:"input name:",PROCEDURES_MUTATORARG_TOOLTIP:"Add an input to the function.",PROCEDURES_MUTATORCONTAINER_TITLE:"inputs",PROCEDURES_MUTATORCONTAINER_TOOLTIP:"Add, remove, or reorder inputs to this function.",REMOVE_COMMENT:"Remove Comment",RENAME_VARIABLE:"Rename variable...",RENAME_VARIABLE_TITLE:"Rename all '%1' variables to:",TEXT_APPEND_APPENDTEXT:"append text",TEXT_APPEND_HELPURL:"https://github.com/google/blockly/wiki/Text#text-modification",TEXT_APPEND_TO:"to",TEXT_APPEND_TOOLTIP:"Append some text to variable '%1'.",TEXT_CHANGECASE_HELPURL:"https://github.com/google/blockly/wiki/Text#adjusting-text-case",TEXT_CHANGECASE_OPERATOR_LOWERCASE:"to lower case",TEXT_CHANGECASE_OPERATOR_TITLECASE:"to Title Case",TEXT_CHANGECASE_OPERATOR_UPPERCASE:"to UPPER CASE",TEXT_CHANGECASE_TOOLTIP:"Return a copy of the text in a different case.",TEXT_CHARAT_FIRST:"get first letter",TEXT_CHARAT_FROM_END:"get letter # from end",TEXT_CHARAT_FROM_START:"get letter #",TEXT_CHARAT_HELPURL:"https://github.com/google/blockly/wiki/Text#extracting-text",TEXT_CHARAT_INPUT_INTEXT:"in text",TEXT_CHARAT_LAST:"get last letter",TEXT_CHARAT_RANDOM:"get random letter",TEXT_CHARAT_TAIL:"",TEXT_CHARAT_TOOLTIP:"Returns the letter at the specified position.",TEXT_CREATE_JOIN_ITEM_TOOLTIP:"Add an item to the text.",TEXT_CREATE_JOIN_TITLE_JOIN:"join",TEXT_CREATE_JOIN_TOOLTIP:"Add, remove, or reorder sections to reconfigure this text block.",TEXT_GET_SUBSTRING_END_FROM_END:"to letter # from end",TEXT_GET_SUBSTRING_END_FROM_START:"to letter #",TEXT_GET_SUBSTRING_END_LAST:"to last letter",TEXT_GET_SUBSTRING_HELPURL:"https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text",TEXT_GET_SUBSTRING_INPUT_IN_TEXT:"in text",TEXT_GET_SUBSTRING_START_FIRST:"get substring from first letter",TEXT_GET_SUBSTRING_START_FROM_END:"get substring from letter # from end",TEXT_GET_SUBSTRING_START_FROM_START:"get substring from letter #",TEXT_GET_SUBSTRING_TAIL:"",TEXT_GET_SUBSTRING_TOOLTIP:"Returns a specified portion of the text.",TEXT_INDEXOF_HELPURL:"https://github.com/google/blockly/wiki/Text#finding-text",TEXT_INDEXOF_INPUT_INTEXT:"in text",TEXT_INDEXOF_OPERATOR_FIRST:"find first occurrence of text",TEXT_INDEXOF_OPERATOR_LAST:"find last occurrence of text",TEXT_INDEXOF_TAIL:"",TEXT_INDEXOF_TOOLTIP:"Returns the index of the first/last occurrence of first text in the second text. Returns 0 if text is not found.",TEXT_ISEMPTY_HELPURL:"https://github.com/google/blockly/wiki/Text#checking-for-empty-text",TEXT_ISEMPTY_TITLE:"%1 is empty",TEXT_ISEMPTY_TOOLTIP:"Returns true if the provided text is empty.",TEXT_JOIN_HELPURL:"https://github.com/google/blockly/wiki/Text#text-creation",TEXT_JOIN_TITLE_CREATEWITH:"create text with",TEXT_JOIN_TOOLTIP:"Create a piece of text by joining together any number of items.",TEXT_LENGTH_HELPURL:"https://github.com/google/blockly/wiki/Text#text-modification",TEXT_LENGTH_TITLE:"length of %1",TEXT_LENGTH_TOOLTIP:"Returns the number of letters (including spaces) in the provided text.",TEXT_PRINT_HELPURL:"https://github.com/google/blockly/wiki/Text#printing-text",TEXT_PRINT_TITLE:"print %1",TEXT_PRINT_TOOLTIP:"Print the specified text, number or other value.",TEXT_PROMPT_HELPURL:"https://github.com/google/blockly/wiki/Text#getting-input-from-the-user",TEXT_PROMPT_TOOLTIP_NUMBER:"Prompt for user for a number.",TEXT_PROMPT_TOOLTIP_TEXT:"Prompt for user for some text.",TEXT_PROMPT_TYPE_NUMBER:"prompt for number with message",TEXT_PROMPT_TYPE_TEXT:"prompt for text with message",TEXT_TEXT_HELPURL:"https://en.wikipedia.org/wiki/String_(computer_science)",TEXT_TEXT_TOOLTIP:"A letter, word, or line of text.",TEXT_TRIM_HELPURL:"https://github.com/google/blockly/wiki/Text#trimming-removing-spaces",TEXT_TRIM_OPERATOR_BOTH:"trim spaces from both sides of",TEXT_TRIM_OPERATOR_LEFT:"trim spaces from left side of",TEXT_TRIM_OPERATOR_RIGHT:"trim spaces from right side of",TEXT_TRIM_TOOLTIP:"Return a copy of the text with spaces removed from one or both ends.",TODAY:"Today",VARIABLES_DEFAULT_NAME:"item",VARIABLES_GET_CREATE_SET:"Create 'set %1'",VARIABLES_GET_HELPURL:"https://github.com/google/blockly/wiki/Variables#get",VARIABLES_GET_TOOLTIP:"Returns the value of this variable.",VARIABLES_SET:"set %1 to %2",VARIABLES_SET_CREATE_GET:"Create 'get %1'",VARIABLES_SET_HELPURL:"https://github.com/google/blockly/wiki/Variables#set",VARIABLES_SET_TOOLTIP:"Sets this variable to be equal to the input."};lF.PROCEDURES_DEFRETURN_TITLE=lF.PROCEDURES_DEFNORETURN_TITLE,lF.CONTROLS_IF_IF_TITLE_IF=lF.CONTROLS_IF_MSG_IF,lF.CONTROLS_WHILEUNTIL_INPUT_DO=lF.CONTROLS_REPEAT_INPUT_DO,lF.CONTROLS_IF_MSG_THEN=lF.CONTROLS_REPEAT_INPUT_DO,lF.PROCEDURES_DEFRETURN_PROCEDURE=lF.PROCEDURES_DEFNORETURN_PROCEDURE,lF.CONTROLS_IF_ELSE_TITLE_ELSE=lF.CONTROLS_IF_MSG_ELSE,lF.PROCEDURES_CALLRETURN_CALL=lF.PROCEDURES_CALLNORETURN_CALL,lF.LISTS_GET_SUBLIST_INPUT_IN_LIST=lF.LISTS_INLIST,lF.LISTS_GET_INDEX_INPUT_IN_LIST=lF.LISTS_INLIST,lF.MATH_CHANGE_TITLE_ITEM=lF.VARIABLES_DEFAULT_NAME,lF.PROCEDURES_DEFRETURN_DO=lF.PROCEDURES_DEFNORETURN_DO,lF.CONTROLS_IF_ELSEIF_TITLE_ELSEIF=lF.CONTROLS_IF_MSG_ELSEIF,lF.LISTS_GET_INDEX_HELPURL=lF.LISTS_INDEX_OF_HELPURL,lF.CONTROLS_FOREACH_INPUT_DO=lF.CONTROLS_REPEAT_INPUT_DO,lF.CONTROLS_FOR_INPUT_DO=lF.CONTROLS_REPEAT_INPUT_DO,lF.LISTS_CREATE_WITH_ITEM_TITLE=lF.VARIABLES_DEFAULT_NAME,lF.TEXT_APPEND_VARIABLE=lF.VARIABLES_DEFAULT_NAME,lF.TEXT_CREATE_JOIN_ITEM_TITLE_ITEM=lF.VARIABLES_DEFAULT_NAME,lF.LISTS_INDEX_OF_INPUT_IN_LIST=lF.LISTS_INLIST,lF.LISTS_SET_INDEX_INPUT_IN_LIST=lF.LISTS_INLIST,lF.LISTS_CREATE_WITH_ITEM_TITLE=lF.VARIABLES_DEFAULT_NAME,lF.TUPLE_CREATE_WITH_ITEM_TITLE=lF.VARIABLES_DEFAULT_NAME,lF.DICT_CREATE_WITH_ITEM_TITLE=lF.VARIABLES_DEFAULT_NAME,lF.SET_CREATE_WITH_ITEM_TITLE=lF.VARIABLES_DEFAULT_NAME,lF.TEXT_APPEND_VARIABLE=lF.VARIABLES_DEFAULT_NAME,lF.TEXT_CREATE_JOIN_ITEM_TITLE_ITEM=lF.VARIABLES_DEFAULT_NAME,lF.MATH_CHANGE_TITLE_ITEM=lF.VARIABLES_DEFAULT_NAME,lF.LABPLUS_USB_SWITCH_ON="turn on",lF.LABPLUS_USB_SWITCH_OFF="turn off",lF.LABPLUS_MOTOR_ON_ANTICLOCKWISE="toggle",lF.XUNFEI_SPEECH_TTS_HELPURL="",lF.XUNFEI_SPEECH_TTS_TOOLTIP='The synthesized audio file format can only be "*.pcm"',lF.XUNFEI_SPEECH_TTS_MESSAGE0="[iFLYTEK] synthetic audio %1 APPID %2 APISecret %3 APIKey %4 text %5 transfer to audio file %6",lF.XUNFEI_SPEECH_IAT_HELPURL="",lF.XUNFEI_SPEECH_IAT_TOOLTIP='The audio formats that can be recognized are "*.pcm" and "*.wav"',lF.XUNFEI_SPEECH_IAT_MESSAGE0="[iFLYTEK] identify audio %1 APPID %2 APISecret %3 APIKey %4 audio file to be identified %5",lF.XUNFEI_SPEECH_IAT_RESULT_HELPURL="",lF.XUNFEI_SPEECH_IAT_RESULT_TOOLTIP="",lF.XUNFEI_SPEECH_IAT_RESULT_MESSAGE0="[iFLYTEK] identify result",lF.MPYTHON_LARK_GET_ALL_COLOR_MESSAGE0="LARK I2C RGB color",lF.MPYTHON_LARK_GET_ALL_COLOR_TOOLTIP="Returns as list",lF.MPYTHON_LARK_GET_COLOR_TOOLTIP="",lF.MPYTHON_LARK_GET_COLOR_MESSAGE0="LARK I2C RGB color %1",lF.MPYTHON_lARK_RED="RED",lF.MPYTHON__LARK_GREEN="GREEN",lF.MPYTHON__LARK_BLUE="BLUE",lF.MPYTHON_LARK_GET_ALL_COLOR_HSV_TOOLTIP="HSV(Hue, Saturation, Value)",lF.MPYTHON_LARKT_GET_ALL_COLOR_HSV_MESSAGE0="LARK I2C HSV color",lF.MPYTHON_LARK_GET_COLOR_HSV_TOOLTIP="HSV(Hue, Saturation, Value)",lF.MPYTHON_LARK_GET_COLOR_HSV_MESSAGE0="LARK I2C HSV color %1",lF.MPYTHON_LARK_GET_COLOR_STRING_TOOLTIP="",lF.MPYTHON_LARK_GET_COLOR_STRING_MESSAGE0="LARK GET COLOR",lF.MPYTHON_LARK_DISCERN_COLOR_TOOLTIP="",lF.MPYTHON_LARK_DISCERN_COLOR_MESSAGE0="LARK GET COLOR %1",lF.MPYTHON_LARK_RED="RED",lF.MPYTHON_LARK_GREEN="GREEN",lF.MPYTHON_LARK_BLUE="BLUE",lF.MPYTHON_LARK_ORANGE="ORANGE",lF.MPYTHON_LARK_YELLOW="YELLOW",lF.MPYTHON_LARK_PURPLE="PURPLE",lF.MPYTHON_LARK_CYAN="CYAN",lF.MPYTHON_LARK_NONE="NO COLOR",lF.MPYTHON_LARK_NULL="FAIL THE COLOR",lF.MPYTHON_LARK_ULTRASONIC_TOOLTIP="",lF.MPYTHON_LARK_ULTRASONIC_MESSAGE0="LARK I2C ultrasonic value",lF.MPYTHON_LARK_MOTOR_SET_I2C_TOOLTIP="",lF.MPYTHON_LARK_MOTOR_SET_I2C_MESSAGE0="LARK I2C SET MOTOR %1 SPEED %2",lF.MPYTHON_LARK_MOTOR2_SET_I2C_TOOLTIP="",lF.MPYTHON_LARK_MOTOR2_SET_I2C_MESSAGE0="SWIFT HORSE %1 速度 %2",lF.MPYTHON_LARK_GET_LINE_ON_I2C_TOOLTIP="",lF.mpython_LARK_GET_LINE_ON_I2C_MESSAGE0="LARK I2C GET %1 VALUE",lF.mpython_LARK_GET_LINE_RIGHT_ON_I2C="RIGHT",lF.mpython_LARK_GET_LINE_LEFT_ON_I2C="LEFT",lF.MPYTHON_LARK_SEARCH_LINE_ON_I2C_TOOLTIP="",lF.mpython_LARK_SEARCH_LINE_ON_I2C_MESSAGE0="LARK I2C SEARCH TOUCH LINE %1",lF.MPYTHON_LARK_SEARCH_LEFT="LEFT",lF.MPYTHON_LARK_SEARCH_RIGHT="RIGHT",lF.MPYTHON_LARK_SEARCH_LEFT2="ALL",lF.MPYTHON_LARK_SEARCH_RIGHT2="NOT",lF.MPYTHON_LARK_SEARCH_BOTH="ALL",lF.MPYTHON_LARK_SEARCH_NONE="NOT",lF.MPYTHON_LARK__CAR_GET_ALL_COLOR_TOOLTIP="Returns as list",lF.MPYTHON_LARK__CAR_GET_ALL_COLOR_MESSAGE0="HORSE GET COLOR",lF.MPYTHON_LARK_CAR_GET_COLOR_TOOLTIP="",lF.MPYTHON_LARK_CAR_GET_COLOR_MESSAGE0="HORSE GET COLOR %1",lF.MPYTHON_lARK_CAR_RED="RED",lF.MPYTHON__LARK_CAR_GREEN="GREEN",lF.MPYTHON__LARK_CAR_BLUE="BLUE",lF.MPYTHON_LARK_CAR_GET_ALL_COLOR_HSV_TOOLTIP="HSV(Hue, Saturation, Value)",lF.MPYTHON_LARKT_CAR_GET_ALL_COLOR_HSV_MESSAGE0="HORSE I2C HSV color",lF.MPYTHON_LARK_CAR_GET_COLOR_HSV_TOOLTIP="HSV(Hue, Saturation, Value)",lF.MPYTHON_LARK_CAR_GET_COLOR_HSV_MESSAGE0="HORSE I2C HSV %1",lF.MPYTHON_LARK_CAR_GET_COLOR_STRING_TOOLTIP="",lF.MPYTHON_LARK_CAR_GET_COLOR_STRING_MESSAGE0="HORSE GET COLOR",lF.MPYTHON_LARK_CAR_DISCERN_COLOR_TOOLTIP="",lF.MPYTHON_LARK_CAR_DISCERN_COLOR_MESSAGE0="HORSE GET %1",lF.MPYTHON_LARK_CAR_RED="RED",lF.MPYTHON_LARK_CAR_GREEN="Green",lF.MPYTHON_LARK_CAR_BLUE="Blue",lF.MPYTHON_LARK_CAR_ORANGE="Orange",lF.MPYTHON_LARK_CAR_YELLOW="Yellow",lF.MPYTHON_LARK_CAR_PURPLE="Purple",lF.MPYTHON_LARK_CAR_CYAN="Cyan",lF.MPYTHON_LARK_CAR_NONE="None",lF.MPYTHON_LARK_CAR_NULL="Null",lF.MPYTHON_LARK_CAR_ULTRASONIC_TOOLTIP="",lF.MPYTHON_LARK_CAR_ULTRASONIC_MESSAGE0="Horse Get Ultrasoinc",lF.MPYTHON_LARK_CAR_GET_LINE_ON_I2C_TOOLTIP="",lF.mpython_LARK_CAR_GET_LINE_ON_I2C_MESSAGE0="HORSE GET %1 LINE VALUE",lF.mpython_LARK_CAR_GET_LINE_RIGHT_ON_I2C="RIGHT",lF.mpython_LARK_CAR_GET_LINE_LEFT_ON_I2C="LEFT",lF.MPYTHON_LARK_CAR_SEARCH_LINE_ON_I2C_TOOLTIP="",lF.mpython_LARK_CAR_SEARCH_LINE_ON_I2C_MESSAGE0="HORSE I2C SEARCH TOUCH LINE %1",lF.MPYTHON_LARK_CAR_SEARCH_LEFT="LEFT TOUCHED",lF.MPYTHON_LARK_CAR_SEARCH_RIGHT="RIGHT TOUCHED",lF.MPYTHON_LARK_CAR_SEARCH_LEFT2="BOTH TOUCHED",lF.MPYTHON_LARK_CAR_SEARCH_NONE="NOT TOUCHED",lF.MPYTHON_LARK_MOTOR_SET_I2C_TOOLTIP="",lF.MPYTHON_LARK_MOTOR_SET_I2C_MESSAGE0="HOSRE MOTION %1 SPEED %2",lF.MPYTHON_LARK_CAR_MOTION_LEFT="Trun Left",lF.MPYTHON_LARK_CAR_MOTION_RIGHT="Trun Right",lF.MPYTHON_LARK_CAR_MOTION_FORWARD="forward",lF.MPYTHON_LARK_CAR_MOTION_BACKWARD="Backward",lF.MPYTHON_LARK_CAR_MOTION_STOP="Stop",lF.MPYTHON_DEFINE_THREAD_MESSAGE0="define thread %1",lF.MPYTHON_RUN_THREAD_MESSAGE0="run thread %1",lF.NUMBER_TO_BYTES_MESSAGE0="(struct.pack) convert number to bytes %1 %2 %3 %4 source number %5",lF.BYTES_TO_NUMBER_MESSAGE0="(struct.unpack) unpack bytes to number %1 %2 %3 %4 source bytes %5",lF.LITTLE_ENDIAN="Little-Endian (Default)",lF.BIG_ENDIAN="Big-Endian",lF.MPYTHON2_ACCELEROMETER_EVENT_MESSAGE0="[mPython 2.x] When board is %1",lF.MPYTHON2_ACCELEROMETER_EVENT_HELPURL="",lF.MPYTHON2_ACCELEROMETER_EVENT_TOOLTIP="",lF.MPYTHON2_ACCELEROMETER_EVENT_TILT_LEFT="tilt left",lF.MPYTHON2_ACCELEROMETER_EVENT_TILT_RIGHT="tilt right",lF.MPYTHON2_ACCELEROMETER_EVENT_TILT_UP="tilt up",lF.MPYTHON2_ACCELEROMETER_EVENT_TILT_DOWN="tilt down",lF.MPYTHON2_ACCELEROMETER_EVENT_FACE_UP="face up",lF.MPYTHON2_ACCELEROMETER_EVENT_FACE_DOWN="face down",lF.MPYTHON2_ACCELEROMETER_EVENT_SINGLE_CLICK="single click",lF.MPYTHON2_ACCELEROMETER_EVENT_DOUBLE_CLICK="double click",lF.MPYTHON2_ACCELEROMETER_EVENT_FREEFALL="freefall",lF.MPYTHON2_ACCELEROMETER_ROLL_ANGLE="roll angle",lF.MPYTHON2_ACCELEROMETER_PITCH_ANGLE="pitch angle",lF.MPYTHON2_ACCELEROMETER_ANGLE_HELPURL="",lF.MPYTHON2_ACCELEROMETER_ANGLE_TOOLTIP="",lF.MPYTHON2_ACCELEROMETER_ANGLE_MESSAGE0="Get %1",lF.MPYTHON2_BUTTON_IS_PRESSED_HELPURL="",lF.MPYTHON2_BUTTON_IS_PRESSED_TOOLTIP="",lF.MPYTHON2_BUTTON_IS_PRESSED_MESSAGE0="Button %1 is pressed",lF.MPYTHON2_BUTTON_WAS_PRESSED_HELPURL="",lF.MPYTHON2_BUTTON_WAS_PRESSED_TOOLTIP="",lF.MPYTHON2_BUTTON_WAS_PRESSED_MESSAGE0="Button %1 was pressed",lF.MPYTHON2_BUTTON_GET_PRESSES_HELPURL="",lF.MPYTHON2_BUTTON_GET_PRESSES_TOOLTIP="",lF.MPYTHON2_BUTTON_GET_PRESSES_MESSAGE0="Get number of presses for button %1",lF.MPYTHON2_BUTTON_EVENT_MESSAGE0="When button %1 is %2",lF.MPYTHON2_BUTTON_EVENT_HELPURL="",lF.MPYTHON2_BUTTON_EVENT_TOOLTIP="",lF.MPYTHON2_BUTTON_EVENT_PRESSED="pressed",lF.MPYTHON2_BUTTON_EVENT_RELEASED="released",lF.MPYTHON2_TOUCHPAD_IS_PRESSED_HELPURL="",lF.MPYTHON2_TOUCHPAD_IS_PRESSED_TOOLTIP="",lF.MPYTHON2_TOUCHPAD_IS_PRESSED_MESSAGE0="Touchpad %1 is pressed",lF.MPYTHON2_TOUCHPAD_WAS_PRESSED_HELPURL="",lF.MPYTHON2_TOUCHPAD_WAS_PRESSED_TOOLTIP="",lF.MPYTHON2_TOUCHPAD_WAS_PRESSED_MESSAGE0="Touchpad %1 was pressed",lF.MPYTHON2_TOUCHPAD_GET_PRESSES_HELPURL="",lF.MPYTHON2_TOUCHPAD_GET_PRESSES_TOOLTIP="",lF.MPYTHON2_TOUCHPAD_GET_PRESSES_MESSAGE0="Get number of presses for touchpad %1",lF.MPYTHON2_TOUCHPAD_VALUE_HELPURL="",lF.MPYTHON2_TOUCHPAD_VALUE_TOOLTIP="",lF.MPYTHON2_TOUCHPAD_VALUE_MESSAGE0="Touchpad %1 value",lF.MPYTHON2_TOUCHPAD_EVENT_MESSAGE0="When touchpad %1 is %2",lF.MPYTHON2_TOUCHPAD_EVENT_HELPURL="",lF.MPYTHON2_TOUCHPAD_EVENT_TOOLTIP="",lF.MPYTHON2_TOUCHPAD_EVENT_PRESSED="pressed",lF.MPYTHON2_TOUCHPAD_EVENT_RELEASED="released",lF.MPYTHON2_TOUCHPAD_THRESHOLD_MESSAGE0="Set threshold for touchpad %1 as %2",lF.MPYTHON2_TOUCHPAD_THRESHOLD_HELPURL="",lF.MPYTHON2_TOUCHPAD_THRESHOLD_TOOLTIP="",lF.BLE_UUID_HELPURL="https://mpython-ble.readthedocs.io/zh/master/api/index.html#UUID",lF.BLE_UUID_TOOLTIP="",lF.BLE_SETUP_PERIPHERAL_HELPURL="",lF.BLE_SETUP_PERIPHERAL_TOOLTIP="",lF.BLE_SETUP_PERIPHERAL_MESSAGE0="make BLE Peripheral object with %1 name %2 Service UUID %3",lF.BLE_ADD_CHARACTERISTIC_HELPURL="",lF.BLE_ADD_CHARACTERISTIC_TOOLTIP="",lF.BLE_ADD_CHARACTERISTIC_MESSAGE0="add BLE Characteristic %1 %2 Characteristic UUID %3 Read %4 Write %5 Notity %6",lF.BLE_PERIPHERAL_ADVERTISE_HELPURL="",lF.BLE_PERIPHERAL_ADVERTISE_TOOLTIP="",lF.BLE_PERIPHERAL_ADVERTISE_MESSAGE0="BLE Peripheral %1",lF.BLE_START_BROADCASTING="start broadcasting",lF.BLE_STOP_BROADCASTING="stop broadcasting",lF.BLE_PERIPHERAL_ATTRUBUTE_READ_HELPURL="",lF.BLE_PERIPHERAL_ATTRUBUTE_READ_TOOLTIP="",lF.BLE_PERIPHERAL_ATTRUBUTE_READ_MESSAGE0="read BLE Peripheral Characteristic %1",lF.BLE_PERIPHERAL_ATTRUBUTE_WRITE_HELPURL="",lF.BLE_PERIPHERAL_ATTRUBUTE_WRITE_TOOLTIP="",lF.BLE_PERIPHERAL_ATTRUBUTE_WRITE_MESSAGE0="write BLE Peripheral Characteristic %1 %2 value %3 Notify %4",lF.BLE_PERIPHERAL_DISCONNECT_HELPURL="",lF.BLE_PERIPHERAL_DISCONNECT_TOOLTIP="",lF.BLE_PERIPHERAL_DISCONNECT_MESSAGE0="BLE Peripheral disconnect",lF.BLE_PERIPHERAL_MAC_HELPURL="",lF.BLE_PERIPHERAL_MAC_TOOLTIP="",lF.BLE_PERIPHERAL_MAC_MESSAGE0="BLE Peripheral MAC address",lF.BLE_PERIPHERAL_CONNECTION_CALLBACK_HELPURL="",lF.BLE_PERIPHERAL_CONNECTION_CALLBACK_TOOLTIP="",lF.BLE_PERIPHERAL_CONNECTION_CALLBACK_MESSAGE0="when BLE Peripheral connect to Centeral %1 connect handle %2 address type %3 Centeral MAC %4",lF.BLE_PERIPHERAL_WRITE_CALLBACK_HELPURL="",lF.BLE_PERIPHERAL_WRITE_CALLBACK_TOOLTIP="",lF.BLE_PERIPHERAL_WRITE_CALLBACK_MESSAGE0="when BLE Characteristic is overwritten %1 connect handle %2 attrubute handle %3 written data %4",lF.BLE_SETUP_CENTERAL_HELPURL="",lF.BLE_SETUP_CENTERAL_TOOLTIP="",lF.BLE_SETUP_CENTERAL_MESSAGE0="make BLE Centeral object with name %1",lF.BLE_CENTERAL_CONNECT_HELPURL="",lF.BLE_CENTERAL_CONNECT_TOOLTIP="",lF.BLE_CENTERAL_CONNECT_MESSAGE0="BLE Centeral connect to %1 %2",lF.BLE_CENTERAL_IS_CONNECTED_HELPURL="",lF.BLE_CENTERAL_IS_CONNECTED_TOOLTIP="",lF.BLE_CENTERAL_IS_CONNECTED_MESSAGE0="BLE Centeral is connected ?",lF.BLE_CENTERAL_DEF_CHARACTERISTIC_HELPURL="",lF.BLE_CENTERAL_DEF_CHARACTERISTIC_TOOLTIP="",lF.BLE_CENTERAL_DEF_CHARACTERISTIC_MESSAGE0="set %1 as connected Peripheral Characteristic object %2 Service UUID %3 Characteristic UUID %4",lF.BLE_CENTERAL_CHARACTERISTIC_READ_HELPURL="",lF.BLE_CENTERAL_CHARACTERISTIC_READ_TOOLTIP="",lF.BLE_CENTERAL_CHARACTERISTIC_READ_MESSAGE0="read connected Peripheral Characteristic %1 value",lF.BLE_CENTERAL_CHARACTERISTIC_WRITE_HELPURL="",lF.BLE_CENTERAL_CHARACTERISTIC_WRITE_TOOLTIP="",lF.BLE_CENTERAL_CHARACTERISTIC_WRITE_MESSAGE0="write connected Peripheral Characteristic %1 value as %2",lF.BLE_CENTERAL_NOTIFY_CALLBACK_HELPURL="",lF.BLE_CENTERAL_NOTIFY_CALLBACK_TOOLTIP="",lF.BLE_CENTERAL_NOTIFY_CALLBACK_MESSAGE0="when received Notify data %1 value handle %2 notify data %3",lF.BLE_CENTERAL_CONNECTED_INFO_HELPURL="",lF.BLE_CENTERAL_CONNECTED_INFO_TOOLTIP="",lF.BLE_CENTERAL_CONNECTED_INFO_MESSAGE0="connected Peripheral info %1",lF.BLE_CENTERAL_CLOSE_HELPURL="",lF.BLE_CENTERAL_CLOSE_TOOLTIP="",lF.BLE_CENTERAL_CLOSE_MESSAGE0="BLE Centeral disconnect",lF.BLE_INFO_NAME="name",lF.BLE_INFO_MAC="mac",lF.BLE_INFO_RSSI="rssi",lF.BLE_INFO_ADDRTYPE="addr_type",lF.BLE_INFO_ADVTYPE="adv_type",lF.BLE_INFO_DATA="data(tuple)",lF.BLE_SETUP_UART_HELPURL="",lF.BLE_SETUP_UART_TOOLTIP="",lF.BLE_SETUP_UART_MESSAGE0="make BLE UART slave with name %1",lF.BLE_UART_IS_CONNECTED_HELPURL="",lF.BLE_UART_IS_CONNECTED_TOOLTIP="",lF.BLE_UART_IS_CONNECTED_MESSAGE0="BLE UART is connected ?",lF.BLE_UART_ANY_HELPURL="",lF.BLE_UART_ANY_TOOLTIP="",lF.BLE_UART_ANY_MESSAGE0="BLE UART readable bytes",lF.BLE_UART_IRQ_HELPURL="",lF.BLE_UART_IRQ_TOOLTIP="",lF.BLE_UART_IRQ_MESSAGE0="when BLE UART received data %1 do %2",lF.BLE_UART_READ_HELPURL="",lF.BLE_UART_READ_TOOLTIP="message from UART",lF.BLE_UART_READ_MESSAGE0="received data",lF.BLE_UART_WRITE_HELPURL="",lF.BLE_UART_WRITE_TOOLTIP="",lF.BLE_UART_WRITE_MESSAGE0="BLE UART send %1",lF.BLE_UART_CLOSE_HELPURL="",lF.BLE_UART_CLOSE_TOOLTIP="",lF.BLE_UART_CLOSE_MESSAGE0="BLE UART disconnect",lF.BLE_SETUP_UART_MASTER_HELPURL="",lF.BLE_SETUP_UART_MASTER_TOOLTIP="",lF.BLE_SETUP_UART_MASTER_MESSAGE0="make BLE UART master, connect to %1 %2",lF.BLE_SETUP_HID_HELPURL="",lF.BLE_SETUP_HID_TOOLTIP="",lF.BLE_SETUP_HID_MESSAGE0="make BLE HID %1 object %2 name %3 battery %4",lF.BLE_HID_MOUSE="mouse",lF.BLE_HID_KEYBOARD="keyboard",lF.BLE_HID_CONSUMER="consumer",lF.BLE_HID_ADVERTISE_HELPURL="",lF.BLE_HID_ADVERTISE_TOOLTIP="",lF.BLE_HID_ADVERTISE_MESSAGE0="BLE HID %1",lF.BLE_HID_CONNECT_EVENT_HELPURL="",lF.BLE_HID_CONNECT_EVENT_TOOLTIP="",lF.BLE_HID_CONNECT_EVENT_MESSAGE0="when BLE HID connected",lF.BLE_HID_DISCONNECT_HELPURL="",lF.BLE_HID_DISCONNECT_TOOLTIP="",lF.BLE_HID_DISCONNECT_MESSAGE0="BLE HID disconnect",lF.BLE_HID_BATTERY_LEVEL_HELPURL="",lF.BLE_HID_BATTERY_LEVEL_TOOLTIP="",lF.BLE_HID_BATTERY_LEVEL_MESSAGE0="BLE HID battery level",lF.BLE_HID_MOUSE_BUTTONS_HELPURL="",lF.BLE_HID_MOUSE_BUTTONS_TOOLTIP="",lF.BLE_HID_MOUSE_BUTTONS_MESSAGE0="mouse button %1",lF.BLE_HID_MOUSE_CLICK_HELPURL="",lF.BLE_HID_MOUSE_CLICK_TOOLTIP="",lF.BLE_HID_MOUSE_CLICK_MESSAGE0="BLE HID mouse click %1",lF.BLE_HID_MOUSE_PRESS_HELPURL="",lF.BLE_HID_MOUSE_PRESS_TOOLTIP="",lF.BLE_HID_MOUSE_PRESS_MESSAGE0="BLE HID mouse press %1",lF.BLE_HID_MOUSE_RELEASE_HELPURL="",lF.BLE_HID_MOUSE_RELEASE_TOOLTIP="",lF.BLE_HID_MOUSE_RELEASE_MESSAGE0="BLE HID mouse release %1",lF.BLE_HID_MOUSE_RELEASE_ALL_HELPURL="",lF.BLE_HID_MOUSE_RELEASE_ALL_TOOLTIP="",lF.BLE_HID_MOUSE_RELEASE_ALL_MESSAGE0="BLE HID mouse release all",lF.BLE_HID_MOUSE_MOVE_HELPURL="",lF.BLE_HID_MOUSE_MOVE_TOOLTIP="x, y - cursor movement, range ±127 .\nwheel - wheel movement, range ±127 .",lF.BLE_HID_MOUSE_MOVE_MESSAGE0="BLE HID mouse cursor move %1 x %2 y %3 wheel %4",lF.BLE_HID_KEYBOARD_BUTTONS_HELPURL="",lF.BLE_HID_KEYBOARD_BUTTONS_TOOLTIP="",lF.BLE_HID_KEYBOARD_BUTTONS_MESSAGE0="keyboard button %1",lF.BLE_HID_KEYBOARD_SEND_HELPURL="",lF.BLE_HID_KEYBOARD_SEND_TOOLTIP="",lF.BLE_HID_KEYBOARD_SEND_MESSAGE0="BLE HID keyboard send %1",lF.BLE_HID_KEYBOARD_SEND_MULTI_HELPURL="",lF.BLE_HID_KEYBOARD_SEND_MULTI_TOOLTIP="",lF.BLE_HID_KEYBOARD_SEND_MULTI_MESSAGE0="BLE HID keyboard send multiple %1 %2 %3",lF.BLE_HID_KEYBOARD_PRESS_HELPURL="",lF.BLE_HID_KEYBOARD_PRESS_TOOLTIP="",lF.BLE_HID_KEYBOARD_PRESS_MESSAGE0="BLE HID keyboard press %1",lF.BLE_HID_KEYBOARD_RELEASE_HELPURL="",lF.BLE_HID_KEYBOARD_RELEASE_TOOLTIP="",lF.BLE_HID_KEYBOARD_RELEASE_MESSAGE0="BLE HID keyboard release %1",lF.BLE_HID_KEYBOARD_RELEASE_ALL_HELPURL="",lF.BLE_HID_KEYBOARD_RELEASE_ALL_TOOLTIP="",lF.BLE_HID_KEYBOARD_RELEASE_ALL_MESSAGE0="BLE HID keyboard release all",lF.BLE_HID_CONSUMER_BUTTONS_HELPURL="",lF.BLE_HID_CONSUMER_BUTTONS_TOOLTIP="",lF.BLE_HID_CONSUMER_BUTTONS_MESSAGE0="remote control button %1",lF.BLE_HID_CONSUMER_SEND_HELPURL="",lF.BLE_HID_CONSUMER_SEND_TOOLTIP="",lF.BLE_HID_CONSUMER_SEND_MESSAGE0="BLE HID remote control send %1",lF.BLE_SETUP_IBEACON_HELPURL="",lF.BLE_SETUP_IBEACON_TOOLTIP="",lF.BLE_SETUP_IBEACON_MESSAGE0="make BLE iBeacon object with %1 UUID %2 major %3 minor %4",lF.BLE_IBEACON_ADVERTISE_HELPURL="",lF.BLE_IBEACON_ADVERTISE_TOOLTIP="",lF.BLE_IBEACON_ADVERTISE_MESSAGE0="BLE iBeacon %1",lF.MPYTHON_PARROT_GET_BATTERY_LEVEL_HELPURL="",lF.MPYTHON_PARROT_GET_BATTERY_LEVEL_TOOLTIP="Return power in mV",lF.MPYTHON_PARROT_GET_BATTERY_LEVEL_MESSAGE0="Voltage(mV) of expansion-board",lF.MPYTHON_BLUEBIT_IR_ENCODE_RAW_HELPURL="",lF.MPYTHON_BLUEBIT_IR_ENCODE_RAW_TOOLTIP="Return the encoded infrared pulse data buff",lF.MPYTHON_BLUEBIT_IR_ENCODE_RAW_MESSAGE0="Expansion-board generating RAW coding %1 carry_freq(Hz) %2 len %3 repeat_pos %4 code %5 data %6",lF.MPYTHON_BLUEBIT_IR_ENCODE_NEC_HELPURL="",lF.MPYTHON_BLUEBIT_IR_ENCODE_NEC_TOOLTIP="Return the encoded infrared pulse data buff\nUser code: 0~255\nCommand code: 0~255",lF.MPYTHON_BLUEBIT_IR_ENCODE_NEC_MESSAGE0="Expansion-board generating NEC coding %1 User code %2 Command code %3",lF.MPYTHON_BLUEBIT_IR_SEND_HELPURL="",lF.MPYTHON_BLUEBIT_IR_SEND_TOOLTIP="",lF.MPYTHON_BLUEBIT_IR_SEND_MESSAGE0="Expansion-board sending infrared pulse data %1 %2",lF.MPYTHON_BLUEBIT_IR_SEND_REPEAT_0="send once",lF.MPYTHON_BLUEBIT_IR_SEND_REPEAT_1="keep sending",lF.MPYTHON_BLUEBIT_IR_STOP_SEND_HELPURL="",lF.MPYTHON_BLUEBIT_IR_STOP_SEND_TOOLTIP="",lF.MPYTHON_BLUEBIT_IR_STOP_SEND_MESSAGE0="Expansion-board stop sending infrared pulse data",lF.MPYTHON_BLUEBIT_IR_LEARN_HELPURL="",lF.MPYTHON_BLUEBIT_IR_LEARN_TOOLTIP="The learning result will be returned after 4 seconds.",lF.MPYTHON_BLUEBIT_IR_LEARN_MESSAGE0="Expansion-board do infrared learning",lF.MPYTHON_BLUEBIT_IR_GET_LEARN_STATUS_HELPURL="",lF.MPYTHON_BLUEBIT_IR_GET_LEARN_STATUS_TOOLTIP="",lF.MPYTHON_BLUEBIT_IR_GET_LEARN_STATUS_MESSAGE0="Is there any result for the infrared learning ?",lF.MPYTHON_BLUEBIT_IR_GET_LEARN_DATA_HELPURL="",lF.MPYTHON_BLUEBIT_IR_GET_LEARN_DATA_TOOLTIP='Return the learned "infrared coded data", which must be used after the "learn()" function.',lF.MPYTHON_BLUEBIT_IR_GET_LEARN_DATA_MESSAGE0="Expansion-board learned infrared coding data",lF.MPYTHON_MAIN_HELPURL="",lF.MPYTHON_MAIN_TOOLTIP="This block does not have to be used, it just makes the program structure more regular.",lF.MPYTHON_MAIN_MESSAGE0="Main program",lF.MPYTHON_MLX90615_SET_HELPURL="",lF.MPYTHON_MLX90615_SET_MESSAGE0="MLX90615 set sensor emissivity %1",lF.MPYTHON_MLX90615_SET_TOOLTIP="",lF.MPYTHON_MLX90615_GET_HELPURL="",lF.MPYTHON_MLX90615_GET_MESSAGE0="MLX90615 get sensor emissivity",lF.MPYTHON_MLX90615_GET_TOOLTIP="",lF.MPYTHON_MLX90615_THERMOMETRY_HELPURL="",lF.MPYTHON_MLX90615_THERMOMETRY_MESSAGE0="MLX90615 measured temperature",lF.MPYTHON_MLX90615_THERMOMETRY_TOOLTIP="",lF.MPYTHON_MQ135_INIT_HELPURL="",lF.MPYTHON_MQ135_INIT_MESSAGE0="initialize MQ135 at output pin %1 temperature %2 ℃ humidity%3 %",lF.MPYTHON_MQ135_INIT_TOOLTIP="V(VCC) is connected to the power port of the expansion board, G(GND) is connected to the ground port of the expansion board, and AO is connected to the pin of the expansion board\nMQ135 is used to detect the concentration of carbon dioxide, alcohol, benzene, nitrogen oxides, ammonia and other gases in the air.",lF.MPYTHON_MQ135_OPTIONS_MESSAGE0="MQ135 return %1",lF.MPYTHON_MQ135_OPTIONS_HELPURL="",lF.MPYTHON_MQ135_OPTIONS_TOOLTIP="",lF.MPYTHON_MQ135_GET_RZERO="correction of sensor resistance",lF.MPYTHON_MQ135_GET_CORRECTED_RZERO="calibrate sensor resistance (calibrate temperature and humidity)",lF.MPYTHON_MQ135_GET_PPM="the ppm concentration of carbon dioxide, alcohol, benzene, nitrogen oxides, ammonia and other gases",lF.MPYTHON_MQ135_GET_CORRECTED_PPM="the ppm concentration of carbon dioxide, alcohol, benzene, nitrogen oxides, ammonia and other gases",lF.mpython_gyroscope_get_HELPURL="",lF.mpython_gyroscope_get_MESSAGE0="%1 axis angular velocity",lF.mpython_gyroscope_get_TOOLTIP="Only applicable to the mPython board version above v2.3",lF.MPYTHON_GYROSCOPE_RANGE_16_DPS="±16dps",lF.MPYTHON_GYROSCOPE_RANGE_32_DPS="±32dps",lF.MPYTHON_GYROSCOPE_RANGE_64_DPS="±64dps",lF.MPYTHON_GYROSCOPE_RANGE_128_DPS="±128dps",lF.MPYTHON_GYROSCOPE_RANGE_256_DPS="±256dps",lF.MPYTHON_GYROSCOPE_RANGE_512_DPS="±512dps",lF.MPYTHON_GYROSCOPE_RANGE_1024_DPS="±1024dps",lF.MPYTHON_GYROSCOPE_RANGE_2048_DPS="±2048dps",lF.MPYTHON_GYROSCOPE_SET_RANGE_HELPURL="",lF.MPYTHON_GYROSCOPE_SET_RANGE_TOOLTIP="Default is ±256dps. Only applicable to the mPython board version above v2.3",lF.MPYTHON_GYROSCOPE_SET_RANGE_MESSAGE0="set angular velocity range to %1",lF.MPYTHON_GYROSCOPE_SET_OFFSET_HELPURL="",lF.MPYTHON_GYROSCOPE_SET_OFFSET_TOOLTIP="Only applicable to the mPython board version above v2.3",lF.MPYTHON_GYROSCOPE_SET_OFFSET_MESSAGE0="calibration angular velocity value %1 X axis deviation %2 Y axis deviation %3 Z axis deviation %4";const AF=lF;Object.assign(a_.Variables,L_),Object.assign(a_.Procedures,bi),a_.Python=_O,a_.generator=_O,p_.Profile.default={},Object.assign(p_.Profile,Xg),Object.assign(p_.Profile.default,Xg["ESP32 Generic"]),Object.assign(a_.Lang.ZhHans,RF),Object.assign(a_.Lang.ZhHant,SF),Object.assign(a_.Lang.En,AF),Object.assign(a_.Blocks,t,e,i,T,E,n,o,s,O,I,a,p,M,y,k,V,B,f,w,D,X,v,x,b,Y,H,c,G,g,F,U,O_),Object.assign(a_.Python.forBlock,L,R,r,S,l,A,P,N,d,h,u,m,C,__,o_,n_,J,t_,s_,z,E_,T_,i_,e_,Z,K,W,j,q,$,Q,I_)})(); \ No newline at end of file +class R_{constructor(_,t){if(this.variablePrefix_=t||"",this.reservedDict_=Object.create(null),_)for(var e=_.split(","),i=0;i0;T--)t.getInputTargetBlock("IF"+T)&&t.getInputTargetBlock("IF"+T).previousConnection?e[T]=t.getInputTargetBlock("IF"+T).previousConnection:e[T]=null,this.removeInput("IF"+T),t.getInputTargetBlock("DO"+T)&&t.getInputTargetBlock("DO"+T).previousConnection?i[T]=t.getInputTargetBlock("DO"+T).previousConnection:i[T]=null,this.removeInput("DO"+T);this.elseifCount_=parseInt(_.getAttribute("elseif"),10),this.elseCount_=parseInt(_.getAttribute("else"),10);for(T=1;T<=this.elseifCount_;T++)this.appendValueInput("IF"+T).setCheck([Boolean,Number]).appendField(a_.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+T).appendField(a_.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(a_.Msg.CONTROLS_IF_MSG_ELSE);for(T=e.length-2;T>0;T--)e[T]&&e[T].reconnect(this,"IF"+T);for(T=i.length-2;T>0;T--)i[T]&&i[T].reconnect(this,"DO"+T)},decompose:function(_){var t=_.newBlock("controls_if_if");t.initSvg();for(var e=t.getInput("STACK").connection,i=1;i<=this.elseifCount_;i++){var T=_.newBlock("controls_if_elseif");T.initSvg(),e.connect(T.previousConnection),e=T.nextConnection}if(this.elseCount_){var E=_.newBlock("controls_if_else");E.initSvg(),e.connect(E.previousConnection)}return t},compose:function(_){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var t=this.elseifCount_;t>0;t--)this.removeInput("IF"+t),this.removeInput("DO"+t);this.elseifCount_=0;for(var e=_.getInputTargetBlock("STACK"),i=[null],T=[null],E=null;e;){switch(e.type){case"controls_if_elseif":this.elseifCount_++,i.push(e.valueConnection_),T.push(e.statementConnection_);break;case"controls_if_else":this.elseCount_++,E=e.statementConnection_;break;default:throw Error("Unknown block type: "+e.type)}e=e.nextConnection&&e.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(i,T,E)},saveConnections:function(_){for(var t=_.getInputTargetBlock("STACK"),e=1;t;){switch(t.type){case"controls_if_elseif":var i=this.getInput("IF"+e),T=this.getInput("DO"+e);t.valueConnection_=i&&i.connection.targetConnection,t.statementConnection_=T&&T.connection.targetConnection,e++;break;case"controls_if_else":T=this.getInput("ELSE");t.statementConnection_=T&&T.connection.targetConnection;break;default:throw"Unknown block type."}t=t.nextConnection&&t.nextConnection.targetBlock()}},rebuildShape_:function(){var _=[null],t=[null],e=null;this.getInput("ELSE")&&(e=this.getInput("ELSE").connection.targetConnection);for(var i=1;this.getInput("IF"+i);){var T=this.getInput("IF"+i),E=this.getInput("DO"+i);console.log(T.connection.targetConnection),_.push(T.connection.targetConnection),t.push(E.connection.targetConnection),i++}this.updateShape_(),this.reconnectChildBlocks_(_,t,e)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var _=1;this.getInput("IF"+_);)this.removeInput("IF"+_),this.removeInput("DO"+_),_++;for(_=1;_<=this.elseifCount_;_++)this.appendValueInput("IF"+_).setCheck([Number,Boolean]).appendField(a_.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+_).appendField(a_.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(a_.Msg.CONTROLS_IF_MSG_ELSE)},reconnectChildBlocks_:function(_,t,e){for(var i=1;i<=this.elseifCount_;i++)_[i]&&_[i].reconnect(this,"IF"+i),t[i]&&t[i].reconnect(this,"DO"+i);e&&e.reconnect(this,"ELSE")}},Y_={init:function(){this.setColour(u_),this.appendValueInput("FROM").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.PYTHON_RANGE).appendField(a_.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.PYTHON_RANGE_STEP),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(a_.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},U_={init:function(){this.setColour(u_),this.appendValueInput("LIST").setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.CONTROLS_FOREACH_INPUT),this.appendValueInput("VAR").appendField(a_.Msg.CONTROLS_FOREACH_INPUT_ITEM),this.appendStatementInput("DO").appendField(a_.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip((function(){return a_.Msg.CONTROLS_FOR_TOOLTIP.replace("“%1”","")}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(_,t){a_.Names.equals(_,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},B_={init:function(){this.setColour(u_),this.appendValueInput("BOOL").setCheck([Boolean,Number]).appendField(a_.Msg.MIXLY_MICROBIT_JS_CURRENT).appendField(new a_.FieldDropdown(this.OPERATORS),"MODE"),this.appendStatementInput("DO").appendField(a_.Msg.LANG_CONTROLS_WHILEUNTIL_TITLE_REPEAT+a_.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var _=this;this.setTooltip((function(){var t=_.getFieldValue("MODE");return{WHILE:a_.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_WHILE,UNTIL:a_.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL}[t]}))}},g_={init:function(){this.setColour(u_),this.appendDummyInput().appendField(a_.Msg.MIXLY_PYTHON_TRY),this.appendStatementInput("try"),this.appendValueInput("IF1").appendField(a_.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO1").appendField(""),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new a_.icons.MutatorIcon(["controls_except","controls_finally"],this)),this.setTooltip(a_.Msg.MIXLY_MIXPY_CONTROL_TRY_TOOLTIP),this.elseifCount_=1,this.elseCount_=0},mutationToDom:function(){if(!this.elseifCount_&&!this.elseCount_)return null;var _=document.createElement("mutation");return this.elseifCount_&&_.setAttribute("elseif",this.elseifCount_),this.elseCount_&&_.setAttribute("else",1),_},domToMutation:function(_){var t=this,e=[],i=[];this.elseCount_&&this.removeInput("ELSE");for(var T=this.elseifCount_;T>0;T--)t.getInputTargetBlock("IF"+T)&&t.getInputTargetBlock("IF"+T).previousConnection?e[T]=t.getInputTargetBlock("IF"+T).previousConnection:e[T]=null,this.removeInput("IF"+T),t.getInputTargetBlock("DO"+T)&&t.getInputTargetBlock("DO"+T).previousConnection?i[T]=t.getInputTargetBlock("DO"+T).previousConnection:i[T]=null,this.removeInput("DO"+T);this.elseifCount_=parseInt(_.getAttribute("elseif"),10),this.elseCount_=parseInt(_.getAttribute("else"),10);for(T=1;T<=this.elseifCount_;T++)this.appendValueInput("IF"+T).setCheck([Boolean,Number]).appendField(a_.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+T).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(a_.Msg.MIXLY_PYTHON_FINALLY);for(T=e.length-2;T>0;T--)e[T]&&e[T].reconnect(this,"IF"+T);for(T=i.length-2;T>0;T--)i[T]&&i[T].reconnect(this,"DO"+T)},decompose:function(_){var t=_.newBlock("controls_try");t.initSvg();for(var e=t.getInput("STACK").connection,i=1;i<=this.elseifCount_;i++){var T=_.newBlock("controls_except");T.initSvg(),e.connect(T.previousConnection),e=T.nextConnection}if(this.elseCount_){var E=_.newBlock("controls_finally");E.initSvg(),e.connect(E.previousConnection)}return t},compose:function(_){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var t=this.elseifCount_;t>0;t--)this.removeInput("IF"+t),this.removeInput("DO"+t);this.elseifCount_=0;for(var e=_.getInputTargetBlock("STACK"),i=[null],T=[null],E=null;e;){switch(e.type){case"controls_except":this.elseifCount_++,i.push(e.valueConnection_),T.push(e.statementConnection_);break;case"controls_finally":this.elseCount_++,E=e.statementConnection_;break;default:throw Error("Unknown block type: "+e.type)}e=e.nextConnection&&e.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(i,T,E)},saveConnections:function(_){for(var t=_.getInputTargetBlock("STACK"),e=1;t;){switch(t.type){case"controls_except":var i=this.getInput("IF"+e),T=this.getInput("DO"+e);t.valueConnection_=i&&i.connection.targetConnection,t.statementConnection_=T&&T.connection.targetConnection,e++;break;case"controls_finally":T=this.getInput("ELSE");t.statementConnection_=T&&T.connection.targetConnection;break;default:throw"Unknown block type."}t=t.nextConnection&&t.nextConnection.targetBlock()}},rebuildShape_:function(){var _=[null],t=[null],e=null;this.getInput("ELSE")&&(e=this.getInput("ELSE").connection.targetConnection);for(var i=1;this.getInput("IF"+i);){var T=this.getInput("IF"+i),E=this.getInput("DO"+i);console.log(T.connection.targetConnection),_.push(T.connection.targetConnection),t.push(E.connection.targetConnection),i++}this.updateShape_(),this.reconnectChildBlocks_(_,t,e)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var _=1;this.getInput("IF"+_);)this.removeInput("IF"+_),this.removeInput("DO"+_),_++;for(_=1;_<=this.elseifCount_;_++)this.appendValueInput("IF"+_).setCheck([Number,Boolean]).appendField(a_.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+_).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(a_.Msg.MIXLY_PYTHON_FINALLY)},reconnectChildBlocks_:function(_,t,e){for(var i=1;i<=this.elseifCount_;i++)_[i]&&_[i].reconnect(this,"IF"+i),t[i]&&t[i].reconnect(this,"DO"+i);e&&e.reconnect(this,"ELSE")}},G_={init:function(){this.setColour(u_);var _=new a_.FieldDropdown(this.OPERATORS);this.appendDummyInput().appendField(_,"FLOW").appendField(a_.Msg.LANG_CONTROLS_FLOW_STATEMENTS_INPUT_OFLOOP),this.setPreviousStatement(!0),this.setTooltip(a_.Msg.MIXLY_PYTHON_CONTROLS_FLOW_STATEMENTS_TOOLTIP);var t=this;this.setTooltip((function(){var _=t.getFieldValue("FLOW");return{BREAK:a_.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK,CONTINUE:a_.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE}[_]}))},onchange:function(){if(this.workspace){var _=!1,t=this;do{if("controls_repeat"==t.type||"controls_for"==t.type||"controls_forEach"==t.type||"controls_repeat_ext"==t.type||"controls_whileUntil"==t.type||"do_while"==t.type){_=!0;break}t=t.getSurroundParent()}while(t);_?this.setWarningText(null):this.setWarningText(a_.Msg.LANG_CONTROLS_FLOW_STATEMENTS_WARNING)}}},F_={init:function(){this.setColour(u_),this.appendDummyInput().appendField(a_.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new a_.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(a_.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var _=this;this.setTooltip((function(){return a_.Msg.CONTROLS_FOR_TOOLTIP.replace("%1",_.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(_,t){a_.Names.equals(_,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},y_={init:function(){this.setColour(u_),this.appendDummyInput().appendField(a_.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new a_.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(a_.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var _=this;this.setTooltip((function(){return a_.Msg.MIXLY_PYTHON_CONTROLS_FOR_RANGE_TOOLTIP.replace("%1",_.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(_,t){a_.Names.equals(_,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}};B_.OPERATORS=[[a_.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"WHILE"],[a_.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"UNTIL"]],G_.OPERATORS=[[a_.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK,"BREAK"],[a_.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE,"CONTINUE"]];const f_={init:function(){this.setColour(u_),this.appendDummyInput().appendField(a_.Msg.CONTROLS_IF_IF_TITLE_IF),this.appendStatementInput("STACK"),this.setTooltip(a_.Msg.CONTROLS_IF_IF_TOOLTIP),this.contextMenu=!1}},b_={init:function(){this.setColour(u_),this.appendDummyInput().appendField(a_.Msg.CONTROLS_IF_ELSEIF_TITLE_ELSEIF),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(a_.Msg.CONTROLS_IF_ELSEIF_TOOLTIP),this.contextMenu=!1}},x_={init:function(){this.setColour(u_),this.appendDummyInput().appendField(a_.Msg.CONTROLS_IF_ELSE_TITLE_ELSE),this.setPreviousStatement(!0),this.setTooltip(a_.Msg.CONTROLS_IF_ELSE_TOOLTIP),this.contextMenu=!1}},v_={init:function(){this.setColour(u_),this.appendDummyInput().appendField("try"),this.appendStatementInput("STACK"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.contextMenu=!1}},X_={init:function(){this.setColour(u_),this.appendDummyInput().appendField(a_.Msg.MIXLY_PYTHON_EXCEPT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.contextMenu=!1,this.setTooltip(a_.Msg.MIXLY_MIXPY_CONTROL_EXCEPT_TOOLTIP)}},V_={init:function(){this.setColour(u_),this.appendDummyInput().appendField(a_.Msg.MIXLY_PYTHON_FINALLY),this.setPreviousStatement(!0),this.contextMenu=!1,this.setTooltip(a_.Msg.MIXLY_MIXPY_CONTROL_FINALLY_TOOLTIP)}},k_={init:function(){this.jsonInit({message0:a_.Msg.CONTROLS_REPEAT_TITLE,args0:[{type:"input_value",name:"TIMES"}],previousStatement:null,nextStatement:null,colour:u_,tooltip:a_.Msg.CONTROLS_REPEAT_TOOLTIP,helpUrl:a_.Msg.CONTROLS_REPEAT_HELPURL}),this.appendStatementInput("DO")}},w_={init:function(){this.setColour(u_),this.appendValueInput("BOOL").appendField("lambda"),this.appendStatementInput("DO").appendField(a_.Msg.MIXLY_STAT),this.setOutput(!0)}},W_={init:function(){this.setColour(u_),this.appendDummyInput().appendField(a_.Msg.MIXLY_PYTHON_PASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(a_.Msg.MIXLY_PYTHON_CONTROLS_PASS_TOOLTIP)}},K_={init:function(){this.setColour(u_),this.appendDummyInput().appendField(a_.Msg.MIXLY_PYTHON_CONTROLS_THREAD_START),this.appendValueInput("callback").appendField(a_.Msg.MIXLY_PYTHON_CONTROLS_THREAD_USE),this.appendValueInput("VAR").appendField(a_.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_PYTHON_CONTROLS_THREAD_TOOLTIP)}},z_={init:function(){this.appendDummyInput().appendField(a_.Msg.CONTROLS_REPEAT_TITLE_REPEAT+a_.Msg.MIXLY_DO),this.appendStatementInput("input_data").setCheck(null),this.appendValueInput("select_data").setCheck(null).appendField(a_.Msg.CONTROLS_OPERATOR_UNTIL).appendField(new a_.FieldDropdown([[a_.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"true"],[a_.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"false"]]),"type"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(u_),this.setTooltip("do-while loop"),this.setHelpUrl("")}},Z_={init:function(){this.setColour(u_),this.appendDummyInput().appendField(a_.Msg.MIXLY_OP_GARBAGE_COLLECT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Q_={init:function(){this.setColour(u_),this.appendDummyInput().appendField(a_.Msg.MIXLY_GET_MEM_ALLOC),this.setOutput(!0)}},J_={init:function(){this.setColour(u_),this.appendDummyInput().appendField(a_.Msg.MIXLY_GET_MEM_FREE),this.setOutput(!0)}},q_=230;a_.FieldTextInput.math_number_validator=function(_){return String(_)},a_.FieldTextInput.math_number_validator_include_blank=function(_){if(""===_)return"";return/^-?(0X|0x|0O|0o|0B|0b)?[a-fA-F0-9]{1,}(\.[a-fA-F0-9]+)?$/.test(_)?String(_):null};const j_={init:function(){this.setColour(q_),this.appendDummyInput().appendField(new a_.FieldTextInput("0",a_.FieldTextInput.math_number_validator),"NUM"),this.setOutput(!0,Number),this.setTooltip(a_.Msg.MATH_NUMBER_TOOLTIP)}},$_={init:function(){this.setColour(q_);this.appendDummyInput("").appendField(a_.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new a_.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var _=this;this.setTooltip((function(){var t=_.getFieldValue("CONSTANT");return{pi:a_.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_TOOLTIP,e:a_.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_TOOLTIP}[t]}))}},_t={init:function(){this.setColour(q_);this.appendDummyInput("").appendField(a_.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new a_.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var _=this;this.setTooltip((function(){var t=_.getFieldValue("CONSTANT");return{pi:a_.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_MP_TOOLTIP,e:a_.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_MP_TOOLTIP}[t]}))}},tt={init:function(){this.setColour(q_),this.setOutput(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new a_.FieldDropdown([["+","ADD"],["-","MINUS"],["×","MULTIPLY"],["÷","DIVIDE"],["%","QUYU"],["//","ZHENGCHU"],["**","POWER"]]),"OP"),this.setInputsInline(!0);var _=this;this.setTooltip((function(){var t=_.getFieldValue("OP");return{ADD:a_.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:a_.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:a_.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:a_.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:a_.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:a_.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:a_.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[t]}))}},et={init:function(){this.setColour(q_),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new a_.FieldDropdown([["+=","ADD"],["-=","MINUS"],["×=","MULTIPLY"],["÷=","DIVIDE"],["%=","QUYU"],["//=","ZHENGCHU"],["**=","POWER"]]),"OP"),this.setInputsInline(!0);var _=this;this.setTooltip((function(){var t=_.getFieldValue("OP");return{ADD:a_.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:a_.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:a_.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:a_.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:a_.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:a_.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:a_.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[t]}))}},it={init:function(){this.setColour(q_),this.setOutput(!0,Number),this.appendValueInput("A").setCheck(Number),this.appendValueInput("B").setCheck(Number).appendField(new a_.FieldDropdown([["&","&"],["|","|"],[">>",">>"],["<<","<<"]]),"OP"),this.setInputsInline(!0),this.setTooltip("位运算")}},Tt={init:function(){this.setColour(q_),this.setOutput(!0,Number),this.appendValueInput("NUM").setCheck(Number).appendField(new a_.FieldDropdown([["sin","SIN"],["cos","COS"],["tan","TAN"],["asin","ASIN"],["acos","ACOS"],["atan","ATAN"],["-","-"],["ln","LN"],["log10","LOG10"],["e^","EXP"],["10^","POW10"]]),"OP");var _=this;this.setTooltip((function(){var t=_.getFieldValue("OP");return{SIN:a_.Msg.MATH_TRIG_TOOLTIP_SIN,COS:a_.Msg.MATH_TRIG_TOOLTIP_COS,TAN:a_.Msg.MATH_TRIG_TOOLTIP_TAN,ASIN:a_.Msg.MATH_TRIG_TOOLTIP_ASIN,ACOS:a_.Msg.MATH_TRIG_TOOLTIP_ACOS,ATAN:a_.Msg.MATH_TRIG_TOOLTIP_ATAN,LN:a_.Msg.MATH_SINGLE_TOOLTIP_LN}[t]}))}},Et={init:function(){var _=[[a_.Msg.MATH_BIN,"bin"],[a_.Msg.MATH_OCT,"oct"],[a_.Msg.MATH_HEX,"hex"]];this.setColour(q_),this.setOutput(!0,String),this.appendValueInput("NUM").setCheck(Number).appendField(new a_.FieldDropdown(_),"OP");var t=this;this.setTooltip((function(){var _=t.getFieldValue("OP");return{bin:a_.Msg.MATH_DEC_TOOLTIP_BIN,oct:a_.Msg.MATH_DEC_TOOLTIP_OCT,hex:a_.Msg.MATH_DEC_TOOLTIP_HEX}[_]}))}},nt={init:function(){var _=[[a_.Msg.LANG_MATH_TO_ROUND,"round"],[a_.Msg.LANG_MATH_TO_CEIL,"ceil"],[a_.Msg.LANG_MATH_TO_FLOOR,"floor"],[a_.Msg.MATH_ABS,"fabs"],[a_.Msg.MATH_SQRT,"sqrt"]];this.setColour(q_),this.appendValueInput("A").setCheck(Number).appendField(new a_.FieldDropdown(_),"OP"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var _=t.getFieldValue("OP");return{sqrt:a_.Msg.MATH_SINGLE_TOOLTIP_ROOT,fabs:a_.Msg.MATH_SINGLE_TOOLTIP_ABS,sq:a_.Msg.MATH_SINGLE_TOOLTIP_SQ,round:a_.Msg.MATH_SINGLE_TOOLTIP_ROUND,ceil:a_.Msg.MATH_SINGLE_TOOLTIP_CEIL,floor:a_.Msg.MATH_SINGLE_TOOLTIP_FLOOR}[_]}))}},ot={init:function(){var _=[[a_.Msg.MIXLY_MAX,"max"],[a_.Msg.MIXLY_MIN,"min"]];this.setColour(q_),this.appendValueInput("A").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(new a_.FieldDropdown(_),"OP").appendField("("),this.appendValueInput("B").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(","),this.appendDummyInput("").setAlign(a_.inputs.Align.RIGHT).appendField(")"),this.setInputsInline(!0),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var _=t.getFieldValue("OP");return{max:a_.Msg.MIXLY_TOOLTIP_MATH_MAX,min:a_.Msg.MIXLY_TOOLTIP_MATH_MIN}[_]}))}},st={init:function(){var _=[[a_.Msg.MATH_TWO,"two"],[a_.Msg.MATH_EIGHT,"eight"],[a_.Msg.MATH_TEN,"ten"],[a_.Msg.MATH_SIXTEEN,"sixteen"]];this.setColour(q_),this.appendDummyInput("").appendField(a_.Msg.MATH_BA),this.appendValueInput("NUM").appendField(new a_.FieldDropdown(_),"OP").appendField(a_.Msg.MATH_JinZhi).setCheck(Number),this.appendDummyInput("").appendField(a_.Msg.MATH_ZHW).appendField(new a_.FieldDropdown(_),"OP2").appendField(a_.Msg.MATH_JinZhi),this.setFieldValue("ten","OP2"),this.setOutput(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var _=t.getFieldValue("OP"),e={two:a_.Msg.MATH_Before_two,eight:a_.Msg.MATH_Before_eight,ten:a_.Msg.MATH_Before_ten,sixteen:a_.Msg.MATH_Before_sixteen},i=t.getFieldValue("OP2"),T={two:a_.Msg.MATH_Behind_two,eight:a_.Msg.MATH_Behind_eight,ten:a_.Msg.MATH_Behind_ten,sixteen:a_.Msg.MATH_Behind_sixteen};return e[_]+T[i]}))}},Ot={init:function(){var _=[[a_.Msg.LANG_MATH_INT,"int"],[a_.Msg.LANG_MATH_FLOAT,"float"]];this.setColour(q_),this.setOutput(!0,Number),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_RANDOM).appendField(new a_.FieldDropdown(_),"TYPE"),this.appendValueInput("FROM").setCheck(Number).appendField(a_.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.LANG_MATH_RANDOM_INT_INPUT_TO),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var _=t.getFieldValue("TYPE"),e={int:a_.Msg.LANG_MATH_INT,float:a_.Msg.LANG_MATH_FLOAT_RANDOM};return a_.Msg.MATH_RANDOM_INT_TOOLTIP+e[_]}))}},It={init:function(){this.setColour(q_),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number).appendField(a_.Msg.LANG_MATH_CONSTRAIN_INPUT_CONSTRAIN),this.appendValueInput("LOW").setCheck(Number).appendField(a_.Msg.LANG_MATH_CONSTRAIN_INPUT_LOW),this.appendValueInput("HIGH").setCheck(Number).appendField(a_.Msg.LANG_MATH_CONSTRAIN_INPUT_HIGH),this.setInputsInline(!0),this.setTooltip(a_.Msg.MATH_CONSTRAIN_TOOLTIP)}},at={init:function(){this.setColour(q_),this.appendValueInput("NUM",Number).appendField(a_.Msg.MIXLY_MAP).setCheck(Number),this.appendValueInput("fromLow",Number).appendField(a_.Msg.MIXLY_MAP_FROM).setCheck(Number),this.appendValueInput("fromHigh",Number).appendField(",").setCheck(Number),this.appendValueInput("toLow",Number).appendField(a_.Msg.MIXLY_MAP_TO).setCheck(Number),this.appendValueInput("toHigh",Number).appendField(",").setCheck(Number),this.appendDummyInput("").appendField("]"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(a_.Msg.MIXLY_TOOLTIP_MATH_MAP)}},pt={init:function(){this.setColour(q_),this.appendDummyInput().appendField(new a_.FieldTextInput("0",a_.FieldTextInput.math_number_validator_include_blank),"NUM"),this.setOutput(!0),this.setTooltip(a_.Msg.MATH_NUMBER_TOOLTIP)}},Mt={init:function(){this.setColour(q_),this.appendValueInput("NUM").setCheck(Number).appendField(a_.Msg.LANG_MATH_RANDOM_SEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(a_.Msg.MIXLY_TOOLTIP_MATH_RANDOM_SEED)}},Lt={init:function(){this.setColour(q_),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number),this.appendValueInput("VAR").setCheck(Number).appendField(a_.Msg.MATH_ROUND).appendField(a_.Msg.TEXT_KEEP),this.appendDummyInput().appendField(a_.Msg.TEXT_DECIMAL),this.setInputsInline(!0),this.setTooltip(a_.Msg.MATH_ROUND_NEW_TOOLTIP)}},Rt={init:function(){var _=[[a_.Msg.MIXLY_TO_INT,"int"],[a_.Msg.MIXLY_TO_FLOAT,"float"],[a_.Msg.MIXLY_TO_BITES,"b"]];this.setColour(q_),this.appendValueInput("VAR").appendField(new a_.FieldDropdown(_),"TOWHAT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var _=t.getFieldValue("TOWHAT");return{int:a_.Msg.MIXLY_PYTHON_TOOLTIP_TOINT,float:a_.Msg.MIXLY_PYTHON_TOOLTIP_TOFLOAT,b:a_.Msg.MIXLY_TOOLTIP_TEXT_TOBYTE}[_]}))}},rt={init:function(){var _=[[a_.Msg.MIXLY_TO_INT,"int"],[a_.Msg.MIXLY_TO_FLOAT,"float"]];this.setColour(q_),this.appendValueInput("VAR").appendField(new a_.FieldDropdown(_),"TOWHAT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var _=t.getFieldValue("TOWHAT");return{int:a_.Msg.MIXLY_TOOLTIP_TEXT_TOINT,float:a_.Msg.MIXLY_TOOLTIP_TEXT_TOFLOAT}[_]}))}},St=at,lt=160,At={init:function(){this.setColour(lt),this.appendDummyInput().appendField(this.newQuote_(!0)).appendField(new a_.FieldTextInput(""),"TEXT").appendField(this.newQuote_(!1)),this.setOutput(!0,String),this.setTooltip(a_.Msg.TEXT_TEXT_TOOLTIP)},newQuote_:function(_){if(_==this.RTL)var t="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAKCAQAAAAqJXdxAAAAqUlEQVQI1z3KvUpCcRiA8ef9E4JNHhI0aFEacm1o0BsI0Slx8wa8gLauoDnoBhq7DcfWhggONDmJJgqCPA7neJ7p934EOOKOnM8Q7PDElo/4x4lFb2DmuUjcUzS3URnGib9qaPNbuXvBO3sGPHJDRG6fGVdMSeWDP2q99FQdFrz26Gu5Tq7dFMzUvbXy8KXeAj57cOklgA+u1B5AoslLtGIHQMaCVnwDnADZIFIrXsoXrgAAAABJRU5ErkJggg==";else t="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAKCAQAAAAqJXdxAAAAn0lEQVQI1z3OMa5BURSF4f/cQhAKjUQhuQmFNwGJEUi0RKN5rU7FHKhpjEH3TEMtkdBSCY1EIv8r7nFX9e29V7EBAOvu7RPjwmWGH/VuF8CyN9/OAdvqIXYLvtRaNjx9mMTDyo+NjAN1HNcl9ZQ5oQMM3dgDUqDo1l8DzvwmtZN7mnD+PkmLa+4mhrxVA9fRowBWmVBhFy5gYEjKMfz9AylsaRRgGzvZAAAAAElFTkSuQmCC";return new a_.FieldImage(t,12,12,'"')}},Pt={init:function(){this.setColour(lt),this.appendDummyInput().appendField(this.newQuote_(!0)).appendField(new a_.FieldMultilineInput("Hello\nMixly"),"VALUE").appendField(this.newQuote_(!1)),this.setOutput(!0,String),this.setTooltip(a_.Msg.TEXT_LINES_TOOLTIP)},newQuote_:function(_){if(_==this.RTL)var t="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAKCAQAAAAqJXdxAAAAqUlEQVQI1z3KvUpCcRiA8ef9E4JNHhI0aFEacm1o0BsI0Slx8wa8gLauoDnoBhq7DcfWhggONDmJJgqCPA7neJ7p934EOOKOnM8Q7PDElo/4x4lFb2DmuUjcUzS3URnGib9qaPNbuXvBO3sGPHJDRG6fGVdMSeWDP2q99FQdFrz26Gu5Tq7dFMzUvbXy8KXeAj57cOklgA+u1B5AoslLtGIHQMaCVnwDnADZIFIrXsoXrgAAAABJRU5ErkJggg==";else t="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAKCAQAAAAqJXdxAAAAn0lEQVQI1z3OMa5BURSF4f/cQhAKjUQhuQmFNwGJEUi0RKN5rU7FHKhpjEH3TEMtkdBSCY1EIv8r7nFX9e29V7EBAOvu7RPjwmWGH/VuF8CyN9/OAdvqIXYLvtRaNjx9mMTDyo+NjAN1HNcl9ZQ5oQMM3dgDUqDo1l8DzvwmtZN7mnD+PkmLa+4mhrxVA9fRowBWmVBhFy5gYEjKMfz9AylsaRRgGzvZAAAAAElFTkSuQmCC";return new a_.FieldImage(t,12,12,'"')}};a_.FieldTextInput.char_validator=function(_){if(_.length>1&&"\\"===_.charAt(0)){var t=_.charAt(1);if("0"===t||"b"===t||"f"===t||"n"===t||"r"===t||"t"===t||"\\"===t||"'"===t)return String(_).substring(0,2);if("x"===t&&"0"===_.charAt(2)&&"B"===_.charAt(3))return String(_).substring(0,4)}return String(_).substring(0,1)};const Nt={init:function(){this.setColour(lt),this.appendDummyInput().appendField(this.newQuote_(!0)).appendField(new a_.FieldTextInput("",a_.FieldTextInput.char_validator),"TEXT").appendField(this.newQuote_(!1)),this.setOutput(!0,Number),this.setTooltip(a_.Msg.TEXT_CHAR_TOOLTIP)},newQuote_:function(_){if(1==_)var t="../../media/quote2.png";else t="../../media/quote3.png";return new a_.FieldImage(t,7,12,'"')}},dt={init:function(){this.setColour(lt),this.appendValueInput("A").setCheck([String,Number]),this.appendValueInput("B").setCheck([String,Number]).appendField(a_.Msg.MIXLY_TEXT_JOIN),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(a_.Msg.MIXLY_TOOLTIP_TEXT_JOIN)}},ht={init:function(){this.setColour(lt),this.appendValueInput("VAR").setCheck(Number).appendField(a_.Msg.MIXLY_TOCHAR),this.setOutput(!0,String),this.setTooltip(a_.Msg.MIXLY_TOOLTIP_TEXT_TOCHAR)}},ut={init:function(){this.setColour(lt),this.appendValueInput("VAR").setCheck(String).appendField(a_.Msg.MIXLY_TOASCII),this.setOutput(!0,Number),this.setTooltip(a_.Msg.MIXLY_TOOLTIP_TEXT_TOASCII)}},mt={init:function(){this.setColour(lt),this.appendValueInput("VAR").appendField(a_.Msg.MIXLY_TOSTRING),this.setOutput(!0,String),this.setTooltip(a_.Msg.MIXLY_PYTHON_TOOLTIP_TOTEXT)}},Ct={init:function(){this.setColour(lt),this.appendValueInput("VAR").appendField(a_.Msg.MIXLY_LENGTH),this.setOutput(!0,Number),this.setTooltip(a_.Msg.MIXLY_TOOLTIP_TEXT_LENGTH)}},ct={init:function(){this.WHERE_OPTIONS=[[a_.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[a_.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[a_.Msg.TEXT_GET_INDEX_RANDOM+1+a_.Msg.TEXT_CHARAT2,"RANDOM"]],this.setHelpUrl(a_.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(lt),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number),this.appendDummyInput().appendField(a_.Msg.LISTS_GET_INDEX_GET,"MODE"),a_.Msg.LISTS_GET_INDEX_TAIL&&this.appendDummyInput("TAIL").appendField(a_.Msg.LISTS_GET_INDEX_TAIL),this.setInputsInline(!0),this.setOutput(!0),this.updateAt_(!0);var _=this;this.setTooltip((function(){var t=_.getFieldValue("MODE"),e=_.getFieldValue("WHERE"),i="";switch(t+" "+e){case"GET FROM_START":case"GET FROM_END":i=a_.Msg.LISTS_GET_INDEX_TOOLTIP_GET_FROM;break;case"GET RANDOM":i=a_.Msg.LISTS_GET_INDEX_TOOLTIP_GET_RANDOM;break;case"GET_REMOVE FROM_START":case"GET_REMOVE FROM_END":i=a_.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM;break;case"GET_REMOVE RANDOM":i=a_.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM}return"FROM_START"!=e&&"FROM_END"!=e||(i+=" "+a_.Msg.LISTS_INDEX_FROM_START_TOOLTIP.replace("%1",a_.Msg.ONE_BASED_INDEXING?"#1":"#0")),i}));var t=this;this.setTooltip((function(){var _=t.getFieldValue("WHERE"),e={FROM_START:a_.Msg.LISTS_GET_INDEX_FROM_START,FROM_END:a_.Msg.LISTS_GET_INDEX_FROM_END,RANDOM:a_.Msg.TEXT_GET_INDEX_RANDOM};return a_.Msg.PROCEDURES_DEFRETURN_RETURN+a_.Msg.MIXLY_MICROBIT_TYPE_STRING+e[_]+"n"+a_.Msg.TEXT_CHARAT2}))},mutationToDom:function(){var _=document.createElement("mutation");_.setAttribute("statement",!this.outputConnection);var t=this.getInput("AT").type==a_.INPUT_VALUE;return _.setAttribute("at",t),_},domToMutation:function(_){var t="true"==_.getAttribute("statement");this.updateStatement_(t),_="false"!=_.getAttribute("at"),this.updateAt_(_)},updateStatement_:function(_){_!=!this.outputConnection&&(this.unplug(!0,!0),_?(this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)):(this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)))},updateAt_:function(_){this.removeInput("AT"),this.removeInput("ORDINAL",!0),_?(this.appendValueInput("AT").setCheck(Number),a_.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL").appendField(a_.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT");var t=new a_.FieldDropdown(this.WHERE_OPTIONS,(function(t){var e="FROM_START"==t||"FROM_END"==t;if(e!=_){var i=this.sourceBlock_;return i.updateAt_(e),i.setFieldValue(t,"WHERE"),null}}));this.getInput("AT").appendField(t,"WHERE"),a_.Msg.LISTS_GET_INDEX_TAIL&&this.moveInputBefore("TAIL",null)}},Ht={init:function(){this.setHelpUrl(a_.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(lt),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number).appendField(a_.Msg.LISTS_GET_INDEX_GET+" "+a_.Msg.LISTS_GET_INDEX_FROM_START),this.appendDummyInput().appendField(a_.Msg.TEXT_CHARAT2),this.setOutput(!0),this.setTooltip(a_.Msg.PROCEDURES_DEFRETURN_RETURN+a_.Msg.MIXLY_MICROBIT_TYPE_STRING+a_.Msg.LISTS_GET_INDEX_FROM_START+"n"+a_.Msg.TEXT_CHARAT2)}},Dt={init:function(){this.setHelpUrl(a_.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(lt),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput().appendField(a_.Msg.TEXT_RANDOM_CHAR),this.setOutput(!0),this.setTooltip(a_.Msg.TEXT_RANDOM_CHAR_TOOLTIP)}},Yt={init:function(){this.WHERE_OPTIONS_1=[[a_.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[a_.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[a_.Msg.LISTS_GET_SUBLIST_START_FIRST,"FIRST"]],this.WHERE_OPTIONS_2=[[a_.Msg.LISTS_GET_SUBLIST_END_FROM_START,"FROM_START"],[a_.Msg.LISTS_GET_SUBLIST_END_FROM_END,"FROM_END"],[a_.Msg.LISTS_GET_SUBLIST_END_LAST,"LAST"]],this.setHelpUrl(a_.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(lt),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput("").appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput("AT1"),this.appendDummyInput("AT2"),this.setInputsInline(!0),this.setOutput(!0,"List"),this.updateAt_(1,!0),this.updateAt_(2,!0),this.setTooltip(a_.Msg._GET_TEXT_SUBLIST_TOOLTIP)},mutationToDom:function(){var _=document.createElement("mutation"),t=this.getInput("AT1").type==a_.INPUT_VALUE;_.setAttribute("at1",t);var e=this.getInput("AT2").type==a_.INPUT_VALUE;return _.setAttribute("at2",e),_},domToMutation:function(_){var t="true"==_.getAttribute("at1"),e="true"==_.getAttribute("at2");this.updateAt_(1,t),this.updateAt_(2,e)},updateAt_:function(_,t){this.removeInput("AT"+_),this.removeInput("ORDINAL"+_,!0),t?(this.appendValueInput("AT"+_).setCheck(Number),a_.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL"+_).appendField(a_.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT"+_);var e=new a_.FieldDropdown(this["WHERE_OPTIONS_"+_],(function(e){var i="FROM_START"==e||"FROM_END"==e;if(i!=t){var T=this.sourceBlock_;return T.updateAt_(_,i),T.setFieldValue(e,"WHERE"+_),null}}));this.getInput("AT"+_).appendField(e,"WHERE"+_),1==_&&(this.moveInputBefore("AT1","AT2"),this.getInput("ORDINAL1")&&this.moveInputBefore("ORDINAL1","AT2"))}},Ut={init:function(){this.setHelpUrl(a_.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(lt),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT1").appendField(a_.Msg.LISTS_GET_INDEX_GET+" "+a_.Msg.LISTS_GET_INDEX_FROM_START),this.appendValueInput("AT2").appendField(a_.Msg.LISTS_GET_SUBLIST_END_FROM_START),this.appendDummyInput().appendField(a_.Msg.TEXT_CHARAT2),this.setInputsInline(!0),this.setOutput(!0,["List",String]),this.setTooltip(a_.Msg._GET_TEXT_SUBLIST_TOOLTIP)}},Bt={init:function(){var _=[[a_.Msg.MIXLY_EQUALS,"==="],[a_.Msg.MIXLY_STARTSWITH,"startswith"],[a_.Msg.MIXLY_ENDSWITH,"endswith"]];this.setColour(lt),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(new a_.FieldDropdown(_),"DOWHAT").setCheck(String),this.setOutput(!0,[Boolean,Number]),this.setInputsInline(!0)}},gt={init:function(){this.setColour(lt),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(a_.Msg.MIXLY_COMPARETO).setCheck(String),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_COMPARETO_HELP)}},Gt={init:function(){var _=[[a_.Msg.TEXT_UPPER,"upper"],[a_.Msg.TEXT_TITLE,"title"],[a_.Msg.TEXT_CAPITALIZE,"capitalize"],[a_.Msg.TEXT_SWAPCASE,"swapcase"],[a_.Msg.TEXT_LOWER,"lower"]];this.setColour(lt),this.appendValueInput("VAR").appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new a_.FieldDropdown(_),"CAPITAL").setCheck(String),this.setOutput(!0,String);var t=this;this.setTooltip((function(){var _=t.getFieldValue("CAPITAL");return{upper:a_.Msg.MIXLY_MIXPY_TEXT_UPPER_TOOLTIP,title:a_.Msg.MIXLY_MIXPY_TEXT_TITLE_TOOLTIP,swapcase:a_.Msg.MIXLY_MIXPY_TEXT_SWAPCASE_TOOLTIP,capitalize:a_.Msg.MIXLY_MIXPY_TEXT_CAPITALIZE_TOOLTIP,lower:a_.Msg.MIXLY_MIXPY_TEXT_LOWER_TOOLTIP}[_]}))}},Ft={init:function(){var _=[[a_.Msg.TEXT_LJUST,"ljust"],[a_.Msg.TEXT_CENTER,"center"],[a_.Msg.TEXT_RJUST,"rjust"]];this.setColour(lt),this.appendValueInput("VAR").appendField(new a_.FieldDropdown(_),"CENTER").setCheck(String),this.appendValueInput("WID").appendField(a_.Msg.MIXLY_WIDTH).setCheck(Number),this.appendValueInput("Symbol").appendField(a_.Msg.MIXLY_RECT_Fill).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(a_.Msg.MIXLY_MIXPY_TEXT_CENTER_TOOLTIP)}},yt={init:function(){this.setColour(lt),this.appendValueInput("VAR").appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).setCheck(String),this.appendValueInput("STR").appendField(a_.Msg.MIXLY_MID+a_.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER).setCheck(String),this.appendDummyInput().appendField(a_.Msg.MIXLY_LIST_INDEX),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(a_.Msg.MIXLY_MIXPY_TEXT_FIND_TOOLTIP)}},ft={init:function(){this.setColour(lt),this.appendValueInput("VAR").appendField(a_.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_USE_STR).setCheck(String),this.appendValueInput("LIST").appendField(a_.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_SEQ).setCheck("List","Tuple","Set","Dict"),this.appendDummyInput().appendField(a_.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_GET_STR),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(a_.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_TOOLTIP)}},bt={init:function(){this.setColour(lt),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("STR1").appendField(a_.Msg.MIXLY_MIXPY_REPLACE).setCheck(String),this.appendValueInput("STR2").appendField(a_.Msg.LISTS_SET_INDEX_INPUT_TO).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(a_.Msg.MIXLY_MIXPY_TEXT_REPLACE_TOOLTIP)}},xt={init:function(){this.setColour(lt),this.appendValueInput("VAR"),this.appendValueInput("VAL").appendField(a_.Msg.LIST_SPLIT_AS),this.appendDummyInput("").appendField(a_.Msg.LIST_SPLIT),this.setOutput(!0,"List"),this.setTooltip(a_.Msg.MIXLY_MIXPY_TEXT_SPLIT_TOOLTIP),this.setInputsInline(!0)}},vt={init:function(){var _=[[a_.Msg.TEXT_TRIM_BOTH,"strip"],[a_.Msg.TEXT_TRIM_LEFT,"lstrip"],[a_.Msg.TEXT_TRIM_RIGHT,"rstrip"]];this.setColour(lt),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(a_.Msg.TEXT_STRIM),this.appendDummyInput("").appendField(new a_.FieldDropdown(_),"TOWHAT"),this.appendDummyInput("").appendField(a_.Msg.TEXT_BLANK),this.setOutput(!0,String),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var _=t.getFieldValue("TOWHAT");return{strip:a_.Msg.TEXT_TRIM_BOTH_TOOLTIP,lstrip:a_.Msg.TEXT_TRIM_LEFT_TOOLTIP,rstrip:a_.Msg.TEXT_TRIM_RIGHT_TOOLTIP}[_]}))}},Xt={init:function(){this.setColour(lt),this.appendDummyInput("").appendField(a_.Msg.MIXLY_MICROPYTHON_FORMAT),this.appendDummyInput("").appendField(new a_.FieldTextInput("str"),"VAR"),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new a_.icons.MutatorIcon(["text_create_with_item"],this)),this.setOutput(!0),this.setTooltip(a_.Msg.MIXLY_MIXPY_TEXT_FORMAT_TOOLTIP)},mutationToDom:function(){var _=document.createElement("mutation");return _.setAttribute("items",this.itemCount_),_},domToMutation:function(_){this.itemCount_=parseInt(_.getAttribute("items"),10),this.updateShape_()},decompose:function(_){var t=_.newBlock("text_create_with_container");t.initSvg();for(var e=t.getInput("STACK").connection,i=0;it?_[t]:0==t?'"key"':'"key'+(t+1)+'"'),"KEY"+t).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(_,t){a_.Names.equals(_,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},fe={init:function(){this.setColour(Fe),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(a_.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},be={init:function(){this.setColour(Fe),this.appendDummyInput().appendField(a_.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(a_.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},xe={init:function(){this.setColour(Fe),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(a_.Msg.DICT_KEYS),this.setTooltip(a_.Msg.DICTS_KEYS_TOOLTIP),this.setOutput(!0,"List")}},ve={init:function(){this.setColour(Fe),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(a_.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(a_.Msg.DICTS_ADD_VALUE),this.setOutput(!0),this.setTooltip(a_.Msg.DICTS_GET_TOOLTIP)}},Xe={init:function(){this.setColour(Fe),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(a_.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(a_.Msg.DICTS_ADD_VALUE),this.appendValueInput("VAR").appendField(a_.Msg.DICTS_DEFAULT_VALUE),this.setOutput(!0),this.setTooltip(a_.Msg.DICTS_GET_DEFAULT_TOOLTIP)}},Ve={init:function(){this.setColour(Fe),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(a_.Msg.DICTS_ADD),this.appendDummyInput(),this.appendValueInput("VAR").appendField(a_.Msg.DICTS_ADD_VALUE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(a_.Msg.DICTS_ADD_OR_CHANGE_TOOLTIP)}},ke={init:function(){this.setColour(Fe),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(a_.Msg.DICTS_DELETE_IN),this.appendDummyInput("").appendField(a_.Msg.DICTS_DELETE_VALUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(a_.Msg.DICTS_DELETE_TOOLTIP)}},we={init:function(){this.setColour(Fe),this.appendValueInput("DICT2").setCheck("Dict").appendField(a_.Msg.MAKE_DICT),this.appendValueInput("DICT").setCheck("Dict").appendField(a_.Msg.DICT_UPDATE),this.appendDummyInput("").appendField(a_.Msg.MIXLY_MID),this.setTooltip(a_.Msg.DICTS_UPDATE_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},We={init:function(){this.setColour(Fe),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(a_.Msg.DICT_CLEAR),this.setTooltip(a_.Msg.DICTS_CLEAR_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Ke={init:function(){this.setColour(Fe),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(a_.Msg.DICT_ITEMS),this.setTooltip(a_.Msg.DICTS_ITEMS_TOOLTIP),this.setOutput(!0,"List")}},ze={init:function(){this.setColour(Fe),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(a_.Msg.DICT_VALUES),this.setTooltip(a_.Msg.DICTS_VALUES_TOOLTIP),this.setOutput(!0,"List")}},Ze={init:function(){this.setColour(Fe),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(a_.Msg.MIXLY_LENGTH),this.setTooltip(a_.Msg.DICT_LENGTH_TOOLTIP),this.setOutput(!0,Number)}},Qe={init:function(){this.setColour(Fe),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(a_.Msg.DICT_DELDICT),this.setTooltip(a_.Msg.DICTS_DEL_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Je={init:function(){this.MODE=[[a_.Msg.DICTS_ADD_OR_CHANGE,"INSERT"],[a_.Msg.MIXLY_MICROBIT_JS_DELETE_VAR,"DELETE"]],this.setHelpUrl(a_.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(Fe),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("AT2"),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(a_.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).appendField(a_.Msg.DICTS_ADD_VALUE),this.updateAt_(!0),this.setInputsInline(!0),this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0);var _=this;this.setTooltip((function(){var t="";switch(_.getFieldValue("WHERE")){case"INSERT":t=a_.Msg.DICTS_ADD_TOOLTIP;break;case"DELETE":t=a_.Msg.DICTS_DELETE_TOOLTIP}return t}))},mutationToDom:function(){var _=document.createElement("mutation"),t=this.getInput("AT2").type==a_.INPUT_VALUE;return _.setAttribute("at2",t),_},domToMutation:function(_){var t="true"==_.getAttribute("at2");this.updateAt_(t)},updateAt_:function(_){this.removeInput("AT2"),this.removeInput("ORDINAL",!0),_?this.appendValueInput("AT2").setCheck(Number):this.appendDummyInput("AT2");var t=new a_.FieldDropdown(this.MODE,(function(t){var e="INSERT"==t;if(e!=_){var i=this.sourceBlock_;return i.updateAt_(e),i.setFieldValue(t,"WHERE"),null}}));this.getInput("AT2").appendField(t,"WHERE")}},qe={init:function(){this.setColour(Fe),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(a_.Msg.blockpy_DICT_POP),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(a_.Msg.DICTS_ADD_VALUE),this.setTooltip(a_.Msg.DICT_POP_TOOLTIP),this.setInputsInline(!0),this.setOutput(!0)}},je={init:function(){this.setColour(Fe),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(a_.Msg.DICTS_SET_DEFAULT),this.appendDummyInput("").appendField(a_.Msg.DICTS_DEFAULT_VALUE),this.appendValueInput("VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(a_.Msg.DICTS_SETDEFAULT_TOOLTIP)}},$e={init:function(){this.setColour(Fe),this.appendDummyInput("").appendField(new a_.FieldLabel(a_.Msg.MIXLY_MICROBIT_TYPE_DICT),"TIP").appendField(" "),this.itemCount_=3,this.updateShape_(),this.setOutput(!0,"Dict"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setMutator(new a_.icons.MutatorIcon(["dicts_create_with_item"],this)),this.setTooltip(a_.Msg.DICTS_CREATE_WITH_TOOLTIP)},mutationToDom:function(){var _=document.createElement("mutation");return _.setAttribute("items",this.itemCount_),_},domToMutation:function(_){this.itemCount_=parseInt(_.getAttribute("items"),10),this.updateShape_()},decompose:function(_){var t=_.newBlock("dicts_create_with_container");t.initSvg();for(var e=t.getInput("STACK").connection,i=0;it?_[t]:0==t?'"key"':'"key'+(t+1)+'"'),"KEY"+t).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(_,t){a_.Names.equals(_,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},_i={init:function(){this.setColour(Fe),this.appendValueInput("VAR").appendField(a_.Msg.MIXLY_TODICT),this.setOutput(!0),this.setTooltip(a_.Msg.MIXLY_PYTHON_TOOLTIP_TODICT)}},ti={init:function(){this.setColour(Fe),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(a_.Msg.MIXLY_TO_JSON),this.setTooltip(a_.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0,Number)}},ei={init:function(){this.setColour(Fe),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(a_.Msg.MIXLY_CONVERT_TO_JSON),this.setTooltip(a_.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0,Number)}},ii=210,Ti={init:function(){var _=a_.RTL?[["=","EQ"],["≠","NEQ"],[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["=","EQ"],["≠","NEQ"],["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(ii),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new a_.FieldDropdown(_),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var _=t.getFieldValue("OP");return{EQ:a_.Msg.LOGIC_COMPARE_TOOLTIP_EQ,NEQ:a_.Msg.LOGIC_COMPARE_TOOLTIP_NEQ,LT:a_.Msg.LOGIC_COMPARE_TOOLTIP_LT,LTE:a_.Msg.LOGIC_COMPARE_TOOLTIP_LTE,GT:a_.Msg.LOGIC_COMPARE_TOOLTIP_GT,GTE:a_.Msg.LOGIC_COMPARE_TOOLTIP_GTE}[_]})),this.prevBlocks_=[null,null]}},Ei={init:function(){var _=a_.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]],t=a_.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(ii),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new a_.FieldDropdown(_),"OP1"),this.appendValueInput("C").appendField(new a_.FieldDropdown(t),"OP2"),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_PYTHON_LOGIC_COMPARE_CONTINOUS_TOOLTIP)}},ni={init:function(){var _=[[a_.Msg.LOGIC_OPERATION_AND,"AND"],[a_.Msg.LOGIC_OPERATION_OR,"OR"],[a_.Msg.LOGIC_OPERATION_NOR,"NOR"],[a_.Msg.LOGIC_OPERATION_XOR,"XOR"]];this.setColour(ii),this.setOutput(!0,Boolean),this.appendValueInput("A").setCheck([Boolean,Number]),this.appendValueInput("B").setCheck([Boolean,Number]).appendField(new a_.FieldDropdown(_),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var _=t.getFieldValue("OP");return{AND:a_.Msg.LOGIC_OPERATION_TOOLTIP_AND,OR:a_.Msg.LOGIC_OPERATION_TOOLTIP_OR,NOR:a_.Msg.LOGIC_OPERATION_TOOLTIP_NOR,XOR:a_.Msg.LOGIC_OPERATION_TOOLTIP_XOR}[_]}))}},oi={init:function(){this.setColour(ii),this.setOutput(!0,Boolean),this.appendValueInput("BOOL").setCheck([Number,Boolean]).appendField(a_.Msg.LOGIC_NEGATE_TITLE),this.setTooltip(a_.Msg.LOGIC_NEGATE_TOOLTIP)}},si={init:function(){var _=[[a_.Msg.LOGIC_BOOLEAN_TRUE,"TRUE"],[a_.Msg.LOGIC_BOOLEAN_FALSE,"FALSE"]];this.setColour(ii),this.setOutput(!0,Boolean),this.appendDummyInput().appendField(new a_.FieldDropdown(_),"BOOL"),this.setTooltip(a_.Msg.LOGIC_BOOLEAN_TOOLTIP)}},Oi={init:function(){this.setColour(ii),this.setOutput(!0),this.appendDummyInput().appendField(a_.Msg.LOGIC_NULL),this.setTooltip(a_.Msg.LOGIC_NULL_TOOLTIP)}},Ii={init:function(){this.setColour(ii),this.appendValueInput("A"),this.appendValueInput("B").appendField(a_.Msg.LOGIC_TERNARY_IF_TRUE),this.appendValueInput("C").appendField(a_.Msg.LOGIC_TERNARY_IF_FALSE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_TOOLTIP_LOGIT_TRUEORFALSE)}},ai={init:function(){var _=[[a_.Msg.TEXT_APPEND_TO,"in"],[a_.Msg.MIXLY_PYTHON_LOGIC_IS_NOT_IN,"not in"]];this.setColour(ii),this.appendValueInput("A"),this.appendValueInput("B").setCheck([String,"List"]).appendField(new a_.FieldDropdown(_),"BOOL"),this.appendDummyInput("").appendField(a_.Msg.MICROBIT_LOGIC_IS_IN),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(a_.Msg.IN)}},pi={init:function(){var _=[[a_.Msg.MIXLY_PYTHON_LOGIC_IS,"is"],[a_.Msg.MIXLY_PYTHON_LOGIC_IS_NOT,"is not"]];this.setColour(ii),this.appendValueInput("A"),this.appendValueInput("B").appendField(new a_.FieldDropdown(_),"BOOL"),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_PYTHON_LOGIC_IS_TOOLTIP)}},Mi={init:function(){this.setColour(ii),this.appendValueInput("VAR").appendField(a_.Msg.MIXLY_TOBOOL),this.setOutput(!0,Boolean),this.setTooltip(a_.Msg.MIXLY_PYTHON_TOOLTIP_TOBOOL)}},Li={init:function(){this.setColour(0),this.appendValueInput("fn").setCheck(String).appendField(a_.Msg.MIXLY_PYTHON_STORAGE_OPEN_FILE_WITH_OS+"(For Windows)"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Ri={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[a_.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[a_.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[a_.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendValueInput("FILE").appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_AS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var _=this;this.setTooltip((function(){var t=_.getFieldValue("MODE"),e=a_.Msg.MIXLY_USE,i=a_.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,T=a_.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,E=a_.Msg.MIXLY_BELONG;return e+{r:a_.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:a_.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:a_.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:a_.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[t]+E+i+T}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(_,t){a_.Names.equals(_,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},ri={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[a_.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[a_.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[a_.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var _=this;this.setTooltip((function(){var t=_.getFieldValue("MODE"),e=a_.Msg.MIXLY_USE,i=a_.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,T=a_.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,E=a_.Msg.MIXLY_BELONG,n=a_.Msg.PY_STORAGE_FILE_OBJECT;return e+{r:a_.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:a_.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:a_.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:a_.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[t]+E+i+T+n}))}},Si={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE);this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[a_.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[a_.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[a_.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendDummyInput().appendField(a_.Msg.MIXPY_TEXT_ENCODE).appendField(new a_.FieldDropdown([["ANSI","ANSI"],["gbk","gbk"],["utf-8","utf-8"]]),"CODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var _=this;this.setTooltip((function(){var t=_.getFieldValue("MODE"),e=a_.Msg.MIXLY_USE,i=a_.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,T=a_.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,E=a_.Msg.MIXLY_BELONG,n=a_.Msg.PY_STORAGE_FILE_OBJECT;return e+{r:a_.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:a_.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:a_.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:a_.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[t]+E+i+T+n}))}},li={init:function(){this.setColour(0),this.appendValueInput("data").setCheck(String).appendField(a_.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendValueInput("FILE").appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE+a_.Msg.MIXLY_MICROBIT_TYPE_STRING+a_.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE)}},Ai={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL,"read"],[a_.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE,"readline"],[a_.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES,"readlines"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String)}},Pi={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,"read"],[a_.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,"readline"],[a_.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE,"readlines"]]),"MODE"),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String);var _=this;this.setTooltip((function(){var t=_.getFieldValue("MODE"),e=a_.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE,i=a_.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER;return e+{read:a_.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,readline:a_.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,readlines:a_.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE}[t]+"x"+i}))}},Ni={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.setNextStatement(!0),this.appendValueInput("SIZE").setCheck(Number).appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(a_.Msg.MICROBIT_PYTHON_TYPE)}},di={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(a_.Msg.HTML_FILE),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean),this.setTooltip(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT1)}},hi={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_FILENAME),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILENAME)}},ui={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE)}},mi={init:function(){this.setColour(0),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES)}};a_.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE;const Ci={init:function(){this.setColour(0),this.appendDummyInput().appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE,"remove"],[a_.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_DIRS,"removedirs"]]),"MODE"),this.appendValueInput("FILE").setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE)}},ci={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE+a_.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE)}},Hi={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_RETURN_FILE),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_PRESENT_LOCATION),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_TELL)}},Di={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION),this.appendDummyInput().appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,"start"],[a_.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,"current"],[a_.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END,"end"]]),"MODE"),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var _=this;this.setTooltip((function(){var t=_.getFieldValue("MODE"),e=a_.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION+a_.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION,i=a_.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER,T=a_.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET;return e+" "+{start:a_.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,current:a_.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,end:a_.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END}[t]+T+"x"+i}))}},Yi={init:function(){this.setColour(0),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR)}},Ui={init:function(){this.setColour(0),this.appendValueInput("PATH").setCheck(String).appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH),this.appendDummyInput().appendField(a_.Msg.MIXLY_ESP32_SET),this.appendDummyInput().appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,"mkdir"],[a_.Msg.MIXLY_MICROBIT_PY_STORAGE_MAKEDIRS,"makedirs"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1);var _=this;this.setTooltip((function(){var t=_.getFieldValue("MODE");return a_.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH+"x"+a_.Msg.MIXLY_ESP32_SET+{mkdir:a_.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,makedirs:a_.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[t]}))}},Bi={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME),this.appendValueInput("NEWFILE").setCheck(String).appendField(a_.Msg.MIXLY_AS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME)}},gi={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR)}},Gi={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT),this.appendDummyInput().appendField(new a_.FieldDropdown([[a_.Msg.HTML_FILE,"isfile"],[a_.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_DIR,"isdir"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean);let _=this;this.setTooltip((function(){var t=_.getFieldValue("MODE");return a_.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH+"x"+a_.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT+{isfile:a_.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,isdir:a_.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[t]}))}},Fi={init:function(){this.setColour(0),this.appendValueInput("SPISUB").appendField(a_.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("SUB").appendField(a_.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(a_.Msg.MIXLY_SETUP+a_.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(a_.Msg.MIXLY_SD_CARD),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},yi={init:function(){this.setColour(0),this.appendValueInput("VAR").appendField(a_.Msg.MIXLY_SD_CARD),this.appendValueInput("DIR").setCheck(String).appendField(a_.Msg.MIXLY_SDCARD_MOUNT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip()}},fi={};fi.NAME_TYPE=a_.PROCEDURE_CATEGORY_NAME,fi.allProcedures=function(_){for(var t=_.getAllBlocks(!1),e=[],i=[],T=0;T"),this.appendValueInput("style").appendField(a_.Msg.MIXLY_AIP_ATTR).setAlign(a_.inputs.Align.RIGHT),this.appendStatementInput("DO").appendField(""),this.setInputsInline(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)}},BT={init:function(){this.setColour(CT),this.appendDummyInput().appendField(a_.Msg.HTML_STYLE),this.appendStatementInput("STYLE"),this.setOutput(!0)}},gT={init:function(){this.setColour(CT),this.appendDummyInput().appendField(a_.Msg.HTML_FORM_CONTENT).appendField(new a_.FieldDropdown([[a_.Msg.HTML_TEXT,"text"],[a_.Msg.HTML_EMAIL,"email"],[a_.Msg.HTML_NUMBER,"number"],[a_.Msg.HTML_PASSWORD,"password"],[a_.Msg.HTML_CHECKBOX,"checkbox"],[a_.Msg.HTML_RADIOBUTTON,"radiobutton"],[a_.Msg.HTML_BUTTON,"button"],[a_.Msg.HTML_COLOUR,"colour"],[a_.Msg.HTML_DATE,"date"],[a_.Msg.HTML_LOCALTIME,"local time"],[a_.Msg.HTML_FILE,"file"],[a_.Msg.HTML_HIDDEN,"hidden"],[a_.Msg.HTML_IMAGE,"image"],[a_.Msg.HTML_MONTH,"month"],[a_.Msg.HTML_RANGE,"range"],[a_.Msg.HTML_RESET,"reset"],[a_.Msg.HTML_SEARCH,"search"],[a_.Msg.HTML_SUBMIT,"submit"],[a_.Msg.HTML_TELEPHONENUMBER,"telephone number"],[a_.Msg.HTML_TIME,"time"],[a_.Msg.HTML_URL,"url"],[a_.Msg.HTML_WEEK,"week"]]),"LEVEL"),this.appendDummyInput().appendField(a_.Msg.HTML_NAME).appendField(new a_.FieldTextInput("car"),"NAME"),this.appendDummyInput().appendField(a_.Msg.HTML_VALUE).appendField(new a_.FieldTextInput("go"),"VALUE"),this.appendValueInput("style").appendField(a_.Msg.MIXLY_AIP_ATTR).setAlign(a_.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},GT={init:function(){this.setColour(CT),this.appendDummyInput().appendField(new a_.FieldTextInput("property"),"KEY").appendField(":").appendField(new a_.FieldTextInput("value"),"VALUE"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},FT={init:function(){this.setColour(CT),this.appendDummyInput().appendField(new a_.FieldTextInput("property"),"KEY").appendField(":").appendField(new a_.FieldColour("#ff0000"),"RGB_LED_COLOR"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},yT={init:function(){this.setColour(CT),this.appendDummyInput().appendField(a_.Msg.HTML_TEXT).appendField(new a_.FieldTextInput("text"),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},fT=160,bT={init:function(){this.setColour(fT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Tabular Abstraction:"),this.appendDummyInput().appendField(new a_.FieldTable(""),"TEXT")}},xT={init:function(){this.setColour(fT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Code Block:"),this.appendDummyInput().appendField(new a_.FieldMultilineInput(""),"TEXT")}},vT={init:function(){this.setColour(fT),this.appendDummyInput().appendField("Code Expression:"),this.appendDummyInput().appendField(new a_.FieldMultilineInput(""),"TEXT"),this.setOutput(!0)}},XT={init:function(){this.setColour(fT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("VALUE").appendField(""),this.setInputsInline(!1)}},VT={init:function(){this.setColour(fT),this.appendDummyInput().appendTitle("Comment:").appendTitle(new a_.FieldTextInput(""),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("This comment will be ignored by Python")}},kT={init:function(){this.setColour(fT),this.appendValueInput("VALUE").appendField(a_.Msg.TYPE_CHECK),this.setInputsInline(!1),this.setOutput(!0,"Type")}},wT={init:function(){this.setColour(fT),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new a_.icons.MutatorIcon(["text_print_multiple_item"],this)),this.setTooltip(a_.Msg.TEXT_PRINT_TOOLTIP)},mutationToDom:function(){var _=document.createElement("mutation");return _.setAttribute("items",this.itemCount_),_},domToMutation:function(_){this.itemCount_=parseInt(_.getAttribute("items"),10),this.updateShape_()},decompose:function(_){var t=a_.Block.obtain(_,"text_print_multiple_container");t.initSvg();for(var e=t.getInput("STACK").connection,i=0;i= stop:"," yield start"," start -= abs(step)"])};if(_=function(_,t,e){return"("+_+" <= "+t+") and "+s()+"("+_+", "+t+", "+e+") or "+O()+"("+_+", "+t+", "+e+")"},a_.isNumber(i)&&a_.isNumber(T)&&a_.isNumber(E))i=parseFloat(i),T=parseFloat(T),E=Math.abs(parseFloat(E)),0==i%1&&0==T%1&&0==E%1?(i<=T?(T++,_=0==i&&1==E?T:i+", "+T,1!=E&&(_+=", "+E)):_=i+", "+--T+", -"+E,_="range("+_+")"):(_=i",GTE:">="};const Ho=function(_,t){var e=this.getFieldValue("OP"),i="&&"==e?t.ORDER_LOGICAL_AND:t.ORDER_LOGICAL_OR,T=t.valueToCode(this,"A",i)||"False",E=t.valueToCode(this,"B",i)||"False";if("AND"==e)var n=T+" and "+E;else if("OR"==e)n=T+" or "+E;else if("NOR"==e)n="not("+T+"^"+E+")";else n=T+"^"+E;return[n,i]},Do=function(_,t){var e=t.ORDER_UNARY_PREFIX;return["not "+(t.valueToCode(this,"BOOL",e)||"False"),e]},Yo=function(_,t){return["TRUE"==this.getFieldValue("BOOL")?"True":"False",t.ORDER_ATOMIC]},Uo=function(_,t){return["None",t.ORDER_ATOMIC]},Bo=function(_,t){var e=t.valueToCode(this,"A",t.ORDER_ATOMIC)||"False";return["("+(t.valueToCode(this,"B",t.ORDER_ATOMIC)||"False")+" if "+e+" else "+(t.valueToCode(this,"C",t.ORDER_ATOMIC)||"False")+")",t.ORDER_ATOMIC]},go=function(_,t){var e=t.valueToCode(this,"A",t.ORDER_ATOMIC)||"''",i=t.valueToCode(this,"B",t.ORDER_ATOMIC)||"''";return[e+" "+this.getFieldValue("BOOL")+" "+i,t.ORDER_ATOMIC]},Go=function(_,t){var e=t.valueToCode(this,"A",t.ORDER_ATOMIC)||"''",i=t.valueToCode(this,"B",t.ORDER_ATOMIC)||"''";return[e+" "+this.getFieldValue("BOOL")+" "+i,t.ORDER_ATOMIC]},Fo=function(_,t){return["bool("+(t.valueToCode(this,"VAR",t.ORDER_ATOMIC)||"0")+")",t.ORDER_ATOMIC]},yo=function(_,t){return t.definitions_.import_os="import os","os.startfile("+t.valueToCode(this,"fn",t.ORDER_ATOMIC)+")\n"},fo=function(_,t){return t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+" = open("+t.valueToCode(this,"FILENAME",t.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')\n"},bo=function(_,t){return["open("+t.valueToCode(this,"FILENAME",t.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')",t.ORDER_ATOMIC]},xo=function(_,t){return["open("+t.valueToCode(this,"FILENAME",t.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"', encoding=\""+this.getFieldValue("CODE")+'")',t.ORDER_ATOMIC]},vo=function(_,t){var e=t.valueToCode(this,"data",t.ORDER_ATOMIC);return t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+".write("+e+")\n"},Xo=function(_,t){var e=this.getFieldValue("MODE");return[t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+"."+e+"()",t.ORDER_ATOMIC]},Vo=function(_,t){var e=this.getFieldValue("MODE");return[t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+"."+e+"("+t.valueToCode(this,"SIZE",t.ORDER_ATOMIC)+")",t.ORDER_ATOMIC]},ko=function(_,t){return[t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+".readline("+t.valueToCode(this,"SIZE",t.ORDER_ATOMIC)+")",t.ORDER_ATOMIC]},wo=function(_,t){return[t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+".writable()",t.ORDER_ATOMIC]},Wo=function(_,t){return[t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+".name()",t.ORDER_ATOMIC]},Ko=function(_,t){return t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+".close()\n"},zo=function(_,t){t.definitions_.import_os="import os";return["os.listdir()",t.ORDER_ATOMIC]},Zo=function(_,t){return t.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+")\n"},Qo=function(_,t){return t.definitions_.import_os="import os",["os.path.getsize("+t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+")",t.ORDER_ATOMIC]},Jo=function(_,t){return[t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+".tell()",t.ORDER_ATOMIC]},qo=function(_,t){var e=this.getFieldValue("MODE"),i=0;return i="start"==e?0:"current"==e?1:2,t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+".seek("+t.valueToCode(this,"SIZE",t.ORDER_ATOMIC)+","+i+")\n"},jo=function(_,t){return t.definitions_.import_os="import os","os.chdir("+t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+")\n"},$o=function(_,t){t.definitions_.import_os="import os";return["os.getcwd()",t.ORDER_ATOMIC]},_s=function(_,t){return t.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+t.valueToCode(this,"PATH",t.ORDER_ATOMIC)+")\n"},ts=function(_,t){return t.definitions_.import_os="import os","os.rename("+t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+","+t.valueToCode(this,"NEWFILE",t.ORDER_ATOMIC)+")\n"},es=function(_,t){t.definitions_.import_os="import os";var e=t.valueToCode(this,"FILE",t.ORDER_ATOMIC);return["os."+this.getFieldValue("MODE")+"("+e+")",t.ORDER_ATOMIC]},is=function(_,t){return t.definitions_.import_os="import os",t.definitions_.import_sdcard="import sdcard",t.valueToCode(this,"SUB",t.ORDER_ATOMIC)+" = sdcard.SDCard("+t.valueToCode(this,"SPISUB",t.ORDER_ATOMIC)+","+t.valueToCode(this,"PINSUB",t.ORDER_ATOMIC)+")\n"},Ts=function(_,t){return t.definitions_.import_os="import os",t.definitions_.import_sdcard="import sdcard","os.mount("+t.valueToCode(this,"VAR",t.ORDER_ATOMIC)+","+t.valueToCode(this,"DIR",t.ORDER_ATOMIC)+")\n"},Es=function(_,t){var e=t.variableDB_.getName(this.getFieldValue("NAME"),a_.Procedures.NAME_TYPE),i=t.statementToCode(this,"STACK")||" pass\n";t.INFINITE_LOOP_TRAP&&(i=t.INFINITE_LOOP_TRAP.replace(/%1/g,"'"+this.id+"'")+i);var T=t.valueToCode(this,"RETURN",t.ORDER_NONE)||"";T&&(T=" return "+T+"\n");for(var E=[],n=0;n\n\n\n\t\n"+t.statementToCode(this,"HEAD")+"\n\n"+t.statementToCode(this,"BODY")+"\n\n'''",t.ORDER_ATOMIC]},xs=function(_,t){var e=t.statementToCode(this,"DO"),i=this.getFieldValue("LEVEL");return"\n"+e+"\n"},vs=function(_,t){var e=t.statementToCode(this,"DO"),i=this.getFieldValue("LEVEL");if("head"==i)var T="<"+i+'>\n\t\n'+e+"\n";else T="<"+i+">\n"+e+"\n";return T},Xs=function(_,t){var e=t.statementToCode(this,"DO"),i=this.getFieldValue("LEVEL");return"<"+i+">\n"+e+"\n"},Vs=function(_,t){var e=t.statementToCode(this,"DO"),i=t.valueToCode(this,"style"),T=this.getFieldValue("LEVEL");return"<"+T+" "+i+" >\n"+e+"\n"},ks=function(_,t){return['style="'+t.statementToCode(this,"STYLE")+'"',t.ORDER_ATOMIC]},ws=function(_,t){return'"},Ws=function(){return this.getFieldValue("KEY")+":"+this.getFieldValue("VALUE")+";"},Ks=function(){return this.getFieldValue("TEXT")+"\n"},zs=function(_){return _.getFieldValue("TEXT")+"\n"},Zs=function(_,t){return[_.getFieldValue("TEXT"),t.ORDER_ATOMIC]},Qs=function(_,t){return(t.valueToCode(_,"VALUE",t.ORDER_ATOMIC)||"")+"\n"},Js=function(){return""},qs=function(_,t){return["type("+(t.valueToCode(_,"VALUE",t.ORDER_MEMBER)||"___")+")",t.ORDER_ATOMIC]},js=function(_,t){for(var e=_.getFieldValue("NAME"),i=_.hasReturn_,T=new Array(_.itemCount_),E=0;E<_.itemCount_;E++)T[E]=t.valueToCode(_,"ARGUMENT"+E,t.ORDER_NONE)||"___";var n=e+"("+T.join(", ")+")";return i?[n,t.ORDER_ATOMIC]:n+"\n"},$s=function(_,t){var e=t.valueToCode(_,"MODULE",t.ORDER_ATOMIC),i=t.valueToCode(_,"NAME",t.ORDER_ATOMIC);return[e+"."+(i=i.substring(1,i.length-1)),t.ORDER_NONE]},_O=new a_.Generator("Python");_O.INDENT=" ",_O.addReservedWords("False,None,True,and,as,assert,break,class,continue,def,del,elif,else,except,exec,finally,for,from,global,if,import,in,is,lambda,nonlocal,not,or,pass,print,raise,return,try,while,with,yield,NotImplemented,Ellipsis,__debug__,quit,exit,copyright,license,credits,ArithmeticError,AssertionError,AttributeError,BaseException,BlockingIOError,BrokenPipeError,BufferError,BytesWarning,ChildProcessError,ConnectionAbortedError,ConnectionError,ConnectionRefusedError,ConnectionResetError,DeprecationWarning,EOFError,Ellipsis,EnvironmentError,Exception,FileExistsError,FileNotFoundError,FloatingPointError,FutureWarning,GeneratorExit,IOError,ImportError,ImportWarning,IndentationError,IndexError,InterruptedError,IsADirectoryError,KeyError,KeyboardInterrupt,LookupError,MemoryError,ModuleNotFoundError,NameError,NotADirectoryError,NotImplemented,NotImplementedError,OSError,OverflowError,PendingDeprecationWarning,PermissionError,ProcessLookupError,RecursionError,ReferenceError,ResourceWarning,RuntimeError,RuntimeWarning,StandardError,StopAsyncIteration,StopIteration,SyntaxError,SyntaxWarning,SystemError,SystemExit,TabError,TimeoutError,TypeError,UnboundLocalError,UnicodeDecodeError,UnicodeEncodeError,UnicodeError,UnicodeTranslateError,UnicodeWarning,UserWarning,ValueError,Warning,ZeroDivisionError,_,__build_class__,__debug__,__doc__,__import__,__loader__,__name__,__package__,__spec__,abs,all,any,apply,ascii,basestring,bin,bool,buffer,bytearray,bytes,callable,chr,classmethod,cmp,coerce,compile,complex,copyright,credits,delattr,dict,dir,divmod,enumerate,eval,exec,execfile,exit,file,filter,float,format,frozenset,getattr,globals,hasattr,hash,help,hex,id,input,int,intern,isinstance,issubclass,iter,len,license,list,locals,long,map,max,memoryview,min,next,object,oct,open,ord,pow,print,property,quit,range,raw_input,reduce,reload,repr,reversed,round,set,setattr,slice,sorted,staticmethod,str,sum,super,tuple,type,unichr,unicode,vars,xrange,zip"),_O.ORDER_ATOMIC=0,_O.ORDER_COLLECTION=1,_O.ORDER_STRING_CONVERSION=1,_O.ORDER_UNARY_POSTFIX=1,_O.ORDER_UNARY_PREFIX=2,_O.ORDER_MEMBER=2.1,_O.ORDER_FUNCTION_CALL=2.2,_O.ORDER_EXPONENTIATION=3,_O.ORDER_UNARY_SIGN=4,_O.ORDER_BITWISE_NOT=4,_O.ORDER_MULTIPLICATIVE=5,_O.ORDER_ADDITIVE=6,_O.ORDER_BITWISE_SHIFT=7,_O.ORDER_BITWISE_AND=8,_O.ORDER_BITWISE_XOR=9,_O.ORDER_BITWISE_OR=10,_O.ORDER_RELATIONAL=11,_O.ORDER_EQUALITY=11,_O.ORDER_LOGICAL_NOT=12,_O.ORDER_LOGICAL_AND=13,_O.ORDER_LOGICAL_OR=14,_O.ORDER_ASSIGNMENT=14,_O.ORDER_CONDITIONAL=15,_O.ORDER_LAMBDA=16,_O.ORDER_NONE=99,_O.ORDER_OVERRIDES=[[_O.ORDER_FUNCTION_CALL,_O.ORDER_MEMBER],[_O.ORDER_FUNCTION_CALL,_O.ORDER_FUNCTION_CALL],[_O.ORDER_MEMBER,_O.ORDER_MEMBER],[_O.ORDER_MEMBER,_O.ORDER_FUNCTION_CALL]],_O.init=function(){_O.PASS=this.INDENT+"pass\n",_O.definitions_=Object.create(null),_O.functionNames_=Object.create(null),_O.setups_=Object.create(null),_O.loops_=Object.create(null),_O.codeEnd_=Object.create(null),_O.variableDB_?_O.variableDB_.reset():_O.variableDB_=new r_(_O.RESERVED_WORDS_)},_O.finish=function(_){""!==_&&(_=(_=_.replace(/\n/g,"\n")).replace(/\n\s+$/,"\n"));var t=[];for(var e in _O.definitions_)t.push(_O.definitions_[e]);var i=[];for(var e in _O.functions_)i.push(_O.functions_[e]);var T=[];for(var e in _O.setups_)T.push(_O.setups_[e]);0!==T.length&&T.push("\n");var E=[];for(var e in _O.loops_)E.push(_O.loops_[e]);var n=[];for(var e in _O.codeEnd_)n.push(_O.codeEnd_[e]);return 0!==n.length&&n.push("\n"),E.length>0?t.join("\n")+"\n"+i.join("\n")+"\n"+T.join("")+"\n"+_+"while True:\n"+E.join("")+n.join("\n"):t.join("\n")+"\n"+i.join("\n")+"\n"+T.join("")+"\n"+_+n.join("\n")},_O.scrubNakedValue=function(_){return _+"\n"},_O.quote_=function(_){var t="'";return-1!==(_=_.replace(/\\/g,"\\\\").replace(/\n/g,"\\\n")).indexOf("'")&&(-1===_.indexOf('"')?t='"':_=_.replace(/'/g,"\\'")),t+_+t},_O.multiline_quote_=function(_){return"'''"+(_=_.replace(/'''/g,"\\'\\'\\'"))+"'''"},_O.scrub_=function(_,t,e){var i="";if(!_.outputConnection||!_.outputConnection.targetConnection){(E=_.getCommentText())&&(E=a_.utils.string.wrap(E,_O.COMMENT_WRAP-3),i+=_O.prefixLines(E+"\n","# "));for(var T=0;T<_.inputList.length;T++)if(_.inputList[T].type==a_.INPUT_VALUE){var E,n=_.inputList[T].connection.targetBlock();if(n)(E=_O.allNestedComments(n))&&(i+=_O.prefixLines(E,"# "))}}var o=_.nextConnection&&_.nextConnection.targetBlock();return i+t+(e?"":_O.blockToCode(o))},_O.getAdjustedInt=function(_,t,e,i){var T=e||0;_.workspace.options.oneBasedIndex&&T--;var E=_.workspace.options.oneBasedIndex?"1":"0",n=T?_O.ORDER_ADDITIVE:_O.ORDER_NONE,o=_O.valueToCode(_,t,n)||E;return a_.isNumber(o)?(o=parseInt(o,10)+T,i&&(o=-o)):(o=T>0?"int("+o+" + "+T+")":T<0?"int("+o+" - "+-T+")":"int("+o+")",i&&(o="-"+o)),o};const tO="#74A55B",eO={init:function(){this.setColour(tO),this.appendDummyInput("").appendField(a_.Msg.MIXLY_MIDI),this.appendValueInput("SUB").appendField(a_.Msg.MIXLY_SETUP).setCheck("var"),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(a_.Msg.MIXLY_RGB_PIN_COUNT)}},iO={init:function(){this.setColour(tO),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(a_.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(a_.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(a_.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},TO={init:function(){this.setColour(tO),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(a_.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(a_.Msg.MIXLY_FREQUENCY),this.appendValueInput("time").setCheck(Number).appendField(a_.Msg.MIXLY_DURATION),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(a_.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE2)}},EO={init:function(){this.setColour(tO),this.appendValueInput("SUB"),this.appendValueInput("LIST").appendField(a_.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS)}},nO={init:function(){this.setColour(tO),this.appendValueInput("SUB"),this.appendValueInput("TICKS").setCheck(Number).appendField(a_.Msg.MIXLY_MICROBIT_JS_SET_TEMPO).appendField(a_.Msg.MICROBIT_ACTUATOR_ticks),this.appendValueInput("BPM").setCheck(Number).appendField(a_.Msg.MIXLY_SPEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_MUSIC_SET_TEMPO)}},oO={init:function(){this.setColour(tO),this.appendValueInput("SUB"),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_Get_current_tempo),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_MUSIC_GET_TEMPO)}},sO={init:function(){this.setColour(tO),this.appendValueInput("SUB"),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_Reset_music),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_MUSIC_RESET)}},OO={init:function(){this.setColour(tO),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(a_.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},IO={init:function(){this.setColour(tO),this.appendDummyInput().appendField(a_.Msg.MIXLY_SETTING).appendField(a_.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(a_.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("bright").appendField(a_.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_EXTERN_LED_SETONOFF)}},aO={init:function(){this.setColour(tO),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(a_.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(a_.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(a_.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_EXTERN_LED_GETONOFF)}},pO={init:function(){this.setColour(tO),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(a_.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(a_.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(a_.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_EXTERN_LED_GETONOFF)}},MO={init:function(){this.setColour(tO),this.appendDummyInput().appendField(a_.Msg.MIXLY_SETTING).appendField(a_.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(a_.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("bright").appendField(a_.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_EXTERN_LED_SETBRIGHT)}},LO={init:function(){this.setColour(tO),this.appendValueInput("VAR").appendField(a_.Msg.MIXLY_SETUP+a_.Msg.MIXLY_SERVO),this.appendValueInput("PIN",Number).appendField(a_.Msg.MIXLY_PIN),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},RO={init:function(){this.setColour(tO),this.appendValueInput("PIN",Number).appendField(a_.Msg.MIXLY_SERVO).appendField(a_.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("DEGREE",Number).setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_DEGREE_0_180),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_SERVO_MOVE)}},rO={init:function(){this.setColour(tO),this.appendValueInput("VAR").appendField("360°"+a_.Msg.MIXLY_SERVO),this.appendValueInput("SPEED",Number).setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_SETTING+a_.Msg.blockpy_turtle_rotate+a_.Msg.MIXLY_SPEED+" (-10~10)"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_SERVO_360_TOOLTIP)}},SO={init:function(){this.setColour(tO),this.appendValueInput("PIN",Number).appendField("180°"+a_.Msg.MIXLY_SERVO).appendField(a_.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_SERVO_MOVE)}},lO={init:function(){this.setColour(tO),this.appendValueInput("PIN",Number).appendField("360°"+a_.Msg.MIXLY_SERVO).appendField(a_.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_SERVO_SPEED_TOOLIPS)}},AO={init:function(){this.setColour(tO),this.appendValueInput("PIN",Number).appendField("180°"+a_.Msg.MIXLY_SERVO).appendField(a_.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(a_.Msg.MIXLY_GET+a_.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setOutput(!0,Number),this.setInputsInline(!0)}},PO={init:function(){this.setColour(tO),this.appendValueInput("PIN",Number).appendField("360°"+a_.Msg.MIXLY_SERVO).appendField(a_.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(a_.Msg.MIXLY_GET+a_.Msg.MIXLY_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},NO={init:function(){this.setColour(tO),this.appendValueInput("SUB").appendField("初始化").setCheck("var"),this.appendDummyInput().appendField("电机驱动"),this.appendDummyInput().appendField("地址").appendField(new a_.FieldDropdown([["A","ms32006.ADDRESS_A"],["B","ms32006.ADDRESS_B"]]),"mode"),this.appendValueInput("SUB1").setCheck("var").setAlign(a_.inputs.Align.RIGHT).appendField("通信"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("初始化MS32006电机驱动,使用I2C通信")}},dO={init:function(){this.setColour(tO),this.appendValueInput("SUB").appendField("直流电机").setCheck("var"),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_Direction).appendField(new a_.FieldDropdown([[a_.Msg.CLOCKWISE,"ms32006.MOT_CW"],[a_.Msg.ANTI_CLOCKWISE,"ms32006.MOT_CCW"],[a_.Msg.MOTOR_N,"ms32006.MOT_N"],[a_.Msg.MOTOR_P,"ms32006.MOT_P"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_STEPPER_SET_SPEED),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("设置直流电机的状态及转速(0-100)")}},hO={init:function(){this.setColour(tO),this.appendValueInput("SUB").appendField("步进电机").setCheck("var"),this.appendDummyInput().appendField("选择").appendField(new a_.FieldDropdown([["A","ms32006.MOT_A"],["B","ms32006.MOT_B"]]),"mode"),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_Direction).appendField(new a_.FieldDropdown([[a_.Msg.CLOCKWISE,"ms32006.MOT_CW"],[a_.Msg.ANTI_CLOCKWISE,"ms32006.MOT_CCW"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField("转速"),this.appendValueInput("steps").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField("步数"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("设置步进电机的状态、转速、步数(0-2047)")}},uO={init:function(){this.setColour(tO),this.appendDummyInput("").appendField(a_.Msg.MIXLY_RGB),this.appendValueInput("SUB").appendField(a_.Msg.MIXLY_SETUP).setCheck("var"),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_PIN),this.appendValueInput("LEDCOUNT").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_RGB_COUNT),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(a_.Msg.MIXLY_RGB_PIN_COUNT)}},mO={init:function(){this.setColour(tO),this.appendDummyInput("").appendField(a_.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("_LED_").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(a_.Msg.MIXLY_RGB_NUM_R_G_B_MP)}},CO={init:function(){this.setColour(tO),this.appendDummyInput("").appendField(a_.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("RVALUE").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(a_.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},cO={init:function(){this.setColour(tO),this.appendDummyInput("").appendField(a_.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(a_.Msg.MIXLY_ESP32_RGB_WRITE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(a_.Msg.MIXLY_ESP32_MUSIC_WRI)}},HO={init:function(){this.setColour(tO),this.appendDummyInput("").appendField(a_.Msg.CONTROLS_FOR_INPUT_WITH+"uart").appendField(new a_.FieldDropdown([["uart1","uart1"],["uart2","uart2"]]),"key"),this.appendValueInput("SUB").appendField(a_.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(a_.Msg.MIXLY_SETUP+a_.Msg.LISTS_SET_INDEX_INPUT_TO+"SYN6288"+a_.Msg.MIXLY_AipSpeech_synthesis),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setFieldValue("LTR308","key")}},DO={init:function(){this.setColour(tO),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("VOICE").setCheck(Number).appendField(a_.Msg.MIXLY_SET_VOLUME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_SET_VOLUME_TOOLTIP)}},YO={init:function(){this.setColour(tO),this.appendValueInput("SUB").appendField("SYN6288"),this.appendDummyInput().appendField(a_.Msg.MIXLY_GET_VOLUME),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_SET_VOLUME_TOOLTIP)}},UO={init:function(){this.setColour(tO),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("VOICE").setCheck(Number).appendField(a_.Msg.MIXLY_PLAY_HINTS),this.appendDummyInput().appendField(a_.Msg.MIXLY_PROGRAM_BLOCK).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[a_.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"mode"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_PLAY_HINTS_TOOLTIP)}},BO={init:function(){this.setColour(tO),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("data").setCheck(String).appendField(a_.Msg.MIXLY_AipSpeech_synthesis),this.appendValueInput("VOICE").setCheck(Number).appendField(a_.Msg.MIXLY_BACKGROUND_MUSIC),this.appendDummyInput().appendField(a_.Msg.MIXLY_PROGRAM_BLOCK).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[a_.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"mode"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_PLAY_TTS_TOOLTIP)}},gO={init:function(){this.setColour(tO),this.appendDummyInput("").appendField(new a_.FieldDropdown(p_.Profile.default.extern_addr),"PIN"),this.setOutput(!0,Number)}},GO={init:function(){this.setColour(tO),this.appendDummyInput().appendField(a_.Msg.ME_GO_MOTOR_EXTERN+a_.Msg.MIXLY_MOTOR).appendField(a_.Msg.PIN_NUMBERING).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_LEFT,"0"],[a_.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_MIXBOT_MOTOR_EXTERN_TOOLTIP)}},FO={init:function(){this.setColour(tO),this.appendDummyInput().appendField(a_.Msg.ME_GO_MOTOR_EXTERN+a_.Msg.MIXLY_MOTOR).appendField(a_.Msg.PIN_NUMBERING).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_LEFT,"0"],[a_.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_GET+a_.Msg.MIXLY_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},yO={init:function(){this.setColour(tO),this.appendDummyInput().appendField(a_.Msg.ME_GO_MOTOR_EXTERN+a_.Msg.MIXLY_TRAFFIC_LIGHT).appendField(a_.Msg.PIN_NUMBERING).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_LEFT,"0"],[a_.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.LISTS_SET_INDEX_SET).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_MICROBIT_Turn_off_display,"0"],[a_.Msg.MIXLY_TRAFFIC_LIGHT_RED_ON,"1"],[a_.Msg.MIXLY_TRAFFIC_LIGHT_RED_BLINK,"2"],[a_.Msg.MIXLY_TRAFFIC_LIGHT_YELLOW_ON,"3"],[a_.Msg.MIXLY_TRAFFIC_LIGHT_YELLOW_BLINK,"4"],[a_.Msg.MIXLY_TRAFFIC_LIGHT_GREEN_ON,"5"],[a_.Msg.MIXLY_TRAFFIC_LIGHT_GREEN_BLINK,"6"]]),"light"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},fO={init:function(){this.setColour(tO),this.appendDummyInput().appendField(a_.Msg.ME_GO_MOTOR_EXTERN).appendField(new a_.FieldDropdown([[a_.Msg.COLOUR_RGB_WHITE,"W"],[a_.Msg.COLOUR_RGB_RED,"R"],[a_.Msg.COLOUR_RGB_YELLOW,"Y"],[a_.Msg.COLOUR_RGB_GREEN,"G"],[a_.Msg.COLOUR_RGB_BLUE,"B"]]),"color").appendField("LED").appendField(a_.Msg.PIN_NUMBERING).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_LEFT,"0"],[a_.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendValueInput("value").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.BRIGHTNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},bO={init:function(){this.setColour(tO),this.appendDummyInput().appendField(a_.Msg.ME_GO_MOTOR_EXTERN).appendField(new a_.FieldDropdown([[a_.Msg.COLOUR_RGB_WHITE,"W"],[a_.Msg.COLOUR_RGB_RED,"R"],[a_.Msg.COLOUR_RGB_YELLOW,"Y"],[a_.Msg.COLOUR_RGB_GREEN,"G"],[a_.Msg.COLOUR_RGB_BLUE,"B"]]),"color").appendField("LED").appendField(a_.Msg.PIN_NUMBERING).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_LEFT,"0"],[a_.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(a_.Msg.MIXLY_GET+a_.Msg.BRIGHTNESS),this.setOutput(!0,Number),this.setInputsInline(!0)}},xO={init:function(){this.setColour(tO),this.appendDummyInput().appendField(a_.Msg.ME_GO_MOTOR_EXTERN+a_.Msg.MIXLY_SERVO_MOTOR).appendField(a_.Msg.PIN_NUMBERING).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_LEFT,"0"],[a_.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(a_.Msg.MIXLY_GET).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"[0]"],[a_.Msg.MIXLY_SPEED,"[1]"],[a_.Msg.MATH_SINGLE_OP_ABSOLUTE+a_.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"[2]"],[a_.Msg.MIXLY_RELATIVE+a_.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"[3]"],[a_.Msg.MIXLY_MIXBOT_SERVO_BLOCK_OR_NOT,"[4]"],[a_.Msg.MIXLY_MIXBOT_SERVO_FINISH_OR_NOT,"[5]"],[a_.Msg.MIXLY_ALL,""]]),"status"),this.setOutput(!0,Number),this.setInputsInline(!0)}},vO={init:function(){this.setColour(tO),this.appendDummyInput().appendField(a_.Msg.ME_GO_MOTOR_EXTERN+a_.Msg.MIXLY_SERVO_MOTOR).appendField(a_.Msg.PIN_NUMBERING).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_LEFT,"0"],[a_.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(a_.Msg.MIXLY_MIXBOT_SERVO_SET_STOP_MODE).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_KEEP,"0"],[a_.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_COAST,"1"],[a_.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_BRAKE,"2"]]),"status"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},XO={init:function(){this.setColour(tO),this.appendDummyInput().appendField(a_.Msg.ME_GO_MOTOR_EXTERN+a_.Msg.MIXLY_SERVO_MOTOR).appendField(a_.Msg.PIN_NUMBERING).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_LEFT,"0"],[a_.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(a_.Msg.MIXLY_STOP),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},VO={init:function(){this.setColour(tO),this.appendDummyInput().appendField(a_.Msg.ME_GO_MOTOR_EXTERN+a_.Msg.MIXLY_SERVO_MOTOR).appendField(a_.Msg.MATH_SINGLE_OP_ABSOLUTE+a_.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+a_.Msg.MSG.run).appendField(a_.Msg.PIN_NUMBERING).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_LEFT,"0"],[a_.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(a_.Msg.MIXLY_MODE).setAlign(a_.inputs.Align.RIGHT).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_SPEED+a_.Msg.MIXLY_MODE,"0"],[a_.Msg.MIXLY_MICROBIT_JS_BLE_POWER+a_.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(a_.inputs.Align.RIGHT).appendField("%"),this.appendDummyInput().appendField(a_.Msg.MIXLY_MIXBOT_SERVO_TURN_DIRECTION).setAlign(a_.inputs.Align.RIGHT).appendField(new a_.FieldDropdown([[a_.Msg.CLOCKWISE,"0"],[a_.Msg.MIXLY_MIXBOT_SERVO_NEAREST_PATH,"1"],[a_.Msg.ANTI_CLOCKWISE,"2"]]),"direction"),this.appendValueInput("angle").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_DISPLAY_MATRIX_ROTATE+a_.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_MIXBOT_SERVO_ABSOLUTE_ANGLE_TOOLTIP)}},kO={init:function(){this.setColour(tO),this.appendDummyInput().appendField(a_.Msg.ME_GO_MOTOR_EXTERN+a_.Msg.MIXLY_SERVO_MOTOR).appendField(a_.Msg.MIXLY_RELATIVE+a_.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+a_.Msg.MSG.run).appendField(a_.Msg.PIN_NUMBERING).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_LEFT,"0"],[a_.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(a_.Msg.MIXLY_MIXBOT_SERVO_RELATIVE_ORIGIN_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},wO={init:function(){this.setColour(tO),this.appendDummyInput().appendField(a_.Msg.ME_GO_MOTOR_EXTERN+a_.Msg.MIXLY_SERVO_MOTOR).appendField(a_.Msg.MIXLY_RELATIVE+a_.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+a_.Msg.MSG.run).appendField("("+a_.Msg.MIXLY_MIXBOT_SERVO_LIKE_ENCODING_MOTOR+")").appendField(a_.Msg.PIN_NUMBERING).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_LEFT,"0"],[a_.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(a_.Msg.MIXLY_MODE).setAlign(a_.inputs.Align.RIGHT).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_SPEED+a_.Msg.MIXLY_MODE,"0"],[a_.Msg.MIXLY_MICROBIT_JS_BLE_POWER+a_.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(a_.inputs.Align.RIGHT).appendField("%"),this.appendValueInput("angle").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_DISPLAY_MATRIX_ROTATE+a_.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_MIXBOT_SERVO_RELATIVE_ANGLE_TOOLTIP)}},WO={init:function(){this.setColour(tO),this.appendDummyInput().appendField(a_.Msg.ME_GO_MOTOR_EXTERN+a_.Msg.MIXLY_SERVO_MOTOR).appendField(a_.Msg.MIXLY_RELATIVE+a_.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+a_.Msg.MSG.run).appendField("("+a_.Msg.MIXLY_MIXBOT_SERVO_LIKE_ORDINARY_MOTOR+")").appendField(a_.Msg.PIN_NUMBERING).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_LEFT,"0"],[a_.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(a_.Msg.MIXLY_MODE).setAlign(a_.inputs.Align.RIGHT).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_SPEED+a_.Msg.MIXLY_MODE,"0"],[a_.Msg.MIXLY_MICROBIT_JS_BLE_POWER+a_.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(a_.inputs.Align.RIGHT).appendField("%"),this.appendDummyInput().appendField(a_.Msg.MIXLY_MIXBOT_SERVO_TURN_DIRECTION).setAlign(a_.inputs.Align.RIGHT).appendField(new a_.FieldDropdown([[a_.Msg.CLOCKWISE,"0"],[a_.Msg.ANTI_CLOCKWISE,"2"]]),"direction"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},KO={init:function(){this.setColour(tO),this.appendDummyInput().appendField(a_.Msg.MIXBOT).appendField(a_.Msg.ME_GO_MOTOR_EXTERN).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_MOTOR,"ext_motor"],[a_.Msg.MIXLY_TRAFFIC_LIGHT,"ext_traffic"],[a_.Msg.COLOUR_RGB_WHITE+"LED","W_LED"],[a_.Msg.COLOUR_RGB_RED+"LED","R_LED"],[a_.Msg.COLOUR_RGB_YELLOW+"LED","Y_LED"],[a_.Msg.COLOUR_RGB_GREEN+"LED","G_LED"],[a_.Msg.COLOUR_RGB_BLUE+"LED","B_LED"],[a_.Msg.MIXLY_SERVO_MOTOR,"ext_servo"]]),"name"),this.appendDummyInput().appendField(a_.Msg.MIXLY_MIXBOT_EXTERN_GET_ADDR),this.setOutput(!0),this.setInputsInline(!0)}},zO={init:function(){this.setColour(tO),this.appendDummyInput().appendField(a_.Msg.MIXBOT).appendField(a_.Msg.ME_GO_MOTOR_EXTERN).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_MOTOR,"ext_motor"],[a_.Msg.MIXLY_TRAFFIC_LIGHT,"ext_traffic"],[a_.Msg.COLOUR_RGB_WHITE+"LED","W_LED"],[a_.Msg.COLOUR_RGB_RED+"LED","R_LED"],[a_.Msg.COLOUR_RGB_YELLOW+"LED","Y_LED"],[a_.Msg.COLOUR_RGB_GREEN+"LED","G_LED"],[a_.Msg.COLOUR_RGB_BLUE+"LED","B_LED"],[a_.Msg.MIXLY_SERVO_MOTOR,"ext_servo"]]),"name"),this.appendDummyInput().appendField(a_.Msg.MIXLY_MIXBOT_EXTERN_SET_ADDR),this.appendValueInput("old").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE),this.appendValueInput("new").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_UPDATE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},ZO="#6C9858",QO={init:function(){this.setColour(ZO),this.appendDummyInput("").appendField(new a_.FieldDropdown([["L1","1"],["L2","2"]]),"op"),this.setOutput(!0)}},JO={init:function(){this.setColour(ZO),this.appendDummyInput("").appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_ESP32_ON,"1"],[a_.Msg.MIXLY_ESP32_OFF,"0"],[a_.Msg.MIXLY_ESP32_TOGGLE,"-1"]]),"flag"),this.setOutput(!0),this.setTooltip(a_.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW)}},qO={init:function(){this.setColour(ZO),this.appendDummyInput().appendField(a_.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(a_.Msg.MIXLY_BUILDIN_LED),this.appendValueInput("bright").appendField(a_.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_LED_SETONOFF)}},jO={init:function(){this.setColour(ZO),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("led").appendField(a_.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput().appendField(a_.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_LED_GETONOFF)}},$O={init:function(){this.setColour(ZO),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("led").appendField(a_.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput().appendField(a_.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_LED_GETONOFF)}},_I={init:function(){this.setColour(ZO),this.appendDummyInput().appendField(a_.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(a_.Msg.MIXLY_BUILDIN_LED),this.appendValueInput("bright").appendField(a_.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_SETTING+a_.Msg.MIXLY_BUILDIN_LED+a_.Msg.MIXLY_BRIGHTNESS+"(0-100%)")}},tI={init:function(){this.setColour(ZO),this.appendDummyInput().appendField(a_.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(a_.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput("").appendField(a_.Msg.MIXLY_LCD_SETCOLOR).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_LIGHT_OFF,"0"],[a_.Msg.MIXLY_LIGHT_RED,"1"],[a_.Msg.MIXLY_LIGHT_GREEN,"2"],[a_.Msg.MIXLY_LIGHT_BLUE,"3"],[a_.Msg.MIXLY_LIGHT_YELLOW,"4"],[a_.Msg.MIXLY_LIGHT_CYAN,"5"],[a_.Msg.MIXLY_LIGHT_PURPLE,"6"],[a_.Msg.MIXLY_LIGHT_WHITE,"7"]]),"colorvalue"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip()}},eI={init:function(){this.setColour(ZO),this.appendDummyInput().appendField(a_.Msg.MIXLY_SETTING).appendField(a_.Msg.MIXLY_BUILDIN_LED).appendField(new a_.FieldDropdown([[a_.Msg.COLOUR_RGB_RED,"r"],[a_.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendValueInput("bright").appendField(a_.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_LED_SETONOFF)}},iI={init:function(){this.setColour(ZO),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(a_.Msg.MIXLY_BUILDIN_LED).appendField(new a_.FieldDropdown([[a_.Msg.COLOUR_RGB_RED,"r"],[a_.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendDummyInput().appendField(a_.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_LED_GETONOFF)}},TI={init:function(){this.setColour(ZO),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(a_.Msg.MIXLY_BUILDIN_LED).appendField(new a_.FieldDropdown([[a_.Msg.COLOUR_RGB_RED,"r"],[a_.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendDummyInput().appendField(a_.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_LED_GETONOFF)}},EI={init:function(){this.setColour(ZO),this.appendDummyInput().appendField(a_.Msg.MIXLY_SETTING).appendField(a_.Msg.MIXLY_BUILDIN_LED).appendField(new a_.FieldDropdown([[a_.Msg.COLOUR_RGB_RED,"r"],[a_.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendValueInput("bright").appendField(a_.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_SETTING+a_.Msg.MIXLY_BUILDIN_LED+a_.Msg.MIXLY_BRIGHTNESS+"(0-10)")}},nI={init:function(){this.setColour(ZO),this.appendDummyInput("").appendField(new a_.FieldDropdown([["L1","20"],["L2","21"]]),"op"),this.setOutput(!0)}},oI={init:function(){this.setColour(ZO),this.appendDummyInput("").appendField(a_.Msg.MIXLY_RGB),this.appendValueInput("_LED_").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);switch(p_.Boards.getSelectedBoardKey()){case"micropython:esp32c3:mixgo_cc":case"micropython:esp32s2:mixgo_ce":this.setTooltip(a_.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOCC);break;case"micropython:esp32c3:mixgo_me":default:this.setTooltip(a_.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOME);break;case"micropython:esp32:mPython":this.setTooltip(a_.Msg.MIXLY_RGB_NUM_R_G_B_MPYTHON)}}},sI={init:function(){this.setColour(ZO),this.appendDummyInput("").appendField(a_.Msg.MIXLY_RGB),this.appendValueInput("RVALUE").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(a_.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},OI={init:function(){this.setColour(ZO),this.appendDummyInput("").appendField(a_.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(a_.Msg.MIXLY_RAINBOW),this.appendValueInput("time").setCheck(Number).appendField(a_.Msg.MIXLY_DURATION).appendField(a_.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},II={init:function(){this.setColour(ZO),this.appendDummyInput("").appendField(a_.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(a_.Msg.MIXLY_CHASE),this.appendValueInput("RVALUE").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_RGB_B),this.appendValueInput("time").setCheck(Number).appendField(a_.Msg.PYTHON_RANGE_STEP).appendField(a_.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},aI={init:function(){this.setColour(ZO),this.appendDummyInput("").appendField(a_.Msg.MIXLY_RGB),this.appendDummyInput().appendField(a_.Msg.MIXLY_ESP32_RGB_WRITE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(a_.Msg.MIXLY_ESP32_MUSIC_WRI)}},pI={init:function(){this.setColour(ZO),this.appendDummyInput("").appendField(a_.Msg.MIXLY_RGB),this.appendValueInput("_LED_").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);switch(p_.Boards.getSelectedBoardKey()){case"micropython:esp32c3:mixgocc":this.setTooltip(a_.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOCC);break;case"micropython:esp32c3:mixgome":default:this.setTooltip(a_.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOME);break;case"micropython:esp32:mPython":this.setTooltip(a_.Msg.MIXLY_RGB_NUM_R_G_B_MPYTHON)}}},MI={init:function(){this.setColour(ZO),this.appendDummyInput("").appendField(a_.Msg.MIXLY_RGB),this.appendValueInput("RVALUE").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(a_.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},LI={init:function(){this.setColour(ZO),this.appendDummyInput("").appendField(a_.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(a_.Msg.MIXLY_CHASE),this.appendValueInput("RVALUE").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_RGB_B),this.appendValueInput("time").setCheck(Number).appendField(a_.Msg.PYTHON_RANGE_STEP).appendField(a_.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},RI={init:function(){this.setColour(ZO),this.appendValueInput("TICKS").setCheck(Number).appendField(a_.Msg.MIXLY_MICROBIT_JS_SET_TEMPO).appendField(a_.Msg.MICROBIT_ACTUATOR_ticks),this.appendValueInput("BPM").setCheck(Number).appendField(a_.Msg.MIXLY_SPEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_MUSIC_SET_TEMPO)}},rI={init:function(){this.setColour(ZO),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_Get_current_tempo),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_MUSIC_GET_TEMPO)}},SI={init:function(){this.setColour(ZO),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_Reset_music),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_MUSIC_RESET)}},lI={init:function(){this.setColour(ZO),this.appendDummyInput().appendField(a_.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(a_.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(a_.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},AI={init:function(){this.setColour(ZO),this.appendDummyInput().appendField(a_.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(a_.Msg.MIXLY_FREQUENCY),this.appendValueInput("time").setCheck(Number).appendField(a_.Msg.MIXLY_DURATION),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(a_.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE2)}},PI={init:function(){this.setColour(ZO),this.appendDummyInput().appendField(a_.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},NI={init:function(){this.setColour(ZO),this.appendValueInput("LIST").appendField(a_.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS)}},dI={init:function(){this.setColour(ZO),this.appendDummyInput().appendField(a_.Msg.MOTOR_DC).appendField(new a_.FieldDropdown([["1","1"],["2","2"],["3","3"]]),"wheel"),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_Direction).appendField(new a_.FieldDropdown([[a_.Msg.CLOCKWISE,"CW"],[a_.Msg.ANTI_CLOCKWISE,"CCW"],[a_.Msg.MOTOR_P,"P"],[a_.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},hI={init:function(){this.setColour(ZO),this.appendDummyInput().appendField("MixGo Car").appendField(new a_.FieldDropdown([[a_.Msg.blockpy_forward,"F"],[a_.Msg.blockpy_backward,"B"],[a_.Msg.blockpy_left,"L"],[a_.Msg.blockpy_right,"R"]]),"VAR"),this.appendValueInput("speed").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},uI={init:function(){this.setColour(ZO),this.appendDummyInput("").appendField("MixGo Car").appendField(new a_.FieldDropdown([[a_.Msg.MOTOR_P,"P"],[a_.Msg.MOTOR_N,"N"]]),"VAR"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},mI={init:function(){this.setColour(ZO),this.appendDummyInput().appendField(a_.Msg.MOTOR_DC).appendField(new a_.FieldDropdown([[a_.Msg.MIXLYCAR_WHEEL_LEFT,"L"],[a_.Msg.MIXLYCAR_WHEEL_RIGHT,"R"]]),"wheel"),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_Direction).appendField(new a_.FieldDropdown([[a_.Msg.CLOCKWISE,"CW"],[a_.Msg.ANTI_CLOCKWISE,"CCW"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},CI={init:function(){this.setColour(ZO),this.appendDummyInput().appendField(a_.Msg.MOTOR_DC).appendField(new a_.FieldDropdown([[a_.Msg.MIXLYCAR_WHEEL_LEFT,"L"],[a_.Msg.MIXLYCAR_WHEEL_RIGHT,"R"]]),"wheel"),this.appendDummyInput().appendField(a_.Msg.MIXLY_STOP).appendField(new a_.FieldDropdown([[a_.Msg.MOTOR_P,"P"],[a_.Msg.MOTOR_N,"N"]]),"direction"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},cI={init:function(){this.setColour(ZO),this.appendDummyInput().appendField(a_.Msg.MIXLY_MIXBOT_MOTOR_STATUS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_MIXBOT_MOTOR_STATUS_TOOLTIP)}},HI={init:function(){this.setColour(ZO),this.appendDummyInput().appendField(a_.Msg.MIXBOT).appendField(new a_.FieldDropdown([[a_.Msg.blockpy_forward,"F"],[a_.Msg.blockpy_backward,"B"],[a_.Msg.blockpy_left,"L"],[a_.Msg.blockpy_right,"R"]]),"VAR"),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"PWR"],[a_.Msg.MIXLY_SPEED,"SPEED"],[a_.Msg.MIXLY_MIXBOT_MOTOR_TURNS,"TURNS"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_MIXBOT_MOVE_TOOLTIP)}},DI={init:function(){this.setColour(ZO),this.appendDummyInput().appendField(a_.Msg.MIXBOT).appendField(new a_.FieldDropdown([[a_.Msg.MOTOR_P,"P"],[a_.Msg.MOTOR_N,"N"]]),"VAR"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},YI={init:function(){this.setColour(ZO),this.appendDummyInput().appendField(a_.Msg.MIXBOT).appendField(a_.Msg.MIXLY_MOTOR).appendField(new a_.FieldDropdown([[a_.Msg.TEXT_TRIM_LEFT,"1"],[a_.Msg.TEXT_TRIM_RIGHT,"2"],[a_.Msg.TEXT_TRIM_BOTH,"0"]]),"wheel"),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"PWR"],[a_.Msg.MIXLY_SPEED,"SPEED"],[a_.Msg.MIXLY_MIXBOT_MOTOR_TURNS,"TURNS"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_MIXBOT_MOVE_TOOLTIP)}},UI={init:function(){this.setColour(ZO),this.appendDummyInput().appendField(a_.Msg.MIXLY_MIXBOT_BUZZER),this.appendDummyInput().appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_ON,"0"],[a_.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_OFF,"1"]]),"on_off"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},BI={init:function(){this.setColour(ZO),this.appendDummyInput().appendField(a_.Msg.BITBOT).appendField(new a_.FieldDropdown([[a_.Msg.blockpy_forward,"F"],[a_.Msg.blockpy_backward,"B"],[a_.Msg.blockpy_left,"L"],[a_.Msg.blockpy_right,"R"]]),"VAR"),this.appendValueInput("speed").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},gI={init:function(){this.setColour(ZO),this.appendDummyInput().appendField(a_.Msg.BITBOT).appendField(new a_.FieldDropdown([[a_.Msg.MOTOR_P,"P"],[a_.Msg.MOTOR_N,"N"]]),"VAR"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},GI={init:function(){this.setColour(ZO),this.appendDummyInput().appendField(a_.Msg.BITBOT).appendField(a_.Msg.MIXLY_MOTOR).appendField(new a_.FieldDropdown([[a_.Msg.TEXT_TRIM_LEFT,"0"],[a_.Msg.TEXT_TRIM_RIGHT,"1"]]),"wheel"),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_Direction).appendField(new a_.FieldDropdown([[a_.Msg.CLOCKWISE,"CW"],[a_.Msg.ANTI_CLOCKWISE,"CCW"],[a_.Msg.MOTOR_P,"P"],[a_.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},FI={init:function(){this.setColour(ZO),this.appendValueInput("bright").appendField(a_.Msg.MIXLY_MIXBOT_SOUND_SET_LOUDNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_LED_SETONOFF)}},yI={init:function(){this.setColour(ZO),this.appendDummyInput().appendField(a_.Msg.MIXLY_MIXBOT_SOUND_LOUDNESS+"(%)"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_LED_GETONOFF)}},fI={init:function(){this.setColour(ZO),this.appendValueInput("bright").appendField(a_.Msg.MIXLY_SETTING+a_.Msg.MIXLY_MIXBOT_BUZZER+a_.Msg.MIXLY_MP3_VOL),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_LED_SETONOFF)}},bI={init:function(){this.setColour(ZO),this.appendDummyInput().appendField(a_.Msg.MIXLY_GET+a_.Msg.MIXLY_MIXBOT_BUZZER+a_.Msg.MIXLY_MP3_VOL+"(%)"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_LED_GETONOFF)}},xI={init:function(){this.setColour(ZO),this.appendValueInput("PATH").appendField(a_.Msg.MIXLY_RECORD_AUDIO).appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.appendValueInput("TIME").setCheck(Number).appendField(a_.Msg.MIXLY_GET_PRESSES_TIME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},vI={init:function(){this.setColour(ZO),this.appendValueInput("PATH").appendField(a_.Msg.MIXLY_PLAY_AUDIO).appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},XI={init:function(){this.setColour(ZO),this.appendValueInput("PATH").appendField(a_.Msg.MIXLY_PLAY_ONLINE_AUDIO).appendField("URL"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},VI={init:function(){this.setColour(ZO),this.appendDummyInput().appendField(a_.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(a_.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(a_.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},kI={init:function(){this.setColour(ZO),this.appendDummyInput().appendField(a_.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},wI={init:function(){this.setColour(ZO),this.appendDummyInput().appendField(a_.Msg.LISTS_SET_INDEX_SET+a_.Msg.ME_GO_MOTOR_EXTERN).appendField(a_.Msg.PIN_NUMBERING).appendField(new a_.FieldDropdown([["1","1"],["2","2"]]),"index"),this.appendValueInput("duty").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.blynk_IOT_IR_POWER+a_.Msg.MIXLY_PINMODEOUT),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip()}},WI={init:function(){this.setColour(ZO),this.appendDummyInput().appendField(a_.Msg.MIXLY_GET+a_.Msg.ME_GO_MOTOR_EXTERN).appendField(a_.Msg.PIN_NUMBERING).appendField(new a_.FieldDropdown([["1","1"],["2","2"]]),"index"),this.appendDummyInput().setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.blynk_IOT_IR_POWER+a_.Msg.MIXLY_PINMODEOUT+a_.Msg.MIXLY_DUTY_RATIO),this.setOutput(!0,Number),this.setInputsInline(!0)}},KI={init:function(){this.setColour(ZO),this.appendDummyInput().appendField(a_.Msg.LISTS_SET_INDEX_SET+a_.Msg.ME_GO_MOTOR_EXTERN).appendField(a_.Msg.MIXLY_ALL+a_.Msg.PIN_NUMBERING),this.appendValueInput("duty").setCheck(Number).setAlign(a_.ALIGN_RIGHT).appendField(a_.Msg.blynk_IOT_IR_POWER+a_.Msg.MIXLY_PINMODEOUT+a_.Msg.MIXLY_FREQUENCY),this.appendDummyInput().appendField("Hz"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_MIXBOT_MOTOR_EXTERN_TOOLTIP)}},zI="#90A244",ZI={init:function(){this.setColour(zI),this.appendDummyInput("").appendField(a_.Msg.CONTROLS_FOR_INPUT_WITH+"uart").appendField(new a_.FieldDropdown([["uart1","uart1"],["uart2","uart2"]]),"key"),this.appendValueInput("SUB").appendField(a_.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(a_.Msg.MIXLY_SETUP+a_.Msg.LISTS_SET_INDEX_INPUT_TO+"MixGo AI"+a_.Msg.MSG.catSensor),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},QI={init:function(){this.setColour(zI),this.appendValueInput("VAR").appendField(a_.Msg.MIXLY_QR_CODE+a_.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(a_.Msg.MIXLY_ALL_CODE_ANALYSIS),this.appendDummyInput().appendField(a_.Msg.MIXLY_GET).appendField(new a_.FieldDropdown([[a_.Msg.OLED_STRING,"info1"],[a_.Msg.MIXLY_POSITION_XY+"-xywh","rect"],["x"+a_.Msg.MIXLY_POSITION_XY,"rect[0]"],["y"+a_.Msg.MIXLY_POSITION_XY,"rect[1]"],["w"+a_.Msg.MIXLY_POSITION_XY,"rect[2]"],["h"+a_.Msg.MIXLY_POSITION_XY,"rect[3]"],[a_.Msg.MICROPYTHON_HUSKYLENS_X_CENTERED+a_.Msg.MIXLY_POSITION_XY,"xc"],[a_.Msg.MICROPYTHON_HUSKYLENS_Y_CENTERED+a_.Msg.MIXLY_POSITION_XY,"yc"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_AI_SENSOR_QR_CODE_TOOLTIP)}},JI={init:function(){this.setColour(zI),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(a_.Msg.MIXLY_GET).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_QR_CODE+a_.Msg.MIXPY_OBJECT,"qrcode"],[a_.Msg.MIXLY_BAR_CODE+a_.Msg.MIXPY_OBJECT,"barcode"],[a_.Msg.MIXLY_TAG+a_.Msg.MIXPY_OBJECT,"apriltag"]]),"TYPE"),this.appendDummyInput().appendField(a_.Msg.MIXLY_ANALYSIS_RESULT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip()}},qI={init:function(){this.setColour(zI),this.appendValueInput("SUB"),this.appendDummyInput().appendField(a_.Msg.MIXLY_QR_CODE_RECOGNTITION),this.appendDummyInput().setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.PROCEDURES_DEFRETURN_RETURN+"[qrcode]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_AI_SENSOR_QR_CODE_RECOGNTITION_TOOLTIP)}},jI={init:function(){this.setColour(zI),this.appendValueInput("SUB"),this.appendValueInput("RX").appendField(a_.Msg.MIXLY_SETTING+a_.Msg.MIXLY_ETHERNET_CLINET_PORT).appendField("RX#").setCheck(Number).setAlign(a_.inputs.Align.RIGHT),this.appendValueInput("TX").appendField("TX#").setCheck(Number).setAlign(a_.inputs.Align.RIGHT),this.appendDummyInput().appendField(a_.Msg.SOFT_RESET+a_.Msg.MIXLY_ESP32_RGB_WRITE).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[a_.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"mode"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_AI_SENSOR_CONFIG_TOOLTIP)}},$I={init:function(){this.setColour(zI),this.appendValueInput("SUB"),this.appendValueInput("led1").appendField(a_.Msg.MIXLY_SETTING).appendField("RGB1").setCheck(Number).setAlign(a_.inputs.Align.RIGHT),this.appendValueInput("led2").appendField("RGB2").setCheck(Number).setAlign(a_.inputs.Align.RIGHT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_AI_SENSOR_CONFIG_TOOLTIP)}},_a={init:function(){this.setColour(zI),this.appendValueInput("VAR").appendField(a_.Msg.MIXLY_BAR_CODE+a_.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(a_.Msg.MIXLY_ALL_CODE_ANALYSIS),this.appendDummyInput().appendField(a_.Msg.MIXLY_GET).appendField(new a_.FieldDropdown([[a_.Msg.OLED_STRING,"info1"],[a_.Msg.MIXLY_POSITION_XY+"-xywh","rect"],["x"+a_.Msg.MIXLY_POSITION_XY,"rect[0]"],["y"+a_.Msg.MIXLY_POSITION_XY,"rect[1]"],["w"+a_.Msg.MIXLY_POSITION_XY,"rect[2]"],["h"+a_.Msg.MIXLY_POSITION_XY,"rect[3]"],[a_.Msg.MICROPYTHON_HUSKYLENS_X_CENTERED+a_.Msg.MIXLY_POSITION_XY,"xc"],[a_.Msg.MICROPYTHON_HUSKYLENS_Y_CENTERED+a_.Msg.MIXLY_POSITION_XY,"yc"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_AI_SENSOR_BAR_CODE_TOOLTIP)}},ta={init:function(){this.setColour(zI),this.appendValueInput("SUB"),this.appendDummyInput().appendField(a_.Msg.MIXLY_BAR_CODE_RECOGNTITION),this.appendDummyInput().setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.PROCEDURES_DEFRETURN_RETURN+"[barcode]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_AI_SENSOR_BAR_CODE_RECOGNTITION_TOOLTIP)}},ea={init:function(){this.setColour(zI),this.appendValueInput("VAR").appendField(a_.Msg.MIXLY_TAG+a_.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(a_.Msg.MIXLY_ALL_CODE_ANALYSIS),this.appendDummyInput().appendField(a_.Msg.MIXLY_GET).appendField(new a_.FieldDropdown([[a_.Msg.OLED_STRING,"info1"],[a_.Msg.blockpy_turtle_rotate+a_.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"info2"],[a_.Msg.MIXLY_POSITION_XY+"-xywh","rect"],["x"+a_.Msg.MIXLY_POSITION_XY,"rect[0]"],["y"+a_.Msg.MIXLY_POSITION_XY,"rect[1]"],["w"+a_.Msg.MIXLY_POSITION_XY,"rect[2]"],["h"+a_.Msg.MIXLY_POSITION_XY,"rect[3]"],[a_.Msg.MICROPYTHON_HUSKYLENS_X_CENTERED+a_.Msg.MIXLY_POSITION_XY,"xc"],[a_.Msg.MICROPYTHON_HUSKYLENS_Y_CENTERED+a_.Msg.MIXLY_POSITION_XY,"yc"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_AI_SENSOR_TAG_TOOLTIP)}},ia={init:function(){this.setColour(zI),this.appendValueInput("SUB"),this.appendDummyInput().appendField(a_.Msg.MIXLY_TAG_RECOGNTITION),this.appendDummyInput().setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.PROCEDURES_DEFRETURN_RETURN+"[tag]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_AI_SENSOR_TAG_RECOGNTITION_TOOLTIP)}},Ta={init:function(){this.setColour(zI),this.appendValueInput("VAR").appendField(a_.Msg.MIXLY_LINE+a_.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(a_.Msg.MIXLY_ALL_CODE_ANALYSIS),this.appendDummyInput().appendField(a_.Msg.MIXLY_GET).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_LINE_ANGLE,"info1"],[a_.Msg.MIXLY_POSITION_XY+"-x1x2y1y2","rect"],["x1"+a_.Msg.MIXLY_POSITION_XY,"rect[0]"],["x2"+a_.Msg.MIXLY_POSITION_XY,"rect[1]"],["y1"+a_.Msg.MIXLY_POSITION_XY,"rect[2]"],["y2"+a_.Msg.MIXLY_POSITION_XY,"rect[3]"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_AI_SENSOR_LINE_TOOLTIP)}},Ea={init:function(){this.setColour(zI),this.appendValueInput("SUB"),this.appendDummyInput().appendField(a_.Msg.MIXLY_LINE_RECOGNTITION),this.appendValueInput("VAR1").appendField(a_.Msg.MIXLY_ESP32_THRESHOLD).setCheck(Number).setAlign(a_.inputs.Align.RIGHT),this.appendValueInput("VAR2").appendField(a_.Msg.MIXLY_LINE_RECOGNTITION_ANGLE).setCheck(Number).setAlign(a_.inputs.Align.RIGHT),this.appendValueInput("VAR3").appendField(a_.Msg.MIXLY_LINE_RECOGNTITION_SLOPE).setCheck(Number).setAlign(a_.inputs.Align.RIGHT),this.appendDummyInput().setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.PROCEDURES_DEFRETURN_RETURN+"[line]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_AI_SENSOR_LINE_RECOGNTITION_TOOLTIP)}},na={init:function(){this.setColour(zI),this.appendValueInput("VAR").appendField(a_.Msg.MIXLY_CIRCLE+a_.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(a_.Msg.MIXLY_ALL_CODE_ANALYSIS),this.appendDummyInput().appendField(a_.Msg.MIXLY_GET).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_CIRCLE_AREA,"info1"],[a_.Msg.MIXLY_POSITION_XY+"-xywh","rect"],["x"+a_.Msg.MIXLY_POSITION_XY,"rect[0]"],["y"+a_.Msg.MIXLY_POSITION_XY,"rect[1]"],["w"+a_.Msg.MIXLY_POSITION_XY,"rect[2]"],["h"+a_.Msg.MIXLY_POSITION_XY,"rect[3]"],[a_.Msg.MICROPYTHON_HUSKYLENS_X_CENTERED+a_.Msg.MIXLY_POSITION_XY,"xc"],[a_.Msg.MICROPYTHON_HUSKYLENS_Y_CENTERED+a_.Msg.MIXLY_POSITION_XY,"yc"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_AI_SENSOR_CIRCLE_TOOLTIP)}},oa={init:function(){this.setColour(zI),this.appendValueInput("SUB"),this.appendDummyInput().appendField(a_.Msg.MIXLY_CIRCLE_RECOGNTITION),this.appendValueInput("VAR1").appendField(a_.Msg.MIXLY_ESP32_THRESHOLD).setCheck(Number).setAlign(a_.inputs.Align.RIGHT),this.appendValueInput("VAR2").appendField(a_.Msg.MIXLY_CIRCLE_RECOGNTITION_MIN).setCheck(Number).setAlign(a_.inputs.Align.RIGHT),this.appendValueInput("VAR3").appendField(a_.Msg.MIXLY_CIRCLE_RECOGNTITION_MAX).setCheck(Number).setAlign(a_.inputs.Align.RIGHT),this.appendDummyInput().setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.PROCEDURES_DEFRETURN_RETURN+"[circle]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_AI_SENSOR_CIRCLE_RECOGNTITION_TOOLTIP)}},sa={init:function(){this.setColour(zI),this.appendValueInput("VAR").appendField(a_.Msg.MIXLY_RECT+a_.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(a_.Msg.MIXLY_ALL_CODE_ANALYSIS),this.appendDummyInput().appendField(a_.Msg.MIXLY_GET).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_CIRCLE_AREA,"info1"],[a_.Msg.MIXLY_POSITION_XY+"-xywh","rect"],["x"+a_.Msg.MIXLY_POSITION_XY,"rect[0]"],["y"+a_.Msg.MIXLY_POSITION_XY,"rect[1]"],["w"+a_.Msg.MIXLY_POSITION_XY,"rect[2]"],["h"+a_.Msg.MIXLY_POSITION_XY,"rect[3]"],[a_.Msg.MICROPYTHON_HUSKYLENS_X_CENTERED+a_.Msg.MIXLY_POSITION_XY,"xc"],[a_.Msg.MICROPYTHON_HUSKYLENS_Y_CENTERED+a_.Msg.MIXLY_POSITION_XY,"yc"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_AI_SENSOR_RECT_TOOLTIP)}},Oa={init:function(){this.setColour(zI),this.appendValueInput("SUB"),this.appendDummyInput().appendField(a_.Msg.MIXLY_RECT_RECOGNTITION),this.appendValueInput("VAR1").appendField(a_.Msg.MIXLY_ESP32_THRESHOLD).setCheck(Number).setAlign(a_.inputs.Align.RIGHT),this.appendDummyInput().setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.PROCEDURES_DEFRETURN_RETURN+"[rect]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_AI_SENSOR_COLOR_RECOGNTITION_TOOLTIP)}},Ia={init:function(){this.setColour(zI),this.appendValueInput("VAR").appendField(a_.Msg.HTML_COLOUR+a_.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(a_.Msg.MIXLY_COLOR_ANALYSIS),this.appendDummyInput().appendField(a_.Msg.MIXLY_GET).appendField(new a_.FieldDropdown([["RGB"+a_.Msg.HTML_COLOUR,"[0]"],["LAB"+a_.Msg.MIXLY_COLOR_LAB,"[1]"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_AI_SENSOR_COLOR_TOOLTIP)}},aa={init:function(){this.setColour(zI),this.appendValueInput("SUB"),this.appendDummyInput().appendField(a_.Msg.MIXLY_COLOR_RECOGNTITION),this.appendDummyInput().setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.PROCEDURES_DEFRETURN_RETURN+"color"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_AI_SENSOR_COLOR_RECOGNTITION_TOOLTIP)}},pa={init:function(){this.setColour(zI),this.appendValueInput("VAR").appendField(a_.Msg.MIXLY_COLOR_CHASE+a_.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(a_.Msg.MIXLY_COLOR_CHASE_ANALYSIS),this.appendDummyInput().appendField(a_.Msg.MIXLY_GET).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_CIRCLE_AREA,"info1"],[a_.Msg.MIXLY_POSITION_XY+"-xywh","rect"],["x"+a_.Msg.MIXLY_POSITION_XY,"rect[0]"],["y"+a_.Msg.MIXLY_POSITION_XY,"rect[1]"],["w"+a_.Msg.MIXLY_POSITION_XY,"rect[2]"],["h"+a_.Msg.MIXLY_POSITION_XY,"rect[3]"],[a_.Msg.MICROPYTHON_HUSKYLENS_X_CENTERED+a_.Msg.MIXLY_POSITION_XY,"xc"],[a_.Msg.MICROPYTHON_HUSKYLENS_Y_CENTERED+a_.Msg.MIXLY_POSITION_XY,"yc"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_AI_SENSOR_CIRCLE_TOOLTIP)}},Ma={init:function(){this.setColour(zI),this.appendValueInput("SUB"),this.appendDummyInput().appendField(a_.Msg.MIXLY_COLOR_CHASE),this.appendValueInput("VAR1").appendField("LAB"+a_.Msg.MIXLY_COLOR_LAB).setAlign(a_.inputs.Align.RIGHT),this.appendValueInput("VAR2").appendField(a_.Msg.MIXLY_ESP32_THRESHOLD).setCheck(Number).setAlign(a_.inputs.Align.RIGHT),this.appendValueInput("VAR3").appendField(a_.Msg.MIXLY_COLOR_CHASE_MERGE).setCheck(Number).setAlign(a_.inputs.Align.RIGHT),this.appendDummyInput().setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.PROCEDURES_DEFRETURN_RETURN+"[colors]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_AI_SENSOR_CIRCLE_RECOGNTITION_TOOLTIP)}},La={init:function(){this.setColour(zI),this.appendValueInput("SUB"),this.appendDummyInput().appendField(a_.Msg.MIXLY_LOCAL_TRAIN),this.appendValueInput("VAR1").appendField(a_.Msg.MIXLY_OBJECT_LIST).setAlign(a_.inputs.Align.RIGHT),this.appendValueInput("VAR2").appendField(a_.Msg.MICROPYTHON_HUSKYLENS_SAVE_AS+a_.Msg.MIXLY_MODEL_NAME).setAlign(a_.inputs.Align.RIGHT),this.appendValueInput("VAR3").appendField(a_.Msg.MIXLY_TRAIN_TIME).setAlign(a_.inputs.Align.RIGHT),this.appendValueInput("VAR4").appendField(a_.Msg.MIXLY_AipNlp_Topic_Title).setAlign(a_.inputs.Align.RIGHT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_AI_SENSOR_LOCAL_TRAIN_TOOLTIP)}},Ra={init:function(){this.setColour(zI),this.appendValueInput("SUB"),this.appendDummyInput().appendField(a_.Msg.MIXLY_LOCAL_CLASS),this.appendValueInput("VAR1").appendField(a_.Msg.MIXLY_OBJECT_LIST).setAlign(a_.inputs.Align.RIGHT),this.appendValueInput("VAR2").appendField(a_.Msg.MIXLY_MODEL_NAME).setAlign(a_.inputs.Align.RIGHT),this.appendValueInput("VAR4").appendField(a_.Msg.MIXLY_AipNlp_Topic_Title).setAlign(a_.inputs.Align.RIGHT),this.appendDummyInput().setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.PROCEDURES_DEFRETURN_RETURN+"[objects]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_AI_SENSOR_MODEL_NAME_TOOLTIP)}},ra={init:function(){this.setColour(zI),this.appendValueInput("VAR").appendField(a_.Msg.MIXLY_LOCAL_CLASS+a_.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(a_.Msg.MIXLY_COLOR_CHASE_ANALYSIS),this.appendDummyInput().appendField(a_.Msg.MIXLY_GET).appendField(new a_.FieldDropdown([["ID","info1"],[a_.Msg.MIXLY_CONFIDENCE_DEGREE,"info2"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_AI_SENSOR_LOCAL_CLASS_TOOLTIP)}},Sa={init:function(){this.setColour(zI),this.appendValueInput("SUB"),this.appendDummyInput().appendField(a_.Msg.MIXLY_MUSIC_RECORD),this.appendValueInput("VAR1").appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH).setAlign(a_.inputs.Align.RIGHT),this.appendValueInput("VAR2").appendField(a_.Msg.MIXPY_AI_AUDIO_TIME).setAlign(a_.inputs.Align.RIGHT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_AI_SENSOR_MUSIC_RECORD_TOOLTIP)}},la={init:function(){this.setColour(zI),this.appendValueInput("SUB"),this.appendDummyInput().appendField(a_.Msg.MIXLY_MUSIC_PLAY),this.appendValueInput("VAR1").appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH).setAlign(a_.inputs.Align.RIGHT),this.appendValueInput("VAR2").appendField(a_.Msg.MIXLY_MP3_VOL).setAlign(a_.inputs.Align.RIGHT),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Aa={init:function(){this.setColour(zI),this.appendValueInput("SUB"),this.appendDummyInput().appendField(a_.Msg.MIXLY_YOLO_RECOGNIZE),this.appendValueInput("VAR1").appendField(a_.Msg.MIXLY_ANCHOR).setAlign(a_.inputs.Align.RIGHT),this.appendValueInput("VAR2").appendField(a_.Msg.MIXLY_MODEL_PATH).setAlign(a_.inputs.Align.RIGHT),this.appendValueInput("VAR4").appendField(a_.Msg.MIXLY_AipNlp_Topic_Title).setAlign(a_.inputs.Align.RIGHT),this.appendDummyInput().setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.PROCEDURES_DEFRETURN_RETURN+"[objects]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_AI_SENSOR_YOLO_RECOGNIZE_TOOLTIP)}},Pa={init:function(){this.setColour(zI),this.appendValueInput("VAR").appendField(a_.Msg.MIXLY_YOLO_RECOGNIZE+a_.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(a_.Msg.MIXLY_COLOR_CHASE_ANALYSIS),this.appendDummyInput().appendField(a_.Msg.MIXLY_GET).appendField(new a_.FieldDropdown([["ID","info1"],[a_.Msg.MIXLY_CONFIDENCE_DEGREE,"info2"],[a_.Msg.MIXLY_POSITION_XY+"-xywh","rect"],["x"+a_.Msg.MIXLY_POSITION_XY,"rect[0]"],["y"+a_.Msg.MIXLY_POSITION_XY,"rect[1]"],["w"+a_.Msg.MIXLY_POSITION_XY,"rect[2]"],["h"+a_.Msg.MIXLY_POSITION_XY,"rect[3]"],[a_.Msg.MICROPYTHON_HUSKYLENS_X_CENTERED+a_.Msg.MIXLY_POSITION_XY,"xc"],[a_.Msg.MICROPYTHON_HUSKYLENS_Y_CENTERED+a_.Msg.MIXLY_POSITION_XY,"yc"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_AI_SENSOR_YOLO_RECOGNIZE_RESULT_TOOLTIP)}},Na={init:function(){this.setColour(zI),this.appendValueInput("SUB"),this.appendDummyInput().appendField(a_.Msg.MIXLY_AipSpeech_asr),this.appendValueInput("VAR1").appendField(a_.Msg.MIXLY_AI_SENSOR_ASR_RECOGNISE_CORPUS).setAlign(a_.inputs.Align.RIGHT),this.appendValueInput("VAR2").appendField(a_.Msg.MIXLY_ESP32_THRESHOLD).setAlign(a_.inputs.Align.RIGHT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_AI_SENSOR_ASR_RECOGNISE_TOOLTIP)}},da={init:function(){this.setColour(zI),this.appendValueInput("VAR").appendField(a_.Msg.MIXLY_LICENSEPLATE+a_.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(a_.Msg.MIXLY_ALL_CODE_ANALYSIS),this.appendDummyInput().appendField(a_.Msg.MIXLY_GET).appendField(new a_.FieldDropdown([["ID","info1"],[a_.Msg.MIXLY_POSITION_XY+"-xywh","rect"],["x"+a_.Msg.MIXLY_POSITION_XY,"rect[0]"],["y"+a_.Msg.MIXLY_POSITION_XY,"rect[1]"],["w"+a_.Msg.MIXLY_POSITION_XY,"rect[2]"],["h"+a_.Msg.MIXLY_POSITION_XY,"rect[3]"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_AI_SENSOR_LICENSEPLATE_TOOLTIP)}},ha={init:function(){this.setColour(zI),this.appendValueInput("SUB"),this.appendDummyInput().appendField(a_.Msg.MIXLY_AipOcr_licensePlate),this.appendDummyInput().setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.PROCEDURES_DEFRETURN_RETURN+"[licensePlate]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_AI_SENSOR_LICENSEPLATE_RECOGNTITION_TOOLTIP)}},ua={init:function(){this.setColour(zI),this.appendValueInput("VAR").appendField(a_.Msg.MIXLY_FACE+a_.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(a_.Msg.MIXLY_ALL_CODE_ANALYSIS),this.appendDummyInput().appendField(a_.Msg.MIXLY_GET).appendField(new a_.FieldDropdown([["ID","info1"],[a_.Msg.MIXLY_CONFIDENCE_DEGREE,"info2"],[a_.Msg.MIXLY_POSITION_XY+"-xywh","rect"],["x"+a_.Msg.MIXLY_POSITION_XY,"rect[0]"],["y"+a_.Msg.MIXLY_POSITION_XY,"rect[1]"],["w"+a_.Msg.MIXLY_POSITION_XY,"rect[2]"],["h"+a_.Msg.MIXLY_POSITION_XY,"rect[3]"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_AI_SENSOR_FACE_TOOLTIP)}},ma={init:function(){this.setColour(zI),this.appendValueInput("SUB"),this.appendDummyInput().appendField(a_.Msg.MIXLY_AipFace),this.appendDummyInput().setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.PROCEDURES_DEFRETURN_RETURN+"[face]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_AI_SENSOR_BAR_FACE_CLASSIFIER_TOOLTIP)}},Ca={init:function(){this.setColour(zI),this.appendValueInput("VAR").appendField(a_.Msg.MIXLY_20OBJECTS+a_.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(a_.Msg.MIXLY_ALL_CODE_ANALYSIS),this.appendDummyInput().appendField(a_.Msg.MIXLY_GET).appendField(new a_.FieldDropdown([["ID","info1"],[a_.Msg.MIXLY_CONFIDENCE_DEGREE,"info2"],[a_.Msg.MIXLY_POSITION_XY+"-xywh","rect"],["x"+a_.Msg.MIXLY_POSITION_XY,"rect[0]"],["y"+a_.Msg.MIXLY_POSITION_XY,"rect[1]"],["w"+a_.Msg.MIXLY_POSITION_XY,"rect[2]"],["h"+a_.Msg.MIXLY_POSITION_XY,"rect[3]"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_AI_SENSOR_20OBJECTS_TOOLTIP)}},ca={init:function(){this.setColour(zI),this.appendValueInput("SUB"),this.appendDummyInput().appendField(a_.Msg.MIXLY_FIND_20OBJECTS),this.appendDummyInput().setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.PROCEDURES_DEFRETURN_RETURN+"[20objects]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_AI_SENSOR_BAR_FIND_20OBJECTS_TOOLTIP)}},Ha={init:function(){this.setColour(205),this.appendDummyInput("").appendField(a_.Msg.MIXLY_SETUP).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_AipSpeech_asr,"ASR"],[a_.Msg.MIXLY_AI_UNIT,"UNIT"]]),"CTYPE"),this.appendValueInput("SUB").appendField(a_.Msg.MIXLY_Client).setAlign(a_.inputs.Align.RIGHT),this.appendValueInput("API_KEY").appendField("API_KEY").setAlign(a_.inputs.Align.RIGHT),this.appendValueInput("SECRET_KEY").appendField("SECRET_KEY").setAlign(a_.inputs.Align.RIGHT),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Da={init:function(){this.setColour(205),this.appendValueInput("SUB").appendField(a_.Msg.MIXLY_AI_UNIT).appendField(a_.Msg.MIXLY_Client).setAlign(a_.inputs.Align.RIGHT),this.appendValueInput("ID").appendField("ID").setAlign(a_.inputs.Align.RIGHT),this.appendValueInput("STR").appendField(a_.Msg.OLED_STRING).setAlign(a_.inputs.Align.RIGHT),this.setInputsInline(!0),this.setOutput(!0)}},Ya={init:function(){this.setColour(205),this.appendValueInput("SUB").appendField(a_.Msg.MIXLY_AipSpeech_asr).appendField(a_.Msg.MIXLY_Client).setAlign(a_.inputs.Align.RIGHT),this.appendValueInput("FILE").appendField(a_.Msg.MIXPY_AI_AUDIO_TIME).setAlign(a_.inputs.Align.RIGHT),this.appendDummyInput("").appendField(a_.Msg.MIXLY_LANGUAGE).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_AI_LANGUAGE_CHINESE,"1537"],[a_.Msg.MIXLY_AI_LANGUAGE_ENGLISH,"1737"],[a_.Msg.MIXLY_AI_LANGUAGE_CANTONESE,"1637"]]),"LANGUAGE"),this.setInputsInline(!0),this.setOutput(!0)}},Ua="#2FAD7A",Ba={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:Ua,helpUrl:a_.Msg.MPYTHON_BLYNK_TERMINAL_WIDGET_VPIN_HELPURL,tooltip:a_.Msg.MPYTHON_BLYNK_TERMINAL_WIDGET_VPIN_TOOLTIP,message0:a_.Msg.MPYTHON_BLYNK_TERMINAL_WIDGET_VPIN_MESSAGE0,args0:[{check:Number,type:"input_value",name:"virtual_pin"}]})}},ga={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:Ua,helpUrl:a_.Msg.MPYTHON_BLYNK_SYNC_VIRTUAL_HELPURL,tooltip:a_.Msg.MPYTHON_BLYNK_SYNC_VIRTUAL_TOOLTIP,message0:a_.Msg.MPYTHON_BLYNK_SYNC_VIRTUAL_MESSAGE0,args0:[{check:Number,type:"input_value",name:"virtual_pin"}]})}},Ga={init:function(){this.jsonInit({inputsInline:!0,colour:Ua,helpUrl:a_.Msg.MPYTHON_BLYNK_ON_DISCONNECTED_HELPURL,tooltip:a_.Msg.MPYTHON_BLYNK_ON_DISCONNECTED_TOOLTIP,message0:a_.Msg.MPYTHON_BLYNK_ON_DISCONNECTED_MESSAGE0}),this.appendStatementInput("DO").appendField(a_.CONTROLS_REPEAT_INPUT_DO)}},Fa={init:function(){this.jsonInit({inputsInline:!0,colour:Ua,helpUrl:a_.Msg.MPYTHON_BLYNK_ON_CONNECTED_HELPURL,tooltip:a_.Msg.MPYTHON_BLYNK_ON_CONNECTED_TOOLTIP,message0:a_.Msg.MPYTHON_BLYNK_ON_CONNECTED_MESSAGE0}),this.appendStatementInput("DO").appendField(a_.CONTROLS_REPEAT_INPUT_DO)}},ya={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:Ua,helpUrl:a_.Msg.MPYTHON_BLYNKTIMER_RUN_HELPURL,tooltip:a_.Msg.MPYTHON_BLYNKTIMER_RUN_TOOLTIP,message0:a_.Msg.MPYTHON_BLYNKTIMER_RUN_MESSAGE0})}},fa={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:Ua,helpUrl:a_.Msg.MPYTHON_BLYNK_RUN_HELPURL,tooltip:a_.Msg.MPYTHON_BLYNK_RUN_TOOLTIP,message0:a_.Msg.MPYTHON_BLYNK_RUN_MESSAGE0})}},ba={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:Ua,helpUrl:a_.Msg.MPYTHON_BLYNK_APP_NOTIFY_HELPURL,tooltip:a_.Msg.MPYTHON_BLYNK_APP_NOTIFY_TOOLTIP,message0:a_.Msg.MPYTHON_BLYNK_APP_NOTIFY_MESSAGE0,args0:[{check:String,type:"input_value",name:"notification"}]})}},xa={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:Ua,helpUrl:a_.Msg.MPYTHON_BLYNK_STOP_TIMERS_HELPURL,tooltip:a_.Msg.MPYTHON_BLYNKTIMER_TOOLTIP,message0:a_.Msg.MPYTHON_BLYNK_STOP_TIMERS_MESSAGE0,args0:[{check:Number,type:"input_value",name:"timer_num"}]})}},va={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:Ua,helpUrl:a_.Msg.MPYTHON_BLYNK_SET_PROPERTY_HELPURL,tooltip:a_.Msg.MPYTHON_BLYNK_SET_PROPERTY_TOOLTIP,message0:a_.Msg.MPYTHON_BLYNK_SET_PROPERTY_MESSAGE0,args0:[{check:String,type:"input_value",name:"attribute_name"},{type:"input_value",name:"attribute_value"}]})}},Xa={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:Ua,helpUrl:a_.Msg.MPYTHON_BLYNK_EMAIL_HELPURL,tooltip:a_.Msg.MPYTHON_BLYNK_EMAIL_TOOLTIP,message0:a_.Msg.MPYTHON_BLYNK_EMAIL_MESSAGE0,args0:[{check:String,type:"input_value",name:"TargetEmail"},{check:String,type:"input_value",name:"subject"},{check:String,type:"input_value",name:"body"}]})}},Va={init:function(){this.jsonInit({inputsInline:!0,output:null,colour:Ua,helpUrl:a_.Msg.MPYTHON_BLYNK_GET_TIMERS_HELPURL,tooltip:a_.Msg.MPYTHON_BLYNK_GET_TIMERS_TOOLTIP,message0:a_.Msg.MPYTHON_BLYNK_GET_TIMERS_MESSAGE0})}},ka={init:function(){this.jsonInit({message0:a_.Msg.MPYTHON_BLYNKTIMER_MESSAGE0,colour:Ua,helpUrl:a_.Msg.MPYTHON_BLYNKTIMER_HELPURL,tooltip:a_.Msg.MPYTHON_BLYNKTIMER_TOOLTIP,args0:[{check:Number,type:"input_value",name:"Num"},{options:[[a_.Msg.MIXLY_PYTHON_PERIODIC,"False"],[a_.Msg.MIXLY_PYTHON_ONE_SHOT,"True"]],type:"field_dropdown",name:"Timer_mode"},{check:Number,type:"input_value",name:"period"}]}),this.appendStatementInput("DO").appendField(a_.CONTROLS_REPEAT_INPUT_DO)}},wa={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:Ua,helpUrl:a_.Msg.MPYTHON_BLYNK_SENSOR_DATA_TO_APP_HELPURL,tooltip:a_.Msg.MPYTHON_BLYNK_SENSOR_DATA_TO_APP_TOOLTIP,message0:a_.Msg.MPYTHON_BLYNK_SENSOR_DATA_TO_APP_MESSAGE0,args0:[{type:"input_value",name:"sensor_data"},{check:Number,type:"input_value",name:"virtual_pin"}]})}},Wa={init:function(){this.jsonInit({inputsInline:!0,colour:Ua,helpUrl:a_.Msg.MPYTHON_BLYNK_APP_DATA_HELPURL,tooltip:a_.Msg.MPYTHON_BLYNK_SENSOR_DATA_TO_APP_TOOLTIP,message0:a_.Msg.MPYTHON_BLYNK_APP_DATA_MESSAGE0,args0:[{check:Number,type:"input_value",name:"virtual_pin"},{type:"input_value",name:"virtual_pin_val"}]}),this.appendStatementInput("DO").appendField(a_.CONTROLS_REPEAT_INPUT_DO)}},Ka={init:function(){this.jsonInit({nextStatement:null,previousStatement:null,colour:Ua,helpUrl:a_.Msg.MPYTHON_BLYNK_SETUP_HELPURL,tooltip:a_.Msg.MPYTHON_BLYNK_SETUP_TOOLTIP,message0:a_.Msg.MPYTHON_BLYNK_SETUP_MESSAGE0,args0:[{type:"input_dummy"},{check:String,type:"input_value",name:"server"},{check:Number,type:"input_value",name:"port"},{check:String,type:"input_value",name:"auth"}]})}},za=140,Za={init:function(){this.setColour(za),this.appendDummyInput().appendField(a_.Msg.MIXLY_LED_ON_BOARD+"I2C"),this.setOutput(!0),this.setInputsInline(!0)}},Qa={init:function(){this.setColour(za),this.appendDummyInput().appendField(a_.Msg.MIXLY_LED_ON_BOARD+"SPI"),this.setOutput(!0),this.setInputsInline(!0)}},Ja={init:function(){this.setColour(za),this.appendValueInput("SUB").appendField("I2C "+a_.Msg.MIXLY_SETUP).setCheck("var"),this.appendValueInput("TX",Number).appendField("SCL").setCheck(Number).setAlign(a_.inputs.Align.RIGHT),this.appendValueInput("RX",Number).appendField("SDA").setCheck(Number).setAlign(a_.inputs.Align.RIGHT),this.appendValueInput("freq").setCheck(Number).appendField(a_.Msg.MIXLY_FREQUENCY).setAlign(a_.inputs.Align.RIGHT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_I2C_INIT)}},qa={init:function(){this.setColour(za),this.appendValueInput("VAR").appendField("I2C").setCheck("var"),this.appendValueInput("address").setCheck(Number).appendField(a_.Msg.MIXLY_ESP32_RNUMBER),this.appendValueInput("data").setCheck(Number).appendField(a_.Msg.LANG_MATH_BYTE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_MICROBIT_JS_I2C_READ)}},ja={init:function(){this.setColour(za),this.appendValueInput("VAR").appendField("I2C").setCheck("var"),this.appendValueInput("address").setCheck(Number).appendField(a_.Msg.MIXLY_ESP32_WNUMBER),this.appendValueInput("data").setCheck(Number).appendField(a_.Msg.MIXLY_MICROBIT_JS_I2C_VALUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_MICROBIT_JS_I2C_WRITE)}},$a={init:function(){this.setColour(za),this.appendValueInput("VAR").appendField("I2C").setCheck("var"),this.appendDummyInput().appendField(a_.Msg.MIXLY_ESP32_I2C_SCAN1+a_.Msg.MIXLY_ESP32_I2C_SCAN2),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_I2C_SCAN)}},_p={init:function(){this.setColour(za),this.appendValueInput("VAR").setCheck("var").appendField(a_.Msg.MIXLY_ESP32_SPI_INIT),this.appendValueInput("freq").setCheck(Number).appendField(a_.Msg.MIXLY_SERIAL_BEGIN),this.appendValueInput("sck").setCheck(Number).appendField("SCK"),this.appendValueInput("mosi").setCheck(Number).appendField("MOSI"),this.appendValueInput("miso").setCheck(Number).appendField("MISO"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_SPI_INIT_TOOLTIP)}},tp={init:function(){this.setColour(za),this.appendValueInput("VAR").setCheck("var").appendField("SPI"),this.appendValueInput("data").setCheck(Number).appendField(a_.Msg.MIXLY_SETTING+a_.Msg.MIXLY_SERIAL_BEGIN),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_SPI_SET)}},ep={init:function(){this.setColour(za),this.appendValueInput("VAR").setCheck("var").appendField("SPI"),this.appendValueInput("data").setCheck(Number).appendField(a_.Msg.MIXLY_ESP32_SET+a_.Msg.MIXLY_ESP32_SPI_BUFFER),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_SPI_BUFFER_SET)}},ip={init:function(){this.setColour(za),this.appendValueInput("VAR").setCheck("var").appendField("SPI"),this.appendValueInput("data").setCheck(Number).appendField(a_.Msg.MIXLY_SERIAL_READ),this.appendDummyInput("").appendField(a_.Msg.MIXLY_4DIGITDISPLAY_NOMBER2+a_.Msg.LANG_MATH_BYTE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_SPI_READ)}},Tp={init:function(){this.setColour(za),this.appendValueInput("VAR").setCheck("var").appendField("SPI"),this.appendValueInput("data").setCheck(Number).appendField(a_.Msg.MIXLY_SERIAL_READ),this.appendDummyInput("").appendField(a_.Msg.MIXLY_4DIGITDISPLAY_NOMBER2+a_.Msg.LANG_MATH_BYTE+" "+a_.Msg.MIXLY_ESP32_SPI_OUTPUT),this.appendValueInput("val").setCheck(Number),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_SPI_READ_OUTPUT)}},Ep={init:function(){this.setColour(za),this.appendValueInput("VAR").setCheck("var").appendField("SPI"),this.appendValueInput("data").setCheck("var").appendField(a_.Msg.MIXLY_SERIAL_READ+a_.Msg.MIXLY_ESP32_SPI_BUFFER),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_SPI_READINTO)}},np={init:function(){this.setColour(za),this.appendValueInput("VAR").setCheck("var").appendField("SPI"),this.appendValueInput("data").setCheck("var").appendField(a_.Msg.MIXLY_SERIAL_READ+a_.Msg.MIXLY_ESP32_SPI_BUFFER),this.appendValueInput("val").setCheck(Number).appendField(a_.Msg.MIXLY_ESP32_SPI_OUTPUT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_SPI_READINTO_OUTPUT)}},op={init:function(){this.setColour(za),this.appendValueInput("VAR").setCheck("var").appendField("SPI"),this.appendValueInput("data").setCheck(String).appendField(a_.Msg.MIXLY_ESP32_WRITE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_SPI_WRITE)}},sp={init:function(){this.setColour(za),this.appendValueInput("VAR").setCheck("var").appendField("SPI"),this.appendValueInput("data").setCheck(String).appendField(a_.Msg.MIXLY_ESP32_WRITE),this.appendValueInput("val").setCheck("var").appendField(a_.Msg.MIXLY_ESP32_BUFFER_READ),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_SPI_WRITE_READINTO)}},Op={init:function(){this.setColour(za),this.appendValueInput("VAR").setCheck("var").appendField("I2C"),this.appendDummyInput().appendField(a_.Msg.MIXLY_ESP32_READ),this.setOutput(!0,Number)}},Ip={init:function(){this.setColour(za),this.appendValueInput("VAR").setCheck("var").appendField("I2C"),this.appendDummyInput().appendField(a_.Msg.MIXLY_ESP32_READ+a_.Msg.MIXLY_ESP32_SUCCESS),this.setOutput(!0,Boolean),this.setTooltip(a_.Msg.MIXLY_ESP32_I2C_AVAILABLE)}},ap={init:function(){this.setColour(za),this.appendValueInput("PIN",Number).appendField(a_.Msg.MIXLY_I2C_SLAVE_ONRECEIVE).setCheck(Number),this.appendStatementInput("DO").appendField(a_.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0)}},pp={init:function(){this.setColour(za),this.appendValueInput("VAR").setCheck("var").appendField("OneWire "+a_.Msg.MIXLY_SETUP),this.appendValueInput("BUS").setCheck(Number).appendField(a_.Msg.MIXLY_PIN),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_OW_INIT)}},Mp={init:function(){this.setColour(za),this.appendValueInput("VAR").setCheck("var").appendField("OneWire"),this.appendDummyInput().appendField(a_.Msg.MIXLY_ESP32_ONEWIRE_SCAN),this.setOutput(!0,"List"),this.setTooltip(a_.Msg.MIXLY_ESP32_OW_SCAN)}},Lp={init:function(){this.setColour(za),this.appendValueInput("VAR").setCheck("var").appendField("OneWire"),this.appendDummyInput().appendField(a_.Msg.MIXLY_ESP32_ONEWIRE_READ),this.setOutput(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_OW_READ)}},Rp={init:function(){this.setColour(za),this.appendValueInput("VAR").setCheck("var").appendField("OneWire"),this.appendDummyInput("").appendField(a_.Msg.MIXLY_ESP32_WRITE).appendField(new a_.FieldDropdown([[a_.Msg.LANG_MATH_STRING,"write"],[a_.Msg.LANG_MATH_BYTE,"writebyte"]]),"op"),this.appendValueInput("byte").setCheck([Number,String]),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_OW_WRITE)}},rp={init:function(){this.setColour(za),this.appendValueInput("VAR").appendField("OneWire").setCheck("var"),this.appendValueInput("byte").setCheck(String).appendField(a_.Msg.LISTS_SET_INDEX_SET).appendField("ROM"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_OW_SELECT)}},Sp={init:function(){this.setColour(za),this.appendValueInput("VAR").appendField("OneWire").setCheck("var"),this.appendDummyInput().appendField(a_.Msg.blockpy_turtle_reset),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_OW_RESET)}},lp={init:function(){this.setColour(za),this.appendValueInput("PIN").appendField(a_.Msg.MIXLY_SETUP+a_.Msg.MIXLY_IR_RECEIVE),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROPYTHON_SOCKET_TYPE).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_IR_INPUT1,"8"],[a_.Msg.MIXLY_IR_INPUT2,"16"],[a_.Msg.MIXLY_IR_INPUT3,"0"],[a_.Msg.MIXLY_TR_SEND_RC,"RC5"]]),"type"),this.appendValueInput("SUB").appendField(a_.Msg.CONTROLS_REPEAT_INPUT_DO+a_.Msg.MIXLY_ESP32_ONENET_SUB),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Ap={init:function(){this.setColour(za),this.appendDummyInput().appendField(a_.Msg.MIXlY_RECV_FUN),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_IR_CMD_CODE,"0"],[a_.Msg.MIXLY_IR_ADDR_CODE,"1"],[a_.Msg.MIXLY_IR_RAW_CODE,"2"],[a_.Msg.MIXLY_IR_PULSE,"3"]]),"index"),this.setOutput(!0),this.setInputsInline(!0)}},Pp={init:function(){this.setColour(za),this.appendDummyInput().appendField(a_.Msg.MIXlY_RECV_FUN).appendField(new a_.FieldDropdown([[a_.Msg.MILY_PAUSE,"True"],[a_.Msg.MIXLY_RECOVER,"False"]]),"en"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Np={init:function(){this.setColour(za),this.appendDummyInput().appendField(a_.Msg.MIXlY_RECV_FUN),this.appendDummyInput().appendField(a_.Msg.MIXLY_IR_WHETHER_RECV),this.setOutput(!0),this.setInputsInline(!0)}},dp={init:function(){this.setColour(za),this.appendValueInput("time").appendField(a_.Msg.MIXlY_RECV_FUN).appendField(a_.Msg.MIXLY_IR_TIMEOUT),this.appendDummyInput().appendField(a_.Msg.MIXLY_MILLISECOND),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},hp={init:function(){this.setColour(za),this.appendValueInput("PIN").appendField(a_.Msg.MIXLY_SETUP+a_.Msg.MIXLY_IR_SEND).appendField(a_.Msg.MIXLY_PIN),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROPYTHON_SOCKET_TYPE).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_IR_SEND_samsung1,"False"],[a_.Msg.MIXLY_IR_SEND_samsung2,"True"],[a_.Msg.MIXLY_TR_SEND_RC,"RC5"]]),"type").appendField(a_.Msg.MIXLY_MICROBIT_JS_BLE_POWER),this.appendValueInput("power"),this.appendDummyInput().appendField(a_.Msg.MATH_QUYU_SYMBOL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},up={init:function(){this.setColour(za),this.appendDummyInput().appendField(a_.Msg.MIXLY_IR_SEND),this.appendValueInput("cmd").appendField(a_.Msg.MIXLY_IR_CMD_CODE),this.appendValueInput("addr").appendField(a_.Msg.MIXLY_IR_ADDR_CODE),this.appendValueInput("toggle").appendField(a_.Msg.MIXLY_CONTROL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_TRANSMIT_CONVEN_DATA)}},mp={init:function(){this.setColour(za),this.appendDummyInput().appendField(a_.Msg.MIXLY_IR_SEND),this.appendValueInput("LIST").appendField(a_.Msg.MIXLY_IR_PULSE).setAlign(a_.inputs.Align.RIGHT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Cp={init:function(){this.setColour(za),this.appendDummyInput().appendField(a_.Msg.MIXLY_IR_SEND),this.appendValueInput("raw").appendField(a_.Msg.MIXLY_IR_RAW_CODE).setAlign(a_.inputs.Align.RIGHT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},cp={init:function(){this.setColour(za),this.appendDummyInput().appendField(a_.Msg.MIXLY_IR_TRANSMIT_DONE),this.setOutput(!0),this.setInputsInline(!0)}},Hp={init:function(){this.setColour(za),this.appendValueInput("VAR").appendField(a_.Msg.MSG.catBLE).setCheck("var"),this.appendDummyInput().appendField(a_.Msg.MSG.catEthernet_init+a_.Msg.MIXLY_MICROBIT_PY_STORAGE_AS+a_.Msg.MSG.catBLE_UART),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Dp={init:function(){this.setColour(za),this.appendValueInput("VAR").appendField(a_.Msg.MSG.catBLE).setCheck("var"),this.appendDummyInput().appendField(a_.Msg.MSG.catEthernet_init+a_.Msg.MIXLY_MICROBIT_PY_STORAGE_AS+a_.Msg.MSG.catBLE_HID),this.appendValueInput("data").setCheck(String).appendField(a_.Msg.HTML_NAME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Yp={init:function(){this.setColour(za),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(a_.Msg.MIXLY_ESP32_ONEWIRE_SCAN+a_.Msg.MSG.catBLE),this.setOutput(!0),this.setInputsInline(!0)}},Up={init:function(){this.setColour(za),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(a_.Msg.MIXLY_MIXGO_ESPNOW_MAC),this.setOutput(!0),this.setInputsInline(!0)}},Bp={init:function(){this.setColour(za),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(a_.Msg.MIXLY_TEXT_JOIN+a_.Msg.MSG.catBLE).appendField(new a_.FieldDropdown([[a_.Msg.HTML_NAME,"name"],[a_.Msg.MIXLY_ETHERNET_MAC_ADDRESS,"mac"]]),"mode"),this.appendValueInput("data").setCheck(String),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},gp={init:function(){this.setColour(za),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(a_.Msg.MIXLY_ESP32_DISCONNECT_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Gp={init:function(){this.setColour(za),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(a_.Msg.MSG.catBLE+a_.Msg.MIXLY_SEND_DATA),this.appendValueInput("data").appendField(a_.Msg.HTML_BODY),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Fp={init:function(){this.setColour(za),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(a_.Msg.MSG.catBLE+a_.Msg.MIXLY_EMQX_IS_CONNECT),this.setOutput(!0),this.setInputsInline(!0)}},yp={init:function(){this.setColour(za),this.appendValueInput("VAR").setCheck("var"),this.appendValueInput("METHOD").appendField(a_.Msg.MIXLY_MIXGO_ESPNOW_RECV).appendField(a_.Msg.CONTROLS_REPEAT_INPUT_DO+a_.Msg.MIXLY_ESP32_ONENET_SUB),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},fp={init:function(){this.setColour(za),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(a_.Msg.MIXLY_MIXGO_ESPNOW_RECV),this.setOutput(!0),this.setInputsInline(!0)}},bp={init:function(){this.setColour(za),this.appendValueInput("VAR").setCheck("var").appendField(a_.Msg.MIXLY_BLE_HANDLE),this.appendValueInput("METHOD").appendField(a_.Msg.MIXLY_MIXGO_ESPNOW_RECV).appendField(a_.Msg.CONTROLS_REPEAT_INPUT_DO+a_.Msg.MIXLY_ESP32_ONENET_SUB),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},xp={init:function(){this.setColour(za),this.appendValueInput("VAR").setCheck("var").appendField("ESPnow "+a_.Msg.MIXLY_SETUP),this.appendValueInput("CHNL").setCheck(Number).appendField(a_.Msg.MIXLY_MP_ESPNOW_CHANNEL),this.appendDummyInput("").appendField(a_.Msg.MIXLY_TX_POWER).appendField(new a_.FieldDropdown([["20","20"],["18","18"],["16","16"],["15","15"],["14","14"],["13","13"],["11","11"],["8","8"],["7","7"],["5","5"],["2","2"]]),"op"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},vp={init:function(){this.setColour(za),this.appendValueInput("VAR").setCheck("var").appendField("ESPnow "+a_.Msg.MIXLY_SETUP),this.appendValueInput("CHNL").setCheck(Number).appendField(a_.Msg.MIXLY_MP_ESPNOW_CHANNEL),this.appendValueInput("DB").setCheck(Number).appendField(a_.Msg.MIXLY_MICROBIT_JS_BLE_POWER),this.appendDummyInput().appendField("db"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_MP_ESPNOW_INIT_TOOLTIP)}},Xp={init:function(){this.setColour(za),this.appendValueInput("VAR").setCheck("var").appendField("ESPnow "),this.appendDummyInput().appendField(a_.Msg.MIXLY_MIXGO_ESPNOW_MAC),this.setOutput(!0),this.setInputsInline(!0)}},Vp={init:function(){this.setColour(za),this.appendValueInput("VAR").setCheck("var").appendField("ESPnow "),this.appendDummyInput().appendField(a_.Msg.MIXLY_MIXGO_ESPNOW_INFO),this.setOutput(!0),this.setInputsInline(!0)}},kp={init:function(){this.setColour(za),this.appendValueInput("VAR").setCheck("var").appendField("ESPnow "),this.appendDummyInput().appendField(a_.Msg.MIXLY_MIXGO_ESPNOW_RECV),this.appendDummyInput().appendField(new a_.FieldDropdown([["("+a_.Msg.MIXLY_ETHERNET_MAC_ADDRESS+", "+a_.Msg.OLED_STRING+")",""],[a_.Msg.MIXLY_ETHERNET_MAC_ADDRESS,"[0]"],[a_.Msg.OLED_STRING,"[1]"]]),"mode"),this.setOutput(!0),this.setInputsInline(!0)}},wp={init:function(){this.setColour(za),this.appendValueInput("VAR").setCheck("var").appendField("ESPnow "),this.appendValueInput("mac").appendField(a_.Msg.MIXLY_MIXGO_ESPNOW_SEND_MAC),this.appendValueInput("content").appendField(a_.Msg.MIXLY_MIXGO_ESPNOW_SEND),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_MIXGO_ESPNOW_SEND_TOOLTIP)}},Wp={init:function(){this.setColour(za),this.appendValueInput("VAR").setCheck("var").appendField("ESPnow "),this.appendValueInput("METHOD").appendField(a_.Msg.MIXLY_EMQX_SET_METHOD),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Kp={init:function(){this.setColour(za),this.appendDummyInput().appendField(a_.Msg.MIXLY_MP_ESPNOW_RADIO_INIT),this.appendValueInput("CHNL").setCheck(Number),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},zp={init:function(){this.setColour(za),this.appendDummyInput().appendField(a_.Msg.MIXLY_SETTING+a_.Msg.MIXLY_MP_ESPNOW_RADIO+a_.Msg.MIXLY_TX_POWER).appendField(new a_.FieldDropdown([["20","20"],["18","18"],["16","16"],["15","15"],["14","14"],["13","13"],["11","11"],["8","8"],["7","7"],["5","5"],["2","2"]]),"op"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Zp={init:function(){this.setColour(za),this.appendDummyInput().appendField(a_.Msg.MIXLY_MP_ESPNOW_RADIO_INIT),this.appendValueInput("CHNL").setCheck(Number),this.appendValueInput("DB").setCheck(Number).appendField(a_.Msg.MIXLY_MICROBIT_JS_BLE_POWER),this.appendDummyInput().appendField("db"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_MP_ESPNOW_RADIO_INIT_TOOLTIP)}},Qp={init:function(){this.setColour(za),this.appendDummyInput().appendField(a_.Msg.MIXLY_MP_ESPNOW_RADIO),this.appendDummyInput().appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_ON,"True"],[a_.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_OFF,"False"]]),"on_off"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Jp={init:function(){this.setColour(za),this.appendDummyInput().appendField(a_.Msg.MIXLY_MP_ESPNOW_RADIO).appendField(a_.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.appendValueInput("send").setCheck(String),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_MIXGO_ESPNOW_SEND_TOOLTIP)}},qp={init:function(){this.setColour(za),this.appendDummyInput().appendField(a_.Msg.MIXLY_MP_ESPNOW_RADIO).appendField(a_.Msg.MIXLY_MIXGO_ESPNOW_RECV),this.setOutput(!0),this.setInputsInline(!0)}},jp={init:function(){this.setColour(za),this.appendDummyInput().appendField(a_.Msg.MIXLY_MP_ESPNOW_RADIO_RECEIVED_MSG),this.setOutput(!0),this.setInputsInline(!0)}},$p={init:function(){this.setColour(za),this.appendDummyInput().appendField(a_.Msg.MIXLY_MP_ESPNOW_RADIO_MSG_RECEIVED),this.appendStatementInput("DO").appendField(a_.Msg.MIXLY_DO),this.setPreviousStatement(!1),this.setNextStatement(!1)}},_M={init:function(){this.setColour(za),this.appendDummyInput().appendField(a_.Msg.MIXLY_MP_ESPNOW_RADIO_MSG_RECEIVED_CERTAIN).appendField('"').appendField(new a_.FieldTextInput("on"),"msg").appendField('"'),this.appendStatementInput("DO").appendField(a_.Msg.MIXLY_DO),this.setPreviousStatement(!1),this.setNextStatement(!1)}},tM={init:function(){this.setColour(za),this.appendDummyInput().appendField(a_.Msg.MIXLY_MP_ESPNOW_RADIO_MSG_RECEIVED),this.appendStatementInput("DO").appendField(a_.Msg.MIXLY_DO),this.setPreviousStatement(!1),this.setNextStatement(!1)}},eM={init:function(){this.setColour(za),this.appendDummyInput().appendField(a_.Msg.MIXLY_MP_ESPNOW_RADIO_MSG_RECEIVED_CERTAIN).appendField('"').appendField(new a_.FieldTextInput("on"),"msg").appendField('"'),this.appendStatementInput("DO").appendField(a_.Msg.MIXLY_DO),this.setPreviousStatement(!1),this.setNextStatement(!1)}},iM={init:function(){this.setColour(za),this.appendValueInput("SUB").appendField("Lora"+a_.Msg.MIXLY_SETUP).setCheck("var"),this.appendValueInput("SPISUB").appendField(a_.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("frequency").appendField(a_.Msg.MIXLY_FREQUENCY),this.appendValueInput("rate").appendField(a_.Msg.MIXLY_CODE_RATE),this.appendValueInput("factor").appendField(a_.Msg.MIXLY_SPREADING_FACTOR),this.appendValueInput("power").appendField(a_.Msg.MIXLY_TX_POWER),this.appendDummyInput().appendField(a_.Msg.MIXLY_SIGNAL_BANDWIDTH).appendField(new a_.FieldDropdown([["7800","7800"],["10400","10400"],["15600","15600"],["20800","20800"],["31250","31250"],["41700","41700"],["62500","62500"],["125000","125000"],["250000","250000"],["500000","500000"]]),"bandwidth"),this.setFieldValue("125000","bandwidth"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(a_.Msg.MIXLY_LORA_INIT_TOOLTIP)}},TM={init:function(){this.setColour(za),this.appendValueInput("VAR").setCheck("var").appendField("Lora "),this.appendDummyInput().appendField(a_.Msg.MIXLY_GET+a_.Msg.MIXLY_PACKAGE).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_SIGNAL_STRENGTH,"packet_rssi"],[a_.Msg.MIXLY_SIGNAL_NOISE_RATE,"packet_snr"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},EM={init:function(){this.setColour(za),this.appendValueInput("VAR").setCheck("var").appendField("Lora "),this.appendDummyInput().appendField(a_.Msg.MIXLY_SEND_DATA),this.appendValueInput("data").setCheck(String).appendField(a_.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},nM={init:function(){this.setColour(za),this.appendValueInput("VAR").setCheck("var").appendField("Lora "),this.appendDummyInput().appendField(a_.Msg.MIXLY_MIXGO_ESPNOW_RECV),this.setOutput(!0,String),this.setInputsInline(!0)}},oM={init:function(){this.setColour(za),this.appendValueInput("DOMAIN").appendField(a_.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(a_.Msg.blockpy_REQUESTS_GET).appendField(new a_.FieldTextInput("response"),"VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(a_.Msg.blockpy_REQUESTS_GET_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(_,t){a_.Names.equals(_,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},sM={init:function(){this.appendValueInput("VAL");var _=[[a_.Msg.blockpy_REQUESTS_GET_ATTR_HEADER,"headers"],[a_.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE,"status_code"],[a_.Msg.blockpy_REQUESTS_GET_ATTR_TEXT,"text"],[a_.Msg.blockpy_REQUESTS_GET_ATTR_COOKIES,"cookies"],[a_.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT,"content"]];this.setColour(za),this.appendDummyInput("").appendField(a_.Msg.MIXLY_MICROBIT_JS_GET).appendField(new a_.FieldDropdown(_),"ATTR"),this.setInputsInline(!0),this.setOutput(!0,String);var t=this;this.setTooltip((function(){var _=t.getFieldValue("DIR");return{clear:a_.Msg.MIXLY_TOOLTIP_TURTEL_CLEAR,reset:a_.Msg.MIXLY_TOOLTIP_TURTEL_RESET,home:a_.Msg.MIXLY_TOOLTIP_TURTEL_HOME}[_]}))}},OM={init:function(){this.appendValueInput("VAR").appendField(a_.Msg.DISPLAY_IMAGE_LET2).setCheck(String);this.setColour(za),this.appendDummyInput("").appendField(a_.Msg.blockpy_CONDUCT).appendField(new a_.FieldDropdown([["get","get"],["post","post"],["put","put"],["delete","delete"],["head","head"],["option","option"]]),"DIR"),this.appendDummyInput("").appendField(a_.Msg.blockpy_REQUESTS),this.setOutput(!0),this.setInputsInline(!0)}},IM=Ja,aM=qa,pM=ja,MM=$a,LM=_p,RM=tp,rM=ep,SM=ip,lM=Tp,AM=Ep,PM=np,NM=op,dM=sp,hM=Op,uM=Ip,mM=120;({init:function(){this.setColour(mM),this.appendValueInput("BOOL").setCheck([Boolean,Number]).appendField(a_.Msg.LANG_CONTROLS_WHILEUNTIL_TITLE_REPEAT).appendField(new a_.FieldDropdown(this.OPERATORS),"MODE"),this.appendStatementInput("DO").appendField(a_.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var _=this;this.setTooltip((function(){var t=_.getFieldValue("MODE");return{WHILE:a_.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_WHILE,UNTIL:a_.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL}[t]}))}}).OPERATORS=[[a_.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"WHILE"],[a_.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"UNTIL"]];({init:function(){this.setColour(mM);var _=new a_.FieldDropdown(this.OPERATORS);this.appendDummyInput().appendField(_,"FLOW").appendField(a_.Msg.LANG_CONTROLS_FLOW_STATEMENTS_INPUT_OFLOOP),this.setPreviousStatement(!0);var t=this;this.setTooltip((function(){var _=t.getFieldValue("FLOW");return{BREAK:a_.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK,CONTINUE:a_.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE}[_]}))},onchange:function(){if(this.workspace){var _=!1,t=this;do{if("controls_repeat"==t.type||"controls_for"==t.type||"controls_forEach"==t.type||"controls_repeat_ext"==t.type||"controls_whileUntil"==t.type){_=!0;break}t=t.getSurroundParent()}while(t);_?this.setWarningText(null):this.setWarningText(a_.Msg.LANG_CONTROLS_FLOW_STATEMENTS_WARNING)}}}).OPERATORS=[[a_.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK,"BREAK"],[a_.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE,"CONTINUE"]];const CM="5BA5A5",cM={init:function(){this.setColour(CM),this.appendValueInput("I2CSUB").appendField(a_.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(a_.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(a_.Msg.MIXLY_SETUP+a_.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new a_.FieldDropdown([["32x12 Matrix","32x12 Matrix"],["16x8 Matrix","16x8 Matrix"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},HM={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(CM),this.appendValueInput("data").setCheck([String,"esp32_image","List","Tuple"]).appendField(a_.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.OLED_BITMAP_OR_STRING)}},DM={init:function(){this.setColour(CM),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("data").setCheck(String).appendField(a_.Msg.OLED_DRAWSTR),this.appendValueInput("space").setCheck(Number).appendField(a_.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendDummyInput("").appendField(a_.Msg.TEXT_CENTER).appendField(new a_.FieldDropdown([[a_.Msg.MICROPYTHON_DISPLAY_YES,"True"],[a_.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"center"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY)}},YM={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(CM),this.appendValueInput("data").setCheck(String).appendField(a_.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},UM={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(CM),this.appendValueInput("data").setCheck(String).appendField(a_.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.appendValueInput("space").setCheck(Number).appendField(a_.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendValueInput("time").setCheck(Number).appendField(a_.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_SCROLL_IMAGE_OR_STRING_DELAY)}},BM={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(CM),this.appendValueInput("data").setCheck(String).appendField(a_.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},gM={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(CM),this.appendValueInput("data").setCheck(String).appendField(a_.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.appendValueInput("time").setCheck(Number).appendField(a_.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},GM={init:function(){var _=[[a_.Msg.MIXLY_UP,"shift_up"],[a_.Msg.MIXLY_DOWN,"shift_down"],[a_.Msg.MIXLY_LEFT,"shift_left"],[a_.Msg.MIXLY_RIGHT,"shift_right"]];this.appendValueInput("SUB").setCheck("var"),this.setColour(CM),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.appendDummyInput("").appendField(a_.Msg.DISPLAY_IMAGE_LET),this.appendDummyInput("").appendField(a_.Msg.DISPLAY_IMAGE_LET2).appendField(new a_.FieldDropdown(_),"OP"),this.appendValueInput("val").appendField(a_.Msg.DISPLAY_IMAGE_SHIFT).setCheck(Number),this.appendDummyInput("").appendField(a_.Msg.DISPLAY_IMAGE_UNIT);var t=this;this.setTooltip((function(){var _=t.getFieldValue("OP"),e=a_.Msg.DISPLAY_IMAGE_LET,i=a_.Msg.DISPLAY_IMAGE_LET2,T=a_.Msg.DISPLAY_IMAGE_LET3;return e+i+{up:a_.Msg.MIXLY_UP,down:a_.Msg.MIXLY_DOWN,left:a_.Msg.MIXLY_LEFT,right:a_.Msg.MIXLY_RIGHT}[_]+T}))}},FM={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(CM),this.appendValueInput("x").setCheck(Number).appendField(a_.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(a_.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendDummyInput().appendField(a_.Msg.MIXLY_ESP32_JS_MONITOR_GET_POINT),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(a_.Msg.MIXLY_ESP32_JS_MONITOR_BRIGHTNESS)}},yM={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(CM),this.appendValueInput("x").setCheck(Number).appendField(a_.Msg.MIXLY_ESP32_JS_MONITOR_SET_BRIGHTNESS).appendField(a_.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(a_.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendValueInput("STAT").setCheck([Number,Boolean]),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL)}},fM={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(CM),this.appendDummyInput().appendField(a_.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(a_.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS)}},bM={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(CM),this.appendValueInput("x").setCheck(Number).appendField(a_.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS+" 0.0-1.0")}},xM={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(CM),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_Clear_display),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_MICROBIT_Clear_display)}},vM={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(CM),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_Built_in_image1).appendField(new a_.FieldDropdown([["HEART","HEART"],["HEART_SMALL","HEART_SMALL"],["HAPPY","HAPPY"],["SAD","SAD"],["SMILE","SMILE"],["SILLY","SILLY"],["FABULOUS","FABULOUS"],["SURPRISED","SURPRISED"],["ASLEEP","ASLEEP"],["ANGRY","ANGRY"],["CONFUSED","CONFUSED"],["NO","NO"],["YES","YES"]]),"image"),this.setOutput(!0,"esp32_image"),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_MICROBIT_Clear_display)}},XM={init:function(){var _=[[a_.Msg.MICROBIT_DISPLAY_UNION,"add"],[a_.Msg.MICROBIT_DISPLAY_MINUS,"sub"]];this.appendValueInput("SUB").setCheck("var"),this.setColour(CM),this.setOutput(!0,"esp32_image"),this.appendValueInput("A").appendField(a_.Msg.MICROBIT_DISPLAY_MERGE_SHAPE),this.appendValueInput("B").appendField(new a_.FieldDropdown(_),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var _=t.getFieldValue("OP");return{"+":a_.Msg.MIXLY_MICROBIT_image_add,"-":a_.Msg.MIXLY_MICROBIT_image_reduce}[_]}))}},VM={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(CM),this.appendValueInput("A").setCheck("esp32_image").appendField(a_.Msg.MIXLY_MICROBIT_Invert_image1),this.setInputsInline(!0),this.setOutput(!0,"esp32_image")}},kM={init:function(){this.setColour(CM),this.appendValueInput("I2CSUB").appendField(a_.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(a_.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendValueInput("row").appendField(a_.Msg.MIXLY_SETUP+a_.Msg.LISTS_SET_INDEX_INPUT_TO+"OLED").setCheck(Number),this.appendValueInput("column").appendField("X").setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip()}},wM={init:function(){this.appendValueInput("VAR").appendField(a_.Msg.OLED).setCheck("var"),this.appendValueInput("Text_line1","String").setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.OLEDDISPLAY+a_.Msg.line1),this.appendValueInput("Text_line2","String").setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.line2),this.appendValueInput("Text_line3","String").setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.line3),this.appendValueInput("Text_line4","String").setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.line4),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(CM),this.setTooltip(a_.Msg.MIXLY_DF_LCD+a_.Msg.OLEDDISPLAY+a_.Msg.MIXLY_MICROBIT_TYPE_STRING)}},WM={init:function(){var _=[[a_.Msg.MIXLY_HEIGHT,"height"],[a_.Msg.MIXLY_WIDTH,"width"]];this.setColour(CM),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+a_.Msg.MIXLY_MICROBIT_IMAGE),this.appendValueInput("VAR").setCheck("esp32_image"),this.appendDummyInput("").appendField(new a_.FieldDropdown(_),"OP"),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var _=t.getFieldValue("OP");return a_.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+a_.Msg.MIXLY_MICROBIT_IMAGE+{height:a_.Msg.MIXLY_HEIGHT,width:a_.Msg.MIXLY_WIDTH}[_]}))}},KM={init:function(){var _=[[a_.Msg.MIXLY_4DIGITDISPLAY_ON,"1"],[a_.Msg.MIXLY_4DIGITDISPLAY_OFF,"0"]];this.setColour(CM),this.appendValueInput("VAR").appendField(a_.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(a_.Msg.MIXLY_RECT).appendField(new a_.FieldDropdown(_),"OP"),this.jsonInit({message0:a_.Msg.MIXLY_MICROBIT_SHOW_RECT,args0:[{check:Number,type:"input_value",name:"x"},{check:Number,type:"input_value",name:"y"},{check:Number,type:"input_value",name:"width"},{check:Number,type:"input_value",name:"height"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"fill"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(a_.Msg.MIXLY_OLED_RECT)}},zM={init:function(){this.setColour(CM),this.appendValueInput("VAR").appendField(a_.Msg.OLED).setCheck("var"),this.appendDummyInput().appendField(a_.Msg.MIXLY_DISPLAY_DRAW).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_DISPLAY_RLINE,"hline"],[a_.Msg.MIXLY_DISPLAY_VLINE,"vline"]]),"direction"),this.jsonInit({message0:a_.Msg.MIXLY_MICROBIT_SHOW_LINE,args0:[{check:Number,type:"input_value",name:"x"},{check:Number,type:"input_value",name:"y"},{check:Number,type:"input_value",name:"length"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(a_.Msg.MIXLY_OLED_LINE)}},ZM={init:function(){this.setColour(CM),this.appendValueInput("VAR").appendField(a_.Msg.OLED).setCheck("var"),this.jsonInit({message0:a_.Msg.MIXLY_MICROBIT_SHOW_LINE_ARBITRARILY,args0:[{check:Number,type:"input_value",name:"x1"},{check:Number,type:"input_value",name:"y1"},{check:Number,type:"input_value",name:"x2"},{check:Number,type:"input_value",name:"y2"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(a_.Msg.MIXLY_OLED_LINE_ARBIT)}},QM={init:function(){this.setColour(CM),this.appendDummyInput().appendField(a_.Msg.MIXLY_ESP32_MONITOR_GET_SCREEN_IMAGE),this.setInputsInline(!0),this.setOutput(!0,"esp32_image"),this.setTooltip(a_.Msg.MIXLY_ESP32_MONITOR_GET_SCREEN_IMAGE_TOOLTIP)}},JM={init:function(){this.setColour(CM),this.appendValueInput("x").setCheck(Number).appendField(a_.Msg.MIXLY_ESP32_JS_MONITOR_SET_BLINK_RATE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_JS_MONITOR_SET_BLINK_RATE)}},qM={init:function(){this.setColour(CM),this.appendDummyInput("").appendField(a_.Msg.MIXLY_RGB),this.appendValueInput("_LED_").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_RGB_NUM),this.appendDummyInput("").appendField(a_.Msg.LISTS_SET_INDEX_SET+a_.Msg.MIXLY_MICROBIT_PY_STORAGE_AS).appendField(new a_.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),"FIELDNAME"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(a_.Msg.MIXLY_RGB_NUM_R_G_B)}},jM={init:function(){this.setColour(CM),this.appendDummyInput("").appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_ESP32_ON,"ON"],[a_.Msg.MIXLY_ESP32_OFF,"OFF"]]),"ONOFF"),this.setOutput(!0,Boolean),this.setTooltip(a_.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW)}},$M={init:function(){this.setColour(CM),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_LCD_STAT_CLEAR,"0"],[a_.Msg.MIXLY_HANDBIT_DISLPAY_OLED_FILL,"1"]]),"key"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var _=this;this.setTooltip((function(){var t=_.getFieldValue("key"),e={0:a_.Msg.MIXLY_LCD_STAT_CLEAR,1:a_.Msg.MIXLY_HANDBIT_DISLPAY_OLED_FILL};return a_.Msg.MIXLY_DF_LCD+e[t]}))}},_L={init:function(){this.setColour(CM),this.setOutput(!0,"Tuple"),this.appendDummyInput().appendField(a_.Msg.MIXLY_ESP32_DISPLAY_ANIMATE).appendField(new a_.FieldDropdown([["ALL_CLOCKS","ALL_CLOCKS"],["ALL_ARROWS","ALL_ARROWS"]]),"ANIMATION")}},tL={init:function(){var _=[[a_.Msg.MIXLY_4DIGITDISPLAY_ON,"1"],[a_.Msg.MIXLY_4DIGITDISPLAY_OFF,"0"]];this.setColour(CM),this.appendValueInput("VAR").appendField(a_.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(a_.Msg.MIXLY_MIXPY_TURTLE_DRAW_CIRCLE).appendField(new a_.FieldDropdown(_),"OP"),this.jsonInit({message0:a_.Msg.MIXLY_HANBIT_SHOW_CIRCLE,args0:[{check:Number,type:"input_value",name:"x"},{check:Number,type:"input_value",name:"y"},{check:Number,type:"input_value",name:"r"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"fill"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(a_.Msg.MIXLY_MIXPY_TURTLE_DRAW_CIRCLE)}},eL={init:function(){var _=[[a_.Msg.MIXLY_4DIGITDISPLAY_ON,"1"],[a_.Msg.MIXLY_4DIGITDISPLAY_OFF,"0"]];this.setColour(CM),this.appendValueInput("VAR").appendField(a_.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(a_.Msg.MIXLY_DISPLAY_DRAW+a_.Msg.MIXLY_HANBIT_DRAW_TRIANGLE).appendField(new a_.FieldDropdown(_),"OP"),this.jsonInit({message0:a_.Msg.MIXLY_HANBIT_SHOW_triangle,args0:[{check:Number,type:"input_value",name:"x0"},{check:Number,type:"input_value",name:"y0"},{check:Number,type:"input_value",name:"x1"},{check:Number,type:"input_value",name:"y1"},{check:Number,type:"input_value",name:"x2"},{check:Number,type:"input_value",name:"y2"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"fill"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(a_.Msg.MIXLY_DISPLAY_DRAW+a_.Msg.MIXLY_HANBIT_DRAW_TRIANGLE)}},iL={init:function(){this.setColour("#555555"),this.appendDummyInput("").appendField(a_.Msg.MIXGO_ONBOARDDISPLAY_HELP),this.setInputsInline(!0),this.setTooltip("")}},TL={init:function(){this.setColour(CM),this.appendValueInput("VAR").appendField(a_.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(a_.Msg.OLED_BITMAP),this.appendValueInput("START_X",Number).appendField(a_.Msg.OLED_START_X).setCheck(Number),this.appendValueInput("START_Y",Number).appendField(a_.Msg.OLED_START_Y).setCheck(Number),this.appendValueInput("bitmap_name",String).appendField(a_.Msg.OLED_BITMAP_NAME),this.appendValueInput("WIDTH",Number).appendField(a_.Msg.MIXLY_WIDTH).setCheck(Number),this.appendValueInput("HEIGHT",Number).appendField(a_.Msg.MIXLY_HEIGHT).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(a_.Msg.OLED_SHOW_BMP_TOOLTIP)}},EL={init:function(){this.setColour(CM),this.appendValueInput("VAR").appendField(a_.Msg.OLED),this.appendDummyInput("").appendField(a_.Msg.OLED_DRAWPIXEL),this.appendValueInput("POS_X").appendField(a_.Msg.OLED_POSX),this.appendValueInput("POS_Y").appendField(a_.Msg.OLED_POSY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(a_.Msg.OLED_DRAW_PIXE_TOOLTIP)}},nL={init:function(){this.setColour(CM),this.appendValueInput("I2CSUB").appendField(a_.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(a_.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(a_.Msg.MIXLY_SETUP+a_.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new a_.FieldDropdown([["TM1650","TM1650"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);var _=this;this.setTooltip((function(){var t=_.getFieldValue("key");return a_.Msg.MIXLY_ESP32_SENSOR_USE_I2C_TOOLTIP+{TM1650:"TM1650"}[t]}))}},oL={init:function(){this.setColour(CM),this.appendDummyInput().appendField(a_.Msg.MIXLY_4DIGITDISPLAY).appendField(new a_.FieldDropdown([["TM1650","tm1650"]]),"TYPE"),this.appendValueInput("VAR"),this.appendDummyInput().appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_ON,"on"],[a_.Msg.MIXLY_OFF,"off"],[a_.Msg.MIXLY_LCD_STAT_CLEAR,"clear"]]),"STAT"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(a_.Msg.MIXLY_TOOLTIP_4digitdisplay_power)}},sL={init:function(){this.setColour(CM),this.appendDummyInput().appendField(a_.Msg.MIXLY_4DIGITDISPLAY).appendField(new a_.FieldDropdown([["TM1650","tm1650"]]),"TYPE"),this.appendValueInput("VAR"),this.appendValueInput("VALUE").setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_MICROBIT_JS_MONITOR_SHOW_NUMBER),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},OL={init:function(){this.setColour(CM),this.appendDummyInput().appendField(a_.Msg.MIXLY_4DIGITDISPLAY).appendField(new a_.FieldDropdown([["TM1650","tm1650"]]),"TYPE"),this.appendValueInput("VAR"),this.appendValueInput("NO").appendField(a_.Msg.MIXLY_4DIGITDISPLAY_NOMBER1),this.appendValueInput("STAT").appendField(a_.Msg.MIXLY_4DIGITDISPLAY_NOMBER2+a_.Msg.MIXLY_4DIGITDISPLAY_DOT),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(a_.Msg.MIXLY_TOOLTIP_4digitdisplay_showDot)}},IL={init:function(){this.setColour(CM),this.appendDummyInput().appendField(a_.Msg.MIXLY_4DIGITDISPLAY).appendField(new a_.FieldDropdown([["TM1650","tm1650"]]),"TYPE"),this.appendValueInput("VAR"),this.appendValueInput("VALUE").setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_MICROBIT_JS_MONITOR_SET_BRIGHTNESS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(a_.Msg.MIXLY_4DIGITDISPLAY_4DIGITDISPLAY_BRIGHTNESS_TOOLTIP)}},aL={init:function(){this.setColour(CM),this.appendValueInput("SPISUB").appendField(a_.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINDC").appendField("DC"),this.appendValueInput("PINCS").appendField("CS"),this.appendValueInput("SUB").appendField(a_.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(a_.Msg.MIXLY_SETUP+a_.Msg.LISTS_SET_INDEX_INPUT_TO+a_.Msg.MSG.catTFT),this.appendValueInput("WIDTH").appendField(a_.Msg.MIXLY_WIDTH).setCheck(Number),this.appendValueInput("HEIGHT").appendField(a_.Msg.MIXLY_HEIGHT).setCheck(Number),this.appendDummyInput("").appendField(a_.Msg.blockpy_turtle_rotate).appendField(new a_.FieldDropdown([[a_.Msg.MICROPYTHON_DISPLAY_NO,"0"],[a_.Msg.ANTI_CLOCKWISE+"90°","1"],[a_.Msg.ANTI_CLOCKWISE+"180°","2"],[a_.Msg.ANTI_CLOCKWISE+"270°","3"]]),"rotate"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},pL={init:function(){this.setColour(CM),this.appendValueInput("SUB").appendField(a_.Msg.MSG.catTFT),this.appendValueInput("data").appendField(a_.Msg.OLED_BITMAP),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(a_.Msg.MIXLY_MICROBIT_JS_NUMBER),this.appendValueInput("VAR").appendField(a_.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.OLED_BITMAP_OR_STRING)}},ML={init:function(){this.setColour(CM);let _=new a_.FieldColour("#f00",null,{colourOptions:["#f00","#000"],columns:2});this.appendDummyInput("").setAlign(a_.inputs.Align.RIGHT).appendField(_,"COLOR"),this.setInputsInline(!0),this.setOutput(!0,String)}},LL={init:function(){this.setColour(CM),this.appendValueInput("SUB").appendField(a_.Msg.MSG.catTFT),this.appendValueInput("data").setCheck(String).appendField(a_.Msg.OLED_DRAWSTR),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(a_.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(a_.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendDummyInput("").appendField(a_.Msg.TEXT_CENTER).appendField(new a_.FieldDropdown([[a_.Msg.MICROPYTHON_DISPLAY_YES,"True"],[a_.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"center"),this.appendValueInput("VAR").appendField(a_.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY)}},RL={init:function(){this.setColour(CM),this.appendValueInput("SUB").appendField(a_.Msg.MSG.catTFT),this.appendValueInput("data").setCheck(String).appendField(a_.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(a_.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(a_.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendValueInput("time").setCheck(Number).appendField(a_.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.appendValueInput("VAR").appendField(a_.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_SCROLL_IMAGE_OR_STRING_DELAY)}},rL={init:function(){this.setColour(CM),this.appendValueInput("SUB").appendField(a_.Msg.MSG.catTFT),this.appendValueInput("data").setCheck(String).appendField(a_.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.appendValueInput("size").setCheck(Number).appendField(a_.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("time").setCheck(Number).appendField(a_.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.appendValueInput("VAR").appendField(a_.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},SL={init:function(){this.setColour(CM),this.appendValueInput("SUB").setCheck("var").appendField(a_.Msg.MSG.catTFT),this.appendDummyInput().appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_LCD_STAT_CLEAR,"BLACK"],[a_.Msg.MIXLY_HANDBIT_DISLPAY_OLED_FILL,"WHITE"]]),"key"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var _=this;this.setTooltip((function(){var t=_.getFieldValue("key"),e={0:a_.Msg.MIXLY_LCD_STAT_CLEAR,1:a_.Msg.MIXLY_HANDBIT_DISLPAY_OLED_FILL};return a_.Msg.MIXLY_DF_LCD+e[t]}))}},lL={init:function(){this.setColour(CM),this.appendValueInput("SUB").appendField(a_.Msg.MSG.catTFT).setCheck("var"),this.jsonInit({message0:a_.Msg.MIXLY_MICROBIT_SHOW_LINE_ARBITRARILY,args0:[{check:Number,type:"input_value",name:"x1"},{check:Number,type:"input_value",name:"y1"},{check:Number,type:"input_value",name:"x2"},{check:Number,type:"input_value",name:"y2"}]}),this.appendValueInput("VAR").appendField(a_.Msg.HTML_COLOUR),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(a_.Msg.MIXLY_OLED_LINE_ARBIT)}},AL={init:function(){this.setColour(CM),this.appendValueInput("I2CSUB").appendField(a_.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(a_.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(a_.Msg.MIXLY_SETUP+a_.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new a_.FieldDropdown([["LCD1602","16"],["LCD2004","20"]]),"key"),this.appendValueInput("ADDR").setCheck(Number).appendField(a_.Msg.MQTT_SERVER_ADD),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);var _=this;this.setTooltip((function(){var t=_.getFieldValue("key");return a_.Msg.MIXLY_SETUP+{16:"LCD1602",20:"LCD2004"}[t]}))}},PL={init:function(){this.setColour(CM),this.appendValueInput("SUB").appendField(a_.Msg.MSG.catLCD),this.appendValueInput("data").setCheck(String).appendField(a_.Msg.OLED_DRAWSTR),this.appendValueInput("x").setCheck(Number).appendField(a_.Msg.array2_cols),this.appendValueInput("y").setCheck(Number).appendField(a_.Msg.array2_rows),this.appendDummyInput("").appendField(a_.Msg.TEXT_CENTER).appendField(new a_.FieldDropdown([[a_.Msg.MICROPYTHON_DISPLAY_YES,"True"],[a_.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"center"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY)}},NL={init:function(){this.setColour(CM),this.appendValueInput("SUB").appendField(a_.Msg.MSG.catLCD),this.appendValueInput("data").setCheck(String).appendField(a_.Msg.MIXLY_SERIAL_PRINT+a_.Msg.OLED_DRAWSTR),this.appendValueInput("x").setCheck(Number).appendField(a_.Msg.array2_cols),this.appendValueInput("y").setCheck(Number).appendField(a_.Msg.array2_rows),this.appendValueInput("time").setCheck(Number).appendField(a_.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},dL={init:function(){this.setColour(CM),this.appendValueInput("SUB").setCheck("var").appendField(a_.Msg.MSG.catLCD),this.appendDummyInput().appendField(a_.Msg.TFT_Brightness).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_MICROBIT_Turn_on_display,"1"],[a_.Msg.MIXLY_MICROBIT_Turn_off_display,"0"]]),"key"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var _=this;this.setTooltip((function(){var t=_.getFieldValue("key"),e={1:a_.Msg.MIXLY_MICROBIT_Turn_on_display,0:a_.Msg.MIXLY_MICROBIT_Turn_off_display};return a_.Msg.MSG.catLCD+a_.Msg.TFT_Brightness+e[t]}))}},hL={init:function(){this.appendValueInput("SUB").setCheck("var").appendField(a_.Msg.MSG.catLCD),this.setColour(CM),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_Clear_display),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_MICROBIT_Clear_display)}},uL={init:function(){this.setColour(CM),this.appendValueInput("I2CSUB").appendField(a_.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(a_.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(a_.Msg.MIXLY_SETUP+a_.Msg.LISTS_SET_INDEX_INPUT_TO+"oled128x64"),this.appendValueInput("ADDR").setCheck(Number).appendField(a_.Msg.MQTT_SERVER_ADD),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);var _=this;this.setTooltip((function(){var t=_.getFieldValue("key");return a_.Msg.MIXLY_SETUP+{16:"LCD1602",20:"LCD2004"}[t]}))}},mL={init:function(){this.setColour(CM),this.appendValueInput("SUB").setCheck("var").appendField(a_.Msg.MSG.catOLED),this.appendValueInput("data").appendField(a_.Msg.OLED_BITMAP),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.OLED_BITMAP_OR_STRING)}},CL={init:function(){this.setColour(CM),this.appendValueInput("SUB").setCheck("var").appendField(a_.Msg.MSG.catOLED),this.appendValueInput("data").appendField(a_.Msg.OLED_BITMAP),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(a_.Msg.MIXLY_MICROBIT_JS_NUMBER),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.OLED_BITMAP_OR_STRING)}},cL={init:function(){this.setColour(CM),this.appendValueInput("SUB").setCheck("var").appendField(a_.Msg.MSG.catOLED),this.appendValueInput("data").setCheck([String,"esp32_image","List","Tuple"]).appendField(a_.Msg.OLED_DRAWSTR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.OLED_BITMAP_OR_STRING)}},HL={init:function(){this.setColour(CM),this.appendValueInput("SUB").setCheck("var").appendField(a_.Msg.MSG.catOLED),this.appendValueInput("data").setCheck(String).appendField(a_.Msg.OLED_DRAWSTR),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(a_.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(a_.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendDummyInput("").appendField(a_.Msg.TEXT_CENTER).appendField(new a_.FieldDropdown([[a_.Msg.MICROPYTHON_DISPLAY_YES,"True"],[a_.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"center"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY)}},DL={init:function(){this.setColour(CM),this.appendValueInput("SUB").setCheck("var").appendField(a_.Msg.MSG.catOLED),this.appendValueInput("data").setCheck(String).appendField(a_.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},YL={init:function(){this.setColour(CM),this.appendValueInput("SUB").setCheck("var").appendField(a_.Msg.MSG.catOLED),this.appendValueInput("data").setCheck(String).appendField(a_.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(a_.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(a_.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendValueInput("time").setCheck(Number).appendField(a_.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_SCROLL_IMAGE_OR_STRING_DELAY)}},UL={init:function(){this.setColour(CM),this.appendValueInput("SUB").setCheck("var").appendField(a_.Msg.MSG.catOLED),this.appendValueInput("data").setCheck(String).appendField(a_.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},BL={init:function(){this.setColour(CM),this.appendValueInput("SUB").setCheck("var").appendField(a_.Msg.MSG.catOLED),this.appendValueInput("data").setCheck(String).appendField(a_.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.appendValueInput("size").setCheck(Number).appendField(a_.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("time").setCheck(Number).appendField(a_.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},gL={init:function(){var _=[[a_.Msg.MIXLY_UP,"shift_up"],[a_.Msg.MIXLY_DOWN,"shift_down"],[a_.Msg.MIXLY_LEFT,"shift_left"],[a_.Msg.MIXLY_RIGHT,"shift_right"]];this.setColour(CM),this.appendValueInput("SUB").setCheck("var").appendField(a_.Msg.MSG.catOLED),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.appendDummyInput("").appendField(a_.Msg.DISPLAY_IMAGE_LET),this.appendDummyInput("").appendField(a_.Msg.DISPLAY_IMAGE_LET2).appendField(new a_.FieldDropdown(_),"OP"),this.appendValueInput("val").appendField(a_.Msg.DISPLAY_IMAGE_SHIFT).setCheck(Number),this.appendDummyInput("").appendField(a_.Msg.DISPLAY_IMAGE_UNIT);var t=this;this.setTooltip((function(){var _=t.getFieldValue("OP"),e=a_.Msg.DISPLAY_IMAGE_LET,i=a_.Msg.DISPLAY_IMAGE_LET2,T=a_.Msg.DISPLAY_IMAGE_LET3;return e+i+{up:a_.Msg.MIXLY_UP,down:a_.Msg.MIXLY_DOWN,left:a_.Msg.MIXLY_LEFT,right:a_.Msg.MIXLY_RIGHT}[_]+T}))}},GL={init:function(){this.setColour(CM),this.appendValueInput("SUB").setCheck("var").appendField(a_.Msg.MSG.catOLED),this.appendValueInput("x").setCheck(Number).appendField(a_.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(a_.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendDummyInput().appendField(a_.Msg.MIXLY_ESP32_JS_MONITOR_GET_POINT),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(a_.Msg.MIXLY_ESP32_JS_MONITOR_BRIGHTNESS)}},FL={init:function(){this.setColour(CM),this.appendValueInput("SUB").setCheck("var").appendField(a_.Msg.MSG.catOLED),this.appendValueInput("x").setCheck(Number).appendField(a_.Msg.MIXLY_ESP32_JS_MONITOR_SET_BRIGHTNESS).appendField(a_.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(a_.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendValueInput("STAT").setCheck([Number,Boolean]),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL)}},yL={init:function(){this.setColour(CM),this.appendValueInput("SUB").setCheck("var").appendField(a_.Msg.MSG.catOLED),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_Clear_display),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_MICROBIT_Clear_display)}},fL={init:function(){this.jsonInit({colour:CM,args0:[{name:"SUB",type:"input_value"},{name:"state",options:[[a_.Msg.MPYTHON_DISPLAY_MODE_1,"1"],[a_.Msg.MPYTHON_DISPLAY_MODE_0,"0"]],type:"field_dropdown"},{name:"shape",options:[[a_.Msg.MPYTHON_DISPLAY_HOLLOW,"rect"],[a_.Msg.MPYTHON_DISPLAY_SOLID,"fill_rect"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"w",type:"input_value"},{name:"h",type:"input_value"}],inputsInline:!0,helpUrl:a_.Msg.mpython_HELPURL,tooltip:a_.Msg.MPYTHON_DISPLAY_SHAPE_RECT_TOOLTIP,message0:a_.Msg.MPYTHON_DISPLAY_SHAPE_RECT_MESSAGE1,nextStatement:null,previousStatement:null})}},bL={init:function(){this.jsonInit({colour:CM,args0:[{name:"SUB",type:"input_value"},{name:"state",options:[[a_.Msg.MPYTHON_DISPLAY_MODE_1,"1"],[a_.Msg.MPYTHON_DISPLAY_MODE_0,"0"]],type:"field_dropdown"},{name:"dir_h_v",options:[[a_.Msg.mpython_vertical,"0"],[a_.Msg.mpython_horizontal,"1"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"length",type:"input_value"}],inputsInline:!0,helpUrl:a_.Msg.mpython_HELPURL,tooltip:a_.Msg.MPYTHON_DISPLAY_HVLINE_TOOLTIP,message0:a_.Msg.MPYTHON_DISPLAY_HVLINE_MESSAGE1,nextStatement:null,previousStatement:null})}},xL={init:function(){this.jsonInit({colour:CM,args0:[{name:"SUB",type:"input_value"},{name:"state",options:[[a_.Msg.mpython_display_hline_1,"1"],[a_.Msg.mpython_display_hline_0,"0"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x1",type:"input_value"},{name:"y1",type:"input_value"},{name:"x2",type:"input_value"},{name:"y2",type:"input_value"}],inputsInline:!0,helpUrl:a_.Msg.mpython_HELPURL,tooltip:a_.Msg.mpython_display_line_TOOLTIP,message0:a_.Msg.mpython_display_line_MESSAGE1,nextStatement:null,previousStatement:null})}},vL="#569A98",XL={init:function(){this.setColour(vL),this.appendValueInput("data").setCheck([String,"esp32_image","List","Tuple"]).appendField(a_.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),"micropython:esp32:mixbot"==p_.Boards.getSelectedBoardKey()&&this.setTooltip(a_.Msg.MIXLY_MIXBOT_SHOW_SCROLL_STRING_TOOLTIP)}},VL={init:function(){this.setColour(vL),this.appendValueInput("data").setCheck(String).appendField(a_.Msg.OLED_DRAWSTR),this.appendValueInput("space").setCheck(Number).appendField(a_.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendDummyInput("").appendField(a_.Msg.TEXT_CENTER).appendField(new a_.FieldDropdown([[a_.Msg.MICROPYTHON_DISPLAY_YES,"True"],[a_.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"center"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},kL={init:function(){this.setColour(vL),this.appendValueInput("data").setCheck(String).appendField(a_.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},wL={init:function(){this.setColour(vL),this.appendValueInput("data").setCheck(String).appendField(a_.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.appendValueInput("space").setCheck(Number).appendField(a_.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendValueInput("time").setCheck(Number).appendField(a_.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},WL={init:function(){this.setColour(vL),this.appendValueInput("data").setCheck(String).appendField(a_.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},KL={init:function(){this.setColour(vL),this.appendValueInput("data").setCheck(String).appendField(a_.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.appendValueInput("time").setCheck(Number).appendField(a_.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},zL={init:function(){this.appendDummyInput("").appendField(a_.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let _=0;_<12;_++){let t=this.appendDummyInput();for(let e=0;e<32;e++)t.appendField(new a_.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),_+"-"+e)}this.setOutput(!0),this.setColour(vL),this.setTooltip(a_.Msg.MIXLY_MICROBIT_Create_image1)}},ZL={init:function(){this.jsonInit({colour:vL,args0:[{name:"image",options:[["HEART","HEART"],["HEART_SMALL","HEART_SMALL"],["HAPPY","HAPPY"],["SAD","SAD"],["SMILE","SMILE"],["SILLY","SILLY"],["FABULOUS","FABULOUS"],["SURPRISED","SURPRISED"],["ASLEEP","ASLEEP"],["ANGRY","ANGRY"],["CONFUSED","CONFUSED"],["NO","NO"],["YES","YES"]],type:"field_dropdown"}],output:["esp32_image","List"],helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/image.html#attributes",tooltip:a_.Msg.MIXLY_MICROBIT_Built_in_image1,message0:a_.Msg.MIXLY_MICROBIT_Built_in_image})}},QL={init:function(){this.jsonInit({colour:vL,args0:[{name:"image",options:[["HEART","HEART"],["HEART_SMALL","HEART_SMALL"],["HAPPY","HAPPY"],["SAD","SAD"],["SMILE","SMILE"],["SILLY","SILLY"],["FABULOUS","FABULOUS"],["SURPRISED","SURPRISED"],["ASLEEP","ASLEEP"],["ANGRY","ANGRY"],["CONFUSED","CONFUSED"],["NO","NO"],["YES","YES"],["LEFT_ARROW","LEFT_ARROW"],["RIGHT_ARROW","RIGHT_ARROW"],["DRESS","DRESS"],["TRANSFORMERS","TRANSFORMERS"],["SCISSORS","SCISSORS"],["EXIT","EXIT"],["TREE","TREE"],["PACMAN","PACMAN"],["TARGET","TARGET"],["TSHIRT","TSHIRT"],["ROLLERSKATE","ROLLERSKATE"],["DUCK","DUCK"],["HOUSE","HOUSE"],["TORTOISE","TORTOISE"],["BUTTERFLY","BUTTERFLY"],["STICKFIGURE","STICKFIGURE"],["GHOST","GHOST"],["PITCHFORK","PITCHFORK"],["MUSIC_QUAVERS","MUSIC_QUAVERS"],["MUSIC_QUAVER","MUSIC_QUAVER"],["MUSIC_CROTCHET","MUSIC_CROTCHET"],["COW","COW"],["RABBIT","RABBIT"],["SQUARE_SMALL","SQUARE_SMALL"],["SQUARE","SQUARE"],["DIAMOND_SMALL","DIAMOND_SMALL"],["DIAMOND","DIAMOND"],["CHESSBOARD","CHESSBOARD"],["TRIANGLE_LEFT","TRIANGLE_LEFT"],["TRIANGLE","TRIANGLE"],["SNAKE","SNAKE"],["UMBRELLA","UMBRELLA"],["SKULL","SKULL"],["GIRAFFE","GIRAFFE"],["SWORD","SWORD"]],type:"field_dropdown"}],output:["esp32_image","List"],helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/image.html#attributes",tooltip:a_.Msg.MIXLY_MICROBIT_Built_in_image1,message0:a_.Msg.MIXLY_MICROBIT_Built_in_image})}},JL={init:function(){var _=[[a_.Msg.MICROBIT_DISPLAY_UNION,"add"],[a_.Msg.MICROBIT_DISPLAY_MINUS,"sub"]];this.setColour(vL),this.setOutput(!0,"esp32_image"),this.appendValueInput("A").appendField(a_.Msg.MICROBIT_DISPLAY_MERGE_SHAPE),this.appendValueInput("B").appendField(new a_.FieldDropdown(_),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var _=t.getFieldValue("OP");return{"+":a_.Msg.MIXLY_MICROBIT_image_add,"-":a_.Msg.MIXLY_MICROBIT_image_reduce}[_]}))}},qL={init:function(){this.setColour(vL),this.appendValueInput("A").setCheck("esp32_image").appendField(a_.Msg.MIXLY_MICROBIT_Invert_image1),this.setInputsInline(!0),this.setOutput(!0,"esp32_image")}},jL={init:function(){var _=[[a_.Msg.MIXLY_UP,"shift_up"],[a_.Msg.MIXLY_DOWN,"shift_down"],[a_.Msg.MIXLY_LEFT,"shift_left"],[a_.Msg.MIXLY_RIGHT,"shift_right"]];this.setColour(vL),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.appendDummyInput("").appendField(a_.Msg.DISPLAY_IMAGE_LET),this.appendDummyInput("").appendField(a_.Msg.DISPLAY_IMAGE_LET2).appendField(new a_.FieldDropdown(_),"OP"),this.appendValueInput("val").appendField(a_.Msg.DISPLAY_IMAGE_SHIFT).setCheck(Number),this.appendDummyInput("").appendField(a_.Msg.DISPLAY_IMAGE_UNIT);var t=this;this.setTooltip((function(){var _=t.getFieldValue("OP"),e=a_.Msg.DISPLAY_IMAGE_LET,i=a_.Msg.DISPLAY_IMAGE_LET2,T=a_.Msg.DISPLAY_IMAGE_LET3;return e+i+{shift_up:a_.Msg.MIXLY_UP,shift_down:a_.Msg.MIXLY_DOWN,shift_left:a_.Msg.MIXLY_LEFT,shift_right:a_.Msg.MIXLY_RIGHT}[_]+T}))}},$L={init:function(){this.setColour(vL),this.appendValueInput("x").setCheck(Number).appendField(a_.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(a_.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendDummyInput().appendField(a_.Msg.MIXLY_ESP32_JS_MONITOR_GET_POINT),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(a_.Msg.MIXLY_ESP32_JS_MONITOR_BRIGHTNESS)}},_R={init:function(){this.setColour(vL),this.appendValueInput("x").setCheck(Number).appendField(a_.Msg.MIXLY_ESP32_JS_MONITOR_SET_BRIGHTNESS).appendField(a_.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(a_.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendValueInput("STAT").setCheck([Number,Boolean]),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL)}},tR={init:function(){this.setColour(vL),this.appendDummyInput().appendField(a_.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(a_.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS)}},eR={init:function(){this.setColour(vL),this.appendValueInput("x").setCheck(Number).appendField(a_.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS+" 0.0-1.0")}},iR={init:function(){this.setColour(vL),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_Clear_display),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_MICROBIT_Clear_display)}},TR={init:function(){this.appendDummyInput("").appendField(a_.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let _=0;_<5;_++){let t=this.appendDummyInput();for(let e=0;e<8;e++)t.appendField(new a_.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),_+"-"+e)}this.setOutput(!0),this.setColour(vL),this.setTooltip(a_.Msg.MIXLY_MICROBIT_Create_image1)}},ER={init:function(){this.appendDummyInput("").appendField(a_.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let _=0;_<8;_++){let t=this.appendDummyInput();for(let e=0;e<12;e++)t.appendField(new a_.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),_+"-"+e)}this.setOutput(!0),this.setColour(vL),this.setTooltip(a_.Msg.MIXLY_MICROBIT_Create_image1)}},nR={init:function(){this.appendDummyInput("").appendField(a_.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let _=0;_<8;_++){let t=this.appendDummyInput();for(let e=0;e<16;e++)t.appendField(new a_.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),_+"-"+e)}this.setOutput(!0,"esp32_image"),this.setColour(vL),this.setTooltip(a_.Msg.MIXLY_MICROBIT_Create_image1)}},oR={init:function(){var _=[["4x5"+a_.Msg.MIXGO_ME_DISPLAY_HORIZONTAL,"'4x5'"],["5x5"+a_.Msg.MIXGO_ME_DISPLAY_HORIZONTAL,"'5x5'"],["5x8"+a_.Msg.MIXGO_ME_DISPLAY_VERTICAL,"'5x8'"]];this.setColour(vL),this.appendDummyInput().appendField(a_.Msg.OLED_SET_FONT).appendField(new a_.FieldDropdown(_),"OP"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},sR={init:function(){this.setColour(vL),this.appendValueInput("data").appendField(a_.Msg.OLED_BITMAP),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.OLED_BITMAP_OR_STRING)}},OR={init:function(){this.setColour(vL),this.appendValueInput("data").appendField(a_.Msg.OLED_BITMAP),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(a_.Msg.MIXLY_MICROBIT_JS_NUMBER),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.OLED_BITMAP_OR_STRING)}},IR={init:function(){this.setColour(vL),this.appendValueInput("data").setCheck([String,"esp32_image","List","Tuple"]).appendField(a_.Msg.OLED_DRAWSTR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.OLED_BITMAP_OR_STRING)}},aR={init:function(){this.setColour(vL),this.appendValueInput("data").setCheck(String).appendField(a_.Msg.OLED_DRAWSTR),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(a_.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(a_.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendDummyInput("").appendField(a_.Msg.TEXT_CENTER).appendField(new a_.FieldDropdown([[a_.Msg.MICROPYTHON_DISPLAY_YES,"True"],[a_.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"center"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY)}},pR={init:function(){this.setColour(vL),this.appendValueInput("data").setCheck(String).appendField(a_.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(a_.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(a_.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendValueInput("time").setCheck(Number).appendField(a_.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_SCROLL_IMAGE_OR_STRING_DELAY)}},MR={init:function(){this.setColour(vL),this.appendValueInput("data").setCheck(String).appendField(a_.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.appendValueInput("size").setCheck(Number).appendField(a_.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("time").setCheck(Number).appendField(a_.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},LR={init:function(){this.setColour(vL),this.appendValueInput("x").setCheck(Number).appendField(a_.Msg.MIXLY_ESP32_JS_MONITOR_SET_BRIGHTNESS).appendField(a_.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(a_.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendValueInput("STAT").setCheck([Number,Boolean]),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL)}},RR={init:function(){this.jsonInit({colour:vL,args0:[{name:"state",options:[[a_.Msg.MPYTHON_DISPLAY_MODE_1,"1"],[a_.Msg.MPYTHON_DISPLAY_MODE_0,"0"]],type:"field_dropdown"},{name:"shape",options:[[a_.Msg.MPYTHON_DISPLAY_HOLLOW,"rect"],[a_.Msg.MPYTHON_DISPLAY_SOLID,"fill_rect"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"w",type:"input_value"},{name:"h",type:"input_value"}],inputsInline:!0,helpUrl:a_.Msg.mpython_HELPURL,tooltip:a_.Msg.MPYTHON_DISPLAY_SHAPE_RECT_TOOLTIP,message0:a_.Msg.MPYTHON_DISPLAY_SHAPE_RECT_MESSAGE0,nextStatement:null,previousStatement:null})}},rR={init:function(){this.jsonInit({colour:vL,args0:[{name:"state",options:[[a_.Msg.MPYTHON_DISPLAY_MODE_1,"1"],[a_.Msg.MPYTHON_DISPLAY_MODE_0,"0"]],type:"field_dropdown"},{name:"dir_h_v",options:[[a_.Msg.mpython_vertical,"0"],[a_.Msg.mpython_horizontal,"1"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"length",type:"input_value"}],inputsInline:!0,helpUrl:a_.Msg.mpython_HELPURL,tooltip:a_.Msg.MPYTHON_DISPLAY_HVLINE_TOOLTIP,message0:a_.Msg.MPYTHON_DISPLAY_HVLINE_MESSAGE0,nextStatement:null,previousStatement:null})}},SR={init:function(){this.jsonInit({colour:vL,args0:[{name:"state",options:[[a_.Msg.mpython_display_hline_1,"1"],[a_.Msg.mpython_display_hline_0,"0"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x1",type:"input_value"},{name:"y1",type:"input_value"},{name:"x2",type:"input_value"},{name:"y2",type:"input_value"}],inputsInline:!0,helpUrl:a_.Msg.mpython_HELPURL,tooltip:a_.Msg.mpython_display_line_TOOLTIP,message0:a_.Msg.mpython_display_line_MESSAGE0,nextStatement:null,previousStatement:null})}},lR={init:function(){this.jsonInit({colour:vL,args0:[{type:"field_label",name:"size_image",text:a_.Msg.MIXLY_MICROBIT_Built_in_image1},{name:"path",options:[["Heart","Heart"],["Angry","Angry"],["Bored","Bored"],["Confused","Confused"],["Happy","Happy"],["Paper","Paper"],["Rock","Rock"],["Sad","Sad"],["Scissors","Scissors"],["Silly","Silly"],["Sleep","Sleep"],["Small_heart","Small_heart"],["Small_paper","Small_paper"],["Small_rock","Small_rock"],["Small_scissors","Small_scissors"],["Smile","Smile"],["Surprise","Surprise"],["Wonderful","Wonderful"],["Eyes_Angry","Eyes_Angry"],["Awake","Awake"],["Black_eye","Black_eye"],["Bottom_left","Bottom_left"],["Bottom_right","Bottom_right"],["Crazy_1","Crazy_1"],["Crazy_2","Crazy_2"],["Disappointed","Disappointed"],["Dizzy","Dizzy"],["Down","Down"],["Evil","Evil"],["Hurt","Hurt"],["Knocked_out","Knocked_out"],["Love","Love"],["Middle_left","Middle_left"],["Middle_right","Middle_right"],["Neutral","Neutral"],["Nuclear","Nuclear"],["Pinch_left","Pinch_left"],["Pinch_middle","Pinch_middle"],["Pinch_right","Pinch_right"],["Tear","Tear"],["Tired_left","Tired_left"],["Tired_middle","Tired_middle"],["Tired_right","Tired_right"],["Toxic","Toxic"],["Up","Up"],["Winking","Winking"],["Accept","Accept"],["Backward","Backward"],["Decline","Decline"],["Forward","Forward"],["Left","Left"],["No_go","No_go"],["Question_mark","Question_mark"],["Right","Right"],["Stop_1","Stop_1"],["Stop_2","Stop_2"],["Thumbs_down","Thumbs_down"],["Thumbs_up","Thumbs_up"],["Warning","Warning"],["Bomb","Bomb"],["Boom","Boom"],["Fire","Fire"],["Flowers","Flowers"],["Forest","Forest"],["Lightning","Lightning"],["Light_off","Light_off"],["Light_on","Light_on"],["Night","Night"],["Pirate","Pirate"],["Snow","Snow"],["Target","Target"],["Bar_0","Bar_0"],["Bar_1","Bar_1"],["Bar_2","Bar_2"],["Bar_3","Bar_3"],["Bar_4","Bar_4"],["Dial_0","Dial_0"],["Dial_1","Dial_1"],["Dial_2","Dial_2"],["Dial_3","Dial_3"],["Dial_4","Dial_4"],["Dots_0","Dots_0"],["Dots_1","Dots_1"],["Dots_2","Dots_2"],["Dots_3","Dots_3"],["Hourglass_0","Hourglass_0"],["Hourglass_1","Hourglass_1"],["Hourglass_2","Hourglass_2"],["Timer_0","Timer_0"],["Timer_1","Timer_1"],["Timer_2","Timer_2"],["Timer_3","Timer_3"],["Timer_4","Timer_4"],["Water_level_0","Water_level_0"],["Water_level_1","Water_level_1"],["Water_level_2","Water_level_2"],["Water_level_3","Water_level_3"]],type:"field_dropdown"}],output:"String",helpUrl:"",tooltip:"",message0:"%1 %2"})}},AR={init:function(){this.appendDummyInput("").appendField(a_.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let _=0;_<5;_++){let t=this.appendDummyInput();for(let e=0;e<5;e++)t.appendField(new a_.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),_+"-"+e)}this.setOutput(!0),this.setColour(vL),this.setTooltip(a_.Msg.MIXLY_MICROBIT_Create_image1)}},PR={init:function(){this.setColour(vL),this.appendDummyInput().appendField(a_.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(a_.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS)}},NR={init:function(){this.setColour(vL),this.appendDummyInput().appendField(a_.Msg.MIXLY_MIXBOT_AMBIENTBRIGHT),this.setInputsInline(!0),this.setOutput(!0,Number)}},dR={init:function(){this.setColour(vL),this.appendValueInput("x").setCheck(Number).appendField(a_.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS+" 0.0-1.0")}},hR={init:function(){var _=[[a_.Msg.mixpy_PL_PIE_SHADOW_N,"0"],[a_.Msg.CLOCKWISE+"90"+a_.Msg.blockpy_setheading_degree,"1"],[a_.Msg.CLOCKWISE+"180"+a_.Msg.blockpy_setheading_degree,"2"],[a_.Msg.CLOCKWISE+"270"+a_.Msg.blockpy_setheading_degree,"3"]];this.setColour(vL),this.appendDummyInput().appendField(a_.Msg.MIXLY_MIXBOT_SCREEN_ROTATE).appendField(new a_.FieldDropdown(_),"OP"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},uR={init:function(){this.appendDummyInput("").appendField(a_.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let _=0;_<12;_++){let t=this.appendDummyInput();for(let e=0;e<12;e++)t.appendField(new a_.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),_+"-"+e)}this.setOutput(!0),this.setColour(vL),this.setTooltip(a_.Msg.MIXLY_MICROBIT_Create_image1)}},mR={init:function(){this.setColour(vL),this.appendValueInput("data").appendField(a_.Msg.OLED_BITMAP),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.OLED_BITMAP_OR_STRING)}},CR={init:function(){this.setColour(vL),this.appendValueInput("data").appendField(a_.Msg.OLED_BITMAP),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(a_.Msg.MIXLY_MICROBIT_JS_NUMBER),this.appendValueInput("VAR").appendField(a_.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.OLED_BITMAP_OR_STRING)}},cR={init:function(){this.setColour(vL),this.appendValueInput("data").setCheck(String).appendField(a_.Msg.OLED_DRAWSTR),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(a_.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(a_.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendDummyInput("").appendField(a_.Msg.TEXT_CENTER).appendField(new a_.FieldDropdown([[a_.Msg.MICROPYTHON_DISPLAY_YES,"True"],[a_.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"center"),this.appendValueInput("VAR").appendField(a_.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY)}},HR={init:function(){this.setColour(vL),this.appendValueInput("data").setCheck(String).appendField(a_.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},DR={init:function(){this.setColour(vL),this.appendValueInput("data").setCheck(String).appendField(a_.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(a_.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(a_.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendValueInput("time").setCheck(Number).appendField(a_.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.appendValueInput("VAR").appendField(a_.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_SCROLL_IMAGE_OR_STRING_DELAY)}},YR={init:function(){this.setColour(vL),this.appendValueInput("data").setCheck(String).appendField(a_.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},UR={init:function(){this.setColour(vL),this.appendValueInput("data").setCheck(String).appendField(a_.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.appendValueInput("size").setCheck(Number).appendField(a_.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("time").setCheck(Number).appendField(a_.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.appendValueInput("VAR").appendField(a_.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},BR={init:function(){this.jsonInit({colour:vL,args0:[{name:"shape",options:[[a_.Msg.MPYTHON_DISPLAY_HOLLOW,"rect"],[a_.Msg.MPYTHON_DISPLAY_SOLID,"fill_rect"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"w",type:"input_value"},{name:"h",type:"input_value"},{name:"VAR",type:"input_value"}],inputsInline:!0,helpUrl:a_.Msg.mpython_HELPURL,tooltip:a_.Msg.MPYTHON_DISPLAY_SHAPE_RECT_TOOLTIP,message0:a_.Msg.ONBOARD_TFT_DISPLAY_SHAPE_RECT_MESSAGE0,nextStatement:null,previousStatement:null})}},gR={init:function(){this.jsonInit({colour:vL,args0:[{name:"dir_h_v",options:[[a_.Msg.mpython_vertical,"0"],[a_.Msg.mpython_horizontal,"1"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"length",type:"input_value"},{name:"VAR",type:"input_value"}],inputsInline:!0,helpUrl:a_.Msg.mpython_HELPURL,tooltip:a_.Msg.MPYTHON_DISPLAY_HVLINE_TOOLTIP,message0:a_.Msg.ONBOARD_TFT_DISPLAY_HVLINE_MESSAGE0,nextStatement:null,previousStatement:null})}},GR={init:function(){this.jsonInit({colour:vL,args0:[{type:"input_dummy"},{name:"x1",type:"input_value"},{name:"y1",type:"input_value"},{name:"x2",type:"input_value"},{name:"y2",type:"input_value"},{name:"VAR",type:"input_value"}],inputsInline:!0,helpUrl:a_.Msg.mpython_HELPURL,tooltip:a_.Msg.mpython_display_line_TOOLTIP,message0:a_.Msg.mpython_display_line_MESSAGE0,nextStatement:null,previousStatement:null})}},FR={init:function(){var _=[[a_.Msg.MIXLY_UP,"shift_up"],[a_.Msg.MIXLY_DOWN,"shift_down"],[a_.Msg.MIXLY_LEFT,"shift_left"],[a_.Msg.MIXLY_RIGHT,"shift_right"]];this.setColour(vL),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.appendDummyInput("").appendField(a_.Msg.DISPLAY_IMAGE_LET),this.appendDummyInput("").appendField(a_.Msg.DISPLAY_IMAGE_LET2).appendField(new a_.FieldDropdown(_),"OP"),this.appendValueInput("val").appendField(a_.Msg.DISPLAY_IMAGE_SHIFT).setCheck(Number),this.appendDummyInput("").appendField(a_.Msg.DISPLAY_IMAGE_UNIT);var t=this;this.setTooltip((function(){var _=t.getFieldValue("OP"),e=a_.Msg.DISPLAY_IMAGE_LET,i=a_.Msg.DISPLAY_IMAGE_LET2,T=a_.Msg.DISPLAY_IMAGE_LET3;return e+i+{up:a_.Msg.MIXLY_UP,down:a_.Msg.MIXLY_DOWN,left:a_.Msg.MIXLY_LEFT,right:a_.Msg.MIXLY_RIGHT}[_]+T}))}},yR={init:function(){this.setColour(vL),this.appendDummyInput("").appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("x").setCheck(Number).appendField(a_.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(a_.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendDummyInput().appendField(a_.Msg.HTML_COLOUR),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(a_.Msg.MIXLY_ESP32_JS_MONITOR_BRIGHTNESS)}},fR={init:function(){this.setColour(vL),this.appendValueInput("x").setCheck(Number).appendField(a_.Msg.MIXLY_LCD_SETCOLOR).appendField(a_.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(a_.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendValueInput("VAR").appendField(a_.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL)}},bR={init:function(){this.setColour(vL),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_Clear_display),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_MICROBIT_Clear_display)}},xR={init:function(){this.setColour(vL),this.appendDummyInput().appendField(a_.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(a_.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS)}},vR={init:function(){this.setColour(vL),this.appendValueInput("x").setCheck(Number).appendField(a_.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS+" 0.0-1.0")}},XR={init:function(){this.setColour(vL),this.appendValueInput("VAR").appendField(a_.Msg.MIXLY_SCREEN_FILL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},VR={init:function(){this.setColour(vL),this.appendValueInput("SUB").appendField(a_.Msg.MIXLY_INIT_CLOCK),this.appendDummyInput().appendField(a_.Msg.MIXLY_CENTER_POS),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(a_.Msg.OLED_CIRCLE_RADIUS),this.appendValueInput("VAR").appendField(a_.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},kR={init:function(){this.setColour(vL),this.appendValueInput("SUB"),this.appendDummyInput().appendField(a_.Msg.GET_RTCTIME),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},wR={init:function(){this.setColour(vL),this.appendValueInput("SUB"),this.appendDummyInput().appendField(a_.Msg.SET_TIME),this.appendValueInput("h").setCheck(Number).appendField(a_.Msg.MIXLY_HOUR),this.appendValueInput("m").setCheck(Number).appendField(a_.Msg.MIXLY_MINUTE),this.appendValueInput("s").setCheck(Number).appendField(a_.Msg.MIXLY_SECOND),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},WR={init:function(){this.setColour(vL),this.appendValueInput("SUB"),this.appendDummyInput().appendField(a_.Msg.DRAW_CLOCK),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},KR={init:function(){this.setColour(vL),this.appendValueInput("SUB"),this.appendDummyInput().appendField(a_.Msg.CLEAR_CLOCK),this.appendValueInput("VAR").appendField(a_.Msg.MIXLY_STM32_TFT_BACKGROUND_COLOR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},zR={init:function(){this.jsonInit({colour:vL,args0:[{name:"shape",options:[[a_.Msg.MPYTHON_DISPLAY_HOLLOW,"False"],[a_.Msg.MPYTHON_DISPLAY_SOLID,"True"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"r",type:"input_value"},{name:"VAR",type:"input_value"}],inputsInline:!0,helpUrl:a_.Msg.mpython_HELPURL,message0:a_.Msg.ONBOARD_TFT_DISPLAY_SHAPE_CIRCLE_MESSAGE0,nextStatement:null,previousStatement:null})}},ZR="#777777",QR={init:function(){this.setColour(ZR),this.appendDummyInput("").appendField("from ").appendField(new a_.FieldTextInput("ESP32"),"path").appendField(" import ").appendField(new a_.FieldTextInput("*"),"module"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},JR={init:function(){this.setColour(ZR),this.appendDummyInput("").appendField("import ").appendField(new a_.FieldTextInput("module"),"module"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},qR={init:function(){this.setColour(ZR),this.appendDummyInput("").appendField(new a_.FieldTextInput("my_function"),"NAME"),this.itemCount_=1,this.arguments_=["x"],this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new a_.icons.MutatorIcon(["factory_create_with_item"],this))},mutationToDom:function(){var _=document.createElement("mutation");_.setAttribute("items",this.itemCount_);for(var t=0;tt?_[t]:'"key'+(t+1)+'"'),"KEY"+t).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(_,t){a_.Names.equals(_,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},br={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(a_.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},xr={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(a_.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(a_.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},vr={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(a_.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(a_.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},Xr={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(a_.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").setCheck(String).appendField(a_.Msg.MIXLY_EMQX_SERVER).setAlign(a_.inputs.Align.RIGHT),this.appendValueInput("USERNAME").setCheck(String).appendField(a_.Msg.MIXLY_WIFI_USERNAME).setAlign(a_.inputs.Align.RIGHT),this.appendValueInput("PASSWORD").setCheck(String).appendField(a_.Msg.MIXLY_IOT_PASSWORD).setAlign(a_.inputs.Align.RIGHT),this.appendValueInput("PROJECT").setCheck(String).appendField(a_.Msg.MIXLY_EMQX_PROJECT).setAlign(a_.inputs.Align.RIGHT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Vr={init:function(){this.setColour(Ur),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(a_.Msg.MIXLY_EMQX_PUBLISH_NEW).appendField(a_.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MSG").appendField(a_.Msg.HTML_BODY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_IOT_EMQX_PUBLISH_TOOLTIP)}},kr={init:function(){this.setColour(Ur),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(a_.Msg.MIXLY_EMQX_SUBSCRIBE+a_.Msg.MIXLY_MICROBIT_MSG).appendField(a_.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("METHOD").appendField(a_.Msg.MIXLY_EMQX_SET_METHOD),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_IOT_EMQX_SUBSCRIBE_TOOLTIP)}},wr={init:function(){this.setColour(Ur),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(a_.Msg.MIXLY_ESP32_DISCONNECT_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Wr={init:function(){this.setColour(Ur),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(a_.Msg.MIXLY_EMQX_CONNECT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Kr={init:function(){this.setColour(Ur),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(a_.Msg.MIXLY_ESP32_CHECK_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},zr={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROPYTHON_FORMAT).appendField(a_.Msg.MQTT_Topic),this.setInputsInline(!0),this.setOutput(!0)}},Zr={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROPYTHON_FORMAT).appendField(a_.Msg.MIXLY_EMQX_PUBLISH_MSG),this.setInputsInline(!0),this.setOutput(!0)}},Qr={init:function(){this.setColour(Ur),this.appendValueInput("VAR").appendField(a_.Msg.MIXLY_ESP32_IOT_MAP_FORMATING),this.setOutput(!0)}},Jr={init:function(){this.setColour(Ur),this.appendValueInput("VAR").appendField(a_.Msg.MIXLY_MICROPYTHON_FORMAT+"(Json)"),this.setOutput(!0)}},qr={init:function(){this.setColour(Ur),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(a_.Msg.MIXLY_EMQX_PING),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_IOT_EMQX_PING_TOOLTIP)}},jr={init:function(){this.setColour(Ur),this.appendDummyInput().appendField("MixIO").appendField(a_.Msg.MIXLY_GET_NTP),this.appendValueInput("addr").appendField(a_.Msg.blynk_SERVER_ADD),this.setInputsInline(!0),this.setOutput(!0)}},$r={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(a_.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").appendField(a_.Msg.MIXLY_EMQX_SERVER).setAlign(a_.inputs.Align.RIGHT),this.appendValueInput("KEY").appendField(a_.Msg.CONTROLS_FOR_INPUT_WITH+a_.Msg.MIXLY_MIXIO_SHARE_KEY).setAlign(a_.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},_S={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(a_.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").appendField(a_.Msg.MIXLY_EMQX_SERVER).setAlign(a_.inputs.Align.RIGHT),this.appendValueInput("KEY").appendField(a_.Msg.CONTROLS_FOR_INPUT_WITH+"Mixly Key").setAlign(a_.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},tS={init:function(){this.VISITOR_ID=p_.Config.BOARD.visitorId.str32.substring(0,8).toUpperCase(),this.setColour(Ur),this.appendDummyInput("").appendField(new a_.FieldTextInput(this.visitorId),"VISITOR_ID"),this.setOutput(!0,null)},onchange:function(){const _=this.getFieldValue("VISITOR_ID");this.VISITOR_ID!==_&&this.setFieldValue(this.VISITOR_ID,"VISITOR_ID")}},eS={init:function(){this.setColour(Ur),this.appendDummyInput().appendField("MixIO").appendField(a_.Msg.MSG.catEthernet_clinet),this.setOutput(!0),this.setInputsInline(!0)}},iS={init:function(){this.setColour(Ur),this.appendDummyInput().appendField("HTTP"+a_.Msg.MIXLY_Client),this.appendValueInput("addr").appendField(a_.Msg.DISPLAY_IMAGE_LET2),this.appendDummyInput().appendField(a_.Msg.MIXLY_REQUESTS_GET).appendField(a_.Msg.MIXLY_GET_CURRENT_TIME).appendField(a_.Msg.MIXLY_OPEN_DEBUG).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[a_.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},TS={init:function(){this.setColour(Ur),this.appendDummyInput().appendField("HTTP"+a_.Msg.MIXLY_Client).appendField(a_.Msg.MIXLY_GET).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_REQUESTS_LEN,"client_len"],[a_.Msg.MIXLY_REQUESTS_GET_LEN,"server_len"],[a_.Msg.MIXLY_REQUESTS_MESSAGE,"text"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},ES={init:function(){this.setColour(Ur),this.appendDummyInput().appendField("MQTT"+a_.Msg.MIXLY_Client),this.appendValueInput("addr").appendField(a_.Msg.MIXLY_CONNECTTO),this.appendDummyInput().appendField(a_.Msg.MIXLY_INIT_SUBSCRIBE).appendField(a_.Msg.MQTT_Topic).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_GET_CURRENT_TIME,""]]),"key").appendField(a_.Msg.MIXLY_OPEN_DEBUG).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[a_.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"key2"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},nS={init:function(){this.setColour(Ur),this.appendDummyInput().appendField("MQTT"+a_.Msg.MIXLY_Client).appendField(a_.Msg.MIXLY_GET).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_REQUESTS_LEN,"client_len"],[a_.Msg.MIXLY_REQUESTS_GET_LEN,"server_len"],[a_.Msg.MIXLY_REQUESTS_MESSAGE,"time_msg()"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},oS=Br,sS=gr,OS=Gr,IS=Fr,aS=fr,pS=225,MS={init:function(){this.setColour(pS),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(a_.Msg.MIXLY_NETWORK_INIT),this.appendDummyInput().appendField(a_.Msg.MIXLY_NETWORK_MODE).appendField(new a_.FieldDropdown([["STA","STA"],["AP","AP"]]),"mode"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_NETWORK_INIT_TOOLTIP)}},LS={init:function(){this.setColour(pS),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_NETWORK_WIFI_OPEN,"True"],[a_.Msg.MIXLY_NETWORK_WIFI_CLOSE,"False"]]),"op"),this.appendDummyInput("").appendField(a_.Msg.MIXLY_NETWORK_WIFI_FLAG),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0);var _=this;this.setTooltip((function(){var t=_.getFieldValue("op"),e=a_.Msg.MIXLY_ESP32_NETWORK_OPEN_TOOLTIP;return{True:a_.Msg.MIXLY_NETWORK_WIFI_OPEN,False:a_.Msg.MIXLY_NETWORK_WIFI_CLOSE}[t]+e}))}},RS={init:function(){this.setColour(pS),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(a_.Msg.MIXLY_NETWORK_WIFI_IS_ACTIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_NETWORK_WIFI_IS_ACTIVE)}},rS={init:function(){this.setColour(pS),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(a_.Msg.MIXLY_NETWORK_WIFI_SCAN),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip((function(){return a_.Msg.MIXLY_ESP32_NETWORK_SCAN_TOOLTIP+{0:"ssid",1:"bssid",2:"channel",3:"RSSI",4:"authmode",5:"hidden",all:a_.Msg.MIXLY_NETWORK_WIFI_SCAN_ATTRIBUTE}.all}))}},SS={init:function(){this.setColour(pS),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(a_.Msg.MIXLY_ESP32_NETWORK_CONNECT),this.appendValueInput("id").setCheck(String).appendField(a_.Msg.HTML_NAME),this.appendValueInput("password").setCheck(String).appendField(a_.Msg.HTML_PASSWORD),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_NETWORK_CONNECT_TOOLTIP)}},lS={init:function(){this.setColour(pS),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(a_.Msg.MIXLY_NETWORK_WIFI_CONNECT),this.appendDummyInput("").appendField(a_.Msg.MIXLY_SYMBOL_QUESTION),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_NETWORK_WIFI_CONNECT_TOOLTIP)}},AS={init:function(){this.setColour(pS),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(a_.Msg.MIXLY_ESP32_NETWORK_GET_WIFI),this.appendDummyInput("").appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_ESP32_NETWORK_IP,"0"],[a_.Msg.MIXLY_ESP32_NETWORK_MASK,"1"],[a_.Msg.MIXLY_ESP32_NETWORK_GATEWAY,"2"],["DNS","3"]]),"mode"),this.setOutput(!0),this.setInputsInline(!0);var _=this;this.setTooltip((function(){var t=_.getFieldValue("mode");return a_.Msg.MIXLY_ESP32_NETWORK_GET_WIFI_TOOLTIP+{0:a_.Msg.MIXLY_ESP32_NETWORK_IP,1:a_.Msg.MIXLY_ESP32_NETWORK_MASK,2:a_.Msg.MIXLY_ESP32_NETWORK_GATEWAY,3:"DNS"}[t]}))}},PS={init:function(){this.setColour(pS),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(a_.Msg.MIXLY_ESP32_NETWORK_STOP_CONNECT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_NETWORK_STOP_TOOLTIP)}},NS={init:function(){this.setColour(pS),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(a_.Msg.MIXLY_ESP32_NETWORK_GET_WIFI),this.appendDummyInput().appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_NETWORK_WIFI_ESSID,"essid"],[a_.Msg.MIXLY_NETWORK_WIFI_CHANNEL,"channel"]]),"op"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_NETWORK_GET_WIFI_TOOLTIP)}},dS={init:function(){this.setColour(pS),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(a_.Msg.LISTS_SET_INDEX_SET),this.appendValueInput("essid").setCheck(String).appendField(a_.Msg.MIXLY_NETWORK_WIFI_ESSID),this.appendValueInput("channel").setCheck(Number).appendField(a_.Msg.MIXLY_NETWORK_WIFI_CHANNEL),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_NETWORK_AP_CONNECT_TOOLTIP)}},hS={init:function(){this.setColour(pS),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(a_.Msg.MIXLY_ESP32_NETWORK_SERVER1),this.appendDummyInput("").appendField(a_.Msg.MIXLY_ESP32_NETWORK_SERVER2),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_NETWORK_SOCKET_CLOSE_TOOLTIP)}},uS={init:function(){this.setColour(pS),this.appendValueInput("VAR").appendField(a_.Msg.MIXLY_MICROPYTHON_SOCKET_INIT).setCheck("var"),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROPYTHON_SOCKET_TYPE).appendField(new a_.FieldDropdown([["TCP","TCP"],["UDP","UDP"]]),"mode"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0);var _=this;this.setTooltip((function(){var t=_.getFieldValue("mode");return a_.Msg.MIXLY_ESP32_NETWORK_SOCKET_INIT_TOOLTIP+{TCP:"TCP",UDP:"UDP"}[t]}))}},mS={init:function(){this.setColour(pS),this.appendValueInput("VAR").setCheck("var").appendField(a_.Msg.MIXLY_MICROPYTHON_SOCKET_LET_SOCKET),this.appendValueInput("address").appendField(a_.Msg.MIXLY_MICROPYTHON_SOCKET_BIND_TO_ADDRESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_NETWORK_SOCKET_BIND_TOOLTIP)}},CS={init:function(){this.setColour(pS),this.appendValueInput("VAR").setCheck("var").appendField(a_.Msg.MIXLY_MICROPYTHON_SOCKET_LET_SOCKET),this.appendValueInput("address").appendField(a_.Msg.MIXLY_MICROPYTHON_SOCKET_CONNECT_TO_ADDRESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_NETWORK_SOCKET_CONNECT_TOOLTIP)}},cS={init:function(){this.setColour(pS),this.appendValueInput("VAR").setCheck("var"),this.appendValueInput("queue").setCheck(Number).appendField(a_.Msg.MIXLY_MICROPYTHON_SOCKET_LISTEN).appendField(a_.Msg.MIXLY_MICROPYTHON_SOCKET_QUEUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_NETWORK_SOCKET_LISTEN_TOOLTIP)}},HS={init:function(){this.setColour(pS),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROPYTHON_SOCKET_ACCEPT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_NETWORK_SOCKET_ACCEPT_TOOLTIP)}},DS={init:function(){this.setColour(pS),this.appendValueInput("VAR").setCheck("var").appendField("TCP"),this.appendValueInput("size").setCheck(Number).appendField(a_.Msg.MIXLY_MICROPYTHON_SOCKET_RECEIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_NETWORK_SOCKET_RECEIVE_TOOLTIP)}},YS={init:function(){this.setColour(pS),this.appendValueInput("VAR").setCheck("var").appendField("TCP"),this.appendValueInput("content").appendField(a_.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_NETWORK_SOCKET_SEND_TOOLTIP)}},US={init:function(){this.setColour(pS),this.appendValueInput("VAR").setCheck("var").appendField("UDP"),this.appendValueInput("size").setCheck(Number).appendField(a_.Msg.MIXLY_MICROPYTHON_SOCKET_RECEIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_NETWORK_SOCKET_RECEIVE_FROM_TOOLTIP)}},BS={init:function(){this.setColour(pS),this.appendValueInput("VAR").setCheck("var").appendField("UDP"),this.appendValueInput("content").appendField(a_.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.appendValueInput("address").appendField(a_.Msg.MIXLY_MICROPYTHON_SOCKET_TO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_NETWORK_SOCKET_SEND_TO_TOOLTIP)}},gS={init:function(){this.setColour(pS),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROPYTHON_SOCKET_CLOSE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_NETWORK_SOCKET_CLOSE_TOOLTIP)}},GS={init:function(){this.setColour(pS),this.appendValueInput("DOMAIN").appendField(a_.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(a_.Msg.blockpy_REQUESTS_GET).appendField(new a_.FieldTextInput("response"),"VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(a_.Msg.blockpy_REQUESTS_GET_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(_,t){a_.Names.equals(_,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},FS={init:function(){this.appendValueInput("VAL");var _=[[a_.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE,"status_code"],[a_.Msg.blockpy_REQUESTS_GET_ATTR_TEXT,"text"],[a_.Msg.blockpy_REQUESTS_GET_ATTR_COOKIES,"cookies"],[a_.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT,"content"]];this.setColour(pS),this.appendDummyInput("").appendField(a_.Msg.MIXLY_MICROBIT_JS_GET).appendField(new a_.FieldDropdown(_),"ATTR"),this.setInputsInline(!0),this.setOutput(!0,String);var t=this;this.setTooltip((function(){var _=t.getFieldValue("DIR");return{clear:a_.Msg.MIXLY_TOOLTIP_TURTEL_CLEAR,reset:a_.Msg.MIXLY_TOOLTIP_TURTEL_RESET,home:a_.Msg.MIXLY_TOOLTIP_TURTEL_HOME}[_]}))}},yS={init:function(){this.appendValueInput("VAR").appendField(a_.Msg.DISPLAY_IMAGE_LET2).setCheck(String);this.setColour(pS),this.appendDummyInput("").appendField(a_.Msg.blockpy_CONDUCT).appendField(new a_.FieldDropdown([["post","post"],["put","put"],["delete","delete"],["head","head"],["option","option"]]),"DIR"),this.appendDummyInput("").appendField(a_.Msg.blockpy_REQUESTS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var _=this;this.setTooltip((function(){var t=_.getFieldValue("DIR");return{forward:a_.Msg.MIXLY_TOOLTIP_TURTEL_FORWARD,backward:a_.Msg.MIXLY_TOOLTIP_TURTEL_BACKWARD}[t]}))}},fS={init:function(){this.setColour(pS),this.appendDummyInput("").appendField(a_.Msg.MIXLY_GET_NTP+"(NTP)"),this.appendValueInput("data").appendField(a_.Msg.blynk_SERVER_ADD),this.setOutput(!0,"Tuple"),this.setInputsInline(!0)}},bS={init:function(){this.setColour(pS),this.appendDummyInput("").appendField(new a_.FieldDropdown([["ntp.aliyun.com","ntp.aliyun.com"],["ntp1.aliyun.com","ntp1.aliyun.com"],["ntp2.aliyun.com","ntp2.aliyun.com"],["ntp3.aliyun.com","ntp3.aliyun.com"],["ntp4.aliyun.com","ntp4.aliyun.com"],["ntp5.aliyun.com","ntp5.aliyun.com"],["ntp6.aliyun.com","ntp6.aliyun.com"],["ntp7.aliyun.com","ntp7.aliyun.com"],["time1.cloud.tencent.com","time1.cloud.tencent.com"],["time2.cloud.tencent.com","time2.cloud.tencent.com"],["time3.cloud.tencent.com","time3.cloud.tencent.com"],["time4.cloud.tencent.com","time4.cloud.tencent.com"],["time5.cloud.tencent.com","time5.cloud.tencent.com"]]),"op"),this.setOutput(!0)}},xS=100,vS={init:function(){var _=p_.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==_)var t="CE G6";else if("mixgo_pe"==_)t="PE G1";this.setColour(xS),this.appendValueInput("I2CSUB").appendField(a_.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(a_.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(a_.Msg.MIXLY_SETUP+a_.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(t),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},XS={init:function(){var _=p_.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==_)var t="CE G6";else if("mixgo_pe"==_)t="PE G1";this.setColour(xS),this.appendValueInput("SUB").appendField(t).setCheck("var"),this.appendDummyInput().appendField(a_.Msg.MIXLY_MIXGO_CAR_BATTERY_LEFT),this.setOutput(!0,Number),this.setInputsInline(!0)}},VS={init:function(){var _=p_.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==_)var t="CE G6";else if("mixgo_pe"==_)t="PE G1";this.setColour(xS),this.appendValueInput("SUB").appendField(t).setCheck("var"),this.appendValueInput("PIN").appendField(a_.Msg.MOTOR_DC).appendField(a_.Msg.LCD_NUMBERING),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_Direction).appendField(new a_.FieldDropdown([[a_.Msg.CLOCKWISE,"CW"],[a_.Msg.ANTI_CLOCKWISE,"CCW"],[a_.Msg.MOTOR_P,"P"],[a_.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},kS={init:function(){var _=p_.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==_)var t="CE G6";else if("mixgo_pe"==_)t="PE G1";this.setColour(xS),this.appendValueInput("SUB").appendField(t).setCheck("var"),this.appendValueInput("PIN").appendField(a_.Msg.MOTOR_DC).appendField(a_.Msg.LCD_NUMBERING),this.appendDummyInput().appendField(a_.Msg.MIXLY_STEPPER_GET_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},wS={init:function(){var _=p_.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==_)var t="CE G6";else if("mixgo_pe"==_)t="PE G1";this.setColour(xS),this.appendValueInput("SUB").appendField(t).setCheck("var"),this.appendValueInput("PIN").appendField("180°"+a_.Msg.MIXLY_SERVO).appendField(a_.Msg.LCD_NUMBERING),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_SERVO_MOVE)}},WS={init:function(){var _=p_.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==_)var t="CE G6";else if("mixgo_pe"==_)t="PE G1";this.setColour(xS),this.appendValueInput("SUB").appendField(t).setCheck("var"),this.appendValueInput("PIN").appendField("360°"+a_.Msg.MIXLY_SERVO).appendField(a_.Msg.LCD_NUMBERING),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(a_.inputs.Align.RIGHT).appendField(a_.Msg.MIXLY_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_SERVO_SPEED_TOOLIPS)}},KS={init:function(){var _=p_.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==_)var t="CE G6";else if("mixgo_pe"==_)t="PE G1";this.setColour(xS),this.appendValueInput("SUB").appendField(t).setCheck("var"),this.appendValueInput("PIN").appendField("180°"+a_.Msg.MIXLY_SERVO),this.appendDummyInput().appendField(a_.Msg.MIXLY_GET+a_.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setOutput(!0,Number),this.setInputsInline(!0)}},zS={init:function(){var _=p_.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==_)var t="CE G6";else if("mixgo_pe"==_)t="PE G1";this.setColour(xS),this.appendValueInput("SUB").appendField(t).setCheck("var"),this.appendValueInput("PIN").appendField("360°"+a_.Msg.MIXLY_SERVO).appendField(a_.Msg.LCD_NUMBERING),this.appendDummyInput().appendField(a_.Msg.MIXLY_GET+a_.Msg.MIXLY_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},ZS="#A58C5B",QS={init:function(){this.setColour(ZS),this.appendValueInput("PIN",Number).appendField(a_.Msg.MIXLY_BUTTON).appendField(a_.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(a_.Msg.MIXLY_IS_PRESSED),this.appendValueInput("STAT").appendField(a_.Msg.MIXLY_ELECLEVEL),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_SENOR_IS_PRESSED)}},JS={init:function(){this.setColour(ZS),this.appendValueInput("PIN",Number).appendField(a_.Msg.MIXLY_BUTTON).appendField(a_.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(a_.Msg.MIXLY_WAS_PRESSED),this.appendValueInput("STAT").appendField(a_.Msg.MIXLY_ELECLEVEL),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_SENOR_WAS_PRESSED)}},qS={init:function(){this.setColour(ZS),this.appendValueInput("PIN",Number).appendField(a_.Msg.MIXLY_BUTTON).appendField(a_.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(a_.Msg.MIXLY_GET_PRESSES),this.appendValueInput("VAR").setCheck(Number).appendField(a_.Msg.MIXLY_GET_PRESSES_TIME),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(a_.Msg.PROCEDURES_DEFRETURN_RETURN+a_.Msg.MIXLY_BUTTON+a_.Msg.MIXLY_GET_PRESSES)}},jS={init:function(){this.setColour(ZS),this.appendValueInput("PIN",Number).appendField(a_.Msg.MIXLY_BUTTON).appendField(a_.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(a_.Msg.MIXLY_MODE).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_RISING,"machine.Pin.IRQ_RISING"],[a_.Msg.MIXLY_FALLING,"machine.Pin.IRQ_FALLING"],[a_.Msg.MIXLY_CHANGE,"(machine.Pin.IRQ_RISING | machine.Pin.IRQ_FALLING)"]]),"mode"),this.appendValueInput("DO").appendField(a_.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(a_.Msg.MIXLY_TOOLTIP_INOUT_ATTACHINTERRUPT)}},$S={init:function(){this.setColour(ZS),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput("").appendField(a_.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_MICROBIT_shake,"shake"],[a_.Msg.MIXLY_UP,"up"],[a_.Msg.MIXLY_DOWN,"down"],[a_.Msg.MIXLY_LEFT,"left"],[a_.Msg.MIXLY_RIGHT,"right"],[a_.Msg.MIXLY_MICROBIT_face_up,"face up"],[a_.Msg.MIXLY_MICROBIT_face_down,"face down"],[a_.Msg.MIXLY_MICROBIT_freefall,"freefall"],["3g","3g"],["6g","6g"],["8g","8g"]]),"gesture"),this.appendStatementInput("DO").appendField(a_.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var _=this;this.setTooltip((function(){var t=_.getFieldValue("gesture"),e=a_.Msg.MIXLY_MICROBIT_JS_CURRENT,i=a_.Msg.MSG.catSensor,T=a_.Msg.MIXLY_MICROBIT_JS_STATE,E=a_.Msg.MIXLY_MICROBIT_PERFORMANCE;return e+i+T+{shake:a_.Msg.MIXLY_MICROBIT_shake,up:a_.Msg.MIXLY_UP,down:a_.Msg.MIXLY_DOWN,left:a_.Msg.MIXLY_LEFT,right:a_.Msg.MIXLY_RIGHT,"face up":a_.Msg.MIXLY_MICROBIT_face_up,"face down":a_.Msg.MIXLY_MICROBIT_face_down,freefall:a_.Msg.MIXLY_MICROBIT_freefall,"3g":"3g","6g":"6g","8g":"8g"}[t]+E}))}},_l={init:function(){this.setColour(ZS),this.appendValueInput("SUB").appendField(a_.Msg.MIXLY_ADXL345).setCheck("var"),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_JS_ACCELERATION).appendField(new a_.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var _=this;this.setTooltip((function(){var t=_.getFieldValue("key"),e=a_.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,i=a_.Msg.MIXLY_MICROBIT_Direction,T=a_.Msg.MIXLY_MICROBIT_JS_ACCELERATION1;return e+{x:"x",y:"y",z:"z","(x,y,z)":a_.Msg.MIXLY_MICROBIT_Shiliang_Direction}[t]+i+T}))}},tl={init:function(){this.setColour(ZS),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_JS_LIGHT_LEVEL),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_ESP32_SENSOR_LIGHT_LEVEL_TOOLTIP)}},el={init:function(){var _=[[a_.Msg.MIXLY_GETTEMPERATUE,"temperature"],[a_.Msg.MIXLY_GETHUMIDITY,"humidity"]];this.setColour(ZS),this.appendValueInput("PIN",Number).appendField(new a_.FieldDropdown([["DHT11","DHT11"],["DHT22","DHT22"]]),"TYPE").appendField(a_.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(new a_.FieldDropdown(_),"WHAT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var _=t.getFieldValue("WHAT");return{temperature:a_.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_TEM,relative_humidity:a_.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_HUM,tempandhum:a_.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_TEM_HUM}[_]}))}},il={init:function(){this.setColour(ZS),this.appendDummyInput().appendField(a_.Msg.MIXLY_ESP32_EXTERN_LIGHT),this.appendValueInput("PIN",Number).appendField(a_.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(a_.Msg.MIXLY_ESP32_EXTERN_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(a_.Msg.ESP32_SENSOR_NIXGO_LIGHT_TOOLTIP)}},Tl={init:function(){this.setColour(ZS),this.appendDummyInput().appendField(a_.Msg.MIXLY_ESP32_EXTERN_SOUND),this.appendValueInput("PIN",Number).appendField(a_.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(a_.Msg.MIXLY_ESP32_EXTERN_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(a_.Msg.ESP32_SENSOR_NIXGO_SOUND_TOOLTIP)}},El={init:function(){this.setColour(ZS),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new a_.FieldDropdown([[a_.Msg.TEXT_TRIM_LEFT,"left"],[a_.Msg.TEXT_TRIM_RIGHT,"right"]]),"direction").appendField(a_.Msg.MIXLY_ESP32_NEAR),this.setOutput(!0,Number),this.setInputsInline(!0);var _=this;this.setTooltip((function(){var t=_.getFieldValue("direction"),e=a_.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP,i=a_.Msg.MIXLY_ESP32_NEAR;return e+{left:a_.Msg.TEXT_TRIM_LEFT,right:a_.Msg.TEXT_TRIM_RIGHT}[t]+i}))}},nl={init:function(){this.setColour(ZS),this.appendValueInput("SUB").appendField("BMP280").setCheck("var"),this.appendDummyInput("").appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_GETTEMPERATUE,"get_BMP_temperature()"],[a_.Msg.MIXLY_GETPRESSURE,"get_BMP_pressure()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var _=this;this.setTooltip((function(){var t=_.getFieldValue("key");return{"get_BMP_temperature()":a_.Msg.MIXLY_MICROBIT_SENSOR_BMP_temperature_TOOLTIP,"get_BMP_pressure()":a_.Msg.MIXLY_MICROBIT_SENSOR_BMP_press_TOOLTIP}[t]}))}},ol={init:function(){this.setColour(ZS),this.appendValueInput("SUB").appendField("SHT20").setCheck("var"),this.appendDummyInput("").appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_GETTEMPERATUE,"get_SHT_temperature()"],[a_.Msg.MIXLY_GETHUMIDITY,"get_SHT_relative_humidity()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var _=this;this.setTooltip((function(){var t=_.getFieldValue("key");return{"get_SHT_temperature()":a_.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,"get_SHT_relative_humidity()":a_.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[t]}))}},sl={init:function(){this.setColour(ZS),this.appendValueInput("PIN",Number).appendField("DS18x20 "+a_.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(a_.Msg.MIXLY_GETTEMPERATUE),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(a_.Msg.MIXLY_MICROBIT_SENSOR_DS18X20_TOOLTIP)}},Ol={init:function(){this.setColour(ZS),this.appendDummyInput("").appendField("LM35"+a_.Msg.MIXLY_TEMP),this.appendValueInput("PIN",Number).appendField(a_.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(a_.Msg.MIXLY_GETTEMPERATUE),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(a_.Msg.MIXLY_TOOLTIP_LM35)}},Il={init:function(){this.setColour(ZS),this.appendValueInput("I2CSUB").appendField(a_.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(a_.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(a_.Msg.MIXLY_SETUP+a_.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new a_.FieldDropdown([["MPU9250","MPU9250"],["BMP280","BMP280"],["SHT20","SHT20"],["ADXL345","ADXL345"],["LTR308","LTR308"],["LTR381RGB","LTR381RGB"],["HP203X","HP203X"],["SHTC3","SHTC3"],["AHT21","AHT21"],["VL53L0X","VL53L0X"],["QMC5883L","QMC5883L"],["MAX30102","MAX30102"],["APDS9960","APDS9960"],["RFID","RFID"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setFieldValue("LTR308","key")}},al={init:function(){this.setColour(ZS),this.appendDummyInput().appendField(a_.Msg.MIXLY_ESP32_MAX30102+" MAX30102"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(a_.Msg.MIXLY_GET).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_ESP32_MAX30102_IR,"[0]"],[a_.Msg.MIXLY_ESP32_MAX30102_RED,"[1]"],[a_.Msg.MIXLY_ESP32_MAX30102_IR+","+a_.Msg.MIXLY_ESP32_MAX30102_RED,""]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},pl={init:function(){this.setColour(ZS),this.appendDummyInput().appendField(a_.Msg.MIXLY_ESP32_APDS9960+" APDS9960"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(a_.Msg.MIXLY_GET).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_ESP32_APDS9960_COLOR,"color"],[a_.Msg.MIXLY_ESP32_APDS9960_GESTURE,"gesture"],[a_.Msg.MIXLY_ESP32_APDS9960_APPROACH,"proximity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},Ml={init:function(){this.setColour(ZS),this.appendDummyInput().appendField(a_.Msg.MIXLY_ESP32_EXTERN_LIGHT+" LTR308"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(a_.Msg.MIXLY_GET_LIGHT_INTENSITY),this.setOutput(!0,Number),this.setInputsInline(!0)}},Ll={init:function(){this.setColour(ZS),this.appendValueInput("SUB").appendField(a_.Msg.HTML_COLOUR+a_.Msg.MSG.catSensor+" LTR381RGB").setCheck("var"),this.appendDummyInput("").appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_GET+a_.Msg.HTML_COLOUR,"[2]"],[a_.Msg.MIXLY_GET+a_.Msg.MIXLY_IR_STRENGTH,"[1]"],[a_.Msg.MIXLY_GET+a_.Msg.MIXLY_LIGHT_STRENGTH,"[0]"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},Rl={init:function(){this.setColour(ZS),this.appendValueInput("SUB").appendField(a_.Msg.MIXLY_EXTERN_LIGHTUV+" LTR390UV").setCheck("var"),this.appendDummyInput().appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_GET_ENV_LIGHT,"E"],[a_.Msg.MIXLY_GET_ULTRAVIOLET,"U"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},rl={init:function(){this.setColour(ZS),this.appendDummyInput().appendField(a_.Msg.MIXLY_LASER_RANGE+" VL53L0X"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(a_.Msg.MIXLY_GET_DISTANCE+"(mm)"),this.setOutput(!0,Number),this.setInputsInline(!0)}},Sl={init:function(){this.setColour(ZS),this.appendValueInput("SUB").appendField(a_.Msg.MIXLY_TEM_HUM+" SHTC3").setCheck("var"),this.appendDummyInput("").appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_GETTEMPERATUE,"temperature"],[a_.Msg.MIXLY_GETHUMIDITY,"humidity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var _=this;this.setTooltip((function(){var t=_.getFieldValue("key");return{temperature:a_.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,humidity:a_.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[t]}))}},ll={init:function(){this.setColour(ZS),this.appendValueInput("SUB").appendField(a_.Msg.MIXLY_TEM_HUM+" AHT21").setCheck("var"),this.appendDummyInput("").appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_GETTEMPERATUE,"temperature"],[a_.Msg.MIXLY_GETHUMIDITY,"humidity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var _=this;this.setTooltip((function(){var t=_.getFieldValue("key");return{temperature:a_.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,relative_humidity:a_.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[t]}))}},Al={init:function(){this.setColour(ZS),this.appendValueInput("SUB").appendField(a_.Msg.MIXLY_Altitude+a_.Msg.MSG.catSensor+" HP203X").setCheck("var"),this.appendDummyInput("").appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_GETPRESSURE,"pressure()"],[a_.Msg.MIXLY_GETTEMPERATUE,"temperature()"],[a_.Msg.MIXLY_GET_ALTITUDE,"altitude()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},Pl={init:function(){this.setColour(ZS),this.appendValueInput("SUB").appendField(a_.Msg.MIXLY_MIXGOPE_FIELD+a_.Msg.MSG.catSensor+" QMC5883L").setCheck("var"),this.appendDummyInput("").appendField(a_.Msg.MIXLY_MICROBIT_JS_GET).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"get_bearing()"],[a_.Msg.MIXLY_TEMPERATURE,"get_temp()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},Nl={init:function(){this.setColour(ZS),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput("").appendField(a_.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_MICROBIT_shake,"shake"],[a_.Msg.MIXLY_UP,"up"],[a_.Msg.MIXLY_DOWN,"down"],[a_.Msg.MIXLY_LEFT,"left"],[a_.Msg.MIXLY_RIGHT,"right"],[a_.Msg.MIXLY_MICROBIT_face_up,"face up"],[a_.Msg.MIXLY_MICROBIT_face_down,"face down"]]),"gesture"),this.setOutput(!0);var _=this;this.setTooltip((function(){var t=_.getFieldValue("gesture"),e=a_.Msg.MIXLY_MICROBIT_JS_CURRENT,i=a_.Msg.MSG.catSensor,T=a_.Msg.MIXLY_MICROBIT_JS_STATE,E=a_.Msg.MIXLY_MICROBIT_PERFORMANCE;return e+i+T+{shake:a_.Msg.MIXLY_MICROBIT_shake,up:a_.Msg.MIXLY_UP,down:a_.Msg.MIXLY_DOWN,left:a_.Msg.MIXLY_LEFT,right:a_.Msg.MIXLY_RIGHT,"face up":a_.Msg.MIXLY_MICROBIT_face_up,"face down":a_.Msg.MIXLY_MICROBIT_face_down}[t]+E}))}},dl={init:function(){this.setColour(ZS),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_JS_ACCELERATION).appendField(new a_.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var _=this;this.setTooltip((function(){var t=_.getFieldValue("key"),e=a_.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,i=a_.Msg.MIXLY_MICROBIT_Direction,T=a_.Msg.MIXLY_MICROBIT_JS_ACCELERATION1;return e+{x:"x",y:"y",z:"z","(x,y,z)":a_.Msg.MIXLY_MICROBIT_Shiliang_Direction}[t]+i+T}))}},hl={init:function(){this.setColour(ZS),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_JS_GET+a_.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH).appendField(new a_.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var _=this;this.setTooltip((function(){var t=_.getFieldValue("key"),e=a_.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,i=a_.Msg.MIXLY_MICROBIT_Direction,T=a_.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH;return e+{x:"x",y:"y",z:"z","(x,y,z)":a_.Msg.MIXLY_MICROBIT_Shiliang_Direction}[t]+i+T}))}},ul={init:function(){this.setColour(ZS),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+a_.Msg.MIXLY_ESP32_SENOR_GYRO).appendField(new a_.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var _=this;this.setTooltip((function(){var t=_.getFieldValue("key"),e=a_.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,i=a_.Msg.MIXLY_MICROBIT_Direction,T=a_.Msg.MIXLY_ESP32_SENOR_GYRO;return e+{x:"x",y:"y",z:"z","(x,y,z)":a_.Msg.MIXLY_MICROBIT_Shiliang_Direction}[t]+i+T}))}},ml={init:function(){this.setColour(ZS),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS)}},Cl={init:function(){this.setColour(ZS),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(a_.Msg.MIXLY_GETTEMPERATUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_GETTEMPERATUE)}},cl={init:function(){this.setColour(ZS),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_JS_GET_COMPASS).appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH,"strength"],[a_.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"heading"]]),"compass"),this.setOutput(!0,Number),this.setInputsInline(!0);var _=this;this.setTooltip((function(){var t=_.getFieldValue("compass");return a_.Msg.MIXLY_MICROBIT_JS_GET_COMPASS+{strength:a_.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH,heading:a_.Msg.MIXLY_MICROBIT_JS_BY_ANGLE}[t]}))}},Hl={init:function(){this.setColour(ZS),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(a_.Msg.MIXLY_MICROBIT_Reset_COMPASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(a_.Msg.MIXLY_MICROBIT_Reset_COMPASS)}},Dl={init:function(){this.setColour(ZS),this.appendValueInput("SPISUB").appendField(a_.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("SUB").appendField(a_.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(a_.Msg.MIXLY_SETUP+a_.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new a_.FieldDropdown([["RFID","RFID"],["WS-LoRa","Weather"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setFieldValue("RFID","key")}},Yl={init:function(){this.setColour(ZS),this.appendDummyInput().appendField("RFID"+a_.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(a_.Msg.MIXLY_LIST_INDEX),this.appendDummyInput("").appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_RFID_READ_CARD_UID,"id"],[a_.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL,"content"],[a_.Msg.MIXLY_ALL,"ALL"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},Ul={init:function(){this.setColour(ZS),this.appendDummyInput().appendField("RFID"+a_.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput("").appendField(a_.Msg.MIXLY_RFID_READ_CARD_UID),this.setOutput(!0,Number),this.setInputsInline(!0)}},Bl={init:function(){this.setColour(ZS),this.appendDummyInput().appendField("RFID"+a_.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(a_.Msg.MIXLY_LIST_INDEX),this.appendDummyInput("").appendField(a_.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL),this.setOutput(!0,"Tuple"),this.setInputsInline(!0)}},gl={init:function(){this.setColour(ZS),this.appendDummyInput().appendField(a_.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(a_.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(a_.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Gl={init:function(){this.setColour(ZS),this.appendDummyInput().appendField(a_.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(a_.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(a_.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.appendDummyInput().appendField(a_.Msg.RETURN_SUCCESS_OR_NOT),this.setInputsInline(!0),this.setOutput(!0,Boolean)}},Fl={init:function(){this.setColour(ZS),this.appendDummyInput().appendField("RFID"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput("").appendField(new a_.FieldDropdown([[a_.Msg.MIXLY_RFID_SCAN_OK,"0"],[a_.Msg.MIXLY_RFID_SCAN_NOTAGERR,"1"],[a_.Msg.MIXLY_RFID_SCAN_ERROR,"2"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},yl={init:function(){this.setColour(ZS),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendDummyInput("").appendField(a_.Msg.MIXLY_MICROBIT_JS_GET).appendField(new a_.FieldDropdown([["全部(元组)","data()[0]"],["全部(json)","data()[1]"],["全部(json,附带位置信息)","data()[2]"],["编号","data()[0][0]"],["电量","data()[0][1]"],["风速","data()[0][2]"],["阵风","data()[0][3]"],["风向","data()[0][4]"],["雨量","data()[0][5]"],["温度","data()[0][6]"],["湿度","data()[0][7]"],["光照","data()[0][8]"],["紫外线","data()[0][9]"],["大气压","data()[0][10]"],["信号强度","data()[0][11]"],["信噪比","data()[0][12]"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip("返回气象数据元组 data= (设备id,电池状态,风速m/s,阵风m/s,风向°,雨量mm,温度℃,湿度%,光照Lux,UVI,大气压Pa,信号强度dB,信噪比dB)")}},fl={init:function(){this.setColour(ZS),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendDummyInput("").appendField(a_.Msg.MIXLY_SERIAL_AVAILABLE),this.setOutput(!0,Number),this.setInputsInline(!0)}},bl={init:function(){this.setColour(ZS),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendValueInput("BASE").appendField("以主题"),this.appendDummyInput("").appendField("串口发送至MixIO"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},xl={init:function(){this.setColour(ZS),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.itemCount_=2,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new a_.icons.MutatorIcon(["weather_set_label_item"],this)),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip()},mutationToDom:function(){var _=document.createElement("mutation");return _.setAttribute("items",this.itemCount_),_},domToMutation:function(_){this.itemCount_=parseInt(_.getAttribute("items"),10),this.updateShape_()},decompose:function(_){var t=_.newBlock("weather_set_label_container");t.initSvg();for(var e=t.getInput("STACK").connection,i=0;i>6),e.push(128|63&E)):(2048<=E&&E<=55295||57344<=E&&E<=65535)&&(i+=3,e.push(224|15&E>>12),e.push(128|63&E>>6),e.push(128|63&E))}for(T=0;T>8,255&i].concat(e)}(_,!0),e="",i=0;i=0?"0x700000":["mixgo_zero"].indexOf(i)>=0?"0xE00000":"0x3A0000","32x12 Matrix"==n?(t.definitions_.import_matrix32x12="import matrix32x12",e=T+" = matrix32x12.Matrix("+E+",font_address="+o+")\n"):"16x8 Matrix"==n&&(t.definitions_.import_matrix16x8="import matrix16x8",e=T+" = matrix16x8.Matrix("+E+")\n"),e},Qm=function(_,t){return t.valueToCode(this,"SUB",t.ORDER_ATOMIC)+".shows("+t.valueToCode(this,"data",t.ORDER_ASSIGNMENT)+")\n"},Jm=function(_,t){return t.valueToCode(this,"SUB",t.ORDER_ATOMIC)+".shows("+t.valueToCode(this,"data",t.ORDER_ASSIGNMENT)+",space = "+t.valueToCode(this,"space",t.ORDER_ASSIGNMENT)+",center = "+this.getFieldValue("center")+")\n"},qm=function(_,t){return t.valueToCode(this,"SUB",t.ORDER_ATOMIC)+".frame("+t.valueToCode(this,"data",t.ORDER_ASSIGNMENT)+")\n"},jm=function(_,t){return t.valueToCode(this,"SUB",t.ORDER_ATOMIC)+".frame("+t.valueToCode(this,"data",t.ORDER_ASSIGNMENT)+",delay = "+t.valueToCode(this,"time",t.ORDER_ASSIGNMENT)+")\n"},$m=function(_,t){return t.valueToCode(this,"SUB",t.ORDER_ATOMIC)+".scroll("+t.valueToCode(this,"data",t.ORDER_ASSIGNMENT)+")\n"},_C=function(_,t){return t.valueToCode(this,"SUB",t.ORDER_ATOMIC)+".scroll("+t.valueToCode(this,"data",t.ORDER_ASSIGNMENT)+",speed ="+t.valueToCode(this,"time",t.ORDER_ASSIGNMENT)+",space = "+t.valueToCode(this,"space",t.ORDER_ASSIGNMENT)+")\n"},tC=function(_,t){var e=t.valueToCode(this,"SUB",t.ORDER_ATOMIC);return e+".fill(0)\n"+e+".show()\n"},eC=function(_,t){return t.valueToCode(this,"SUB",t.ORDER_ATOMIC)+"."+_.getFieldValue("OP")+"("+t.valueToCode(_,"val",t.ORDER_ATOMIC)+")\n"},iC=function(_,t){return[t.valueToCode(this,"SUB",t.ORDER_ATOMIC)+".pixel(int("+t.valueToCode(_,"x",t.ORDER_ATOMIC)+"), int("+t.valueToCode(_,"y",t.ORDER_ATOMIC)+"))",t.ORDER_ATOMIC]},TC=function(_,t){var e=t.valueToCode(this,"SUB",t.ORDER_ATOMIC);return e+".pixel(int("+t.valueToCode(this,"x",t.ORDER_ASSIGNMENT)+"), int("+t.valueToCode(this,"y",t.ORDER_ASSIGNMENT)+"), "+t.valueToCode(this,"STAT",t.ORDER_ATOMIC)+")\n"+e+".show()\n"},EC=function(_,t){return[t.valueToCode(this,"SUB",t.ORDER_ATOMIC)+".get_brightness()",t.ORDER_ATOMIC]},nC=function(_,t){return t.valueToCode(this,"SUB",t.ORDER_ATOMIC)+".set_brightness("+t.valueToCode(this,"x",t.ORDER_ASSIGNMENT)+")\n"},oC=function(_,t){return[t.valueToCode(this,"SUB",t.ORDER_ATOMIC)+"."+_.getFieldValue("image"),t.ORDER_ATOMIC]},sC=function(_,t){return[t.valueToCode(this,"SUB",t.ORDER_ATOMIC)+".map_"+_.getFieldValue("OP")+"("+t.valueToCode(_,"A",t.ORDER_ATOMIC)+","+t.valueToCode(_,"B",t.ORDER_ATOMIC)+")",t.ORDER_ATOMIC]},OC=function(_,t){return[t.valueToCode(this,"SUB",t.ORDER_ATOMIC)+".map_invert("+t.valueToCode(_,"A",t.ORDER_ATOMIC)+")",t.ORDER_ATOMIC]},IC=function(_,t){t.definitions_.import_machine="import machine",t.definitions_.import_ssd1306="import ssd1306";var e=t.valueToCode(this,"I2CSUB",t.ORDER_ATOMIC);return t.valueToCode(this,"SUB",t.ORDER_ATOMIC)+" = ssd1306.SSD1306_I2C("+t.valueToCode(this,"row",t.ORDER_ATOMIC)+","+t.valueToCode(this,"column",t.ORDER_ATOMIC)+","+e+")\n"},aC=function(_,t){return t.definitions_.import_machine="import machine",t.definitions_.import_ssd1306="import ssd1306",t.valueToCode(this,"VAR",t.ORDER_ATOMIC)+".show_str("+(t.valueToCode(this,"Text_line1",t.ORDER_ASSIGNMENT)||"''")+","+(t.valueToCode(this,"Text_line2",t.ORDER_ASSIGNMENT)||"''")+","+(t.valueToCode(this,"Text_line3",t.ORDER_ASSIGNMENT)||"''")+","+(t.valueToCode(this,"Text_line4",t.ORDER_ASSIGNMENT)||"''")+")\n"},pC=function(_,t){return t.definitions_.import_machine="import machine",t.definitions_.import_ssd1306="import ssd1306",t.valueToCode(this,"VAR",t.ORDER_ATOMIC)+".show_line("+t.valueToCode(this,"x1",t.ORDER_ATOMIC)+", "+t.valueToCode(this,"y1",t.ORDER_ATOMIC)+", "+t.valueToCode(this,"x2",t.ORDER_ATOMIC)+", "+t.valueToCode(this,"y2",t.ORDER_ATOMIC)+", 1)\n"},MC=function(_,t){t.definitions_.import_machine="import machine",t.definitions_.import_ssd1306="import ssd1306";var e=t.valueToCode(this,"VAR",t.ORDER_ATOMIC),i=t.valueToCode(this,"x",t.ORDER_ATOMIC),T=t.valueToCode(this,"y",t.ORDER_ATOMIC),E=t.valueToCode(this,"width",t.ORDER_ATOMIC),n=t.valueToCode(this,"height",t.ORDER_ATOMIC),o="TRUE"==this.getFieldValue("fill")?"True":"False",s=this.getFieldValue("OP");switch(o){case"True":return e+".show_fill_rect("+i+", "+T+", "+E+", "+n+","+s+")\n";case"False":return e+".show_rect("+i+", "+T+", "+E+", "+n+","+s+")\n"}},LC=function(_,t){t.definitions_.import_machine="import machine",t.definitions_.import_ssd1306="import ssd1306";var e=t.valueToCode(this,"VAR",t.ORDER_ATOMIC),i=t.valueToCode(this,"x",t.ORDER_ATOMIC),T=t.valueToCode(this,"y",t.ORDER_ATOMIC),E=t.valueToCode(this,"length",t.ORDER_ATOMIC);return e+".show_"+this.getFieldValue("direction")+"("+i+", "+T+", "+E+", 1)\n"},RC=function(_,t){return["ON"==this.getFieldValue("ONOFF")?"1":"0",t.ORDER_ATOMIC]},rC=function(_,t){t.definitions_.import_matrix="import matrix";var e=_.getFieldValue("OP");return[t.valueToCode(_,"img",t.ORDER_ATOMIC)+".shift_"+e+"("+t.valueToCode(_,"val",t.ORDER_ATOMIC)+")",t.ORDER_ATOMIC]},SC=function(_,t){var e=t.valueToCode(this,"SUB",t.ORDER_ATOMIC);return t.definitions_.import_ssd1306="import ssd1306",t.definitions_.import_machine="import machine",e+".show_fill("+this.getFieldValue("key")+")\n"},lC=function(_,t){return["matrix.Image."+this.getFieldValue("ANIMATION"),t.ORDER_ATOMIC]},AC=function(_,t){var e=t.valueToCode(this,"VAR",t.ORDER_ATOMIC);t.definitions_.import_machine="import machine",t.definitions_.import_ssd1306="import ssd1306";var i=t.valueToCode(this,"x",t.ORDER_ATOMIC),T=t.valueToCode(this,"y",t.ORDER_ATOMIC),E=t.valueToCode(this,"r",t.ORDER_ATOMIC),n="TRUE"==this.getFieldValue("fill")?"True":"False",o=this.getFieldValue("OP");switch(n){case"True":return e+".show_fill_circle("+i+", "+T+", "+E+", "+o+")\n";case"False":return e+".show_circle("+i+", "+T+", "+E+", "+o+")\n"}},PC=function(_,t){var e=t.valueToCode(this,"VAR",t.ORDER_ATOMIC);t.definitions_.import_machine="import machine",t.definitions_.import_ssd1306="import ssd1306";var i=t.valueToCode(this,"x0",t.ORDER_ATOMIC),T=t.valueToCode(this,"y0",t.ORDER_ATOMIC),E=t.valueToCode(this,"x1",t.ORDER_ATOMIC),n=t.valueToCode(this,"y1",t.ORDER_ATOMIC),o=t.valueToCode(this,"x2",t.ORDER_ATOMIC),s=t.valueToCode(this,"y2",t.ORDER_ATOMIC),O="TRUE"==this.getFieldValue("fill")?"True":"False",I=this.getFieldValue("OP");switch(O){case"True":return e+".show_fill_triangle("+i+", "+T+", "+E+", "+n+", "+o+", "+s+", "+I+")\n";case"False":return e+".show_triangle("+i+", "+T+", "+E+", "+n+", "+o+", "+s+", "+I+")\n"}},NC=function(_,t){return t.definitions_.import_machine="import machine",t.definitions_.import_ssd1306="import ssd1306",t.valueToCode(this,"VAR",t.ORDER_ATOMIC)+".show_bitmap("+t.valueToCode(this,"START_X",t.ORDER_ATOMIC)+", "+t.valueToCode(this,"START_Y",t.ORDER_ATOMIC)+", "+t.valueToCode(this,"bitmap_name",t.ORDER_ATOMIC)+","+t.valueToCode(this,"WIDTH",t.ORDER_ATOMIC)+","+t.valueToCode(this,"HEIGHT",t.ORDER_ATOMIC)+")\n"},dC=function(_,t){return t.definitions_.import_machine="import machine",t.definitions_.import_ssd1306="import ssd1306",t.valueToCode(this,"VAR",t.ORDER_ATOMIC)+".show_pixel("+t.valueToCode(this,"POS_X",t.ORDER_ATOMIC)+", "+t.valueToCode(this,"POS_Y",t.ORDER_ATOMIC)+")\n"},hC=function(_,t){var e,i=t.valueToCode(this,"SUB",t.ORDER_ATOMIC),T=t.valueToCode(this,"I2CSUB",t.ORDER_ATOMIC),E=this.getFieldValue("key");return"TM1650"==E?(t.definitions_.import_tm1650="import tm1650",e=i+" = tm1650."+E+"("+T+")\n"):"TM1637"==E&&(t.definitions_.import_tm1637="import tm1637",e=i+" = tm1637."+E+"("+T+")\n"),e},uC=function(_,t){return t.valueToCode(this,"VAR",t.ORDER_ATOMIC)+"."+this.getFieldValue("STAT")+"()\n"},mC=function(_,t){return t.valueToCode(this,"VAR",t.ORDER_ATOMIC)+".shownum("+t.valueToCode(this,"VALUE",t.ORDER_ATOMIC)+")\n"},CC=function(_,t){return t.valueToCode(this,"VAR",t.ORDER_ATOMIC)+".showDP("+t.valueToCode(this,"NO",t.ORDER_ATOMIC)+", "+t.valueToCode(this,"STAT",t.ORDER_ATOMIC)+")\n"},cC=function(_,t){return t.valueToCode(this,"VAR",t.ORDER_ATOMIC)+".intensity("+t.valueToCode(this,"VALUE",t.ORDER_ATOMIC)+")\n"},HC=function(_,t){t.definitions_.import_st7789="import st7789";var e=p_.Boards.getSelectedBoardKey().split(":")[2],i="";i=["mpython","mixgo_pe","mixgo_nova"].indexOf(e)>=0?"0x700000":["mixgo_zero"].indexOf(e)>=0?"0xE00000":"0x3A0000";var T=t.valueToCode(this,"SUB",t.ORDER_ATOMIC),E=t.valueToCode(this,"SPISUB",t.ORDER_ATOMIC),n=t.valueToCode(this,"PINCS",t.ORDER_ATOMIC),o=t.valueToCode(this,"PINDC",t.ORDER_ATOMIC);return T+" = st7789.ST7789("+E+","+t.valueToCode(this,"WIDTH",t.ORDER_ATOMIC)+","+t.valueToCode(this,"HEIGHT",t.ORDER_ATOMIC)+",dc_pin="+o+",cs_pin="+n+",rotation="+this.getFieldValue("rotate")+",font_address="+i+")\n"},DC=function(_,t){t.definitions_.import_st7789="import st7789";var e=t.valueToCode(this,"SUB",t.ORDER_ATOMIC),i=t.valueToCode(this,"data",t.ORDER_ASSIGNMENT),T=t.valueToCode(this,"x",t.ORDER_ASSIGNMENT),E=t.valueToCode(this,"y",t.ORDER_ASSIGNMENT),n=t.valueToCode(this,"size",t.ORDER_ASSIGNMENT),o=t.valueToCode(this,"VAR",t.ORDER_ATOMIC);if("0x"==o.slice(0,2))var s=e+".image("+i+",x = "+T+",y = "+E+",size = "+n+",color="+o+")\n";else{const _=o.match(/\d+/g);var O="0x"+((parseInt(_[0])<<16)+(parseInt(_[1])<<8)+parseInt(_[2])).toString(16).padStart(4,"0");s=e+".image("+i+",x = "+T+",y = "+E+",size = "+n+",color=0x"+((16252928&O)>>8|(64512&O)>>5|(255&O)>>3).toString(16)+")\n"}return s},YC=function(_,t){var e="0x"+this.getFieldValue("COLOR").slice(1);return["0x"+((16252928&e)>>8|(64512&e)>>5|(255&e)>>3).toString(16),t.ORDER_ATOMIC]},UC=function(_,t){t.definitions_.import_st7789="import st7789";var e=t.valueToCode(this,"SUB",t.ORDER_ATOMIC),i=t.valueToCode(this,"data",t.ORDER_ASSIGNMENT),T=t.valueToCode(this,"x",t.ORDER_ASSIGNMENT),E=t.valueToCode(this,"y",t.ORDER_ASSIGNMENT),n=t.valueToCode(this,"size",t.ORDER_ASSIGNMENT),o=t.valueToCode(this,"space",t.ORDER_ASSIGNMENT),s=t.valueToCode(this,"VAR",t.ORDER_ATOMIC),O=this.getFieldValue("center");if("0x"==s.slice(0,2))var I=e+".shows("+i+",x = "+T+",y = "+E+",size = "+n+",space = "+o+",center = "+O+",color="+s+")\n";else{const _=s.match(/\d+/g);var a="0x"+((parseInt(_[0])<<16)+(parseInt(_[1])<<8)+parseInt(_[2])).toString(16).padStart(4,"0");I=e+".shows("+i+",x = "+T+",y = "+E+",size = "+n+",space = "+o+",center = "+O+",color=0x"+((16252928&a)>>8|(64512&a)>>5|(255&a)>>3).toString(16)+")\n"}return I},BC=function(_,t){t.definitions_.import_st7789="import st7789";var e=t.valueToCode(this,"SUB",t.ORDER_ATOMIC),i=t.valueToCode(this,"data",t.ORDER_ASSIGNMENT),T=t.valueToCode(this,"size",t.ORDER_ASSIGNMENT),E=t.valueToCode(this,"time",t.ORDER_ASSIGNMENT),n=t.valueToCode(this,"VAR",t.ORDER_ATOMIC);if("0x"==n.slice(0,2))var o=e+".frame("+i+",size = "+T+",delay = "+E+",color="+n+")\n";else{const _=n.match(/\d+/g);var s="0x"+((parseInt(_[0])<<16)+(parseInt(_[1])<<8)+parseInt(_[2])).toString(16).padStart(4,"0");o=e+".frame("+i+",size = "+T+",delay = "+E+",color=0x"+((16252928&s)>>8|(64512&s)>>5|(255&s)>>3).toString(16)+")\n"}return o},gC=function(_,t){t.definitions_.import_st7789="import st7789";var e=t.valueToCode(this,"SUB",t.ORDER_ATOMIC),i=t.valueToCode(this,"data",t.ORDER_ASSIGNMENT),T=t.valueToCode(this,"y",t.ORDER_ASSIGNMENT),E=t.valueToCode(this,"size",t.ORDER_ASSIGNMENT),n=t.valueToCode(this,"time",t.ORDER_ASSIGNMENT),o=t.valueToCode(this,"space",t.ORDER_ASSIGNMENT),s=t.valueToCode(this,"VAR",t.ORDER_ATOMIC);if("0x"==s.slice(0,2))var O=e+".scroll("+i+",y = "+T+",size = "+E+",speed ="+n+",space = "+o+",color="+s+")\n";else{const _=s.match(/\d+/g);var I="0x"+((parseInt(_[0])<<16)+(parseInt(_[1])<<8)+parseInt(_[2])).toString(16).padStart(4,"0");O=e+".scroll("+i+",y = "+T+",size = "+E+",speed ="+n+",space = "+o+",color=0x"+((16252928&I)>>8|(64512&I)>>5|(255&I)>>3).toString(16)+")\n"}return O},GC=function(_,t){return t.definitions_.import_st7789="import st7789",t.valueToCode(this,"SUB",t.ORDER_ATOMIC)+".fill(st7789."+this.getFieldValue("key")+")\n"},FC=function(_,t){t.definitions_.import_st7789="import st7789";var e=t.valueToCode(this,"SUB",t.ORDER_ATOMIC),i=t.valueToCode(this,"x1",t.ORDER_ATOMIC),T=t.valueToCode(this,"y1",t.ORDER_ATOMIC),E=t.valueToCode(this,"x2",t.ORDER_ATOMIC),n=t.valueToCode(this,"y2",t.ORDER_ATOMIC),o=t.valueToCode(this,"VAR",t.ORDER_ATOMIC);if("0x"==o.slice(0,2))var s=e+".line("+i+", "+T+", "+E+", "+n+", color="+o+")\n";else{const _=o.match(/\d+/g);var O="0x"+((parseInt(_[0])<<16)+(parseInt(_[1])<<8)+parseInt(_[2])).toString(16).padStart(4,"0");s=e+".line("+i+", "+T+", "+E+", "+n+", color=0x"+((16252928&O)>>8|(64512&O)>>5|(255&O)>>3).toString(16)+")\n"}return s},yC=function(_,t){var e=t.valueToCode(this,"SUB",t.ORDER_ATOMIC),i=t.valueToCode(this,"I2CSUB",t.ORDER_ATOMIC),T=this.getFieldValue("key"),E=t.valueToCode(this,"ADDR",t.ORDER_ATOMIC);return t.definitions_.import_i2clcd="import i2clcd",e+" = i2clcd.LCD("+i+",lcd_width="+T+",i2c_addr="+E+")\n"},fC=function(_,t){return t.definitions_.import_i2clcd="import i2clcd",t.valueToCode(this,"SUB",t.ORDER_ATOMIC)+".shows("+t.valueToCode(this,"data",t.ORDER_ASSIGNMENT)+",column = "+t.valueToCode(this,"x",t.ORDER_ASSIGNMENT)+",line = "+t.valueToCode(this,"y",t.ORDER_ASSIGNMENT)+",center = "+this.getFieldValue("center")+")\n"},bC=function(_,t){return t.definitions_.import_i2clcd="import i2clcd",t.valueToCode(this,"SUB",t.ORDER_ATOMIC)+".print("+t.valueToCode(this,"data",t.ORDER_ASSIGNMENT)+",column = "+t.valueToCode(this,"x",t.ORDER_ASSIGNMENT)+",line = "+t.valueToCode(this,"y",t.ORDER_ASSIGNMENT)+",delay="+t.valueToCode(this,"time",t.ORDER_ASSIGNMENT)+")\n"},xC=function(_,t){return t.definitions_.import_i2clcd="import i2clcd",t.valueToCode(this,"SUB",t.ORDER_ATOMIC)+".backlight("+this.getFieldValue("key")+")\n"},vC=function(_,t){return t.definitions_.import_i2clcd="import i2clcd",t.valueToCode(this,"SUB",t.ORDER_ATOMIC)+".clear()\n"},XC=function(_,t){var e=t.valueToCode(this,"SUB",t.ORDER_ATOMIC),i=t.valueToCode(this,"I2CSUB",t.ORDER_ATOMIC),T=t.valueToCode(this,"ADDR",t.ORDER_ATOMIC),E=p_.Boards.getSelectedBoardKey().split(":")[2],n="";return n=["mpython","mixgo_pe","mixgo_nova"].indexOf(E)>=0?"0x700000":["mixgo_zero"].indexOf(E)>=0?"0xE00000":"0x3A0000",t.definitions_.import_oled128x64="import oled128x64",e+" = oled128x64.OLED("+i+",address="+T+",font_address="+n+")\n"},VC=function(_,t){return t.definitions_.import_oled128x64="import oled128x64",t.valueToCode(this,"SUB",t.ORDER_ATOMIC)+".image("+t.valueToCode(this,"data",t.ORDER_ASSIGNMENT)+")\n"},kC=function(_,t){return t.definitions_.import_oled128x64="import oled128x64",t.valueToCode(this,"SUB",t.ORDER_ATOMIC)+".image("+t.valueToCode(this,"data",t.ORDER_ASSIGNMENT)+",x = "+t.valueToCode(this,"x",t.ORDER_ASSIGNMENT)+",y = "+t.valueToCode(this,"y",t.ORDER_ASSIGNMENT)+",size = "+t.valueToCode(this,"size",t.ORDER_ASSIGNMENT)+")\n"},wC=function(_,t){return t.definitions_.import_oled128x64="import oled128x64",t.valueToCode(this,"SUB",t.ORDER_ATOMIC)+".shows("+t.valueToCode(this,"data",t.ORDER_ASSIGNMENT)+")\n"},WC=function(_,t){return t.definitions_.import_oled128x64="import oled128x64",t.valueToCode(this,"SUB",t.ORDER_ATOMIC)+".shows("+t.valueToCode(this,"data",t.ORDER_ASSIGNMENT)+",x = "+t.valueToCode(this,"x",t.ORDER_ASSIGNMENT)+",y = "+t.valueToCode(this,"y",t.ORDER_ASSIGNMENT)+",size = "+t.valueToCode(this,"size",t.ORDER_ASSIGNMENT)+",space = "+t.valueToCode(this,"space",t.ORDER_ASSIGNMENT)+",center = "+this.getFieldValue("center")+")\n"},KC=function(_,t){return t.definitions_.import_oled128x64="import oled128x64",t.valueToCode(this,"SUB",t.ORDER_ATOMIC)+".frame("+t.valueToCode(this,"data",t.ORDER_ASSIGNMENT)+")\n"},zC=function(_,t){return t.definitions_.import_oled128x64="import oled128x64",t.valueToCode(this,"SUB",t.ORDER_ATOMIC)+".frame("+t.valueToCode(this,"data",t.ORDER_ASSIGNMENT)+",size = "+t.valueToCode(this,"size",t.ORDER_ASSIGNMENT)+",delay = "+t.valueToCode(this,"time",t.ORDER_ASSIGNMENT)+")\n"},ZC=function(_,t){return t.definitions_.import_oled128x64="import oled128x64",t.valueToCode(this,"SUB",t.ORDER_ATOMIC)+".scroll("+t.valueToCode(this,"data",t.ORDER_ASSIGNMENT)+")\n"},QC=function(_,t){return t.definitions_.import_oled128x64="import oled128x64",t.valueToCode(this,"SUB",t.ORDER_ATOMIC)+".scroll("+t.valueToCode(this,"data",t.ORDER_ASSIGNMENT)+",y = "+t.valueToCode(this,"y",t.ORDER_ASSIGNMENT)+",size = "+t.valueToCode(this,"size",t.ORDER_ASSIGNMENT)+",speed ="+t.valueToCode(this,"time",t.ORDER_ASSIGNMENT)+",space = "+t.valueToCode(this,"space",t.ORDER_ASSIGNMENT)+")\n"},JC=function(_,t){t.definitions_.import_oled128x64="import oled128x64";var e=t.valueToCode(this,"SUB",t.ORDER_ATOMIC);return e+".fill(0)\n"+e+".show()\n"},qC=function(_,t){return t.definitions_.import_oled128x64="import oled128x64",t.valueToCode(this,"SUB",t.ORDER_ATOMIC)+"."+_.getFieldValue("OP")+"("+t.valueToCode(_,"val",t.ORDER_ATOMIC)+")\n"},jC=function(_,t){return t.definitions_.import_oled128x64="import oled128x64",[t.valueToCode(this,"SUB",t.ORDER_ATOMIC)+".pixel(int("+t.valueToCode(_,"x",t.ORDER_ATOMIC)+"), int("+t.valueToCode(_,"y",t.ORDER_ATOMIC)+"))",t.ORDER_ATOMIC]},$C=function(_,t){t.definitions_.import_oled128x64="import oled128x64";var e=t.valueToCode(this,"SUB",t.ORDER_ATOMIC);return e+".pixel(int("+t.valueToCode(this,"x",t.ORDER_ASSIGNMENT)+"), int("+t.valueToCode(this,"y",t.ORDER_ASSIGNMENT)+"), "+t.valueToCode(this,"STAT",t.ORDER_ATOMIC)+")\n"+e+".show()\n"},_c=function(_,t){t.definitions_.import_oled128x64="import oled128x64";var e=t.valueToCode(this,"SUB",t.ORDER_ATOMIC),i=t.valueToCode(_,"x",t.ORDER_ATOMIC),T=t.valueToCode(_,"y",t.ORDER_ATOMIC),E=t.valueToCode(_,"w",t.ORDER_ATOMIC),n=t.valueToCode(_,"h",t.ORDER_ATOMIC),o=_.getFieldValue("state");return e+"."+_.getFieldValue("shape")+"("+i+", "+T+", "+E+", "+n+", "+o+")\n"+e+".show()\n"},tc=function(_,t){t.definitions_.import_oled128x64="import oled128x64";var e=t.valueToCode(this,"SUB",t.ORDER_ATOMIC),i=t.valueToCode(_,"x",t.ORDER_ATOMIC),T=t.valueToCode(_,"y",t.ORDER_ATOMIC),E=t.valueToCode(_,"length",t.ORDER_ATOMIC),n=_.getFieldValue("state");return e+"."+("0"==_.getFieldValue("dir_h_v")?"v":"h")+"line("+i+", "+T+", "+E+", "+n+")\n"+e+".show()\n"},ec=function(_,t){t.definitions_.import_oled128x64="import oled128x64";var e=t.valueToCode(this,"SUB",t.ORDER_ATOMIC);return e+".line("+t.valueToCode(_,"x1",t.ORDER_ATOMIC)+", "+t.valueToCode(_,"y1",t.ORDER_ATOMIC)+", "+t.valueToCode(_,"x2",t.ORDER_ATOMIC)+", "+t.valueToCode(_,"y2",t.ORDER_ATOMIC)+", "+_.getFieldValue("state")+")\n"+e+".show()\n"},ic=function(_,t){var e=p_.Boards.getSelectedBoardKey().split(":")[2];return t.definitions_["import_"+e+"_onboard_matrix"]="from "+e+" import onboard_matrix","onboard_matrix.shows("+t.valueToCode(this,"data",t.ORDER_ASSIGNMENT)+")\n"},Tc=function(_,t){var e=p_.Boards.getSelectedBoardKey().split(":")[2],i=t.valueToCode(this,"data",t.ORDER_ASSIGNMENT),T=t.valueToCode(this,"space",t.ORDER_ASSIGNMENT),E=this.getFieldValue("center");return"mixgo_zero"==e||"mixgo_nova"==e?(t.definitions_["import_"+e+"_onboard_tft"]="from "+e+" import onboard_tft","onboard_tft.shows("+i+",space = "+T+",center = "+E+")\n"):(t.definitions_["import_"+e+"_onboard_matrix"]="from "+e+" import onboard_matrix","onboard_matrix.shows("+i+",space = "+T+",center = "+E+")\n")},Ec=function(_,t){var e=p_.Boards.getSelectedBoardKey().split(":")[2];if("mpython"==e){t.definitions_["import_"+e+"_onboard_oled"]="from "+e+" import onboard_oled";var i="onboard_oled.frame("+t.valueToCode(this,"data",t.ORDER_ASSIGNMENT)+")\n"}else{t.definitions_["import_"+e+"_onboard_matrix"]="from "+e+" import onboard_matrix";i="onboard_matrix.frame("+t.valueToCode(this,"data",t.ORDER_ASSIGNMENT)+")\n"}return i},nc=function(_,t){var e=p_.Boards.getSelectedBoardKey().split(":")[2];return t.definitions_["import_"+e+"_onboard_matrix"]="from "+e+" import onboard_matrix","onboard_matrix.frame("+t.valueToCode(this,"data",t.ORDER_ASSIGNMENT)+",delay = "+t.valueToCode(this,"time",t.ORDER_ASSIGNMENT)+")\n"},oc=function(_,t){var e=p_.Boards.getSelectedBoardKey().split(":")[2];if("mpython"==e){t.definitions_["import_"+e+"_onboard_oled"]="from "+e+" import onboard_oled";var i="onboard_oled.scroll("+t.valueToCode(this,"data",t.ORDER_ASSIGNMENT)+")\n"}else{t.definitions_["import_"+e+"_onboard_matrix"]="from "+e+" import onboard_matrix";i="onboard_matrix.scroll("+t.valueToCode(this,"data",t.ORDER_ASSIGNMENT)+")\n"}return i},sc=function(_,t){var e=p_.Boards.getSelectedBoardKey().split(":")[2];return t.definitions_["import_"+e+"_onboard_matrix"]="from "+e+" import onboard_matrix","onboard_matrix.scroll("+t.valueToCode(this,"data",t.ORDER_ASSIGNMENT)+",speed ="+t.valueToCode(this,"time",t.ORDER_ASSIGNMENT)+",space = "+t.valueToCode(this,"space",t.ORDER_ASSIGNMENT)+")\n"},Oc=function(_,t){var e=p_.Boards.getSelectedBoardKey().split(":")[2];return t.definitions_["import_"+e+"_onboard_matrix"]="from "+e+" import onboard_matrix",["onboard_matrix."+_.getFieldValue("image"),t.ORDER_ATOMIC]},Ic=function(_,t){var e=p_.Boards.getSelectedBoardKey().split(":")[2];return t.definitions_["import_"+e+"_onboard_matrix"]="from "+e+" import onboard_matrix",["onboard_matrix."+_.getFieldValue("image"),t.ORDER_ATOMIC]},ac=function(_,t){var e={"#000000":"0","#ff0000":"1"};function i(_){let t="";if(_.length%2==1&&(_="0"+_),_.length<8){let t=8-_.length;for(let e=1;e<=t;e++)_="0"+_}for(let e=1;e<=_.length;e++)e%2==0&&e!==_.length?t=t+_[e-1]+",0x":t+=_[e-1];return"0x"+t}let T=[];for(let t=0;t<12;t++){let E="",n=0,o=0;for(let i=0;i<32;i++)i<8?o=7-i:i<16?o=23-i:i<24?o=39-i:i<32&&(o=55-i),n+=Number(e[_.getFieldValue(t+"-"+i)])*Math.pow(2,31-o);E+=i(n.toString(16)),T.unshift(E)}let E=[];for(let _=0;_>8|(64512&O)>>5|(255&O)>>3).toString(16)+")\n"}return s},kc=function(_,t){var e=p_.Boards.getSelectedBoardKey().split(":")[2];t.definitions_["import_"+e+"_onboard_tft"]="from "+e+" import onboard_tft";var i=t.valueToCode(this,"data",t.ORDER_ASSIGNMENT),T=t.valueToCode(this,"x",t.ORDER_ASSIGNMENT),E=t.valueToCode(this,"y",t.ORDER_ASSIGNMENT),n=t.valueToCode(this,"size",t.ORDER_ASSIGNMENT),o=t.valueToCode(this,"space",t.ORDER_ASSIGNMENT),s=this.getFieldValue("center"),O=t.valueToCode(this,"VAR",t.ORDER_ATOMIC);if("0x"==O.slice(0,2))var I="onboard_tft.shows("+i+",x = "+T+",y = "+E+",size = "+n+",space = "+o+",center = "+s+",color="+O+")\n";else{const _=O.match(/\d+/g);var a="0x"+((parseInt(_[0])<<16)+(parseInt(_[1])<<8)+parseInt(_[2])).toString(16).padStart(4,"0");I="onboard_tft.shows("+i+",x = "+T+",y = "+E+",size = "+n+",space = "+o+",center = "+s+",color=0x"+((16252928&a)>>8|(64512&a)>>5|(255&a)>>3).toString(16)+")\n"}return I},wc=function(_,t){var e=p_.Boards.getSelectedBoardKey().split(":")[2];return t.definitions_["import_"+e+"_onboard_oled"]="from "+e+" import onboard_tft","onboard_tft.frame("+t.valueToCode(this,"data",t.ORDER_ASSIGNMENT)+",color=0xffff)\n"},Wc=function(_,t){var e=p_.Boards.getSelectedBoardKey().split(":")[2];t.definitions_["import_"+e+"_onboard_tft"]="from "+e+" import onboard_tft";var i=t.valueToCode(this,"data",t.ORDER_ASSIGNMENT),T=t.valueToCode(this,"size",t.ORDER_ASSIGNMENT),E=t.valueToCode(this,"time",t.ORDER_ASSIGNMENT),n=t.valueToCode(this,"VAR",t.ORDER_ATOMIC);if("0x"==n.slice(0,2))var o="onboard_tft.frame("+i+",size = "+T+",delay = "+E+",color="+n+")\n";else{const _=n.match(/\d+/g);var s="0x"+((parseInt(_[0])<<16)+(parseInt(_[1])<<8)+parseInt(_[2])).toString(16).padStart(4,"0");o="onboard_tft.frame("+i+",size = "+T+",delay = "+E+",color=0x"+((16252928&s)>>8|(64512&s)>>5|(255&s)>>3).toString(16)+")\n"}return o},Kc=function(_,t){var e=p_.Boards.getSelectedBoardKey().split(":")[2];return t.definitions_["import_"+e+"_onboard_oled"]="from "+e+" import onboard_tft","onboard_tft.scroll("+t.valueToCode(this,"data",t.ORDER_ASSIGNMENT)+",color=0xffff)\n"},zc=function(_,t){var e=p_.Boards.getSelectedBoardKey().split(":")[2];t.definitions_["import_"+e+"_onboard_tft"]="from "+e+" import onboard_tft";var i=t.valueToCode(this,"data",t.ORDER_ASSIGNMENT),T=t.valueToCode(this,"y",t.ORDER_ASSIGNMENT),E=t.valueToCode(this,"size",t.ORDER_ASSIGNMENT),n=t.valueToCode(this,"time",t.ORDER_ASSIGNMENT),o=t.valueToCode(this,"space",t.ORDER_ASSIGNMENT),s=t.valueToCode(this,"VAR",t.ORDER_ATOMIC);if("0x"==s.slice(0,2))var O="onboard_tft.scroll("+i+",y = "+T+",size = "+E+",speed ="+n+",space = "+o+",color="+s+")\n";else{const _=s.match(/\d+/g);var I="0x"+((parseInt(_[0])<<16)+(parseInt(_[1])<<8)+parseInt(_[2])).toString(16).padStart(4,"0");O="onboard_tft.scroll("+i+",y = "+T+",size = "+E+",speed ="+n+",space = "+o+",color=0x"+((16252928&I)>>8|(64512&I)>>5|(255&I)>>3).toString(16)+")\n"}return O},Zc=function(_,t){var e=p_.Boards.getSelectedBoardKey().split(":")[2];t.definitions_["import_"+e+"_onboard_tft"]="from "+e+" import onboard_tft";var i=t.valueToCode(_,"x",t.ORDER_ATOMIC),T=t.valueToCode(_,"y",t.ORDER_ATOMIC),E=t.valueToCode(_,"w",t.ORDER_ATOMIC),n=t.valueToCode(_,"h",t.ORDER_ATOMIC),o=t.valueToCode(this,"VAR",t.ORDER_ATOMIC),s=_.getFieldValue("shape");if("0x"==o.slice(0,2))var O="onboard_tft."+s+"("+i+", "+T+", "+E+", "+n+", "+o+")\nonboard_tft.show()\n";else{const _=o.match(/\d+/g);var I="0x"+((parseInt(_[0])<<16)+(parseInt(_[1])<<8)+parseInt(_[2])).toString(16).padStart(4,"0");O="onboard_tft."+s+"("+i+", "+T+", "+E+", "+n+", 0x"+((16252928&I)>>8|(64512&I)>>5|(255&I)>>3).toString(16)+")\nonboard_tft.show()\n"}return O},Qc=function(_,t){var e=p_.Boards.getSelectedBoardKey().split(":")[2];t.definitions_["import_"+e+"_onboard_tft"]="from "+e+" import onboard_tft";var i=t.valueToCode(_,"x",t.ORDER_ATOMIC),T=t.valueToCode(_,"y",t.ORDER_ATOMIC),E=t.valueToCode(_,"length",t.ORDER_ATOMIC),n=t.valueToCode(this,"VAR",t.ORDER_ATOMIC),o=_.getFieldValue("dir_h_v");if("0x"==n.slice(0,2))var s="onboard_tft."+("0"==o?"v":"h")+"line("+i+", "+T+", "+E+", "+n+")\nonboard_tft.show()\n";else{const _=n.match(/\d+/g);var O="0x"+((parseInt(_[0])<<16)+(parseInt(_[1])<<8)+parseInt(_[2])).toString(16).padStart(4,"0");s="onboard_tft."+("0"==o?"v":"h")+"line("+i+", "+T+", "+E+", 0x"+((16252928&O)>>8|(64512&O)>>5|(255&O)>>3).toString(16)+")\nonboard_tft.show()\n"}return s},Jc=function(_,t){var e=p_.Boards.getSelectedBoardKey().split(":")[2];t.definitions_["import_"+e+"_onboard_tft"]="from "+e+" import onboard_tft";var i=t.valueToCode(_,"x1",t.ORDER_ATOMIC),T=t.valueToCode(_,"y1",t.ORDER_ATOMIC),E=t.valueToCode(_,"x2",t.ORDER_ATOMIC),n=t.valueToCode(_,"y2",t.ORDER_ATOMIC),o=t.valueToCode(this,"VAR",t.ORDER_ATOMIC);if("0x"==o.slice(0,2))var s="onboard_tft.line("+i+", "+T+", "+E+", "+n+", "+o+")\nonboard_tft.show()\n";else{const _=o.match(/\d+/g);var O="0x"+((parseInt(_[0])<<16)+(parseInt(_[1])<<8)+parseInt(_[2])).toString(16).padStart(4,"0");s="onboard_tft.line("+i+", "+T+", "+E+", "+n+", 0x"+((16252928&O)>>8|(64512&O)>>5|(255&O)>>3).toString(16)+")\nonboard_tft.show()\n"}return s},qc=function(_,t){var e=p_.Boards.getSelectedBoardKey().split(":")[2];t.definitions_["import_"+e+"_onboard_tft"]="from "+e+" import onboard_tft";return"onboard_tft.fill(0)\nonboard_tft.show()\n"},jc=function(_,t){var e=p_.Boards.getSelectedBoardKey().split(":")[2];return t.definitions_["import_"+e+"_onboard_tft"]="from "+e+" import onboard_tft","onboard_tft."+_.getFieldValue("OP")+"("+t.valueToCode(_,"val",t.ORDER_ATOMIC)+")\n"},$c=function(_,t){var e=p_.Boards.getSelectedBoardKey().split(":")[2];return t.definitions_["import_"+e+"_onboard_tft"]="from "+e+" import onboard_tft",["hex(onboard_tft.pixel(int("+t.valueToCode(_,"x",t.ORDER_ATOMIC)+"), int("+t.valueToCode(_,"y",t.ORDER_ATOMIC)+")))",t.ORDER_ATOMIC]},_H=function(_,t){var e=p_.Boards.getSelectedBoardKey().split(":")[2];t.definitions_["import_"+e+"_onboard_tft"]="from "+e+" import onboard_tft";var i=t.valueToCode(this,"x",t.ORDER_ASSIGNMENT),T=t.valueToCode(this,"y",t.ORDER_ASSIGNMENT),E=t.valueToCode(this,"VAR",t.ORDER_ATOMIC);if("0x"==E.slice(0,2))var n="onboard_tft.pixel(int("+i+"), int("+T+"), "+E+")\nonboard_tft.show()\n";else{const _=E.match(/\d+/g);var o="0x"+((parseInt(_[0])<<16)+(parseInt(_[1])<<8)+parseInt(_[2])).toString(16).padStart(4,"0");n="onboard_tft.pixel(int("+i+"), int("+T+"), 0x"+((16252928&o)>>8|(64512&o)>>5|(255&o)>>3).toString(16)+")\nonboard_tft.show()\n"}return n},tH=function(_,t){var e=p_.Boards.getSelectedBoardKey().split(":")[2];t.definitions_["import_"+e+"_onboard_tft"]="from "+e+" import onboard_tft";return["onboard_tft.get_brightness()",t.ORDER_ATOMIC]},eH=function(_,t){var e=p_.Boards.getSelectedBoardKey().split(":")[2];return t.definitions_["import_"+e+"_onboard_tft"]="from "+e+" import onboard_tft","onboard_tft.set_brightness("+t.valueToCode(this,"x",t.ORDER_ASSIGNMENT)+")\n"},iH=function(_,t){var e=p_.Boards.getSelectedBoardKey().split(":")[2];t.definitions_["import_"+e+"_onboard_tft"]="from "+e+" import onboard_tft";var i=t.valueToCode(this,"VAR",t.ORDER_ASSIGNMENT);if("0x"==i.slice(0,2))var T="onboard_tft.fill("+i+")\nonboard_tft.show()\n";else{const _=i.match(/\d+/g);var E="0x"+((parseInt(_[0])<<16)+(parseInt(_[1])<<8)+parseInt(_[2])).toString(16).padStart(4,"0");T="onboard_tft.fill(0x"+((16252928&E)>>8|(64512&E)>>5|(255&E)>>3).toString(16)+")\nonboard_tft.show()\n"}return T},TH=function(_,t){var e=p_.Boards.getSelectedBoardKey().split(":")[2];t.definitions_["import_"+e+"_Clock"]="from "+e+" import Clock";var i=t.valueToCode(this,"x",t.ORDER_ASSIGNMENT),T=t.valueToCode(this,"y",t.ORDER_ASSIGNMENT),E=t.valueToCode(this,"size",t.ORDER_ASSIGNMENT),n=t.valueToCode(this,"SUB",t.ORDER_ASSIGNMENT),o=t.valueToCode(this,"VAR",t.ORDER_ATOMIC);if("0x"==o.slice(0,2))var s=n+"=Clock("+i+","+T+","+E+","+o+")\n";else{const _=o.match(/\d+/g);var O="0x"+((parseInt(_[0])<<16)+(parseInt(_[1])<<8)+parseInt(_[2])).toString(16).padStart(4,"0");s=n+"=Clock("+i+","+T+","+E+",0x"+((16252928&O)>>8|(64512&O)>>5|(255&O)>>3).toString(16)+")\n"}return s},EH=function(_,t){var e=p_.Boards.getSelectedBoardKey().split(":")[2];return t.definitions_["import_"+e+"_Clock"]="from "+e+" import Clock",t.valueToCode(this,"SUB",t.ORDER_ASSIGNMENT)+".set_rtctime()\n"},nH=function(_,t){var e=p_.Boards.getSelectedBoardKey().split(":")[2];return t.definitions_["import_"+e+"_Clock"]="from "+e+" import Clock",t.valueToCode(this,"SUB",t.ORDER_ASSIGNMENT)+".set_time("+t.valueToCode(this,"h",t.ORDER_ASSIGNMENT)+","+t.valueToCode(this,"m",t.ORDER_ASSIGNMENT)+","+t.valueToCode(this,"s",t.ORDER_ASSIGNMENT)+")\n"},oH=function(_,t){var e=p_.Boards.getSelectedBoardKey().split(":")[2];return t.definitions_["import_"+e+"_Clock"]="from "+e+" import Clock",t.valueToCode(this,"SUB",t.ORDER_ASSIGNMENT)+".draw_clock()\n"},sH=function(_,t){var e=p_.Boards.getSelectedBoardKey().split(":")[2];t.definitions_["import_"+e+"_Clock"]="from "+e+" import Clock";var i=t.valueToCode(this,"SUB",t.ORDER_ASSIGNMENT),T=t.valueToCode(this,"VAR",t.ORDER_ATOMIC);if("0x"==T.slice(0,2))var E=i+".clear("+T+")\n";else{const _=T.match(/\d+/g);var n="0x"+((parseInt(_[0])<<16)+(parseInt(_[1])<<8)+parseInt(_[2])).toString(16).padStart(4,"0");E=i+".clear(0x"+((16252928&n)>>8|(64512&n)>>5|(255&n)>>3).toString(16)+")\n"}return E},OH=function(_,t){var e=p_.Boards.getSelectedBoardKey().split(":")[2];t.definitions_["import_"+e+"_onboard_tft"]="from "+e+" import onboard_tft";var i=t.valueToCode(_,"x",t.ORDER_ATOMIC),T=t.valueToCode(_,"y",t.ORDER_ATOMIC),E=t.valueToCode(_,"r",t.ORDER_ATOMIC),n=t.valueToCode(this,"VAR",t.ORDER_ATOMIC),o=_.getFieldValue("shape");if("0x"==n.slice(0,2))var s="onboard_tft.ellipse("+i+", "+T+", "+E+", "+E+", "+n+","+o+")\nonboard_tft.show()\n";else{const _=n.match(/\d+/g);var O="0x"+((parseInt(_[0])<<16)+(parseInt(_[1])<<8)+parseInt(_[2])).toString(16).padStart(4,"0");s="onboard_tft.ellipse("+i+", "+T+", "+E+", "+E+", 0x"+((16252928&O)>>8|(64512&O)>>5|(255&O)>>3).toString(16)+","+o+")\nonboard_tft.show()\n"}return s},IH=function(_,t){var e=this.getFieldValue("path"),i=this.getFieldValue("module");return t.definitions_["import_"+e+"_"+i]="from "+e+" import "+i,""},aH=function(_,t){var e=this.getFieldValue("module");return t.definitions_["import_"+e]="import "+e,""},pH=function(_,t){for(var e=this.getFieldValue("NAME"),i=new Array(this.itemCount_),T=0;T {\n"+t.statementToCode(this,"do")+"})\n"},sg=function(){return"control.reset()\n"},Og=function(_,t){return"control.waitMicros("+(t.valueToCode(this,"data",t.ORDER_ATOMIC)||p_.Profile.default.serial)+")\n"},Ig=function(_,t){return"control.raiseEvent("+(t.valueToCode(this,"system_event_bus_source",t.ORDER_ATOMIC)||p_.Profile.default.serial)+", "+(t.valueToCode(this,"system_event_bus_value",t.ORDER_ATOMIC)||p_.Profile.default.serial)+")\n"},ag=function(_,t){return"control.onEvent("+(t.valueToCode(this,"system_event_bus_source",t.ORDER_ATOMIC)||p_.Profile.default.serial)+", "+(t.valueToCode(this,"system_event_bus_value",t.ORDER_ATOMIC)||p_.Profile.default.serial)+", () => {\n"+t.statementToCode(this,"do")+")\n"},pg=function(_,t){return["control.eventTimestamp()",t.ORDER_ATOMIC]},Mg=function(_,t){return["control.eventValue()",t.ORDER_ATOMIC]},Lg=function(_,t){return[this.getFieldValue("key"),t.ORDER_ATOMIC]},Rg=function(_,t){return[this.getFieldValue("key"),t.ORDER_ATOMIC]},rg=function(_,t){return["control.deviceName()",t.ORDER_ATOMIC]},Sg=function(_,t){return["control.deviceSerialNumber()",t.ORDER_ATOMIC]},lg=function(_,t){return"panic("+(t.valueToCode(this,"STATUS_CODE",t.ORDER_ATOMIC)||"1000")+")\n"},Ag=function(_,t){switch(t.definitions_.import_time="import time",this.getFieldValue("Time")){case"ms":return["time.ticks_ms()",t.ORDER_ATOMIC];case"us":return["time.ticks_us()",t.ORDER_ATOMIC]}},Pg=function(){return"while True:\n pass\n"},Ng=function(_,t){return t.definitions_.import_mixgo="import mixgo","reset()\n"},dg=function(_,t){return t.definitions_.import_os="import os","os.uname()"},hg=function(_,t){t.definitions_.import_time="import time";var e=t.valueToCode(this,"DELAY_TIME",t.ORDER_ATOMIC)||"1000";switch(this.getFieldValue("Time")){case"s":return"time.sleep("+e+")\n";case"ms":return"time.sleep_ms("+e+")\n";case"us":return"time.sleep_us("+e+")\n"}},ug=function(_,t){t.definitions_.import_time="import time";var e=t.valueToCode(this,"DELAY_TIME",t.ORDER_ATOMIC)||"1000";switch(this.getFieldValue("Time")){case"s":return"time.sleep("+e+")\n";case"ms":return"time.sleep_ms("+e+")\n";case"us":return"time.sleep_us("+e+")\n"}},mg=function(_,t){return t.definitions_.import_mixgo="import mixgo",(t.valueToCode(this,"VAR",t.ORDER_NONE)||"None")+".init(period = "+(t.valueToCode(this,"period",t.ORDER_NONE)||"0")+", mode = Timer."+(t.valueToCode(this,"mode",t.ORDER_NONE)||"None")+", callback = "+(t.valueToCode(this,"callback",t.ORDER_NONE)||"None")+")\n"},Cg=function(_,t){return t.definitions_.import_machine="import machine",(t.valueToCode(this,"VAR",t.ORDER_NONE)||"None")+".init(period = "+(t.valueToCode(this,"period",t.ORDER_NONE)||"0")+", mode = machine.Timer."+this.getFieldValue("mode")+", callback = "+(t.valueToCode(this,"callback",t.ORDER_NONE)||"None")+")\n"},cg=function(_,t){return t.definitions_.import_time="import time",["time.ticks_diff("+(t.valueToCode(this,"END",t.ORDER_NONE)||"0")+", "+(t.valueToCode(this,"START",t.ORDER_NONE)||"0")+")",t.ORDER_ATOMIC]},Hg=function(_,t){var e=t.valueToCode(this,"SUB",t.ORDER_ATOMIC);return t.definitions_.import_machine="import machine",e+" = machine.Timer(0)\n"},Dg=function(_,t){return t.definitions_.import_machine="import machine","wdt = machine.WDT(timeout= "+(t.valueToCode(this,"period",t.ORDER_NONE)||"0")+")\n"},Yg=function(_,t){t.definitions_.import_machine="import machine";return"wdt.feed()\n"},Ug=function(_,t){t.definitions_.import_machine="import machine";return"machine.reset()\n"},Bg=function(_,t){t.definitions_.import_bitbot_onboard_bot51="from bitbot import onboard_bot51";return"onboard_bot51.shutdown()\n"},gg=Hg,Gg=Cg,Fg=cg,yg=hg,fg=function(_,t){return t.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api."+this.getFieldValue("mode")+"("+t.valueToCode(this,"key",t.ORDER_ATOMIC)+","+t.valueToCode(this,"addr",t.ORDER_ATOMIC)+")",t.ORDER_ATOMIC]},bg=function(_,t){return t.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api."+this.getFieldValue("mode")+"("+t.valueToCode(this,"key",t.ORDER_ATOMIC)+","+t.valueToCode(this,"addr",t.ORDER_ATOMIC)+","+t.valueToCode(this,"day",t.ORDER_ATOMIC)+")",t.ORDER_ATOMIC]},xg=function(_,t){return t.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api.weather_hourly("+t.valueToCode(this,"key",t.ORDER_ATOMIC)+","+t.valueToCode(this,"addr",t.ORDER_ATOMIC)+","+t.valueToCode(this,"hour",t.ORDER_ATOMIC)+")",t.ORDER_ATOMIC]},vg={};vg["MixGo(ESP32, 4M)"]={description:"MicroPython[ESP32 MixGo]",digital_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["12","12"],["13","13"],["14","14"],["15","15"],["16","16"],["17","17"],["18","18"],["19","19"],["21","21"],["22","22"],["23","23"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["39","39"]],digital:[["pin0","pin0"],["pin2","pin2"],["pin4","pin4"],["pin5","pin5"],["pin12","pin12"],["pin13","pin13"],["pin14","pin14"],["pin15","pin15"],["pin16","pin16"],["pin17","pin17"],["pin18","pin18"],["pin19","pin19"],["pin21","pin21"],["pin22","pin22"],["pin23","pin23"],["pin25","pin25"],["pin26","pin26"],["pin27","pin27"],["pin32","pin32"],["pin33","pin33"],["pin34","pin34"],["pin35","pin35"],["pin36","pin36"],["pin39","pin39"]],input_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["12","12"],["13","13"],["14","14"],["15","15"],["16","16"],["17","17"],["18","18"],["19","19"],["21","21"],["22","22"],["23","23"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["39","39"]],output_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["12","12"],["13","13"],["14","14"],["15","15"],["16","16"],["17","17"],["18","18"],["19","19"],["21","21"],["22","22"],["23","23"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"]],pwm_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["12","12"],["13","13"],["14","14"],["15","15"],["16","16"],["17","17"],["18","18"],["19","19"],["20","20"],["21","21"],["22","22"],["23","23"],["25","25"],["26","26"],["27","27"],["32","32"]],pwm:[["pwm0","pwm0"],["pwm2","pwm2"],["pwm4","pwm4"],["pwm5","pwm5"],["pwm12","pwm12"],["pwm13","pwm13"],["pwm14","pwm14"],["pwm15","pwm15"],["pwm16","pwm16"],["pwm17","pwm17"],["pwm18","pwm18"],["pwm19","pwm19"],["pwm20","pwm20"],["pwm21","pwm21"],["pwm22","pwm22"],["pwm23","pwm23"],["pwm25","pwm25"],["pwm26","pwm26"],["pwm27","pwm27"],["pwm32","pwm32"]],analog_pin:[["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["37","37"],["38","38"],["39","39"]],analog:[["adc32","adc32"],["adc33","adc33"],["adc34","adc34"],["adc35","adc35"],["adc36","adc36"],["adc37","adc37"],["adc38","adc38"],["adc39","adc39"]],espnow_channel:p_.Profile.generate(["1-13"]),haskylens_model:p_.Profile.generate(["0-4"]),dac_pin:[["25","25"],["26","26"]],dac:[["dac25","dac25"],["dac26","dac26"]],touch:[["tc0","tc0"],["tc2","tc2"],["tc4","tc4"],["tc12","tc12"],["tc13","tc13"],["tc14","tc14"],["tc15","tc15"],["tc27","tc27"],["tc32","tc32"],["tc33","tc33"]],touch_pin:[["0","0"],["2","2"],["4","4"],["12","12"],["13","13"],["14","14"],["15","15"],["27","27"],["32","32"],["33","33"]],button:[["A","button_a"],["B","button_b"]],axis:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"]],exlcdh:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"],["10","10"],["11","11"],["12","12"],["13","13"],["14","14"],["15","15"]],exlcdv:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],brightness:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"]],tts_voice:p_.Profile.generate(["0-16"]),tts_builtin_music:p_.Profile.generate(["0-47"]),tts_bgmusic:p_.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["SILLY","onboard_matrix.SILLY"],["FABULOUS","onboard_matrix.FABULOUS"],["SURPRISED","onboard_matrix.SURPRISED"],["ASLEEP","onboard_matrix.ASLEEP"],["ANGRY","onboard_matrix.ANGRY"],["CONFUSED","onboard_matrix.CONFUSED"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"],["LEFT_ARROW","onboard_matrix.LEFT_ARROW"],["RIGHT_ARROW","onboard_matrix.RIGHT_ARROW"],["DRESS","onboard_matrix.DRESS"],["TRANSFORMERS","onboard_matrix.TRANSFORMERS"],["SCISSORS","onboard_matrix.SCISSORS"],["EXIT","onboard_matrix.EXIT"],["TREE","onboard_matrix.TREE"],["PACMAN","onboard_matrix.PACMAN"],["TARGET","onboard_matrix.TARGET"],["TSHIRT","onboard_matrix.TSHIRT"],["ROLLERSKATE","onboard_matrix.ROLLERSKATE"],["DUCK","onboard_matrix.DUCK"],["HOUSE","onboard_matrix.HOUSE"],["TORTOISE","onboard_matrix.TORTOISE"],["BUTTERFLY","onboard_matrix.BUTTERFLY"],["STICKFIGURE","onboard_matrix.STICKFIGURE"],["GHOST","onboard_matrix.GHOST"],["PITCHFORK","onboard_matrix.PITCHFORK"],["onboard_music_QUAVERS","onboard_matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","onboard_matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","onboard_matrix.onboard_music_CROTCHET"],["COW","onboard_matrix.COW"],["RABBIT","onboard_matrix.RABBIT"],["SQUARE_SMALL","onboard_matrix.SQUARE_SMALL"],["SQUARE","onboard_matrix.SQUARE"],["DIAMOND_SMALL","onboard_matrix.DIAMOND_SMALL"],["DIAMOND","onboard_matrix.DIAMOND"],["CHESSBOARD","onboard_matrix.CHESSBOARD"],["TRIANGLE_LEFT","onboard_matrix.TRIANGLE_LEFT"],["TRIANGLE","onboard_matrix.TRIANGLE"],["SNAKE","onboard_matrix.SNAKE"],["UMBRELLA","onboard_matrix.UMBRELLA"],["SKULL","onboard_matrix.SKULL"],["GIRAFFE","onboard_matrix.GIRAFFE"],["SWORD","onboard_matrix.SWORD"]],builtinimg_extern:[["HEART","matrix32x12.Matrix.HEART"],["HEART_SMALL","matrix32x12.Matrix.HEART_SMALL"],["HAPPY","matrix32x12.Matrix.HAPPY"],["SAD","matrix32x12.Matrix.SAD"],["SMILE","matrix32x12.Matrix.SMILE"],["SILLY","matrix32x12.Matrix.SILLY"],["FABULOUS","matrix32x12.Matrix.FABULOUS"],["SURPRISED","matrix32x12.Matrix.SURPRISED"],["ASLEEP","matrix32x12.Matrix.ASLEEP"],["ANGRY","matrix32x12.Matrix.ANGRY"],["CONFUSED","matrix32x12.Matrix.CONFUSED"],["NO","matrix32x12.Matrix.NO"],["YES","matrix32x12.Matrix.YES"],["LEFT_ARROW","matrix32x12.Matrix.LEFT_ARROW"],["RIGHT_ARROW","matrix32x12.Matrix.RIGHT_ARROW"],["DRESS","matrix32x12.Matrix.DRESS"],["TRANSFORMERS","matrix32x12.Matrix.TRANSFORMERS"],["SCISSORS","matrix32x12.Matrix.SCISSORS"],["EXIT","matrix32x12.Matrix.EXIT"],["TREE","matrix32x12.Matrix.TREE"],["PACMAN","matrix32x12.Matrix.PACMAN"],["TARGET","matrix32x12.Matrix.TARGET"],["TSHIRT","matrix32x12.Matrix.TSHIRT"],["ROLLERSKATE","matrix32x12.Matrix.ROLLERSKATE"],["DUCK","matrix32x12.Matrix.DUCK"],["HOUSE","matrix32x12.Matrix.HOUSE"],["TORTOISE","matrix32x12.Matrix.TORTOISE"],["BUTTERFLY","matrix32x12.Matrix.BUTTERFLY"],["STICKFIGURE","matrix32x12.Matrix.STICKFIGURE"],["GHOST","matrix32x12.Matrix.GHOST"],["PITCHFORK","matrix32x12.Matrix.PITCHFORK"],["onboard_music_QUAVERS","matrix32x12.Matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","matrix32x12.Matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","matrix32x12.Matrix.onboard_music_CROTCHET"],["COW","matrix32x12.Matrix.COW"],["RABBIT","matrix32x12.Matrix.RABBIT"],["SQUARE_SMALL","matrix32x12.Matrix.SQUARE_SMALL"],["SQUARE","matrix32x12.Matrix.SQUARE"],["DIAMOND_SMALL","matrix32x12.Matrix.DIAMOND_SMALL"],["DIAMOND","matrix32x12.Matrix.DIAMOND"],["CHESSBOARD","matrix32x12.Matrix.CHESSBOARD"],["TRIANGLE_LEFT","matrix32x12.Matrix.TRIANGLE_LEFT"],["TRIANGLE","matrix32x12.Matrix.TRIANGLE"],["SNAKE","matrix32x12.Matrix.SNAKE"],["UMBRELLA","matrix32x12.Matrix.UMBRELLA"],["SKULL","matrix32x12.Matrix.SKULL"],["GIRAFFE","matrix32x12.Matrix.GIRAFFE"],["SWORD","matrix32x12.Matrix.SWORD"]],imglist:[["ALL_CLOCKS","onboard_matrix.ALL_CLOCKS"],["ALL_ARROWS","onboard_matrix.ALL_ARROWS"]],playlist:[["DADADADUM","onboard_music.DADADADUM"],["ENTERTAINER","onboard_music.ENTERTAINER"],["PRELUDE","onboard_music.PRELUDE"],["ODE","onboard_music.ODE"],["NYAN","onboard_music.NYAN"],["RINGTONE","onboard_music.RINGTONE"],["FUNK","onboard_music.FUNK"],["BLUES","onboard_music.BLUES"],["BIRTHDAY","onboard_music.BIRTHDAY"],["WEDDING","onboard_music.WEDDING"],["FUNERAL","onboard_music.FUNERAL"],["PUNCHLINE","onboard_music.PUNCHLINE"],["PYTHON","onboard_music.PYTHON"],["BADDY","onboard_music.BADDY"],["CHASE","onboard_music.CHASE"],["BA_DING","onboard_music.BA_DING"],["WAWAWAWAA","onboard_music.WAWAWAWAA"],["JUMP_UP","onboard_music.JUMP_UP"],["JUMP_DOWN","onboard_music.JUMP_DOWN"],["POWER_UP","onboard_music.POWER_UP"],["POWER_DOWN","onboard_music.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],tone_notes:[["NOTE_C3","131"],["NOTE_D3","147"],["NOTE_E3","165"],["NOTE_F3","175"],["NOTE_G3","196"],["NOTE_A3","220"],["NOTE_B3","247"],["NOTE_C4","262"],["NOTE_D4","294"],["NOTE_E4","330"],["NOTE_F4","349"],["NOTE_G4","392"],["NOTE_A4","440"],["NOTE_B4","494"],["NOTE_C5","523"],["NOTE_D5","587"],["NOTE_E5","659"],["NOTE_F5","698"],["NOTE_G5","784"],["NOTE_A5","880"],["NOTE_B5","988"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"],["3","3"]]},vg["MixGo PE"]={description:"MicroPython[ESP32 MixGo PE]",digital_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["7","7"],["8","8"],["12","12"],["13","13"],["14","14"],["15","15"],["19","19"],["20","20"],["21","21"],["22","22"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["37","37"],["38","38"],["39","39"]],digital:[["pin0","pin0"],["pin2","pin2"],["pin4","pin4"],["pin5","pin5"],["pin7","pin7"],["pin8","pin8"],["pin12","pin12"],["pin13","pin13"],["pin14","pin14"],["pin15","pin15"],["pin19","pin19"],["pin20","pin20"],["pin21","pin21"],["pin22","pin22"],["pin25","pin25"],["pin26","pin26"],["pin27","pin27"],["pin32","pin32"],["pin33","pin33"],["pin34","pin34"],["pin35","pin35"],["pin36","pin36"],["pin37","pin37"],["pin38","pin38"],["pin39","pin39"]],input_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["7","7"],["8","8"],["12","12"],["13","13"],["14","14"],["15","15"],["19","19"],["20","20"],["21","21"],["22","22"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["37","37"],["38","38"],["39","39"]],output_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["7","7"],["8","8"],["12","12"],["13","13"],["14","14"],["15","15"],["19","19"],["20","20"],["21","21"],["22","22"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"]],pwm_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["7","7"],["8","8"],["12","12"],["13","13"],["14","14"],["15","15"],["19","19"],["20","20"],["21","21"],["22","22"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"]],pwm:[["pwm0","pwm0"],["pwm2","pwm2"],["pwm4","pwm4"],["pwm5","pwm5"],["pwm7","pwm7"],["pwm8","pwm8"],["pwm12","pwm12"],["pwm13","pwm13"],["pwm14","pwm14"],["pwm15","pwm15"],["pwm19","pwm19"],["pwm20","pwm20"],["pwm21","pwm21"],["pwm22","pwm22"],["pwm25","pwm25"],["pwm26","pwm26"],["pwm27","pwm27"],["pwm32","pwm32"],["pwm33","pwm33"]],espnow_channel:p_.Profile.generate(["1-13"]),haskylens_model:p_.Profile.generate(["0-4"]),analog_pin:[["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["37","37"],["38","38"],["39","39"]],analog:[["adc32","adc32"],["adc33","adc33"],["adc34","adc34"],["adc35","adc35"],["adc36","adc36"],["adc37","adc37"],["adc38","adc38"],["adc39","adc39"]],dac_pin:[["25","25"],["26","26"]],dac:[["dac25","dac25"],["dac26","dac26"]],touch:[["tc0","tc0"],["tc2","tc2"],["tc4","tc4"],["tc12","tc12"],["tc13","tc13"],["tc14","tc14"],["tc15","tc15"],["tc27","tc27"],["tc32","tc32"],["tc33","tc33"]],touch_pin:[["0","0"],["2","2"],["4","4"],["12","12"],["13","13"],["14","14"],["15","15"],["27","27"],["32","32"],["33","33"]],button:[["A","button_a"],["B","button_b"]],axis:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"]],exlcdh:p_.Profile.generate(["0-7"]),exlcdv:p_.Profile.generate(["0-4"]),brightness:p_.Profile.generate(["0-9"]),tts_voice:p_.Profile.generate(["0-16"]),tts_builtin_music:p_.Profile.generate(["0-47"]),tts_bgmusic:p_.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["SILLY","onboard_matrix.SILLY"],["FABULOUS","onboard_matrix.FABULOUS"],["SURPRISED","onboard_matrix.SURPRISED"],["ASLEEP","onboard_matrix.ASLEEP"],["ANGRY","onboard_matrix.ANGRY"],["CONFUSED","onboard_matrix.CONFUSED"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"],["LEFT_ARROW","onboard_matrix.LEFT_ARROW"],["RIGHT_ARROW","onboard_matrix.RIGHT_ARROW"],["DRESS","onboard_matrix.DRESS"],["TRANSFORMERS","onboard_matrix.TRANSFORMERS"],["SCISSORS","onboard_matrix.SCISSORS"],["EXIT","onboard_matrix.EXIT"],["TREE","onboard_matrix.TREE"],["PACMAN","onboard_matrix.PACMAN"],["TARGET","onboard_matrix.TARGET"],["TSHIRT","onboard_matrix.TSHIRT"],["ROLLERSKATE","onboard_matrix.ROLLERSKATE"],["DUCK","onboard_matrix.DUCK"],["HOUSE","onboard_matrix.HOUSE"],["TORTOISE","onboard_matrix.TORTOISE"],["BUTTERFLY","onboard_matrix.BUTTERFLY"],["STICKFIGURE","onboard_matrix.STICKFIGURE"],["GHOST","onboard_matrix.GHOST"],["PITCHFORK","onboard_matrix.PITCHFORK"],["MUSIC_QUAVERS","onboard_matrix.MUSIC_QUAVERS"],["MUSIC_QUAVER","onboard_matrix.MUSIC_QUAVER"],["MUSIC_CROTCHET","onboard_matrix.MUSIC_CROTCHET"],["COW","onboard_matrix.COW"],["RABBIT","onboard_matrix.RABBIT"],["SQUARE_SMALL","onboard_matrix.SQUARE_SMALL"],["SQUARE","onboard_matrix.SQUARE"],["DIAMOND_SMALL","onboard_matrix.DIAMOND_SMALL"],["DIAMOND","onboard_matrix.DIAMOND"],["CHESSBOARD","onboard_matrix.CHESSBOARD"],["TRIANGLE_LEFT","onboard_matrix.TRIANGLE_LEFT"],["TRIANGLE","onboard_matrix.TRIANGLE"],["SNAKE","onboard_matrix.SNAKE"],["UMBRELLA","onboard_matrix.UMBRELLA"],["SKULL","onboard_matrix.SKULL"],["GIRAFFE","onboard_matrix.GIRAFFE"],["SWORD","onboard_matrix.SWORD"]],builtinimg_extern:[["HEART","matrix32x12.Matrix.HEART"],["HEART_SMALL","matrix32x12.Matrix.HEART_SMALL"],["HAPPY","matrix32x12.Matrix.HAPPY"],["SAD","matrix32x12.Matrix.SAD"],["SMILE","matrix32x12.Matrix.SMILE"],["SILLY","matrix32x12.Matrix.SILLY"],["FABULOUS","matrix32x12.Matrix.FABULOUS"],["SURPRISED","matrix32x12.Matrix.SURPRISED"],["ASLEEP","matrix32x12.Matrix.ASLEEP"],["ANGRY","matrix32x12.Matrix.ANGRY"],["CONFUSED","matrix32x12.Matrix.CONFUSED"],["NO","matrix32x12.Matrix.NO"],["YES","matrix32x12.Matrix.YES"],["LEFT_ARROW","matrix32x12.Matrix.LEFT_ARROW"],["RIGHT_ARROW","matrix32x12.Matrix.RIGHT_ARROW"],["DRESS","matrix32x12.Matrix.DRESS"],["TRANSFORMERS","matrix32x12.Matrix.TRANSFORMERS"],["SCISSORS","matrix32x12.Matrix.SCISSORS"],["EXIT","matrix32x12.Matrix.EXIT"],["TREE","matrix32x12.Matrix.TREE"],["PACMAN","matrix32x12.Matrix.PACMAN"],["TARGET","matrix32x12.Matrix.TARGET"],["TSHIRT","matrix32x12.Matrix.TSHIRT"],["ROLLERSKATE","matrix32x12.Matrix.ROLLERSKATE"],["DUCK","matrix32x12.Matrix.DUCK"],["HOUSE","matrix32x12.Matrix.HOUSE"],["TORTOISE","matrix32x12.Matrix.TORTOISE"],["BUTTERFLY","matrix32x12.Matrix.BUTTERFLY"],["STICKFIGURE","matrix32x12.Matrix.STICKFIGURE"],["GHOST","matrix32x12.Matrix.GHOST"],["PITCHFORK","matrix32x12.Matrix.PITCHFORK"],["onboard_music_QUAVERS","matrix32x12.Matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","matrix32x12.Matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","matrix32x12.Matrix.onboard_music_CROTCHET"],["COW","matrix32x12.Matrix.COW"],["RABBIT","matrix32x12.Matrix.RABBIT"],["SQUARE_SMALL","matrix32x12.Matrix.SQUARE_SMALL"],["SQUARE","matrix32x12.Matrix.SQUARE"],["DIAMOND_SMALL","matrix32x12.Matrix.DIAMOND_SMALL"],["DIAMOND","matrix32x12.Matrix.DIAMOND"],["CHESSBOARD","matrix32x12.Matrix.CHESSBOARD"],["TRIANGLE_LEFT","matrix32x12.Matrix.TRIANGLE_LEFT"],["TRIANGLE","matrix32x12.Matrix.TRIANGLE"],["SNAKE","matrix32x12.Matrix.SNAKE"],["UMBRELLA","matrix32x12.Matrix.UMBRELLA"],["SKULL","matrix32x12.Matrix.SKULL"],["GIRAFFE","matrix32x12.Matrix.GIRAFFE"],["SWORD","matrix32x12.Matrix.SWORD"]],imglist:[["ALL_CLOCKS","onboard_matrix.ALL_CLOCKS"],["ALL_ARROWS","onboard_matrix.ALL_ARROWS"]],playlist:[["DADADADUM","onboard_music.DADADADUM"],["ENTERTAINER","onboard_music.ENTERTAINER"],["PRELUDE","onboard_music.PRELUDE"],["ODE","onboard_music.ODE"],["NYAN","onboard_music.NYAN"],["RINGTONE","onboard_music.RINGTONE"],["FUNK","onboard_music.FUNK"],["BLUES","onboard_music.BLUES"],["BIRTHDAY","onboard_music.BIRTHDAY"],["WEDDING","onboard_music.WEDDING"],["FUNERAL","onboard_music.FUNERAL"],["PUNCHLINE","onboard_music.PUNCHLINE"],["PYTHON","onboard_music.PYTHON"],["BADDY","onboard_music.BADDY"],["CHASE","onboard_music.CHASE"],["BA_DING","onboard_music.BA_DING"],["WAWAWAWAA","onboard_music.WAWAWAWAA"],["JUMP_UP","onboard_music.JUMP_UP"],["JUMP_DOWN","onboard_music.JUMP_DOWN"],["POWER_UP","onboard_music.POWER_UP"],["POWER_DOWN","onboard_music.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],tone_notes:[["NOTE_C3","131"],["NOTE_D3","147"],["NOTE_E3","165"],["NOTE_F3","175"],["NOTE_G3","196"],["NOTE_A3","220"],["NOTE_B3","247"],["NOTE_C4","262"],["NOTE_D4","294"],["NOTE_E4","330"],["NOTE_F4","349"],["NOTE_G4","392"],["NOTE_A4","440"],["NOTE_B4","494"],["NOTE_C5","523"],["NOTE_D5","587"],["NOTE_E5","659"],["NOTE_F5","698"],["NOTE_G5","784"],["NOTE_A5","880"],["NOTE_B5","988"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"],["3","3"]]},vg["ESP32 Generic"]={description:"MicroPython[ESP32 Generic]",digital_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"],["10","10"],["11","11"],["12","12"],["13","13"],["14","14"],["15","15"],["16","16"],["17","17"],["18","18"],["19","19"],["20","20"],["21","21"],["22","22"],["23","23"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["37","37"],["38","38"],["39","39"]],digital:[["pin0","pin0"],["pin2","pin2"],["pin4","pin4"],["pin5","pin5"],["pin6","pin6"],["pin7","pin7"],["pin8","pin8"],["pin9","pin9"],["pin10","pin10"],["pin11","pin11"],["pin12","pin12"],["pin13","pin13"],["pin14","pin14"],["pin15","pin15"],["pin16","pin16"],["pin17","pin17"],["pin18","pin18"],["pin19","pin19"],["pin20","pin20"],["pin21","pin21"],["pin22","pin22"],["pin23","pin23"],["pin25","pin25"],["pin26","pin26"],["pin27","pin27"],["pin32","pin32"],["pin33","pin33"],["pin34","pin34"],["pin35","pin35"],["pin36","pin36"],["pin37","pin37"],["pin38","pin38"],["pin39","pin39"]],input_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["7","7"],["8","8"],["12","12"],["13","13"],["14","14"],["15","15"],["19","19"],["20","20"],["21","21"],["22","22"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["37","37"],["38","38"],["39","39"]],output_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["7","7"],["8","8"],["12","12"],["13","13"],["14","14"],["15","15"],["19","19"],["20","20"],["21","21"],["22","22"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"]],pwm_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["12","12"],["13","13"],["14","14"],["15","15"],["16","16"],["17","17"],["18","18"],["19","19"],["20","20"],["21","21"],["22","22"],["23","23"],["25","25"],["26","26"],["27","27"],["32","32"]],pwm:[["pwm0","pwm0"],["pwm2","pwm2"],["pwm4","pwm4"],["pwm5","pwm5"],["pwm12","pwm12"],["pwm13","pwm13"],["pwm14","pwm14"],["pwm15","pwm15"],["pwm16","pwm16"],["pwm17","pwm17"],["pwm18","pwm18"],["pwm19","pwm19"],["pwm20","pwm20"],["pwm21","pwm21"],["pwm22","pwm22"],["pwm23","pwm23"],["pwm25","pwm25"],["pwm26","pwm26"],["pwm27","pwm27"],["pwm32","pwm32"]],analog_pin:[["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["37","37"],["38","38"],["39","39"]],analog:[["adc32","adc32"],["adc33","adc33"],["adc34","adc34"],["adc35","adc35"],["adc36","adc36"],["adc37","adc37"],["adc38","adc38"],["adc39","adc39"]],espnow_channel:p_.Profile.generate(["1-13"]),haskylens_model:p_.Profile.generate(["0-4"]),dac_pin:[["25","25"],["26","26"]],dac:[["dac25","dac25"],["dac26","dac26"]],touch:[["tc0","tc0"],["tc2","tc2"],["tc4","tc4"],["tc12","tc12"],["tc13","tc13"],["tc14","tc14"],["tc15","tc15"],["tc27","tc27"],["tc32","tc32"],["tc33","tc33"]],touch_pin:[["0","0"],["2","2"],["4","4"],["12","12"],["13","13"],["14","14"],["15","15"],["27","27"],["32","32"],["33","33"]],button:[["A","button_a"],["B","button_b"]],axis:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"]],exlcdh:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"],["10","10"],["11","11"],["12","12"],["13","13"],["14","14"],["15","15"]],exlcdv:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],brightness:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"]],tts_voice:p_.Profile.generate(["0-16"]),tts_builtin_music:p_.Profile.generate(["0-47"]),tts_bgmusic:p_.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["SILLY","onboard_matrix.SILLY"],["FABULOUS","onboard_matrix.FABULOUS"],["SURPRISED","onboard_matrix.SURPRISED"],["ASLEEP","onboard_matrix.ASLEEP"],["ANGRY","onboard_matrix.ANGRY"],["CONFUSED","onboard_matrix.CONFUSED"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"],["LEFT_ARROW","onboard_matrix.LEFT_ARROW"],["RIGHT_ARROW","onboard_matrix.RIGHT_ARROW"],["DRESS","onboard_matrix.DRESS"],["TRANSFORMERS","onboard_matrix.TRANSFORMERS"],["SCISSORS","onboard_matrix.SCISSORS"],["EXIT","onboard_matrix.EXIT"],["TREE","onboard_matrix.TREE"],["PACMAN","onboard_matrix.PACMAN"],["TARGET","onboard_matrix.TARGET"],["TSHIRT","onboard_matrix.TSHIRT"],["ROLLERSKATE","onboard_matrix.ROLLERSKATE"],["DUCK","onboard_matrix.DUCK"],["HOUSE","onboard_matrix.HOUSE"],["TORTOISE","onboard_matrix.TORTOISE"],["BUTTERFLY","onboard_matrix.BUTTERFLY"],["STICKFIGURE","onboard_matrix.STICKFIGURE"],["GHOST","onboard_matrix.GHOST"],["PITCHFORK","onboard_matrix.PITCHFORK"],["onboard_music_QUAVERS","onboard_matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","onboard_matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","onboard_matrix.onboard_music_CROTCHET"],["COW","onboard_matrix.COW"],["RABBIT","onboard_matrix.RABBIT"],["SQUARE_SMALL","onboard_matrix.SQUARE_SMALL"],["SQUARE","onboard_matrix.SQUARE"],["DIAMOND_SMALL","onboard_matrix.DIAMOND_SMALL"],["DIAMOND","onboard_matrix.DIAMOND"],["CHESSBOARD","onboard_matrix.CHESSBOARD"],["TRIANGLE_LEFT","onboard_matrix.TRIANGLE_LEFT"],["TRIANGLE","onboard_matrix.TRIANGLE"],["SNAKE","onboard_matrix.SNAKE"],["UMBRELLA","onboard_matrix.UMBRELLA"],["SKULL","onboard_matrix.SKULL"],["GIRAFFE","onboard_matrix.GIRAFFE"],["SWORD","onboard_matrix.SWORD"]],builtinimg_extern:[["HEART","matrix32x12.Matrix.HEART"],["HEART_SMALL","matrix32x12.Matrix.HEART_SMALL"],["HAPPY","matrix32x12.Matrix.HAPPY"],["SAD","matrix32x12.Matrix.SAD"],["SMILE","matrix32x12.Matrix.SMILE"],["SILLY","matrix32x12.Matrix.SILLY"],["FABULOUS","matrix32x12.Matrix.FABULOUS"],["SURPRISED","matrix32x12.Matrix.SURPRISED"],["ASLEEP","matrix32x12.Matrix.ASLEEP"],["ANGRY","matrix32x12.Matrix.ANGRY"],["CONFUSED","matrix32x12.Matrix.CONFUSED"],["NO","matrix32x12.Matrix.NO"],["YES","matrix32x12.Matrix.YES"],["LEFT_ARROW","matrix32x12.Matrix.LEFT_ARROW"],["RIGHT_ARROW","matrix32x12.Matrix.RIGHT_ARROW"],["DRESS","matrix32x12.Matrix.DRESS"],["TRANSFORMERS","matrix32x12.Matrix.TRANSFORMERS"],["SCISSORS","matrix32x12.Matrix.SCISSORS"],["EXIT","matrix32x12.Matrix.EXIT"],["TREE","matrix32x12.Matrix.TREE"],["PACMAN","matrix32x12.Matrix.PACMAN"],["TARGET","matrix32x12.Matrix.TARGET"],["TSHIRT","matrix32x12.Matrix.TSHIRT"],["ROLLERSKATE","matrix32x12.Matrix.ROLLERSKATE"],["DUCK","matrix32x12.Matrix.DUCK"],["HOUSE","matrix32x12.Matrix.HOUSE"],["TORTOISE","matrix32x12.Matrix.TORTOISE"],["BUTTERFLY","matrix32x12.Matrix.BUTTERFLY"],["STICKFIGURE","matrix32x12.Matrix.STICKFIGURE"],["GHOST","matrix32x12.Matrix.GHOST"],["PITCHFORK","matrix32x12.Matrix.PITCHFORK"],["onboard_music_QUAVERS","matrix32x12.Matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","matrix32x12.Matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","matrix32x12.Matrix.onboard_music_CROTCHET"],["COW","matrix32x12.Matrix.COW"],["RABBIT","matrix32x12.Matrix.RABBIT"],["SQUARE_SMALL","matrix32x12.Matrix.SQUARE_SMALL"],["SQUARE","matrix32x12.Matrix.SQUARE"],["DIAMOND_SMALL","matrix32x12.Matrix.DIAMOND_SMALL"],["DIAMOND","matrix32x12.Matrix.DIAMOND"],["CHESSBOARD","matrix32x12.Matrix.CHESSBOARD"],["TRIANGLE_LEFT","matrix32x12.Matrix.TRIANGLE_LEFT"],["TRIANGLE","matrix32x12.Matrix.TRIANGLE"],["SNAKE","matrix32x12.Matrix.SNAKE"],["UMBRELLA","matrix32x12.Matrix.UMBRELLA"],["SKULL","matrix32x12.Matrix.SKULL"],["GIRAFFE","matrix32x12.Matrix.GIRAFFE"],["SWORD","matrix32x12.Matrix.SWORD"]],imglist:[["ALL_CLOCKS","onboard_matrix.ALL_CLOCKS"],["ALL_ARROWS","onboard_matrix.ALL_ARROWS"]],playlist:[["DADADADUM","onboard_music.DADADADUM"],["ENTERTAINER","onboard_music.ENTERTAINER"],["PRELUDE","onboard_music.PRELUDE"],["ODE","onboard_music.ODE"],["NYAN","onboard_music.NYAN"],["RINGTONE","onboard_music.RINGTONE"],["FUNK","onboard_music.FUNK"],["BLUES","onboard_music.BLUES"],["BIRTHDAY","onboard_music.BIRTHDAY"],["WEDDING","onboard_music.WEDDING"],["FUNERAL","onboard_music.FUNERAL"],["PUNCHLINE","onboard_music.PUNCHLINE"],["PYTHON","onboard_music.PYTHON"],["BADDY","onboard_music.BADDY"],["CHASE","onboard_music.CHASE"],["BA_DING","onboard_music.BA_DING"],["WAWAWAWAA","onboard_music.WAWAWAWAA"],["JUMP_UP","onboard_music.JUMP_UP"],["JUMP_DOWN","onboard_music.JUMP_DOWN"],["POWER_UP","onboard_music.POWER_UP"],["POWER_DOWN","onboard_music.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],tone_notes:[["NOTE_C3","131"],["NOTE_D3","147"],["NOTE_E3","165"],["NOTE_F3","175"],["NOTE_G3","196"],["NOTE_A3","220"],["NOTE_B3","247"],["NOTE_C4","262"],["NOTE_D4","294"],["NOTE_E4","330"],["NOTE_F4","349"],["NOTE_G4","392"],["NOTE_A4","440"],["NOTE_B4","494"],["NOTE_C5","523"],["NOTE_D5","587"],["NOTE_E5","659"],["NOTE_F5","698"],["NOTE_G5","784"],["NOTE_A5","880"],["NOTE_B5","988"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"],["3","3"]]},vg.mPython={description:"MicroPython[ESP32 Generic]",digital_pin:[["p0","33"],["p1","32"],["p2","35"],["p5","0"],["p6","16"],["p7","17"],["p8","26"],["p9","25"],["p11","2"],["p13","18"],["p14","19"],["p15","21"],["p16","5"],["p19","22"],["p20","23"]],digital:[["pin0","pin33"],["pin1","pin32"],["pin2","pin35"],["pin5","pin0"],["pin6","pin16"],["pin7","pin17"],["pin8","pin26"],["pin9","pin25"],["pin11","pin2"],["pin13","pin18"],["pin14","pin19"],["pin15","pin21"],["pin16","pin5"],["pin19","pin22"],["pin20","pin23"]],input_pin:[["p0","33"],["p1","32"],["p2","35"],["p5","0"],["p6","16"],["p7","17"],["p8","26"],["p9","25"],["p11","2"],["p13","18"],["p14","19"],["p15","21"],["p16","5"],["p19","22"],["p20","23"]],output_pin:[["p0","33"],["p1","32"],["p5","0"],["p6","16"],["p7","17"],["p8","26"],["p9","25"],["p11","2"],["p13","18"],["p14","19"],["p15","21"],["p16","5"],["p19","22"],["p20","23"]],pwm_pin:[["p0","33"],["p1","32"],["p5","0"],["p6","16"],["p7","17"],["p8","26"],["p9","25"],["p11","2"],["p13","18"],["p14","19"],["p15","21"],["p16","5"],["p19","22"],["p20","23"]],pwm:[["pwm0","pwm33"],["pwm1","pwm32"],["pwm5","pwm0"],["pwm6","pwm16"],["pwm7","pwm17"],["pwm8","pwm26"],["pwm9","pwm25"],["pwm11","pwm2"],["pwm13","pwm18"],["pwm14","pwm19"],["pwm15","pwm21"],["pwm16","pwm5"],["pwm19","pwm22"],["pwm20","pwm23"]],espnow_channel:p_.Profile.generate(["1-13"]),haskylens_model:p_.Profile.generate(["0-4"]),analog_pin:[["p0","33"],["p1","32"],["p2","35"],["p3","34"],["p4","39"],["p10","36"]],analog:[["adc0","adc33"],["adc1","adc32"],["adc2","adc35"],["adc3","adc34"],["adc4","adc39"],["adc10","adc36"]],dac_pin:[["p8","26"],["p9","25"]],dac:[["dac8","dac26"],["dac9","dac25"]],touch_mpython:[["p","p"],["y","y"],["t","t"],["h","h"],["o","o"],["n","n"]],touch:[["tc0","tc33"],["tc1","tc32"],["tc5","tc0"],["tc11","tc2"],["tc23","tc27"],["tc24","tc14"],["tc25","tc12"],["tc26","tc13"],["tc27","tc15"],["tc28","tc4"]],touch_pin:[["p0","33"],["p1","32"],["p5","0"],["p11","2"],["p23","27"],["p24","14"],["p25","12"],["p26","13"],["p27","15"],["p28","4"]],button:[["A","button_a"],["B","button_b"]],axis:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"]],exlcdh:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"],["10","10"],["11","11"],["12","12"],["13","13"],["14","14"],["15","15"]],exlcdv:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],brightness:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"]],tts_voice:p_.Profile.generate(["0-16"]),tts_builtin_music:p_.Profile.generate(["0-47"]),tts_bgmusic:p_.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["SILLY","onboard_matrix.SILLY"],["FABULOUS","onboard_matrix.FABULOUS"],["SURPRISED","onboard_matrix.SURPRISED"],["ASLEEP","onboard_matrix.ASLEEP"],["ANGRY","onboard_matrix.ANGRY"],["CONFUSED","onboard_matrix.CONFUSED"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"],["LEFT_ARROW","onboard_matrix.LEFT_ARROW"],["RIGHT_ARROW","onboard_matrix.RIGHT_ARROW"],["DRESS","onboard_matrix.DRESS"],["TRANSFORMERS","onboard_matrix.TRANSFORMERS"],["SCISSORS","onboard_matrix.SCISSORS"],["EXIT","onboard_matrix.EXIT"],["TREE","onboard_matrix.TREE"],["PACMAN","onboard_matrix.PACMAN"],["TARGET","onboard_matrix.TARGET"],["TSHIRT","onboard_matrix.TSHIRT"],["ROLLERSKATE","onboard_matrix.ROLLERSKATE"],["DUCK","onboard_matrix.DUCK"],["HOUSE","onboard_matrix.HOUSE"],["TORTOISE","onboard_matrix.TORTOISE"],["BUTTERFLY","onboard_matrix.BUTTERFLY"],["STICKFIGURE","onboard_matrix.STICKFIGURE"],["GHOST","onboard_matrix.GHOST"],["PITCHFORK","onboard_matrix.PITCHFORK"],["onboard_music_QUAVERS","onboard_matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","onboard_matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","onboard_matrix.onboard_music_CROTCHET"],["COW","onboard_matrix.COW"],["RABBIT","onboard_matrix.RABBIT"],["SQUARE_SMALL","onboard_matrix.SQUARE_SMALL"],["SQUARE","onboard_matrix.SQUARE"],["DIAMOND_SMALL","onboard_matrix.DIAMOND_SMALL"],["DIAMOND","onboard_matrix.DIAMOND"],["CHESSBOARD","onboard_matrix.CHESSBOARD"],["TRIANGLE_LEFT","onboard_matrix.TRIANGLE_LEFT"],["TRIANGLE","onboard_matrix.TRIANGLE"],["SNAKE","onboard_matrix.SNAKE"],["UMBRELLA","onboard_matrix.UMBRELLA"],["SKULL","onboard_matrix.SKULL"],["GIRAFFE","onboard_matrix.GIRAFFE"],["SWORD","onboard_matrix.SWORD"]],builtinimg_extern:[["HEART","matrix32x12.Matrix.HEART"],["HEART_SMALL","matrix32x12.Matrix.HEART_SMALL"],["HAPPY","matrix32x12.Matrix.HAPPY"],["SAD","matrix32x12.Matrix.SAD"],["SMILE","matrix32x12.Matrix.SMILE"],["SILLY","matrix32x12.Matrix.SILLY"],["FABULOUS","matrix32x12.Matrix.FABULOUS"],["SURPRISED","matrix32x12.Matrix.SURPRISED"],["ASLEEP","matrix32x12.Matrix.ASLEEP"],["ANGRY","matrix32x12.Matrix.ANGRY"],["CONFUSED","matrix32x12.Matrix.CONFUSED"],["NO","matrix32x12.Matrix.NO"],["YES","matrix32x12.Matrix.YES"],["LEFT_ARROW","matrix32x12.Matrix.LEFT_ARROW"],["RIGHT_ARROW","matrix32x12.Matrix.RIGHT_ARROW"],["DRESS","matrix32x12.Matrix.DRESS"],["TRANSFORMERS","matrix32x12.Matrix.TRANSFORMERS"],["SCISSORS","matrix32x12.Matrix.SCISSORS"],["EXIT","matrix32x12.Matrix.EXIT"],["TREE","matrix32x12.Matrix.TREE"],["PACMAN","matrix32x12.Matrix.PACMAN"],["TARGET","matrix32x12.Matrix.TARGET"],["TSHIRT","matrix32x12.Matrix.TSHIRT"],["ROLLERSKATE","matrix32x12.Matrix.ROLLERSKATE"],["DUCK","matrix32x12.Matrix.DUCK"],["HOUSE","matrix32x12.Matrix.HOUSE"],["TORTOISE","matrix32x12.Matrix.TORTOISE"],["BUTTERFLY","matrix32x12.Matrix.BUTTERFLY"],["STICKFIGURE","matrix32x12.Matrix.STICKFIGURE"],["GHOST","matrix32x12.Matrix.GHOST"],["PITCHFORK","matrix32x12.Matrix.PITCHFORK"],["onboard_music_QUAVERS","matrix32x12.Matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","matrix32x12.Matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","matrix32x12.Matrix.onboard_music_CROTCHET"],["COW","matrix32x12.Matrix.COW"],["RABBIT","matrix32x12.Matrix.RABBIT"],["SQUARE_SMALL","matrix32x12.Matrix.SQUARE_SMALL"],["SQUARE","matrix32x12.Matrix.SQUARE"],["DIAMOND_SMALL","matrix32x12.Matrix.DIAMOND_SMALL"],["DIAMOND","matrix32x12.Matrix.DIAMOND"],["CHESSBOARD","matrix32x12.Matrix.CHESSBOARD"],["TRIANGLE_LEFT","matrix32x12.Matrix.TRIANGLE_LEFT"],["TRIANGLE","matrix32x12.Matrix.TRIANGLE"],["SNAKE","matrix32x12.Matrix.SNAKE"],["UMBRELLA","matrix32x12.Matrix.UMBRELLA"],["SKULL","matrix32x12.Matrix.SKULL"],["GIRAFFE","matrix32x12.Matrix.GIRAFFE"],["SWORD","matrix32x12.Matrix.SWORD"]],imglist:[["ALL_CLOCKS","onboard_matrix.ALL_CLOCKS"],["ALL_ARROWS","onboard_matrix.ALL_ARROWS"]],playlist:[["DADADADUM","onboard_music.DADADADUM"],["ENTERTAINER","onboard_music.ENTERTAINER"],["PRELUDE","onboard_music.PRELUDE"],["ODE","onboard_music.ODE"],["NYAN","onboard_music.NYAN"],["RINGTONE","onboard_music.RINGTONE"],["FUNK","onboard_music.FUNK"],["BLUES","onboard_music.BLUES"],["BIRTHDAY","onboard_music.BIRTHDAY"],["WEDDING","onboard_music.WEDDING"],["FUNERAL","onboard_music.FUNERAL"],["PUNCHLINE","onboard_music.PUNCHLINE"],["PYTHON","onboard_music.PYTHON"],["BADDY","onboard_music.BADDY"],["CHASE","onboard_music.CHASE"],["BA_DING","onboard_music.BA_DING"],["WAWAWAWAA","onboard_music.WAWAWAWAA"],["JUMP_UP","onboard_music.JUMP_UP"],["JUMP_DOWN","onboard_music.JUMP_DOWN"],["POWER_UP","onboard_music.POWER_UP"],["POWER_DOWN","onboard_music.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],tone_notes:[["NOTE_C3","131"],["NOTE_D3","147"],["NOTE_E3","165"],["NOTE_F3","175"],["NOTE_G3","196"],["NOTE_A3","220"],["NOTE_B3","247"],["NOTE_C4","262"],["NOTE_D4","294"],["NOTE_E4","330"],["NOTE_F4","349"],["NOTE_G4","392"],["NOTE_A4","440"],["NOTE_B4","494"],["NOTE_C5","523"],["NOTE_D5","587"],["NOTE_E5","659"],["NOTE_F5","698"],["NOTE_G5","784"],["NOTE_A5","880"],["NOTE_B5","988"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"],["3","3"]]};const Xg=vg,Vg=230,kg={init:function(){this.setColour(Vg),this.appendDummyInput("").appendField(new a_.FieldDropdown(p_.Profile.default.digital),"PIN"),this.setOutput(!0)}},wg={init:function(){this.setColour(Vg),this.appendDummyInput("").appendField(new a_.FieldDropdown(p_.Profile.default.digital_pin),"PIN"),this.setOutput(!0,Number)}},Wg={init:function(){this.setColour(Vg),this.appendDummyInput("").appendField(new a_.FieldDropdown(p_.Profile.default.input_pin),"PIN"),this.setOutput(!0,Number)}},Kg={init:function(){this.setColour(Vg),this.appendDummyInput("").appendField(new a_.FieldDropdown(p_.Profile.default.output_pin),"PIN"),this.setOutput(!0,Number)}},zg={init:function(){this.setColour(Vg),this.appendDummyInput("").appendField(new a_.FieldDropdown(p_.Profile.default.touch_mpython),"PIN"),this.setOutput(!0,Number)}},Zg={init:function(){this.setColour(Vg),this.appendDummyInput("").appendField(new a_.FieldDropdown(p_.Profile.default.espnow_channel),"PIN"),this.setOutput(!0,Number)}},Qg={init:function(){this.setColour(Vg),this.appendDummyInput("").appendField(new a_.FieldDropdown(p_.Profile.default.haskylens_model),"PIN"),this.setOutput(!0,Number)}},Jg={init:function(){this.setColour(Vg),this.appendDummyInput("").appendField(new a_.FieldDropdown(p_.Profile.default.pwm_input),"PIN"),this.setOutput(!0)}},qg={init:function(){this.setColour(Vg),this.appendDummyInput("").appendField(new a_.FieldDropdown(p_.Profile.default.analog_input),"PIN"),this.setOutput(!0)}},jg={init:function(){this.setColour(Vg),this.appendDummyInput("").appendField(new a_.FieldDropdown(p_.Profile.default.pwm_output),"PIN"),this.setOutput(!0)}},$g={init:function(){this.setColour(Vg),this.appendDummyInput("").appendField(new a_.FieldDropdown(p_.Profile.default.analog_output),"PIN"),this.setOutput(!0)}},_G={init:function(){this.setColour(Vg),this.appendDummyInput("").appendField(new a_.FieldDropdown(p_.Profile.default.i2c_A_pin),"PIN"),this.setOutput(!0,Number)}},tG={init:function(){this.setColour(Vg),this.appendDummyInput("").appendField(new a_.FieldDropdown(p_.Profile.default.i2c_B_pin),"PIN"),this.setOutput(!0,Number)}},eG={init:function(){this.setColour(Vg),this.appendDummyInput("").appendField(new a_.FieldDropdown(p_.Profile.default.spi_A_pin),"PIN"),this.setOutput(!0,Number)}},iG={init:function(){this.setColour(Vg),this.appendDummyInput("").appendField(new a_.FieldDropdown(p_.Profile.default.spi_B_pin),"PIN"),this.setOutput(!0,Number)}},TG={init:function(){this.setColour(Vg),this.appendDummyInput("").appendField(new a_.FieldDropdown(p_.Profile.default.spi_C_pin),"PIN"),this.setOutput(!0,Number)}},EG={init:function(){this.setColour(Vg),this.appendDummyInput("").appendField(new a_.FieldDropdown(p_.Profile.default.spi_D_pin),"PIN"),this.setOutput(!0,Number)}},nG={init:function(){this.setColour(Vg),this.appendDummyInput("").appendField(new a_.FieldDropdown(p_.Profile.default.analog),"PIN"),this.setOutput(!0)}},oG={init:function(){this.setColour(Vg),this.appendDummyInput("").appendField(new a_.FieldDropdown(p_.Profile.default.analog_pin),"PIN"),this.setOutput(!0,Number)}},sG={init:function(){this.setColour(Vg),this.appendDummyInput("").appendField(new a_.FieldDropdown(p_.Profile.default.dac),"PIN"),this.setOutput(!0)}},OG={init:function(){this.setColour(Vg),this.appendDummyInput("").appendField(new a_.FieldDropdown(p_.Profile.default.dac_pin),"PIN"),this.setOutput(!0,Number)}},IG={init:function(){this.setColour(Vg),this.appendDummyInput("").appendField(new a_.FieldDropdown(p_.Profile.default.button),"PIN"),this.setOutput(!0,Number)}},aG={init:function(){this.setColour(Vg),this.appendDummyInput("").appendField(new a_.FieldDropdown(p_.Profile.default.pwm),"PIN"),this.setOutput(!0)}},pG={init:function(){this.setColour(Vg),this.appendDummyInput("").appendField(new a_.FieldDropdown(p_.Profile.default.pwm_pin),"PIN"),this.setOutput(!0,Number)}},MG={init:function(){this.setColour(Vg),this.appendDummyInput("").appendField(new a_.FieldDropdown(p_.Profile.default.touch_pin),"PIN"),this.setOutput(!0,Number)}},LG={init:function(){this.setColour(Vg),this.appendDummyInput("").appendField(new a_.FieldDropdown(p_.Profile.default.touch),"PIN"),this.setOutput(!0)}},RG={init:function(){this.setColour(Vg),this.appendDummyInput("").appendField(new a_.FieldDropdown(p_.Profile.default.serial_pin),"PIN"),this.setOutput(!0,Number)}},rG={init:function(){this.setColour(Vg),this.appendDummyInput("").appendField(new a_.FieldDropdown(p_.Profile.default.builtinimg),"PIN"),this.setOutput(!0,"esp32_image")}},SG={init:function(){this.setColour(Vg),this.appendDummyInput("").appendField(new a_.FieldDropdown(p_.Profile.default.builtinimg_extern),"PIN"),this.setOutput(!0,"esp32_image")}},lG={init:function(){this.setColour(Vg),this.appendDummyInput("").appendField(new a_.FieldDropdown(p_.Profile.default.imglist),"PIN"),this.setOutput(!0)}},AG={init:function(){this.setColour(Vg),this.appendDummyInput("").appendField(new a_.FieldDropdown(p_.Profile.default.playlist),"PIN"),this.setOutput(!0)}},PG={init:function(){this.setColour(Vg),this.appendDummyInput("").appendField(new a_.FieldDropdown(p_.Profile.default.playlist_extern),"PIN"),this.setOutput(!0)}},NG={init:function(){this.setColour(Vg),this.appendDummyInput("").appendField(new a_.FieldDropdown(p_.Profile.default.exlcdh),"PIN"),this.setOutput(!0,Number)}},dG={init:function(){this.setColour(Vg),this.appendDummyInput("").appendField(new a_.FieldDropdown(p_.Profile.default.exlcdv),"PIN"),this.setOutput(!0,Number)}},hG={init:function(){this.setColour(Vg),this.appendDummyInput("").appendField(new a_.FieldDropdown(p_.Profile.default.axis),"PIN"),this.setOutput(!0,Number)}},uG={init:function(){this.setColour(Vg),this.appendDummyInput("").appendField(new a_.FieldDropdown(p_.Profile.default.brightness),"PIN"),this.setOutput(!0,Number)}},mG={init:function(){this.setColour(Vg),this.appendDummyInput("").appendField(new a_.FieldDropdown(p_.Profile.default.tts_voice),"PIN"),this.setOutput(!0,Number)}},CG={init:function(){this.setColour(Vg),this.appendDummyInput("").appendField(new a_.FieldDropdown(p_.Profile.default.tts_builtin_music),"PIN"),this.setOutput(!0,Number)}},cG={init:function(){this.setColour(Vg),this.appendDummyInput("").appendField(new a_.FieldDropdown(p_.Profile.default.tts_bgmusic),"PIN"),this.setOutput(!0,Number)}},HG={init:function(){this.setColour(Vg),this.appendDummyInput("").appendField(new a_.FieldDropdown(p_.Profile.default.tone_notes),"PIN"),this.setOutput(!0,Number)}},DG={init:function(){this.setColour(Vg),this.appendDummyInput("").appendField(new a_.FieldDropdown(p_.Profile.default.radio_power),"PIN"),this.setOutput(!0,Number)}},YG={init:function(){this.setColour(Vg),this.appendDummyInput("").appendField(new a_.FieldDropdown(p_.Profile.default.radio_datarate),"PIN"),this.setOutput(!0,Number)}},UG={init:function(){this.setColour(Vg),this.appendDummyInput("").appendField(new a_.FieldDropdown(p_.Profile.default.one_more),"PIN"),this.setOutput(!0)}},BG={init:function(){this.setColour(Vg),this.appendDummyInput("").appendField(new a_.FieldDropdown(p_.Profile.default.digital_dot),"PIN"),this.setOutput(!0,Number)}},gG=function(_,t){return[this.getFieldValue("PIN"),t.ORDER_ATOMIC]},GG=gG,FG=gG,yG=gG,fG=gG,bG=gG,xG=gG,vG=gG,XG=gG,VG=gG,kG=gG,wG=gG,WG=gG,KG=gG,zG=gG,ZG=gG,QG=gG,JG=gG,qG=gG,jG=gG,$G=gG,_F=gG,tF=gG,eF=gG,iF=gG,TF=gG,EF=gG,nF=gG,oF=gG,sF=gG,OF=gG,IF=gG,aF=gG,pF=gG,MF=gG,LF={TEXT_IS_NUMBER_HELPURL:"",TEXT_IS_NUMBER_TOOLTIP:"",TEXT_IS_NUMBER_MESSAGE0:"%1 %2",TEXT_IS_DIGIT:"是数字",TEXT_IS_ALPHA:"是字母",TEXT_IS_ALNUM:"是数字和字母的组合",TEXT_LIST_START:"初始化列表 [",TEXT_LIST_END:"]",TEXT_TUPLE_START:"初始化元组 (",TEXT_TUPLE_END:")",TEXT_DICT_START:"初始化字典 {",TEXT_DICT_END:"}",TEXT_SET_START:"初始化集合 {",TEXT_SET_END:"}",TEXT_SET_HELPURL:"https://mpythonx.readthedocs.io/zh_CN/latest/index.html",ADD_COMMENT:"添加注释",CHANGE_VALUE_TITLE:"更改值:",CLEAN_UP:"整理块",COLLAPSE_ALL:"折叠块",COLLAPSE_BLOCK:"折叠块",COLOUR_BLEND_COLOUR1:"颜色1",COLOUR_BLEND_COLOUR2:"颜色2",COLOUR_BLEND_HELPURL:"http://meyerweb.com/eric/tools/color-blend/",COLOUR_BLEND_RATIO:"比例",COLOUR_BLEND_TITLE:"混合",COLOUR_BLEND_TOOLTIP:"用一个给定的比率(0.0-1.0)混合两种颜色。",COLOUR_PICKER_HELPURL:"https://zh.wikipedia.org/wiki/颜色",COLOUR_PICKER_TOOLTIP:"从调色板中选择一种颜色。",COLOUR_RANDOM_HELPURL:"http://randomcolour.com",COLOUR_RANDOM_TITLE:"随机颜色",COLOUR_RANDOM_TOOLTIP:"随机选择一种颜色。",COLOUR_RGB_BLUE:"蓝色",COLOUR_RGB_GREEN:"绿色",COLOUR_RGB_HELPURL:"http://www.december.com/html/spec/colorper.html",COLOUR_RGB_RED:"红色",COLOUR_RGB_TITLE:"颜色",COLOUR_RGB_TOOLTIP:"通过指定红色、绿色和蓝色的量创建一种颜色。所有的值必须介于0和100之间。",CONTROLS_FLOW_STATEMENTS_HELPURL:"https://github.com/google/blockly/wiki/Loops#loop-termination-blocks",CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK:"中断循环",CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE:"继续下一次循环",CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK:"中断包含它的循环。",CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE:"跳过这个循环的剩余部分,并继续下一次迭代。",CONTROLS_FLOW_STATEMENTS_WARNING:"警告:此块仅可用于在一个循环内。",CONTROLS_FOREACH_HELPURL:"https://github.com/google/blockly/wiki/Loops#for-each",CONTROLS_FOREACH_TITLE:"为每个项目 %1 在列表中 %2",CONTROLS_FOREACH_TOOLTIP:"遍历每个列表中的项目,将变量“%1”设定到该项中,然后执行某些语句。",CONTROLS_FOR_HELPURL:"https://github.com/google/blockly/wiki/Loops#count-with",CONTROLS_FOR_TITLE:"使用 %1 从范围 %2 到 %3 每隔 %4",CONTROLS_FOR_TOOLTIP:"从起始数到结尾数中取出变量“%1”的值,按指定的时间间隔,执行指定的块。",CONTROLS_IF_ELSEIF_TOOLTIP:"在if语句块中增加一个条件。",CONTROLS_IF_ELSE_TOOLTIP:"添加一个最终的,包括所有情况的节到if块中。",CONTROLS_IF_HELPURL:"https://github.com/google/blockly/wiki/IfElse",TRY_EXCEPT_HELPURL:"https://mpythonx.readthedocs.io/zh_CN/latest/index.html",CONTROLS_IF_IF_TOOLTIP:"增加、删除或重新排列各节来重新配置“if”块。",CONTROLS_IF_MSG_ELSE:"否则",CONTROLS_IF_MSG_ELSEIF:"否则如果",TRY_EXCEPT_FINALLY:"finally",TRY_EXCEPT_FINALLY_TOOLTIP:"",TRY_EXCEPT_EXCEPT:"except",TRY_EXCEPT_EXCEPT_TOOLTIP:"",TRY_EXCEPT_TRY:"try",TRY_EXCEPT_TRY_TOOLTIP:"",CONTROLS_IF_MSG_IF:"如果",CONTROLS_IF_TOOLTIP_1:"如果值为真,执行一些语句。",CONTROLS_IF_TOOLTIP_2:"如果值为真,则执行第一块语句。否则,则执行第二块语句。",CONTROLS_IF_TOOLTIP_3:"如果第一个值为真,则执行第一块的语句。否则,如果第二个值为真,则执行第二块的语句。",CONTROLS_IF_TOOLTIP_4:"如果第一个值为真,则执行第一块对语句。否则,如果第二个值为真,则执行语句的第二块。如果没有值为真,则执行最后一块的语句。",CONTROLS_REPEAT_FOREVER:"一直重复",CONTROLS_REPEAT_FOREVER_TOOLTIP:"一直执行一些语句。",CONTROLS_REPEAT_HELPURL:"https://zh.wikipedia.org/wiki/For循环",CONTROLS_REPEAT_INPUT_DO:"",CONTROLS_REPEAT_TITLE:"重复 %1 次",CONTROLS_REPEAT_TOOLTIP:"多次执行一些语句。",CONTROLS_WHILEUNTIL_HELPURL:"https://github.com/google/blockly/wiki/Loops#repeat",CONTROLS_WHILEUNTIL_OPERATOR_UNTIL:"重复直到",CONTROLS_WHILEUNTIL_OPERATOR_WHILE:"重复当",CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL:"只要值为假,执行一些语句。",CONTROLS_WHILEUNTIL_TOOLTIP_WHILE:"只要值为真,执行一些语句。",DELETE_ALL_BLOCKS:"删除所有%1块吗?",DELETE_BLOCK:"删除块",DELETE_VARIABLE:"删除“%1”变量",DELETE_VARIABLE_CONFIRMATION:"删除“%2”变量的%1种用途么?",DELETE_X_BLOCKS:"删除块",DISABLE_BLOCK:"禁用块",DUPLICATE_BLOCK:"复制",ENABLE_BLOCK:"启用块",EXPAND_ALL:"展开块",EXPAND_BLOCK:"展开块",EXTERNAL_INPUTS:"多行输入",HELP:"帮助",INLINE_INPUTS:"单行输入",LISTS_CREATE_EMPTY_HELPURL:"https://github.com/google/blockly/wiki/Lists#create-empty-list",LISTS_CREATE_EMPTY_TITLE:"创建空列表",TUPLE_CREATE_EMPTY_TITLE:"创建空元组",DICT_CREATE_EMPTY_TITLE:"创建空字典",SET_CREATE_EMPTY_TITLE:"创建空集合",LISTS_CREATE_EMPTY_TOOLTIP:"返回一个列表,长度为 0,不包含任何数据记录",LISTS_CREATE_WITH_CONTAINER_TITLE_ADD:"列表",TUPLE_CREATE_WITH_CONTAINER_TITLE_ADD:"元组",DICT_CREATE_WITH_CONTAINER_TITLE_ADD:"字典",SET_CREATE_WITH_CONTAINER_TITLE_ADD:"集合",LISTS_CREATE_WITH_CONTAINER_TOOLTIP:"增加、删除或重新排列各部分以此重新配置这个列表块。",TUPLE_CREATE_WITH_CONTAINER_TOOLTIP:"增加、删除或重新排列各部分以此重新配置这个元组块。",DICT_CREATE_WITH_CONTAINER_TOOLTIP:"增加、删除或重新排列各部分以此重新配置这个字典块。",SET_CREATE_WITH_CONTAINER_TOOLTIP:"增加、删除或重新排列各部分以此重新配置这个集合块。",LISTS_CREATE_WITH_HELPURL:"https://github.com/google/blockly/wiki/Lists#create-list-with",LISTS_CREATE_WITH_INPUT_WITH:"初始化列表",TUPLE_CREATE_WITH_INPUT_WITH:"初始化元组",DICT_CREATE_WITH_INPUT_WITH:"初始化字典",SET_CREATE_WITH_INPUT_WITH:"初始化集合",LISTS_CREATE_WITH_ITEM_TOOLTIP:"将一个项添加到列表中。",TUPLE_CREATE_WITH_ITEM_TOOLTIP:"将一个项添加到元组中。",DICT_CREATE_WITH_ITEM_TOOLTIP:"将一个项添加到字典中。",SET_CREATE_WITH_ITEM_TOOLTIP:"将一个项添加到集合中。",LISTS_CREATE_WITH_TOOLTIP:"建立一个具有任意数量项目的列表。",LISTS_GET_INDEX_FIRST:"第一",LISTS_GET_INDEX_FROM_END:"倒数第",LISTS_GET_INDEX_FROM_START:"第",LISTS_GET_INDEX_GET:"获得",LISTS_GET_INDEX_GET_REMOVE:"取出并移除",LISTS_GET_INDEX_LAST:"最后",LISTS_GET_INDEX_RANDOM:"随机",LISTS_GET_INDEX_REMOVE:"移除",LISTS_POP_HELPURL:"",LISTS_POP_TOOLTIP:"",LISTS_POP_MESSAGE0:"在列表 %1 中移除 %2 项",LISTS_GET_INDEX_TAIL:"",LISTS_GET_INDEX_TOOLTIP_GET_FIRST:"返回列表中的第一个项目。",LISTS_GET_INDEX_TOOLTIP_GET_FROM:"返回在列表中的指定位置的项。",LISTS_GET_INDEX_TOOLTIP_GET_LAST:"返回列表中的最后一项。",LISTS_GET_INDEX_TOOLTIP_GET_RANDOM:"随机返回列表中的一个项目。",LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST:"移除并返回列表中的第一个项目。",LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM:"移除并返回列表中的指定位置的项。",LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST:"移除并返回列表中的最后一个项目。",LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM:"移除并返回列表中的一个随机项目中。",LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST:"移除列表中的第一项",LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM:"移除在列表中的指定位置的项。",LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST:"移除列表中的最后一项",LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM:"删除列表中的一个随机的项。",LISTS_GET_SUBLIST_END_FROM_END:"到倒数第#",LISTS_GET_SUBLIST_END_FROM_START:"到#",LISTS_GET_SUBLIST_END_LAST:"到最后",LISTS_GET_SUBLIST_HELPURL:"https://github.com/google/blockly/wiki/Lists#getting-a-sublist",LISTS_GET_SUBLIST_START_FIRST:"从头获得子列表",LISTS_GET_SUBLIST_START_FROM_END:"从倒数#取得子列表",LISTS_GET_SUBLIST_START_FROM_START:"从#取得子列表",LISTS_GET_SUBLIST_TAIL:"",LISTS_GET_SUBLIST_TOOLTIP:"复制列表中指定的部分。",LISTS_INDEX_FROM_END_TOOLTIP:"%1是最后一项。",LISTS_INDEX_FROM_START_TOOLTIP:"%1是第一个项目。",LISTS_INDEX_OF_FIRST:"找出第一个项出现",LISTS_INDEX_OF_HELPURL:"https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list",LISTS_INDEX_OF_LAST:"找出最后一个项出现",LISTS_INDEX_OF_TOOLTIP:"返回在列表中的第一/最后一个匹配项的索引值。如果找不到项目则返回0",LISTS_INLIST:"在列表中",LISTS_ISEMPTY_HELPURL:"https://github.com/google/blockly/wiki/Lists#is-empty",LISTS_ISEMPTY_TITLE:"%1是空的",LISTS_ISEMPTY_TOOLTIP:"如果改列表为空,则返回真。",LISTS_LENGTH_HELPURL:"https://github.com/google/blockly/wiki/Lists#length-of",LISTS_LENGTH_TITLE:"%1的长度",LISTS_LENGTH_TOOLTIP:"返回列表的长度。",LISTS_REPEAT_HELPURL:"https://github.com/google/blockly/wiki/Lists#create-list-with",LISTS_REPEAT_TITLE:"建立列表 项 %1 重复 %2 次",LISTS_REPEAT_TOOLTIP:"建立包含指定重复次数的值的列表。",LISTS_SET_INDEX_HELPURL:"https://github.com/google/blockly/wiki/Lists#in-list--set",LISTS_SET_INDEX_INPUT_TO:"为",LISTS_SET_INDEX_INSERT:"插入在",LISTS_SET_INDEX_SET:"设置",LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST:"在列表的起始处添加该项。",LISTS_SET_INDEX_TOOLTIP_INSERT_FROM:"插入在列表中指定位置的项。",LISTS_SET_INDEX_TOOLTIP_INSERT_LAST:"将该项追加到列表的末尾。",LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM:"在列表中随机插入项。",LISTS_SET_INDEX_TOOLTIP_SET_FIRST:"设置列表中的第一个项目。",LISTS_SET_INDEX_TOOLTIP_SET_FROM:"设置在列表中指定位置的项。",LISTS_SET_INDEX_TOOLTIP_SET_LAST:"设置列表中的最后一项。",LISTS_SET_INDEX_TOOLTIP_SET_RANDOM:"设置列表中一个随机的项目。",LISTS_SORT_HELPURL:"https://github.com/google/blockly/wiki/Lists#sorting-a-list",LISTS_SORT_ORDER_ASCENDING:"升序",LISTS_SORT_ORDER_DESCENDING:"降序",LISTS_SORT_TITLE:"排序%1 %2 %3",LISTS_SORT_TOOLTIP:"排序一个列表的拷贝。",LISTS_SORT_TYPE_IGNORECASE:"按字母排序,忽略大小写",LISTS_SORT_TYPE_NUMERIC:"按数字排序",LISTS_SORT_TYPE_TEXT:"按字母排序",LISTS_SPLIT_HELPURL:"https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists",LISTS_SPLIT_LIST_FROM_TEXT:"从文本制作列表",LISTS_SPLIT_TEXT_FROM_LIST:"从列表组合文本",LISTS_SPLIT_TOOLTIP_JOIN:"加入文本列表至一个文本,由分隔符分隔。",LISTS_SPLIT_TOOLTIP_SPLIT:"拆分文本到文本列表,按每个分隔符拆分。",LISTS_SPLIT_WITH_DELIMITER:"用分隔符",LOGIC_BOOLEAN_FALSE:"假",LOGIC_BOOLEAN_HELPURL:"https://github.com/google/blockly/wiki/Logic#values",LOGIC_BOOLEAN_TOOLTIP:"返回真或假。",LOGIC_BOOLEAN_TRUE:"真",LOGIC_COMPARE_HELPURL:"https://zh.wikipedia.org/wiki/不等",LOGIC_COMPARE_TOOLTIP_EQ:"如果两个输入结果相等,则返回真。",LOGIC_COMPARE_TOOLTIP_GT:"如果第一个输入结果比第二个大,则返回真。",LOGIC_COMPARE_TOOLTIP_GTE:"如果第一个输入结果大于或等于第二个输入结果,则返回真。",LOGIC_COMPARE_TOOLTIP_LT:"如果第一个输入结果比第二个小,则返回真。",LOGIC_COMPARE_TOOLTIP_LTE:"如果第一个输入结果小于或等于第二个输入结果,则返回真。",LOGIC_COMPARE_TOOLTIP_NEQ:"如果两个输入结果不相等,则返回真。",LOGIC_NEGATE_HELPURL:"https://github.com/google/blockly/wiki/Logic#not",LOGIC_NEGATE_TITLE:"非%1",LOGIC_NEGATE_TOOLTIP:"如果输入结果为假,则返回真;如果输入结果为真,则返回假。",LOGIC_NULL:"空",LOGIC_NULL_HELPURL:"https://en.wikipedia.org/wiki/Nullable_type",LOGIC_NULL_TOOLTIP:"返回空值。",LOGIC_OPERATION_AND:"和",LOGIC_OPERATION_HELPURL:"https://github.com/google/blockly/wiki/Logic#logical-operations",LOGIC_OPERATION_OR:"或",LOGIC_OPERATION_TOOLTIP_AND:"如果两个输入结果都为真,则返回真。",LOGIC_OPERATION_TOOLTIP_OR:"如果至少有一个输入结果为真,则返回真。",LOGIC_TERNARY_CONDITION:"测试",LOGIC_TERNARY_HELPURL:"https://zh.wikipedia.org/wiki/条件运算符",LOGIC_TERNARY_IF_FALSE:"如果为假",LOGIC_TERNARY_IF_TRUE:"如果为真",LOGIC_TERNARY_TOOLTIP:"检查“test”中的条件。如果条件为真,则返回“if true”的值,否则,则返回“if false”的值。",MATH_ADDITION_SYMBOL:"+",MATH_ARITHMETIC_HELPURL:"https://zh.wikipedia.org/wiki/算术",MATH_ARITHMETIC_TOOLTIP_ADD:"返回两个数字的和。",MATH_ARITHMETIC_TOOLTIP_DIVIDE:"返回两个数字的商。",MATH_ARITHMETIC_TOOLTIP_MINUS:"返回两个数字的区别。",MATH_ARITHMETIC_TOOLTIP_MULTIPLY:"返回两个数字的乘积。",MATH_ARITHMETIC_TOOLTIP_POWER:"返回第一个数的第二个数次幂。",MATH_CHANGE_HELPURL:"https://zh.wikipedia.org/wiki/%E5%8A%A0%E6%B3%95",MATH_CHANGE_TITLE:"将变量 %1 的值增加 %2",MATH_CHANGE_TOOLTIP:"将一个数添加到变量“%1”。",MATH_CONSTANT_HELPURL:"https://zh.wikipedia.org/wiki/数学常数",MATH_CONSTANT_TOOLTIP:"返回一个常见常量:π (3.141......),e (2.718...)、φ (1.618...)、 sqrt(2) (1.414......)、sqrt(½) (0.707......)或 ∞(无穷大)。",MATH_CONSTRAIN_HELPURL:"https://en.wikipedia.org/wiki/Clamping_%28graphics%29",MATH_CONSTRAIN_TITLE:"限制数字 %1 介于 (低) %2 到 (高) %3",MATH_CONSTRAIN_TOOLTIP:"限制数字介于两个指定的数字之间",MATH_CONVERT_HELPURL:"",MATH_CONVERT_MESSAGE0:"%1 %2",MATH_CONVERT_TOOLTIP:"强制转换数据类型",MATH_DIVISION_CONSULT_HELPURL:"",MATH_DIVISION_CONSULT_TITLE:"%1 ÷ %2 商的整数部分",MATH_DIVISION_CONSULT_TOOLTIP:"",MATH_DIVISION_SYMBOL:"÷",MATH_IS_DIVISIBLE_BY:"可被整除",MATH_IS_EVEN:"是偶数",MATH_IS_NEGATIVE:"为负",MATH_IS_ODD:"是奇数",MATH_IS_POSITIVE:"为正",MATH_IS_PRIME:"是质数",MATH_IS_TOOLTIP:"如果数字是偶数、奇数、非负整数、正数、负数或如果它可被某数字整除,则返回真或假。",MATH_IS_WHOLE:"为整数",MATH_MODULO_HELPURL:"https://zh.wikipedia.org/wiki/模除",MATH_MODULO_TITLE:"%1 ÷ %2 的余数",MATH_MODULO_TOOLTIP:"返回这两个数字相除后的余数。",MATH_MULTIPLICATION_SYMBOL:"×",MATH_NUMBER_BITS_OPS_HELPURL:"",MATH_NUMBER_BITS_OPS_MESSAGE0:"%1 %2 %3",MATH_NUMBER_BITS_OPS_TOOLTIP:"对数字进行位运算",MATH_NUMBER_HELPURL:"https://zh.wikipedia.org/wiki/数",MATH_NUMBER_TOOLTIP:"一个数字。",MATH_ONLIST_HELPURL:"",MATH_ONLIST_OPERATOR_AVERAGE:"列表中的平均数",MATH_ONLIST_OPERATOR_MAX:"列表中的最大值",MATH_ONLIST_OPERATOR_MEDIAN:"列表中位数",MATH_ONLIST_OPERATOR_MIN:"列表中的最小值",MATH_ONLIST_OPERATOR_MODE:"列表模式",MATH_ONLIST_OPERATOR_RANDOM:"列表的随机项",MATH_ONLIST_OPERATOR_STD_DEV:"列表中的标准差",MATH_ONLIST_OPERATOR_SUM:"列表中的数的总和",MATH_ONLIST_TOOLTIP_AVERAGE:"返回列表中的数值的平均值。",MATH_ONLIST_TOOLTIP_MAX:"返回列表中最大数。",MATH_ONLIST_TOOLTIP_MEDIAN:"返回列表中的中位数。",MATH_ONLIST_TOOLTIP_MIN:"返回列表中最小数。",MATH_ONLIST_TOOLTIP_MODE:"返回列表中的最常见的项的列表。",MATH_ONLIST_TOOLTIP_RANDOM:"从列表中返回一个随机的元素。",MATH_ONLIST_TOOLTIP_STD_DEV:"返回列表的标准偏差。",MATH_ONLIST_TOOLTIP_SUM:"返回列表中的所有数字的和。",MATH_POWER_SYMBOL:"**",MATH_RANDOM_FLOAT_HELPURL:"https://zh.wikipedia.org/wiki/随机数生成器",MATH_RANDOM_FLOAT_TITLE_RANDOM:"随机小数",MATH_RANDOM_FLOAT_TOOLTIP:"返回介于(包含)0.0到1.0之间的随机数。",MATH_RANDOM_INT_HELPURL:"https://zh.wikipedia.org/wiki/随机数生成器",MATH_RANDOM_INT_TITLE:"从 %1 到 %2 之间的随机整数",MATH_RANDOM_INT_TOOLTIP:"返回两个指定的范围(含)之间的随机整数。",MATH_ROUND_HELPURL:"https://zh.wikipedia.org/wiki/数值修约",MATH_ROUND_OPERATOR_ROUND:"四舍五入",MATH_ROUND_OPERATOR_ROUNDDOWN:"向下舍入",MATH_ROUND_OPERATOR_ROUNDUP:"向上舍入",MATH_ROUND_TOOLTIP:"数字向上或向下舍入。",MATH_SINGLE_HELPURL:"https://zh.wikipedia.org/wiki/平方根",MATH_SINGLE_OP_ABSOLUTE:"绝对",MATH_SINGLE_OP_ROOT:"平方根",MATH_SINGLE_TOOLTIP_ABS:"返回一个数的绝对值。",MATH_SINGLE_TOOLTIP_EXP:"返回数的e次幂。",MATH_SINGLE_TOOLTIP_LN:"返回一个数的自然对数。",MATH_SINGLE_TOOLTIP_LOG10:"返回数字的对数。",MATH_SINGLE_TOOLTIP_NEG:"返回数的逻辑非。",MATH_SINGLE_TOOLTIP_POW10:"返回数的10次幂。",MATH_SINGLE_TOOLTIP_ROOT:"返回数的平方根。",MATH_SUBTRACTION_SYMBOL:"-",MATH_TRIG_ACOS:"acos",MATH_TRIG_ASIN:"asin",MATH_TRIG_ATAN:"atan",MATH_TRIG_COS:"cos",MATH_TRIG_HELPURL:"https://zh.wikipedia.org/wiki/三角函数",MATH_TRIG_SIN:"sin",MATH_TRIG_TAN:"tan",MATH_TRIG_TOOLTIP_ACOS:"返回一个数的反余弦值。",MATH_TRIG_TOOLTIP_ASIN:"返回一个数的反正弦值。",MATH_TRIG_TOOLTIP_ATAN:"返回指定角度的反正切值。",MATH_TRIG_TOOLTIP_COS:"返回指定角度的余弦值(非弧度)。",MATH_TRIG_TOOLTIP_SIN:"返回指定角度的正弦值(非弧度)。",MATH_TRIG_TOOLTIP_TAN:"返回指定角度的正切值(非弧度)。",NEW_VARIABLE:"创建变量...",NEW_VARIABLE_TITLE:"新变量的名称:",ORDINAL_NUMBER_SUFFIX:"",PROCEDURES_ALLOW_STATEMENTS:"允许声明",PROCEDURES_BEFORE_PARAMS:"参数:",PROCEDURES_CALLNORETURN_HELPURL:"https://zh.wikipedia.org/wiki/子程序",PROCEDURES_CALLNORETURN_TOOLTIP:"运行用户定义的函数“%1”。",PROCEDURES_CALLRETURN_HELPURL:"https://zh.wikipedia.org/wiki/子程序",PROCEDURES_CALLRETURN_TOOLTIP:"运行用户定义的函数“%1”,并使用它的输出值。",PROCEDURES_CALL_BEFORE_PARAMS:"与:",PROCEDURES_CREATE_DO:"创建“%1”",PROCEDURES_DEFNORETURN_COMMENT:"",PROCEDURES_DEFNORETURN_DO:"",PROCEDURES_DEFNORETURN_HELPURL:"https://zh.wikipedia.org/wiki/子程序",PROCEDURES_DEFNORETURN_PROCEDURE:"my_func",PROCEDURES_DEFNORETURN_TITLE:"定义函数",PROCEDURES_DEFNORETURN_TOOLTIP:"创建一个不带输出值的函数。",PROCEDURES_DEFRETURN_HELPURL:"https://zh.wikipedia.org/wiki/子程序",PROCEDURES_DEFRETURN_RETURN:"返回",PROCEDURES_DEFRETURN_TOOLTIP:"创建一个有输出值的函数。",PROCEDURES_DEF_DUPLICATE_WARNING:"警告: 此函数具有重复参数。",PROCEDURES_HIGHLIGHT_DEF:"突出显示函数定义",PROCEDURES_IFRETURN_HELPURL:"http://c2.com/cgi/wiki?GuardClause",PROCEDURES_IFRETURN_TOOLTIP:"如果值为真,则返回第二个值。",PROCEDURES_IFRETURN_WARNING:"警告: 仅在定义函数内可使用此块。",PROCEDURES_MUTATORARG_TITLE:"输入名称:",PROCEDURES_MUTATORARG_TOOLTIP:"添加函数输入。",PROCEDURES_MUTATORCONTAINER_TITLE:"输入",PROCEDURES_MUTATORCONTAINER_TOOLTIP:"添加、删除或重新排此函数的输入。",REDO:"重做",REMOVE_COMMENT:"删除注释",RENAME_VARIABLE:"重命名变量...",RENAME_VARIABLE_TITLE:"将所有“%1”变量重命名为:",TEXT_APPEND_APPENDTEXT:"追加文本",TEXT_APPEND_HELPURL:"https://github.com/google/blockly/wiki/Text#text-modification",TEXT_APPEND_TO:"",TEXT_APPEND_TOOLTIP:"将一些文本追加到变量“%1”。",TEXT_CHANGECASE_HELPURL:"https://github.com/google/blockly/wiki/Text#adjusting-text-case",TEXT_CHANGECASE_OPERATOR_LOWERCASE:"转为小写",TEXT_CHANGECASE_OPERATOR_TITLECASE:"转为首字母大写",TEXT_CHANGECASE_OPERATOR_UPPERCASE:"转为大写",TEXT_CHANGECASE_TOOLTIP:"使用不同的大小写复制这段文字。",TEXT_CHARAT_FIRST:"获得第一个字符",TEXT_CHARAT_FROM_END:"获得倒数第#个字符",TEXT_CHARAT_FROM_START:"获得字符#",TEXT_CHARAT_HELPURL:"https://github.com/google/blockly/wiki/Text#extracting-text",TEXT_CHARAT_INPUT_INTEXT:"从文本",TEXT_CHARAT_LAST:"获得最后一个字符",TEXT_CHARAT_RANDOM:"获取随机的字母",TEXT_CHARAT_TAIL:"",TEXT_CHARAT_TOOLTIP:"返回位于指定位置的字母。",TEXT_CREATE_JOIN_ITEM_TOOLTIP:"将一个项添加到文本中。",TEXT_CREATE_JOIN_TITLE_JOIN:"加入",TEXT_CREATE_JOIN_TOOLTIP:"添加、移除或重新排列各节来重新配置这个文本块。",TEXT_GET_SUBSTRING_END_FROM_END:"到倒数第#个字符",TEXT_GET_SUBSTRING_END_FROM_START:"到字符#",TEXT_GET_SUBSTRING_END_LAST:"到最后一个字符",TEXT_GET_SUBSTRING_HELPURL:"https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text",TEXT_GET_SUBSTRING_INPUT_IN_TEXT:"从文本",TEXT_GET_SUBSTRING_START_FIRST:"取得一段字串自第一个字符",TEXT_GET_SUBSTRING_START_FROM_END:"取得一段字串自倒数第#个字符",TEXT_GET_SUBSTRING_START_FROM_START:"取得一段字串自#",TEXT_GET_SUBSTRING_TAIL:"",TEXT_GET_SUBSTRING_TOOLTIP:"返回指定的部分文本。",TEXT_INDEXOF_HELPURL:"https://github.com/google/blockly/wiki/Text#finding-text",TEXT_INDEXOF_INPUT_INTEXT:"在文本",TEXT_INDEXOF_OPERATOR_FIRST:"中查找 最先 出现",TEXT_INDEXOF_OPERATOR_LAST:"中查找 最后 出现",TEXT_INDEXOF_TAIL:"的位置",TEXT_INDEXOF_TOOLTIP:"返回在第二个字串中的第一/最后一个匹配项的索引值。如果未找到则返回%1。",TEXT_ISEMPTY_HELPURL:"https://github.com/google/blockly/wiki/Text#checking-for-empty-text",TEXT_ISEMPTY_TITLE:"%1是空的",TEXT_ISEMPTY_TOOLTIP:"如果提供的文本为空,则返回真。",TEXT_JOIN_HELPURL:"https://github.com/google/blockly/wiki/Text#text-creation",TEXT_JOIN_TITLE_CREATEWITH:"转为文本",TEXT_JOIN_TOOLTIP:"通过串起任意数量的项以建立一段文字。",TEXT_LENGTH_HELPURL:"https://github.com/google/blockly/wiki/Text#text-modification",TEXT_LENGTH_TITLE:"%1的长度",TEXT_LENGTH_TOOLTIP:"返回提供文本的字母数(包括空格)。",TEXT_PRINT_HELPURL:"https://github.com/google/blockly/wiki/Text#printing-text",TEXT_PRINT_TITLE:"打印%1",MPYTHON_INPUT_MESSAGE0:"输入%1",TEXT_PRINT_TOOLTIP:"打印指定的文字、数字或其他值。",TEXT_PROMPT_HELPURL:"https://github.com/google/blockly/wiki/Text#getting-input-from-the-user",TEXT_PROMPT_TOOLTIP_NUMBER:"提示用户输入数字。",TEXT_PROMPT_TOOLTIP_TEXT:"提示用户输入一些文本。",TEXT_PROMPT_TYPE_NUMBER:"输入数字并显示提示消息",TEXT_PROMPT_TYPE_TEXT:"输入数字并显示提示消息",TEXT_TEXT_HELPURL:"https://zh.wikipedia.org/wiki/字符串",TEXT_TEXT_TOOLTIP:"一个字母、单词或一行文本。",TEXT_TRIM_HELPURL:"https://github.com/google/blockly/wiki/Text#trimming-removing-spaces",TEXT_TRIM_OPERATOR_BOTH:"消除两侧空格",TEXT_TRIM_OPERATOR_LEFT:"消除左侧空格",TEXT_TRIM_OPERATOR_RIGHT:"消除右侧空格",TEXT_TRIM_TOOLTIP:"复制这段文字的同时删除两端多余的空格。",TODAY:"今天",UNDO:"撤销",VARIABLES_DEFAULT_NAME:"item",VARIABLES_GET_CREATE_SET:"创建“设定%1”",VARIABLES_GET_HELPURL:"https://github.com/google/blockly/wiki/Variables#get",VARIABLES_GET_TOOLTIP:"返回此变量的值。",VARIABLES_SET:"将变量 %1 设定为 %2",VARIABLES_SET_CREATE_GET:"创建“获得%1”",VARIABLES_SET_HELPURL:"https://github.com/google/blockly/wiki/Variables#set",VARIABLES_SET_TOOLTIP:"设置此变量,以使它和输入值相等。",VARIABLE_ALREADY_EXISTS:"已存在名为“%1”的变量。"};LF.PROCEDURES_DEFRETURN_TITLE=LF.PROCEDURES_DEFNORETURN_TITLE,LF.CONTROLS_IF_IF_TITLE_IF=LF.CONTROLS_IF_MSG_IF,LF.CONTROLS_WHILEUNTIL_INPUT_DO=LF.CONTROLS_REPEAT_INPUT_DO,LF.CONTROLS_IF_MSG_THEN=LF.CONTROLS_REPEAT_INPUT_DO,LF.TRY_EXCEPT_TRY="try",LF.CONTROLS_IF_ELSE_TITLE_ELSE=LF.CONTROLS_IF_MSG_ELSE,LF.CONTROLS_IF_ELSE_TITLE_ELSE=LF.CONTROLS_IF_MSG_ELSE,LF.PROCEDURES_DEFRETURN_PROCEDURE=LF.PROCEDURES_DEFNORETURN_PROCEDURE,LF.LISTS_GET_SUBLIST_INPUT_IN_LIST=LF.LISTS_INLIST,LF.LISTS_GET_INDEX_INPUT_IN_LIST=LF.LISTS_INLIST,LF.PROCEDURES_DEFRETURN_DO=LF.PROCEDURES_DEFNORETURN_DO,LF.CONTROLS_IF_ELSEIF_TITLE_ELSEIF=LF.CONTROLS_IF_MSG_ELSEIF,LF.LISTS_GET_INDEX_HELPURL=LF.LISTS_INDEX_OF_HELPURL,LF.CONTROLS_FOREACH_INPUT_DO=LF.CONTROLS_REPEAT_INPUT_DO,LF.LISTS_SET_INDEX_INPUT_IN_LIST=LF.LISTS_INLIST,LF.CONTROLS_FOR_INPUT_DO=LF.CONTROLS_REPEAT_INPUT_DO,LF.LISTS_CREATE_WITH_ITEM_TITLE=LF.VARIABLES_DEFAULT_NAME,LF.TUPLE_CREATE_WITH_ITEM_TITLE=LF.VARIABLES_DEFAULT_NAME,LF.DICT_CREATE_WITH_ITEM_TITLE=LF.VARIABLES_DEFAULT_NAME,LF.SET_CREATE_WITH_ITEM_TITLE=LF.VARIABLES_DEFAULT_NAME,LF.TEXT_APPEND_VARIABLE=LF.VARIABLES_DEFAULT_NAME,LF.TEXT_CREATE_JOIN_ITEM_TITLE_ITEM=LF.VARIABLES_DEFAULT_NAME,LF.MATH_CHANGE_TITLE_ITEM=LF.VARIABLES_DEFAULT_NAME,LF.LISTS_INDEX_OF_INPUT_IN_LIST=LF.LISTS_INLIST,LF.PROCEDURES_DEFRETURN_COMMENT=LF.PROCEDURES_DEFNORETURN_COMMENT,LF.MPYTHON_MAIN_HELPURL="",LF.MPYTHON_MAIN_TOOLTIP="",LF.MPYTHON_MAIN_MESSAGE0="主程序",LF.MPYTHON_OPEN="开启",LF.MPYTHON_CLOSE="关闭",LF.MPYTHONBOX_RGB_IMAGE_SHIFT_LEFT="左移",LF.MPYTHONBOX_RGB_IMAGE_SHIFT_RIGHT="右移",LF.MPYTHONBOX_RGB_IMAGE_SHIFT_UP="上移",LF.MPYTHONBOX_RGB_IMAGE_SHIFT_DOWN="下移",LF.MPYTHON_AI_LCD_SHOW_IMAGE_HEAT_GRAYSCALE="灰度",LF.MPYTHON_AI_LCD_SHOW_IMAGE_HEAT_RAINBOW="彩虹",LF.MPYTHON_AI_LCD_SHOW_IMAGE_HEAT_NEGATE="数字反转",LF.MPYTHON_AI_LCD_SHOW_IMAGE_HEAT_INVERT="黑白翻转",LF.MPYTHON_AI_LCD_SHOW_IMAGE_DESCARTES_LINPOLAR="线性极",LF.MPYTHON_AI_LCD_SHOW_IMAGE_DESCARTES_LOGPOLAR="对数极",LF.MPYTHON_AI_SENSOR_PATTERN_GRAYSCALE="灰度",LF.MPYTHON_AI_SENSOR_PATTERN_COLOR="彩色",LF.MPYTHON_AI_SENSOR_ENABLE_START="开始抓取图像",LF.MPYTHON_AI_SENSOR_ENABLE_STOP="停止抓取图像",LF.MPYTHON_AI_SENSOR_LEVEL_MI_H="水平镜像",LF.MPYTHON_AI_SENSOR_LEVEL_MI_V="垂直翻转",LF.MPYTHON_AI_SENSOR_SETS_CONTRAST="对比度",LF.MPYTHON_AI_SENSOR_SETS_BRIGHTNESS="亮度",LF.MPYTHON_AI_SENSOR_SETS_SATURATION="饱和度",LF.MPYTHON_AI2_FACE_YOLO="人脸识别",LF.MPYTHON_AI2_CLASS_20_YOLO="20类识别",LF.MPYTHON_AI2_MNIST_NET="数字识别",LF.MPYTHON_AI2_PHOTOGRAPH_FACE_YOLO="人脸",LF.MPYTHON_AI2_PHOTOGRAPH_CLASS_20_YOLO="20类",LF.MPYTHON_AI_TRACE_COLOR_RECTANGLE="矩形",LF.MPYTHON_AI_TRACE_COLOR_CROSS="十字",LF.TEXT_APPEND_TEXT_HELPURL="",LF.TEXT_APPEND_TEXT_TOOLTIP="",LF.TEXT_APPEND_TEXT_MESSAGE0="%1 追加文本 %2",LF.CHINA_CITY_MESSAGE0="%1 %2",LF.CHINA_CITY_TOWN_MESSAGE0="%1 %2 %3 返回 %4",LF.CHINA_CITY_CNNAME="中文简称",LF.CHINA_CITY_PINYIN="拼音",LF.MPYTHON_SENIVERSE_WEATHER_LANGUAGE_1="简体中文",LF.MPYTHON_SENIVERSE_WEATHER_LANGUAGE_2="正體中文",LF.MPYTHON_SENIVERSE_CITY_WEATHER_HELPURL="",LF.MPYTHON_SENIVERSE_CITY_WEATHER_TOOLTIP="",LF.MPYTHON_SENIVERSE_CITY_WEATHER_MESSAGE0="[心知天气] %1 信息 %2 地理位置 %3 API私钥 %4 %5 语言 %6 %7 温度单位 %8",LF.MPYTHON_SENIVERSE_WEATHER_API_1="天气实况",LF.MPYTHON_SENIVERSE_WEATHER_API_2="3天天气预报",LF.MPYTHON_SENIVERSE_WEATHER_API_3="6项生活指数",LF.MPYTHON_SENIVERSE_WEATHER_UNIT_1="摄氏度",LF.MPYTHON_SENIVERSE_WEATHER_UNIT_2="华氏度",LF.MPYTHON_DEFINE_SENIVERSE_WEATHER_HELPURL="",LF.MPYTHON_DEFINE_SENIVERSE_WEATHER_TOOLTIP="",LF.MPYTHON_DEFINE_SENIVERSE_WEATHER_MESSAGE0="设定 %1 为 %2",LF.MPYTHON_GET_SENIVERSE_WEATHER_INFO_HELPURL="",LF.MPYTHON_GET_SENIVERSE_WEATHER_INFO_TOOLTIP="",LF.MPYTHON_GET_SENIVERSE_WEATHER_INFO_MESSAGE0="%1 [心知天气] 通用字段 %2",LF.MPYTHON_GET_SENIVERSE_WEATHER_INFO1_HELPURL="",LF.MPYTHON_GET_SENIVERSE_WEATHER_INFO1_TOOLTIP="",LF.MPYTHON_GET_SENIVERSE_WEATHER_INFO1_MESSAGE0="%1 [心知天气] 天气实况 %2",LF.MPYTHON_GET_SENIVERSE_WEATHER_INFO2_HELPURL="",LF.MPYTHON_GET_SENIVERSE_WEATHER_INFO2_TOOLTIP="风向角度,范围0~360\n风速,单位km/h(当unit=c时)、mph(当unit=f时)",LF.MPYTHON_GET_SENIVERSE_WEATHER_INFO2_MESSAGE0="%1 [心知天气] 3天天气预报 %2 的 %3",LF.MPYTHON_GET_SENIVERSE_WEATHER_INFO3_HELPURL="",LF.MPYTHON_GET_SENIVERSE_WEATHER_INFO3_TOOLTIP="",LF.MPYTHON_GET_SENIVERSE_WEATHER_INFO3_MESSAGE0="%1 [心知天气] 6项生活指数 %2",LF.MPYTHON_SENIVERSE_WEATHER_city_name="城市名称",LF.MPYTHON_SENIVERSE_WEATHER_city_id="城市ID",LF.MPYTHON_SENIVERSE_WEATHER_country="国家代码",LF.MPYTHON_SENIVERSE_WEATHER_path="行政归属",LF.MPYTHON_SENIVERSE_WEATHER_timezone="时区",LF.MPYTHON_SENIVERSE_WEATHER_timezone_offset="UTC偏移量",LF.MPYTHON_SENIVERSE_WEATHER_last_update_date="数据更新日期",LF.MPYTHON_SENIVERSE_WEATHER_last_update="数据更新时间",LF.MPYTHON_SENIVERSE_WEATHER_object="原始字典对象",LF.MPYTHON_SENIVERSE_WEATHER_text="天气现象",LF.MPYTHON_SENIVERSE_WEATHER_code="天气现象代码",LF.MPYTHON_SENIVERSE_WEATHER_temperature="温度",LF.MPYTHON_SENIVERSE_WEATHER_today="今天",LF.MPYTHON_SENIVERSE_WEATHER_tomorrow="明天",LF.MPYTHON_SENIVERSE_WEATHER_the_day_after_tomorrow="后天",LF.MPYTHON_SENIVERSE_WEATHER_date="日期",LF.MPYTHON_SENIVERSE_WEATHER_text_day="白天天气现象",LF.MPYTHON_SENIVERSE_WEATHER_code_day="白天天气现象代码",LF.MPYTHON_SENIVERSE_WEATHER_text_night="晚间天气现象",LF.MPYTHON_SENIVERSE_WEATHER_code_night="晚间天气现象代码",LF.MPYTHON_SENIVERSE_WEATHER_high="当天最高温度",LF.MPYTHON_SENIVERSE_WEATHER_low="当天最低温度",LF.MPYTHON_SENIVERSE_WEATHER_wind_direction="风向",LF.MPYTHON_SENIVERSE_WEATHER_wind_direction_degree="风向角度",LF.MPYTHON_SENIVERSE_WEATHER_wind_speed="风速",LF.MPYTHON_SENIVERSE_WEATHER_wind_scale="风力等级",LF.MPYTHON_SENIVERSE_WEATHER_car_washing="洗车指数",LF.MPYTHON_SENIVERSE_WEATHER_dressing="穿衣指数",LF.MPYTHON_SENIVERSE_WEATHER_flu="感冒指数",LF.MPYTHON_SENIVERSE_WEATHER_sport="运动指数",LF.MPYTHON_SENIVERSE_WEATHER_travel="旅游指数",LF.MPYTHON_SENIVERSE_WEATHER_uv="紫外线指数",LF.MPYTHON_RED="红",LF.MPYTHON_GREEN="绿",LF.MPYTHON_BLUE="蓝",LF.MPYTHON_BLUEBIT_HELPURL="http://wiki.labplus.cn/index.php?title=Bluebit",LF.MPYTHON_BLUEBIT_NEWRFID_READ_MESSAGE0="I2C射频卡 读取电子钱包 数据",LF.MPYTHON_BLUEBIT_NEWRFID_READ_TOOLTIP="读取块数据,长度16字节",LF.MPYTHON_BLUEBIT_NEWRFID_READ_HELPURL="https://mpython.readthedocs.io/zh/master/library/mPython/bluebit.html#rfid",LF.MPYTHON_BLUEBIT_NEWRFID_WRITE_MESSAGE0="I2C射频卡 写入电子钱包 数据%1",LF.MPYTHON_BLUEBIT_NEWRFID_WRITE_TOOLTIP="写入块数据,长度16字节",LF.MPYTHON_BLUEBIT_NEWRFID_WRITE_HELPURL="https://mpython.readthedocs.io/zh/master/library/mPython/bluebit.html#rfid",LF.MPYTHON_BLUEBIT_NEWRFID_MONEY_MESSAGE0="I2C射频卡 给电子钱包%1 金额%2",LF.MPYTHON_BLUEBIT_NEWRFID_MONEY_TOOLTIP="",LF.MPYTHON_BLUEBIT_NEWRFID_MONEY_HELPURL="https://mpython.readthedocs.io/zh/master/library/mPython/bluebit.html#rfid",LF.MPYTHON_BLUEBIT_NEWRFID_INC_MESSAGE0="充值",LF.MPYTHON_BLUEBIT_NEWRFID_DEC_MESSAGE0="扣费",LF.MPYTHON_BLUEBIT_NEWRFID_GET_MESSAGE0="I2C射频卡 获取电子钱包余额",LF.MPYTHON_BLUEBIT_NEWRFID_GET_TOOLTIP="",LF.MPYTHON_BLUEBIT_NEWRFID_GET_HELPURL="https://mpython.readthedocs.io/zh/master/library/mPython/bluebit.html#rfid",LF.MPYTHON_BLUEBIT_NEWRFID_GETSERIAL_MESSAGE0="I2C射频卡 获取序列号",LF.MPYTHON_BLUEBIT_NEWRFID_GETSERIAL_TOOLTIP="",LF.MPYTHON_BLUEBIT_NEWRFID_GETSERIAL_HELPURL="https://mpython.readthedocs.io/zh/master/library/mPython/bluebit.html#rfid",LF.MPYTHON_BLUEBIT_NEWRFID_SET_MESSAGE0="I2C射频卡 初始化电子钱包",LF.MPYTHON_BLUEBIT_NEWRFID_SET_TOOLTIP="",LF.MPYTHON_BLUEBIT_NEWRFID_SET_HELPURL="https://mpython.readthedocs.io/zh/master/library/mPython/bluebit.html#rfid",LF.MPYTHON_BLUEBIT_NEWRFID_SCAN_MESSAGE0="I2C射频卡 扫描",LF.MPYTHON_BLUEBIT_NEWRFID_SCAN_TOOLTIP="",LF.MPYTHON_BLUEBIT_NEWRFID_SCAN_HELPURL="https://mpython.readthedocs.io/zh/master/library/mPython/bluebit.html#rfid",LF.MPYTHON_BLUEBIT_ULTRASONIC_MESSAGE0="I2C超声波",LF.MPYTHON_BLUEBIT_ULTRASONIC_TOOLTIP="",LF.MPYTHON_BLUEBIT_ULTRASONIC_HELPURL="http://wiki.labplus.cn/index.php?title=Bluebit",LF.MPYTHON_BLUEBIT_READ_DIGITAL_MESSAGE0="%1 被触发 引脚%2",LF.MPYTHON_BLUEBIT_READ_DIGITAL_TOOLTIP="",LF.MPYTHON_BLUEBIT_READ_DIGITAL_HELPURL="http://wiki.labplus.cn/index.php?title=Bluebit",LF.MPYTHON_BLUEBIT_READ_ANALOG_MESSAGE0="%1 模拟值 引脚%2",LF.MPYTHON_BLUEBIT_READ_ANALOG_TOOLTIP="",LF.MPYTHON_BLUEBIT_READ_ANALOG_HELPURL="http://wiki.labplus.cn/index.php?title=Bluebit",LF.MPYTHON_BLUEBIT_SET_ANALOG_MESSAGE0="设置LED灯 输出%1 引脚%2",LF.MPYTHON_BLUEBIT_SET_ANALOG_TOOLTIP="",LF.MPYTHON_BLUEBIT_SET_ANALOG_HELPURL="http://wiki.labplus.cn/index.php?title=Bluebit",LF.MPYTHON_BLUEBIT_LINE_FOLLOWER_MESSAGE0="循迹传感器 检测为黑 引脚%1",LF.MPYTHON_BLUEBIT_LINE_FOLLOWER_TOOLTIP="",LF.MPYTHON_BLUEBIT_LINE_FOLLOWER_HELPURL="http://wiki.labplus.cn/index.php?title=Bluebit",LF.MPYTHON_BLUEBIT_SET_TRUE_HELPURL="http://wiki.labplus.cn/index.php?title=Bluebit",LF.MPYTHON_BLUEBIT_SET_TRUE_MESSAGE0="打开 %1 引脚 %2",LF.MPYTHON_BLUEBIT_SET_TRUE_TOOLTIP="",LF.MPYTHON_BLUEBIT_SET_FALSE_HELPURL="http://wiki.labplus.cn/index.php?title=Bluebit",LF.MPYTHON_BLUEBIT_SET_FALSE_MESSAGE0="关闭 %1 引脚 %2",LF.MPYTHON_BLUEBIT_SET_FALSE_TOOLTIP="",LF.MPYTHON_BLUEBIT_VOICE_RECORD_ON_HELPURL="http://wiki.labplus.cn/index.php?title=%E8%AF%AD%E9%9F%B3%E5%BD%95%E6%94%BE",LF.MPYTHON_BLUEBIT_VOICE_RECORD_ON_TOOLTIP="",LF.MPYTHON_BLUEBIT_VOICE_RECORD_ON_MESSAGE0="打开录放器 %1 %2 REC %3 PLAY %4",LF.MPYTHON_BLUEBIT_VOICE_RECORD_OFF_HELPURL="http://wiki.labplus.cn/index.php?title=%E8%AF%AD%E9%9F%B3%E5%BD%95%E6%94%BE",LF.MPYTHON_BLUEBIT_VOICE_RECORD_OFF_TOOLTIP="",LF.MPYTHON_BLUEBIT_VOICE_RECORD_OFF_MESSAGE0="关闭录放器 %1 REC %2 PLAY %3",LF.MPYTHON_BLUEBIT_VOICE_RECORD_PLAY="播放",LF.MPYTHON_BLUEBIT_VOICE_RECORD_REC="录音",LF.MPYTHON_BLUEBIT_IR_RECEIVE="红外探测",LF.MPYTHON_BLUEBIT_SOUND="麦克风",LF.MPYTHON_BLUEBIT_LINE_FOLLOWER="循迹",LF.MPYTHON_BLUEBIT_VIBRATION="震动",LF.MPYTHON_BLUEBIT_RFID="射频卡",LF.MPYTHON_BLUEBIT_FINGERPRINT_SCANNER="指纹",LF.MPYTHON_BLUEBIT_PIR="人体感应",LF.MPYTHON_BLUEBIT_MAGNETIC="门磁开关",LF.MPYTHON_BLUEBIT_BUTTON="按键",LF.MPYTHON_BLUEBIT_RELAY="继电器",LF.MPYTHON_BLUEBIT_LIMIT_SWITCH="限位开关",LF.MPYTHON_BLUEBIT_FAN="风扇",LF.MPYTHON_BLUEBIT_LASER="激光",LF.MPYTHON_BLUEBIT_NTC_TEMP="热敏电阻",LF.MPYTHON_BLUEBIT_WATER="水位",LF.MPYTHON_BLUEBIT_SOIL_MOISTURE="土壤湿度",LF.MPYTHON_BLUEBIT_ROTATE_DIMMER="旋钮电位器",LF.MPYTHON_BLUEBIT_LINEAR_SLIDING_POTENTIOMETER="直滑电位器",LF.MPYTHON_BLUEBIT_ANALOG_LIGHT="模拟光线",LF.MPYTHON_BLUEBIT_LM35_TEMP="LM35温度",LF.MPYTHON_BLUEBIT_SMOKE="烟雾",LF.MPYTHON_BLUEBIT_MOTOR_ON_CLOCKWISE="正转",LF.MPYTHON_BLUEBIT_MOTOR_ON_ANTICLOCKWISE="反转",LF.MPYTHON_BLUEBIT_READ_SOIL_HELPURL="",LF.MPYTHON_BLUEBIT_READ_SOIL_TOOLTIP="新的土壤湿度",LF.MPYTHON_BLUEBIT_READ_SOIL_MESSAGE0="土壤湿度(新)%1",LF.MPYTHON_BLUEBIT_MOTOR_ON_HELPURL="http://wiki.labplus.cn/index.php?title=%E7%94%B5%E6%9C%BA%E9%A9%B1%E5%8A%A8",LF.MPYTHON_BLUEBIT_MOTOR_ON_TOOLTIP="速度:-100~100 映射至 -1023~1023",LF.MPYTHON_BLUEBIT_MOTOR_ON_MESSAGE0="打开直流电机 %1 速度 %2 引脚AIN1 %3 引脚AIN2 %4",LF.MPYTHON_BLUEBIT_MOTOR_OFF_HELPURL="http://wiki.labplus.cn/index.php?title=%E7%94%B5%E6%9C%BA%E9%A9%B1%E5%8A%A8",LF.MPYTHON_BLUEBIT_MOTOR_OFF_TOOLTIP="",LF.MPYTHON_BLUEBIT_MOTOR_OFF_MESSAGE0="停止直流电机 %1 引脚AIN1 %2 引脚AIN2 %3",LF.MPYTHON_BLUEBIT_SET_FAN_HELPURL="",LF.MPYTHON_BLUEBIT_SET_FAN_TOOLTIP="",LF.MPYTHON_BLUEBIT_SET_FAN_MESSAGE0="拓展板 打开风扇 %1",LF.MPYTHON_BLUEBIT_SET_FAN_OFF_HELPURL="",LF.MPYTHON_BLUEBIT_SET_FAN_OFF_TOOLTIP="",LF.MPYTHON_BLUEBIT_SET_FAN_OFF_MESSAGE0="拓展板 关闭风扇 %1",LF.MPYTHON_BLUEBIT_4BUTTON_HELPURL="http://wiki.MPYTHON_BLUEBIT.cn/index.php?title=%E5%9B%9B%E6%8C%89%E9%94%AE",LF.MPYTHON_BLUEBIT_4BUTTON_TOOLTIP="",LF.MPYTHON_BLUEBIT_4BUTTON_MESSAGE0="四向按键模块 引脚 %1 按键 %2 被按下",LF.BLUE="A",LF.GREEN="B",LF.RED="C",LF.YELLOW="D",LF.MPYTHON_BLUEBIT_JOYSTICK_HELPURL="",LF.MPYTHON_BLUEBIT_JOYSTICK_TOOLTIP="",LF.MPYTHON_BLUEBIT_JOYSTICK_MESSAGE0="摇杆 引脚A0 %1 引脚A1 %2 %3 轴的值",LF.MPYTHON_BLUEBIT_MOTOR_ON_I2C_HELPURL="",LF.MPYTHON_BLUEBIT_MOTOR_ON_I2C_TOOLTIP="速度:0~100",LF.MPYTHON_BLUEBIT_MOTOR_ON_I2C_MESSAGE0="拓展板 打开直流电机 %1 %2 速度 %3",LF.MPYTHON_BLUEBIT_BLUEBIT_MOTOR_OFF_I2C_HELPURL="",LF.MPYTHON_BLUEBIT_MOTOR_OFF_I2C_TOOLTIP="速度:0~100",LF.MPYTHON_BLUEBIT_MOTOR_OFF_I2C_MESSAGE0="拓展板 关闭直流电机",LF.MPYTHON_BLUEBIT_CODED_THREE_MOTOR_ON_I2C_HELPURL="",LF.MPYTHON_BLUEBIT_CODED_THREE_MOTOR_ON_I2C_TOOLTIP="速度:-1023~1023",LF.MPYTHON_BLUEBIT_CODED_THREE_MOTOR_ON_I2C_MESSAGE0="编码电机 模式 %1 拨码 %2 M1速度 %3 M2速度 %4",LF.MPYTHON_BLUEBIT_CODED_STOP_MOTOR_ON_I2C_HELPURL="",LF.MPYTHON_BLUEBIT_CODED_STOP_MOTOR_ON_I2C_TOOLTIP="停止编码电机转动",LF.MPYTHON_BLUEBIT_CODED_STOP_MOTOR_ON_I2C_MESSAGE0="停止编码电机转动 %1",LF.MPYTHON_BLUEBIT_HUM_TEM_HELPURL="",LF.MPYTHON_BLUEBIT_HUM_TEM_TOOLTIP="",LF.MPYTHON_BLUEBIT_HUM_TEM_MESSAGE0="I2C %1",LF.MPYTHON_BLUEBIT_TEMPERATURE="温度",LF.MPYTHON_BLUEBIT_HUMIDITY="湿度",LF.MPYTHON_BLUEBIT_INIT_MIDI_HELPURL="",LF.MPYTHON_BLUEBIT_INIT_MIDI_MESSAGE0="初始化MIDI TX引脚 %1",LF.MPYTHON_BLUEBIT_INIT_MIDI_TOOLTIP="",LF.MPYTHON_BLUEBIT_MIDI_VOLUME_HELPURL="",LF.MPYTHON_BLUEBIT_MIDI_VOLUME_MESSAGE0="设MIDI音量 %1",LF.MPYTHON_BLUEBIT_MIDI_VOLUME_TOOLTIP="音量 0~127",LF.MIDI_PIANO="平台钢琴",LF.MIDI_BRIGHTACOUSTICPIANO="亮音钢琴",LF.MIDI_ELECTRICGRANDPIANO="电钢琴",LF.MIDI_HARPSICHORD="大键琴",LF.MIDI_CELESTA="钢片琴",LF.MIDI_GLOCKENSPIEL="钟琴",LF.MIDI_MUSICALBOX="音乐盒",LF.MIDI_MARIMBA="马林巴琴",LF.MIDI_XYLOPHONE="木琴",LF.MIDI_TUBULARBELL="管钟",LF.MIDI_DULCIMER="洋琴",LF.MIDI_VIBRAPHONE="颤音琴",LF.MIDI_ORGAN="音栓风琴",LF.MIDI_ACOUSTIC_GUITAR="木吉他",LF.MIDI_ELECTRIC_GUITAR="电吉他",LF.MIDI_ACOUSTIC_BASS="民谣贝斯",LF.MIDI_STRING_ENSEMBLE="弦乐合奏",LF.MIDI_VIOLIN="小提琴",LF.MIDI_TRUMPET="小号",LF.MIDI_SAX="萨克斯",LF.MIDI_STEEL_DRUMS="钢鼓",LF.MIDI_LEAD="合成音主旋律",LF.MIDI_PAD="合成音衬底",LF.MPYTHON_BLUEBIT_MIDI_INSTRUMENT_HELPURL="",LF.MPYTHON_BLUEBIT_MIDI_INSTRUMENT_MESSAGE0="设MIDI乐器 %1",LF.MPYTHON_BLUEBIT_MIDI_INSTRUMENT_TOOLTIP="",LF.MPYTHON_BLUEBIT_MIDI_PLAY_HELPURL="",LF.MPYTHON_BLUEBIT_MIDI_PLAY_MESSAGE0="MIDI %1 音调 %2",LF.MPYTHON_BLUEBIT_MIDI_PLAY_TOOLTIP="",LF.MPYTHON_BLUEBIT_MATRIX_BRIGHTNESS_HELPURL="",LF.MPYTHON_BLUEBIT_MATRIX_BRIGHTNESS_MESSAGE0="设点阵亮度等級 %1",LF.MPYTHON_BLUEBIT_MATRIX_BRIGHTNESS_TOOLTIP="亮度等級 0~15",LF.MPYTHON_BLUEBIT_MATRIX_FILL_HELPURL="",LF.MPYTHON_BLUEBIT_MATRIX_FILL_MESSAGE0="点阵 %1",LF.MPYTHON_BLUEBIT_MATRIX_FILL_TOOLTIP="",LF.MPYTHON_BLUEBIT_MATRIX_BITMAP_HELPURL="",LF.MPYTHON_BLUEBIT_MATRIX_BITMAP_MESSAGE0="设置点阵 %1 %2 %3 %4 %5 %6 %7 %8 %9 %10 %11 %12 %13 %14 %15 %16 %17 %18 %19 %20 %21 %22 %23 %24 %25 %26 %27 %28 %29 %30 %31 %32 %33 %34 %35 %36 %37 %38 %39 %40 %41 %42 %43 %44 %45 %46 %47 %48 %49 %50 %51 %52 %53 %54 %55 %56 %57 %58 %59 %60 %61 %62 %63 %64 %65 %66 %67 %68 %69 %70 %71 %72",LF.MPYTHON_BLUEBIT_MATRIX_BITMAP_TOOLTIP="",LF.MPYTHON_BLUEBIT_MATRIX_SHOW_HELPURL="",LF.MPYTHON_BLUEBIT_MATRIX_SHOW_MESSAGE0="点阵设置生效",LF.MPYTHON_BLUEBIT_MATRIX_SHOW_TOOLTIP="",LF.MPYTHON_BLUEBIT_MP3_VOLUME_HELPURL="",LF.MPYTHON_BLUEBIT_MP3_VOLUME_MESSAGE0="设MP3音量 %1",LF.MPYTHON_BLUEBIT_MP3_VOLUME_TOOLTIP="音量:0~30",LF.MPYTHON_BLUEBIT_MP3_INIT_HELPURL="",LF.MPYTHON_BLUEBIT_MP3_INIT_MESSAGE0="初始化MP3 TX引脚 %1",LF.MPYTHON_BLUEBIT_MP3_INIT_TOOLTIP="掌控板的 tx 引脚连接音乐模块的 RXI 引脚",LF.MPYTHON_BLUEBIT_MP3_VOLUME_PLUS_HELPURL="",LF.MPYTHON_BLUEBIT_MP3_VOLUME_PLUS_MESSAGE0="MP3 音量 %1",LF.MPYTHON_BLUEBIT_MP3_VOLUME_PLUS_TOOLTIP="",LF.MPYTHON_PLUS_1="加1",LF.MPYTHON_MINUS_1="減1",LF.MPYTHON_BLUEBIT_MP3_PLAY_SONG_HELPURL="",LF.MPYTHON_BLUEBIT_MP3_PLAY_SONG_MESSAGE0="MP3 播放第 %1 首歌",LF.MPYTHON_BLUEBIT_MP3_PLAY_SONG_TOOLTIP="",LF.MPYTHON_BLUEBIT_MP3_CMD_HELPURL="",LF.MPYTHON_BLUEBIT_MP3_CMD_MESSAGE0="MP3 播放 %1",LF.MPYTHON_BLUEBIT_MP3_CMD_TOOLTIP="",LF.MPYTHON_BLUEBIT_MP3_SINGLELOOP_HELPURL="",LF.MPYTHON_BLUEBIT_MP3_SINGLELOOP_MESSAGE0="MP3 单曲循环 %1",LF.MPYTHON_BLUEBIT_MP3_SINGLELOOP_TOOLTIP="",LF.MPYTHON_BLUEBIT_EXTIO_IOMODE_HELPURL="",LF.MPYTHON_BLUEBIT_EXTIO_IOMODE_MESSAGE0="设扩展端口 IO %2 为 %1",LF.MPYTHON_BLUEBIT_EXTIO_IOMODE_TOOLTIP="IO: 0~7",LF.MPYTHON_BLUEBIT_EXTIO_READIO_HELPURL="",LF.MPYTHON_BLUEBIT_EXTIO_READIO_MESSAGE0="扩展端口值 IO %1",LF.MPYTHON_BLUEBIT_EXTIO_READIO_TOOLTIP="",LF.MPYTHON_BLUEBIT_EXTIO_WRITEIO_HELPURL="",LF.MPYTHON_BLUEBIT_EXTIO_WRITEIO_MESSAGE0="设扩展端口 IO %2 为 %1",LF.MPYTHON_BLUEBIT_EXTIO_WRITEIO_TOOLTIP="",LF.MPYTHON_LCD_OBJECT_HELPURL="",LF.MPYTHON_LCD_OBJECT_MESSAGE0="LCD1602 初始化",LF.MPYTHON_LCD_OBJECT_TOOLTIP="",LF.MPYTHON_LCD_PRINT_HELPURL="",LF.MPYTHON_LCD_PRINT_MESSAGE0="LCD1602 显示 %1",LF.MPYTHON_LCD_PRINT_TOOLTIP="",LF.MPYTHON_LCD_HOME_HELPURL="",LF.MPYTHON_LCD_HOME_MESSAGE0="LCD1602 光标 回到原点",LF.MPYTHON_LCD_HOME_TOOLTIP="",LF.MPYTHON_LCD_CURSOR_HELPURL="",LF.MPYTHON_LCD_CURSOR_MESSAGE0="LCD1602 光标 %1",LF.MPYTHON_LCD_CURSOR_TOOLTIP="",LF.MPYTHON_LCD_SET_CURSOR_HELPURL="",LF.MPYTHON_LCD_SET_CURSOR_MESSAGE0="LCD1602 起始点 行 %2 列 %1",LF.MPYTHON_LCD_SET_CURSOR_TOOLTIP="行列从0开始计数",LF.MPYTHON_LCD_CLEAR_HELPURL="",LF.MPYTHON_LCD_CLEAR_MESSAGE0="LCD1602 清屏",LF.MPYTHON_LCD_CLEAR_TOOLTIP="",LF.MPYTHON_LCD_CURSOR_BLINK="闪烁",LF.MPYTHON_LCD_CURSOR_NO_BLINK="不闪烁",LF.MPYTHON_LEFT_TO_RIGHT="从左向右",LF.MPYTHON_RIGHT_TO_LEFT="从右向左",LF.MPYTHON_LCD_TEXT_DIRECTION_HELPURL="",LF.MPYTHON_LCD_TEXT_DIRECTION_MESSAGE0="LCD1602 文字方向 %1",LF.MPYTHON_LCD_TEXT_DIRECTION_TOOLTIP="",LF.MPYTHON_LCD_MOVE_HELPURL="",LF.MPYTHON_LCD_MOVE_MESSAGE0="LCD1602 向 %1 滚动一格",LF.MPYTHON_LCD_MOVE_TOOLTIP="",LF.MPYTHON_IR_TRANS_HELPURL="",LF.MPYTHON_IR_TRANS_MESSAGE0="红外发送 单字节字符串 %1 tx 引脚 %2",LF.MPYTHON_IR_TRANS_TOOLTIP="\n单字节字符串:\n'A', 'b', '1'等",LF.OUTPUT_PIN_HELPURL="",LF.OUTPUT_PIN_MESSAGE0="%1",LF.OUTPUT_PIN_TOOLTIP="",LF.INPUT_PIN_HELPURL="",LF.INPUT_PIN_MESSAGE0="%1",LF.INPUT_PIN_TOOLTIP="",LF.READ_ANALOG_PIN_HELPURL="",LF.READ_ANALOG_PIN_MESSAGE0="%1",LF.READ_ANALOG_PIN_TOOLTIP="",LF.SET_DIGITAL_HELPURL="",LF.SET_DIGITAL_MESSAGE0="%1",LF.SET_DIGITAL_TOOLTIP="",LF.SET_ANALOG_HELPURL="",LF.SET_ANALOG_MESSAGE0="%1",LF.SET_ANALOG_TOOLTIP="",LF.ALL_PIN_HELPURL="",LF.ALL_PIN_MESSAGE0="%1",LF.ALL_PIN_TOOLTIP="",LF.PWM_PIN_HELPURL="",LF.PWM_PIN_MESSAGE0="%1",LF.PWM_PIN_TOOLTIP="",LF.DH11_HUM_TEM_PIN_HELPURL="",LF.DH11_HUM_TEM_PIN_MESSAGE0="%1",LF.DH11_HUM_TEM_PIN_TOOLTIP="",LF.UART_TX_PIN_HELPURL="",LF.UART_TX_PIN_MESSAGE0="%1",LF.UART_TX_PIN_TOOLTIP="",LF.UART_RX_PIN_HELPURL="",LF.UART_RX_PIN_MESSAGE0="%1",LF.UART_RX_PIN_TOOLTIP="",LF.I2C_PIN_HELPURL="",LF.I2C_PIN_MESSAGE0="%1",LF.I2C_PIN_TOOLTIP="",LF.MQTT_COMMON_SETUP_HELPURL="https://mpython.readthedocs.io/zh/master/library/mPython/umqtt.simple.html?highlight=mqtt#MQTTClient",LF.MQTT_COMMON_SETUP_MESSAGE0="MQTT %1 client_id %2 server %3 port %4 user %5 password %6 keepalive %7",LF.MQTT_COMMON_SETUP_TOOLTIP="",LF.MQTT_TENCENT_SETUP_HELPURL="https://mpython.readthedocs.io/zh/master/library/mPython/umqtt.simple.html?highlight=mqtt#MQTTClient",LF.MQTT_TENCENT_SETUP_MESSAGE0="MQTT 腾讯物联网 %1 服务器 %2 Port %3 AppId %4 Device %5 -- 传出参数 -- %6 ReportTopic %7 ControlTopic %8",LF.MQTT_TENCENT_SETUP_TOOLTIP="",LF.MQTT_TENCENT_SETUPS_HELPURL="https://mpython.readthedocs.io/zh/master/library/mPython/umqtt.simple.html?highlight=mqtt#MQTTClient",LF.MQTT_TENCENT_SETUPS_MESSAGE0="MQTT 腾讯物联网 %1 服务器 %2 Port %3 AppId %4 Device %5 -- 传出参数 -- %6 ReportTopic %7 ControlTopic %8",LF.MQTT_TENCENT_SETUPS_TOOLTIP="",LF.MQTT_SETUP_HELPURL="https://mpython.readthedocs.io/zh/master/tutorials/advance/iot/mqtt.html#id2",LF.MQTT_SETUP_MESSAGE0="MQTT-Easy IoT %1 服务器 %2 Client ID %5 Iot_id %3 Iot_pwd %4",LF.MQTT_SETUP_TOOLTIP="",LF.MQTT_CONNECT_HELPURL="https://mpython.readthedocs.io/zh/master/tutorials/advance/iot/mqtt.html#id2",LF.MQTT_CONNECT_MESSAGE0="连接 MQTT",LF.MQTT_CONNECT_TOOLTIP="",LF.MQTT_PUBLISH_HELPURL="https://mpython.readthedocs.io/zh/master/tutorials/advance/iot/mqtt.html#id2",LF.MQTT_PUBLISH_MESSAGE0="发布 %1 至 主题 %2",LF.MQTT_PUBLISH_TOOLTIP="",LF.MQTT_REC_FROM_TOPIC_HELPURL="https://mpython.readthedocs.io/zh/master/tutorials/advance/iot/mqtt.html#id2",LF.MQTT_REC_FROM_TOPIC_MESSAGE0="当从主题 %1 接收到 %2 时",LF.MQTT_REC_FROM_TOPIC_TOOLTIP="",LF.MQTT_RECEIVE_HELPURL="https://mpython.readthedocs.io/zh/master/tutorials/advance/iot/mqtt.html#id2",LF.MQTT_RECEIVE_MESSAGE0="当从主题 %1 接收到 %2 时",LF.MQTT_RECEIVE_TOOLTIP='参数"主题"只接受变量',LF.MQTT_RECEIVED_MESSAGE0="当从主题 %1 接收到消息 时",LF.MQTT_MESSAGE_HELPURL="https://mpython.readthedocs.io/zh/master/tutorials/advance/iot/mqtt.html#id2",LF.MQTT_MESSAGE_MESSAGE0="从 MQTT 收到的消息",LF.MQTT_MESSAGE_TOOLTIP="",LF.MQTT_WAIT_MSG_HELPURL="https://mpython.readthedocs.io/zh/master/tutorials/advance/iot/mqtt.html#id2",LF.MQTT_WAIT_MSG_MESSAGE0="等待主题消息 以 %1 模式",LF.MQTT_WAIT_MSG_TOOLTIP="建议放在'一直重复'中运行",LF.MQTT_DISCONNECT_HELPURL="https://mpython.readthedocs.io/zh/master/tutorials/advance/iot/mqtt.html#id2",LF.MQTT_DISCONNECT_MESSAGE0="MQTT 断开连接",LF.MQTT_DISCONNECT_TOOLTIP="",LF.MQTT_LAST_WILL_HELPURL="https://mpython.readthedocs.io/zh/master/library/mPython/umqtt.simple.html?highlight=mqtt#MQTTClient.set_last_will",LF.MQTT_LAST_WILL_MESSAGE0="设置 MQTT 主题 %2 离线消息 %1",LF.MQTT_LAST_WILL_TOOLTIP="设置 MQTT last will 消息。应该在 connect() 之前调用。",LF.MQTT_LAST_WILL_HELPURL="https://mpython.readthedocs.io/zh/master/library/mPython/umqtt.simple.html?highlight=mqtt#MQTTClient.set_last_will",LF.MQTT_LAST_WILL_MESSAGE0="设置 MQTT 主题 %2 离线消息 %1",LF.MQTT_LAST_WILL_TOOLTIP="设置 MQTT last will 消息。应该在 connect() 之前调用。",LF.MPYTHON_SIOT_CONNECT_HELPURL="",LF.MPYTHON_SIOT_CONNECT_TOOLTIP="",LF.MPYTHON_SIOT_CONNECT_MESSAGE0="创建 SIoT 连接 %1 客户端ID %2 服务器 %3 用户 %4 密码 %5",LF.MPYTHON_SIOT_ISCONNECTED_HELPURL="",LF.MPYTHON_SIOT_ISCONNECTED_TOOLTIP="",LF.MPYTHON_SIOT_ISCONNECTED_MESSAGE0="SIoT 连接成功 ?",LF.MPYTHON_SIOT_SUBSCRIBE_HELPURL="",LF.MPYTHON_SIOT_SUBSCRIBE_TOOLTIP="",LF.MPYTHON_SIOT_SUBSCRIBE_MESSAGE0="SIoT 订阅主题",LF.MPYTHON_SIOT_SUBSCRIBE_EMPTY_TITLE="点击左边星号 订阅 SIoT 主题",LF.MPYTHON_SIOT_SUBSCRIBE_INPUT_WITH="SIoT 订阅 主题1",LF.MPYTHON_SIOT_SUBSCRIBE_ITEM_TITLE="主题",LF.MPYTHON_SIOT_SUBSCRIBE_ITEM_TOOLTIP="",LF.MPYTHON_SIOT_SUBSCRIBE_CONTAINER_TITLE_ADD="最多订阅 5 个主题",LF.MPYTHON_SIOT_SUBSCRIBE_CONTAINER_TOOLTIP="",LF.MPYTHON_SIOT_DISCONNECT_HELPURL="",LF.MPYTHON_SIOT_DISCONNECT_TOOLTIP="",LF.MPYTHON_SIOT_DISCONNECT_MESSAGE0="SIoT 断开连接",LF.MPYTHON_SIOT_MESSAGE_HELPURL="",LF.MPYTHON_SIOT_MESSAGE_TOOLTIP="",LF.MPYTHON_SIOT_MESSAGE_MESSAGE0="从 SIoT 收到的消息",LF.MPYTHON_SIOT_TOPIC1="主题1",LF.MPYTHON_SIOT_TOPIC2="主题2",LF.MPYTHON_SIOT_TOPIC3="主题3",LF.MPYTHON_SIOT_TOPIC4="主题4",LF.MPYTHON_SIOT_TOPIC5="主题5",LF.MPYTHON_SIOT_PUBLISH_HELPURL="",LF.MPYTHON_SIOT_PUBLISH_TOOLTIP="",LF.MPYTHON_SIOT_PUBLISH_MESSAGE0="SIoT 发送消息 %1 到 %2",LF.MPYTHON_SIOT_PUBLISH_TO_MESSAGE0="SIoT 发送消息 %1 到 主题 %2",LF.MPYTHON_SIOT_RECEIVE_HELPURL="",LF.MPYTHON_SIOT_RECEIVE_TOOLTIP="",LF.MPYTHON_SIOT_RECEIVE_MESSAGE0="当从 SIoT %1 收到消息时 %2 执行 %3",LF.MPYTHON_SIOT_RECEIVE_FROM_MESSAGE0="当从 SIoT 主题 %1 收到消息时 %2 执行 %3",LF.MPYTHON_IR_RECV_HELPURL="",LF.MPYTHON_IR_RECV_MESSAGE0="红外接收 整型 rx 引脚 %1",LF.MPYTHON_IR_RECV_TOOLTIP="第一次接收总为空",LF.MPYTHON_BLUEBIT_OLED_PRINT_HELPURL="",LF.MPYTHON_BLUEBIT_OLED_PRINT_MESSAGE0="bluebit OLED 显示 %1 x %2 y %3",LF.MPYTHON_BLUEBIT_OLED_PRINT_TOOLTIP="",LF.MPYTHON_BLUEBIT_OLED_INIT_HELPURL="",LF.MPYTHON_BLUEBIT_OLED_INIT_MESSAGE0="bluebit OLED 初始化 tx %1 rx %2",LF.MPYTHON_BLUEBIT_OLED_INIT_TOOLTIP="",LF.MPYTHON_BLUEBIT_OLED_CLEAR_HELPURL="",LF.MPYTHON_BLUEBIT_OLED_CLEAR_MESSAGE0="bluebit OLED 清空",LF.MPYTHON_BLUEBIT_OLED_CLEAR_TOOLTIP="",LF.MPYTHON_BLUEBIT_OLED_BMP_HELPURL="",LF.MPYTHON_BLUEBIT_OLED_BMP_MESSAGE0="bluebit OLED 显示图像 x %1 y %2 宽 %3 高 %4 16进制图像数据 %5",LF.MPYTHON_BLUEBIT_OLED_BMP_TOOLTIP="",LF.mpython_bme280_hum_tem_pre_MESSAGE0="%1",LF.mpython_bme280_hum_tem_pre_TOOLTIP="气压单位Pa, 温度单位摄氏度, 环境湿度单位%",LF.mpythonbox_sound_MESSAGE0="声音值",LF.mpythonbox_sound_TOOLTIP="采样数据,为0~4095。",LF.mpythonbox_sound_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mPythonBox/lib/mpython.html",LF.MPYTHONBOX_SLIDER_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mPythonBox/lib/mpython_box.html#mpython-box",LF.MPYTHONBOX_SLIDER_MESSAGE0="滑杆",LF.MPYTHONBOX_SLIDER_TOOLTIP="返回滑杆电阻采样值。范围0~4095。",LF.MPYTHONBOX_5BUTTON_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mPythonBox/lib/mpython_box.html#mpython-box",LF.MPYTHONBOX_5BUTTON_MESSAGE0="五向按键%1",LF.MPYTHONBOX_5BUTTON_TOOLTIP="",LF.MPYTHONBOX_MOTOR_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mPythonBox/lib/mpython_box.html#mpython-box",LF.MPYTHONBOX_MOTOR_MESSAGE0="马达 速度%1",LF.MPYTHONBOX_MOTOR_TOOLTIP="马达速度,范围±100。正值表示正转,负值则反。",LF.MPYTHONBOX_ULTRASONIC_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mPythonBox/lib/mpython_box.html#mpython_box.get_key",LF.MPYTHONBOX_ULTRASONIC_MESSAGE0="超声波",LF.MPYTHONBOX_ULTRASONIC_TOOLTIP="超声波测距,获取超声波传感器测距值,单位cm。范围3~340CM",LF.MPYTHONBOX_THEHUMANBODYINFRARE_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mPythonBox/lib/mpython_box.html#mpython_box.get_key",LF.MPYTHONBOX_THEHUMANBODYINFRARE_MESSAGE0="人体红外",LF.MPYTHONBOX_THEHUMANBODYINFRARE_TOOLTIP="返回人体红外触发值。当为1时,表示已触发;当为0时,表示未触发。",LF.MPYTHONBOX_RGB_pixel_HELPURL="",LF.MPYTHONBOX_RGB_pixel_MESSAGE0="设定第 %1列 %2行 R%3 G%4 B%5",LF.MPYTHONBOX_RGB_pixel_TOOLTIP="设定第多少列,行的RGB顏色",LF.MPYTHONBOX_RGB_get_pixel_HELPURL="",LF.MPYTHONBOX_RGB_get_pixel_MESSAGE0="返回 第%1列 %2行 RGB颜色",LF.MPYTHONBOX_RGB_get_pixel_TOOLTIP="返回第多少列,行位置的RGB颜色",LF.MPYTHONBOX_RGB_ImageText_HELPURL="",LF.MPYTHONBOX_RGB_ImageText_MESSAGE0="滚动显示文本%1 速度%2",LF.MPYTHONBOX_RGB_ImageText_TOOLTIP="滚动显示文本,亮度为0不亮,9最亮",LF.MPYTHONBOX_RGB_SetImage_HELPURL="",LF.MPYTHONBOX_RGB_SetImage_TOOLTIP="",LF.MPYTHONBOX_RGB_SetImage_MESSAGE0="创建图像 %1 第一行%2第二行%3第三行%4第四行%5第五行%6",LF.MPYTHONBOX_RGB_Image_HELPURL="",LF.MPYTHONBOX_RGB_Image_MESSAGE0="显示图像%1",LF.MPYTHONBOX_RGB_Image_TOOLTIP="显示图像",LF.MPYTHONBOX_RGB_SetImage_HELPURL="",LF.MPYTHONBOX_RGB_SetImage_MESSAGE0="创建图像 %1 第一行%2第二行%3第三行%4第四行%5第五行%6",LF.MPYTHONBOX_RGB_SetImage_TOOLTIP="创建新图像,每行每位数代表第几位灯,默认红色;亮度为0不亮,9最亮。",LF.MPYTHONBOX_RGB_SHOW_IMAGE_MESSAGE0="显示图像/文本 %1",LF.MPYTHONBOX_RGB_SHOW_IMAGE_TOOLTIP="显示图像或文本消息。",LF.MPYTHONBOX_RGB_SHOW_IMAGE_HELPURL="",LF.MPYTHONBOX_RGB_SHOW_IMAGEImport_MESSAGE0="显示图像 %1",LF.MPYTHONBOX_RGB_SHOW_IMAGEImport_TOOLTIP="显示图像。",LF.MPYTHONBOX_RGB_SHOW_IMAGEImport_HELPURL="",LF.MPYTHONBOX_RGB_SHOW_IMAGE_Copy_MESSAGE0="复制图像 %1",LF.MPYTHONBOX_RGB_SHOW_IMAGE_Copy_TOOLTIP="复制图像。",LF.MPYTHONBOX_RGB_SHOW_IMAGE_Copy_HELPURL="",LF.MPYTHONBOX_RGB_ImageCot_HELPURL="",LF.MPYTHONBOX_RGB_ImageCot_MESSAGE0="切剪图像%1 列%2 行%3 宽%4 高%5",LF.MPYTHONBOX_RGB_ImageCot_TOOLTIP="切剪图像",LF.MPYTHONBOX_RGB_IMAGE_BUILTINS_MESSAGE0="内置图像 %1",LF.MPYTHONBOX_RGB_IMAGE_BUILTINS_TOOLTIP="选择一个内置的图像。",LF.MPYTHONBOX_RGB_IMAGE_BUILTINS_HELPURL="",LF.MPYTHONBOX_RGB_IMAGE_SHIFT_MESSAGE0="平移图像 %1 %2 %3 位",LF.MPYTHONBOX_RGB_IMAGE_SHIFT_TOOLTIP="向特定方向移动图像,并返回移动后的结果。",LF.MPYTHONBOX_RGB_IMAGE_SHIFT_HELPURL="",LF.MPYTHONBOX_RGB_clear_HELPURL="",LF.MPYTHONBOX_RGB_clear_MESSAGE0="关闭所有 RGB 灯",LF.MPYTHONBOX_RGB_clear_TOOLTIP="",LF.MPYTHONBOX_RGB_pixel_return_HELPURL="",LF.MPYTHONBOX_RGB_pixel_return_MESSAGE0="返回第 %1列 %2行 颜色",LF.MPYTHONBOX_RGB_pixel_return_TOOLTIP="返回第多少列,行的RGB顏色",LF.MPYTHONBOX_TRIAXIAL_ACCELERATION_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython.html",LF.MPYTHONBOX_TRIAXIAL_ACCELERATION_MESSAGE0="%1轴加速度",LF.MPYTHONBOX_TRIAXIAL_ACCELERATION_TOOLTIP="单位g,范围-2~+2g。",LF.MPYTHONBOX_TRIAXIAL_AUGULAR_VELOCITY_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython.html",LF.MPYTHONBOX_TRIAXIAL_AUGULAR_VELOCITY_MESSAGE0="%1轴角速度",LF.MPYTHONBOX_TRIAXIAL_AUGULAR_VELOCITY_TOOLTIP="范围±500°/秒",LF.MPYTHONBOX_EULER_ANGLE_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython.html",LF.MPYTHONBOX_EULER_ANGLE_MESSAGE0="%1欧拉角",LF.MPYTHONBOX_EULER_ANGLE_TOOLTIP="返回当前欧拉角(Pitch,Roll,Yaw),单位角度",LF.MPYTHONBOX_QUATERNION_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython.html",LF.MPYTHONBOX_QUATERNION_MESSAGE0="%1四元数",LF.MPYTHONBOX_QUATERNION_TOOLTIP="返回当前四元数(w,x,y,z)",LF.MPYTHONBOX_CAMERA_LED_HELPURL="",LF.MPYTHONBOX_CAMERA_LED_MESSAGE0="摄像灯%1",LF.MPYTHONBOX_CAMERA_LED_TOOLTIP="led灯,分为打开和关闭两种状态",LF.LIST_FIRST_INDEX_HELPURL="",LF.LIST_FIRST_INDEX_MESSAGE0="项 %1 在列表 %2 %3 出现的位置",LF.LIST_FIRST_INDEX_TOOLTIP="",LF.MPYTHON_AI_LCD_INIT_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.lcd.init",LF.MPYTHON_AI_LCD_INIT_MESSAGE0="屏幕 初始化 ",LF.MPYTHON_AI_LCD_INIT_TOOLTIP="初始化 屏幕显示",LF.MPYTHON_AI_SENSOR_RESET_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/sensor.html#%E5%8D%95%E7%9B%AE%E6%91%84%E5%83%8F%E5%A4%B4%E9%87%8D%E7%BD%AE%E5%87%BD%E6%95%B0",LF.MPYTHON_AI_SENSOR_RESET_MESSAGE0="摄像头 初始化",LF.MPYTHON_AI_SENSOR_RESET_TOOLTIP="初始化单目摄像头",LF.MPYTHON_AI_SENSOR_ENABLE_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/sensor.html#%E8%8E%B7%E5%8F%96%E5%9B%BE%E5%83%8F",LF.MPYTHON_AI_SENSOR_ENABLE_MESSAGE0="摄像头%1",LF.MPYTHON_AI_SENSOR_ENABLE_TOOLTIP="获取图像",LF.MPYTHON_AI_LCD_TEXT_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/lcd.html#%E4%BE%8B%E7%A8%8B-1%EF%BC%9A-%E6%98%BE%E7%A4%BA%E8%8B%B1%E6%96%87",LF.MPYTHON_AI_LCD_TEXT_MESSAGE0="显示文本 x %1 y %2 内容 %3",LF.MPYTHON_AI_LCD_TEXT_TOOLTIP="仅支持字母和数字",LF.MPYTHON_AI_SENSOR_SKIP_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/sensor.html#%E8%B7%B3%E5%B8%A7",LF.MPYTHON_AI_SENSOR_SKIP_MESSAGE0="摄像头 跳过帧数%1 毫秒%2内的图像 ",LF.MPYTHON_AI_SENSOR_SKIP_TOOLTIP="摄像头跳过指定帧数或者跳过指定时间内的图像",LF.MPYTHON_AI_SENSOR_RETURN_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/sensor.html#%E5%88%86%E8%BE%A8%E7%8E%87%E5%AE%BD%E5%BA%A6",LF.MPYTHON_AI_SENSOR_RETURN_MESSAGE0="测 摄像头 获取%1",LF.MPYTHON_AI_SENSOR_RETURN_TOOLTIP="(AI)摄像头返回参数(宽高,图像帧的格式,图像帧的大小)",LF.MPYTHON_AI_SENSOR_SETS_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/sensor.html#%E8%AE%BE%E7%BD%AE%E5%AF%B9%E6%AF%94%E5%BA%A6",LF.MPYTHON_AI_SENSOR_SETS_MESSAGE0="摄像头 设置%1 为%2",LF.MPYTHON_AI_SENSOR_SETS_TOOLTIP="设置摄像头对比度,亮度,饱和度范围为[-2,+2]",LF.MPYTHON_AI_SENSOR_AUTO_GAIN_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/sensor.html#%E8%AE%BE%E7%BD%AE%E8%87%AA%E5%8A%A8%E5%A2%9E%E7%9B%8A",LF.MPYTHON_AI_SENSOR_AUTO_GAIN_MESSAGE0="摄像头 自动增益%1",LF.MPYTHON_AI_SENSOR_AUTO_GAIN_TOOLTIP="1开启摄像头自动增益 0关闭摄像头自动增益",LF.MPYTHON_AI_SENSOR_AUTO_WHITEBAL_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/sensor.html#%E8%AE%BE%E7%BD%AE%E8%87%AA%E5%8A%A8%E5%A2%9E%E7%9B%8A",LF.MPYTHON_AI_SENSOR_AUTO_WHITEBAL_MESSAGE0="摄像头 白平衡%1",LF.MPYTHON_AI_SENSOR_AUTO_WHITEBAL_TOOLTIP="设置摄像自动白平衡模式,默认打开。True为打开, False为关闭自动白平衡。若您想追踪颜色,则需关闭白平衡。",LF.MPYTHON_AI_SENSOR_LEVEL_MI_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/sensor.html#%E8%AE%BE%E7%BD%AE%E6%B0%B4%E5%B9%B3%E9%95%9C%E5%83%8F",LF.MPYTHON_AI_SENSOR_LEVEL_MI_MESSAGE0="摄像头 %1 %2",LF.MPYTHON_AI_SENSOR_LEVEL_MI_TOOLTIP="1 表示开启水平镜像 0 表示关闭水平镜像",LF.MPYTHON_AI_LCD_DISPLAY_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.lcd.display",LF.MPYTHON_AI_LCD_DISPLAY_MESSAGE0="屏幕 显示生效",LF.MPYTHON_AI_LCD_DISPLAY_TOOLTIP="可以在液晶屏上显示",LF.MPYTHON_AI_LCD_DISPLAY_SIZE_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.lcd.display",LF.MPYTHON_AI_LCD_DISPLAY_SIZE_MESSAGE0="图像 显示生效 x%1 y%2 宽%3 高%4",LF.MPYTHON_AI_LCD_DISPLAY_SIZE_TOOLTIP="可以在液晶屏上显示一张图片",LF.MPYTHON_AI_SENSOR_IMAGES_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/sensor.html#%E8%8E%B7%E5%8F%96%E5%9B%BE%E5%83%8F",LF.MPYTHON_AI_SENSOR_IMAGES_MESSAGE0="摄像头 获取图像",LF.MPYTHON_AI_SENSOR_IMAGES_TOOLTIP="控制摄像头捕捉图像",LF.MPYTHON_AI_IMAGE_FACEDETECT_HELPURL="https://maixpy.sipeed.com/zh/libs/Maix/kpu.html#%E8%BF%90%E8%A1%8Cyolo2%E7%BD%91%E7%BB%9C",LF.MPYTHON_AI_IMAGE_FACEDETECT_MESSAGE0="人脸识别",LF.MPYTHON_AI_IMAGE_FACEDETECT_TOOLTIP="",LF.MPYTHON_AI_LCD_SHOW_REC_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.draw_rectangle",LF.MPYTHON_AI_LCD_SHOW_REC_MESSAGE0="矩形%1 x%3 y%4 宽%5 高%6 颜色为 R%7 G%8 B%9 加粗%2",LF.MPYTHON_AI_LCD_SHOW_REC_TOOLTIP="在图像上绘制矩形",LF.MPYTHON_AI_LCD_SHOW_STRING_MESSAGE0="线条 x1%1 y1%2 到x2%3 y2%4 颜色为R%5 G%6 B%7 加粗%8",LF.MPYTHON_AI_LCD_SHOW_STRING_TOOLTIP="在图像上绘制线条",LF.MPYTHON_AI_LCD_SHOW_STRING_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.draw_rectangle",LF.MPYTHON_AI_LCD_CLEAR_ALL_MESSAGE0="屏幕 显示清空",LF.MPYTHON_AI_LCD_CLEAR_ALL_TOOLTIP="将液晶屏清空为黑色或者指定的颜色",LF.MPYTHON_AI_LCD_CLEAR_ALL_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.draw_rectangle",LF.MPYTHON_AI_LCD_return_colour_MESSAGE0="LCD 返回 x%1 y%2 颜色",LF.MPYTHON_AI_LCD_return_colour_TOOLTIP="返回某个坐标点的颜色",LF.MPYTHON_AI_LCD_return_colour_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.draw_rectangle",LF.MPYTHON_AI_LCD_SHOW_CIRCLE_MESSAGE0="圆形%1 x%2 y%3 半径%4 颜色为 R%5 G%6 B%7 加粗%8",LF.MPYTHON_AI_LCD_SHOW_CIRCLE_TOOLTIP="在图像上绘制圆形",LF.MPYTHON_AI_LCD_SHOW_CIRCLE_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.draw_rectangle",LF.MPYTHON_AI_LCD_TEXT_MOST_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.draw_rectangle",LF.MPYTHON_AI_LCD_TEXT_MOST_MESSAGE0="显示文本 x %1 y %2 内容 %3 颜色为R%4 G%5 B%6 字号%7",LF.MPYTHON_AI_LCD_TEXT_MOST_TOOLTIP="仅支持字母和数字",LF.MPYTHON_AI_LCD_SHOW_TEN_STRING_MESSAGE0="十字线 x%1 y%2 颜色为R%3 G%4 B%5 尺寸%6 加粗%7",LF.MPYTHON_AI_LCD_SHOW_TEN_STRING_TOOLTIP="在图像上绘制十字线",LF.MPYTHON_AI_LCD_SHOW_TEN_STRING_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.draw_rectangle",LF.MPYTHON_AI_LCD_SHOW_ARROWS_MESSAGE0="箭头 x1%1 y1%2 到x2%3 y2%4 颜色为R%5 G%6 B%7 加粗%8",LF.MPYTHON_AI_LCD_SHOW_ARROWS_TOOLTIP="在图像上绘制一个箭头",LF.MPYTHON_AI_LCD_SHOW_ARROWS_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.draw_rectangle",LF.MPYTHON_AI_LCD_SHOW_IMAGE_PIRCTURE_HELPURL=".https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.lcd.display",LF.MPYTHON_AI_LCD_SHOW_IMAGE_PIRCTURE_MESSAGE0="显示图像 路径%1",LF.MPYTHON_AI_LCD_SHOW_IMAGE_PIRCTURE_TOOLTIP="显示图像",LF.MPYTHON_AI_LCD_SHOW_IMAGE_HEAT_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.invert",LF.MPYTHON_AI_LCD_SHOW_IMAGE_HEAT_MESSAGE0="图像转换为%1",LF.MPYTHON_AI_LCD_SHOW_IMAGE_HEAT_TOOLTIP="黑白翻转是将二进制图像0(黑色)变为1(白色),1(白色)变为0(黑色),非常快速地翻转二进制图像中的所有像素值。",LF.MPYTHON_AI_LCD_SHOW_IMAGE_DESCARTES_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.linpolar",LF.MPYTHON_AI_LCD_SHOW_IMAGE_DESCARTES_MESSAGE0="图像 从笛卡尔坐标到%1 坐标重新投影 反向%2",LF.MPYTHON_AI_LCD_SHOW_IMAGE_DESCARTES_TOOLTIP="",LF.MPYTHON_AI_LCD_SHOW_IMAGE_EROSION_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.dilate",LF.MPYTHON_AI_LCD_SHOW_IMAGE_EROSION_MESSAGE0="图像 膨胀 级别%1",LF.MPYTHON_AI_LCD_SHOW_IMAGE_EROSION_TOOLTIP="膨胀就是对图像高亮部分进行“领域扩张”,效果图拥有比原图更大的高亮区域。",LF.MPYTHON_AI_LCD_SHOW_IMAGE_MIDDLE_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.midpoint",LF.MPYTHON_AI_LCD_SHOW_IMAGE_MIDDLE_MESSAGE0="图像 中点滤波 级别%1 滤波%2",LF.MPYTHON_AI_LCD_SHOW_IMAGE_MIDDLE_TOOLTIP="控制图像混合的最小/最大程度。0只适用于最小滤波,1仅用于最大滤波。",LF.MPYTHON_AI_LCD_SHOW_IMAGE_MODE_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.modehttps://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.mode",LF.MPYTHON_AI_LCD_SHOW_IMAGE_MODE_MESSAGE0="图像 众数滤波 级别%1",LF.MPYTHON_AI_LCD_SHOW_IMAGE_MODE_TOOLTIP="在图像上运行众数滤波,用相邻像素的模式替换每个像素。",LF.MPYTHON_AI_LCD_SHOW_IMAGE_INDISTINCT_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.mean",LF.MPYTHON_AI_LCD_SHOW_IMAGE_INDISTINCT_MESSAGE0="图像 模糊滤波 级别%1",LF.MPYTHON_AI_LCD_SHOW_IMAGE_INDISTINCT_TOOLTIP="使用盒式滤波器的标准均值模糊滤波。",LF.MPYTHON_AI_LCD_SHOW_IMAGE_CARTOON_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.cartoon",LF.MPYTHON_AI_LCD_SHOW_IMAGE_CARTOON_MESSAGE0="图像 卡通化 级别%1 起始像素差异%2 相邻像素差异%3",LF.MPYTHON_AI_LCD_SHOW_IMAGE_CARTOON_TOOLTIP="使图像卡通化",LF.MPYTHON_AI_LCD_SHOW_IMAGE_3D_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.rotation_corr",LF.MPYTHON_AI_LCD_SHOW_IMAGE_3D_MESSAGE0="图像 3D旋转 上下旋转%1 左右旋转%2 度数%3 左右移动%4 上下移动%5 缩放%6",LF.MPYTHON_AI_LCD_SHOW_IMAGE_3D_TOOLTIP="通过执行帧缓冲区的3D旋转来纠正图像中的透视问题。",LF.MPYTHON_AI_LCD_SHOW_ECTYPE_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.copy",LF.MPYTHON_AI_LCD_SHOW_ECTYPE_MESSAGE0="将图像的副本保存到SD卡 图像名%1 图像显示区域 x%2 y%3 宽%4 高%5",LF.MPYTHON_AI_LCD_SHOW_ECTYPE_TOOLTIP="将图像的副本保存到SD卡",LF.MPYTHON_AI_LCD_SHOW_ECTYPE_SHOW_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.save",LF.MPYTHON_AI_LCD_SHOW_ECTYPE_SHOW_MESSAGE0="创建一个图像对象的副本 复制图像区域 x%1 y%2 宽%3 高%4",LF.MPYTHON_AI_LCD_SHOW_ECTYPE_SHOW_TOOLTIP="创建一个图像对象的副本",LF.MPYTHON_AI2_FACE_TRACKING_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",LF.MPYTHON_AI2_FACE_TRACKING_MESSAGE0="(实验箱)选择训练模型 人脸",LF.MPYTHON_AI2_FACE_TRACKING_TOOLTIP="可以识别并且追踪人脸,显示人脸大小等",LF.MPYTHON_AI2_PHOTOGRAPH_TRACKING_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",LF.MPYTHON_AI2_PHOTOGRAPH_TRACKING_MESSAGE0="(实验箱)调用摄像头进行 人脸识别",LF.MPYTHON_AI2_PHOTOGRAPH_TRACKING_TOOLTIP="可以识别并且追踪人脸,显示人脸大小等",LF.MPYTHON_AI2_RESULT_FACE_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",LF.MPYTHON_AI2_RESULT_FACE_MESSAGE0="(实验箱)获取识别后人脸的 所有参数",LF.MPYTHON_AI2_RESULT_FACE_TOOLTIP="获取识别后人脸的 所有参数",LF.MPYTHON_AI2_RESULT_FACE_X_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",LF.MPYTHON_AI2_RESULT_FACE_X_MESSAGE0="(实验箱)获取识别后人脸的 x坐标",LF.MPYTHON_AI2_RESULT_FACE_X_TOOLTIP="获取识别后人脸的 x坐标",LF.MPYTHON_AI2_RESULT_FACE_Y_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",LF.MPYTHON_AI2_RESULT_FACE_Y_MESSAGE0="(实验箱)获取识别后人脸的 y坐标",LF.MPYTHON_AI2_RESULT_FACE_Y_TOOLTIP="获取识别后人脸的 y坐标",LF.MPYTHON_AI2_RESULT_FACE_W_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",LF.MPYTHON_AI2_RESULT_FACE_W_MESSAGE0="(实验箱)获取识别后人脸的 宽度",LF.MPYTHON_AI2_RESULT_FACE_W_TOOLTIP="获取识别后人脸的 宽度",LF.MPYTHON_AI2_RESULT_FACE_H_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",LF.MPYTHON_AI2_RESULT_FACE_H_MESSAGE0="(实验箱)获取识别后人脸的 高度",LF.MPYTHON_AI2_RESULT_FACE_H_TOOLTIP="获取识别后人脸的 高度",LF.MPYTHON_AI2_RESULT_FACE_VALUE_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",LF.MPYTHON_AI2_RESULT_FACE_VALUE_MESSAGE0="(实验箱)获取识别后人脸的 置信度",LF.MPYTHON_AI2_RESULT_FACE_VALUE_TOOLTIP="获取识别后人脸的 置信度",LF.MPYTHON_AI2_RESULT_FACE_OBJNUM_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",LF.MPYTHON_AI2_RESULT_FACE_OBJNUM_MESSAGE0="(实验箱)获取识别后人脸的 数量",LF.MPYTHON_AI2_RESULT_FACE_OBJNUM_TOOLTIP="获取识别后人脸的 数量",LF.MPYTHON_AI2_20class_TRACKING_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",LF.MPYTHON_AI2_20class_TRACKING_MESSAGE0="(实验箱)选择训练模型 20类",LF.MPYTHON_AI2_20class_TRACKING_TOOLTIP="可以识别20个类型,分别是0-19为飞机,自行车,鸟,船,瓶子,公交车,汽车,猫,椅子,奶牛,餐桌,狗,屋子,摩托车,人,盆栽,羊,沙发,火车,电视",LF.MPYTHON_AI2_PHOTOGRAPH_20TRACKING_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",LF.MPYTHON_AI2_PHOTOGRAPH_20TRACKING_MESSAGE0="(实验箱)调用摄像头进行 20类识别",LF.MPYTHON_AI2_PHOTOGRAPH_20TRACKING_TOOLTIP="调用摄像头进行 20类识别",LF.MPYTHON_AI2_RESULT_20CLASS_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",LF.MPYTHON_AI2_RESULT_20CLASS_MESSAGE0="(实验箱)获取识别后20类的 所有参数",LF.MPYTHON_AI2_RESULT_20CLASS_TOOLTIP="获取识别后20类的 所有参数",LF.MPYTHON_AI2_RESULT_20CLASS_X_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",LF.MPYTHON_AI2_RESULT_20CLASS_X_MESSAGE0="(实验箱)获取识别后20类的 x坐标",LF.MPYTHON_AI2_RESULT_20CLASS_X_TOOLTIP="获取识别后20类的 x坐标",LF.MPYTHON_AI2_RESULT_20CLASS_Y_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",LF.MPYTHON_AI2_RESULT_20CLASS_Y_MESSAGE0="(实验箱)获取识别后20类的 y坐标",LF.MPYTHON_AI2_RESULT_20CLASS_Y_TOOLTIP="获取识别后20类的 y坐标",LF.MPYTHON_AI2_RESULT_20CLASS_W_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",LF.MPYTHON_AI2_RESULT_20CLASS_W_MESSAGE0="(实验箱)获取识别后20类的 宽度",LF.MPYTHON_AI2_RESULT_20CLASS_W_TOOLTIP="获取识别后20类的 宽度",LF.MPYTHON_AI2_RESULT_20CLASS_H_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",LF.MPYTHON_AI2_RESULT_20CLASS_H_MESSAGE0="(实验箱)获取识别后20类的 高度",LF.MPYTHON_AI2_RESULT_20CLASS_H_TOOLTIP="获取识别后20类的 高度",LF.MPYTHON_AI2_RESULT_20CLASS_VALUE_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",LF.MPYTHON_AI2_RESULT_20CLASS_VALUE_MESSAGE0="(实验箱)获取识别后20类的 置信度",LF.MPYTHON_AI2_RESULT_20CLASS_VALUE_TOOLTIP="获取识别后20类的 置信度",LF.MPYTHON_AI2_RESULT_20CLASS_OBJNUM_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",LF.MPYTHON_AI2_RESULT_20CLASS_OBJNUM_MESSAGE0="(实验箱)获取识别后20类的 数量",LF.MPYTHON_AI2_RESULT_20CLASS_OBJNUM_TOOLTIP="获取识别后20类的 数量",LF.MPYTHON_AI2_RESULT_20CLASS_CLASSID_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",LF.MPYTHON_AI2_RESULT_20CLASS_CLASSID_MESSAGE0="(实验箱)获取识别后20类的 类型",LF.MPYTHON_AI2_RESULT_20CLASS_CLASSID_TOOLTIP="获取识别后20类的 类型可以放入获取识别的参数,可以识别20个类型,分别是0-19为飞机,自行车,鸟,船,瓶子,公交车,汽车,猫,椅子,奶牛,餐桌,狗,屋子,摩托车,人,盆栽,羊,沙发,火车,电视",LF.MPYTHON_AI2_RESULT_20CLASS_INDEX_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",LF.MPYTHON_AI2_RESULT_20CLASS_INDEX_MESSAGE0="(实验箱)获取识别后20类的 类型数量",LF.MPYTHON_AI2_RESULT_20CLASS_INDEX_TOOLTIP="获取识别后20类的 类型数量",LF.MPYTHON_AI2_NUMBER_DISCERN_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",LF.MPYTHON_AI2_NUMBER_DISCERN_MESSAGE0="(实验箱)选择训练模型 手写数字",LF.MPYTHON_AI2_NUMBER_DISCERN_TOOLTIP="选择训练模型 手写数字识别",LF.MPYTHON_AI2_RESULT_NUMBER_DISCERN_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",LF.MPYTHON_AI2_RESULT_NUMBER_DISCERN_MESSAGE0="(实验箱)调用摄像头进行 手写数字识别",LF.MPYTHON_AI2_RESULT_NUMBER_DISCERN_TOOLTIP="调用摄像头进行 手写数字识别",LF.MPYTHON_AI2_NUMBER_DETECT_ALL_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#id2",LF.MPYTHON_AI2_NUMBER_DETECT_ALL_MESSAGE0="(实验箱)获取识别后手写数字的 所有参数",LF.MPYTHON_AI2_NUMBER_DETECT_ALL_TOOLTIP="手写数字识别参数",LF.MPYTHON_AI2_NUMBER_DETECT_NUMBER_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#id2",LF.MPYTHON_AI2_NUMBER_DETECT_NUMBER_MESSAGE0="(实验箱)获取识别后手写数字的 数字",LF.MPYTHON_AI2_NUMBER_DETECT_NUMBER_TOOLTIP="手写数字识别 数字",LF.MPYTHON_AI2_NUMBER_DETECT_ADIENCE_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#id2",LF.MPYTHON_AI2_NUMBER_DETECT_ADIENCE_MESSAGE0="(实验箱)获取识别后手写数字的 置信度",LF.MPYTHON_AI2_NUMBER_DETECT_ADIENCE_TOOLTIP="手写数字 识别数字 置信度",LF.MPYTHON_AI_TRACE_COLOR_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.find_blobs",LF.MPYTHON_AI_TRACE_COLOR_MESSAGE0="(实验箱)追踪色块 LAB颜色%1 边界框小于%2 像素小于%3 过滤",LF.MPYTHON_AI_TRACE_COLOR_TOOLTIP="追踪色块",LF.MPYTHON_AI_TRACE_CILOR_DISPLAYTEN_HELPURL="",LF.MPYTHON_AI_TRACE_CILOR_DISPLAYTEN_MESSAGE0="(实验箱)追踪颜色 显示%1",LF.MPYTHON_AI_TRACE_CILOR_DISPLAYTEN_TOOLTIP="",LF.MPYTHON_AI_BLOB_ALL_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#blob",LF.MPYTHON_AI_BLOB_ALL_MESSAGE0="(实验箱)%1获取识别后色块的 所有参数",LF.MPYTHON_AI_BLOB_ALL_TOOLTIP="返回blob 类 -- 色块对象",LF.MPYTHON_AI_BLOB_X_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#blob",LF.MPYTHON_AI_BLOB_X_MESSAGE0="(实验箱)%1获取识别后色块的 x坐标",LF.MPYTHON_AI_BLOB_X_TOOLTIP="返回blob 类 -- 色块对象",LF.MPYTHON_AI_BLOB_Y_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#blob",LF.MPYTHON_AI_BLOB_Y_MESSAGE0="(实验箱)%1获取识别后色块的 y坐标",LF.MPYTHON_AI_BLOB_Y_TOOLTIP="返回blob 类 -- 色块对象",LF.MPYTHON_AI_BLOB_W_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#blob",LF.MPYTHON_AI_BLOB_W_MESSAGE0="(实验箱)%1获取识别后色块的 宽度",LF.MPYTHON_AI_BLOB_W_TOOLTIP="返回blob 类 -- 色块对象",LF.MPYTHON_AI_BLOB_H_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#blob",LF.MPYTHON_AI_BLOB_H_MESSAGE0="(实验箱)%1获取识别后色块的 高度",LF.MPYTHON_AI_BLOB_H_TOOLTIP="返回blob 类 -- 色块对象",LF.MPYTHON_AI_BLOB_NUMBER_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#blob",LF.MPYTHON_AI_BLOB_NUMBER_MESSAGE0="(实验箱)%1获取识别后色块的 数量",LF.MPYTHON_AI_BLOB_NUMBER_TOOLTIP="返回blob 类 -- 色块对象",LF.MPYTHON_AI_BLOB_CENTER_X_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#blob",LF.MPYTHON_AI_BLOB_CENTER_X_MESSAGE0="(实验箱)%1获取识别后色块的 中心x坐标",LF.MPYTHON_AI_BLOB_CENTER_X_TOOLTIP="返回blob 类 -- 色块对象",LF.MPYTHON_AI_BLOB_CENTER_Y_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#blob",LF.MPYTHON_AI_BLOB_CENTER_Y_MESSAGE0="(实验箱)%1获取识别后色块的 中心y坐标",LF.MPYTHON_AI_BLOB_CENTER_Y_TOOLTIP="返回blob 类 -- 色块对象",LF.MPYTHON_AI_BLOB_ORTHOGON_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#blob",LF.MPYTHON_AI_BLOB_ORTHOGON_MESSAGE0="(实验箱)%1获取识别后色块的 矩形",LF.MPYTHON_AI_BLOB_ORTHOGON_TOOLTIP="返回blob 类 -- 色块对象",LF.MPYTHON_AI_LCD_PIXEL_COLOUR_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html?highlight=get_pixel#mpython_classroom_kit.image.set_pixel",LF.MPYTHON_AI_LCD_PIXEL_COLOUR_MESSAGE0="屏幕 x%1 y%2 显示颜色 R%3 G%4 B%5",LF.MPYTHON_AI_LCD_PIXEL_COLOUR_TOOLTIP="屏幕显示颜色",LF.MPYTHON_AI_LCD_COLOUR_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.lcd.clear",LF.MPYTHON_AI_LCD_COLOUR_MESSAGE0="屏幕 初始化 显示颜色 R%1 G%2 B%3",LF.MPYTHON_AI_LCD_COLOUR_TOOLTIP="屏幕显示颜色",LF.MPYTHON_AI_SENSOR_PATTERN_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.camera.set_pixformat",LF.MPYTHON_AI_SENSOR_PATTERN_MESSAGE0="摄像头 初始化 像素模式 %1",LF.MPYTHON_AI_SENSOR_PATTERN_TOOLTIP="用于设置摄像头像素模式,有黑白和rgb彩色",LF.MPYTHON_DRILL_WEIGHT_MESSAGE0="初始化 训练 %1",LF.MPYTHON_DRILL_WEIGHT_TOOLTIP="",LF.MPYTHON_DRILL_WEIGHT_HELPURL="",LF.MPYTHON_DRILL_LINEAR_REGRESSION_HELPURL="",LF.MPYTHON_DRILL_LINEAR_REGRESSION_MESSAGE0="实例化 线性回归直线",LF.MPYTHON_DRILL_LINEAR_REGRESSION_TOOLTIP="",LF.MPYTHON_DRILL_TITLE_HELPURL="",LF.MPYTHON_DRILL_TITLE_MESSAGE0="标题%1 字号%2",LF.MPYTHON_DRILL_TITLE_TOOLTIP="",LF.MPYTHON_DRILL_LABEL_HELPURL="",LF.MPYTHON_DRILL_LABEL_MESSAGE0="标签%1 标题%2 字号%3",LF.MPYTHON_DRILL_LABEL_TOOLTIP="",LF.MPYTHON_DRILL_DRILL_REALITY_HELPURL="",LF.MPYTHON_DRILL_DRILL_REALITY_MESSAGE0="真实数据 符号标记%1 颜色为r%2 g%3 b%4 标题%5",LF.MPYTHON_DRILL_DRILL_REALITY_TOOLTIP="",LF.MPYTHON_DRILL_PREDICTED_REALITY_HELPURL="",LF.MPYTHON_DRILL_PREDICTED_REALITY_MESSAGE0="预测线性回归直线 符号标记%1 颜色为r%2 g%3 b%4 标题%5",LF.MPYTHON_DRILL_PREDICTED_REALITY_TOOLTIP="",LF.MPYTHON_DRILL_LEGEND_HELPURL="",LF.MPYTHON_DRILL_LEGEND_MESSAGE0="展示图例",LF.MPYTHON_DRILL_LEGEND_TOOLTIP="",LF.MPYTHON_DRILL_SHOW_HELPURL="",LF.MPYTHON_DRILL_SHOW_MESSAGE0="显示图片",LF.MPYTHON_DRILL_SHOW_TOOLTIP="",LF.MPYTHON_DRILL_DRILL_PRINT_HELPURL="",LF.MPYTHON_DRILL_DRILL_PRINT_MESSAGE0="输入测试数值%1",LF.MPYTHON_DRILL_DRILL_PRINT_TOOLTIP="",LF.MPYTHON_DRILL_DRILL_full_line="实线",LF.MPYTHON_DRILL_DRILL_dash_line="破折线",LF.MPYTHON_DRILL_DRILL_chain_line="点划线",LF.MPYTHON_DRILL_DRILL_imaginary_line="虚线",LF.MPYTHON_DRILL_DRILL_dot="点",LF.MPYTHON_DRILL_DRILL_pixel="像素",LF.MPYTHON_DRILL_DRILL_solid_rim="实心圈",LF.MPYTHON_DRILL_DRILL_down_triangle="下三角",LF.MPYTHON_DRILL_DRILL_up_triangle="上三角",LF.MPYTHON_DRILL_DRILL_right_triangle="右三角",LF.MPYTHON_DRILL_DRILL_left_triangle="左三角",LF.MPYTHON_DRILL_DRILL_down_flower_triangle="下花三角",LF.MPYTHON_DRILL_DRILL_up_flower_triangle="上花三角",LF.MPYTHON_DRILL_DRILL_right_flower_triangle="右花三角",LF.MPYTHON_DRILL_DRILL_left_flower_triangle="左花三角",LF.MPYTHON_DRILL_DRILL_solid_square="实心方形",LF.MPYTHON_DRILL_DRILL_solid_pentagon="实心五角",LF.MPYTHON_DRILL_DRILL_star="星形",LF.MPYTHON_DRILL_DRILL_vertical_hexagon="竖六边形",LF.MPYTHON_DRILL_DRILL_across_hexagon="横六边形",LF.MPYTHON_DRILL_DRILL_cross="十字",LF.MPYTHON_DRILL_DRILL_X="X",LF.MPYTHON_DRILL_DRILL_rhombus="菱形",LF.MPYTHON_DRILL_DRILL_thin_rhombus="瘦菱形",LF.MPYTHON_DRILL_DRILL_vertical_line="垂直线",LF.MPYTHONS_FLOWER_DE_LUCE_INITIALIZE_HELPURL="",LF.MPYTHONS_FLOWER_DE_LUCE_INITIALIZE_MESSAGE0="初始化 鸢尾花数据集",LF.MPYTHONS_FLOWER_DE_LUCE_INITIALIZE_TOOLTIP="采用Python的Sklearn机器学习库中自带的数据集——鸢尾花数据集。简单分析数据集之间特征的关系图,根据花瓣长度、花瓣宽度、花萼长度、花萼宽度四个特征进行绘图Iris plants 数据集可以从KEEL dataset数据集网站获取,也可以直接从Sklearn.datasets机器学习包得到。数据集共包含4个特征变量、1个类别变量,共有150个样本。类别变量分别对应鸢尾花的三个亚属,分别是山鸢尾 (Iris-setosa)、变色鸢尾(Iris-versicolor)和维吉尼亚鸢尾(Iris-virginica) 分别用[0,1,2]来做映射",LF.MPYTHONS_FLOWER_DE_LUCE_PCA_HELPURL="",LF.MPYTHONS_FLOWER_DE_LUCE_PCA_MESSAGE0="鸢尾花 主成分分析",LF.MPYTHONS_FLOWER_DE_LUCE_PCA_TOOLTIP="",LF.MPYTHONS_FLOWER_DE_LUCE_FA3D_HELPURL="",LF.MPYTHONS_FLOWER_DE_LUCE_FA3D_MESSAGE0="鸢尾花 因子分析 3D",LF.MPYTHONS_FLOWER_DE_LUCE_FA3D_TOOLTIP="",LF.MPYTHONS_FLOWER_DE_LUCE_FA_HELPURL="",LF.MPYTHONS_FLOWER_DE_LUCE_FA_MESSAGE0="鸢尾花 因子分析",LF.MPYTHONS_FLOWER_DE_LUCE_FA_TOOLTIP="",LF.MPYTHONS_FLOWER_DE_LUCE_PCA_DISPLAY_HELPURL="",LF.MPYTHONS_FLOWER_DE_LUCE_PCA_DISPLAY_MESSAGE0="预测图示 鸢尾花类型%1 呈现内容 x%3 y%4 呈现种类%2 颜色为 r%5 g%6 b%7 标题%8 向上合并%9",LF.MPYTHONS_FLOWER_DE_LUCE_PCA_DISPLAY_TOOLTIP="",LF.MPYTHONS_FLOWER_DE_LUCE_DATA_HELPURL="",LF.MPYTHONS_FLOWER_DE_LUCE_DATA_MESSAGE0="预测图示 呈现内容 x%1 y%2 呈现种类%3 颜色为 r%4 g%5 b%6 标题%7",LF.MPYTHONS_FLOWER_DE_LUCE_DATA_TOOLTIP="",LF.MPYTHONS_FLOWER_DE_LUCE_DATA3D_HELPURL="",LF.MPYTHONS_FLOWER_DE_LUCE_DATA3D_MESSAGE0="3D 预测图示 呈现内容 x朝向%1 y朝向%2 z朝向%3 颜色为 r%4 g%5 b%6 标题%7",LF.MPYTHONS_FLOWER_DE_LUCE_DATA3D_TOOLTIP="",LF.MPYTHONS_FLOWER_DE_LUCE_TITLE_HELPURL="",LF.MPYTHONS_FLOWER_DE_LUCE_TITLE_MESSAGE0="标题%1 字号%2",LF.MPYTHONS_FLOWER_DE_LUCE_TITLE_TOOLTIP="",LF.MPYTHONS_FLOWER_DE_LUCE_LABEL_HELPURL="",LF.MPYTHONS_FLOWER_DE_LUCE_LABEL_MESSAGE0="标签%1 标题%2 字号%3",LF.MPYTHONS_FLOWER_DE_LUCE_LABEL_TOOLTIP="",LF.MPYTHONS_FLOWER_DE_LUCE_TITLE3D_HELPURL="",LF.MPYTHONS_FLOWER_DE_LUCE_TITLE3D_MESSAGE0="3D 标题%1 字号%2",LF.MPYTHONS_FLOWER_DE_LUCE_TITLE3D_TOOLTIP="",LF.MPYTHONS_FLOWER_DE_LUCE_LABEL3D_HELPURL="",LF.MPYTHONS_FLOWER_DE_LUCE_LABEL3D_MESSAGE0="3D 标签%1 标题%2 字号%3",LF.MPYTHONS_FLOWER_DE_LUCE_LABEL3D_TOOLTIP="",LF.MPYTHONS_FLOWER_DE_LUCE_LEGEND_HELPURL="",LF.MPYTHONS_FLOWER_DE_LUCE_LEGEND_MESSAGE0="展示图例",LF.MPYTHONS_FLOWER_DE_LUCE_LEGEND_TOOLTIP="",LF.MPYTHONS_FLOWER_DE_LUCE_SHOW_HELPURL="",LF.MPYTHONS_FLOWER_DE_LUCE_SHOW_MESSAGE0="显示图片",LF.MPYTHONS_FLOWER_DE_LUCE_SHOW_TOOLTIP="",LF.MPYTHONS_FLOWER_DE_LUCE_LOAD_IRIS_HELPURL="",LF.MPYTHONS_FLOWER_DE_LUCE_LOAD_IRIS_MESSAGE0="花萼和花瓣的x,y坐标",LF.MPYTHONS_FLOWER_DE_LUCE_LOAD_IRIS_TOOLTIP="共150条记录,分别代表50条山鸢尾 (Iris-setosa)、变色鸢尾(Iris-versicolor)、维吉尼亚鸢尾(Iris-virginica)",LF.MPYTHONS_FLOWER_DE_LUCE_Iris_setosa="山鸢尾",LF.MPYTHONS_FLOWER_DE_LUCE_Iris_versicolor="变色鸢尾",LF.MPYTHONS_FLOWER_DE_LUCE_Iris_virginica="维吉尼亚鸢尾",LF.MPYTHONS_FLOWER_DE_LUCE_scatter_diagram="散点图",LF.MPYTHONS_FLOWER_DE_LUCE_kde_diagram="kde图",LF.MPYTHONS_FLOWER_DE_LUCE_box_diagram="箱图",LF.MPYTHONS_FLOWER_DE_LUCE_merge="合并",LF.MPYTHONS_FLOWER_DE_LUCE_not_merge="不合并",LF.MPYTHONS_FLOWER_DE_LUCE_calyx_length="花萼长度",LF.MPYTHONS_FLOWER_DE_LUCE_calyx_width="花萼宽度",LF.MPYTHONS_FLOWER_DE_LUCE_petal_length="花瓣长度",LF.MPYTHONS_FLOWER_DE_LUCE_petal_width="花瓣宽度",LF.MPYTHONS_CONVERT_PICTURE_HELPURL="",LF.MPYTHONS_CONVERT_PICTURE_MESSAGE0="将图片转换为28²二值图%1 待处理的图片存储路径%2 处理后的图片存储路径%3 格式%4",LF.MPYTHONS_CONVERT_PICTURE_TOOLTIP="掌控板通过串口把WIF传给语音助手",LF.MPYTHONS_NUMBER_REPERTOIRE_HELPURL="",LF.MPYTHONS_NUMBER_REPERTOIRE_MESSAGE0="查找解析 手写数字数据 存储路径%1",LF.MPYTHONS_NUMBER_REPERTOIRE_TOOLTIP="使用手写数字字符库",LF.MPYTHONS_SHOW_NUMBER_PATH_HELPURL="",LF.MPYTHONS_SHOW_NUMBER_PATH_MESSAGE0="手写数字图像 存储路径%1",LF.MPYTHONS_SHOW_NUMBER_PATH_TOOLTIP="手写数字图像的路径",LF.MPYTHONS_SHOW_NUMBER_HELPURL="",LF.MPYTHONS_SHOW_NUMBER_MESSAGE0="显示手写数字图像",LF.MPYTHONS_SHOW_NUMBER_TOOLTIP="显示手写数字图像",LF.MPYTHONS_NUMBER_RECOGNITION_HELPURL="",LF.MPYTHONS_NUMBER_RECOGNITION_MESSAGE0="识别手写数字图像 存储路径%1",LF.MPYTHONS_NUMBER_RECOGNITION_TOOLTIP="识别手写数字图像的路径",LF.MPYTHONS_NUMBER_PLACEHOLDER_HELPURL="",LF.MPYTHONS_NUMBER_PLACEHOLDER_MESSAGE0="创建变量%1 初始化 神经网络张量 变量名%2",LF.MPYTHONS_NUMBER_PLACEHOLDER_TOOLTIP="",LF.MPYTHON_DRILL_RESHAPE_MESSAGE0="创建变量%1 将输入照片变量 %2 转换为 神经网络输出张量%3",LF.MPYTHON_DRILL_RESHAPE_TOOLTIP="",LF.MPYTHON_DRILL_RESHAPE_HELPURL="",LF.MPYTHON_NUMBER_CONV_WEIGHT_MESSAGE0="创建变量%1 共享变量名%2 初始化模式%3",LF.MPYTHON_NUMBER_CONV_WEIGHT_TOOLTIP="",LF.MPYTHON_NUMBER_CONV_WEIGHT_HELPURL="",LF.MPYTHON_NUMBER_INITIALIZER_MESSAGE0="产生截断正态分布随机数 输出张量%1 标准差%2",LF.MPYTHON_NUMBER_INITIALIZER_TOOLTIP="",LF.MPYTHON_NUMBER_INITIALIZER_HELPURL="",LF.MPYTHON_NUMBER_CONSTANT_MESSAGE0="创建常量 数值%1 输出张量%2",LF.MPYTHON_NUMBER_CONSTANT_TOOLTIP="",LF.MPYTHON_NUMBER_CONSTANT_HELPURL="",LF.MPYTHON_NUMBER_CONV2D_MESSAGE0="神经网络输出张量%1 共享变量%2 步长%3 填充%4",LF.MPYTHON_NUMBER_CONV2D_TOOLTIP="",LF.MPYTHON_NUMBER_CONV2D_HELPURL="",LF.MPYTHON_NUMBER_CONV_BIASES_MESSAGE0="张量%1",LF.MPYTHON_NUMBER_CONV_BIASES_TOOLTIP="",LF.MPYTHON_NUMBER_CONV_BIASES_HELPURL="",LF.MPYTHON_NUMBER_CONV_CONV2D_MESSAGE0="卷积二维层 变量%1 %2",LF.MPYTHON_NUMBER_CONV_CONV2D_TOOLTIP="",LF.MPYTHON_NUMBER_CONV_CONV2D_HELPURL="",LF.MPYTHON_NUMBER_RELU_MESSAGE0="创建变量%1 Relu正向激励函数 卷积二维层%2",LF.MPYTHON_NUMBER_RELU_TOOLTIP="",LF.MPYTHON_NUMBER_RELU_HELPURL="",LF.MPYTHON_NUMBER_MAX_POOL_MESSAGE0="池化二维层 变量%1 卷积层%2 池化窗口%3 步长%4 填充%5",LF.MPYTHON_NUMBER_MAX_POOL_TOOLTIP="",LF.MPYTHON_NUMBER_MAX_POOL_HELPURL="",LF.MPYTHON_NUMBER_MATMUL_MESSAGE0="两个参数的对应元素各自相乘 x%1 y%2",LF.MPYTHON_NUMBER_MATMUL_TOOLTIP="",LF.MPYTHON_NUMBER_MATMUL_HELPURL="",LF.MPYTHON_NUMBER_ADD_MESSAGE0="全连接层 变量%1 两个参数的元素相加 x%2 y%3",LF.MPYTHON_NUMBER_ADD_TOOLTIP="",LF.MPYTHON_NUMBER_ADD_HELPURL="",LF.MPYTHON_NUMBER_SOFTMAX_MESSAGE0="创建变量%1 预测模型准确度 变量名%2",LF.MPYTHON_NUMBER_SOFTMAX_TOOLTIP="",LF.MPYTHON_NUMBER_SOFTMAX_HELPURL="",LF.MPYTHON_NUMBER_REDUCE_MEAN_MESSAGE0="创建变量%1 损失函数%2",LF.MPYTHON_NUMBER_REDUCE_MEAN_TOOLTIP="",LF.MPYTHON_NUMBER_REDUCE_MEAN_HELPURL="",LF.MPYTHON_NUMBER_LOG_MESSAGE0="自然对数 %1",LF.MPYTHON_NUMBER_LOG_TOOLTIP="",LF.MPYTHON_NUMBER_LOG_HELPURL="",LF.MPYTHON_NUMBER_REDUCE_SUM_MESSAGE0="压缩求和%1 维度%2",LF.MPYTHON_NUMBER_REDUCE_SUM_TOOLTIP="因为log函数是单调递增的,所以logP(Y|X)也会达到最大值,因此在前面加上负号之后,最大化P(Y|X)就等价于最小化L了。",LF.MPYTHON_NUMBER_REDUCE_SUM_HELPURL="https://www.cnblogs.com/guoyaohua/p/9217206.html",LF.MPYTHON_NUMBER_TRAIN_MESSAGE0="优化学习速率 %1",LF.MPYTHON_NUMBER_TRAIN_TOOLTIP="",LF.MPYTHON_NUMBER_TRAIN_HELPURL="",LF.MPYTHON_NUMBER_MINIMIZE_MESSAGE0="创建变量%1 优化张量%2",LF.MPYTHON_NUMBER_MINIMIZE_TOOLTIP="",LF.MPYTHON_NUMBER_MINIMIZE_HELPURL="",LF.MPYTHON_NUMBER_INIT_MESSAGE0="初始化模型 完成",LF.MPYTHON_NUMBER_INIT_TOOLTIP="",LF.MPYTHON_NUMBER_INIT_HELPURL="",LF.MPYTHON_NUMBER_TRAIN_TEST_MESSAGE0="选择 手写数字集%1 数量%2",LF.MPYTHON_NUMBER_TRAIN_TEST_TOOLTIP="",LF.MPYTHON_NUMBER_TRAIN_TEST_HELPURL="",LF.MPYTHON_NUMBER_SESSION_RUN_MESSAGE0="启动数据流图会话进行计算 会话%1 图片%2 标签%3",LF.MPYTHON_NUMBER_SESSION_RUN_TOOLTIP="",LF.MPYTHON_NUMBER_SESSION_RUN_HELPURL="",LF.MPYTHON_NUMBER_SESSION_RUN2_MESSAGE0="启动数据流图会话进行计算 会话%1 图片%2 标签%3",LF.MPYTHON_NUMBER_SESSION_RUN2_TOOLTIP="",LF.MPYTHON_NUMBER_SESSION_RUN2_HELPURL="",LF.MPYTHON_NUMBER_SESSION_RUN3_MESSAGE0="预测模型%1 拟合度%2 会话%3",LF.MPYTHON_NUMBER_SESSION_RUN3_TOOLTIP="",LF.MPYTHON_NUMBER_SESSION_RUN3_HELPURL="",LF.MPYTHON_NUMBER_EQUAL_MESSAGE0="两个张量的每一维是否相等 x%1 y%2",LF.MPYTHON_NUMBER_EQUAL_TOOLTIP="",LF.MPYTHON_NUMBER_EQUAL_HELPURL="",LF.MPYTHON_NUMBER_ARGMAX_MESSAGE0="张量 %1 按%2比较返回最大值的索引",LF.MPYTHON_NUMBER_ARGMAX_TOOLTIP="",LF.MPYTHON_NUMBER_ARGMAX_HELPURL="",LF.MPYTHON_NUMBER_CAST_MESSAGE0="转为浮点型 %1",LF.MPYTHON_NUMBER_CAST_TOOLTIP="",LF.MPYTHON_NUMBER_CAST_HELPURL="",LF.MPYTHONS_NUMBER_SAVER_SAVE_HELPURL="",LF.MPYTHONS_NUMBER_SAVER_SAVE_MESSAGE0="手写数字识别模型 变量名%1 存储路径%2",LF.MPYTHONS_NUMBER_SAVER_SAVE_TOOLTIP="MNIST手写数字识别模型保存路径",LF.MPYTHONS_NUMBER_SAVER_RESTORE_HELPURL="",LF.MPYTHONS_NUMBER_SAVER_RESTORE_MESSAGE0="加载模型 %1 存储路径%2",LF.MPYTHONS_NUMBER_SAVER_RESTORE_TOOLTIP="加载模型",LF.MPYTHONS_NUMBER_SAME="包含边界",LF.MPYTHONS_NUMBER_VALID="不包含边界",LF.MPYTHONS_NUMBER_train="训练",LF.MPYTHONS_NUMBER_test="测试",LF.MPYTHONS_NUMBER_row="行",LF.MPYTHONS_NUMBER_rank="列",LF.MPYTHONS_NUMBERNEW_INITIALIZE_HELPURL="",LF.MPYTHONS_NUMBERNEW_INITIALIZE_MESSAGE0="初始化 张量 载入mnist数据集",LF.MPYTHONS_NUMBERNEW_INITIALIZE_TOOLTIP="",LF.MPYTHONS_NUMBERNEW_CONVOLUTIONAL_ONE_HELPURL="",LF.MPYTHONS_NUMBERNEW_CONVOLUTIONAL_ONE_MESSAGE0="卷积 一 层",LF.MPYTHONS_NUMBERNEW_CONVOLUTIONAL_ONE_TOOLTIP="",LF.MPYTHONS_NUMBERNEW_POOLING_ONE_HELPURL="",LF.MPYTHONS_NUMBERNEW_POOLING_ONE_MESSAGE0="池化 一 层",LF.MPYTHONS_NUMBERNEW_POOLING_ONE_TOOLTIP="",LF.MPYTHONS_NUMBERNEW_CONVOLUTIONAL_TWO_HELPURL="",LF.MPYTHONS_NUMBERNEW_CONVOLUTIONAL_TWO_MESSAGE0="卷积 二 层",LF.MPYTHONS_NUMBERNEW_CONVOLUTIONAL_TWO_TOOLTIP="",LF.MPYTHONS_NUMBERNEW_POOLING_TWO_HELPURL="",LF.MPYTHONS_NUMBERNEW_POOLING_TWO_MESSAGE0="池化 二 层",LF.MPYTHONS_NUMBERNEW_POOLING_TWO_TOOLTIP="",LF.MPYTHONS_NUMBERNEW_CONNECT_ONE_HELPURL="",LF.MPYTHONS_NUMBERNEW_CONNECT_ONE_MESSAGE0="全连接 一 层",LF.MPYTHONS_NUMBERNEW_CONNECT_ONE_TOOLTIP="",LF.MPYTHONS_NUMBERNEW_CONNECT_TWO_HELPURL="",LF.MPYTHONS_NUMBERNEW_CONNECT_TWO_MESSAGE0="全连接 二 层",LF.MPYTHONS_NUMBERNEW_CONNECT_TWO_TOOLTIP="",LF.MPYTHONS_NUMBERNEW_LOSS_HELPURL="",LF.MPYTHONS_NUMBERNEW_LOSS_MESSAGE0="配置Adam优化器 学习速率为%1",LF.MPYTHONS_NUMBERNEW_LOSS_TOOLTIP="学习速率为0.001~0.000001之间",LF.MPYTHONS_NUMBERNEW_TENSORFLOW_HELPURL="",LF.MPYTHONS_NUMBERNEW_TENSORFLOW_MESSAGE0="初始化 tensorflow模型%1 训练模型%2 步数%3",LF.MPYTHONS_NUMBERNEW_TENSORFLOW_TOOLTIP="步数不能小于10",LF.MPYTHONS_NUMBERNEW_TENSORFLOW_STATE_HELPURL="",LF.MPYTHONS_NUMBERNEW_TENSORFLOW_STATE_MESSAGE0="模型训练准确率",LF.MPYTHONS_NUMBERNEW_TENSORFLOW_STATE_TOOLTIP="",LF.MPYTHONS_NUMBERNEW_TENSORFLOW_TRAIN_HELPURL="",LF.MPYTHONS_NUMBERNEW_TENSORFLOW_TRAIN_MESSAGE0="预测 训练正确率",LF.MPYTHONS_NUMBERNEW_TENSORFLOW_TRAIN_TOOLTIP="",LF.MPYTHONS_NUMBERNEW_TENSORFLOW_NUMBER_HELPURL="",LF.MPYTHONS_NUMBERNEW_TENSORFLOW_NUMBER_MESSAGE0="预测 手写数字%1",LF.MPYTHONS_NUMBERNEW_TENSORFLOW_NUMBER_TOOLTIP="仅支持28*28像素的黑白图片",LF.MPYTHONS_NUMBERNEW_TENSORFLOW_IMAGE_HELPURL="",LF.MPYTHONS_NUMBERNEW_TENSORFLOW_IMAGE_MESSAGE0="显示图片%1",LF.MPYTHONS_NUMBERNEW_TENSORFLOW_IMAGE_TOOLTIP="",LF.MPYTHONS_FACE_RECOGNITION_CAMERA_HELPURL="",LF.MPYTHONS_FACE_RECOGNITION_CAMERA_MESSAGE0="调用摄像头 %1",LF.MPYTHONS_FACE_RECOGNITION_CAMERA_TOOLTIP="调用笔记本内置摄像头,所以参数为0,如果有其他的摄像头可以调整参数为1,2",LF.MPYTHONS_FACE_RECOGNITION_CAMERA_OFF_HELPURL="",LF.MPYTHONS_FACE_RECOGNITION_CAMERA_OFF_MESSAGE0="关闭摄像头",LF.MPYTHONS_FACE_RECOGNITION_CAMERA_OFF_TOOLTIP="",LF.MPYTHONS_FACE_RECOGNITION_WINDOWS_DELETE_HELPURL="",LF.MPYTHONS_FACE_RECOGNITION_WINDOWS_DELETE_MESSAGE0="删除所有窗口",LF.MPYTHONS_FACE_RECOGNITION_WINDOWS_DELETE_TOOLTIP="",LF.MPYTHONS_FACE_RECOGNITION_IMPORT_MODEL_SITE_HELPURL="",LF.MPYTHONS_FACE_RECOGNITION_IMPORT_MODEL_SITE_MESSAGE0="加载模型 存储路径%1",LF.MPYTHONS_FACE_RECOGNITION_IMPORT_MODEL_SITE_TOOLTIP="",LF.MPYTHONS_FACE_RECOGNITION_READ_IMAGES_HELPURL="",LF.MPYTHONS_FACE_RECOGNITION_READ_IMAGES_MESSAGE0="从摄像头读取图片",LF.MPYTHONS_FACE_RECOGNITION_READ_IMAGES_TOOLTIP="ret如果有读取图片就True,否则false;第二个参数是frame,是当前截取一帧的图片。",LF.MPYTHONS_FACE_RECOGNITION_GRAY_IMAGES_HELPURL="",LF.MPYTHONS_FACE_RECOGNITION_GRAY_IMAGES_MESSAGE0="转为灰度图片",LF.MPYTHONS_FACE_RECOGNITION_GRAY_IMAGES_TOOLTIP="",LF.MPYTHONS_FACE_RECOGNITION_DETECTION_FACES_HELPURL="",LF.MPYTHONS_FACE_RECOGNITION_DETECTION_FACES_MESSAGE0="检测人脸 每次图像尺寸减小比例%1",LF.MPYTHONS_FACE_RECOGNITION_DETECTION_FACES_TOOLTIP="",LF.MPYTHONS_FACE_DISPLAY_RECOGNITION_ORTHOGON_HELPURL="",LF.MPYTHONS_FACE_DISPLAY_RECOGNITION_ORTHOGON_MESSAGE0="人脸区域显示矩形框 颜色为 红%1 绿%2 蓝%3",LF.MPYTHONS_FACE_DISPLAY_RECOGNITION_ORTHOGON_TOOLTIP="",LF.MPYTHONS_FACE_RECOGNITIONR_PSTORAGE_PICTURE_HELPURL="",LF.MPYTHONS_FACE_RECOGNITIONR_PSTORAGE_PICTURE_MESSAGE0="保存图像 位置%1 ID%2 编号%3",LF.MPYTHONS_FACE_RECOGNITIONR_PSTORAGE_PICTURE_TOOLTIP="",LF.MPYTHONS_FACE_RECOGNITIONR_PRESERVE_PICTURE_HELPURL="",LF.MPYTHONS_FACE_RECOGNITIONR_PRESERVE_PICTURE_MESSAGE0="窗口中显示图像 文件名%1",LF.MPYTHONS_FACE_RECOGNITIONR_PRESERVE_PICTURE_TOOLTIP="",LF.MPYTHONS_FACE_RECOGNITIONR_ESC_HELPURL="",LF.MPYTHONS_FACE_RECOGNITIONR_ESC_MESSAGE0="通过esc键 退出",LF.MPYTHONS_FACE_RECOGNITIONR_ESC_TOOLTIP="在窗口置顶时使用才有效果",LF.MPYTHONS_FACE_RECOGNITIONR_HELPURL="",LF.MPYTHONS_FACE_RECOGNITIONR_MESSAGE0="获得人脸在图像中的坐标值 人脸%1",LF.MPYTHONS_FACE_RECOGNITIONR_TOOLTIP="",LF.MPYTHONS_FACE_RECOGNITION_JUDGE_FACES_HELPURL="",LF.MPYTHONS_FACE_RECOGNITION_JUDGE_FACES_MESSAGE0="是否有读取图片",LF.MPYTHONS_FACE_RECOGNITION_JUDGE_FACES_TOOLTIP="",LF.MPYTHONS_FACE_RECOGNITION_JUDGE_CAMERA_HELPURL="",LF.MPYTHONS_FACE_RECOGNITION_JUDGE_CAMERA_MESSAGE0="是否打开摄像头",LF.MPYTHONS_FACE_RECOGNITION_JUDGE_CAMERA_TOOLTIP="",LF.MPYTHONS_FACE_RECOGNITION_ACQUIRE_ID_PICTURE_HELPURL="",LF.MPYTHONS_FACE_RECOGNITION_ACQUIRE_ID_PICTURE_MESSAGE0="获取照片及id 照片存储路径%1",LF.MPYTHONS_FACE_RECOGNITION_ACQUIRE_ID_PICTURE_TOOLTIP="",LF.MPYTHONS_FACE_RECOGNITION_INITIALIZE_TRANI_MODEL_HELPURL="",LF.MPYTHONS_FACE_RECOGNITION_INITIALIZE_TRANI_MODEL_MESSAGE0="初始化训练模型",LF.MPYTHONS_FACE_RECOGNITION_INITIALIZE_TRANI_MODEL_TOOLTIP="初始化训练模型",LF.MPYTHONS_FACE_RECOGNITION_START_DRILL_HELPURL="",LF.MPYTHONS_FACE_RECOGNITION_START_DRILL_MESSAGE0="开始训练模型",LF.MPYTHONS_FACE_RECOGNITION_START_DRILL_TOOLTIP="",LF.MPYTHONS_FACE_RECOGNITION_STORAGE_DRILL_MODEL_HELPURL="",LF.MPYTHONS_FACE_RECOGNITION_STORAGE_DRILL_MODEL_MESSAGE0="%1训练模型 存储路径%2",LF.MPYTHONS_FACE_RECOGNITION_STORAGE_DRILL_MODEL_TOOLTIP="",LF.MPYTHONS_FACE_RECOGNITION_DRILL_NUMBERS_HELPURL="",LF.MPYTHONS_FACE_RECOGNITION_DRILL_NUMBERS_MESSAGE0="人脸模型训练 数目",LF.MPYTHONS_FACE_RECOGNITION_DRILL_NUMBERS_TOOLTIP="",LF.MPYTHONS_FACE_RECOGNITION_FONT_HELPURL="",LF.MPYTHONS_FACE_RECOGNITION_FONT_MESSAGE0="窗口显示 识别的名字%1 设置字体为%2 颜色为 红%3 绿%4 蓝%5",LF.MPYTHONS_FACE_RECOGNITION_FONT_TOOLTIP="",LF.MPYTHONS_FACE_RECOGNITION_PERCENT_HELPURL="",LF.MPYTHONS_FACE_RECOGNITION_PERCENT_MESSAGE0="窗口显示 识别的置信度%1 设置字体为%2 颜色为 红%3 绿%4 蓝%5",LF.MPYTHONS_FACE_RECOGNITION_PERCENT_TOOLTIP="",LF.MPYTHONS_FACE_RECOGNITION_FORECAST_FACE_INITIALIZE_HELPURL="",LF.MPYTHONS_FACE_RECOGNITION_FORECAST_FACE_INITIALIZE_MESSAGE0="预测人脸 名字%1 置信度%2",LF.MPYTHONS_FACE_RECOGNITION_FORECAST_FACE_INITIALIZE_TOOLTIP="",LF.MPYTHONS_FACE_RECOGNITION_FORECAST_Write="写入",LF.MPYTHONS_FACE_RECOGNITION_FORECAST_Read="读取",LF.MPYTHONS_DIALOGUE_ROBOT_INITIALIZE_HELPURL="",LF.MPYTHONS_DIALOGUE_ROBOT_INITIALIZE_MESSAGE0="初始化 聊天机器人",LF.MPYTHONS_ADIALOGUE_ROBOT_INITIALIZE_TOOLTIP="",LF.MPYTHONS_DIALOGUE_ROBOT_CHOOSE_HELPURL="",LF.MPYTHONS_DIALOGUE_ROBOT_CHOOSE_MESSAGE0="选择训练器 聊天机器人",LF.MPYTHONS_ADIALOGUE_ROBOT_CHOOSE_TOOLTIP="",LF.MPYTHONS_DIALOGUE_ROBOT_START_HELPURL="",LF.MPYTHONS_DIALOGUE_ROBOT_START_MESSAGE0="选择与%1 聊天",LF.MPYTHONS_ADIALOGUE_ROBOT_START_TOOLTIP="",LF.MPYTHONS_ADIALOGUE_ROBOT_CORPUS_HELPURL="",LF.MPYTHONS_ADIALOGUE_ROBOT_CORPUS_TOOLTIP="",LF.MPYTHONS_ADIALOGUE_ROBOT_CORPUS_MESSAGE0="自定义 语料库 %1[%2]",LF.MPYTHONS_ADIALOGUE_ROBOT_MY_FAQs_HELPURL="",LF.MPYTHONS_ADIALOGUE_ROBOT_MY_FAQs_MESSAGE0="输入对话 获得响应 %1",LF.MPYTHONS_ADIALOGUE_ROBOT_MY_FAQs_TOOLTIP="",LF.MPYTHONS_ADIALOGUE_ROBOT_FAQs_RETURN_MESSAGE0="识别响应",LF.MPYTHONS_ADIALOGUE_ROBOT_FAQs_RETURN_TOOLTIP="",LF.MPYTHONS_ADIALOGUE_ROBOT_FAQs_RETURN_HELPURL="",LF.MPYTHONS_ADIALOGUE_ROBOT_CORPUS2_HELPURL="",LF.MPYTHONS_ADIALOGUE_ROBOT_CORPUS2_MESSAGE0="选择跟 %1 聊天",LF.MPYTHONS_ADIALOGUE_ROBOT_CORPUS2_TOOLTIP="",LF.Jenny="珍妮",LF.Jack="杰克",LF.Tom="汤姆",LF.MPYTHONS_ADIALOGUE_ROBOT_FEED_HELPURL="",LF.MPYTHONS_ADIALOGUE_ROBOT_FEED_MESSAGE0="选择 %1 %2 模式%3 %4 喂养%5",LF.MPYTHONS_ADIALOGUE_ROBOT_FEED_TOOLTIP="",LF.MPYTHONS_ADIALOGUE_READ_TRAINING_LIBRARY_HELPURL="",LF.MPYTHONS_ADIALOGUE_READ_TRAINING_LIBRARY_MESSAGE0="查阅训练库 选择%1",LF.MPYTHONS_ADIALOGUE_READ_TRAINING_LIBRARY_TOOLTIP="",LF.MPYTHON_GESTURE_RANDOM_NUMBER_HELPURL="",LF.MPYTHON_GESTURE_RANDOM_NUMBER_MESSAGE0="生成随机数 %1",LF.MPYTHON_GESTURE_RANDOM_NUMBER_TOOLTIP="",LF.MPYTHON_AGESTURE_SHOW_WINDOW_HELPURL="",LF.MPYTHON_AGESTURE_SHOW_WINDOW_MESSAGE0="显示窗口",LF.MPYTHON_AGESTURE_SHOW_WINDOW_TOOLTIP="",LF.MPYTHON_AGESTURE_IMSHOW_HELPURL="",LF.MPYTHON_AGESTURE_IMSHOW_MESSAGE0="处理图像 %1",LF.MPYTHON_AGESTURE_IMSHOW_TOOLTIP="",LF.MPYTHON_AGESTURE_TRAIN_MODEL_HELPURL="",LF.MPYTHON_AGESTURE_TRAIN_MODEL_MESSAGE0="选择训练库 knn模型",LF.MPYTHON_AGESTURE_TRAIN_MODEL_TOOLTIP="",LF.MPYTHON_AGESTURE_LOAD_MODEL_HELPURL="",LF.MPYTHON_AGESTURE_LOAD_MODEL_MESSAGE0="载入knn模型 存储路径%1",LF.MPYTHON_AGESTURE_LOAD_MODEL_TOOLTIP="",LF.MPYTHON_AGESTURE_OPEN_IMAGES_HELPURL="",LF.MPYTHON_AGESTURE_OPEN_IMAGES_MESSAGE0="%1打开图片 存储路径%2 图片名%3",LF.MPYTHON_AGESTURE_OPEN_IMAGES_TOOLTIP="",LF.MPYTHON_AGESTURE_ARRAY_MESSAGE0="选择%1 构建特征数据%2",LF.MPYTHON_AGESTURE_ARRAY_TOOLTIP="",LF.MPYTHON_AGESTURE_ARRAY_HELPURL="",LF.MPYTHON_GESTURE_RANDOM_RANK_MESSAGE0="打乱排序%1 ",LF.MPYTHON_GESTURE_RANDOM_RANK_TOOLTIP="",LF.MPYTHON_GESTURE_RANDOM_RANK_HELPURL="",LF.MPYTHON_GESTURE_READ_LEND_MESSAGE0=" %1 图片特征",LF.MPYTHON_GESTURE_READ_LEND_TOOLTIP="",LF.MPYTHON_GESTURE_READ_LEND_HELPURL="",LF.MPYTHON_GESTURE_START_SRAIN_HELPURL="",LF.MPYTHON_GESTURE_START_SRAIN_MESSAGE0="开始训练 手势识别 期望%1 目标%2",LF.MPYTHON_GESTURE_START_SRAIN_TOOLTIP="",LF.MPYTHON_GESTURE_SCORE_HELPURL="",LF.MPYTHON_GESTURE_SCORE_MESSAGE0="进行评分 期望%1 目标%2",LF.MPYTHON_GESTURE_SCORE_TOOLTIP="",LF.MPYTHON_GESTURE_DIMENSIONALITY_REDUCTION_HELPURL="",LF.MPYTHON_GESTURE_DIMENSIONALITY_REDUCTION_TOOLTIP="",LF.MPYTHON_GESTURE_DIMENSIONALITY_REDUCTION_MESSAGE0="%1 数组降维 图片总数%2",LF.MPYTHON_GESTURE_FORECAST_HELPURL="",LF.MPYTHON_GESTURE_FORECAST_TOOLTIP="",LF.MPYTHON_GESTURE_FORECAST_MESSAGE0="预测结果%1",LF.MPYTHON_AGESTURE_SAVE_MODEL_HELPURL="",LF.MPYTHON_AGESTURE_SAVE_MODEL_MESSAGE0="保存模型 存储路径%1",LF.MPYTHON_AGESTURE_SAVE_MODEL_TOOLTIP="",LF.MPYTHON_AGESTURE_FORECAST_PICTURE_HELPURL="",LF.MPYTHON_AGESTURE_FORECAST_PICTURE_MESSAGE0="%1图片 预测图片 ",LF.MPYTHON_AGESTURE_FORECAST_PICTURE_TOOLTIP="",LF.MPYTHON_GESTURE_PICTURE_DIMENSIONALITY_REDUCTION_HELPURL="",LF.MPYTHON_GESTURE_PICTURE_DIMENSIONALITY_REDUCTION_TOOLTIP="",LF.MPYTHON_GESTURE_PICTURE_DIMENSIONALITY_REDUCTION_MESSAGE0="%1 彩色图像降维",LF.MPYTHON_AGESTURENEW_INITIALIZE_HELPURL="",LF.MPYTHON_AGESTURENEW_INITIALIZE_MESSAGE0="初始化 KNN",LF.MPYTHON_AGESTURENEW_INITIALIZE_TOOLTIP="",LF.MPYTHON_AGESTURENEW_SHOOT_HELPURL="",LF.MPYTHON_AGESTURENEW_SHOOT_MESSAGE0="拍摄 进行手势检测",LF.MPYTHON_AGESTURENEW_SHOOT_TOOLTIP="",LF.MPYTHON_AGESTURENEW_SHOOT_GRAY_HELPURL="",LF.MPYTHON_AGESTURENEW_SHOOT_GRAY_MESSAGE0="拍摄 训练集",LF.MPYTHON_AGESTURENEW_SHOOT_GRAY_TOOLTIP="",LF.MPYTHON_AGESTURENEW_GRAY_HELPURL="",LF.MPYTHON_AGESTURENEW_GRAY_MESSAGE0="图像处理",LF.MPYTHON_AGESTURENEW_GRAY_TOOLTIP="",LF.MPYTHON_AGESTURENEW_TRAIN_HELPURL="",LF.MPYTHON_AGESTURENEW_TRAIN_MESSAGE0="开始分类训练",LF.MPYTHON_AGESTURENEW_TRAIN_TOOLTIP="",LF.MPYTHON_AGESTURENEW_START_FORECAST_HELPURL="",LF.MPYTHON_AGESTURENEW_START_FORECAST_MESSAGE0="开始预测",LF.MPYTHON_AGESTURENEW_START_FORECAST_TOOLTIP="",LF.MPYTHON_AGESTURENEW_FORECAST_RESULT_HELPURL="",LF.MPYTHON_AGESTURENEW_FORECAST_RESULT_MESSAGE0="预测结果",LF.MPYTHON_AGESTURENEW_FORECAST_RESULT_TOOLTIP="",LF.MPYTHON_AGESTURENEW_SHOW_WINDOW_HELPURL="",LF.MPYTHON_AGESTURENEW_SHOW_WINDOW_MESSAGE0="显示图片";LF.MPYTHON_AGESTURENEW_SHOW_WINDOW_TOOLTIP="",LF.MPYTHONS_FACEAI_READ_PICTURE_PATH_HELPURL="",LF.MPYTHONS_FACEAI_READ_PICTURE_PATH_MESSAGE0="选择人脸库 图片存储路径%1",LF.MPYTHONS_FACEAI_READ_PICTURE_PATH_TOOLTIP="",LF.MPYTHONS_FACEAI_RECOGNITION_IMPORT_MODEL_SITE_HELPURL="",LF.MPYTHONS_FACEAI_RECOGNITION_IMPORT_MODEL_SITE_MESSAGE0="加载模型 存储路径%1",LF.MPYTHONS_FACEAI_RECOGNITION_IMPORT_MODEL_SITE_TOOLTIP="",LF.MPYTHONS_FACEAI_FACE_GENDER_DETECTION_RETURN_HELPURL="",LF.MPYTHONS_FACEAI_FACE_GENDER_DETECTION_RETURN_MESSAGE0="第%1位人脸性别结果 置信度",LF.MPYTHONS_FACEAI_FACE_GENDER_DETECTION_RETURN_TOOLTIP="",LF.MPYTHONS_FACEAI_FACE_EMOTION_DETECTION_RETURN_HELPURL="",LF.MPYTHONS_FACEAI_FACE_EMOTION_DETECTION_RETURN_MESSAGE0="第%1位人脸情绪结果 置信度",LF.MPYTHONS_FACEAI_FACE_EMOTION_DETECTION_RETURN_TOOLTIP="",LF.MPYTHONS_FACEAI_FACE_GENDER_RESULT_HELPURL="",LF.MPYTHONS_FACEAI_FACE_GENDER_RESULT_MESSAGE0="第%1位人脸性别 结果",LF.MPYTHONS_FACEAI_FACE_GENDER_RESULT_TOOLTIP="",LF.MPYTHONS_FACEAI_FACE_EMOTION_RESULT_HELPURL="",LF.MPYTHONS_FACEAI_FACE_EMOTION_RESULT_MESSAGE0="第%1位人脸情绪 结果",LF.MPYTHONS_FACEAI_FACE_EMOTION_RESULT_TOOLTIP="",LF.MPYTHON_FACEAI_CHOOSE_FACE_POOL_HELPURL="",LF.MPYTHON_FACEAI_CHOOSE_FACE_POOL_MESSAGE0="选择人脸库 %1",LF.MPYTHON_FACEAI_CHOOSE_FACE_POOL_TOOLTIP="",LF.MPYTHONS_FACEAI_FACE_EMOTION_RETURN_HELPURL="",LF.MPYTHONS_FACEAI_FACE_EMOTION_RETURN_MESSAGE0="第%1位情绪为 %2",LF.MPYTHONS_FACEAI_FACE_EMOTION_RETURN_TOOLTIP="",LF.MPYTHONS_FACEAI_FACE_GENDER_RETURN_HELPURL="",LF.MPYTHONS_FACEAI_FACE_GENDER_RETURN_MESSAGE0="第%1位性别为 %2",LF.MPYTHONS_FACEAI_FACE_GENDER_RETURN_TOOLTIP="",LF.MPYTHONS_FACEAI_FACE_NUMBER_RETURN_HELPURL="",LF.MPYTHONS_FACEAI_FACE_NUMBER_RETURN_MESSAGE0="人脸数量",LF.MPYTHONS_FACEAI_FACE_NUMBER_RETURN_TOOLTIP="",LF.MPYTHONS_FACEAI_FACE_EXPRESSION_RETURN_HELPURL="",LF.MPYTHONS_FACEAI_FACE_EXPRESSION_RETURN_MESSAGE0="表情数量",LF.MPYTHONS_FACEAI_FACE_EXPRESSION_RETURN_TOOLTIP="",LF.MPYTHONS_FACEAI_FACE_RECOGNITION_VEDIO_RETURN_HELPURL="",LF.MPYTHONS_FACEAI_FACE_RECOGNITION_VEDIO_RETURN_MESSAGE0="人脸实时检测 %1",LF.MPYTHONS_FACEAI_FACE_RECOGNITION_VEDIO_RETURN_TOOLTIP="Esc退出拍摄",LF.MPYTHONS_FACEAI_FACE_IMG_RESULT_HELPURL="",LF.MPYTHONS_FACEAI_FACE_IMG_RESULT_MESSAGE0="显示图片",LF.MPYTHONS_FACEAI_FACE_IMG_RESULT_TOOLTIP="",LF.MPYTHONS_FACEAI_CHOOSE_FACE_DATABASE_HELPURL="",LF.MPYTHONS_FACEAI_CHOOSE_FACE_DATABASE_MESSAGE0="选择人脸库%1",LF.MPYTHONS_FACEAI_CHOOSE_FACE_DATABASE_TOOLTIP="",LF.MPYTHONS_FACEAI_FACE_SHOOT_RESULT_HELPURL="",LF.MPYTHONS_FACEAI_FACE_SHOOT_RESULT_MESSAGE0="拍照 进行人脸检测 %1",LF.MPYTHONS_FACEAI_FACE_SHOOT_RESULT_TOOLTIP="按S建拍摄,Esc退出拍摄",LF.MPYTHONS_WORD_CLOUD_INITIALIZE_HELPURL="",LF.MPYTHONS_WORD_CLOUD_INITIALIZE_MESSAGE0="初始化 文章聚类",LF.MPYTHONS_WORD_CLOUD_INITIALIZE_TOOLTIP="",LF.MPYTHONS_WORD_CLOUD_TITLE_HELPURL="文章数量不超过100",LF.MPYTHONS_WORD_CLOUD_TITLE_MESSAGE0="标题 第%1文章",LF.MPYTHONS_WORD_CLOUD_TITLE_TOOLTIP="",LF.MPYTHONS_WORD_CLOUD_CONTENT_HELPURL="文章数量不超过100",LF.MPYTHONS_WORD_CLOUD_CONTENT_MESSAGE0="内容 第%1文章",LF.MPYTHONS_WORD_CLOUD_CONTENT_TOOLTIP="",LF.MPYTHONS_WORD_CLOUD_JIEBA_HELPURL="文章数量不超过100",LF.MPYTHONS_WORD_CLOUD_JIEBA_MESSAGE0="文章内容转为列表 第%1文章",LF.MPYTHONS_WORD_CLOUD_JIEBA_TOOLTIP="",LF.MPYTHONS_WORD_CLOUD_STOPWORD_HELPURL="",LF.MPYTHONS_WORD_CLOUD_STOPWORD_MESSAGE0="读取停词表 排序前%1",LF.MPYTHONS_WORD_CLOUD_STOPWORD_TOOLTIP="返回的是100篇文章里的符号",LF.MPYTHONS_WORD_CLOUD_DELETE_AFTER_NEWS_HELPURL="",LF.MPYTHONS_WORD_CLOUD_DELETE_AFTER_NEWS_MESSAGE0="删除后的新闻",LF.MPYTHONS_WORD_CLOUD_DELETE_AFTER_NEWS_TOOLTIP="",LF.MPYTHONS_WORD_CLOUD_THESAURUS_CONSTRUCTION_DATA_HELPURL="",LF.MPYTHONS_WORD_CLOUD_THESAURUS_CONSTRUCTION_DATA_MESSAGE0="构造词云所用的数据",LF.MPYTHONS_WORD_CLOUD_THESAURUS_CONSTRUCTION_DATA_TOOLTIP="",LF.MPYTHONS_WORD_CLOUD_COUNT_RANK_HELPURL="",LF.MPYTHONS_WORD_CLOUD_COUNT_RANK_MESSAGE0="读取词汇表 排序前%1",LF.MPYTHONS_WORD_CLOUD_COUNT_RANK_TOOLTIP="返回的是100篇文章里的文本",LF.MPYTHONS_WORD_CLOUD_SAVE_PICTURE_HELPURL="",LF.MPYTHONS_WORD_CLOUD_SAVE_PICTURE_MESSAGE0="文章聚类训练结果 保存为图片",LF.MPYTHONS_WORD_CLOUD_SAVE_PICTURE_TOOLTIP="",LF.MPYTHONS_WORD_CLOUD_DISPLAY_PICTURE_HELPURL="",LF.MPYTHONS_WORD_CLOUD_DISPLAY_PICTURE_MESSAGE0="显示图片",LF.MPYTHONS_WORD_CLOUD_DISPLAY_PICTURE_TOOLTIP="",LF.FIRST="第一次",LF.LAST="最后一次",LF.MPYTHON_USOCKET_BLOCK="阻塞",LF.MPYTHON_USOCKET_UNBLOCK="非阻塞",LF.MPYTHON_USOCKET_SETSOCKOPT_HELPURL="https://mpython.readthedocs.io/zh/master/library/pythonStd/usocket.html#usocket.socket",LF.MPYTHON_USOCKET_SETSOCKOPT_MESSAGE0="设置socket %1 地址 %2 类型 %3",LF.MPYTHON_USOCKET_SETSOCKOPT_TOOLTIP="设置给定套接字选项的值。所需的符号常量在套接字模块中定义(SO_ *等)。该值可以是整数或表示缓冲区的类字节对象。",LF.MPYTHON_USOCKET_READLINE_HELPURL="https://mpython.readthedocs.io/zh/master/library/pythonStd/usocket.html#usocket.socket.accept",LF.MPYTHON_USOCKET_READLINE_MESSAGE0="socket %1 接收一行数据,遇换行符结束并返回接收数据的对象",LF.MPYTHON_USOCKET_READLINE_TOOLTIP=" 接收一行数据,遇换行符结束,并返回接收数据的对象",LF.MPYTHON_USOCKET_SETBLOCKING_HELPURL="https://mpython.readthedocs.io/zh/master/library/pythonStd/usocket.html#usocket.socket.setblocking",LF.MPYTHON_USOCKET_SETBLOCKING_MESSAGE0="设 socket %1 为 %2 模式",LF.MPYTHON_USOCKET_SETBLOCKING_TOOLTIP="",LF.MPYTHON_USOCKET_READ_HELPURL="https://mpython.readthedocs.io/zh/master/library/pythonStd/usocket.html#usocket.socket.read",LF.MPYTHON_USOCKET_READ_MESSAGE0="从socket %1 读取 %2 字节并返回字节对象",LF.MPYTHON_USOCKET_READ_TOOLTIP="若未给定读取数量 ,则按照类似 socket.readall() 的模式运行",LF.MPYTHON_ESC_HELPURL="https://mpython.readthedocs.io/zh/master/library/pythonStd/usocket.html#usocket.socket.setblocking",LF.MPYTHON_ESC_MESSAGE0="设 socket %1 为 %2 模式",LF.MPYTHON_ESC_TOOLTIP="",LF.MPYTHON_USOCKET_SETTIMEOUT_HELPURL="https://mpython.readthedocs.io/zh/master/library/pythonStd/usocket.html#usocket.socket.settimeout",LF.MPYTHON_USOCKET_SETTIMEOUT_MESSAGE0="socket %1 设超时时间 %2 秒",LF.MPYTHON_USOCKET_SETTIMEOUT_TOOLTIP="",LF.MPYTHON_USOCKET_SENDALL_HELPURL="https://mpython.readthedocs.io/zh/master/library/pythonStd/usocket.html#usocket.socket.send",LF.MPYTHON_USOCKET_SENDALL_MESSAGE0="socket %1 连续发送 %2 并返回发送的字节数",LF.MPYTHON_USOCKET_SENDALL_TOOLTIP="将所有数据发送到套接字。套接字必须连接到远程套接字。与 send() 此不同,此方法将尝试通过连续发送数据块来发送所有数据。",LF.MPYTHON_USOCKET_SENDS_HELPURL="https://mpython.readthedocs.io/zh/master/library/pythonStd/usocket.html#usocket.socket.send",LF.MPYTHON_USOCKET_SENDS_MESSAGE0="socket %1 发送 %2 并返回发送的字节数",LF.MPYTHON_USOCKET_SENDS_TOOLTIP='将数据发送到套接字。套接字必须连接到远程套接字。返回发送的字节数,可能小于数据长度 ("short write")。',LF.MPYTHON_USOCKET_SEND_HELPURL="https://mpython.readthedocs.io/zh/master/library/pythonStd/usocket.html#usocket.socket.send",LF.MPYTHON_USOCKET_SEND_MESSAGE0="socket %1 发送 %2 并返回发送的字节数",LF.MPYTHON_USOCKET_SEND_TOOLTIP="Send data to the socket. The socket must be connected to a remote socket. Returns number of bytes sent, which may be smaller than the length of data (“short write”).",LF.MPYTHON_USOCKET_SENDTO_HELPURL="https://mpython.readthedocs.io/zh/master/library/pythonStd/usocket.html#usocket.socket.sendto",LF.MPYTHON_USOCKET_SENDTO_MESSAGE0="socket %1 发送 %2 到地址 %3",LF.MPYTHON_USOCKET_SENDTO_TOOLTIP="Send data to the socket. The socket should not be connected to a remote socket, since the destination socket is specified by address.",LF.MPYTHON_USOCKET_RECV_HELPURL="https://mpython.readthedocs.io/zh/master/library/pythonStd/usocket.html#usocket.socket.recv",LF.MPYTHON_USOCKET_RECV_MESSAGE0="socket %1 接收并返回接收到的数据对象 最大数据量为 %2",LF.MPYTHON_USOCKET_RECV_TOOLTIP="",LF.MPYTHON_TEXT_ESC_HELPURL="",LF.MPYTHON_TEXT_ESC_MESSAGE0="文本转义字符 %1",LF.MPYTHON_TEXT_ESC_TOOLTIP="文本转义字符",LF.MPYTHON_USOCKET_RECVFROM_HELPURL="https://mpython.readthedocs.io/zh/master/library/pythonStd/usocket.html#usocket.socket.recvfrom",LF.MPYTHON_USOCKET_RECVFROM_MESSAGE0="socket %1 接收并返回接收到的数据元组 最大数据量为 %2",LF.MPYTHON_USOCKET_RECVFROM_TOOLTIP="元组格式 (bytes, address)",LF.MPYTHON_USOCKET_CONNECT_HELPURL="https://mpython.readthedocs.io/zh/master/library/pythonStd/usocket.html#usocket.socket.connect",LF.MPYTHON_USOCKET_CONNECT_MESSAGE0="socket %1 连接 host %2 端口 %3",LF.MPYTHON_USOCKET_CONNECT_TOOLTIP="",LF.MPYTHON_USOCKET_GETADDRINFO_HELPURL="https://mpython.readthedocs.io/zh/master/library/pythonStd/usocket.html#usocket.getaddrinfo",LF.MPYTHON_USOCKET_GETADDRINFO_MESSAGE0="解析 host %1 端口 %2 并返回 ip",LF.MPYTHON_USOCKET_GETADDRINFO_TOOLTIP="需联网",LF.MPYTHON_USOCKET_ACCEPT_HELPURL="https://mpython.readthedocs.io/zh/master/library/pythonStd/usocket.html#usocket.socket.accept",LF.MPYTHON_USOCKET_ACCEPT_MESSAGE0="socket %1 接收连接请求并返回socket元组",LF.MPYTHON_USOCKET_ACCEPT_TOOLTIP="接收连接请求。socket需要指定地址并监听连接。返回值是 (conn, address)。\nconn:新的socket对象,可以用来收发消息\naddress:连接到服务器的客户端地址",LF.MPYTHON_USOCKET_LISTEN_HELPURL="https://mpython.readthedocs.io/zh/master/library/pythonStd/usocket.html#usocket.socket.listen",LF.MPYTHON_USOCKET_LISTEN_MESSAGE0="监听socket %1 backlog个数 %2",LF.MPYTHON_USOCKET_LISTEN_TOOLTIP="backlog :接受套接字的最大个数,至少为0,如果没有指定,则默认一个合理值。",LF.MPYTHON_USOCKET_BIND_HELPURL="https://mpython.readthedocs.io/zh/master/library/pythonStd/usocket.html#usocket.socket.bind",LF.MPYTHON_USOCKET_BIND_MESSAGE0="socket %1 绑定地址 %2 端口 %3",LF.MPYTHON_USOCKET_BIND_TOOLTIP="",LF.MPYTHON_USOCKET_CLOSE_HELPURL="https://mpython.readthedocs.io/zh/master/library/pythonStd/usocket.html#usocket.socket.close",LF.MPYTHON_USOCKET_CLOSE_MESSAGE0="socket %1 关闭",LF.MPYTHON_USOCKET_CLOSE_TOOLTIP="",LF.MPYTHON_USOCKET_INIT_HELPURL="https://mpython.readthedocs.io/zh/master/library/pythonStd/usocket.html#usocket.socket",LF.MPYTHON_USOCKET_INIT_MESSAGE0="创建 socket %1 地址 %2 类型 %3",LF.MPYTHON_USOCKET_INIT_TOOLTIP="AF_INET:=2 — TCP/IP – IPv4\nAF_INET6 :=10 — TCP/IP – IPv6\nSOCK_STREAM:=1 — TCP流\nSOCK_DGRAM:=2 — UDP数据报\nSOCK_RAW :=3 — 原始套接字\nSO_REUSEADDR : =4 — socket可重用\n",LF.MPYTHON_GET_POST_HELPURL="",LF.MPYTHON_GET_POST_MESSAGE0="%1 请求网址 %2 提交字段 %3",LF.MPYTHON_GET_POST_TOOLTIP="",LF.MPYTHON_UREQUESTS_GET_POST_HELPURL="",LF.MPYTHON_UREQUESTS_GET_POST_TOOLTIP="",LF.MPYTHON_UREQUESTS_GET_POST_MESSAGE0="%1 请求网址 %2 提交字段 %3",LF.MPYTHON_UREQUESTS_POST_FILE_HELPURL="",LF.MPYTHON_UREQUESTS_POST_FILE_TOOLTIP="",LF.MPYTHON_UREQUESTS_POST_FILE_MESSAGE0="Post 提交文件 %1 请求网址 %2 文件路径 %3 Mime类型 %4 附加字段 %5",LF.MPYTHON_RESPONSE_HELPURL="",LF.MPYTHON_RESPONSE_MESSAGE0="响应内容 形式 %1",LF.MPYTHON_RESPONSE_TOOLTIP="",LF.STRING="字符串",LF._BYTE="二进制",LF.BYTES="字节",LF.TEXT="文本",LF.MPYTHON_RESPONSE_ATTRIBUTE_HELPURL="",LF.MPYTHON_RESPONSE_ATTRIBUTE_MESSAGE0="响应属性 %1",LF.MPYTHON_RESPONSE_ATTRIBUTE_TOOLTIP="",LF.MPYTHON_SETS_PIN_MODE_HELPURL="https://mpython.readthedocs.io/zh/master/board/hardware.html#mpythonpindesc",LF.MPYTHON_SETS_PIN_MODE_TOOLTIP="右键帮助,查看引脚声明",LF.MPYTHON_SETS_PIN_MODE_MESSAGE0="设置引脚 %1 为 %2 模式 %3 并设置值为 %4",LF.MPYTHON_SET_PIN_IN="输入",LF.MPYTHON_SET_PIN_PUSH_PULL_OUT="推挽输出",LF.MPYTHON_SET_PIN_LEAKY_OUT="开漏输出",LF.MPYTHON_SET_PIN_NO_PULL="无上下拉",LF.MPYTHON_SET_PIN_DOWN_PULL="下拉",LF.MPYTHON_SET_PIN_UP_PULL="上拉",LF.MPYTHON_LOCK_OBJECT_ACQUIRE_LOCK_HELPURL="",LF.MPYTHON_LOCK_OBJECT_ACQUIRE_LOCK_MESSAGE0="线程锁对象 %1 请求锁",LF.MPYTHON_LOCK_OBJECT_ACQUIRE_LOCK_TOOLTIP="",LF.MPYTHON_START_NEW_THREAD_HELPURL="",LF.MPYTHON_START_NEW_THREAD_MESSAGE0="子线程 %1",LF.MPYTHON_START_NEW_THREAD_TOOLTIP="",LF.MPYTHON_UART_INIT_HELPURL="",LF.MPYTHON_UART_INIT_MESSAGE0="串口 %4 初始化 波特率 %1 tx %2 rx %3",LF.MPYTHON_UART_INIT_TOOLTIP="掌控板支持3组串口。0用于REPL,剩下1、2两组串口可用。所有引脚均可以作为串口的输入RX,除 P2、P3 、P4 、P10 只能作为输入,其余所有的引脚理论上都可以作为输出TX。",LF.MPYTHON_UART_DEINIT_HELPURL="",LF.MPYTHON_UART_DEINIT_MESSAGE0="关闭串口 %1",LF.MPYTHON_UART_DEINIT_TOOLTIP="关闭 UART 总线",LF.MPYTHON_UART_WRITE_STR_HELPURL="",LF.MPYTHON_UART_WRITE_STR_MESSAGE0="串口 %1 写入文本 %2 %3",LF.MPYTHON_UART_WRITE_STR_TOOLTIP="将文本写入总线。\n返回值:写入或 None 超时的字节数。",LF.MPYTHON_UART_WRITE_HEX_HELPURL="",LF.MPYTHON_UART_WRITE_HEX_MESSAGE0="串口 %1 发送16进制字符串 %2 %3",LF.MPYTHON_UART_WRITE_HEX_TOOLTIP="",LF.MPYTHON_UART_HAS_DATA_HELPURL="",LF.MPYTHON_UART_HAS_DATA_MESSAGE0="串口 %1 有可读数据",LF.MPYTHON_UART_HAS_DATA_TOOLTIP="返回一个整数,计算可以无阻塞地读取的字符数。\n如果没有可用字符,它将返回0,如果有字符,则返回正数。\n即使有多个可读的字符,该方法也可以返回1。",LF.MPYTHON_UART_READLINE_HELPURL="",LF.MPYTHON_UART_READLINE_MESSAGE0="串口 %1 读取一行数据",LF.MPYTHON_UART_READLINE_TOOLTIP="读一行,以换行符结尾。\n返回值:读取行或 None 超时。",LF.MPYTHON_UART_READ_HELPURL="",LF.MPYTHON_UART_READ_MESSAGE0="串口 %1 读取数据",LF.MPYTHON_UART_READ_TOOLTIP="读取尽可能多的串口数据\n返回值:包含读入字节的字节列表。若读取超时则返回 None。",LF.MPYTHON_UART_READ_LENGTH_HELPURL="",LF.MPYTHON_UART_READ_LENGTH_MESSAGE0="串口 %1 读取数据 长度 %2",LF.MPYTHON_UART_READ_LENGTH_TOOLTIP="读取指定长度字节数据\n返回值:包含读入字节的字节列表。若读取超时则返回 None。",LF.MPYTHON_UART_WRITE_BYTE_HELPURL="",LF.MPYTHON_UART_WRITE_BYTE_MESSAGE0="串口 %1 写入单字节 %2",LF.MPYTHON_UART_WRITE_BYTE_TOOLTIP="参数取值为 0~255 整数\n将字节写入总线。\n返回值:写入或 None 超时的字节数。",LF.MPYTHON_UART_WRITE_BYTES_HELPURL="",LF.MPYTHON_UART_WRITE_BYTES_MESSAGE0="串口 %1 写入字节数组 %2",LF.MPYTHON_UART_WRITE_BYTES_TOOLTIP="将字节数组写入总线。\n返回值:写入或 None 超时的字节数。",LF.MPYTHON_BAUDRATE_HELPURL="",LF.MPYTHON_BAUDRATE_MESSAGE0="%1",LF.MPYTHON_BAUDRATE_TOOLTIP="",LF.MPYTHON_HIGH_LOW_HELPURL="",LF.MPYTHON_HIGH_LOW_MESSAGE0="%1",LF.MPYTHON_HIGH_LOW_TOOLTIP="",LF.MPYTHON_TEN_CONVERT_TO_HELPURL="",LF.MPYTHON_TEN_CONVERT_TO_MESSAGE0="10进制整数 %1 转化为 %2 字符串",LF.MPYTHON_TEN_CONVERT_TO_TOOLTIP="",LF.MPYTHON_BIN="二进制",LF.MPYTHON_OCT="八进制",LF.MPYTHON_HEX="十六进制",LF.MPYTHON_CONVERT_TO_TEN_HELPURL="",LF.MPYTHON_CONVERT_TO_TEN_MESSAGE0="%1 字符串 %2 转 10进制整数",LF.MPYTHON_CONVERT_TO_TEN_TOOLTIP="",LF.MPYTHON_TEN_CONVERTED_TO_BYTES_HELPURL="",LF.MPYTHON_TEN_CONVERTED_TO_BYTES_MESSAGE0="10进制整数 %2 转 %1 字节",LF.MPYTHON_TEN_CONVERTED_TO_BYTES_TOOLTIP="",LF.MPYTHON_INT_TO_CHR_HELPURL="",LF.MPYTHON_INT_TO_CHR_MESSAGE0="整型 %1 转 ASCII 单字符",LF.MPYTHON_INT_TO_CHR_TOOLTIP="ASCII:基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。",LF.MPYTHON_CHR_TO_INT_HELPURL="",LF.MPYTHON_CHR_TO_INT_MESSAGE0="ASCII 单字符 %1 转 整型",LF.MPYTHON_CHR_TO_INT_TOOLTIP="ASCII是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。",LF.MPYTHON_STR_TO_HEX_HELPURL="",LF.MPYTHON_STR_TO_HEX_MESSAGE0="字符串 %1 转 十六进制 字节",LF.MPYTHON_STR_TO_HEX_TOOLTIP="返回结果中用空格分隔两个十六进制数",LF.MPYTHON_HEX_TO_BIN_STR_HELPURL="",LF.MPYTHON_HEX_TO_BIN_STR_MESSAGE0="十六进制字符串 %1 转 二进制 字节",LF.MPYTHON_HEX_TO_BIN_STR_TOOLTIP="",LF.MPYTHON_DATA_TO_BASE64_HELPURL="",LF.MPYTHON_DATA_TO_BASE64_MESSAGE0="%1 以 base64 格式编码 返回字节对象",LF.MPYTHON_DATA_TO_BASE64_TOOLTIP="Base64编码是从二进制到字符的过程",LF.MPYTHON_BASE64_TO_DATA_HELPURL="",LF.MPYTHON_BASE64_TO_DATA_MESSAGE0="解码 base64 数据 %1 返回字节对象",LF.MPYTHON_BASE64_TO_DATA_TOOLTIP="Base64编码是从二进制到字符的过程",LF.MPYTHON_UJSON_DUMPS_HELPURL="",LF.MPYTHON_UJSON_DUMPS_MESSAGE0="%1 转 json 字符串",LF.MPYTHON_UJSON_DUMPS_TOOLTIP="JSON 格式的 key 必须是字符串,value 可以是合法的 JSON 数据类型(字符串, 数字, 对象, 数组, 布尔值或 none)",LF.MPYTHON_UJSON_LOADS_HELPURL="",LF.MPYTHON_UJSON_LOADS_MESSAGE0="解析 json 字符串 %1 返回对象",LF.MPYTHON_UJSON_LOADS_TOOLTIP="JSON 格式的 key 必须是字符串,value 可以是合法的 JSON 数据类型(字符串, 数字, 对象, 数组, 布尔值或 none)",LF.MPYTHON_CUSTOM_CODE_HELPURL="",LF.MPYTHON_CUSTOM_CODE_TOOLTIP="",LF.MPYTHON_CUSTOM_CODE_MESSAGE0="%1 自定义代码 %2 %3",LF.MPYTHON_CUSTOM_TYPE_IMPORT="置顶",LF.MPYTHON_CUSTOM_TYPE_NORMAL="普通",LF.MPYTHON_CUSTOM_VALUE_MESSAGE0="自定义返回值 %1",LF.MPYTHON_BLYNK_TERMINAL_WIDGET_VPIN_HELPURL="",LF.MPYTHON_BLYNK_TERMINAL_WIDGET_VPIN_MESSAGE0="自定义终端部件 Terminal 虚拟管脚 V %1",LF.MPYTHON_BLYNK_TERMINAL_WIDGET_VPIN_TOOLTIP="",LF.MPYTHON_BLYNK_SYNC_VIRTUAL_HELPURL="",LF.MPYTHON_BLYNK_SYNC_VIRTUAL_MESSAGE0="同步虚拟管脚的状态 V %1",LF.MPYTHON_BLYNK_SYNC_VIRTUAL_TOOLTIP="",LF.MPYTHON_BLYNK_ON_DISCONNECTED_HELPURL="",LF.MPYTHON_BLYNK_ON_DISCONNECTED_MESSAGE0="当 Blynk 断开连接时",LF.MPYTHON_BLYNK_ON_DISCONNECTED_TOOLTIP="",LF.MPYTHON_BLYNK_ON_CONNECTED_HELPURL="",LF.MPYTHON_BLYNK_ON_CONNECTED_MESSAGE0="当 Blynk 连接时",LF.MPYTHON_BLYNK_ON_CONNECTED_TOOLTIP="",LF.MPYTHON_BLYNKTIMER_RUN_HELPURL="",LF.MPYTHON_BLYNKTIMER_RUN_MESSAGE0="运行 Blynk 定时器进程",LF.MPYTHON_BLYNKTIMER_RUN_TOOLTIP="建议放在 '一直重复' 中循环执行",LF.MPYTHON_BLYNK_GET_TIMERS_HELPURL="",LF.MPYTHON_BLYNK_GET_TIMERS_MESSAGE0="可用的 Blynk 定时器",LF.MPYTHON_BLYNK_GET_TIMERS_TOOLTIP="",LF.MPYTHON_BLYNK_STOP_TIMERS_HELPURL="",LF.MPYTHON_BLYNK_STOP_TIMERS_MESSAGE0="停止 Blynk 定时器 %1",LF.MPYTHON_BLYNK_STOP_TIMERS_TOOLTIP='注意:\n定时器序号为自动获取,自上而下,从0开始且连续,不可"定时器0,定时器2",此处暴露序号参数为方便查看!\n参数:\nno_timers_err=False-如果所有计时器都停止,禁用异常触发',LF.MPYTHON_UART_INPUT_HELPURL="",LF.MPYTHON_UART_INPUT_MESSAGE0="从串口获取文本 提示语句 %1",LF.MPYTHON_UART_INPUT_TOOLTIP="",LF.MPYTHON_BLYNK_SET_PROPERTY_HELPURL="",LF.MPYTHON_BLYNK_SET_PROPERTY_MESSAGE0="给虚拟管脚添加 属性 %1 值 %2",LF.MPYTHON_BLYNK_SET_PROPERTY_TOOLTIP="放于 read 或 write 事件中,虚拟管脚由事件决定,与该管脚绑定的组件会拥有添加的属性",LF.MPYTHON_BLYNK_EMAIL_HELPURL="",LF.MPYTHON_BLYNK_EMAIL_MESSAGE0="向预设邮箱发邮件 %1 主题 %2 正文 %3",LF.MPYTHON_BLYNK_EMAIL_TOOLTIP="",LF.MPYTHON_BLYNK_RUN_HELPURL="",LF.MPYTHON_BLYNK_RUN_MESSAGE0="运行 Blynk 进程",LF.MPYTHON_BLYNK_RUN_TOOLTIP="建议放在 '一直重复' 中循环执行",LF.MPYTHON_BLYNK_APP_NOTIFY_HELPURL="",LF.MPYTHON_BLYNK_APP_NOTIFY_MESSAGE0="Blynk APP 显示通知 %1",LF.MPYTHON_BLYNK_APP_NOTIFY_TOOLTIP="",LF.MPYTHON_BLYNKTIMER_HELPURL="",LF.MPYTHON_BLYNKTIMER_MESSAGE0="Blynk 定时器 %1 %2 周期 %3 秒",LF.MPYTHON_BLYNKTIMER_TOOLTIP='注意:\n定时器序号为自动获取,自上而下,从0开始且连续,不可"定时器0,定时器2",此处暴露序号参数为方便查看!\n参数:\nno_timers_err=False-如果所有计时器都停止,禁用异常触发',LF.MPYTHON_BLYNK_SENSOR_DATA_TO_APP_HELPURL="",LF.MPYTHON_BLYNK_SENSOR_DATA_TO_APP_MESSAGE0="发送数据 %1 到 Blynk APP 的 虚拟管脚 V %2",LF.MPYTHON_BLYNK_SENSOR_DATA_TO_APP_TOOLTIP="虚拟管脚:V0 ~ V255",LF.MPYTHON_BLYNK_SETUP_HELPURL="",LF.MPYTHON_BLYNK_SETUP_MESSAGE0="Blynk 设置 %1 服务器 %2 端口 %3 授权码 %4",LF.MPYTHON_BLYNK_SETUP_TOOLTIP="服务器可填 blynk-cloud.com(官网) 或者 blynk.mpython.cn(国内)\n默认端口为 8080\n注意:手机APP访问端口为 9443",LF.MPYTHON_BLYNK_APP_DATA_HELPURL="",LF.MPYTHON_BLYNK_APP_DATA_MESSAGE0="当 从 Blynk APP 收到 虚拟管脚 V %1 的值 %2",LF.MPYTHON_BLYNK_APP_DATA_TOOLTIP="虚拟管脚:V0 ~ V255",LF.MPYTHON_BLYNK_RECEIVED_MESSAGE0="当 收到 Blynk 虚拟管脚 V %1 的值",LF.MPYTHON_BLYNK_VALUE_MESSAGE0="从 Blynk 收到的值",LF.MPYTHON_BLYNK_VALUE_TOOLTIP="",LF.MPYTHON_BLYNK_VALUE_HELPURL="",LF.MPYTHON_ONENET_DISCONNECT_MESSAGE0="OneNET 断开连接",LF.MPYTHON_ONENET_DISCONNECT_TOOLTIP="",LF.MPYTHON_ONENET_DISCONNECT_HELPURL="",LF.MPYTHON_ONENET_MSG_MESSAGE0="从 OneNET 收到的消息",LF.MPYTHON_ONENET_MSG_TOOLTIP="",LF.MPYTHON_ONENET_MSG_HELPURL="",LF.MPYTHON_ONENET_RECV_MESSAGE0="当 从 OneNET 收到消息 %1 时",LF.MPYTHON3_ONENET_RECV_MESSAGE0="当 从 OneNET 收到消息 时",LF.MPYTHON_ONENET_RECV_TOOLTIP="",LF.MPYTHON_ONENET_RECV_HELPURL="",LF.MPYTHON_ONENET_RECV_MSG_MESSAGE0="当 从 OneNET 收到特定消息 %1 时",LF.MPYTHON_ONENET_RECV_MSG_TOOLTIP="",LF.MPYTHON_ONENET_RECV_MSG_HELPURL="",LF.MPYTHON_ONENET_PUB_VALUE_MESSAGE0="向 OneNET 发送数据流 名称 %1 值 %2",LF.MPYTHON_ONENET_PUB_VALUE_TOOLTIP="",LF.MPYTHON_ONENET_PUB_VALUE_HELPURL="",LF.MPYTHON_ONENET_PUB_DICT_MESSAGE0="向 OneNET 发送数据流 %1",LF.MPYTHON_ONENET_PUB_DICT_TOOLTIP="",LF.MPYTHON_ONENET_PUB_DICT_HELPURL="",LF.MPYTHON_ONENET_PUB_VALUE2_MESSAGE0="向 小程序 发送数据流 名称 %1 值 %2",LF.MPYTHON_ONENET_PUB_VALUE2_TOOLTIP="",LF.MPYTHON_ONENET_PUB_VALUE2_HELPURL="",LF.INT_TO_CHR_HELPURL="",LF.INT_TO_CHR_MESSAGE0="整数 %1 转 ASCII 单字符",LF.INT_TO_CHR_TOOLTIP="",LF.MPYTHON_ONENET_ACCEPT_MESSAGE="收到消息",LF.MPYTHON_ONENET="OneNET 设置",LF.MPYTHON_ONENET_WECHAT_APP="小程序 设置",LF.MPYTHON_ONENET_OPTION_BOARDS="可选掌控板",LF.MPYTHON_ONENET_TITLE="OneNET",LF.MPYTHON_SERVER="服务器",LF.MPYTHON_DEVICE_ID="设备ID",LF.MPYTHON_PRODUCT_ID="产品ID",LF.MPYTHON_API_KEY="产品APIKey",LF.MPYTHON_ONENET_CALLBACK="回调函数",LF.MPYTHON_TOPIC="主题",LF.MPYTHON_ONENET_CALLBACK_TITLE="OneNET回调函数",LF.MPYTHON_ONENET_OPTION_BOARDS_HELPURL="",LF.MPYTHON_ONENET_OPTION_BOARDS_MESSAGE0="小程序 选择掌控板应用 %1",LF.MPYTHON_ONENET_OPTION_BOARDS_TOOLTIP="",LF.MPYTHON_HCSR04_DISTANCE_HELPURL="https://mpython-lib.readthedocs.io/zh/master/hcsr04/index.html#hcsr04",LF.MPYTHON_HCSR04_DISTANCE_MESSAGE0="%1 hcsr04 超声波距离 测量单位 %2",LF.MPYTHON_HCSR04_DISTANCE_TOOLTIP="",LF.MPYTHON_HCSR04_DISTANCE_MM_HELPURL="https://mpython-lib.readthedocs.io/zh/master/hcsr04/index.html#hcsr04",LF.MPYTHON_HCSR04_DISTANCE_MM_MESSAGE0="%1 hcsr04 超声波(mm)",LF.MPYTHON_HCSR04_DISTANCE_MM_TOOLTIP="",LF.MPYTHON_HCSR04_OBJ_HELPURL="https://mpython-lib.readthedocs.io/zh/master/hcsr04/index.html#hcsr04",LF.MPYTHON_HCSR04_OBJ_MESSAGE0="hcsr04 超声波初始化 名称 %1 trigger %2 echo %3",LF.MPYTHON_HCSR04_OBJ_TOOLTIP="",LF.MPYTHON_PM2_5_MIC_HELPURL="",LF.MPYTHON_PM2_5_MIC_MESSAGE0="rx引脚%1 PM值浓度%2",LF.MPYTHON_PM2_5_MIC_TOOLTIP="",LF.MPYTHON_PM2_5_LitresAir_HELPURL="",LF.MPYTHON_PM2_5_LitresAir_MESSAGE0="rx引脚%1 0.1升空气中直径在%2 颗粒物个数",LF.MPYTHON_PM2_5_LitresAir_TOOLTIP="",LF.MPYTHON3_IR_REMOTE_RECV_MESSAGE0="当 红外接收端 %1 收到消息时 %2 执行 %3",LF.MPYTHON_IR_REMOTE_ADDRESS_MESSAGE0="红外回调地址",LF.MPYTHON_IR_REMOTE_MESSAGE_MESSAGE0="红外接收内容",LF.MPYTHON_IR_REMOTE_RECV_MESSAGE0="红外接收 %1 回调地址 %2 回调命令 %3",LF.MPYTHON_IR_REMOTE_RECV_HELPURL="",LF.MPYTHON_IR_REMOTE_RECV_TOOLTIP="",LF.MPYTHON_IR_REMOTE_SEND_MESSAGE0="红外发送 %1 地址 %2 命令 %3",LF.MPYTHON_IR_REMOTE_SEND_HELPURL="",LF.MPYTHON_IR_REMOTE_SEND_TOOLTIP="",LF.TEXT_FORMAT_MESSAGE0="格式化字符串 %1 % %2",LF.TEXT_FORMAT_TOOLTIP="",LF.TEXT_FORMAT_HELPURL="",LF.TEXT_FORMAT2_MESSAGE0="格式化字符串 %1 format %2",LF.TEXT_FORMAT2_TOOLTIP="",LF.TEXT_FORMAT2_HELPURL="",LF.TEXT_TO_BYTE_MESSAGE0="转字节 %1",LF.TEXT_TO_BYTE_TOOLTIP="支持数据类型:string",LF.TEXT_TO_BYTE_HELPURL="",LF.MPYTHON_BYTES_DECODE_HELPURL="",LF.MPYTHON_BYTES_DECODE_MESSAGE0="字节 %1 转 字符串",LF.MPYTHON_BYTES_DECODE_TOOLTIP="",LF.OTHER_TO_BYTE_MESSAGE0="非文本转字节 %1",LF.OTHER_TO_BYTE_TOOLTIP="",LF.OTHER_TO_BYTE_HELPURL="",LF.MPYTHON_ONENET_TOOLTIP="创建OneNET连接",LF.MPYTHON_ONENET_INIT_WIFI_MESSAGE0="物联网 确保连接到 Wi-Fi 名称 %1 密码 %2",LF.MPYTHON_ONENET_INIT_WIFI_TOOLTIP="",LF.MPYTHON_ONENET_INIT_WIFI_HELPURL="",LF.MPYTHON_ONENET_RECV_FROM_WECHAT_APP_HELPURL="",LF.MPYTHON_ONENET_RECV_FROM_WECHAT_APP_MESSAGE0="当从小程序收到 %1 和 %2 时",LF.MPYTHON_ONENET_RECV_FROM_WECHAT_APP_TOOLTIP="",LF.MPYTHON_MAC_ADDRESS_HELPURL="",LF.MPYTHON_MAC_ADDRESS_MESSAGE0="MAC 地址",LF.MPYTHON_MAC_ADDRESS_TOOLTIP="",LF.MPYTHON_RADIO_REC_HELPURL="",LF.MPYTHON_RADIO_REC_MESSAGE0="无线广播 接收消息",LF.MPYTHON_RADIO_REC_TOOLTIP="所接收为字节型",LF.MPYTHON_RADIO_SEND_HELPURL="",LF.MPYTHON_RADIO_SEND_MESSAGE0="无线广播 发送 %1",LF.MPYTHON_RADIO_SEND_TOOLTIP="频道: 1~13",LF.MPYTHON_RADIO_CHANNEL_HELPURL="",LF.MPYTHON_RADIO_CHANNEL_MESSAGE0="设无线广播 频道为 %1",LF.MPYTHON_RADIO_CHANNEL_TOOLTIP="频道: 1~13",LF.MPYTHON_RADIO_ON_OFF_HELPURL="",LF.MPYTHON_RADIO_ON_OFF_MESSAGE0="%1 无线广播",LF.MPYTHON_RADIO_ON_OFF_TOOLTIP="频道: 1~13",LF.MPYTHON_RADIO_MSG_MESSAGE0="收到的无线广播消息",LF.MPYTHON_RADIO_MSG_TOOLTIP="",LF.MPYTHON_RADIO_MSG_HELPURL="",LF.MPYTHON3_RADIO_RECV_MESSAGE0="当 收到无线广播消息 时 %1 执行 %2",LF.MPYTHON_RADIO_RECV_MESSAGE0="当 收到无线广播消息 %1 时",LF.MPYTHON_RADIO_RECV_TOOLTIP="频道: 1~13",LF.MPYTHON_RADIO_RECV_HELPURL="",LF.MPYTHON_RADIO_RECV_MSG_MESSAGE0="当 收到特定无线广播消息 %1 时 %2 执行 %3",LF.MPYTHON_RADIO_RECV_MSG_TOOLTIP="频道: 1~13",LF.MPYTHON_RADIO_RECV_MSG_HELPURL="",LF.MPYTHON_UDP_INIT_HELPURL="",LF.MPYTHON_UDP_INIT_MESSAGE0="建立 UDP 连接",LF.MPYTHON_UDP_INIT_TOOLTIP="UDP连接基于Wi-Fi",LF.MPYTHON_UDP_SEND_HELPURL="",LF.MPYTHON_UDP_SEND_MESSAGE0="UDP 群发消息 %1",LF.MPYTHON_UDP_SEND_TOOLTIP="",LF.MPYTHON_UDP_SENDTO_HELPURL="",LF.MPYTHON_UDP_SENDTO_MESSAGE0="UDP 发送消息 %1 到 %2 端口 %3",LF.MPYTHON_UDP_SENDTO_TOOLTIP="",LF.MPYTHON_UDP_RECV_HELPURL="",LF.MPYTHON_UDP_RECV_MESSAGE0="UDP 接收消息",LF.MPYTHON_UDP_RECV_TOOLTIP="",LF.MPYTHON_UDP_RECV_EVENT_HELPURL="",LF.MPYTHON_UDP_RECV_EVENT_MESSAGE0="当从 UDP 收到消息时 %1 执行 %2",LF.MPYTHON_UDP_RECV_EVENT_TOOLTIP="",LF.MPYTHON_UDP_RECV_MSG_MESSAGE0="从 UDP 收到的消息",LF.MPYTHON_UDP_RECV_MSG_TOOLTIP="",LF.MPYTHON_UDP_RECV_MSG_HELPURL="",LF.MPYTHON_AUDIO_PLAY_chirp_MESSAGE0="鸟叫",LF.MPYTHON_AUDIO_PLAY_Pianodarkmelodies_MESSAGE0="钢琴黑暗旋律配乐",LF.MPYTHON_AUDIO_PLAY_miaow_MESSAGE0="猫叫",LF.MPYTHON_AUDIO_PLAY_bark_MESSAGE0="小狗吠叫",LF.MPYTHON_AUDIO_PLAY_Arichpercussivesound_MESSAGE0="浑厚的打击音",LF.MPYTHON_AUDIO_PLAY_Soundeffectsfortension_MESSAGE0="紧张效果的音效",LF.MPYTHON_AUDIO_PLAY_Camerashuttersound_MESSAGE0="拍照快门声",LF.MPYTHON_AUDIO_PLAY_Hundredsofflies_MESSAGE0="数百只苍蝇",LF.MPYTHON_AUDIO_PLAY_Cricketscry_MESSAGE0="蟋蟀叫声",LF.MPYTHON_AUDIO_PLAY_Shakethebassline_MESSAGE0="摇晃低音声线",LF.MPYTHON_AUDIO_PLAY_audiencecheeredandclapped_MESSAGE0="听众欢呼掌声",LF.MPYTHON_AUDIO_PLAY_Cruiseshipwhistle_MESSAGE0="邮轮汽笛",LF.MPYTHON_AUDIO_PLAY_Moderntelephoneringtone_MESSAGE0="现代电话铃声",LF.MPYTHON_AUDIO_PLAY_pullingtradish_MESSAGE0="拔萝卜",LF.MPYTHON_AUDIO_PLAY_twotigers_MESSAGE0="两只老虎",LF.MPYTHON_AUDIO_SET_VOLUME_HELPURL="",LF.MPYTHON_AUDIO_SET_VOLUME_MESSAGE0="设音频音量 %1",LF.MPYTHON_AUDIO_SET_VOLUME_TOOLTIP="",LF.MPYTHON_DISPCHAR_MODE_1="普通",LF.MPYTHON_DISPCHAR_MODE_2="反转",LF.MPYTHON_DISPCHAR_MODE_3="透明",LF.MPYTHON_AUDIO_XUNFEI_TTS_HELPURL="",LF.MPYTHON_AUDIO_XUNFEI_TTS_MESSAGE0="TTS 语音播放 %1",LF.MPYTHON_AUDIO_XUNFEI_TTS_TOOLTIP="需要在 讯飞开放平台 www.xfyun.cn 上开通“在线语音合成”服务",LF.MPYTHON_AUDIO_XUNFEI_TTS_CONFIG_HELPURL="https://mpython.readthedocs.io/zh/master/extboard/tutorials/tutorials_parrot.html#id3",LF.MPYTHON_AUDIO_XUNFEI_TTS_CONFIG_MESSAGE0="TTS 语音配置 APPID %1 APIKey %2",LF.MPYTHON_AUDIO_XUNFEI_TTS_CONFIG_TOOLTIP="输入在 讯飞开放平台 www.xfyun.cn 获取的 APPID 与 APIKey\n注意:要设置IP白名单",LF.MPYTHON_AUDIO_PLAY_HELPURL="https://mpython.readthedocs.io/zh/master/library/mPython/audio.html#id1",LF.MPYTHON_AUDIO_PLAY_MESSAGE0="音频 播放 %1",LF.MPYTHON_AUDIO_PLAY_TOOLTIP="需要有源音箱\nP8 左声道\nP9 右声道\nGND 接地\n播放参数: \n网络 MP3 的 url 或已上传至掌控板的 MP3, 如'music_1.mp3' ",LF.MPYTHON_AUDIO_PLAY_CHOOSE_HELPURL="https://mpython.readthedocs.io/zh/master/library/mPython/audio.html#id1",LF.MPYTHON_AUDIO_PLAY_CHOOSE_MESSAGE0="音频 播放 %1",LF.MPYTHON_AUDIO_PLAY_CHOOSE_TOOLTIP="需要有源音箱\nP8 左声道\nP9 右声道\nGND 接地\n播放参数: \n网络 MP3 的 url 或已上传至掌控板的 MP3, 如'music_1.mp3' ",LF.MPYTHON_AUDIO_DEINIT_HELPURL="",LF.MPYTHON_AUDIO_DEINIT_MESSAGE0="音频 释放缓存",LF.MPYTHON_AUDIO_DEINIT_TOOLTIP="",LF.MPYTHON_AUDIO_INIT_HELPURL="",LF.MPYTHON_AUDIO_INIT_MESSAGE0="音频 初始化",LF.MPYTHON_AUDIO_INIT_TOOLTIP="为音频解码开辟缓存",LF.MPYTHON_AUDIO_CMD_HELPURL="",LF.MPYTHON_AUDIO_CMD_MESSAGE0="音频 %1",LF.MPYTHON_AUDIO_CMD_TOOLTIP="",LF.MPYTHON_AUDIO_START_RECORDING_HELPURL="",LF.MPYTHON_AUDIO_START_RECORDING_MESSAGE0="开始录音 录音时长%1秒",LF.MPYTHON_AUDIO_START_RECORDING_TOOLTIP="需要掌控板v1.1以上硬件版本。录音时长不能超过5秒",LF.MPYTHON_AUDIO_RECORDING_RESULT_HELPURL="",LF.MPYTHON_AUDIO_RECORDING_RESULT_MESSAGE0="录音结果",LF.MPYTHON_AUDIO_RECORDING_RESULT_TOOLTIP="需要掌控板v1.1以上硬件版本。",LF.MPYTHON_AUDIO_DISCERN_RECORDING_HELPURL="",LF.MPYTHON_AUDIO_DISCERN_RECORDING_MESSAGE0="将 %1 进行识别",LF.MPYTHON_AUDIO_DISCERN_RECORDING_TOOLTIP="需要掌控板v1.1以上硬件版本。",LF.MPYTHON_AUDIO_DISCERN_RECORDING_RESULT_HELPURL="",LF.MPYTHON_AUDIO_DISCERN_RECORDING_RESULT_MESSAGE0="识别录音结果",LF.MPYTHON_AUDIO_DISCERN_RECORDING_RESULT_TOOLTIP="需要掌控板v1.1以上硬件版本。",LF.MPYTHON_RECORD_INIT_HELPURL="",LF.MPYTHON_RECORD_INIT_MESSAGE0="录音 初始化",LF.MPYTHON_RECORD_INIT_TOOLTIP="录音初始化。\n需要掌控板v1.1以上硬件版本。",LF.MPYTHON_RECORD_DEINIT_HELPURL="",LF.MPYTHON_RECORD_DEINIT_MESSAGE0="录音 释放资源",LF.MPYTHON_RECORD_DEINIT_TOOLTIP="录音结束后释放资源。\n需要掌控板v1.1以上硬件版本。",LF.MPYTHON_RECORD_WAV_HELPURL="",LF.MPYTHON_RECORD_WAV_MESSAGE0="录制音频 存储路径 %1 时长 %2 秒",LF.MPYTHON_RECORD_WAV_TOOLTIP="录制音频,并以 WAV 格式存储。\n需要掌控板v1.1以上硬件版本。",LF.MPYTHON_ASR_HELPURL="",LF.MPYTHON_ASR_MESSAGE0="识别 %1 秒语音指令",LF.MPYTHON_ASR_TOOLTIP="可以识别3秒内的语音指令。\n需要掌控板v1.1以上硬件版本。",LF.mpython_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",LF.mpython_button_A="P5(按键A)",LF.mpython_button_B="P11(按键B)",LF.mpython_PIN7_RGB="P7(板载RGB)",LF.MPYTHON_PWM_PIN_P7="P7 (掌控板)",LF.MPYTHON_PWM_PIN_P9="P9 (掌控实验箱)",LF.mpython_tem="温度",LF.mpython_hum="湿度",LF.mpython_pre="气压",LF.mpython_left_right="左右",LF.MPYTHON_LEFT="左",LF.MPYTHON_RIGHT="右",LF.mpython_front_back="前后",LF.mpython_vertical="垂直",LF.mpython_horizontal="水平",LF.mpython_run_in_back="后台运行",LF.mpython_run_in_front="前台运行",LF.mpython_draw="绘制",LF.mpython_clear="清除",LF.mpython_s="秒",LF.mpython_ms="毫秒",LF.mpython_us="微秒",LF.mpython_year="年",LF.mpython_month="月",LF.mpython_date="日",LF.mpython_hour="时",LF.mpython_minute="分",LF.mpython_week="星期数",LF.mpython_days="天数",LF.MPYTHON_ORDER="第",LF.MPYTHON_REVERSE_ORDER="倒数第",LF.MATH_RANDOM_RANDRANGE_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",LF.MATH_RANDOM_RANDRANGE_TOOLTIP="返回指定递增基数集合中的一个随机数,基数缺省值为1",LF.MATH_RANDOM_RANDRANGE_MESSAGE0="随机数 从递增区间 [%1 ,%2) 递增步长%3",LF.MATH_KEEP_DECIMAL_HELPURL="",LF.MATH_KEEP_DECIMAL_TOOLTIP="",LF.MATH_KEEP_DECIMAL_MESSAGE0="%1 保留 %2 位小数",LF.MPYTHON_MIN="最小值",LF.MPYTHON_MAX="最大值",LF.MPYTHON_LENTH="长度",LF.TUPLE_MIN_MAX_LEN_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",LF.TUPLE_MIN_MAX_LEN_TOOLTIP="",LF.TUPLE_MIN_MAX_LEN_MESSAGE0="元组 %1 %2",LF.TUPLE_ITEM_EXIST_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",LF.TUPLE_ITEM_EXIST_TOOLTIP="",LF.TUPLE_ITEM_EXIST_MESSAGE0="元组%1 包含%2",LF.LIST_ITEM_EXIST_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",LF.LIST_ITEM_EXIST_TOOLTIP="",LF.LIST_ITEM_EXIST_MESSAGE0="列表%1 包含%2",LF.PARTS_OF_TUPLE_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",LF.PARTS_OF_TUPLE_TOOLTIP="正序计数从0开始,倒序计数从1开始",LF.PARTS_OF_TUPLE_MESSAGE0="返回元组%1 取第%2 项到尾项",LF.PARTS_OF_TUPLE2_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",LF.PARTS_OF_TUPLE2_TOOLTIP="递增顺序取项\n举例:\n 倒数第5到倒数第2;\n 第0到第5",LF.PARTS_OF_TUPLE2_MESSAGE0="返回元组%1 取%2 %3 项到 %4 %5 项",LF.PARTS_OF_LIST_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",LF.PARTS_OF_LIST_TOOLTIP="递增顺序取项\n举例:\n 倒数第5到倒数第2;\n 第0到第5",LF.PARTS_OF_LIST_MESSAGE0="返回列表%1 取%2 %3 项到 %4 %5 项",LF.LIST_TO_TUPLE_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",LF.LIST_TO_TUPLE_TOOLTIP="",LF.LIST_TO_TUPLE_MESSAGE0="列表%1 转元组",LF.tuple_create_with_MESSAGE0="定义元组 %1 = %2 ",LF.tuple_create_with_TOOLTIP="只包含一个元素时,需要在元素后面添加逗号",LF.tuple_create_with_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",LF.tuple_order_item_MESSAGE0="元组%1 %2 %3 项",LF.tuple_order_item_TOOLTIP="正序计数从0开始,倒序计数从1开始",LF.tuple_order_item_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",LF.LIST_ORDER_ITEM_MESSAGE0="列表%1 %2 %3 项",LF.LIST_ORDER_ITEM_TOOLTIP="正序计数从0开始,倒序计数从1开始",LF.LIST_ORDER_ITEM_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",LF.SET_LIST_ORDER_ITEM_MESSAGE0="设列表%1 %2 %3 项为%4",LF.SET_LIST_ORDER_ITEM_TOOLTIP="正序计数从0开始,倒序计数从1开始",LF.SET_LIST_ORDER_ITEM_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",LF.INSERT_LIST_ORDER_ITEM_MESSAGE0="插入列表%1 %2 %3 项为%4",LF.INSERT_LIST_ORDER_ITEM_TOOLTIP="正序计数从0开始,倒序计数从1开始",LF.INSERT_LIST_ORDER_ITEM_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",LF.SET_TUPLE_ORDER_ITEM_MESSAGE0="设元组%1 %2 %3 项为%4",LF.SET_TUPLE_ORDER_ITEM_TOOLTIP="正序计数从0开始,倒序计数从1开始",LF.SET_TUPLE_ORDER_ITEM_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",LF.DICT_CREATE_WITH_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",LF.DICT_CREATE_WITH_TOOLTIP="",LF.DICT_CREATE_WITH_MESSAGE0="定义字典 %1 = %2",LF.SET_CREATE_WITH_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",LF.SET_CREATE_WITH_TOOLTIP="",LF.SET_CREATE_WITH_MESSAGE0="定义集合 %1 = %2",LF.SET_UPDATE_WITH_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",LF.SET_UPDATE_WITH_TOOLTIP="添加参数可为字符串、列表、元组、集合、字典(只添加key),已有元素则不进行操作",LF.SET_UPDATE_WITH_MESSAGE0="集合 %1 添加 %2",LF.INTERSECTION_OF_SETS_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",LF.INTERSECTION_OF_SETS_TOOLTIP="",LF.INTERSECTION_OF_SETS_MESSAGE0="取 %1 集合 %2 集合 %3",LF.MPYTHON_INTERSECTION="交集",LF.MPYTHON_UNION="并集",LF.MPYTHON_DIFFERENCE="差集",LF.SETS_UPDATE_WAYS_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",LF.SETS_UPDATE_WAYS_TOOLTIP="",LF.SETS_UPDATE_WAYS_MESSAGE0="集合 %1 更新为 与集合 %2 的 %3",LF.SUBSET_SUPERSET_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",LF.SUBSET_SUPERSET_TOOLTIP="",LF.SUBSET_SUPERSET_MESSAGE0="集合 %1 为集合 %2 的 %3",LF.MPYTHON_SUBSET="子集",LF.MPYTHON_SUPERSET="超集",LF.LEN_OF_SETS_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",LF.LEN_OF_SETS_TOOLTIP="",LF.LEN_OF_SETS_MESSAGE0="集合 %1 长度",LF.GET_SETS_POP_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",LF.GET_SETS_POP_TOOLTIP="",LF.GET_SETS_POP_MESSAGE0="返回随机项并移除之 从集合 %1",LF.CREATE_EMPTY_SET_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",LF.CREATE_EMPTY_SET_TOOLTIP="",LF.CREATE_EMPTY_SET_MESSAGE0="创建空集合 %1",LF.BIT_INVERSION_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",LF.BIT_INVERSION_TOOLTIP="对数据的每个二进制位取反",LF.BIT_INVERSION_MESSAGE0="二进制取反 %1",LF.TUPLE_CREATE_WITH_ITEMS_INSERT_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",LF.TUPLE_CREATE_WITH_ITEMS_INSERT_TOOLTIP="正序计数从0开始,倒序计数从1开始",LF.SET_CREATE_WITH_ITEMS_INSERT_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",LF.SET_CREATE_WITH_ITEMS_INSERT_TOOLTIP="项可为字符串、已创建变量变量、元组",LF.DICT_CREATE_WITH_ITEMS_INSERT_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",LF.DICT_CREATE_WITH_ITEMS_INSERT_TOOLTIP="正序计数从0开始,倒序计数从1开始",LF.DICT_KEY_VALUE_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",LF.DICT_KEY_VALUE_TOOLTIP="",LF.DICT_KEY_VALUE_MESSAGE0="字典%1 键%2 的值",LF.ADD_DICT_KEY_VALUE_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",LF.ADD_DICT_KEY_VALUE_TOOLTIP="已有该键则更新该键",LF.ADD_DICT_KEY_VALUE_MESSAGE0="字典%1 添加键%2 值%3",LF.DICT_LENGTH_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",LF.DICT_LENGTH_TOOLTIP="",LF.DICT_LENGTH_MESSAGE0="字典%1 长度",LF.DICT_KEY_EXIST_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",LF.DICT_KEY_EXIST_TOOLTIP="",LF.DICT_KEY_EXIST_MESSAGE0="字典%1 包含键%2",LF.DICT_KEY_OR_VAL_LIST_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",LF.DICT_KEY_OR_VAL_LIST_TOOLTIP="",LF.DICT_KEY_OR_VAL_LIST_MESSAGE0="字典%1 %2的列表",LF.DICT_KEYS="键",LF.DICT_VALUES="值",LF.mpython_lists_append_MESSAGE0="列表%1 末尾添加项%2",LF.mpython_lists_append_TOOLTIP="",LF.mpython_lists_append_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",LF.mpython_lists_extend_MESSAGE0="列表%1 追加列表%2",LF.mpython_lists_extend_TOOLTIP="",LF.mpython_lists_extend_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",LF.mpython_lists_clear_MESSAGE0="列表%1 清空",LF.mpython_lists_clear_TOOLTIP="",LF.mpython_lists_clear_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",LF.MPYTHON_REMOVE_REPETITION_MESSAGE0="列表%1 移除重复",LF.MPYTHON_REMOVE_REPETITION_TOOLTIP="",LF.MPYTHON_REMOVE_REPETITION_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",LF.mpython_Timer_value_MESSAGE0="定时器 %1 的计数值",LF.mpython_Timer_value_TOOLTIP="获取并返回计时器当前计数值",LF.mpython_Timer_deinit_MESSAGE0="清除 定时器/事件 %1",LF.mpython_Timer_deinit_TOOLTIP="取消定时器的初始化。停止计时器,并禁用计时器外围设备",LF.mpython_Interrupt_AB_HELPURL="https://mpython.readthedocs.io/zh/latest/tutorials/basics/buttons.html#id3",LF.mpython_Interrupt_AB_TOOLTIP="",LF.mpython_Interrupt_AB_MESSAGE0="当按键 %1 被 %2 时",LF.mpython_Interrupt_pin_HELPURL="https://mpython.readthedocs.io/zh/latest/tutorials/basics/io/digital_io.html#id3",LF.mpython_Interrupt_pin_TOOLTIP="上升沿触发:由低电平到高电平;下降沿触发:由高电平到低电平",LF.mpython_Interrupt_pin_MESSAGE0="当引脚 %1 电平 %2 时",LF.mpython_Interrupt_pin_IRQ_FALLING="↘ 从高到低",LF.mpython_Interrupt_pin_IRQ_RISING="↗ 从低到高",LF.mpython_IRQ_FALLING="按下",LF.mpython_IRQ_RISING="松开",LF.mpython_PERIODIC="重复执行",LF.mpython_ONE_SHOT="延时执行",LF.MPYTHON_IS_SHAKED_MESSAGE0="掌控板 %1",LF.MPYTHON_IS_SHAKED_HELPURL="",LF.MPYTHON_IS_SHAKED_TOOLTIP="",LF.MPYTHON_IS_SHAKED="被摇晃",LF.MPYTHON_IS_THROWN="被抛起",LF.MPYTHON_SHAKE_DETECTOR_MESSAGE0="当掌控板 %1 时",LF.MPYTHON_SHAKE_DETECTOR_HELPURL="",LF.MPYTHON_SHAKE_DETECTOR_TOOLTIP="",LF.MPYTHON_IS_TILTED_MESSAGE0="掌控板 %1",LF.MPYTHON_IS_TILTED_HELPURL="",LF.MPYTHON_IS_TILTED_TOOLTIP="",LF.MPYTHON_TILT_DETECTOR_MESSAGE0="当掌控板 %1 时",LF.MPYTHON_TILT_DETECTOR_HELPURL="",LF.MPYTHON_TILT_DETECTOR_TOOLTIP="",LF.MPYTHON_DIRECTION_FORWARD="向前倾斜",LF.MPYTHON_DIRECTION_BACK="向后倾斜",LF.MPYTHON_DIRECTION_RIGHT="向右倾斜",LF.MPYTHON_DIRECTION_LEFT="向左倾斜",LF.MPYTHON_DIRECTION_NONE="平放",LF.MPYTHON_TOUCH_EVENT_MESSAGE0="当触摸键 %1 被 %2 时",LF.MPYTHON_TOUCH_EVENT_HELPURL="",LF.MPYTHON_TOUCH_EVENT_TOOLTIP="",LF.MPYTHON_TOUCH_EVENT_PRESSED="触摸",LF.MPYTHON_TOUCH_EVENT_UNPRESSED="释放",LF.MPYTHON_CUSTOM_EVENT_MESSAGE0="事件 %1 : 当 %2 时",LF.MPYTHON_CUSTOM_EVENT_HELPURL="",LF.MPYTHON_CUSTOM_EVENT_TOOLTIP="自定义事件与定时器共用 1/2/4/7/8/9/10,不可同时占用一个端口。\n最大同时创建4个事件/定时器,如果存在冲突,请尝试换一个编号。",LF.mpython_music_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",LF.mpython_music_range_pitch_TOOLTIP="时长为单个频率的时长",LF.mpython_music_range_pitch_MESSAGE0="播放音调 从%1 到%2 步长%3 时长%4 毫秒 引脚 %5",LF.mpython_neopixel_init_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",LF.mpython_neopixel_init_TOOLTIP="",LF.mpython_neopixel_init_MESSAGE0="灯带初始化 名称%1 引脚%2 数量%3",LF.MPYTHON_NEOPIXEL_RAINBOW_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",LF.MPYTHON_NEOPIXEL_RAINBOW_TOOLTIP="",LF.MPYTHON_NEOPIXEL_RAINBOW_MESSAGE0="彩虹灯效 灯带%1 数量 %2 亮度 %3 偏移 %4",LF.MPYTHON_NEOPIXEL_BRIGHTNESS_HELPURL="https://mpython.readthedocs.io/zh/master/library/micropython/neopixel.html#NeoPixel.brightness",LF.MPYTHON_NEOPIXEL_BRIGHTNESS_TOOLTIP="亮度调节, 范围 0 ~ 100",LF.MPYTHON_NEOPIXEL_BRIGHTNESS_MESSAGE0="灯带 %1 设置亮度为 %2",LF.mpython_neopixel_single_TOOLTIP="",LF.mpython_neopixel_single_MESSAGE0="灯带%1 %2号 红%3 绿%4 蓝%5",LF.mpython_neopixel_single_gui_MESSAGE0="灯带 %1 %2号 颜色为 %3",LF.mpython_neopixel_single_gui_TOOLTIP="",LF.mpython_neopixel_show_TOOLTIP="",LF.mpython_neopixel_show_MESSAGE0="灯带%1 设置生效",LF.mpython_neopixel_off_TOOLTIP="",LF.mpython_neopixel_off_MESSAGE0="灯带%1 关闭",LF.mpython_neopixel_all_TOOLTIP="",LF.mpython_neopixel_all_MESSAGE0="灯带%1 全亮 红%2 绿%3 蓝%4",LF.mpython_neopixel_all_gui_TOOLTIP="",LF.mpython_neopixel_all_gui_MESSAGE0="灯带%1 全亮 颜色%2",LF.mpython_image_to_oled_MESSAGE0="打开图片 %1 宽 %2 高 %3",LF.mpython_image_to_oled_TOOLTIP="",LF.mpython_time_localtime_MESSAGE0="本地时间 %1",LF.mpython_time_localtime_TOOLTIP="星期数:返回0~6,周一为0,周日为6\n天数:获取当前日期是一年中的第几天\n建议先连接wifi并获取网络时间",LF.mpython_WiFi_config_MESSAGE0="Wi-Fi 配置信息 %1",LF.mpython_WiFi_config_TOOLTIP="netmask-子网掩码;gateway-网关",LF.mpython_time_ticks_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",LF.mpython_time_ticks_MESSAGE0="运行时间 %1",LF.mpython_time_ticks_TOOLTIP="",LF.MPYTHON_TIMER_DEF_MESSAGE0="定义定时器 %1",LF.MPYTHON_TIMER_INIT_MESSAGE0="启动定时器 %1 %2 周期 %3 毫秒",LF.mpython_Timer_MESSAGE0="设置定时器 %1 %2 周期 %3 毫秒",LF.mpython_Timer_TOOLTIP="创建定时器n,n=1-14。\n最大同时创建4个定时器,如果存在冲突,请尝试换一个编号。\n3用于内部程序,\n5/6用于伺服系统和ADC,\n11用于摇晃检测,\n12用于触摸键检测,\n13用于Radio和DHT11/DHT22定时取值(共用),\n14用于OneNET和倾斜检测(共用),\n其余端口与自定义事件共用。",LF.mpython_Timer_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/blocks/index.html",LF.mpython_sway_xyz_MESSAGE0="%1 摇晃掌控板",LF.mpython_sway_xyz_TOOLTIP="掌控板正面朝上,触摸键 'python' 靠近使用者,开始左右或前后摇晃掌控板",LF.mpython_init_bluetooth_MESSAGE0="初始化 蓝牙名称%1",LF.mpython_init_bluetooth_TOOLTIP="初始化 蓝牙名称",LF.mpython_OnOff_bluetooth_MESSAGE0="蓝牙设备 %1广播",LF.mpython_OnOff_bluetooth_TOOLTIP="蓝牙设备 开启或关闭广播",LF.mpython_HID_keyboard_bluetooth_MESSAGE0="键盘 按键%1",LF.mpython_HID_keyboard_bluetooth_TOOLTIP="HID键盘设备",LF.mpython_HID_consumer_bluetooth_MESSAGE0="消费类设备%1 状态%2",LF.mpython_HID_consumer_bluetooth_TOOLTIP="模拟HID消费类设备的控制器,如蓝牙遥控器",LF.mpython_HID_release_keyboard_bluetooth_MESSAGE0="键盘 释放按键",LF.mpython_HID_release_keyboard_bluetooth_TOOLTIP="键盘设备",LF.mpython_HID_mouse_bluetooth_MESSAGE0="鼠标%1",LF.mpython_HID_mouse_bluetooth_TOOLTIP="鼠标设备",LF.mpython_HID_release_mouse_bluetooth_MESSAGE0="鼠标 释放按键",LF.mpython_HID_release_mouse_bluetooth_TOOLTIP="鼠标设备",LF.mpython_HID_mouse_pointer_bluetooth_MESSAGE0="鼠标 指针移动 x%2 y%1",LF.mpython_HID_mouse_pointer_bluetooth_TOOLTIP="鼠标指针坐标x,y轴的相对位移,范围-1023 ~ 1023",LF.mpython_HID_keyboard_group_bluetooth_MESSAGE0="键盘 按键%1 组合按键%2",LF.mpython_HID_keyboard_group_bluetooth_TOOLTIP="如果想使用多个按键组合指令,可以用“|”或运算",LF.mpython_HID_keyboard_part_bluetooth_MESSAGE0="键盘 组合按键%1",LF.mpython_HID_keyboard_part_bluetooth_TOOLTIP="如果想使用多个按键组合指令,可以用“|”或运算",LF.mpython_HID_keyboard_part_bluetooth_HELPURL="",LF.mpython_init_wifi_MESSAGE0="连接 Wi-Fi 名称 %1 密码 %2",LF.mpython_init_wifi_TOOLTIP="让掌控板接入Wi-Fi环境",LF.MPYTHON_WIFI_IFCONFIG_MESSAGE0="Wi-Fi 设置静态IP %1 IP 地址 %2 子网掩码 %3 默认网关 %4 DNS %5",LF.MPYTHON_WIFI_IFCONFIG_TOOLTIP="",LF.MPYTHON_WIFI_IFCONFIG_HELPURL="",LF.mpython_dis_WiFi_MESSAGE0="断开 Wi-Fi 连接",LF.mpython_dis_WiFi_TOOLTIP="",LF.MPYTHON_ENABLE_APWIFI_HELPURL="https://mpython.readthedocs.io/zh/master/tutorials/basics/network/network_basics.html#ap",LF.MPYTHON_ENABLE_APWIFI_TOOLTIP="密码可以为空,或者8位以上的字母或数字。\nAP模式仅用于掌控板之间的相互通信,不可以作为热点,令其它设备上网。",LF.MPYTHON_ENABLE_APWIFI_MESSAGE0="开启 AP模式 名称 %1 密码 %2 信道 %3",LF.mpython_disable_APWiFi_MESSAGE0="关闭 AP模式",LF.mpython_disable_APWiFi_TOOLTIP="",LF.mpython_ntptime_settime_MESSAGE0="同步网络时间 时区 %1 授时服务器 %2",LF.mpython_ntptime_settime_TOOLTIP="NTP时间同步是一种时间同步网络技术",LF.mpython_wifi_get_date_MESSAGE0="获取当前日期",LF.mpython_wifi_get_date_TOOLTIP="获取当前日期字符串 示例:2020年12月12日",LF.mpython_wifi_get_time_MESSAGE0="获取当前时间",LF.mpython_wifi_get_time_TOOLTIP="获取当前时间字符串",LF.mpython_ntptime_timezone_E1="东1区",LF.mpython_ntptime_timezone_E2="东2区",LF.mpython_ntptime_timezone_E3="东3区",LF.mpython_ntptime_timezone_E4="东4区",LF.mpython_ntptime_timezone_E5="东5区",LF.mpython_ntptime_timezone_E6="东6区",LF.mpython_ntptime_timezone_E7="东7区",LF.mpython_ntptime_timezone_E8="东8区",LF.mpython_ntptime_timezone_E9="东9区",LF.mpython_ntptime_timezone_E10="东10区",LF.mpython_ntptime_timezone_E11="东11区",LF.mpython_ntptime_timezone_E12="东12区",LF.mpython_ntptime_timezone_0="中时区",LF.mpython_ntptime_timezone_W1="西1区",LF.mpython_ntptime_timezone_W2="西2区",LF.mpython_ntptime_timezone_W3="西3区",LF.mpython_ntptime_timezone_W4="西4区",LF.mpython_ntptime_timezone_W5="西5区",LF.mpython_ntptime_timezone_W6="西6区",LF.mpython_ntptime_timezone_W7="西7区",LF.mpython_ntptime_timezone_W8="西8区",LF.mpython_ntptime_timezone_W9="西9区",LF.mpython_ntptime_timezone_W10="西10区",LF.mpython_ntptime_timezone_W11="西11区",LF.mpython_ntptime_timezone_W12="西12区",LF.FILE_TO_LIST_HELPURL="",LF.FILE_TO_LIST_TOOLTIP="读出指定路径的文本文件内容(仅限utf-8格式),并转为列表形式,以分隔符分隔。",LF.FILE_TO_LIST_MESSAGE0="读取文本文件 %1 为列表 ,以 %2 分隔",LF.FILE_TO_BIN_HELPURL="",LF.FILE_TO_BIN_TOOLTIP="以二进制格式读出指定路径的文件内容。";LF.FILE_TO_BIN_MESSAGE0="读取文件 %1 的二进制内容",LF.MPYTHON_INIT_FILE_HELPURL="",LF.MPYTHON_INIT_FILE_TOOLTIP="初始化一个文本文件,如果文件不存在则创建文件,如果文件存在则清空内容。",LF.MPYTHON_INIT_FILE_MESSAGE0="初始化文本文件 %1",LF.MPYTHON_WRITE_FILE_HELPURL="",LF.MPYTHON_WRITE_FILE_TOOLTIP="向指定路径的文本文件写入内容,如果文件不存在则创建文件。",LF.MPYTHON_WRITE_FILE_MESSAGE0="向文本文件 %1 写入内容 %2 ,以 %3 分隔",LF.MPYTHON_SDCARD_INIT_HELPURL="https://mpython.readthedocs.io/zh/master/library/mPython/sdcard.html#sdcard.SDCard",LF.MPYTHON_SDCARD_INIT_TOOLTIP="sck: P13\nmosi: P15\nmiso: P14\nsdcard: P16\n须确保 SPI 总线的引脚与 micro SD 卡物理连接正确,并预先使用 FAT 或 FAT32 文件系统格式化 micro SD 卡。",LF.MPYTHON_SDCARD_INIT_MESSAGE0="初始化 SD 卡",LF.MPYTHON_SDCARD_MOUNT_HELPURL="https://mpython.readthedocs.io/zh/master/library/mPython/sdcard.html#sdcard.SDCard",LF.MPYTHON_SDCARD_MOUNT_TOOLTIP="挂载 SD 卡到指定路径。",LF.MPYTHON_SDCARD_MOUNT_MESSAGE0="挂载 SD 卡到路径 %1",LF.MPYTHON_ENTER="回车",LF.MPYTHON_COMMA="逗号",LF.MPYTHON_SEMICOLON="分号",LF.MPYTHON_SPACE="空格",LF.mpython_wifi_clock_MESSAGE0="Wi-Fi 模拟时钟 x %1 y %2 半径 %3",LF.mpython_wifi_clock_TOOLTIP="需连接 Wi-Fi 使用",LF.mpython_def_clock_MESSAGE0="初始化时钟%1 x %2 y %3 半径 %4",LF.mpython_def_clock_TOOLTIP="",LF.mpython_settime_clock_MESSAGE0="时钟%1 读取时间",LF.mpython_settime_clock_TOOLTIP="",LF.mpython_draw_clear_clock_MESSAGE0="%1 时钟 %2",LF.mpython_draw_clear_clock_TOOLTIP="",LF.mpython_tinywebio_start_MESSAGE0="启动 TinyWebIO 服务 %1",LF.mpython_tinywebio_start_TOOLTIP="启动该服务需连接Wi-Fi,TinyWebIO服务为App Inventor应用提供远程控制接口的掌控板工具包",LF.mpython_tinywebio_client_setup_HELPURL="",LF.mpython_tinywebio_client_setup_TOOLTIP="向服务器发布的数据项(逗号分隔)\nbuttona/b 按键状态\ntouchpadp/y/t/h/o/n 触摸按键值\nlight 光线值\nsound 声音值\naccelerometer 三轴加速度值\nid 掌控板标识\ntime 时间戳\npind 数字IO引脚\npina 模拟IO引脚\n----------\n从服务器读取的数据项(逗号分隔)\nrgb0/1/2 RGB灯珠\noled OLED显示屏\nmusic 音乐\nservo 舵机\npind 数字IO引脚\npina 模拟IO引脚",LF.mpython_tinywebio_client_setup_MESSAGE0="设置 TinyWebIO 客户端参数 %1 TinyWebDB服务器地址 %2 向服务器发布的数据项 %3 从服务器读取的数据项 %4 存取服务器的时间间隔(ms) %5",LF.mpython_tinywebio_client_action_HELPURL="",LF.mpython_tinywebio_client_action_TOOLTIP="",LF.mpython_tinywebio_client_action_MESSAGE0="%1 TinyWebIO 客户端",LF.mpython_tinywebio_client_action_start="启动",LF.mpython_tinywebio_client_action_stop="停止",LF.MPYTHON_CUSTOM_CODE_HELPURL="",LF.MPYTHON_CUSTOM_CODE_TOOLTIP="",LF.MPYTHON_CUSTOM_CODE_MESSAGE0="%1 自定义代码 %2 %3",LF.MPYTHON_CUSTOM_TYPE_IMPORT="置顶",LF.MPYTHON_CUSTOM_TYPE_NORMAL="普通",LF.mpython_servo_angle0_MESSAGE0="设置舵机 %1 角度为 %2",LF.mpython_servo_angle_MESSAGE0="设置舵机 %1 角度为 %2 脉宽从 %3 到 %4 最大角度 %5",LF.mpython_servo_angle_TOOLTIP="电源线Vcc(红色)连接拓展板电源口V,地线GND(棕色)连接拓展板地线口G,控制信号线(橙色)连接所选的拓展板引脚",LF.mpython_dh11_hum_tem_HELPURL="https://mpython.readthedocs.io/zh/latest/classic/dht11.html?highlight=DHT",LF.mpython_dh11_hum_tem_MESSAGE0="DHT11 %1 %2",LF.mpython_dh11_hum_tem_TOOLTIP="DHT11上的 + 连接拓展板的电源口 V ,- 连接拓展板的地线口 G ,out 连接拓展板的引脚 0(即选引脚)",LF.MPYTHON_DH22_HUM_TEM_MESSAGE0="DHT22 %1 %2",LF.MPYTHON_DH22_HUM_TEM_TOOLTIP="",LF.MPYTHON_DH22_HUM_TEM_HELPURL="https://mpython.readthedocs.io/zh/latest/classic/dht11.html?highlight=DHT",LF.mpython_music_note_MESSAGE0="音符 %1 %2 : %3",LF.mpython_music_note_TOOLTIP="音符,如C4:4",LF.mpython_return_list_MESSAGE0="定义列表 %1 = %2",LF.mpython_return_list_TOOLTIP="",LF.mpython_display_Show_MESSAGE0="OLED 显示生效",LF.mpython_display_Show_TOOLTIP="",LF.mpython_display_DispChar_MESSAGE0="显示文本 x %1 y %2 内容 %3 模式 %4 %5",LF.mpython_display_DispChar_TOOLTIP="OLED分辨率128x64",LF.mpython_display_DispChar_HELPURL="https://mpython.readthedocs.io/zh/master/library/mPython/mpython.html?highlight=oled#oled.DispChar",LF.mpython_display_DispChar_5lines_MESSAGE0="OLED 第%1 行显示 %2 模式 %3 %4",LF.mpython_display_DispChar_5lines_TOOLTIP="OLED分辨率128x64",LF.mpython_line1="1",LF.mpython_line2="2",LF.mpython_line3="3",LF.mpython_line4="4",LF.mpython_line5="5",LF.MPYTHON_CLEAR_DISPCHAR_5LINES_MESSAGE0="OLED 清除第 %1 行",LF.MPYTHON_CLEAR_DISPCHAR_5LINES_TOOLTIP="OLED分辨率128x64",LF.MPYTHON_CLEAR_DISPCHAR_5LINES_HELPURL="",LF.mpython_display_fill_0="清空",LF.mpython_display_fill_1="全亮",LF.mpython_display_invert_0="黑底",LF.mpython_display_invert_1="白底",LF.mpython_display_show="生效",LF.mpython_display_fill_MESSAGE0="OLED 显示 %1",LF.mpython_display_fill_TOOLTIP="",LF.mpython_display_pixel_0="暗",LF.mpython_display_pixel_1="亮",LF.mpython_display_pixel_MESSAGE0="描点 x %1 y %2 为 %3",LF.mpython_display_pixel_TOOLTIP="",LF.mpython_display_hline_0="擦除",LF.mpython_display_hline_1="绘制",LF.mpython_display_hline_MESSAGE0="%1 水平线%2 x%3 y%4 长度%5",LF.mpython_display_hline_TOOLTIP="",LF.mpython_ProgressBar_MESSAGE0="进度条%1 x%2 y%3 宽%4 高%5 进度%6",LF.mpython_ProgressBar_TOOLTIP="",LF.mpython_stripBar_MESSAGE0="柱状条%1 x%2 y%3 宽%4 高%5 进度%6",LF.mpython_stripBar_TOOLTIP="",LF.MPYTHON_QR_CODE_HELPURL="https://mpython.readthedocs.io/zh/master/library/mPython/gui.html#gui.UI.qr_code",LF.MPYTHON_QR_CODE_TOOLTIP="",LF.MPYTHON_QR_CODE_MESSAGE0="在坐标 x %1 y %2 绘制二维码 %3 尺寸 %4",LF.MPYTHON_DISPLAY_MODE_0="擦除",LF.MPYTHON_DISPLAY_MODE_1="绘制",LF.MPYTHON_DISPLAY_HOLLOW="空心",LF.MPYTHON_DISPLAY_SOLID="实心",LF.MPYTHON_DISPLAY_HVLINE_MESSAGE0="%1 %2 线 %3 x %4 y %5 长度 %6",LF.MPYTHON_DISPLAY_HVLINE_TOOLTIP="",LF.MPYTHON_DISPLAY_SHAPE_RECT_MESSAGE0="%1 %2 矩形 %3 x %4 y %5 宽 %6 高 %7",LF.MPYTHON_DISPLAY_SHAPE_RECT_TOOLTIP="",LF.MPYTHON_DISPLAY_SHAPE_CIRCLE_MESSAGE0="%1 %2 圆 %3 x %4 y %5 半径 %6",LF.MPYTHON_DISPLAY_SHAPE_CIRCLE_TOOLTIP="",LF.MPYTHON_DISPLAY_SHAPE_TRIANGLE_MESSAGE0="%1 %2 三角 %3 x1 %4 y1 %5 x2 %6 y2 %7 x3 %8 y3 %9",LF.MPYTHON_DISPLAY_SHAPE_TRIANGLE_TOOLTIP="",LF.MPYTHON_RGB_0="0 #",LF.MPYTHON_RGB_1="1 #",LF.MPYTHON_RGB_2="2 #",LF.MPYTHON_RGB_ALL="所有",LF.MPYTHON_SET_RGB_LIST_COLOR_MESSAGE0="设置 %1 RGB 灯颜色为 %2",LF.MPYTHON_SET_RGB_LIST_COLOR_TOOLTIP="原生亮度的 1/30 能较好显示色差",LF.MPYTHON_SET_RGB_LIST_NUMBER_MESSAGE0="设置 %1 RGB 灯颜色为 R %2 G %3 B %4",LF.MPYTHON_SET_RGB_LIST_NUMBER_TOOLTIP="原生亮度的 1/30 能较好显示色差",LF.MPYTHON_OFF_RGB_LIST_MESSAGE0="关闭 %1 RGB 灯",LF.MPYTHON_OFF_RGB_LIST_TOOLTIP="",LF.MPYTHON_MUSIC_PLAY_MESSAGE0="播放音乐 %1 引脚 %2",LF.MPYTHON_MUSIC_PLAY_TOOLTIP="播放内置的音乐",LF.MPYTHON_MUSIC_PLAY_UNTIL_END_MESSAGE0="播放音乐 %1 直到完成 , 引脚 %2",LF.MPYTHON_MUSIC_PLAY_UNTIL_END_TOOLTIP="播放内置的音乐",LF.MPYTHON_MUSIC_GE_CHANG_ZU_GUO="歌唱祖国",LF.MPYTHON_MUSIC_DONG_FANG_HONG="东方红",LF.MPYTHON_MUSIC_CAI_YUN_ZHUI_YUE="彩云追月",LF.MPYTHON_MUSIC_ZOU_JIN_XIN_SHI_DAI="走进新时代",LF.MPYTHON_MUSIC_MO_LI_HUA="茉莉花",LF.MPYTHON_MUSIC_YI_MENG_SHAN_XIAO_DIAO="沂蒙山小调",LF.mpython_display_vline_MESSAGE0="%1 垂直线%2 x%3 y%4 长度%5",LF.mpython_display_vline_TOOLTIP="",LF.mpython_display_line_MESSAGE0="%1 线%2 x1 %3 y1 %4 到 x2 %5 y2 %6",LF.mpython_display_line_TOOLTIP="",LF.mpython_display_rect_MESSAGE0="%1 边框%2 x %3 y %4 宽 %5 高 %6",LF.mpython_display_rect_TOOLTIP="",LF.mpython_display_RoundRect_MESSAGE0="%1 弧角边框%2 x %3 y %4 宽 %5 高 %6 半径%7",LF.mpython_display_RoundRect_TOOLTIP="",LF.mpython_display_fill_rect_MESSAGE0="%1 矩形%2 x %3 y %4 宽 %5 高 %6 ",LF.mpython_display_fill_rect_TOOLTIP="",LF.mpython_display_fill_circle_MESSAGE0="%1 实心圆%2 x %3 y %4 半径 %5",LF.mpython_display_fill_circle_TOOLTIP="",LF.mpython_display_circle_MESSAGE0="%1 空心圆%2 x %3 y %4 半径 %5",LF.mpython_display_circle_TOOLTIP="",LF.mpython_display_triangle_MESSAGE0="%1 空心三角%2 x%3 y%4 x2%5 y2%6 x3%7 y3%8",LF.mpython_display_triangle_TOOLTIP="",LF.mpython_display_fill_triangle_MESSAGE0="%1 实心三角%2 x%3 y%4 x2%5 y2%6 x3%7 y3%8",LF.mpython_display_fill_triangle_TOOLTIP="",LF.mpython_display_Bitmap_MESSAGE0="%1 图像 x%2 y%3 宽%4 高%5 16进制图像数据 %6",LF.mpython_display_Bitmap_TOOLTIP="将16进制图像数据显示在OLED屏的指定位置",LF.MPYTHON_GET_PBM_DATA_MESSAGE0="获取内置图像 %1 模式%2",LF.MPYTHON_GET_PBM_DATA_TOOLTIP="支持*.pbm 或 *.bmp 格式的单色图像文件,获取指定路径的图像文件数据,返回一个元组对象。",LF.MPYTHON_GET_PBM_DATA_HELPURL="https://mpython.readthedocs.io/zh/master/library/mPython/gui.html#image",LF.MPYTHON_GET_PBM_DATA_CUSTOM_MESSAGE0="获取自定义图像 %1 模式%2",LF.MPYTHON_DISPLAY_PBM_DATA_MESSAGE0="在坐标 x %1 y %2 显示图像 %3",LF.MPYTHON_DISPLAY_PBM_DATA_TOOLTIP="支持*.pbm 或 *.bmp格式的单色图像文件",LF.MPYTHON_DISPLAY_PBM_DATA_HELPURL="https://mpython.readthedocs.io/zh/master/library/mPython/gui.html#image",LF.MPYTHON_BITMAP_FROM_FILE_MESSAGE0="在坐标 x %1 y %2 显示图像 %5 宽 %3 高 %4",LF.MPYTHON_BITMAP_FROM_FILE_TOOLTIP="",LF.MPYTHON_BITMAP_FROM_FILE_HELPURL="",LF.mpython_horizontal="水平",LF.mpython_vertical="垂直",LF.mpython_display_FrameBuffer_MESSAGE0="构建帧 列表 %1 长 %2 宽 %3 扫描模式 %4",LF.mpython_display_FrameBuffer_TOOLTIP="用图像取模后数据的列表 ,创建128x64的帧缓存区,以储存图片帧",LF.MPYTHON_FONT_DIGIFACE_11="仿数码管 11像素",LF.MPYTHON_FONT_DIGIFACE_16="仿数码管 16像素",LF.MPYTHON_FONT_DIGIFACE_21="仿数码管 21像素",LF.MPYTHON_FONT_DIGIFACE_30="仿数码管 30像素",LF.MPYTHON_FONT_DIGIFACE_44="仿数码管 44像素",LF.MPYTHON_FONT_DIGIFACE_IT_30="仿数码管 斜体 30像素",LF.MPYTHON_FONT_DIGIFACE_IT_42="仿数码管 斜体 42像素",LF.MPYTHON_FONT_DVSM_12="DejaVu Sans Mono 12像素",LF.MPYTHON_FONT_DVSM_16="DejaVu Sans Mono 16像素",LF.MPYTHON_FONT_DVSM_21="DejaVu Sans Mono 21像素",LF.MPYTHON_FONT_DVSMB_12="DejaVu Sans Mono 黑体 12像素",LF.MPYTHON_FONT_DVSMB_16="DejaVu Sans Mono 黑体 16像素",LF.MPYTHON_FONT_DVSMB_21="DejaVu Sans Mono 黑体 21像素",LF.MPYTHON_FONT_WRAP="自动换行",LF.MPYTHON_FONT_NO_WRAP="不换行",LF.MPYTHON_FACE_1="心形",LF.MPYTHON_FACE_2="心形(小)",LF.MPYTHON_FACE_3="高兴",LF.MPYTHON_FACE_4="笑脸",LF.MPYTHON_FACE_5="伤心",LF.MPYTHON_FACE_6="困惑",LF.MPYTHON_FACE_7="生气",LF.MPYTHON_FACE_8="睡着",LF.MPYTHON_FACE_9="惊讶",LF.MPYTHON_FACE_10="愚蠢",LF.MPYTHON_FACE_11="极妙",LF.MPYTHON_FACE_12="无聊",LF.MPYTHON_FACE_ROCK="石头",LF.MPYTHON_FACE_PAPER="布",LF.MPYTHON_FACE_SCISSORS="剪刀",LF.MPYTHON_FACE_ROCK_S="石头(小)",LF.MPYTHON_FACE_PAPER_S="布(小)",LF.MPYTHON_FACE_SCISSORS_S="剪刀(小)",LF.MPYTHON_DISPLAY_FONT_MESSAGE0="在坐标 x %1 y %2 显示 %3 以 %4 字体 %5",LF.MPYTHON_DISPLAY_FONT_TOOLTIP="",LF.MPYTHON_DISPLAY_FONT_HELPURL="",LF.mpython_front="正向",LF.mpython_reverse="反转",LF.mpython_display_blit_MESSAGE0="显示帧 坐标x %1 y %2",LF.mpython_display_blit_TOOLTIP="",LF.mpython_front_reverse_MESSAGE0="像素点bit %1",LF.mpython_front_reverse_TOOLTIP="用于显示之前",LF.mpython_images_append_MESSAGE0="动图显示 帧数%1 周期%2 长%3 宽%4",LF.mpython_images_append_TOOLTIP="上传至掌控板的pbm图片需命名为IMAGE.数字,后缀为pbm。如:IMAGE.1.pbm。帧数为7则数字为1至7",LF.mpython_button_is_pressed_MESSAGE0="按键%1 被按下",LF.mpython_button_is_pressed_TOOLTIP="",LF.mpython_button_both_pressed_MESSAGE0="AB按键都按下",LF.mpython_button_both_pressed_TOOLTIP="",LF.mpython_touchPad_value_MESSAGE0="按键%1 被触摸",LF.mpython_touchPad_value_TOOLTIP="",LF.mpython_touchPad_value_num_MESSAGE0="按键%1 触摸值",LF.mpython_touchPad_value_num_TOOLTIP="",LF.mpython_read_digital_MESSAGE0="读取引脚%1 数字值",LF.mpython_read_digital_TOOLTIP="",LF.mpython_read_DS18B20_MESSAGE0="DS18B20 防水温度传感器 引脚 %1",LF.mpython_read_DS18B20_TOOLTIP="",LF.mpython_read_DS18B20_HELPURL="http://docs.micropython.org/en/latest/esp32/quickref.html?highlight=onewire#onewire-driver",LF.mpython_set_digital_MESSAGE0="设置引脚 %2 数字值为 %1",LF.mpython_set_digital_TOOLTIP="",LF.mpython_read_analog_MESSAGE0="读取引脚 %1 模拟值",LF.mpython_read_analog_TOOLTIP="",LF.mpython_set_analog_MESSAGE0="设置引脚 %2 模拟值(PWM)为 %1",LF.mpython_set_analog_TOOLTIP="模拟输出是通过IO引脚输出脉宽调制信号,输出指定的电压值,简称PWM。",LF.mpython_set_RGB_MESSAGE0="设置 %1 号 RGB 灯颜色为 R %2 G %3 B %4",LF.mpython_set_RGB_TOOLTIP="原生亮度的 1/30 能较好显示色差",LF.mpython_set_RGB_color_MESSAGE0="设置 %1 号 RGB 灯颜色为 %2",LF.mpython_set_RGB_color_TOOLTIP="原生亮度的 1/30 能较好显示色差",LF.mpython_set_RGB_all_MESSAGE0="设置所有 RGB 灯颜色为 R %1 G %2 B %3",LF.mpython_set_RGB_all_TOOLTIP="原生亮度的 1/30 能较好显示色差",LF.mpython_set_RGB_color_all_MESSAGE0="设置所有 RGB 灯颜色为 %1",LF.mpython_set_RGB_color_all_TOOLTIP="原生亮度的 1/30 能较好显示色差",LF.mpython_fresh_RGB_MESSAGE0="RGB 灯设置生效",LF.mpython_fresh_RGB_TOOLTIP="",LF.mpython_off_RGB_MESSAGE0="关闭 RGB 灯",LF.mpython_off_RGB_TOOLTIP="",LF.mpython_buzz_state_MESSAGE0="停止播放音乐",LF.mpython_buzz_state_TOOLTIP="",LF.mpython_buzz_freq_MESSAGE0="播放连续音调 %1 引脚 %2",LF.mpython_buzz_freq_TOOLTIP="",LF.mpython_buzz_tone_MESSAGE0="播放音调 %1",LF.mpython_buzz_tone_TOOLTIP="",LF.MPYTHON_MUSIC_TONE_TEMPO_HELPURL="",LF.MPYTHON_MUSIC_TONE_TEMPO_TOOLTIP="默认是掌控板的P6引脚",LF.MPYTHON_MUSIC_TONE_TEMPO_MESSAGE0="播放音符 %1 引脚 %2",LF.MPYTHON_MUSIC_TONE_HELPURL="",LF.MPYTHON_MUSIC_TONE_TOOLTIP="",LF.MPYTHON_MUSIC_TONE_MESSAGE0="音调 %1",LF.MPYTHON_MUSIC_MUSICAL_NOTE_HELPURL="",LF.MPYTHON_MUSIC_MUSICAL_NOTE_TOOLTIP="",LF.MPYTHON_MUSIC_MUSICAL_NOTE_MESSAGE0="音符 %1 节拍 %2",LF.MPYTHON_MUSIC_TICK_HELPURL="",LF.MPYTHON_MUSIC_TICK_TOOLTIP="",LF.MPYTHON_MUSIC_TICK_MESSAGE0="节拍 %1",LF.MPYTHON_4_LINES_HELPURL="",LF.MPYTHON_4_LINES_TOOLTIP="",LF.MPYTHON_4_LINES_MESSAGE0="%1",LF.NUMBER_1="1",LF.NUMBER_1_2="1/2",LF.NUMBER_1_4="1/4",LF.NUMBER_2="2",LF.NUMBER_4="4",LF.mpython_read_sound_MESSAGE0="声音值",LF.mpython_read_sound_TOOLTIP="",LF.mpython_read_light_MESSAGE0="光线值",LF.mpython_read_light_TOOLTIP="",LF.mpython_accelerometer_get_MESSAGE0="%1 轴加速度",LF.mpython_accelerometer_get_TOOLTIP="",LF.mpython_accelerometer_get_z_MESSAGE0="z轴加速度",LF.mpython_accelerometer_get_z_TOOLTIP="",LF.mpython_accelerometer_get_y_MESSAGE0="y轴加速度",LF.mpython_accelerometer_get_y_TOOLTIP="",LF.mpython_accelerometer_get_x_MESSAGE0="x轴加速度",LF.mpython_accelerometer_get_x_TOOLTIP="",LF.MPYTHON_ACCELEROMETER_RANGE_2G="±2g",LF.MPYTHON_ACCELEROMETER_RANGE_4G="±4g",LF.MPYTHON_ACCELEROMETER_RANGE_8G="±8g",LF.MPYTHON_ACCELEROMETER_RANGE_16G="±16g",LF.MPYTHON_ACCELEROMETER_RES_10_BIT="10bits",LF.MPYTHON_ACCELEROMETER_RES_12_BIT="12bits",LF.MPYTHON_ACCELEROMETER_RES_14_BIT="14bits",LF.MPYTHON_ACCELEROMETER_SET_RANGE_TOOLTIP="设置加速度范围,默认为 ±2g。",LF.MPYTHON_ACCELEROMETER_SET_RANGE_MESSAGE0="设置加速度范围为 %1",LF.MPYTHON_ACCELEROMETER_SET_RESOLUTION_TOOLTIP="设置加速度分辨率,默认为 10bits。",LF.MPYTHON_ACCELEROMETER_SET_RESOLUTION_MESSAGE0="设置加速度分辨率为 %1",LF.MPYTHON_ACCELEROMETER_SET_OFFSET_TOOLTIP="校准加速度计的3个轴(x,y,z)的加速值偏差。\n一般情况下无需校准,只有遇到加速度偏差较大时才要校准。\n x , y , z 为调整偏差值,可修正范围为 ±1g。\n注意:校准数据断电后不会保存。",LF.MPYTHON_ACCELEROMETER_SET_OFFSET_MESSAGE0="校准加速度值 %1 X轴偏差 %2 Y轴偏差 %3 Z轴偏差 %4",LF.MPYTHON_MAGNETIC_GET_AXIS_TOOLTIP="仅适用于掌控板2.0及以上版本",LF.MPYTHON_MAGNETIC_GET_AXIS_MESSAGE0="%1 轴 磁力",LF.MPYTHON_MAGNETIC_GET_HEADING_TOOLTIP="仅适用于掌控板2.0及以上版本",LF.MPYTHON_MAGNETIC_GET_HEADING_MESSAGE0="指南针方向",LF.MPYTHON_MAGNETIC_CALIBRATE_TOOLTIP="仅适用于掌控板2.0及以上版本",LF.MPYTHON_MAGNETIC_CALIBRATE_MESSAGE0="校准指南针",LF.MPYTHON_MAGNETIC_PEELING_TOOLTIP="仅适用于掌控板2.0及以上版本",LF.MPYTHON_MAGNETIC_PEELING_MESSAGE0="去除当前环境磁场",LF.MPYTHON_MAGNETIC_GET_FIELD_STRENGTH_TOOLTIP="仅适用于掌控板2.0及以上版本",LF.MPYTHON_MAGNETIC_GET_FIELD_STRENGTH_MESSAGE0="磁场强度",LF.MPYTHON_TILT_ANGLE_HELPURL="",LF.MPYTHON_TILT_ANGLE_TOOLTIP="",LF.MPYTHON_TILT_ANGLE_MESSAGE0="%1 轴倾斜角",LF.mpython_random_choice_MESSAGE0="返回随机项%1",LF.mpython_random_choice_TOOLTIP="以String格式,返回列表或字符串中的随机项",LF.MACHINE_TIME_PULSE_US_HELPURL="https://mpython.readthedocs.io/zh/master/library/micropython/machine/machine.html?highlight=machine.time_pulse_us#machine.time_pulse_us",LF.MACHINE_TIME_PULSE_US_MESSAGE0="%1 外部 %2 电平持续时间(微秒)",LF.MACHINE_TIME_PULSE_US_TOOLTIP="",LF.MPYTHON_I2C_INIT_HELPURL="https://mpython.readthedocs.io/zh/master/library/micropython/machine/machine.I2C.html#machine.I2C",LF.MPYTHON_I2C_INIT_MESSAGE0="初始化i2c 速率%1",LF.MPYTHON_I2C_INIT_TOOLTIP="",LF.MPYTHON_I2C_DEV_INIT_HELPURL="https://mpython.readthedocs.io/zh/master/library/micropython/machine/machine.I2C.html#machine.I2C",LF.MPYTHON_I2C_DEV_INIT_MESSAGE0="初始化%1 SCL %2 SDA %3 速率 %4",LF.MPYTHON_I2C_DEV_INIT_TOOLTIP="",LF.MPYTHON_I2C_SCAN_HELPURL="https://mpython.readthedocs.io/zh/master/library/micropython/machine/machine.I2C.html?highlight=I2C#machine.I2C.scan",LF.MPYTHON_I2C_SCAN_MESSAGE0="%1 扫描地址",LF.MPYTHON_I2C_SCAN_TOOLTIP="返回一个数组对象",LF.MPYTHON_I2C_DEINIT_HELPURL="https://mpython.readthedocs.io/zh/master/library/micropython/machine/machine.I2C.html?highlight=I2C#machine.I2C.deinit",LF.MPYTHON_I2C_DEINIT_MESSAGE0="关闭%1总线",LF.MPYTHON_I2C_DEINIT_TOOLTIP="",LF.MPYTHON_I2C_WRITETO_HELPURL="https://mpython.readthedocs.io/zh/master/library/micropython/machine/machine.I2C.html?highlight=I2C#id4",LF.MPYTHON_I2C_WRITETO_MESSAGE0="从%1 %5 地址%2 写入%3 停止位%4",LF.MPYTHON_I2C_WRITETO_TOOLTIP="地址:Number\n写入:Number、String",LF.MPYTHON_I2C_READFROM_HELPURL="https://mpython.readthedocs.io/zh/master/library/micropython/machine/machine.I2C.html?highlight=I2C#id4",LF.MPYTHON_I2C_READFROM_MESSAGE0="从%1 %5 地址%2 读取 字节数%3 停止位%4",LF.MPYTHON_I2C_READFROM_TOOLTIP="地址:Number\n返回:读取数据的 bytes 对象的字符串",LF.MPYTHON_I2C_READFROM_INTO_HELPURL="https://mpython.readthedocs.io/zh/master/library/micropython/machine/machine.I2C.html?highlight=I2C#id4",LF.MPYTHON_I2C_READFROM_INTO_MESSAGE0="从%1 %6 地址%2 读入缓存区%3 字节数%4 停止位%5",LF.MPYTHON_I2C_READFROM_INTO_TOOLTIP="",LF.MPYTHON_I2C_WRITETO_MEN_HELPURL="https://mpython.readthedocs.io/zh/master/library/micropython/machine/machine.I2C.html?highlight=I2C#id5",LF.MPYTHON_I2C_WRITETO_MEN_MESSAGE0="从%1 %5 地址%2 寄存器%4 写入%3",LF.MPYTHON_I2C_WRITETO_MEN_TOOLTIP="地址:Number\n写入:Number、String",LF.MPYTHON_I2C_READFROM_MEN_HELPURL="https://mpython.readthedocs.io/zh/master/library/micropython/machine/machine.I2C.html?highlight=I2C#id5",LF.MPYTHON_I2C_READFROM_MEN_MESSAGE0="从%1 %5 地址%2 寄存器%4 读取 字节数%3",LF.MPYTHON_I2C_READFROM_MEN_TOOLTIP="地址:Number\n返回:读取数据的 bytes 对象的字符串",LF.MPYTHON_I2C_READFROM_MEN_INTO_HELPURL="https://mpython.readthedocs.io/zh/master/library/micropython/machine/machine.I2C.html?highlight=I2C#id5",LF.MPYTHON_I2C_READFROM_MEN_INTO_MESSAGE0="从%1 %6 地址%2 寄存器%5 读入缓存区%3 字节数%4",LF.MPYTHON_I2C_READFROM_MEN_INTO_TOOLTIP="地址:Number\n返回:读取数据的 bytes 对象的字符串",LF.mpython_print_MESSAGE0="调试输出 %1",LF.mpython_print_TOOLTIP="通过串口调试,输出字符串",LF.MPYTHON_PRINT_TO_CHART_TOOLTIP="",LF.MPYTHON_PRINT_TO_CHART_EMPTY_TITLE="打印数据到图表",LF.MPYTHON_PRINT_TO_CHART_INPUT_WITH="打印数据到图表",LF.MPYTHON_PRINT_TO_CHART_ITEM_TITLE="数据",LF.MPYTHON_PRINT_TO_CHART_ITEM_TOOLTIP="",LF.MPYTHON_PRINT_TO_CHART_CONTAINER_TITLE_ADD="数据内容",LF.MPYTHON_PRINT_TO_CHART_CONTAINER_TOOLTIP="",LF.MPYTHON_INIT_CHART_TOOLTIP="",LF.MPYTHON_INIT_CHART_EMPTY_TITLE="初始化图表列标题",LF.MPYTHON_INIT_CHART_INPUT_WITH="初始化图表列标题",LF.MPYTHON_INIT_CHART_ITEM_TITLE="标题",LF.MPYTHON_INIT_CHART_ITEM_TOOLTIP="",LF.MPYTHON_INIT_CHART_CONTAINER_TITLE_ADD="数据列标题",LF.MPYTHON_INIT_CHART_CONTAINER_TOOLTIP="",LF.MPYTHON_MS="毫秒",LF.MPYTHON_US="微秒",LF.MPYTHON_TIME_DIFFERENCE_HELPURL="",LF.MPYTHON_TIME_DIFFERENCE_MESSAGE0="返回运行时间差 开始时间 %1 结束时间 %2",LF.MPYTHON_TIME_DIFFERENCE_TOOLTIP="测量连续调用ticks_ms()、ticks_us()间的周期",LF.MPYTHON_TYPE_HELPURL="",LF.MPYTHON_TYPE_MESSAGE0="值 %1 的类型",LF.MPYTHON_TYPE_TOOLTIP="",LF.MPYTHON_TYPE_IS_HELPURL="",LF.MPYTHON_TYPE_IS_MESSAGE0="值 %1 的类型为 %2",LF.MPYTHON_TYPE_IS_TOOLTIP="",LF.MPYTHON_EVAL_HELPURL="",LF.MPYTHON_EVAL_MESSAGE0="计算表达式 %1 的结果",LF.MPYTHON_EVAL_TOOLTIP="计算字符串表达式,并返回结果",LF.MPYTHON_RETURN_HELPURL="",LF.MPYTHON_RETURN_MESSAGE0="返回 %1",LF.MPYTHON_RETURN_TOOLTIP="",LF.MPYTHON_BLUEBIT_AMBIENTLIGHT_HELPURL="",LF.MPYTHON_BLUEBIT_AMBIENTLIGHT_MESSAGE0="I2C数字光线",LF.MPYTHON_BLUEBIT_AMBIENTLIGHT_TOOLTIP="",LF.MPYTHON_WIFI_ALL_CONFIG_HELPURL="",LF.MPYTHON_WIFI_ALL_CONFIG_MESSAGE0="WI-FI配置信息",LF.MPYTHON_WIFI_ALL_CONFIG_TOOLTIP="以元组形式返回所有wifi配置信息",LF.MPYTHON_WIFI_ISCONNECTED_HELPURL="",LF.MPYTHON_WIFI_ISCONNECTED_MESSAGE0="已连接到 WI-FI",LF.MPYTHON_WIFI_ISCONNECTED_TOOLTIP="",LF.MPYTHON_INIT_ASSISTANT_WIFI_HELPURL="",LF.MPYTHON_INIT_ASSISTANT_WIFI_MESSAGE0="Wi-Fi连接 语音助手 Wi-Fi 名称 %1 密码 %2",LF.MPYTHON_INIT_ASSISTANT_WIFI_TOOLTIP="掌控板通过串口把WIF传给语音助手",LF.MPYTHON_INIT_ASSISTANT_PROFILE_HELPURL="",LF.MPYTHON_INIT_ASSISTANT_PROFILE_TOOLTIP="需要先在文件系统将文件上传到板。",LF.MPYTHON_INIT_ASSISTANT_PROFILE_MESSAGE0="读取 语音助手 文本文件 %1",LF.MPYTHON_BLUEBIT_SEG_DISPLAY_HELPURL="",LF.MPYTHON_BLUEBIT_SEG_DISPLAY_MESSAGE0="数码管显示 %1",LF.MPYTHON_BLUEBIT_SEG_DISPLAY_TOOLTIP="-999~9999",LF.MPYTHON_BLUEBIT_SEG_CLEAR_HELPURL="",LF.MPYTHON_BLUEBIT_SEG_CLEAR_MESSAGE0="清空数码管",LF.MPYTHON_BLUEBIT_SEG_CLEAR_TOOLTIP="",LF.MPYTHON_MACHINE_RESET_HELPURL="",LF.MPYTHON_MACHINE_RESET_MESSAGE0="复位",LF.MPYTHON_MACHINE_RESET_TOOLTIP="与按下外部 RESET按键效果一样",LF.MPYTHON_BLUEBIT_GET_COLOR_HELPURL="",LF.MPYTHON_BLUEBIT_GET_COLOR_MESSAGE0="I2C RGB 颜色 %1",LF.MPYTHON_BLUEBIT_GET_COLOR_TOOLTIP="",LF.MPYTHON_BLUEBIT_GET_ALL_COLOR_HELPURL="",LF.MPYTHON_BLUEBIT_GET_ALL_COLOR_MESSAGE0="I2C RGB 颜色",LF.MPYTHON_BLUEBIT_GET_ALL_COLOR_TOOLTIP="以列表形式返回",LF.MPYTHON_BLUEBIT_GET_COLOR_HSV_HELPURL="",LF.MPYTHON_BLUEBIT_GET_COLOR_HSV_MESSAGE0="I2C HSV 颜色 %1",LF.MPYTHON_BLUEBIT_GET_COLOR_HSV_TOOLTIP="色调(H),饱和度(S),明度(V)",LF.MPYTHON_BLUEBIT_GET_ALL_COLOR_HSV_HELPURL="",LF.MPYTHON_BLUEBIT_GET_ALL_COLOR_HSV_MESSAGE0="I2C HSV 颜色",LF.MPYTHON_BLUEBIT_GET_ALL_COLOR_HSV_TOOLTIP="色调(H),饱和度(S),明度(V)",LF.MPYTHON_BLUEBIT_GET_FORCE_MEASURE_HELPURL="",LF.MPYTHON_BLUEBIT_GET_FORCE_MEASURE_MESSAGE0="I2C力传感器 拨码 %1",LF.MPYTHON_BLUEBIT_GET_FORCE_MEASURE_TOOLTIP="I2C地址与编码开关的需要对应",LF.MPYTHON_BLUEBIT_GET_ELECTRICITY_MEASURE_HELPURL="",LF.MPYTHON_BLUEBIT_GET_ELECTRICITY_MEASURE_MESSAGE0="I2C电流传感器 拨码 %1",LF.MPYTHON_BLUEBIT_GET_ELECTRICITY_MEASURE_TOOLTIP="I2C地址与编码开关的需要对应",LF.MPYTHON_BLUEBIT_GET_VOLTAGE_MEASURE_HELPURL="",LF.MPYTHON_BLUEBIT_GET_VOLTAGE_MEASURE_MESSAGE0="I2C电压传感器 拨码 %1",LF.MPYTHON_BLUEBIT_GET_VOLTAGE_MEASURE_TOOLTIP="I2C地址与编码开关的需要对应",LF.MPYTHON_BLUEBIT_GET_MAGNETIC_MEASURE_HELPURL="",LF.MPYTHON_BLUEBIT_GET_MAGNETIC_MEASURE_MESSAGE0="I2C磁场传感器 拨码 %1",LF.MPYTHON_BLUEBIT_GET_MAGNETIC_MEASURE_TOOLTIP="I2C地址与编码开关的需要对应",LF.MPYTHON_BLUEBIT_GET_PH_MEASURE_HELPURL="",LF.MPYTHON_BLUEBIT_GET_PH_MEASURE_MESSAGE0="I2C PH传感器 拨码 %1",LF.MPYTHON_BLUEBIT_GET_PH_MEASURE_TOOLTIP="I2C地址与编码开关的需要对应",LF.MPYTHON_BLUEBIT_GET_TDS_MEASURE_HELPURL="",LF.MPYTHON_BLUEBIT_GET_TDS_MEASURE_MESSAGE0="I2C电导率传感器 拨码 %1",LF.MPYTHON_BLUEBIT_GET_TDS_MEASURE_TOOLTIP="I2C地址与编码开关的需要对应",LF.MPYTHON_BLUEBIT_GET_PRESSURE_MEASURE_HELPURL="",LF.MPYTHON_BLUEBIT_GET_PRESSURE_MEASURE_MESSAGE0="I2C气压传感器 拨码 %1",LF.MPYTHON_BLUEBIT_GET_PRESSURE_MEASURE_TOOLTIP="I2C地址与编码开关的需要对应",LF.MPYTHON_BLUEBIT_GET_PHOTOGATE_TIMER_MEASURE_HELPURL="",LF.MPYTHON_BLUEBIT_GET_PHOTOGATE_TIMER_MEASURE_MESSAGE0="I2C光电门传感器 拨码 %1",LF.MPYTHON_BLUEBIT_GET_PHOTOGATE_TIMER_MEASURE_TOOLTIP="I2C地址与编码开关的需要对应",LF.MPYTHON_BLUEBIT_GET_MOTORPEED_HELPURL="",LF.MPYTHON_BLUEBIT_GET_MOTORPEED_MESSAGE0="拓展板 电机速度 %1",LF.MPYTHON_BLUEBIT_GET_MOTORPEED_TOOLTIP="",LF.MPYTHON_M1M2_LED_OFF_HELPURL="",LF.MPYTHON_M1M2_LED_OFF_MESSAGE0="拓展板 关灯 %1",LF.MPYTHON_M1M2_LED_OFF_TOOLTIP="",LF.MPYTHON_M1M2_LED_ON_HELPURL="",LF.MPYTHON_M1M2_LED_ON_MESSAGE0="拓展板 设灯 %1 亮度 %2",LF.MPYTHON_M1M2_LED_ON_TOOLTIP="",LF.MPYTHON_MUSIC_PIN_P6="默认",LF.MPYTHON_MUSIC_PIN_P6_HELPURL="",LF.MPYTHON_MUSIC_PIN_P6_MESSAGE0="%1",LF.MPYTHON_MUSIC_PIN_P6_TOOLTIP="",LF.MPYTHON_SLEEP_MESSAGE0="等待 %1 %2",LF.MPYTHON_SLEEP_TOOLTIP="在进行下一个命令前,等待设定的时间。\n1秒(s) = 1,000毫秒(ms)\n1秒(s) = 1,000,000微秒(μs)\n毫秒,符号ms(millisecond)\n微秒,符号μs(microsecond)",LF.MICROBIT_MICROBIT_RUNNING_TIME_MESSAGE0="运行时间",LF.MICROBIT_MICROBIT_RUNNING_TIME_TOOLTIP="获取开机或复位后的运行时间(毫秒)。",LF.MICROBIT_MICROBIT_RUNNING_TIME_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/microbit.html#microbit.running_time",LF.MICROBIT_MICROBIT_TEMPERATURE_MESSAGE0="温度",LF.MICROBIT_MICROBIT_TEMPERATURE_TOOLTIP="获取 micro:bit 的温度(℃)。",LF.MICROBIT_MICROBIT_TEMPERATURE_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/microbit.html#microbit.temperature",LF.MICROBIT_MUSIC_PLAY_BUILT_IN_MESSAGE0="播放音乐 %1 等待 %2 循环 %3 引脚 %4",LF.MICROBIT_MUSIC_PLAY_BUILT_IN_TOOLTIP="播放内置的音乐,可以设置等待模式和循环播放。",LF.MICROBIT_MUSIC_PLAY_BUILT_IN_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/music.html#built-in-melodies",LF.MICROBIT_MUSIC_PITCH_MESSAGE0="播放音调 %1 %2 延时 %3 毫秒 引脚 %4",LF.MICROBIT_MUSIC_PITCH_TOOLTIP="在设定的时间长度里播放音调。",LF.MICROBIT_MUSIC_PITCH_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/music.html#music.pitch",LF.MICROBIT_MUSIC_PLAY_LIST_OF_NOTES_MESSAGE0="引脚 %5 播放音符列表 %1 等待 %2 %3 循环 %4",LF.MICROBIT_MUSIC_PLAY_LIST_OF_NOTES_TOOLTIP="播放音符列表,如C4:4、G4:8等,音符为字符串形式。默认是掌控板的P6引脚",LF.MICROBIT_MUSIC_PLAY_LIST_OF_NOTES_HELPURL="https://mpython.readthedocs.io/zh/latest/tutorials/basics/buzz.html",LF.MICROBIT_MUSIC_RESET_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/music.html#music.reset",LF.MICROBIT_MUSIC_RESET_MESSAGE0="恢复音乐设置",LF.MICROBIT_MUSIC_RESET_TOOLTIP="将所有音乐设置 (当前节拍, 音阶和周期) 恢复成默认值。",LF.MICROBIT_MUSIC_STOP_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/music.html#music.stop",LF.MICROBIT_MUSIC_STOP_MESSAGE0="停止播放音乐 引脚 %1",LF.MICROBIT_MUSIC_STOP_TOOLTIP="默认是掌控板的P6引脚",LF.MICROBIT_MUSIC_SET_TEMPO_MESSAGE0="设置每一拍等同 %1 分音符,每分钟节拍数 %2",LF.MICROBIT_MUSIC_SET_TEMPO_TOOLTIP="设置回放速度 (节拍)。一定数量的滴答代表一拍,每拍每分钟播放次数 (BPM 每分钟节拍)。",LF.MICROBIT_MUSIC_SET_TEMPO_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/music.html#music.set_tempo",LF.MICROBIT_MUSIC_SET_TEMPO_SPEED_MESSAGE0="设置播放速度为 %1 倍",LF.MICROBIT_MUSIC_SET_TEMPO_SPEED_TOOLTIP="4分音符为1拍,每分钟节拍数默认120,为1倍的播放速度",LF.MICROBIT_MUSIC_SET_TEMPO_SPEED_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/music.html#music.set_tempo",LF.MICROBIT_MUSIC_GET_TEMPO_MESSAGE0="获取当前节拍",LF.MICROBIT_MUSIC_GET_TEMPO_TOOLTIP="获取当前节拍: 每节拍滴答数, 每分钟节拍 (BPM)。",LF.MICROBIT_MUSIC_GET_TEMPO_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/music.html#music.get_tempo",LF.MICROBIT_NEOPIXEL_INITIALISE_MESSAGE0="使用 引脚 %1 控制, neopixel 彩灯数 %2 ",LF.MICROBIT_NEOPIXEL_INITIALISE_TOOLTIP="控制 neopixels 彩灯。需要设定 neopixels 彩灯数量和控制脚。",LF.MICROBIT_NEOPIXEL_INITIALISE_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/neopixel.html#neopixel.NeoPixel",LF.MICROBIT_NEOPIXEL_CLEAR_MESSAGE0="清除 neopixels 彩灯 %1",LF.MICROBIT_NEOPIXEL_CLEAR_TOOLTIP="清除所有 neopixels 彩灯",LF.MICROBIT_NEOPIXEL_CLEAR_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/neopixel.html#neopixel.NeoPixel.clear",LF.MICROBIT_NEOPIXEL_SHOW_MESSAGE0="显示 neopixels 彩灯 %1",LF.MICROBIT_NEOPIXEL_SHOW_TOOLTIP="显示 / 更新全部 neopixels 彩灯。",LF.MICROBIT_NEOPIXEL_SHOW_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/neopixel.html#neopixel.NeoPixel.show",LF.MICROBIT_NEOPIXEL_SET_MESSAGE0="neopixels 彩灯控制 %1 设置位置 %2 红色 %3 绿色 %4 蓝色 %5",LF.MICROBIT_NEOPIXEL_SET_TOOLTIP="更新指定的 neopixel 彩灯的红、绿、蓝 (RGB) 颜色",LF.MICROBIT_NEOPIXEL_SET_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/neopixel.html#using-neopixels",LF.MICROBIT_PIN_TOUCHED_MESSAGE0="引脚 %1 被触摸",LF.MICROBIT_PIN_TOUCHED_TOOLTIP="如果引脚被触摸将返回 “真”。",LF.MICROBIT_PIN_TOUCHED_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/pin.html#microbit.MicroBitTouchPin.is_touched",LF.MICROBIT_PIN_WAS_PRESSED_MESSAGE0="引脚 %1 曾经被触摸",LF.MICROBIT_PIN_WAS_PRESSED_TOOLTIP="如果引脚曾经被触摸将返回 “真”。",LF.MICROBIT_PIN_WAS_PRESSED_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/pin.html#microbit.MicroBitTouchPin.was_pressed",LF.MICROBIT_PIN_GET_PRESSES_MESSAGE0="引脚 %1 被触摸的次数",LF.MICROBIT_PIN_GET_PRESSES_TOOLTIP="返回被触摸的次数,然后清零。",LF.MICROBIT_PIN_GET_PRESSES_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/pin.html#microbit.MicroBitTouchPin.get_presses",LF.MICROBIT_PIN_READ_ANALOG_MESSAGE0="读取引脚 %1 模拟电压",LF.MICROBIT_PIN_READ_ANALOG_TOOLTIP="读取引脚的模拟输入电压。",LF.MICROBIT_PIN_READ_ANALOG_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/pin.html#microbit.MicroBitAnalogDigitalPin.read_analog",LF.MICROBIT_PIN_WRITE_ANALOG_MESSAGE0="设置模拟量 %1 到引脚 %2",LF.MICROBIT_PIN_WRITE_ANALOG_TOOLTIP="写入模拟参数到指定引脚上。",LF.MICROBIT_PIN_WRITE_ANALOG_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/pin.html#microbit.MicroBitAnalogDigitalPin.write_analog",LF.MICROBIT_PIN_READ_DIGITAL_MESSAGE0="读取引脚 %1 的数字输入",LF.MICROBIT_PIN_READ_DIGITAL_TOOLTIP="读取引脚的数字输入 (真 或 假)。",LF.MICROBIT_PIN_READ_DIGITAL_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/pin.html#microbit.MicroBitDigitalPin.read_digital",LF.MICROBIT_PIN_WRITE_DIGITAL_MESSAGE0="设置数字输出 %1 到引脚 %2",LF.MICROBIT_PIN_WRITE_DIGITAL_TOOLTIP="写入数字量 (真 或 假) 到指定引脚。",LF.MICROBIT_PIN_WRITE_DIGITAL_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/pin.html#microbit.MicroBitDigitalPin.write_digital",LF.MICROBIT_RADIO_ON_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/radio.html#radio.on",LF.MICROBIT_RADIO_ON_MESSAGE0="打开无线广播",LF.MICROBIT_RADIO_ON_TOOLTIP="打开无线广播。需要明确声明调用,因为它会消耗更多功率和占用更多内存。",LF.MICROBIT_RADIO_OFF_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/radio.html#radio.off",LF.MICROBIT_RADIO_OFF_MESSAGE0="关闭无线广播",LF.MICROBIT_RADIO_OFF_TOOLTIP="关闭无线广播,节省功耗和内存。",LF.MICROBIT_RADIO_CONFIG_MESSAGE0="配置无线广播消息长度 %1 %2 最大队列数量 %3 %4 信道 %5 %6 广播功率 %7 %8 地址 %9 %10 组 %11 %12 数据速率 %13",LF.MICROBIT_RADIO_CONFIG_TOOLTIP="配置无线广播。\n 长度指单个消息的最大长度; \n 队列指可以存放在消息队列中消息的数量; \n 信道指无线广播使用的无线频率; \n 功率指发射广播信号的强度; \n 地址:32位值; \n 组:8位值(0-255); \n 数据速率指数据传输的速度。",LF.MICROBIT_RADIO_CONFIG_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/radio.html#radio.config",LF.MICROBIT_RADIO_RESET_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/radio.html#radio.reset",LF.MICROBIT_RADIO_RESET_MESSAGE0="复位无线广播",LF.MICROBIT_RADIO_RESET_TOOLTIP="恢复无线广播到默认设置。",LF.MICROBIT_RADIO_SEND_STRING_MESSAGE0="发送消息 %1",LF.MICROBIT_RADIO_SEND_STRING_TOOLTIP="广播文字消息。",LF.MICROBIT_RADIO_SEND_STRING_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/radio.html#radio.send",LF.MICROBIT_RADIO_SEND_BYTES_MESSAGE0="发送字节 %1",LF.MICROBIT_RADIO_SEND_BYTES_TOOLTIP="广播字节。",LF.MICROBIT_RADIO_SEND_BYTES_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/radio.html#radio.send",LF.MICROBIT_RADIO_RECEIVE_MESSAGE0="接收消息",LF.MICROBIT_RADIO_RECEIVE_TOOLTIP="接收消息。",LF.MICROBIT_RADIO_RECEIVE_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/radio.html#radio.receive",LF.MICROBIT_RADIO_RECEIVE_BYTES_MESSAGE0="接收字节",LF.MICROBIT_RADIO_RECEIVE_BYTES_TOOLTIP="接收字节。",LF.MICROBIT_RADIO_RECEIVE_BYTES_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/radio.html#radio.receive",LF.MICROBIT_SPEECH_SAY_MESSAGE0="说 %1",LF.MICROBIT_SPEECH_SAY_TOOLTIP="尝试说英语",LF.MICROBIT_SPEECH_SAY_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/speech.html#speech.say",LF.MICROBIT_SPEECH_PRONOUNCE_MESSAGE0="读 %1",LF.MICROBIT_SPEECH_PRONOUNCE_TOOLTIP="精确发音。",LF.MICROBIT_SPEECH_PRONOUNCE_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/speech.html#phonemes",LF.MICROBIT_SPEECH_SING_MESSAGE0="唱 %1",LF.MICROBIT_SPEECH_SING_TOOLTIP="象机器人一样唱歌。",LF.MICROBIT_SPEECH_SING_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/speech.html#singing",LF.MICROBIT_GESTURE_SHAKE="摇晃",LF.MICROBIT_GESTURE_UP="上",LF.MICROBIT_GESTURE_DOWN="下",LF.MICROBIT_GESTURE_LEFT="左",LF.MICROBIT_GESTURE_RIGHT="右",LF.MICROBIT_GESTURE_FACE_UP="朝上",LF.MICROBIT_GESTURE_FACE_DOWN="朝下",LF.MICROBIT_GESTURE_FREEFAIL="自由下落",LF.MICROBIT_IMAGE_HEART="心形",LF.MICROBIT_IMAGE_HEART_SMALL="心(小)",LF.MICROBIT_IMAGE_HAPPY="高兴",LF.MICROBIT_IMAGE_SMILE="笑脸",LF.MICROBIT_IMAGE_SAD="伤心",LF.MICROBIT_IMAGE_CONFUSED="困惑",LF.MICROBIT_IMAGE_ANGRY="生气",LF.MICROBIT_IMAGE_ASLEEP="睡着",LF.MICROBIT_IMAGE_SUPRISED="惊讶",LF.MICROBIT_IMAGE_SILLY="愚蠢",LF.MICROBIT_IMAGE_FABULOUS="极妙",LF.MICROBIT_IMAGE_MEH="无聊",LF.MICROBIT_IMAGE_YES="是",LF.MICROBIT_IMAGE_NO="否",LF.MICROBIT_IMAGE_CLOCK12="12点",LF.MICROBIT_IMAGE_CLOCK11="11点",LF.MICROBIT_IMAGE_CLOCK10="10点",LF.MICROBIT_IMAGE_CLOCK9="9点",LF.MICROBIT_IMAGE_CLOCK8="8点",LF.MICROBIT_IMAGE_CLOCK7="7点",LF.MICROBIT_IMAGE_CLOCK6="6点",LF.MICROBIT_IMAGE_CLOCK5="5点",LF.MICROBIT_IMAGE_CLOCK4="4点",LF.MICROBIT_IMAGE_CLOCK3="3点",LF.MICROBIT_IMAGE_CLOCK2="2点",LF.MICROBIT_IMAGE_CLOCK1="1点",LF.MICROBIT_IMAGE_ARROW_N="箭头-北",LF.MICROBIT_IMAGE_ARROW_NE="箭头-东北",LF.MICROBIT_IMAGE_ARROW_E="箭头-东",LF.MICROBIT_IMAGE_ARROW_SE="箭头-东南",LF.MICROBIT_IMAGE_ARROW_S="箭头-南",LF.MICROBIT_IMAGE_ARROW_SW="箭头-西南",LF.MICROBIT_IMAGE_ARROW_W="箭头-西",LF.MICROBIT_IMAGE_ARROW_NW="箭头-西北",LF.MICROBIT_IMAGE_TRIANGLE="三角形",LF.MICROBIT_IMAGE_TRIANGLE_LEFT="左三角形",LF.MICROBIT_IMAGE_CHESSBOARD="棋盘",LF.MICROBIT_IMAGE_DIAMOND="菱形",LF.MICROBIT_IMAGE_DIAMOND_SMALL="菱形(小)",LF.MICROBIT_IMAGE_SQUARE="方形",LF.MICROBIT_IMAGE_SQUARE_SMALL="方形(小)",LF.MICROBIT_IMAGE_RABBIT="兔子",LF.MICROBIT_IMAGE_COW="牛",LF.MICROBIT_IMAGE_MUSIC_CROTCHET="四分音符",LF.MICROBIT_IMAGE_MUSIC_QUAVER="八分音符",LF.MICROBIT_IMAGE_MUSIC_QUAVERS="颤音",LF.MICROBIT_IMAGE_PITCHFORK="叉子",LF.MICROBIT_IMAGE_XMAS="圣诞树",LF.MICROBIT_IMAGE_PACMAN="吃豆人",LF.MICROBIT_IMAGE_TARGET="目标",LF.MICROBIT_IMAGE_TSHIRT="T恤衫",LF.MICROBIT_IMAGE_ROLLERSKATE="轮滑",LF.MICROBIT_IMAGE_DUCK="鸭子",LF.MICROBIT_IMAGE_HOUSE="房子",LF.MICROBIT_IMAGE_TORTOISE="乌龟",LF.MICROBIT_IMAGE_BUTTERFLY="蝴蝶",LF.MICROBIT_IMAGE_STICKFIGURE="线条画",LF.MICROBIT_IMAGE_GHOST="幽灵",LF.MICROBIT_IMAGE_SWORD="宝剑",LF.MICROBIT_IMAGE_GIRAFFE="长颈鹿",LF.MICROBIT_IMAGE_SKULL="头",LF.MICROBIT_IMAGE_UMBRELLA="伞",LF.MICROBIT_IMAGE_SNAKE="蛇",LF.MICROBIT_IMAGE_ALL_CLOCKS="所有时钟",LF.MICROBIT_IMAGE_ALL_ARROWS="所有箭头",LF.MICROBIT_PIN_SET_SERVO_HELPURL="http://wiki.labplus.cn/index.php?title=%E8%88%B5%E6%9C%BA",LF.MICROBIT_PIN_SET_SERVO_TOOLTIP="设置舵机角度,范围为 0 ~ 180度",LF.MICROBIT_PIN_SET_SERVO_MESSAGE0="设置舵机 引脚 %1 角度为 %2",LF.MICROBIT_PIN_SET_MODE_HELPURL="",LF.MICROBIT_PIN_SET_MODE_TOOLTIP="引脚模式有三种:悬空、上拉、下拉",LF.MICROBIT_PIN_SET_MODE_MESSAGE0="设置引脚 %1 模式为 %2",LF.MICROBIT_PIN_MODE_NO="悬空",LF.MICROBIT_PIN_MODE_UP="上拉",LF.MICROBIT_PIN_MODE_DOWN="下拉",LF.MICROBIT_UART_INIT_MESSAGE0="初始化串口波特率为 %3 TX为 %1 RX为 %2",LF.MICROBIT_UART_INIT_TOOLTIP="",LF.MICROBIT_UART_INIT_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/uart.html",LF.MICROBIT_UART_ANY_MSG_RECEIVED_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/uart.html",LF.MICROBIT_UART_ANY_MSG_RECEIVED_TOOLTIP="",LF.MICROBIT_UART_ANY_MSG_RECEIVED_MESSAGE0="串口接收到数据",LF.MICROBIT_UART_READ_MSG_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/uart.html",LF.MICROBIT_UART_READ_MSG_TOOLTIP="",LF.MICROBIT_UART_READ_MSG_MESSAGE0="读取串口 %1 字节",LF.MICROBIT_UART_READ_MSG_TO_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/uart.html",LF.MICROBIT_UART_READ_MSG_TO_TOOLTIP="",LF.MICROBIT_UART_READ_MSG_TO_MESSAGE0="读取串口 %1 字节存至 %2",LF.MICROBIT_UART_WRITE_MSG_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/uart.html",LF.MICROBIT_UART_WRITE_MSG_TOOLTIP="",LF.MICROBIT_UART_WRITE_MSG_MESSAGE0="串口发送数据 %1",LF.MICROBIT_ALL_BYTES="全部",LF.MICROBIT_ALINE_BYTES="一行",LF.LABPLUS_BUTTON_IS_PRESSED_MESSAGE0="引脚 %1 被触发",LF.LABPLUS_BUTTON_IS_PRESSED_TOOLTIP="如果指定按键按下返回 “真”,否则返回 “假”。",LF.LABPLUS_BUTTON_IS_PRESSED_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/button.html#Button.is_pressed",LF.LABPLUS_BUTTON_WAS_PRESSED_MESSAGE0="引脚 %1 曾经被触发",LF.LABPLUS_BUTTON_WAS_PRESSED_TOOLTIP="如果按键曾经按下过返回 “真”,否则返回 “假”。",LF.LABPLUS_BUTTON_WAS_PRESSED_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/button.html#Button.was_pressed",LF.LABPLUS_BUTTON_GET_PRESSES_MESSAGE0="引脚 %1 被触发过的次数",LF.LABPLUS_BUTTON_GET_PRESSES_TOOLTIP="返回按键按下的总次数,然后清除计数。",LF.LABPLUS_BUTTON_GET_PRESSES_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/button.html#Button.get_presses",LF.LABPLUS_LED_MESSAGE0="设置LED灯 引脚 %2 输出 %1",LF.LABPLUS_LED_TOOLTIP="",LF.LABPLUS_LED_HELPURL="http://wiki.labplus.cn/index.php?title=LED",LF.LABPLUS_INFRARED_IS_TRIGGERED_MESSAGE0="红外探测 引脚 %1 被触发",LF.LABPLUS_INFRARED_IS_TRIGGERED_TOOLTIP="",LF.LABPLUS_INFRARED_IS_TRIGGERED_HELPURL="http://wiki.labplus.cn/index.php?title=%E7%BA%A2%E5%A4%96%E6%8E%A2%E6%B5%8B",LF.LABPLUS_HEAT_SENSITIVE_DETECTOR_MESSAGE0="热敏传感器 引脚 %1 的值",LF.LABPLUS_HEAT_SENSITIVE_DETECTOR_TOOLTIP="",LF.LABPLUS_HEAT_SENSITIVE_DETECTOR_HELPURL="http://wiki.labplus.cn/index.php?title=%E7%83%AD%E6%95%8F%E7%94%B5%E9%98%BB",LF.LABPLUS_I2C_LIGHT_SENSOR_MESSAGE0="I2C数字光线传感器的值(lux)",LF.LABPLUS_I2C_LIGHT_SENSOR_TOOLTIP="",LF.LABPLUS_I2C_LIGHT_SENSOR_HELPURL="http://wiki.labplus.cn/index.php?title=%E6%95%B0%E5%AD%97%E5%85%89%E7%BA%BF",LF.LABPLUS_WATER_LEVEL_DETECTOR_MESSAGE0="水位传感器 引脚 %1 的值",LF.LABPLUS_WATER_LEVEL_DETECTOR_TOOLTIP="",LF.LABPLUS_WATER_LEVEL_DETECTOR_HELPURL="http://wiki.labplus.cn/index.php?title=%E6%B0%B4%E4%BD%8D",LF.LABPLUS_SMOKE_DETECTOR_IS_TRIGGERED_MESSAGE0="烟雾探测器 引脚 %1 被触发",LF.LABPLUS_SMOKE_DETECTOR_IS_TRIGGERED_TOOLTIP="",LF.LABPLUS_SMOKE_DETECTOR_IS_TRIGGERED_HELPURL="http://wiki.labplus.cn/index.php?title=%E7%83%9F%E9%9B%BE",LF.LABPLUS_BUZZER_FOR_HELPURL="http://wiki.labplus.cn/index.php?title=%E8%9C%82%E9%B8%A3%E5%99%A8",LF.LABPLUS_BUZZER_FOR_TOOLTIP="",LF.LABPLUS_BUZZER_FOR_MESSAGE0="以频率 %1 激活蜂鸣器 引脚0 %2 毫秒",LF.LABPLUS_BUZZER_ON_HELPURL="http://wiki.labplus.cn/index.php?title=%E8%9C%82%E9%B8%A3%E5%99%A8",LF.LABPLUS_BUZZER_ON_TOOLTIP="",LF.LABPLUS_BUZZER_ON_MESSAGE0="以频率 %1 激活蜂鸣器 引脚0",LF.LABPLUS_BUZZER_OFF_HELPURL="http://wiki.labplus.cn/index.php?title=%E8%9C%82%E9%B8%A3%E5%99%A8",LF.LABPLUS_BUZZER_OFF_TOOLTIP="",LF.LABPLUS_BUZZER_OFF_MESSAGE0="关闭蜂鸣器 引脚0",LF.LABPLUS_TM_HM_SENSOR_MESSAGE0="I2C温湿度传感器的 %1 值",LF.LABPLUS_TM_HM_SENSOR_TOOLTIP="",LF.LABPLUS_TM_HM_SENSOR_HELPURL="http://wiki.labplus.cn/index.php?title=%E6%B8%A9%E6%B9%BF%E5%BA%A6",LF.LABPLUS_TM_HM_SENSOR_TM="温度",LF.LABPLUS_TM_HM_SENSOR_HM="湿度",LF.LABPLUS_SET_SERVO_HELPURL="http://wiki.labplus.cn/index.php?title=%E8%88%B5%E6%9C%BA",LF.LABPLUS_SET_SERVO_TOOLTIP="",LF.LABPLUS_SET_SERVO_MESSAGE0="设置舵机 引脚 %1 角度为 %2",LF.LABPLUS_FINGERPRINT_SENSOR_MESSAGE0="指纹传感器 引脚 %1 验证通过",LF.LABPLUS_FINGERPRINT_SENSOR_TOOLTIP="",LF.LABPLUS_FINGERPRINT_SENSOR_HELPURL="http://wiki.labplus.cn/index.php?title=%E6%8C%87%E7%BA%B9",LF.LABPLUS_SET_MOTOR_HELPURL="",LF.LABPLUS_SET_MOTOR_TOOLTIP="",LF.LABPLUS_SET_MOTOR_MESSAGE0="设置电机 %1 方向 %2 速度 %3",LF.LABPLUS_SET_MOTOR_CLOCKWISE="正转",LF.LABPLUS_SET_MOTOR_ANTI_CLOCKWISE="反转",LF.LABPLUS_STOP_MOTOR_HELPURL="",LF.LABPLUS_STOP_MOTOR_TOOLTIP="",LF.LABPLUS_STOP_MOTOR_MESSAGE0="停止电机",LF.LABPLUS_GET_RFID_ID_MESSAGE0="射频卡 引脚 %1 验证通过",LF.LABPLUS_GET_RFID_ID_TOOLTIP="",LF.LABPLUS_GET_RFID_ID_HELPURL="http://wiki.labplus.cn/index.php?title=RFID",LF.LABPLUS_GET_RFID_VALUE_MESSAGE0="电子钱包 引脚 %1 余额",LF.LABPLUS_GET_RFID_VALUE_TOOLTIP="",LF.LABPLUS_GET_RFID_VALUE_HELPURL="",LF.LABPLUS_SET_RFID_VALUE_MESSAGE0="设置电子钱包 引脚 %1 余额 %2 %3",LF.LABPLUS_SET_RFID_VALUE_TOOLTIP="",LF.LABPLUS_SET_RFID_VALUE_HELPURL="",LF.LABPLUS_SET_RFID_ADD="增加",LF.LABPLUS_SET_RFID_MINUS="减少",LF.LABPLUS_SOUND_IS_TRIGGERED_MESSAGE0="声音传感器 引脚 %1 被触发",LF.LABPLUS_SOUND_IS_TRIGGERED_TOOLTIP="",LF.LABPLUS_SOUND_IS_TRIGGERED_HELPURL="http://wiki.labplus.cn/index.php?title=%E9%BA%A6%E5%85%8B%E9%A3%8E",LF.LABPLUS_USB_SWITCH_HELPURL="",LF.LABPLUS_USB_SWITCH_TOOLTIP="",LF.LABPLUS_USB_SWITCH_MESSAGE0="%1 USB开关 引脚 %2",LF.LABPLUS_USB_SWITCH_ON="打开",LF.LABPLUS_USB_SWITCH_OFF="关闭",LF.LABPLUS_VOICE_RECORD_HELPURL="",LF.LABPLUS_VOICE_RECORD_TOOLTIP="",LF.LABPLUS_VOICE_RECORD_MESSAGE0="%1 语音录放器 引脚 %2",LF.LABPLUS_VOICE_RECORD_ON="打开",LF.LABPLUS_VOICE_RECORD_OFF="关闭",LF.LABPLUS_RGB_INITIALISE_MESSAGE0="使用 引脚 %1 控制,RGB 彩灯数 %2 ",LF.LABPLUS_RGB_INITIALISE_TOOLTIP="控制 RGB 彩灯。需要设定 neopixels 彩灯数量和控制脚。",LF.LABPLUS_RGB_INITIALISE_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/neopixel.html#neopixel.NeoPixel",LF.LABPLUS_RGB_CLEAR_MESSAGE0="清除 RGB 彩灯 %1",LF.LABPLUS_RGB_CLEAR_TOOLTIP="清除所有 RGB 彩灯",LF.LABPLUS_RGB_CLEAR_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/neopixel.html#neopixel.NeoPixel.clear",LF.LABPLUS_RGB_SHOW_MESSAGE0="显示 RGB 彩灯 %1",LF.LABPLUS_RGB_SHOW_TOOLTIP="显示 / 更新全部 RGB 彩灯。",LF.LABPLUS_RGB_SHOW_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/neopixel.html#neopixel.NeoPixel.show",LF.LABPLUS_RGB_SET_MESSAGE0="RGB 彩灯控制 %1 设置位置 %2 红色 %3 绿色 %4 蓝色 %5",LF.LABPLUS_RGB_SET_TOOLTIP="更新指定的 RGB 彩灯的红、绿、蓝 (RGB) 颜色",LF.LABPLUS_RGB_SET_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/neopixel.html#using-neopixels",LF.LABPLUS_COMPITITION_INIT_EXTENDED_PINS_MESSAGE0="设置扩展端口 IO %1 为 %2",LF.LABPLUS_COMPITITION_INIT_EXTENDED_PINS_TOOLTIP="0表示输出引脚,1表示输入引脚",LF.LABPLUS_COMPITITION_INIT_EXTENDED_PINS_HELPURL="http://wiki.labplus.cn/index.php?title=%E7%AB%AF%E5%8F%A3%E6%89%A9%E5%B1%95",LF.LABPLUS_COMPITITION_INIT_EXTENDED_PINS_INPUT="输入",LF.LABPLUS_COMPITITION_INIT_EXTENDED_PINS_OUTPUT="输出",LF.LABPLUS_READ_EXTENDED_PIN_HELPURL="http://wiki.labplus.cn/index.php?title=%E7%AB%AF%E5%8F%A3%E6%89%A9%E5%B1%95",LF.LABPLUS_READ_EXTENDED_PIN_TOOLTIP="",LF.LABPLUS_READ_EXTENDED_PIN_MESSAGE0="读取扩展端口值 IO %1",LF.LABPLUS_WRITE_EXTENDED_PIN_HELPURL="http://wiki.labplus.cn/index.php?title=%E7%AB%AF%E5%8F%A3%E6%89%A9%E5%B1%95",LF.LABPLUS_WRITE_EXTENDED_PIN_TOOLTIP="",LF.LABPLUS_WRITE_EXTENDED_PIN_MESSAGE0="设置扩展端口 IO %1 值为 %2",LF.LABPLUS_I2C_ULTRASONIC_HELPURL="http://wiki.labplus.cn/index.php?title=%E8%B6%85%E5%A3%B0%E6%B3%A2",LF.LABPLUS_I2C_ULTRASONIC_TOOLTIP="",LF.LABPLUS_I2C_ULTRASONIC_MESSAGE0="I2C超声波传感器的值",LF.MICROBIT_SET_MUSIC_PIN_HELPURL="",LF.MICROBIT_SET_MUSIC_PIN_TOOLTIP="",LF.MICROBIT_SET_MUSIC_PIN_MESSAGE0="设置默认蜂鸣器引脚为 %1",LF.LABPLUS_HUMAN_DETECTOR_IS_TRIGGERED_HELPURL="http://wiki.labplus.cn/index.php?title=%E4%BA%BA%E4%BD%93%E6%84%9F%E5%BA%94",LF.LABPLUS_HUMAN_DETECTOR_IS_TRIGGERED_TOOLTIP="",LF.LABPLUS_HUMAN_DETECTOR_IS_TRIGGERED_MESSAGE0="人体感应 引脚 %1 被触发",LF.LABPLUS_MAGNETIC_SWITCH_IS_TRIGGERED_HELPURL="http://wiki.labplus.cn/index.php?title=%E9%97%A8%E7%A3%81%E5%BC%80%E5%85%B3",LF.LABPLUS_MAGNETIC_SWITCH_IS_TRIGGERED_TOOLTIP="",LF.LABPLUS_MAGNETIC_SWITCH_IS_TRIGGERED_MESSAGE0="门磁开关 引脚 %1 被触发",LF.LABPLUS_SOUND_LEVEL_SENSOR_HELPURL="",LF.LABPLUS_SOUND_LEVEL_SENSOR_TOOLTIP="",LF.LABPLUS_SOUND_LEVEL_SENSOR_MESSAGE0="声音传感器 引脚 %1 的值",LF.LABPLUS_SMOKE_SENSOR_HELPURL="http://wiki.labplus.cn/index.php?title=%E7%83%9F%E9%9B%BE",LF.LABPLUS_SMOKE_SENSOR_TOOLTIP="",LF.LABPLUS_SMOKE_SENSOR_MESSAGE0="烟雾传感器 引脚 %1 的值",LF.LABPLUS_SOIL_MOISTURE_SENSOR_HELPURL="http://wiki.labplus.cn/index.php?title=%E5%9C%9F%E5%A3%A4%E6%B9%BF%E5%BA%A6",LF.LABPLUS_SOIL_MOISTURE_SENSOR_TOOLTIP="",LF.LABPLUS_SOIL_MOISTURE_SENSOR_MESSAGE0="土壤湿度传感器 引脚 %1 的值",LF.LABPLUS_FAN_SWITCH_HELPURL="http://wiki.labplus.cn/index.php?title=%E6%8E%92%E9%A3%8E%E6%89%87",LF.LABPLUS_FAN_SWITCH_TOOLTIP="",LF.LABPLUS_FAN_SWITCH_MESSAGE0="%1 风扇 引脚 %2",LF.LABPLUS_VOICE_RECORD_ON_HELPURL="http://wiki.labplus.cn/index.php?title=%E8%AF%AD%E9%9F%B3%E5%BD%95%E6%94%BE",LF.LABPLUS_VOICE_RECORD_ON_TOOLTIP="",LF.LABPLUS_VOICE_RECORD_ON_MESSAGE0="打开录放器 %1 引脚 %2",LF.LABPLUS_VOICE_RECORD_PLAY="播放",LF.LABPLUS_VOICE_RECORD_REC="录音",LF.LABPLUS_VOICE_RECORD_OFF_HELPURL="http://wiki.labplus.cn/index.php?title=%E8%AF%AD%E9%9F%B3%E5%BD%95%E6%94%BE",LF.LABPLUS_VOICE_RECORD_OFF_TOOLTIP="",LF.LABPLUS_VOICE_RECORD_OFF_MESSAGE0="关闭录放器 引脚 %1",LF.LABPLUS_MOTOR_ON_HELPURL="http://wiki.labplus.cn/index.php?title=%E7%94%B5%E6%9C%BA%E9%A9%B1%E5%8A%A8",LF.LABPLUS_MOTOR_ON_TOOLTIP="",LF.LABPLUS_MOTOR_ON_MESSAGE0="打开直流电机 %1 速度 %2 引脚 %3",LF.LABPLUS_MOTOR_ON_CLOCKWISE="正转",LF.LABPLUS_MOTOR_ON_ANTICLOCKWISE="反转",LF.LABPLUS_MOTOR_OFF_HELPURL="http://wiki.labplus.cn/index.php?title=%E7%94%B5%E6%9C%BA%E9%A9%B1%E5%8A%A8",LF.LABPLUS_MOTOR_OFF_TOOLTIP="",LF.LABPLUS_MOTOR_OFF_MESSAGE0="停止直流电机 引脚 %1",LF.LABPLUS_READ_COLOR_FROM_I2C_HELPURL="http://wiki.labplus.cn/index.php?title=%E9%A2%9C%E8%89%B2",LF.LABPLUS_READ_COLOR_FROM_I2C_TOOLTIP="",LF.LABPLUS_READ_COLOR_FROM_I2C_MESSAGE0="I2C颜色传感器读取并储存颜色",LF.LABPLUS_RGB_COLOR_HELPURL="http://wiki.labplus.cn/index.php?title=RGB_LED",LF.LABPLUS_RGB_COLOR_TOOLTIP="读取已储存的颜色",LF.LABPLUS_RGB_COLOR_MESSAGE0="RGB颜色 %1",LF.LABPLUS_SET_I2C_DIGITS_HELPURL="http://wiki.labplus.cn/index.php?title=%E6%95%B0%E7%A0%81%E7%AE%A1",LF.LABPLUS_SET_I2C_DIGITS_TOOLTIP="",LF.LABPLUS_SET_I2C_DIGITS_MESSAGE0="设置I2C数码管的值为 %1",LF.LABPLUS_TURN_OFF_I2C_DIGITS_HELPURL="http://wiki.labplus.cn/index.php?title=%E6%95%B0%E7%A0%81%E7%AE%A1",LF.LABPLUS_TURN_OFF_I2C_DIGITS_TOOLTIP="",LF.LABPLUS_TURN_OFF_I2C_DIGITS_MESSAGE0="关闭I2C数码管",LF.LABPLUS_UART_SET_MIDI_MELODIC_HELPURL="http://wiki.labplus.cn/index.php?title=%E7%94%B5%E5%AD%90%E7%90%B4",LF.LABPLUS_UART_SET_MIDI_MELODIC_TOOLTIP="",LF.LABPLUS_UART_SET_MIDI_MELODIC_MESSAGE0="设置MIDI模块音调为 %1",LF.LABPLUS_UART_PLAY_MIDI_NOTE_HELPURL="http://wiki.labplus.cn/index.php?title=%E7%94%B5%E5%AD%90%E7%90%B4",LF.LABPLUS_UART_PLAY_MIDI_NOTE_TOOLTIP="",LF.LABPLUS_UART_PLAY_MIDI_NOTE_MESSAGE0="MIDI模块 %2 音符 %1",LF.LABPLUS_UART_PLAY_MIDI_NOTE_Do="Do",LF.LABPLUS_UART_PLAY_MIDI_NOTE_Re="Re",LF.LABPLUS_UART_PLAY_MIDI_NOTE_Mi="Mi",LF.LABPLUS_UART_PLAY_MIDI_NOTE_Fa="Fa",LF.LABPLUS_UART_PLAY_MIDI_NOTE_Sol="Sol",LF.LABPLUS_UART_PLAY_MIDI_NOTE_La="La",LF.LABPLUS_UART_PLAY_MIDI_NOTE_Si="Si";LF.LABPLUS_UART_PLAY_MIDI_NOTE="播放",LF.LABPLUS_UART_OFF_MIDI_NOTE="停止",LF.LABPLUS_UART_OFF_MIDI_NOTE_HELPURL="http://wiki.labplus.cn/index.php?title=%E7%94%B5%E5%AD%90%E7%90%B4",LF.LABPLUS_UART_OFF_MIDI_NOTE_TOOLTIP="",LF.LABPLUS_UART_OFF_MIDI_NOTE_MESSAGE0="MIDI模块停止播放音符 %1",LF.LABPLUS_UART_INIT_MIDI_HELPURL="http://wiki.labplus.cn/index.php?title=%E7%94%B5%E5%AD%90%E7%90%B4",LF.LABPLUS_UART_INIT_MIDI_TOOLTIP="",LF.LABPLUS_UART_INIT_MIDI_MESSAGE0="初始化MIDI模块 %1",LF.LABPLUS_LINE_FOLLOWER_IS_TRIGGERED_HELPURL="http://wiki.labplus.cn/index.php?title=%E5%BE%AA%E8%BF%B9",LF.LABPLUS_LINE_FOLLOWER_IS_TRIGGERED_TOOLTIP="",LF.LABPLUS_LINE_FOLLOWER_IS_TRIGGERED_MESSAGE0="循迹传感器 引脚 %1 检测为黑",LF.LABPLUS_TEMPERATURE_SENSOR_HELPURL="http://wiki.labplus.cn/index.php?title=LM35%E6%B8%A9%E5%BA%A6",LF.LABPLUS_TEMPERATURE_SENSOR_TOOLTIP="",LF.LABPLUS_TEMPERATURE_SENSOR_MESSAGE0="LM35温度传感器 引脚 %1 的值",LF.LABPLUS_ROTATE_DIMMER_HELPURL="http://wiki.labplus.cn/index.php?title=%E6%97%8B%E9%92%AE%E7%94%B5%E4%BD%8D%E5%99%A8",LF.LABPLUS_ROTATE_DIMMER_TOOLTIP="",LF.LABPLUS_ROTATE_DIMMER_MESSAGE0="旋转电位器 引脚 %1 的值",LF.LABPLUS_SHAKE_DETECTOR_IS_TRIGGERED_HELPURL="http://wiki.labplus.cn/index.php?title=%E9%9C%87%E5%8A%A8",LF.LABPLUS_SHAKE_DETECTOR_IS_TRIGGERED_TOOLTIP="",LF.LABPLUS_SHAKE_DETECTOR_IS_TRIGGERED_MESSAGE0="震动传感器 引脚 %1 被触发",LF.LABPLUS_LASER_SWITCH_HELPURL="http://wiki.labplus.cn/index.php?title=%E6%BF%80%E5%85%89%E5%8F%91%E5%B0%84",LF.LABPLUS_LASER_SWITCH_TOOLTIP="",LF.LABPLUS_LASER_SWITCH_MESSAGE0="%1 激光开关 引脚 %2",LF.LABPLUS_4BUTTON_HELPURL="http://wiki.labplus.cn/index.php?title=%E5%9B%9B%E6%8C%89%E9%94%AE",LF.LABPLUS_4BUTTON_TOOLTIP="",LF.LABPLUS_4BUTTON_MESSAGE0="四向按键模块 引脚 %1 按键 %2 被按下",LF.BLUE="A",LF.GREEN="B",LF.RED="C",LF.YELLOW="D",LF.LABPLUS_JOYSTICK_HELPURL="",LF.LABPLUS_JOYSTICK_TOOLTIP="",LF.LABPLUS_JOYSTICK_MESSAGE0="摇杆 引脚A0 %1 引脚A1 %2 %3 轴的值",LF.LABPLUS_UART_MP3_PLAY_HELPURL="http://wiki.labplus.cn/index.php?title=%E9%9F%B3%E4%B9%90%E6%92%AD%E6%94%BE",LF.LABPLUS_UART_MP3_PLAY_TOOLTIP="",LF.LABPLUS_UART_MP3_PLAY_MESSAGE0="MP3模块(UART)播放第 %1 首音乐",LF.LABPLUS_UART_MP3_SET_VOLUME_HELPURL="http://wiki.labplus.cn/index.php?title=%E9%9F%B3%E4%B9%90%E6%92%AD%E6%94%BE",LF.LABPLUS_UART_MP3_SET_VOLUME_TOOLTIP="",LF.LABPLUS_UART_MP3_SET_VOLUME_MESSAGE0="设置MP3模块(UART)音量为 %1",LF.LABPLUS_UART_MP3_SET_STATUS_HELPURL="http://wiki.labplus.cn/index.php?title=%E9%9F%B3%E4%B9%90%E6%92%AD%E6%94%BE",LF.LABPLUS_UART_MP3_SET_STATUS_TOOLTIP="",LF.LABPLUS_UART_MP3_SET_STATUS_MESSAGE0="设置MP3模块(UART)状态为 %1",LF.PAUSE="暂停",LF.STOP="停止",LF.PLAY="继续播放",LF.PLAYNEXT="下一首",LF.PLAYPREV="上一首",LF.LABPLUS_UART_INIT_HELPURL="http://wiki.labplus.cn/index.php?title=Bluebit",LF.LABPLUS_UART_INIT_TOOLTIP="",LF.LABPLUS_UART_INIT_MESSAGE0="初始化串口波特率为 %3 TX为 %1 RX为 %2",LF.LABPLUS_VOICE_RECORD_ON1_HELPURL="http://wiki.labplus.cn/index.php?title=%E8%AF%AD%E9%9F%B3%E5%BD%95%E6%94%BE",LF.LABPLUS_VOICE_RECORD_ON1_TOOLTIP="",LF.LABPLUS_VOICE_RECORD_ON1_MESSAGE0="打开录放器 %1 %2 引脚REC %3 引脚PLAY %4",LF.LABPLUS_VOICE_RECORD_OFF1_HELPURL="http://wiki.labplus.cn/index.php?title=%E8%AF%AD%E9%9F%B3%E5%BD%95%E6%94%BE",LF.LABPLUS_VOICE_RECORD_OFF1_TOOLTIP="",LF.LABPLUS_VOICE_RECORD_OFF1_MESSAGE0="关闭录放器 %1 引脚REC %2 引脚PLAY %3",LF.LABPLUS_MOTOR_ON1_HELPURL="http://wiki.labplus.cn/index.php?title=%E7%94%B5%E6%9C%BA%E9%A9%B1%E5%8A%A8",LF.LABPLUS_MOTOR_ON1_TOOLTIP="",LF.LABPLUS_MOTOR_ON1_MESSAGE0="打开直流电机 %1 速度 %2 引脚AIN1 %3 引脚AIN2 %4",LF.LABPLUS_MOTOR_OFF1_HELPURL="http://wiki.labplus.cn/index.php?title=%E7%94%B5%E6%9C%BA%E9%A9%B1%E5%8A%A8",LF.LABPLUS_MOTOR_OFF1_TOOLTIP="",LF.LABPLUS_MOTOR_OFF1_MESSAGE0="停止直流电机 %1 引脚AIN1 %2 引脚AIN2 %3",LF.LABPLUS_SET_I2C_LCD1602_CURSOR_HELPURL="http://wiki.labplus.cn/index.php?title=1602_LCD",LF.LABPLUS_SET_I2C_LCD1602_CURSOR_TOOLTIP="",LF.LABPLUS_SET_I2C_LCD1602_CURSOR_MESSAGE0="设置LCD游标位置%1 X %2 Y %3",LF.LABPLUS_SET_I2C_LCD1602_PRINT_HELPURL="http://wiki.labplus.cn/index.php?title=1602_LCD",LF.LABPLUS_SET_I2C_LCD1602_PRINT_TOOLTIP="",LF.LABPLUS_SET_I2C_LCD1602_PRINT_MESSAGE0="设置LCD显示 %1",LF.LABPLUS_SET_I2C_LCD1602_SCROLL_HELPURL="http://wiki.labplus.cn/index.php?title=1602_LCD",LF.LABPLUS_SET_I2C_LCD1602_SCROLL_TOOLTIP="配合循环次数使用",LF.LABPLUS_SET_I2C_LCD1602_SCROLL_MESSAGE0="%1滚动LCD显示内容",LF.LABPLUS_SET_I2C_LCD1602_SCROLL_ALEFT="向左",LF.LABPLUS_SET_I2C_LCD1602_SCROLL_RIGHTWARD="向右",LF.LABPLUS_SET_I2C_LCD1602_CLEAR_HELPURL="http://wiki.labplus.cn/index.php?title=1602_LCD",LF.LABPLUS_SET_I2C_LCD1602_CLEAR_TOOLTIP="",LF.LABPLUS_SET_I2C_LCD1602_CLEAR_MESSAGE0="清除LCD显示内容",LF.LABPLUS_UART_ANY_MSG_RECEIVED_HELPURL="http://wiki.labplus.cn/index.php?title=Bluebit",LF.LABPLUS_UART_ANY_MSG_RECEIVED_TOOLTIP="",LF.LABPLUS_UART_ANY_MSG_RECEIVED_MESSAGE0="%1 接收到数据",LF.BLUEBIT_UART="串口",LF.BLUEBIT_INFRARED_SIGNAL="红外信号",LF.BLUEBIT_BLUEBOOTH="蓝牙",LF.LABPLUS_UART_READ_MSG_HELPURL="http://wiki.labplus.cn/index.php?title=Bluebit",LF.LABPLUS_UART_READ_MSG_TOOLTIP="",LF.LABPLUS_UART_READ_MSG_MESSAGE0="读取 %1 数据",LF.LABPLUS_UART_WRITE_MSG_HELPURL="http://wiki.labplus.cn/index.php?title=Bluebit",LF.LABPLUS_UART_WRITE_MSG_TOOLTIP="",LF.LABPLUS_UART_WRITE_MSG_MESSAGE0="%1 发送数据 %2",LF.LABPLUS_SET_I2C_LED_MATRIX_HELPURL="http://wiki.labplus.cn/index.php?title=%E7%82%B9%E9%98%B5",LF.LABPLUS_SET_I2C_LED_MATRIX_TOOLTIP="",LF.LABPLUS_SET_I2C_LED_MATRIX_MESSAGE0="设置点阵 %1 第一行显示%2 第二行显示%3 第三行显示%4 第四行显示%5 第五行显示%6 第六行显示%7 第七行显示%8 第八行显示%9 ",LF.LABPLUS_SET_I2C_LED_MATRIX_MESSAGE2="设置点阵 %1 %2 %3 %4 %5 %6 %7 %8 %9 %10 %11 %12 %13 %14 %15 %16 %17 %18 %19 %20 %21 %22 %23 %24 %25 %26 %27 %28 %29 %30 %31 %32 %33 %34 %35 %36 %37 %38 %39 %40 %41 %42 %43 %44 %45 %46 %47 %48 %49 %50 %51 %52 %53 %54 %55 %56 %57 %58 %59 %60 %61 %62 %63 %64 %65 %66 %67 %68 %69 %70 %71 %72",LF.LABPLUS_SET_I2C_LED_MATRIX_CLEAR_HELPURL="http://wiki.labplus.cn/index.php?title=%E7%82%B9%E9%98%B5",LF.LABPLUS_SET_I2C_LED_MATRIX_CLEAR_TOOLTIP="",LF.LABPLUS_SET_I2C_LED_MATRIX_CLEAR_MESSAGE0="清空点阵",LF.LABPLUS_UART_SET_OLED_HELPURL="http://wiki.labplus.cn/index.php?title=OLED",LF.LABPLUS_UART_SET_OLED_TOOLTIP="",LF.LABPLUS_UART_SET_OLED_MESSAGE0="设置OLED屏 %1 X %2 Y %3 显示文本 %4 字体为 %5",LF.LABPLUS_UART_SET_OLED_CLEAR_HELPURL="http://wiki.labplus.cn/index.php?title=OLED",LF.LABPLUS_UART_SET_OLED_CLEAR_TOOLTIP="",LF.LABPLUS_UART_SET_OLED_CLEAR_MESSAGE0="在OLED屏上擦除矩阵 %1 X1 %2 Y1 %3 X2 %4 Y2 %5",LF.LABPLUS_UART_SET_OLED_CLEAR_ALL_MESSAGE0="清空OLED屏",LF.LABPLUS_UART_SET_OLED_CLEAR_ALL_HELPURL="http://wiki.labplus.cn/index.php?title=OLED",LF.LABPLUS_UART_SET_OLED_CLEAR_ALL_TOOLTIP="",LF.LABPLUS_LIGHT_SENSOR_HELPURL="http://wiki.labplus.cn/index.php?title=%E6%A8%A1%E6%8B%9F%E5%85%89%E7%BA%BF",LF.LABPLUS_LIGHT_SENSOR_TOOLTIP="",LF.LABPLUS_LIGHT_SENSOR_MESSAGE0="模拟光线传感器 引脚 %1 的值",LF.LABPLUS_BUTTON_MODULE_IS_PRESSED_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/i2c.html",LF.LABPLUS_BUTTON_MODULE_IS_PRESSED_TOOLTIP="",LF.LABPLUS_BUTTON_MODULE_IS_PRESSED_MESSAGE0="按键模块 引脚 %1 被按下",LF.MICROBIT_EXT2_SET_SERVO_HELPURL="http://wiki.labplus.cn/index.php?title=Extend:bit%E2%85%A1",LF.MICROBIT_EXT2_SET_SERVO_TOOLTIP="",LF.MICROBIT_EXT2_SET_SERVO_MESSAGE0="设置舵机 %1 的角度为 %2",LF.MICROBIT_EXT2_SET_MOTOR_HELPURL="http://wiki.labplus.cn/index.php?title=Extend:bit%E2%85%A1",LF.MICROBIT_EXT2_SET_MOTOR_TOOLTIP="",LF.MICROBIT_EXT2_SET_MOTOR_MESSAGE0="设置马达 %1 方向 %2 速度 %3",LF.MICROBIT_EXT2_STOP_MOTOR_HELPURL="http://wiki.labplus.cn/index.php?title=Extend:bit%E2%85%A1",LF.MICROBIT_EXT2_STOP_MOTOR_TOOLTIP="",LF.MICROBIT_EXT2_STOP_MOTOR_MESSAGE0="停止马达 %1",LF.MICROBIT_EXT2_SOUND_VALUE_MESSAGE0="声音传感器的值",LF.MICROBIT_EXT2_SOUND_VALUE_HELPURL="http://wiki.labplus.cn/index.php?title=Extend:bit%E2%85%A1",LF.MICROBIT_EXT2_SOUND_VALUE_TOOLTIP="",LF.MICROBIT_EXT2_LIGHT_VALUE_MESSAGE0="光线传感器的值",LF.MICROBIT_EXT2_LIGHT_VALUE_HELPURL="http://wiki.labplus.cn/index.php?title=Extend:bit%E2%85%A1",LF.MICROBIT_EXT2_LIGHT_VALUE_TOOLTIP="",LF.MICROBIT_INIT_I2C_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/i2c.html",LF.MICROBIT_INIT_I2C_TOOLTIP="",LF.MICROBIT_INIT_I2C_MESSAGE0="初始化I2C 频率 %1 引脚SDA %2 引脚SCL %3",LF.MICROBIT_I2C_READ_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/i2c.html",LF.MICROBIT_I2C_READ_TOOLTIP="",LF.MICROBIT_I2C_READ_MESSAGE0="I2C读取从地址 %1 读取 %2 字节",LF.MICROBIT_I2C_WRITE_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/i2c.html",LF.MICROBIT_I2C_WRITE_TOOLTIP="",LF.MICROBIT_I2C_WRITE_MESSAGE0="I2C写入 %2 到地址 %1",LF.MICROBIT_CONVERT_BYTEARRAY_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/i2c.html",LF.MICROBIT_CONVERT_BYTEARRAY_TOOLTIP="",LF.MICROBIT_CONVERT_BYTEARRAY_MESSAGE0="bytearray %1",LF.BOTBIT_MOTOR_ON_HELPURL="",LF.BOTBIT_MOTOR_ON_TOOLTIP="范围:-2000~2000",LF.BOTBIT_MOTOR_ON_MESSAGE0="设置机器人 %1 右轮速度为 %2 左轮速度为 %3",LF.BOTBIT_MOTOR_LEFT="左",LF.BOTBIT_MOTOR_RIGHT="右",LF.BOTBIT_SERVO_UP="上方",LF.BOTBIT_SERVO_DOWN="下方",LF.BOTBIT_MOTOR_FORWARD="前进",LF.BOTBIT_MOTOR_BACKWARD="后退",LF.BOTBIT_HOLDBALL_HELPURL="",LF.BOTBIT_HOLDBALL_TOOLTIP="",LF.BOTBIT_HOLDBALL_MESSAGE0="双臂抱起",LF.BOTBIT_STEERING_ENGINEL_HELPURL="",LF.BOTBIT_STEERING_ENGINEL_TOOLTIP="角度范围为-45°~45°",LF.BOTBIT_STEERING_ENGINEL_MESSAGE0="设置 %1臂 %2的角度为 %3",LF.BOTBIT_SERVO_Y="Y轴舵机",LF.BOTBIT_SERVO_X="X轴舵机",LF.BOTBIT_STEERING_ENGINE_LEG_HELPURL="",LF.BOTBIT_STEERING_ENGINE_LEG_TOOLTIP="角度范围为-45°~45°",LF.BOTBIT_STEERING_ENGINE_LEG_MESSAGE0="设置 %1腿 %2舵机的角度为 %3",LF.BOTBIT_UPDATEPOSITION_HELPURL="",LF.BOTBIT_UPDATEPOSITION_TOOLTIP="",LF.BOTBIT_UPDATEPOSITION_MESSAGE0="刷新舵机角度",LF.BOTBIT_ULTRASONIC_HELPURL="",LF.BOTBIT_ULTRASONIC_TOOLTIP="",LF.BOTBIT_ULTRASONIC_MESSAGE0="超声波传感器的值",LF.BOTBIT_WALKING_HELPURL="",LF.BOTBIT_WALKING_TOOLTIP="周期越短, 速度越快, 推荐1000~2000",LF.BOTBIT_WALKING_MESSAGE0="舞步(walking) 步数%2 周期%3 方向%1 ",LF.BOTBIT_WALKING_FORWARD="前",LF.BOTBIT_WALKING_BACK="后",LF.BOTBIT_MOONWALKER_HELPURL="",LF.BOTBIT_MOONWALKER_TOOLTIP="推荐周期1000~2000, 幅度10~50",LF.BOTBIT_MOONWALKER_MESSAGE0="舞步(moonwalker) 步数%2 周期%3 幅度%4 方向%1 ",LF.BOTBIT_MOONWALKER_L="左",LF.BOTBIT_MOONWALKER_R="右",LF.BOTBIT_CRUSAITO_HELPURL="",LF.BOTBIT_CRUSAITO_TOOLTIP="推荐步数2~10, 幅度10~50",LF.BOTBIT_CRUSAITO_MESSAGE0="舞步(crusaito) 步数%2 周期%3 幅度%4 方向%1",LF.BOTBIT_CRUSAITO_CW="逆时针",LF.BOTBIT_CRUSAITO_ANTICW="顺时针",LF.BOTBIT_FLAPPING_HELPURL="",LF.BOTBIT_FLAPPING_TOOLTIP="推荐步数5~15, 幅度10~30, 周期1000~2000",LF.BOTBIT_FLAPPING_MESSAGE0="舞步(flapping) 步数%2 周期%3 幅度%4 方向%1",LF.BOTBIT_FLAPPING_FORWARD="前",LF.BOTBIT_FLAPPING_BACK="后",LF.BOTBIT_HOME_HELPURL="",LF.BOTBIT_HOME_TOOLTIP="",LF.BOTBIT_HOME_MESSAGE0="机器人舞步初始化",LF.LABPLUS_UART_SET_MIDI_VOL_HELPURL="http://wiki.labplus.cn/index.php?title=MIDI(%E7%94%B5%E5%AD%90%E7%90%B4)",LF.LABPLUS_UART_SET_MIDI_VOL_TOOLTIP="",LF.LABPLUS_UART_SET_MIDI_VOL_MESSAGE0="设置MIDI模块音量为 %1",LF.labplus_mapping_MESSAGE0="映射%1 从%2 , %3到%4 , %5",LF.labplus_mapping_TOOLTIP="将0~100中的10映射到0~200中并返回映射值",LF.labplus_mapping_HELPURL="",LF.JOINT_MIDI_PIANO="平台钢琴",LF.JOINT_MIDI_BRIGHTACOUSTICPIANO="亮音钢琴",LF.JOINT_MIDI_ELECTRICGRANDPIANO="电钢琴",LF.JOINT_MIDI_HARPSICHORD="大键琴",LF.JOINT_MIDI_Celesta="钢片琴",LF.JOINT_MIDI_Glockenspiel="钟琴",LF.JOINT_MIDI_Musicalbox="音乐盒",LF.JOINT_MIDI_Marimba="马林巴琴",LF.JOINT_MIDI_Xylophone="木琴",LF.JOINT_MIDI_TubularBell="管钟",LF.JOINT_MIDI_Dulcimer="洋琴",LF.JOINT_Vibraphone="颤音琴",LF.JOINT_MIDI_ORGAN="音栓风琴",LF.JOINT_Acoustic_Guitar="木吉他",LF.JOINT_Electric_Guitar="电吉他",LF.JOINT_Acoustic_Bass="民谣贝斯",LF.JOINT_String_Ensemble="弦乐合奏",LF.JOINT_Violin="小提琴",LF.JOINT_Trumpet="小号",LF.JOINT_Sax="萨克斯",LF.JOINT_Steel_Drums="钢鼓",LF.JOINT_Lead="合成音主旋律",LF.JOINT_Pad="合成音衬底",LF.LABPLUS_PLAY_BUZZER_NOTE_HELPURL="http://wiki.labplus.cn/index.php?title=%E8%9C%82%E9%B8%A3%E5%99%A8",LF.LABPLUS_PLAY_BUZZER_NOTE_TOOLTIP="",LF.LABPLUS_PLAY_BUZZER_NOTE_MESSAGE0="播放音调 %1",LF.Carbit_init_MESSAGE0="CarBit初始化",LF.Carbit_init_TOOLTIP="",LF.Carbit_init_HELPURL="http://wiki.labplus.cn/index.php?title=Car:bit",LF.Carbit_setLeftMotor_MESSAGE0="B2电机速度 %1",LF.Carbit_setLeftMotor_TOOLTIP="范围:-100~100",LF.Carbit_setLeftMotor_HELPURL="http://wiki.labplus.cn/index.php?title=Car:bit",LF.Carbit_setRightMotor_MESSAGE0="B1电机速度 %1",LF.Carbit_setRightMotor_TOOLTIP="范围:-100~100",LF.Carbit_setRightMotor_HELPURL="http://wiki.labplus.cn/index.php?title=Car:bit",LF.Carbit_analog_light_HELPURL="http://wiki.labplus.cn/index.php?title=Car:bit",LF.Carbit_analog_light_TOOLTIP="Q3对应Pin1,Q4对应Pin2",LF.Carbit_analog_light_MESSAGE0="%1 模拟光线的值",LF.Carbit_Speed_U10_HELPURL="http://wiki.labplus.cn/index.php?title=Car:bit",LF.Carbit_Speed_U10_TOOLTIP="对应U10",LF.Carbit_Speed_U10_MESSAGE0="左轮速度",LF.Carbit_Speed_U11_HELPURL="http://wiki.labplus.cn/index.php?title=Car:bit",LF.Carbit_Speed_U11_TOOLTIP="对应U11",LF.Carbit_Speed_U11_MESSAGE0="右轮速度",LF.Carbit_Distance_HELPURL="http://wiki.labplus.cn/index.php?title=Car:bit",LF.Carbit_Distance_TOOLTIP="",LF.Carbit_Distance_MESSAGE0="超声波的值",LF.Carbit_tracking_HELPURL="http://wiki.labplus.cn/index.php?title=Car:bit",LF.Carbit_tracking_TOOLTIP="",LF.Carbit_tracking_MESSAGE0="循迹参数 %1 直行速度 %2 最大限速 %3 转弯延时 %5 转弯速度系数 %4 ",LF.XUNFEI_SPEECH_TTS_HELPURL="",LF.XUNFEI_SPEECH_TTS_TOOLTIP="合成音频文件格式只能是 *.pcm",LF.XUNFEI_SPEECH_TTS_MESSAGE0="[讯飞语音] 合成音频 %1 APPID %2 APISecret %3 APIKey %4 文字内容 %5 转存为音频文件 %6",LF.XUNFEI_SPEECH_IAT_HELPURL="",LF.XUNFEI_SPEECH_IAT_TOOLTIP="可识别的音频格式有 *.pcm 与 *.wav",LF.XUNFEI_SPEECH_IAT_MESSAGE0="[讯飞语音] 识别音频 %1 APPID %2 APISecret %3 APIKey %4 待识别音频文件 %5",LF.XUNFEI_SPEECH_IAT_RESULT_HELPURL="",LF.XUNFEI_SPEECH_IAT_RESULT_TOOLTIP="",LF.XUNFEI_SPEECH_IAT_RESULT_MESSAGE0="[讯飞语音] 识别结果",LF.MPYTHON_ZKAI_LCD_INIT_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/lcd.html#lcdinittype1-freq15000000-colorlcdblack",LF.MPYTHON_ZKAI_LCD_INIT_MESSAGE0="LCD 屏幕初始化",LF.MPYTHON_ZKAI_LCD_INIT_TOOLTIP="初始化 LCD 屏幕显示",LF.MPYTHON_ZKAI_LCD_ROTATION_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/lcd.html#lcddirectiondir",LF.MPYTHON_ZKAI_LCD_ROTATION_MESSAGE0="LCD 屏幕方向%1",LF.MPYTHON_ZKAI_LCD_ROTATION_TOOLTIP="设置 LCD 屏幕方向,取值范围 [0,3], 从0到3依次顺时针旋转",LF.MPYTHON_ZKAI_SENSOR_RESET_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/sensor.html#%E5%8D%95%E7%9B%AE%E6%91%84%E5%83%8F%E5%A4%B4%E9%87%8D%E7%BD%AE%E5%87%BD%E6%95%B0",LF.MPYTHON_ZKAI_SENSOR_RESET_MESSAGE0="摄像头 初始化",LF.MPYTHON_ZKAI_SENSOR_RESET_TOOLTIP="初始化单目摄像头",LF.MPYTHON_ZKAI_SENSOR_ENABLE_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/sensor.html#%E8%8E%B7%E5%8F%96%E5%9B%BE%E5%83%8F",LF.MPYTHON_ZKAI_SENSOR_ENABLE_MESSAGE0="摄像头%1",LF.MPYTHON_ZKAI_SENSOR_ENABLE_TOOLTIP="获取图像",LF.MPYTHON_ZKAI_LCD_WIDTHANDHEIGHT_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/lcd.html#lcdwidth",LF.MPYTHON_ZKAI_LCD_WIDTHANDHEIGHT_MESSAGE0="LCD 获取%1",LF.MPYTHON_ZKAI_LCD_WIDTHANDHEIGHT_TOOLTIP="返回 LCD 的宽度(水平分辨率);高度(垂直分辨率)",LF.MPYTHON_ZKAI_LCD_MI_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/lcd.html#lcddirectiondir",LF.MPYTHON_ZKAI_LCD_MI_MESSAGE0="LCD 设置镜像",LF.MPYTHON_ZKAI_LCD_MI_TOOLTIP="设置是否镜像",LF.MPYTHON_ZKAI_LCD_TEXT_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/lcd.html#%E4%BE%8B%E7%A8%8B-1%EF%BC%9A-%E6%98%BE%E7%A4%BA%E8%8B%B1%E6%96%87",LF.MPYTHON_ZKAI_LCD_TEXT_MESSAGE0="显示文本 x %1 y %2 内容 %3",LF.MPYTHON_ZKAI_LCD_TEXT_TOOLTIP="仅支持字母和数字",LF.MPYTHON_ZKAI_SENSOR_OffOn_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/sensor.html#%E5%85%B3%E9%97%AD%E6%91%84%E5%83%8F%E5%A4%B4",LF.MPYTHON_ZKAI_SENSOR_OffOn_MESSAGE0="摄像头%1",LF.MPYTHON_ZKAI_SENSOR_OffOn_TOOLTIP="1 表示开启摄像头 0 表示关闭摄像头",LF.MPYTHON_ZKAI_SENSOR_SKIP_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/sensor.html#%E8%B7%B3%E5%B8%A7",LF.MPYTHON_ZKAI_SENSOR_SKIP_MESSAGE0="摄像头 跳过帧数%1 毫秒%2内的图像 ",LF.MPYTHON_ZKAI_SENSOR_SKIP_TOOLTIP="摄像头跳过指定帧数或者跳过指定时间内的图像",LF.MPYTHON_ZKAI_SENSOR_RETURN_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/sensor.html#%E5%88%86%E8%BE%A8%E7%8E%87%E5%AE%BD%E5%BA%A6",LF.MPYTHON_ZKAI_SENSOR_RETURN_MESSAGE0="摄像头 获取%1",LF.MPYTHON_ZKAI_SENSOR_RETURN_TOOLTIP="(ZKAI)摄像头返回参数(宽高,获取帧缓冲,获取ID)",LF.MPYTHON_ZKAI_SENSOR_SETS_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/sensor.html#%E8%AE%BE%E7%BD%AE%E5%AF%B9%E6%AF%94%E5%BA%A6",LF.MPYTHON_ZKAI_SENSOR_SETS_MESSAGE0="摄像头 设置%1 为%2",LF.MPYTHON_ZKAI_SENSOR_SETS_TOOLTIP="设置摄像头对比度,亮度,饱和度范围为[-2,+2]",LF.MPYTHON_ZKAI_SENSOR_AUTO_GAIN_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/sensor.html#%E8%AE%BE%E7%BD%AE%E8%87%AA%E5%8A%A8%E5%A2%9E%E7%9B%8A",LF.MPYTHON_ZKAI_SENSOR_AUTO_GAIN_MESSAGE0="摄像头 自动增益%1",LF.MPYTHON_ZKAI_SENSOR_AUTO_GAIN_TOOLTIP="1开启摄像头自动增益 0关闭摄像头自动增益",LF.MPYTHON_ZKAI_SENSOR_ACQUIRE_AUTO_GAIN_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/sensor.html#%E8%8E%B7%E5%8F%96%E5%A2%9E%E7%9B%8A%E5%80%BC",LF.MPYTHON_ZKAI_SENSOR_ACQUIRE_AUTO_GAIN_MESSAGE0="摄像头 获取增益值",LF.MPYTHON_ZKAI_SENSOR_ACQUIRE_AUTO_GAIN_TOOLTIP="获取摄像头增益值",LF.MPYTHON_ZKAI_SENSOR_LEVEL_MI_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/sensor.html#%E8%AE%BE%E7%BD%AE%E6%B0%B4%E5%B9%B3%E9%95%9C%E5%83%8F",LF.MPYTHON_ZKAI_SENSOR_LEVEL_MI_MESSAGE0="摄像头 水平镜像%1",LF.MPYTHON_ZKAI_SENSOR_LEVEL_MI_TOOLTIP="1 表示开启水平镜像 0 表示关闭水平镜像",LF.MPYTHON_ZKAI_IMAGE_LAB_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/image.html#%E4%BE%8B%E7%A8%8B-1%EF%BC%9A-%E6%89%BE%E7%BB%BF%E8%89%B2",LF.MPYTHON_ZKAI_IMAGE_LAB_MESSAGE0="(掌控AI)寻找颜色 LAB值%1",LF.MPYTHON_ZKAI_IMAGE_LAB_TOOLTIP="image寻找颜色",LF.MPYTHON_ZKAI_TRACE_COLOR_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.find_blobs",LF.MPYTHON_ZKAI_TRACE_COLOR_MESSAGE0="(掌控AI)追踪色块 LAB颜色%1 边界框小于%2 像素小于%3 过滤",LF.MPYTHON_ZKAI_TRACE_COLOR_TOOLTIP="追踪色块",LF.MPYTHON_ZKAI_TRACE_CILOR_DISPLAYTEN_HELPURL="",LF.MPYTHON_ZKAI_TRACE_CILOR_DISPLAYTEN_MESSAGE0="(掌控AI)追踪颜色 显示%1",LF.MPYTHON_ZKAI_TRACE_CILOR_DISPLAYTEN_TOOLTIP="",LF.MPYTHON_ZKAI_BLOB_ALL_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#blob",LF.MPYTHON_ZKAI_BLOB_ALL_MESSAGE0="(掌控AI)%1获取识别后色块的 所有参数",LF.MPYTHON_ZKAI_BLOB_ALL_TOOLTIP="返回blob 类 -- 色块对象",LF.MPYTHON_ZKAI_BLOB_X_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#blob",LF.MPYTHON_ZKAI_BLOB_X_MESSAGE0="(掌控AI)%1获取识别后色块的 x坐标",LF.MPYTHON_ZKAI_BLOB_X_TOOLTIP="返回blob 类 -- 色块对象",LF.MPYTHON_ZKAI_BLOB_Y_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#blob",LF.MPYTHON_ZKAI_BLOB_Y_MESSAGE0="(掌控AI)%1获取识别后色块的 y坐标",LF.MPYTHON_ZKAI_BLOB_Y_TOOLTIP="返回blob 类 -- 色块对象",LF.MPYTHON_ZKAI_BLOB_W_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#blob",LF.MPYTHON_ZKAI_BLOB_W_MESSAGE0="(掌控AI)%1获取识别后色块的 宽度",LF.MPYTHON_ZKAI_BLOB_W_TOOLTIP="返回blob 类 -- 色块对象",LF.MPYTHON_ZKAI_BLOB_H_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#blob",LF.MPYTHON_ZKAI_BLOB_H_MESSAGE0="(掌控AI)%1获取识别后色块的 高度",LF.MPYTHON_ZKAI_BLOB_H_TOOLTIP="返回blob 类 -- 色块对象",LF.MPYTHON_ZKAI_BLOB_NUMBER_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#blob",LF.MPYTHON_ZKAI_BLOB_NUMBER_MESSAGE0="(掌控AI)%1获取识别后色块的 数量",LF.MPYTHON_ZKAI_BLOB_NUMBER_TOOLTIP="返回blob 类 -- 色块对象",LF.MPYTHON_ZKAI_BLOB_CENTER_X_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#blob",LF.MPYTHON_ZKAI_BLOB_CENTER_X_MESSAGE0="(掌控AI)%1获取识别后色块的 中心x坐标",LF.MPYTHON_ZKAI_BLOB_CENTER_X_TOOLTIP="返回blob 类 -- 色块对象",LF.MPYTHON_ZKAI_BLOB_CENTER_Y_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#blob",LF.MPYTHON_ZKAI_BLOB_CENTER_Y_MESSAGE0="(掌控AI)%1获取识别后色块的 中心y坐标",LF.MPYTHON_ZKAI_BLOB_CENTER_Y_TOOLTIP="返回blob 类 -- 色块对象",LF.MPYTHON_ZKAI_BLOB_ORTHOGON_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#blob",LF.MPYTHON_ZKAI_BLOB_ORTHOGON_MESSAGE0="(掌控AI)%1获取识别后色块的 矩形",LF.MPYTHON_ZKAI_BLOB_ORTHOGON_TOOLTIP="返回blob 类 -- 色块对象",LF.MPYTHON_ZKAI2_FACE_TRACKING_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",LF.MPYTHON_ZKAI2_FACE_TRACKING_MESSAGE0="(掌控AI)选择训练模型 人脸",LF.MPYTHON_ZKAI2_FACE_TRACKING_TOOLTIP="可以识别并且追踪人脸,显示人脸大小等",LF.MPYTHON_ZKAI2_PHOTOGRAPH_TRACKING_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",LF.MPYTHON_ZKAI2_PHOTOGRAPH_TRACKING_MESSAGE0="(掌控AI)调用摄像头进行 人脸识别",LF.MPYTHON_ZKAI2_PHOTOGRAPH_TRACKING_TOOLTIP="可以识别并且追踪人脸,显示人脸大小等",LF.MPYTHON_ZKAI2_RESULT_FACE_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",LF.MPYTHON_ZKAI2_RESULT_FACE_MESSAGE0="(掌控AI)获取识别后人脸的 所有参数",LF.MPYTHON_ZKAI2_RESULT_FACE_TOOLTIP="获取识别后人脸的 所有参数",LF.MPYTHON_ZKAI2_RESULT_FACE_X_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",LF.MPYTHON_ZKAI2_RESULT_FACE_X_MESSAGE0="(掌控AI)获取识别后人脸的 x坐标",LF.MPYTHON_ZKAI2_RESULT_FACE_X_TOOLTIP="获取识别后人脸的 x坐标",LF.MPYTHON_ZKAI2_RESULT_FACE_Y_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",LF.MPYTHON_ZKAI2_RESULT_FACE_Y_MESSAGE0="(掌控AI)获取识别后人脸的 y坐标",LF.MPYTHON_ZKAI2_RESULT_FACE_Y_TOOLTIP="获取识别后人脸的 y坐标",LF.MPYTHON_ZKAI2_RESULT_FACE_W_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",LF.MPYTHON_ZKAI2_RESULT_FACE_W_MESSAGE0="(掌控AI)获取识别后人脸的 宽度",LF.MPYTHON_ZKAI2_RESULT_FACE_W_TOOLTIP="获取识别后人脸的 宽度",LF.MPYTHON_ZKAI2_RESULT_FACE_H_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",LF.MPYTHON_ZKAI2_RESULT_FACE_H_MESSAGE0="(掌控AI)获取识别后人脸的 高度",LF.MPYTHON_ZKAI2_RESULT_FACE_H_TOOLTIP="获取识别后人脸的 高度",LF.MPYTHON_ZKAI2_RESULT_FACE_VALUE_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",LF.MPYTHON_ZKAI2_RESULT_FACE_VALUE_MESSAGE0="(掌控AI)获取识别后人脸的 置信度",LF.MPYTHON_ZKAI2_RESULT_FACE_VALUE_TOOLTIP="获取识别后人脸的 置信度",LF.MPYTHON_ZKAI2_RESULT_FACE_OBJNUM_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",LF.MPYTHON_ZKAI2_RESULT_FACE_OBJNUM_MESSAGE0="(掌控AI)获取识别后人脸的 数量",LF.MPYTHON_ZKAI2_RESULT_FACE_OBJNUM_TOOLTIP="获取识别后人脸的 数量",LF.MPYTHON_ZKAI_LCD_DISPLAY_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/lcd.html#lcddisplayimage-roiauto",LF.MPYTHON_ZKAI_LCD_DISPLAY_MESSAGE0="LCD 显示生效",LF.MPYTHON_ZKAI_LCD_DISPLAY_TOOLTIP="可以在液晶屏上显示一张 image",LF.MPYTHON_ZKAI_SENSOR_IMAGES_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/sensor.html#%E8%8E%B7%E5%8F%96%E5%9B%BE%E5%83%8F",LF.MPYTHON_ZKAI_SENSOR_IMAGES_MESSAGE0="摄像头 获取图像",LF.MPYTHON_ZKAI_SENSOR_IMAGES_TOOLTIP="控制摄像头捕捉图像",LF.MPYTHON_ZKAI2_20class_TRACKING_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",LF.MPYTHON_ZKAI2_20class_TRACKING_MESSAGE0="(掌控AI)选择训练模型 20类",LF.MPYTHON_ZKAI2_20class_TRACKING_TOOLTIP="可以识别20个类型,分别是0-19为飞机,自行车,鸟,船,瓶子,公交车,汽车,猫,椅子,奶牛,餐桌,狗,屋子,摩托车,人,盆栽,羊,沙发,火车,电视",LF.MPYTHON_ZKAI2_PHOTOGRAPH_20TRACKING_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",LF.MPYTHON_ZKAI2_PHOTOGRAPH_20TRACKING_MESSAGE0="(掌控AI)调用摄像头进行 20类识别",LF.MPYTHON_ZKAI2_PHOTOGRAPH_20TRACKING_TOOLTIP="调用摄像头进行 20类识别",LF.MPYTHON_ZKAI2_RESULT_20CLASS_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",LF.MPYTHON_ZKAI2_RESULT_20CLASS_MESSAGE0="(掌控AI)获取识别后20类的 所有参数",LF.MPYTHON_ZKAI2_RESULT_20CLASS_TOOLTIP="获取识别后20类的 所有参数",LF.MPYTHON_ZKAI2_RESULT_20CLASS_X_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",LF.MPYTHON_ZKAI2_RESULT_20CLASS_X_MESSAGE0="(掌控AI)获取识别后20类的 x坐标",LF.MPYTHON_ZKAI2_RESULT_20CLASS_X_TOOLTIP="获取识别后20类的 x坐标",LF.MPYTHON_ZKAI2_RESULT_20CLASS_Y_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",LF.MPYTHON_ZKAI2_RESULT_20CLASS_Y_MESSAGE0="(掌控AI)获取识别后20类的 y坐标",LF.MPYTHON_ZKAI2_RESULT_20CLASS_Y_TOOLTIP="获取识别后20类的 y坐标",LF.MPYTHON_ZKAI2_RESULT_20CLASS_W_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",LF.MPYTHON_ZKAI2_RESULT_20CLASS_W_MESSAGE0="(掌控AI)获取识别后20类的 宽度",LF.MPYTHON_ZKAI2_RESULT_20CLASS_W_TOOLTIP="获取识别后20类的 宽度",LF.MPYTHON_ZKAI2_RESULT_20CLASS_H_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",LF.MPYTHON_ZKAI2_RESULT_20CLASS_H_MESSAGE0="(掌控AI)获取识别后20类的 高度",LF.MPYTHON_ZKAI2_RESULT_20CLASS_H_TOOLTIP="获取识别后20类的 高度",LF.MPYTHON_ZKAI2_RESULT_20CLASS_VALUE_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",LF.MPYTHON_ZKAI2_RESULT_20CLASS_VALUE_MESSAGE0="(掌控AI)获取识别后20类的 置信度",LF.MPYTHON_ZKAI2_RESULT_20CLASS_VALUE_TOOLTIP="获取识别后20类的 置信度",LF.MPYTHON_ZKAI2_RESULT_20CLASS_OBJNUM_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",LF.MPYTHON_ZKAI2_RESULT_20CLASS_OBJNUM_MESSAGE0="(掌控AI)获取识别后20类的 数量",LF.MPYTHON_ZKAI2_RESULT_20CLASS_OBJNUM_TOOLTIP="获取识别后20类的 数量",LF.MPYTHON_ZKAI2_RESULT_20CLASS_CLASSID_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",LF.MPYTHON_ZKAI2_RESULT_20CLASS_CLASSID_MESSAGE0="(掌控AI)获取识别后20类的 类型",LF.MPYTHON_ZKAI2_RESULT_20CLASS_CLASSID_TOOLTIP="获取识别后20类的 类型可以放入获取识别的参数,可以识别20个类型,分别是0-19为飞机,自行车,鸟,船,瓶子,公交车,汽车,猫,椅子,奶牛,餐桌,狗,屋子,摩托车,人,盆栽,羊,沙发,火车,电视",LF.MPYTHON_ZKAI2_RESULT_20CLASS_INDEX_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",LF.MPYTHON_ZKAI2_RESULT_20CLASS_INDEX_MESSAGE0="(掌控AI)获取识别后20类的 类型数量",LF.MPYTHON_ZKAI2_RESULT_20CLASS_INDEX_TOOLTIP="获取识别后20类的 类型数量",LF.MPYTHON_ZKAI2_NUMBER_DISCERN_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",LF.MPYTHON_ZKAI2_NUMBER_DISCERN_MESSAGE0="(掌控AI)选择训练模型 手写数字",LF.MPYTHON_ZKAI2_NUMBER_DISCERN_TOOLTIP="选择训练模型 手写数字识别",LF.MPYTHON_ZKAI2_RESULT_NUMBER_DISCERN_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",LF.MPYTHON_ZKAI2_RESULT_NUMBER_DISCERN_MESSAGE0="(掌控AI)调用摄像头进行 手写数字识别",LF.MPYTHON_ZKAI2_RESULT_NUMBER_DISCERN_TOOLTIP="调用摄像头进行 手写数字识别",LF.MPYTHON_ZKAI2_NUMBER_DETECT_ALL_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#id2",LF.MPYTHON_ZKAI2_NUMBER_DETECT_ALL_MESSAGE0="(掌控AI)获取识别后手写数字的 所有参数",LF.MPYTHON_ZKAI2_NUMBER_DETECT_ALL_TOOLTIP="手写数字识别参数",LF.MPYTHON_ZKAI2_NUMBER_DETECT_NUMBER_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#id2",LF.MPYTHON_ZKAI2_NUMBER_DETECT_NUMBER_MESSAGE0="(掌控AI)获取识别后手写数字的 数字",LF.MPYTHON_ZKAI2_NUMBER_DETECT_NUMBER_TOOLTIP="手写数字识别 数字",LF.MPYTHON_ZKAI2_NUMBER_DETECT_ADIENCE_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#id2",LF.MPYTHON_ZKAI2_NUMBER_DETECT_ADIENCE_MESSAGE0="(掌控AI)获取识别后手写数字的 置信度",LF.MPYTHON_ZKAI2_NUMBER_DETECT_ADIENCE_TOOLTIP="手写数字 识别数字 置信度",LF.MPYTHON_ZKAI_IMAGE_FACEDETECT_HELPURL="https://maixpy.sipeed.com/zh/libs/Maix/kpu.html#%E8%BF%90%E8%A1%8Cyolo2%E7%BD%91%E7%BB%9C",LF.MPYTHON_ZKAI_IMAGE_FACEDETECT_MESSAGE0="人脸识别",LF.MPYTHON_ZKAI_IMAGE_FACEDETECT_TOOLTIP="",LF.MPYTHON_ZKAI_IMAGE_FACEDETECT_RETURN_HELPURL="https://maixpy.sipeed.com/zh/libs/Maix/kpu.html#%E8%BF%90%E8%A1%8Cyolo2%E7%BD%91%E7%BB%9C",LF.MPYTHON_ZKAI_IMAGE_FACEDETECT_RETURN_MESSAGE0="(掌控AI)获取 识别%1",LF.MPYTHON_ZKAI_IMAGE_FACEDETECT_RETURN_TOOLTIP="人脸识别的x和y是LCD屏幕的坐标位置;width和height是人脸识别出的宽度和高度;classid是识别出的类别;objnum是人脸识别出的个数",LF.MPYTHON_ZKAI_IMAGE_FACEDETECT_ALL_RETURN_HELPURL="https://maixpy.sipeed.com/zh/libs/Maix/kpu.html#%E8%BF%90%E8%A1%8Cyolo2%E7%BD%91%E7%BB%9C",LF.MPYTHON_ZKAI_IMAGE_FACEDETECT_ALL_RETURN_MESSAGE0="(掌控AI)获取 识别 所有参数",LF.MPYTHON_ZKAI_IMAGE_FACEDETECT_ALL_RETURN_TOOLTIP="人脸识别的x和y是LCD屏幕的坐标位置;width和height是人脸识别出的宽度和高度;classid是识别出的类别;objnum是人脸识别出的个数",LF.MPYTHON_ZKAI_IMAGE_FACEDETECT2_HELPURL="https://maixpy.sipeed.com/zh/libs/Maix/kpu.html#%E8%BF%90%E8%A1%8Cyolo2%E7%BD%91%E7%BB%9C",LF.MPYTHON_ZKAI_IMAGE_FACEDETECT2_MESSAGE0="(掌控AI)人脸识别",LF.MPYTHON_ZKAI_IMAGE_FACEDETECT2_TOOLTIP="可以放入获取识别的参数",LF.MPYTHON_ZKAI_IMAGE_20CLASS_HELPURL="https://maixpy.sipeed.com/zh/libs/Maix/kpu.html#%E8%BF%90%E8%A1%8Cyolo2%E7%BD%91%E7%BB%9C",LF.MPYTHON_ZKAI_IMAGE_20CLASS_TOOLTIP="(掌控AI)可以放入获取识别的参数,可以识别20个类型,分别是飞机,自行车,鸟,船,瓶子,公交车,汽车,猫,椅子,奶牛, 餐桌,狗,屋子,摩托车,人,盆栽,羊,沙发,火车,电视",LF.MPYTHON_ZKAI_LCD_SHOW_REC_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/image.html#imagedrawrectanglex-y-w-h-color-thickness1-fillfalse",LF.MPYTHON_ZKAI_LCD_SHOW_REC_MESSAGE0="矩形%1 x%3 y%4 宽%5 高%6 颜色为 R%7 G%8 B%9 加粗%2",LF.MPYTHON_ZKAI_LCD_SHOW_REC_TOOLTIP="在图像上绘制矩形",LF.MPYTHON_ZKAI_LCD_SHOW_STRING_MESSAGE0="线条 x1%1 y1%2 到x2%3 y2%4 颜色为R%5 G%6 B%7 加粗%8",LF.MPYTHON_ZKAI_LCD_SHOW_STRING_TOOLTIP="在图像上绘制线条",LF.MPYTHON_ZKAI_LCD_SHOW_STRING_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/image.html#imagedrawlinex0-y0-x1-y1-color-thickness1",LF.MPYTHON_ZKAI_LCD_CLEAR_ALL_MESSAGE0="LCD 显示清空",LF.MPYTHON_ZKAI_LCD_CLEAR_ALL_TOOLTIP="将液晶屏清空为黑色或者指定的颜色",LF.MPYTHON_ZKAI_LCD_CLEAR_ALL_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/lcd.html#lcdclear",LF.MPYTHON_ZKAI_LCD_return_colour_MESSAGE0="LCD 返回 x%1 y%2 颜色",LF.MPYTHON_ZKAI_LCD_return_colour_TOOLTIP="返回某个坐标点的颜色",LF.MPYTHON_ZKAI_LCD_return_colour_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/image.html#imagegetpixelx-y-rgbtuple",LF.MPYTHON_ZKAI_LCD_SHOW_CIRCLE_MESSAGE0="圆形%1 x%2 y%3 半径%4 颜色为 R%5 G%6 B%7 加粗%8",LF.MPYTHON_ZKAI_LCD_SHOW_CIRCLE_TOOLTIP="在图像上绘制圆形",LF.MPYTHON_ZKAI_LCD_SHOW_CIRCLE_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/image.html#imagedrawcirclex-y-radius-color-thickness1-fillfalse",LF.MPYTHON_ZKAI_LCD_TEXT_MOST_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/lcd.html#%E4%BE%8B%E7%A8%8B-1%EF%BC%9A-%E6%98%BE%E7%A4%BA%E8%8B%B1%E6%96%87",LF.MPYTHON_ZKAI_LCD_TEXT_MOST_MESSAGE0="显示文本 x %1 y %2 内容 %3 颜色为R%4 G%5 B%6 字号%7",LF.MPYTHON_ZKAI_LCD_TEXT_MOST_TOOLTIP="仅支持字母和数字",LF.MPYTHON_ZKAI_LCD_SHOW_TEN_STRING_MESSAGE0="十字线 x%1 y%2 颜色为R%3 G%4 B%5 尺寸%6 加粗%7",LF.MPYTHON_ZKAI_LCD_SHOW_TEN_STRING_TOOLTIP="在图像上绘制十字线",LF.MPYTHON_ZKAI_LCD_SHOW_TEN_STRING_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/image.html#imagedrawcrossx-y-color-size5-thickness1",LF.MPYTHON_ZKAI_LCD_SHOW_ARROWS_MESSAGE0="箭头 x1%1 y1%2 到x2%3 y2%4 颜色为R%5 G%6 B%7 加粗%8",LF.MPYTHON_ZKAI_LCD_SHOW_ARROWS_TOOLTIP="在图像上绘制一个箭头",LF.MPYTHON_ZKAI_LCD_SHOW_ARROWS_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/image.html#imagedrawarrowx0-y0-x1-y1-color-thickness1",LF.MPYTHON_ZKAI_LCD_SHOW_IMAGE_PIRCTURE_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/lcd.html#%E4%BE%8B%E7%A8%8B-2%EF%BC%9A-%E6%98%BE%E7%A4%BA%E5%9B%BE%E7%89%87",LF.MPYTHON_ZKAI_LCD_SHOW_IMAGE_PIRCTURE_MESSAGE0="显示图像 路径%1",LF.MPYTHON_ZKAI_LCD_SHOW_IMAGE_PIRCTURE_TOOLTIP="显示图像",LF.MPYTHON_ZKAI_LCD_SHOW_IMAGE_HEAT_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/image.html#imagetorainbowcopyfalse",LF.MPYTHON_ZKAI_LCD_SHOW_IMAGE_HEAT_MESSAGE0="LCD 显示热图颜色",LF.MPYTHON_ZKAI_LCD_SHOW_IMAGE_HEAT_TOOLTIP="可以在液晶屏上显示一张 image的热图颜色",LF.MPYTHON_ZKAI_LCD_SHOW_ECTYPE_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/image.html#imagesavepath-roi-quality50",LF.MPYTHON_ZKAI_LCD_SHOW_ECTYPE_MESSAGE0="将图像的副本保存到SD卡 图像名%1 图像显示区域 x%2 y%3 宽%4 高%5",LF.MPYTHON_ZKAI_LCD_SHOW_ECTYPE_TOOLTIP="将图像的副本保存到SD卡",LF.MPYTHON_ZKAI_LCD_SHOW_ECTYPE_SHOW_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/image.html#imagecopyroi-copytofbfalse",LF.MPYTHON_ZKAI_LCD_SHOW_ECTYPE_SHOW_MESSAGE0="创建一个图像对象的副本 复制图像区域 x%1 y%2 宽%3 高%4",LF.MPYTHON_ZKAI_LCD_SHOW_ECTYPE_SHOW_TOOLTIP="创建一个图像对象的副本",LF.MPYTHON_ZKAI_LCD_SHOW_IMAGE_HEAT_GRAYSCALE="灰度",LF.MPYTHON_ZKAI_LCD_SHOW_IMAGE_HEAT_RAINBOW="彩虹",LF.MPYTHON_ZKAI_LCD_SHOW_IMAGE_HEAT_NEGATE="数字反转",LF.MPYTHON_ZKAI_LCD_SHOW_IMAGE_HEAT_INVERT="黑白翻转",LF.MPYTHON_ZKAI_LCD_SHOW_IMAGE_DESCARTES_LINPOLAR="线性极",LF.MPYTHON_ZKAI_LCD_SHOW_IMAGE_DESCARTES_LOGPOLAR="对数极",LF.MPYTHON_ZKAI_SENSOR_PATTERN_GRAYSCALE="灰度",LF.MPYTHON_ZKAI_SENSOR_PATTERN_COLOR="彩色",LF.MPYTHON_ZKAI_SENSOR_ENABLE_START="开始抓取图像",LF.MPYTHON_ZKAI_SENSOR_ENABLE_STOP="停止抓取图像",LF.MPYTHON_ZKAI_SENSOR_LEVEL_MI_H="水平镜像",LF.MPYTHON_ZKAI_SENSOR_LEVEL_MI_V="垂直翻转",LF.MPYTHON_ZKAI_SENSOR_SETS_CONTRAST="对比度",LF.MPYTHON_ZKAI_SENSOR_SETS_BRIGHTNESS="亮度",LF.MPYTHON_ZKAI_SENSOR_SETS_SATURATION="饱和度",LF.MPYTHON_ZKAI2_FACE_YOLO="人脸识别",LF.MPYTHON_ZKAI2_CLASS_20_YOLO="20类识别",LF.MPYTHON_ZKAI2_MNIST_NET="数字识别",LF.MPYTHON_ZKAI2_PHOTOGRAPH_FACE_YOLO="人脸",LF.MPYTHON_ZKAI2_PHOTOGRAPH_CLASS_20_YOLO="20类",LF.MPYTHON_ZKAI_TRACE_COLOR_RECTANGLE="矩形",LF.MPYTHON_ZKAI_TRACE_COLOR_CROSS="十字",LF.MPYTHON_NAME_PYTHON_ENVIRONMENT_HELPURL="",LF.MPYTHON_NAME_PYTHON_ENVIRONMENT_MESSAGE0="声明python 运行环境",LF.MPYTHON_NAME_PYTHON_ENVIRONMENT_TOOLTIP="",LF.MPYTHON_LARK_GET_ALL_COLOR_MESSAGE0="I2C获取颜色",LF.MPYTHON_LARK_GET_ALL_COLOR_TOOLTIP="返回列表",LF.MPYTHON_LARK_GET_COLOR_TOOLTIP="",LF.MPYTHON_LARK_GET_COLOR_MESSAGE0="I2C获取 %1",LF.MPYTHON_lARK_RED="红色",LF.MPYTHON__LARK_GREEN="绿色",LF.MPYTHON__LARK_BLUE="蓝色",LF.MPYTHON_LARK_GET_ALL_COLOR_HSV_TOOLTIP="HSV(Hue, Saturation, Value)",LF.MPYTHON_LARKT_GET_ALL_COLOR_HSV_MESSAGE0="I2C获取HSV",LF.MPYTHON_LARK_GET_COLOR_HSV_TOOLTIP="HSV(Hue, Saturation, Value)",LF.MPYTHON_LARK_GET_COLOR_HSV_MESSAGE0="i2C获取HSV %1",LF.MPYTHON_LARK_GET_COLOR_STRING_TOOLTIP="",LF.MPYTHON_LARK_GET_COLOR_STRING_MESSAGE0="I2C获取颜色",LF.MPYTHON_LARK_DISCERN_COLOR_TOOLTIP="",LF.MPYTHON_LARK_DISCERN_COLOR_MESSAGE0="识别 %1",LF.MPYTHON_LARK_RED="红色",LF.MPYTHON_LARK_GREEN="绿色",LF.MPYTHON_LARK_BLUE="蓝色",LF.MPYTHON_LARK_ORANGE="橙色",LF.MPYTHON_LARK_YELLOW="黄色",LF.MPYTHON_LARK_PURPLE="紫色",LF.MPYTHON_LARK_CYAN="青色",LF.MPYTHON_LARK_NONE="无色",LF.MPYTHON_LARK_NULL="无法获取",LF.MPYTHON_LARK_ULTRASONIC_TOOLTIP="",LF.MPYTHON_LARK_ULTRASONIC_MESSAGE0="I2C超声波",LF.MPYTHON_LARK_MOTOR_SET_I2C_TOOLTIP="",LF.MPYTHON_LARK_MOTOR_SET_I2C_MESSAGE0="I2C设置 %1 速度 %2",LF.MPYTHON_LARK_GET_LINE_ON_I2C_TOOLTIP="",LF.mpython_LARK_GET_LINE_ON_I2C_MESSAGE0="I2C获取 %1 巡线值",LF.mpython_LARK_GET_LINE_RIGHT_ON_I2C="右边",LF.mpython_LARK_GET_LINE_LEFT_ON_I2C="左边",LF.MPYTHON_LARK_SEARCH_LINE_ON_I2C_TOOLTIP="",LF.mpython_LARK_SEARCH_LINE_ON_I2C_MESSAGE0="I2C循迹传感 %1 遇到黑线",LF.MPYTHON_LARK_SEARCH_LEFT="左边",LF.MPYTHON_LARK_SEARCH_RIGHT="右边",LF.MPYTHON_LARK_SEARCH_LEFT2="两边都",LF.MPYTHON_LARK_SEARCH_RIGHT2="两边都没有",LF.MPYTHON_LARK_SEARCH_BOTH="两边都",LF.MPYTHON_LARK_SEARCH_NONE="两边都没有",LF.MPYTHON_LARK__CAR_GET_ALL_COLOR_TOOLTIP="Returns as list",LF.MPYTHON_LARK__CAR_GET_ALL_COLOR_MESSAGE0="千里马获取颜色",LF.MPYTHON_LARK_CAR_GET_COLOR_TOOLTIP="",LF.MPYTHON_LARK_CAR_GET_COLOR_MESSAGE0="千里马获取 %1",LF.MPYTHON_lARK_CAR_RED="红色",LF.MPYTHON__LARK_CAR_GREEN="绿色",LF.MPYTHON__LARK_CAR_BLUE="蓝色",LF.MPYTHON_LARK_CAR_GET_ALL_COLOR_HSV_TOOLTIP="HSV(Hue, Saturation, Value)",LF.MPYTHON_LARKT_CAR_GET_ALL_COLOR_HSV_MESSAGE0="千里马获取HSV",LF.MPYTHON_LARK_CAR_GET_COLOR_HSV_TOOLTIP="HSV(Hue, Saturation, Value)",LF.MPYTHON_LARK_CAR_GET_COLOR_HSV_MESSAGE0="千里马获取HSV %1",LF.MPYTHON_LARK_CAR_GET_COLOR_STRING_TOOLTIP="",LF.MPYTHON_LARK_CAR_GET_COLOR_STRING_MESSAGE0="千里马识别颜色",LF.MPYTHON_LARK_CAR_DISCERN_COLOR_TOOLTIP="",LF.MPYTHON_LARK_CAR_DISCERN_COLOR_MESSAGE0="千里马识别颜色 %1",LF.MPYTHON_LARK_CAR_RED="红色",LF.MPYTHON_LARK_CAR_GREEN="绿色",LF.MPYTHON_LARK_CAR_BLUE="蓝色",LF.MPYTHON_LARK_CAR_ORANGE="橙色",LF.MPYTHON_LARK_CAR_YELLOW="黄色",LF.MPYTHON_LARK_CAR_PURPLE="紫色",LF.MPYTHON_LARK_CAR_CYAN="青色",LF.MPYTHON_LARK_CAR_NONE="无识别",LF.MPYTHON_LARK_CAR_NULL="识别错误",LF.MPYTHON_LARK_CAR_ULTRASONIC_TOOLTIP="",LF.MPYTHON_LARK_CAR_ULTRASONIC_MESSAGE0="千里马获取超声波",LF.MPYTHON_LARK_CAR_GET_LINE_ON_I2C_TOOLTIP="",LF.mpython_LARK_CAR_GET_LINE_ON_I2C_MESSAGE0="千里马获取 %1 循迹数值",LF.mpython_LARK_CAR_GET_LINE_RIGHT_ON_I2C="右边",LF.mpython_LARK_CAR_GET_LINE_LEFT_ON_I2C="左边",LF.MPYTHON_LARK_CAR_SEARCH_LINE_ON_I2C_TOOLTIP="",LF.mpython_LARK_CAR_SEARCH_LINE_ON_I2C_MESSAGE0="千里马循迹传感器 %1 碰到黑线",LF.MPYTHON_LARK_CAR_SEARCH_LEFT="左边",LF.MPYTHON_LARK_CAR_SEARCH_RIGHT="右边",LF.MPYTHON_LARK_CAR_SEARCH_LEFT2="两边",LF.MPYTHON_LARK_CAR_SEARCH_NONE="两边都没有",LF.MPYTHON_LARK_MOTOR_SET_I2C_TOOLTIP="",LF.MPYTHON_LARK_MOTOR_SET_I2C_MESSAGE0="电机驱动 %1 速度 %2",LF.MPYTHON_LARK_MOTOR2_SET_I2C_TOOLTIP="",LF.MPYTHON_LARK_MOTOR2_SET_I2C_MESSAGE0="千里马 %1 速度 %2",LF.MPYTHON_LARK_CAR_MOTION_LEFT="左转",LF.MPYTHON_LARK_CAR_MOTION_RIGHT="右转",LF.MPYTHON_LARK_CAR_MOTION_FORWARD="前进",LF.MPYTHON_LARK_CAR_MOTION_BACKWARD="后退",LF.MPYTHON_LARK_CAR_MOTION_STOP="停止",LF.MPYTHON_DEFINE_THREAD_MESSAGE0="定义线程 %1",LF.MPYTHON_RUN_THREAD_MESSAGE0="运行线程 %1",LF.NUMBER_TO_BYTES_MESSAGE0="(struct.pack) 转换数字为bytes %1 %2 %3 %4 待转换数字 %5",LF.BYTES_TO_NUMBER_MESSAGE0="(struct.unpack) 解包bytes为数字 %1 %2 %3 %4 待转换bytes %5",LF.LITTLE_ENDIAN="低位优先(默认)",LF.BIG_ENDIAN="高位优先",LF.MPYTHON2_ACCELEROMETER_EVENT_MESSAGE0="[适用2.0板] 当掌控板 %1 时",LF.MPYTHON2_ACCELEROMETER_EVENT_HELPURL="",LF.MPYTHON2_ACCELEROMETER_EVENT_TOOLTIP="",LF.MPYTHON2_ACCELEROMETER_EVENT_TILT_LEFT="向左倾斜",LF.MPYTHON2_ACCELEROMETER_EVENT_TILT_RIGHT="向右倾斜",LF.MPYTHON2_ACCELEROMETER_EVENT_TILT_UP="向前倾斜",LF.MPYTHON2_ACCELEROMETER_EVENT_TILT_DOWN="向后倾斜",LF.MPYTHON2_ACCELEROMETER_EVENT_FACE_UP="正面朝上",LF.MPYTHON2_ACCELEROMETER_EVENT_FACE_DOWN="正面朝下",LF.MPYTHON2_ACCELEROMETER_EVENT_SINGLE_CLICK="被单击",LF.MPYTHON2_ACCELEROMETER_EVENT_DOUBLE_CLICK="被双击",LF.MPYTHON2_ACCELEROMETER_EVENT_FREEFALL="坠落",LF.MPYTHON2_ACCELEROMETER_ROLL_ANGLE="横滚角",LF.MPYTHON2_ACCELEROMETER_PITCH_ANGLE="俯仰角",LF.MPYTHON2_ACCELEROMETER_ANGLE_HELPURL="",LF.MPYTHON2_ACCELEROMETER_ANGLE_TOOLTIP="",LF.MPYTHON2_ACCELEROMETER_ANGLE_MESSAGE0="掌控板 %1",LF.MPYTHON2_BUTTON_IS_PRESSED_HELPURL="",LF.MPYTHON2_BUTTON_IS_PRESSED_TOOLTIP="",LF.MPYTHON2_BUTTON_IS_PRESSED_MESSAGE0="按键 %1 已经按下",LF.MPYTHON2_BUTTON_WAS_PRESSED_HELPURL="",LF.MPYTHON2_BUTTON_WAS_PRESSED_TOOLTIP="",LF.MPYTHON2_BUTTON_WAS_PRESSED_MESSAGE0="按键 %1 曾经按下",LF.MPYTHON2_BUTTON_GET_PRESSES_HELPURL="",LF.MPYTHON2_BUTTON_GET_PRESSES_TOOLTIP="",LF.MPYTHON2_BUTTON_GET_PRESSES_MESSAGE0="按键 %1 按下过的次数",LF.MPYTHON2_BUTTON_EVENT_MESSAGE0="当按键 %1 被 %2 时",LF.MPYTHON2_BUTTON_EVENT_HELPURL="",LF.MPYTHON2_BUTTON_EVENT_TOOLTIP="",LF.MPYTHON2_BUTTON_EVENT_PRESSED="按下",LF.MPYTHON2_BUTTON_EVENT_RELEASED="松开",LF.MPYTHON2_TOUCHPAD_IS_PRESSED_HELPURL="",LF.MPYTHON2_TOUCHPAD_IS_PRESSED_TOOLTIP="",LF.MPYTHON2_TOUCHPAD_IS_PRESSED_MESSAGE0="触摸键 %1 已经按下",LF.MPYTHON2_TOUCHPAD_WAS_PRESSED_HELPURL="",LF.MPYTHON2_TOUCHPAD_WAS_PRESSED_TOOLTIP="",LF.MPYTHON2_TOUCHPAD_WAS_PRESSED_MESSAGE0="触摸键 %1 曾经按下",LF.MPYTHON2_TOUCHPAD_GET_PRESSES_HELPURL="",LF.MPYTHON2_TOUCHPAD_GET_PRESSES_TOOLTIP="",LF.MPYTHON2_TOUCHPAD_GET_PRESSES_MESSAGE0="触摸键 %1 按下过的次数",LF.MPYTHON2_TOUCHPAD_VALUE_HELPURL="",LF.MPYTHON2_TOUCHPAD_VALUE_TOOLTIP="",LF.MPYTHON2_TOUCHPAD_VALUE_MESSAGE0="触摸键 %1 值",LF.MPYTHON2_TOUCHPAD_EVENT_MESSAGE0="当触摸键 %1 被 %2 时",LF.MPYTHON2_TOUCHPAD_EVENT_HELPURL="",LF.MPYTHON2_TOUCHPAD_EVENT_TOOLTIP="",LF.MPYTHON2_TOUCHPAD_EVENT_PRESSED="触摸",LF.MPYTHON2_TOUCHPAD_EVENT_RELEASED="释放",LF.MPYTHON2_TOUCHPAD_THRESHOLD_MESSAGE0="设置触摸键 %1 阀值为 %2",LF.MPYTHON2_TOUCHPAD_THRESHOLD_HELPURL="",LF.MPYTHON2_TOUCHPAD_THRESHOLD_TOOLTIP="",LF.BLE_UUID_HELPURL="https://mpython-ble.readthedocs.io/zh/master/api/index.html#UUID",LF.BLE_UUID_TOOLTIP="",LF.BLE_SETUP_PERIPHERAL_HELPURL="",LF.BLE_SETUP_PERIPHERAL_TOOLTIP="",LF.BLE_SETUP_PERIPHERAL_MESSAGE0="构建 BLE 外围设备对象 %1 显示名称 %2 Service UUID %3",LF.BLE_ADD_CHARACTERISTIC_HELPURL="",LF.BLE_ADD_CHARACTERISTIC_TOOLTIP="",LF.BLE_ADD_CHARACTERISTIC_MESSAGE0="定义 BLE 属性 %1 %2 Characteristic UUID %3 Read %4 Write %5 Notity %6",LF.BLE_PERIPHERAL_ADVERTISE_HELPURL="",LF.BLE_PERIPHERAL_ADVERTISE_TOOLTIP="",LF.BLE_PERIPHERAL_ADVERTISE_MESSAGE0="BLE 外围设备 %1",LF.BLE_START_BROADCASTING="开始广播",LF.BLE_STOP_BROADCASTING="停止广播",LF.BLE_PERIPHERAL_ATTRUBUTE_READ_HELPURL="",LF.BLE_PERIPHERAL_ATTRUBUTE_READ_TOOLTIP="",LF.BLE_PERIPHERAL_ATTRUBUTE_READ_MESSAGE0="读 BLE 设备的属性 %1",LF.BLE_PERIPHERAL_ATTRUBUTE_WRITE_HELPURL="",LF.BLE_PERIPHERAL_ATTRUBUTE_WRITE_TOOLTIP="",LF.BLE_PERIPHERAL_ATTRUBUTE_WRITE_MESSAGE0="写 BLE 设备的属性 %1 %2 值 %3 Notify %4",LF.BLE_PERIPHERAL_DISCONNECT_HELPURL="",LF.BLE_PERIPHERAL_DISCONNECT_TOOLTIP="",LF.BLE_PERIPHERAL_DISCONNECT_MESSAGE0="BLE 外围设备断开连接",LF.BLE_PERIPHERAL_MAC_HELPURL="",LF.BLE_PERIPHERAL_MAC_TOOLTIP="",LF.BLE_PERIPHERAL_MAC_MESSAGE0="BLE 外围设备 MAC地址",LF.BLE_PERIPHERAL_CONNECTION_CALLBACK_HELPURL="",LF.BLE_PERIPHERAL_CONNECTION_CALLBACK_TOOLTIP="",LF.BLE_PERIPHERAL_CONNECTION_CALLBACK_MESSAGE0="当 BLE 与中央设备建立连接时 %1 连接句柄 %2 地址类型 %3 中央设备的MAC地址 %4",LF.BLE_PERIPHERAL_WRITE_CALLBACK_HELPURL="",LF.BLE_PERIPHERAL_WRITE_CALLBACK_TOOLTIP="",LF.BLE_PERIPHERAL_WRITE_CALLBACK_MESSAGE0="当 BLE 设备的属性值被改写时 %1 连接句柄 %2 被写属性句柄 %3 写入的数据 %4",LF.BLE_SETUP_CENTERAL_HELPURL="",LF.BLE_SETUP_CENTERAL_TOOLTIP="",LF.BLE_SETUP_CENTERAL_MESSAGE0="构建 BLE 中央设备对象 显示名称 %1",LF.BLE_CENTERAL_CONNECT_HELPURL="",LF.BLE_CENTERAL_CONNECT_TOOLTIP="",LF.BLE_CENTERAL_CONNECT_MESSAGE0="BLE 中央设备连接到 %1 %2",LF.BLE_CENTERAL_IS_CONNECTED_HELPURL="",LF.BLE_CENTERAL_IS_CONNECTED_TOOLTIP="",LF.BLE_CENTERAL_IS_CONNECTED_MESSAGE0="BLE 外围设备已连接 ?",LF.BLE_CENTERAL_DEF_CHARACTERISTIC_HELPURL="",LF.BLE_CENTERAL_DEF_CHARACTERISTIC_TOOLTIP="",LF.BLE_CENTERAL_DEF_CHARACTERISTIC_MESSAGE0="设定 %1 为 已连接外围设备 属性对象 %2 Service UUID %3 Characteristic UUID %4",LF.BLE_CENTERAL_CHARACTERISTIC_READ_HELPURL="",LF.BLE_CENTERAL_CHARACTERISTIC_READ_TOOLTIP="",LF.BLE_CENTERAL_CHARACTERISTIC_READ_MESSAGE0="读 已连接外围设备的 属性 %1 值",LF.BLE_CENTERAL_CHARACTERISTIC_WRITE_HELPURL="",LF.BLE_CENTERAL_CHARACTERISTIC_WRITE_TOOLTIP="",LF.BLE_CENTERAL_CHARACTERISTIC_WRITE_MESSAGE0="写 已连接外围设备的 属性 %1 值 %2",LF.BLE_CENTERAL_NOTIFY_CALLBACK_HELPURL="",LF.BLE_CENTERAL_NOTIFY_CALLBACK_TOOLTIP="",LF.BLE_CENTERAL_NOTIFY_CALLBACK_MESSAGE0="当 已连接外围设备发起 Notify 通知事件时 %1 属性的值柄 %2 通知的属性值 %3",LF.BLE_CENTERAL_CONNECTED_INFO_HELPURL="",LF.BLE_CENTERAL_CONNECTED_INFO_TOOLTIP="",LF.BLE_CENTERAL_CONNECTED_INFO_MESSAGE0="已连接的外围设备 %1",LF.BLE_CENTERAL_CLOSE_HELPURL="",LF.BLE_CENTERAL_CLOSE_TOOLTIP="",LF.BLE_CENTERAL_CLOSE_MESSAGE0="BLE 中央设备 断开连接",LF.BLE_INFO_NAME="蓝牙名称",LF.BLE_INFO_MAC="MAC地址",LF.BLE_INFO_RSSI="信号强度",LF.BLE_INFO_ADDRTYPE="地址类型",LF.BLE_INFO_ADVTYPE="广播类型",LF.BLE_INFO_DATA="原始数据(元组)",LF.BLE_SETUP_UART_HELPURL="",LF.BLE_SETUP_UART_TOOLTIP="",LF.BLE_SETUP_UART_MESSAGE0="构建 BLE UART从机 显示名称 %1",LF.BLE_UART_IS_CONNECTED_HELPURL="",LF.BLE_UART_IS_CONNECTED_TOOLTIP="",LF.BLE_UART_IS_CONNECTED_MESSAGE0="BLE UART 已连接 ?",LF.BLE_UART_ANY_HELPURL="",LF.BLE_UART_ANY_TOOLTIP="",LF.BLE_UART_ANY_MESSAGE0="BLE UART 可读字节数量",LF.BLE_UART_IRQ_HELPURL="",LF.BLE_UART_IRQ_TOOLTIP="",LF.BLE_UART_IRQ_MESSAGE0="当 BLE UART 接收到数据时 %1 执行 %2",LF.BLE_UART_READ_HELPURL="",LF.BLE_UART_READ_TOOLTIP="从 UART 另一端发送过来的消息",LF.BLE_UART_READ_MESSAGE0="已接收数据",LF.BLE_UART_WRITE_HELPURL="",LF.BLE_UART_WRITE_TOOLTIP="",LF.BLE_UART_WRITE_MESSAGE0="BLE UART 发送字节 %1",LF.BLE_UART_CLOSE_HELPURL="",LF.BLE_UART_CLOSE_TOOLTIP="",LF.BLE_UART_CLOSE_MESSAGE0="BLE UART 断开连接",LF.BLE_SETUP_UART_MASTER_HELPURL="",LF.BLE_SETUP_UART_MASTER_TOOLTIP="",LF.BLE_SETUP_UART_MASTER_MESSAGE0="构建 BLE UART主机 连接到 %1 %2",LF.BLE_SETUP_HID_HELPURL="",LF.BLE_SETUP_HID_TOOLTIP="",LF.BLE_SETUP_HID_MESSAGE0="构建 BLE HID %1 对象 %2 显示名称 %3 电池电量 %4",LF.BLE_HID_MOUSE="鼠标",LF.BLE_HID_KEYBOARD="键盘",LF.BLE_HID_CONSUMER="遥控器",LF.BLE_HID_ADVERTISE_HELPURL="",LF.BLE_HID_ADVERTISE_TOOLTIP="",LF.BLE_HID_ADVERTISE_MESSAGE0="BLE HID设备 %1",LF.BLE_HID_CONNECT_EVENT_HELPURL="",LF.BLE_HID_CONNECT_EVENT_TOOLTIP="",LF.BLE_HID_CONNECT_EVENT_MESSAGE0="当 BLE HID设备 连接时",LF.BLE_HID_DISCONNECT_HELPURL="",LF.BLE_HID_DISCONNECT_TOOLTIP="",LF.BLE_HID_DISCONNECT_MESSAGE0="BLE HID设备 断开连接",LF.BLE_HID_BATTERY_LEVEL_HELPURL="",LF.BLE_HID_BATTERY_LEVEL_TOOLTIP="",LF.BLE_HID_BATTERY_LEVEL_MESSAGE0="BLE HID设备 电池电量",LF.BLE_HID_MOUSE_BUTTONS_HELPURL="",LF.BLE_HID_MOUSE_BUTTONS_TOOLTIP="",LF.BLE_HID_MOUSE_BUTTONS_MESSAGE0="鼠标键 %1",LF.BLE_HID_MOUSE_CLICK_HELPURL="",LF.BLE_HID_MOUSE_CLICK_TOOLTIP="",LF.BLE_HID_MOUSE_CLICK_MESSAGE0="BLE HID 鼠标 点击按键 %1",LF.BLE_HID_MOUSE_PRESS_HELPURL="",LF.BLE_HID_MOUSE_PRESS_TOOLTIP="",LF.BLE_HID_MOUSE_PRESS_MESSAGE0="BLE HID 鼠标 长按按键 %1",LF.BLE_HID_MOUSE_RELEASE_HELPURL="",LF.BLE_HID_MOUSE_RELEASE_TOOLTIP="",LF.BLE_HID_MOUSE_RELEASE_MESSAGE0="BLE HID 鼠标 释放按键 %1",LF.BLE_HID_MOUSE_RELEASE_ALL_HELPURL="",LF.BLE_HID_MOUSE_RELEASE_ALL_TOOLTIP="",LF.BLE_HID_MOUSE_RELEASE_ALL_MESSAGE0="BLE HID 鼠标 释放所有按键",LF.BLE_HID_MOUSE_MOVE_HELPURL="",LF.BLE_HID_MOUSE_MOVE_TOOLTIP="x, y - 光标移动量,范围 ±127 。\nwheel - 滚轮,范围 ±127 。",LF.BLE_HID_MOUSE_MOVE_MESSAGE0="BLE HID 鼠标 光标移动 %1 X轴移动量 %2 Y轴移动量 %3 滚轮 %4",LF.BLE_HID_KEYBOARD_BUTTONS_HELPURL="",LF.BLE_HID_KEYBOARD_BUTTONS_TOOLTIP="",LF.BLE_HID_KEYBOARD_BUTTONS_MESSAGE0="键盘按键 %1",LF.BLE_HID_KEYBOARD_SEND_HELPURL="",LF.BLE_HID_KEYBOARD_SEND_TOOLTIP="",LF.BLE_HID_KEYBOARD_SEND_MESSAGE0="BLE HID 键盘 按下按键 %1",LF.BLE_HID_KEYBOARD_SEND_MULTI_HELPURL="",LF.BLE_HID_KEYBOARD_SEND_MULTI_TOOLTIP="",LF.BLE_HID_KEYBOARD_SEND_MULTI_MESSAGE0="BLE HID 键盘 同时按下按键 %1 %2 %3",LF.BLE_HID_KEYBOARD_PRESS_HELPURL="",LF.BLE_HID_KEYBOARD_PRESS_TOOLTIP="",LF.BLE_HID_KEYBOARD_PRESS_MESSAGE0="BLE HID 键盘 长按按键 %1",LF.BLE_HID_KEYBOARD_RELEASE_HELPURL="",LF.BLE_HID_KEYBOARD_RELEASE_TOOLTIP="",LF.BLE_HID_KEYBOARD_RELEASE_MESSAGE0="BLE HID 键盘 释放按键 %1",LF.BLE_HID_KEYBOARD_RELEASE_ALL_HELPURL="",LF.BLE_HID_KEYBOARD_RELEASE_ALL_TOOLTIP="",LF.BLE_HID_KEYBOARD_RELEASE_ALL_MESSAGE0="BLE HID 键盘 释放所有按键",LF.BLE_HID_CONSUMER_BUTTONS_HELPURL="",LF.BLE_HID_CONSUMER_BUTTONS_TOOLTIP="",LF.BLE_HID_CONSUMER_BUTTONS_MESSAGE0="遥控器键 %1",LF.BLE_HID_CONSUMER_SEND_HELPURL="",LF.BLE_HID_CONSUMER_SEND_TOOLTIP="",LF.BLE_HID_CONSUMER_SEND_MESSAGE0="BLE HID 遥控器点击 %1",LF.BLE_SETUP_IBEACON_HELPURL="",LF.BLE_SETUP_IBEACON_TOOLTIP="",LF.BLE_SETUP_IBEACON_MESSAGE0="构建 BLE iBeacon设备 %1 UUID %2 major %3 minor %4",LF.BLE_IBEACON_ADVERTISE_HELPURL="",LF.BLE_IBEACON_ADVERTISE_TOOLTIP="",LF.BLE_IBEACON_ADVERTISE_MESSAGE0="BLE iBeacon设备 %1",LF.MPYTHON_PARROT_GET_BATTERY_LEVEL_HELPURL="",LF.MPYTHON_PARROT_GET_BATTERY_LEVEL_TOOLTIP="返回电量,单位mV",LF.MPYTHON_PARROT_GET_BATTERY_LEVEL_MESSAGE0="拓展板的电压值(mV)",LF.MPYTHON_BLUEBIT_IR_ENCODE_RAW_HELPURL="",LF.MPYTHON_BLUEBIT_IR_ENCODE_RAW_TOOLTIP="返回编码后的红外脉冲数据buff",LF.MPYTHON_BLUEBIT_IR_ENCODE_RAW_MESSAGE0="拓展板 红外脉冲任意编码 %1 载波频率(Hz) %2 code总数 %3 循环码位置 %4 code列表 %5 编码波形数据 %6",LF.MPYTHON_BLUEBIT_IR_ENCODE_NEC_HELPURL="",LF.MPYTHON_BLUEBIT_IR_ENCODE_NEC_TOOLTIP="返回编码后的红外脉冲数据buff\n用户码:0~255\n命令码:0~255",LF.MPYTHON_BLUEBIT_IR_ENCODE_NEC_MESSAGE0="拓展板 红外脉冲NEC编码 %1 用户码 %2 命令码 %3",LF.MPYTHON_BLUEBIT_IR_SEND_HELPURL="",LF.MPYTHON_BLUEBIT_IR_SEND_TOOLTIP="",LF.MPYTHON_BLUEBIT_IR_SEND_MESSAGE0="拓展板 发送红外脉冲数据 %1 %2",LF.MPYTHON_BLUEBIT_IR_SEND_REPEAT_0="只发一次",LF.MPYTHON_BLUEBIT_IR_SEND_REPEAT_1="持续发送",LF.MPYTHON_BLUEBIT_IR_STOP_SEND_HELPURL="",LF.MPYTHON_BLUEBIT_IR_STOP_SEND_TOOLTIP="当发送重复码后,使用此函数来停止发送。",LF.MPYTHON_BLUEBIT_IR_STOP_SEND_MESSAGE0="拓展板 停止发送红外脉冲数据",LF.MPYTHON_BLUEBIT_IR_LEARN_HELPURL="",LF.MPYTHON_BLUEBIT_IR_LEARN_TOOLTIP="学习开始后,需等待4秒,之后返回学习结果。";LF.MPYTHON_BLUEBIT_IR_LEARN_MESSAGE0="拓展板 开始红外学习",LF.MPYTHON_BLUEBIT_IR_GET_LEARN_STATUS_HELPURL="",LF.MPYTHON_BLUEBIT_IR_GET_LEARN_STATUS_TOOLTIP="",LF.MPYTHON_BLUEBIT_IR_GET_LEARN_STATUS_MESSAGE0="拓展板 红外学习有结果 ?",LF.MPYTHON_BLUEBIT_IR_GET_LEARN_DATA_HELPURL="",LF.MPYTHON_BLUEBIT_IR_GET_LEARN_DATA_TOOLTIP="返回学习后的“红外编码数据”,须在 learn 函数后使用。",LF.MPYTHON_BLUEBIT_IR_GET_LEARN_DATA_MESSAGE0="拓展板 学习到的红外编码数据",LF.MPYTHON_MLX90615_SET_HELPURL="",LF.MPYTHON_MLX90615_SET_MESSAGE0="MLX90615 非接触测温传感器 设置发射系数%1",LF.MPYTHON_MLX90615_SET_TOOLTIP="",LF.MPYTHON_MLX90615_GET_HELPURL="",LF.MPYTHON_MLX90615_GET_MESSAGE0="MLX90615 非接触测温传感器 获取系数",LF.MPYTHON_MLX90615_GET_TOOLTIP="",LF.MPYTHON_MLX90615_THERMOMETRY_HELPURL="",LF.MPYTHON_MLX90615_THERMOMETRY_MESSAGE0="MLX90615 非接触测温传感器 获取测温",LF.MPYTHON_MLX90615_THERMOMETRY_TOOLTIP="",LF.MPYTHON_MQ135_INIT_HELPURL="",LF.MPYTHON_MQ135_INIT_MESSAGE0="MQ135初始化 输出引脚%1 温度%2 ℃ 湿度%3 %",LF.MPYTHON_MQ135_INIT_TOOLTIP="MQ135上的VCC 连接扩展板的电源口 V ,GND连接扩展板的地线口 G ,AO输出连接扩展板的引脚 P0/P1(即选引脚)\nMQ135主要用于检测空气中的二氧化碳、酒精、苯、氮氧化物、氨等气体的浓度",LF.MPYTHON_MQ135_OPTIONS_MESSAGE0="MQ135 返回 %1",LF.MPYTHON_MQ135_OPTIONS_HELPURL="",LF.MPYTHON_MQ135_OPTIONS_TOOLTIP="返回探测到的二氧化碳的百万分之一(假设只有空气中的二氧化碳) ppm浓度",LF.MPYTHON_MQ135_GET_RZERO="校正传感器电阻",LF.MPYTHON_MQ135_GET_CORRECTED_RZERO="校正传感器电阻(校准温度、湿度)",LF.MPYTHON_MQ135_GET_PPM="二氧化碳、酒精、苯、氮氧化物、氨等气体ppm浓度",LF.MPYTHON_MQ135_GET_CORRECTED_PPM="二氧化碳、酒精、苯、氮氧化物、氨等气体ppm浓度(校准温度、湿度)",LF.mpython_gyroscope_get_HELPURL="",LF.mpython_gyroscope_get_MESSAGE0="%1 轴角速度",LF.mpython_gyroscope_get_TOOLTIP="v2.3版本以上掌控版适用",LF.MPYTHON_GYROSCOPE_RANGE_16_DPS="±16dps",LF.MPYTHON_GYROSCOPE_RANGE_32_DPS="±32dps",LF.MPYTHON_GYROSCOPE_RANGE_64_DPS="±64dps",LF.MPYTHON_GYROSCOPE_RANGE_128_DPS="±128dps",LF.MPYTHON_GYROSCOPE_RANGE_256_DPS="±256dps",LF.MPYTHON_GYROSCOPE_RANGE_512_DPS="±512dps",LF.MPYTHON_GYROSCOPE_RANGE_1024_DPS="±1024dps",LF.MPYTHON_GYROSCOPE_RANGE_2048_DPS="±2048dps",LF.MPYTHON_GYROSCOPE_SET_RANGE_HELPURL="",LF.MPYTHON_GYROSCOPE_SET_RANGE_TOOLTIP="设置角速度范围,默认为 ±256dps。仅适用于掌控板2.3及以上版本",LF.MPYTHON_GYROSCOPE_SET_RANGE_MESSAGE0="设置角速度范围为 %1",LF.MPYTHON_GYROSCOPE_SET_OFFSET_HELPURL="",LF.MPYTHON_GYROSCOPE_SET_OFFSET_TOOLTIP="校准陀螺仪角速度计的3个轴(x,y,z)的角速度值偏差。\n一般情况下无需校准,只有遇到角速度偏差较大时才要校准。\n x , y , z 为调整偏差值,可修正范围为 ±1024dps。\n注意:v2.3版本以后适用",LF.MPYTHON_GYROSCOPE_SET_OFFSET_MESSAGE0="校准角速度值 %1 X轴偏差 %2 Y轴偏差 %3 Z轴偏差 %4";const RF=LF,rF={TEXT_IS_NUMBER_HELPURL:"",TEXT_IS_NUMBER_TOOLTIP:"",TEXT_IS_NUMBER_MESSAGE0:"%1 %2",TEXT_IS_DIGIT:"是數字",TEXT_IS_ALPHA:"是字母",TEXT_IS_ALNUM:"是數字和字母的組合",TEXT_LIST_START:"初始化列表 [",TEXT_LIST_END:"]",TEXT_TUPLE_START:"初始化元組 (",TEXT_TUPLE_END:")",TEXT_DICT_START:"初始化字典 {",TEXT_DICT_END:"}",TEXT_SET_START:"初始化集合 {",TEXT_SET_END:"}",TEXT_SET_HELPURL:"https://mpythonx.readthedocs.io/zh_CN/latest/index.html",ADD_COMMENT:"添加註釋",CHANGE_VALUE_TITLE:"更改值:",CLEAN_UP:"整理塊",COLLAPSE_ALL:"折疊塊",COLLAPSE_BLOCK:"折疊塊",COLOUR_BLEND_COLOUR1:"顏色1",COLOUR_BLEND_COLOUR2:"顏色2",COLOUR_BLEND_HELPURL:"http://meyerweb.com/eric/tools/color-blend/",COLOUR_BLEND_RATIO:"比例",COLOUR_BLEND_TITLE:"混合",COLOUR_BLEND_TOOLTIP:"用一個給定的比率(0.0-1.0)混合兩種顏色。",COLOUR_PICKER_HELPURL:"https://zh.wikipedia.org/wiki/顏色",COLOUR_PICKER_TOOLTIP:"從調色板中選擇一種顏色。",COLOUR_RANDOM_HELPURL:"http://randomcolour.com",COLOUR_RANDOM_TITLE:"隨機顏色",COLOUR_RANDOM_TOOLTIP:"隨機選擇一種顏色。",COLOUR_RGB_BLUE:"藍色",COLOUR_RGB_GREEN:"綠色",COLOUR_RGB_HELPURL:"http://www.december.com/html/spec/colorper.html",COLOUR_RGB_RED:"紅色",COLOUR_RGB_TITLE:"顏色",COLOUR_RGB_TOOLTIP:"通過指定紅色、綠色和藍色的量創建一種顏色。所有的值必須介於0和100之間。",CONTROLS_FLOW_STATEMENTS_HELPURL:"https://github.com/google/blockly/wiki/Loops#loop-termination-blocks",CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK:"中斷循環",CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE:"繼續下一次循環",CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK:"中斷包含它的循環。",CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE:"跳過這個循環的剩余部分,並繼續下一次叠代。",CONTROLS_FLOW_STATEMENTS_WARNING:"警告:此塊僅可用於在一個循環內。",CONTROLS_FOREACH_HELPURL:"https://github.com/google/blockly/wiki/Loops#for-each",CONTROLS_FOREACH_TITLE:"為每個項目 %1 在列表中 %2",CONTROLS_FOREACH_TOOLTIP:"遍歷每個列表中的項目,將變量“%1”設定到該項中,然後執行某些語句。",CONTROLS_FOR_HELPURL:"https://github.com/google/blockly/wiki/Loops#count-with",CONTROLS_FOR_TITLE:"使用 %1 從範圍 %2 到 %3 每隔 %4",CONTROLS_FOR_TOOLTIP:"從起始數到結尾數中取出變量“%1”的值,按指定的時間間隔,執行指定的塊。",CONTROLS_IF_ELSEIF_TOOLTIP:"在if語句塊中增加一個條件。",CONTROLS_IF_ELSE_TOOLTIP:"添加一個最終的,包括所有情況的節到if塊中。",CONTROLS_IF_HELPURL:"https://github.com/google/blockly/wiki/IfElse",TRY_EXCEPT_HELPURL:"https://mpythonx.readthedocs.io/zh_CN/latest/index.html",CONTROLS_IF_IF_TOOLTIP:"增加、刪除或重新排列各節來重新配置“if”塊。",CONTROLS_IF_MSG_ELSE:"否則",CONTROLS_IF_MSG_ELSEIF:"否則如果",TRY_EXCEPT_FINALLY:"finally",TRY_EXCEPT_FINALLY_TOOLTIP:"",TRY_EXCEPT_EXCEPT:"except",TRY_EXCEPT_EXCEPT_TOOLTIP:"",TRY_EXCEPT_TRY:"try",TRY_EXCEPT_TRY_TOOLTIP:"",CONTROLS_IF_MSG_IF:"如果",CONTROLS_IF_TOOLTIP_1:"如果值為真,執行一些語句。",CONTROLS_IF_TOOLTIP_2:"如果值為真,則執行第一塊語句。否則,則執行第二塊語句。",CONTROLS_IF_TOOLTIP_3:"如果第一個值為真,則執行第一塊的語句。否則,如果第二個值為真,則執行第二塊的語句。",CONTROLS_IF_TOOLTIP_4:"如果第一個值為真,則執行第一塊對語句。否則,如果第二個值為真,則執行語句的第二塊。如果沒有值為真,則執行最後一塊的語句。",CONTROLS_REPEAT_FOREVER:"一直重復",CONTROLS_REPEAT_FOREVER_TOOLTIP:"一直執行一些語句。",CONTROLS_REPEAT_HELPURL:"https://zh.wikipedia.org/wiki/For循環",CONTROLS_REPEAT_INPUT_DO:"",CONTROLS_REPEAT_TITLE:"重復 %1 次",CONTROLS_REPEAT_TOOLTIP:"多次執行一些語句。",CONTROLS_WHILEUNTIL_HELPURL:"https://github.com/google/blockly/wiki/Loops#repeat",CONTROLS_WHILEUNTIL_OPERATOR_UNTIL:"重復直到",CONTROLS_WHILEUNTIL_OPERATOR_WHILE:"重復當",CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL:"只要值為假,執行一些語句。",CONTROLS_WHILEUNTIL_TOOLTIP_WHILE:"只要值為真,執行一些語句。",DELETE_ALL_BLOCKS:"刪除所有%1塊嗎?",DELETE_BLOCK:"刪除塊",DELETE_VARIABLE:"刪除“%1”變量",DELETE_VARIABLE_CONFIRMATION:"刪除“%2”變量的%1種用途麽?",DELETE_X_BLOCKS:"刪除塊",DISABLE_BLOCK:"禁用塊",DUPLICATE_BLOCK:"復制",ENABLE_BLOCK:"啟用塊",EXPAND_ALL:"展開塊",EXPAND_BLOCK:"展開塊",EXTERNAL_INPUTS:"多行輸入",HELP:"幫助",INLINE_INPUTS:"單行輸入",LISTS_CREATE_EMPTY_HELPURL:"https://github.com/google/blockly/wiki/Lists#create-empty-list",LISTS_CREATE_EMPTY_TITLE:"創建空列表",TUPLE_CREATE_EMPTY_TITLE:"創建空元組",DICT_CREATE_EMPTY_TITLE:"創建空字典",SET_CREATE_EMPTY_TITLE:"創建空集合",LISTS_CREATE_EMPTY_TOOLTIP:"返回一個列表,長度為 0,不包含任何數據記錄",LISTS_CREATE_WITH_CONTAINER_TITLE_ADD:"列表",TUPLE_CREATE_WITH_CONTAINER_TITLE_ADD:"元組",DICT_CREATE_WITH_CONTAINER_TITLE_ADD:"字典",SET_CREATE_WITH_CONTAINER_TITLE_ADD:"集合",LISTS_CREATE_WITH_CONTAINER_TOOLTIP:"增加、刪除或重新排列各部分以此重新配置這個列表塊。",TUPLE_CREATE_WITH_CONTAINER_TOOLTIP:"增加、刪除或重新排列各部分以此重新配置這個元組塊。",DICT_CREATE_WITH_CONTAINER_TOOLTIP:"增加、刪除或重新排列各部分以此重新配置這個字典塊。",SET_CREATE_WITH_CONTAINER_TOOLTIP:"增加、刪除或重新排列各部分以此重新配置這個集合塊。",LISTS_CREATE_WITH_HELPURL:"https://github.com/google/blockly/wiki/Lists#create-list-with",LISTS_CREATE_WITH_INPUT_WITH:"初始化列表",TUPLE_CREATE_WITH_INPUT_WITH:"初始化元組",DICT_CREATE_WITH_INPUT_WITH:"初始化字典",SET_CREATE_WITH_INPUT_WITH:"初始化集合",LISTS_CREATE_WITH_ITEM_TOOLTIP:"將一個項添加到列表中。",TUPLE_CREATE_WITH_ITEM_TOOLTIP:"將一個項添加到元組中。",DICT_CREATE_WITH_ITEM_TOOLTIP:"將一個項添加到字典中。",SET_CREATE_WITH_ITEM_TOOLTIP:"將一個項添加到集合中。",LISTS_CREATE_WITH_TOOLTIP:"建立一個具有任意數量項目的列表。",LISTS_GET_INDEX_FIRST:"第一",LISTS_GET_INDEX_FROM_END:"倒數第",LISTS_GET_INDEX_FROM_START:"第",LISTS_GET_INDEX_GET:"獲得",LISTS_GET_INDEX_GET_REMOVE:"取出並移除",LISTS_GET_INDEX_LAST:"最後",LISTS_GET_INDEX_RANDOM:"隨機",LISTS_GET_INDEX_REMOVE:"移除",LISTS_POP_HELPURL:"",LISTS_POP_TOOLTIP:"",LISTS_POP_MESSAGE0:"在列表 %1 中移除 %2 項",LISTS_GET_INDEX_TAIL:"",LISTS_GET_INDEX_TOOLTIP_GET_FIRST:"返回列表中的第一個項目。",LISTS_GET_INDEX_TOOLTIP_GET_FROM:"返回在列表中的指定位置的項。",LISTS_GET_INDEX_TOOLTIP_GET_LAST:"返回列表中的最後一項。",LISTS_GET_INDEX_TOOLTIP_GET_RANDOM:"隨機返回列表中的一個項目。",LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST:"移除並返回列表中的第一個項目。",LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM:"移除並返回列表中的指定位置的項。",LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST:"移除並返回列表中的最後一個項目。",LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM:"移除並返回列表中的一個隨機項目中。",LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST:"移除列表中的第一項",LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM:"移除在列表中的指定位置的項。",LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST:"移除列表中的最後一項",LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM:"刪除列表中的一個隨機的項。",LISTS_GET_SUBLIST_END_FROM_END:"到倒數第#",LISTS_GET_SUBLIST_END_FROM_START:"到#",LISTS_GET_SUBLIST_END_LAST:"到最後",LISTS_GET_SUBLIST_HELPURL:"https://github.com/google/blockly/wiki/Lists#getting-a-sublist",LISTS_GET_SUBLIST_START_FIRST:"從頭獲得子列表",LISTS_GET_SUBLIST_START_FROM_END:"從倒數#取得子列表",LISTS_GET_SUBLIST_START_FROM_START:"從#取得子列表",LISTS_GET_SUBLIST_TAIL:"",LISTS_GET_SUBLIST_TOOLTIP:"復制列表中指定的部分。",LISTS_INDEX_FROM_END_TOOLTIP:"%1是最後一項。",LISTS_INDEX_FROM_START_TOOLTIP:"%1是第一個項目。",LISTS_INDEX_OF_FIRST:"找出第一個項出現",LISTS_INDEX_OF_HELPURL:"https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list",LISTS_INDEX_OF_LAST:"找出最後一個項出現",LISTS_INDEX_OF_TOOLTIP:"返回在列表中的第一/最後一個匹配項的索引值。如果找不到項目則返回0",LISTS_INLIST:"在列表中",LISTS_ISEMPTY_HELPURL:"https://github.com/google/blockly/wiki/Lists#is-empty",LISTS_ISEMPTY_TITLE:"%1是空的",LISTS_ISEMPTY_TOOLTIP:"如果改列表為空,則返回真。",LISTS_LENGTH_HELPURL:"https://github.com/google/blockly/wiki/Lists#length-of",LISTS_LENGTH_TITLE:"%1的長度",LISTS_LENGTH_TOOLTIP:"返回列表的長度。",LISTS_REPEAT_HELPURL:"https://github.com/google/blockly/wiki/Lists#create-list-with",LISTS_REPEAT_TITLE:"建立列表 項 %1 重復 %2 次",LISTS_REPEAT_TOOLTIP:"建立包含指定重復次數的值的列表。",LISTS_SET_INDEX_HELPURL:"https://github.com/google/blockly/wiki/Lists#in-list--set",LISTS_SET_INDEX_INPUT_TO:"為",LISTS_SET_INDEX_INSERT:"插入在",LISTS_SET_INDEX_SET:"設置",LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST:"在列表的起始處添加該項。",LISTS_SET_INDEX_TOOLTIP_INSERT_FROM:"插入在列表中指定位置的項。",LISTS_SET_INDEX_TOOLTIP_INSERT_LAST:"將該項追加到列表的末尾。",LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM:"在列表中隨機插入項。",LISTS_SET_INDEX_TOOLTIP_SET_FIRST:"設置列表中的第一個項目。",LISTS_SET_INDEX_TOOLTIP_SET_FROM:"設置在列表中指定位置的項。",LISTS_SET_INDEX_TOOLTIP_SET_LAST:"設置列表中的最後一項。",LISTS_SET_INDEX_TOOLTIP_SET_RANDOM:"設置列表中一個隨機的項目。",LISTS_SORT_HELPURL:"https://github.com/google/blockly/wiki/Lists#sorting-a-list",LISTS_SORT_ORDER_ASCENDING:"升序",LISTS_SORT_ORDER_DESCENDING:"降序",LISTS_SORT_TITLE:"排序%1 %2 %3",LISTS_SORT_TOOLTIP:"排序一個列表的拷貝。",LISTS_SORT_TYPE_IGNORECASE:"按字母排序,忽略大小寫",LISTS_SORT_TYPE_NUMERIC:"按數字排序",LISTS_SORT_TYPE_TEXT:"按字母排序",LISTS_SPLIT_HELPURL:"https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists",LISTS_SPLIT_LIST_FROM_TEXT:"從文本制作列表",LISTS_SPLIT_TEXT_FROM_LIST:"從列表組合文本",LISTS_SPLIT_TOOLTIP_JOIN:"加入文本列表至一個文本,由分隔符分隔。",LISTS_SPLIT_TOOLTIP_SPLIT:"拆分文本到文本列表,按每個分隔符拆分。",LISTS_SPLIT_WITH_DELIMITER:"用分隔符",LOGIC_BOOLEAN_FALSE:"假",LOGIC_BOOLEAN_HELPURL:"https://github.com/google/blockly/wiki/Logic#values",LOGIC_BOOLEAN_TOOLTIP:"返回真或假。",LOGIC_BOOLEAN_TRUE:"真",LOGIC_COMPARE_HELPURL:"https://zh.wikipedia.org/wiki/不等",LOGIC_COMPARE_TOOLTIP_EQ:"如果兩個輸入結果相等,則返回真。",LOGIC_COMPARE_TOOLTIP_GT:"如果第一個輸入結果比第二個大,則返回真。",LOGIC_COMPARE_TOOLTIP_GTE:"如果第一個輸入結果大於或等於第二個輸入結果,則返回真。",LOGIC_COMPARE_TOOLTIP_LT:"如果第一個輸入結果比第二個小,則返回真。",LOGIC_COMPARE_TOOLTIP_LTE:"如果第一個輸入結果小於或等於第二個輸入結果,則返回真。",LOGIC_COMPARE_TOOLTIP_NEQ:"如果兩個輸入結果不相等,則返回真。",LOGIC_NEGATE_HELPURL:"https://github.com/google/blockly/wiki/Logic#not",LOGIC_NEGATE_TITLE:"非%1",LOGIC_NEGATE_TOOLTIP:"如果輸入結果為假,則返回真;如果輸入結果為真,則返回假。",LOGIC_NULL:"空",LOGIC_NULL_HELPURL:"https://en.wikipedia.org/wiki/Nullable_type",LOGIC_NULL_TOOLTIP:"返回空值。",LOGIC_OPERATION_AND:"和",LOGIC_OPERATION_HELPURL:"https://github.com/google/blockly/wiki/Logic#logical-operations",LOGIC_OPERATION_OR:"或",LOGIC_OPERATION_TOOLTIP_AND:"如果兩個輸入結果都為真,則返回真。",LOGIC_OPERATION_TOOLTIP_OR:"如果至少有一個輸入結果為真,則返回真。",LOGIC_TERNARY_CONDITION:"測試",LOGIC_TERNARY_HELPURL:"https://zh.wikipedia.org/wiki/條件運算符",LOGIC_TERNARY_IF_FALSE:"如果為假",LOGIC_TERNARY_IF_TRUE:"如果為真",LOGIC_TERNARY_TOOLTIP:"檢查“test”中的條件。如果條件為真,則返回“if true”的值,否則,則返回“if false”的值。",MATH_ADDITION_SYMBOL:"+",MATH_ARITHMETIC_HELPURL:"https://zh.wikipedia.org/wiki/算術",MATH_ARITHMETIC_TOOLTIP_ADD:"返回兩個數字的和。",MATH_ARITHMETIC_TOOLTIP_DIVIDE:"返回兩個數字的商。",MATH_ARITHMETIC_TOOLTIP_MINUS:"返回兩個數字的區別。",MATH_ARITHMETIC_TOOLTIP_MULTIPLY:"返回兩個數字的乘積。",MATH_ARITHMETIC_TOOLTIP_POWER:"返回第一個數的第二個數次冪。",MATH_CHANGE_HELPURL:"https://zh.wikipedia.org/wiki/%E5%8A%A0%E6%B3%95",MATH_CHANGE_TITLE:"將變量 %1 的值增加 %2",MATH_CHANGE_TOOLTIP:"將一個數添加到變量“%1”。",MATH_CONSTANT_HELPURL:"https://zh.wikipedia.org/wiki/數學常數",MATH_CONSTANT_TOOLTIP:"返回一個常見常量:π (3.141......),e (2.718...)、φ (1.618...)、 sqrt(2) (1.414......)、sqrt(½) (0.707......)或 ∞(無窮大)。",MATH_CONSTRAIN_HELPURL:"https://en.wikipedia.org/wiki/Clamping_%28graphics%29",MATH_CONSTRAIN_TITLE:"限制數字 %1 介於 (低) %2 到 (高) %3",MATH_CONSTRAIN_TOOLTIP:"限制數字介於兩個指定的數字之間",MATH_CONVERT_HELPURL:"",MATH_CONVERT_MESSAGE0:"%1 %2",MATH_CONVERT_TOOLTIP:"強制轉換數據類型",MATH_DIVISION_CONSULT_HELPURL:"",MATH_DIVISION_CONSULT_TITLE:"%1 ÷ %2 商的整數部分",MATH_DIVISION_CONSULT_TOOLTIP:"",MATH_DIVISION_SYMBOL:"÷",MATH_IS_DIVISIBLE_BY:"可被整除",MATH_IS_EVEN:"是偶數",MATH_IS_NEGATIVE:"為負",MATH_IS_ODD:"是奇數",MATH_IS_POSITIVE:"為正",MATH_IS_PRIME:"是質數",MATH_IS_TOOLTIP:"如果數字是偶數、奇數、非負整數、正數、負數或如果它可被某數字整除,則返回真或假。",MATH_IS_WHOLE:"為整數",MATH_MODULO_HELPURL:"https://zh.wikipedia.org/wiki/模除",MATH_MODULO_TITLE:"%1 ÷ %2 的余數",MATH_MODULO_TOOLTIP:"返回這兩個數字相除後的余數。",MATH_MULTIPLICATION_SYMBOL:"×",MATH_NUMBER_BITS_OPS_HELPURL:"",MATH_NUMBER_BITS_OPS_MESSAGE0:"%1 %2 %3",MATH_NUMBER_BITS_OPS_TOOLTIP:"對數字進行位運算",MATH_NUMBER_HELPURL:"https://zh.wikipedia.org/wiki/數",MATH_NUMBER_TOOLTIP:"一個數字。",MATH_ONLIST_HELPURL:"",MATH_ONLIST_OPERATOR_AVERAGE:"列表中的平均數",MATH_ONLIST_OPERATOR_MAX:"列表中的最大值",MATH_ONLIST_OPERATOR_MEDIAN:"列表中位數",MATH_ONLIST_OPERATOR_MIN:"列表中的最小值",MATH_ONLIST_OPERATOR_MODE:"列表模式",MATH_ONLIST_OPERATOR_RANDOM:"列表的隨機項",MATH_ONLIST_OPERATOR_STD_DEV:"列表中的標準差",MATH_ONLIST_OPERATOR_SUM:"列表中的數的總和",MATH_ONLIST_TOOLTIP_AVERAGE:"返回列表中的數值的平均值。",MATH_ONLIST_TOOLTIP_MAX:"返回列表中最大數。",MATH_ONLIST_TOOLTIP_MEDIAN:"返回列表中的中位數。",MATH_ONLIST_TOOLTIP_MIN:"返回列表中最小數。",MATH_ONLIST_TOOLTIP_MODE:"返回列表中的最常見的項的列表。",MATH_ONLIST_TOOLTIP_RANDOM:"從列表中返回一個隨機的元素。",MATH_ONLIST_TOOLTIP_STD_DEV:"返回列表的標準偏差。",MATH_ONLIST_TOOLTIP_SUM:"返回列表中的所有數字的和。",MATH_POWER_SYMBOL:"**",MATH_RANDOM_FLOAT_HELPURL:"https://zh.wikipedia.org/wiki/隨機數生成器",MATH_RANDOM_FLOAT_TITLE_RANDOM:"隨機小數",MATH_RANDOM_FLOAT_TOOLTIP:"返回介於(包含)0.0到1.0之間的隨機數。",MATH_RANDOM_INT_HELPURL:"https://zh.wikipedia.org/wiki/隨機數生成器",MATH_RANDOM_INT_TITLE:"從 %1 到 %2 之間的隨機整數",MATH_RANDOM_INT_TOOLTIP:"返回兩個指定的範圍(含)之間的隨機整數。",MATH_ROUND_HELPURL:"https://zh.wikipedia.org/wiki/數值修約",MATH_ROUND_OPERATOR_ROUND:"四舍五入",MATH_ROUND_OPERATOR_ROUNDDOWN:"向下舍入",MATH_ROUND_OPERATOR_ROUNDUP:"向上舍入",MATH_ROUND_TOOLTIP:"數字向上或向下舍入。",MATH_SINGLE_HELPURL:"https://zh.wikipedia.org/wiki/平方根",MATH_SINGLE_OP_ABSOLUTE:"絕對",MATH_SINGLE_OP_ROOT:"平方根",MATH_SINGLE_TOOLTIP_ABS:"返回一個數的絕對值。",MATH_SINGLE_TOOLTIP_EXP:"返回數的e次冪。",MATH_SINGLE_TOOLTIP_LN:"返回一個數的自然對數。",MATH_SINGLE_TOOLTIP_LOG10:"返回數字的對數。",MATH_SINGLE_TOOLTIP_NEG:"返回數的邏輯非。",MATH_SINGLE_TOOLTIP_POW10:"返回數的10次冪。",MATH_SINGLE_TOOLTIP_ROOT:"返回數的平方根。",MATH_SUBTRACTION_SYMBOL:"-",MATH_TRIG_ACOS:"acos",MATH_TRIG_ASIN:"asin",MATH_TRIG_ATAN:"atan",MATH_TRIG_COS:"cos",MATH_TRIG_HELPURL:"https://zh.wikipedia.org/wiki/三角函數",MATH_TRIG_SIN:"sin",MATH_TRIG_TAN:"tan",MATH_TRIG_TOOLTIP_ACOS:"返回一個數的反余弦值。",MATH_TRIG_TOOLTIP_ASIN:"返回一個數的反正弦值。",MATH_TRIG_TOOLTIP_ATAN:"返回指定角度的反正切值。",MATH_TRIG_TOOLTIP_COS:"返回指定角度的余弦值(非弧度)。",MATH_TRIG_TOOLTIP_SIN:"返回指定角度的正弦值(非弧度)。",MATH_TRIG_TOOLTIP_TAN:"返回指定角度的正切值(非弧度)。",NEW_VARIABLE:"創建變量...",NEW_VARIABLE_TITLE:"新變量的名稱:",ORDINAL_NUMBER_SUFFIX:"",PROCEDURES_ALLOW_STATEMENTS:"允許聲明",PROCEDURES_BEFORE_PARAMS:"參數:",PROCEDURES_CALLNORETURN_HELPURL:"https://zh.wikipedia.org/wiki/子程序",PROCEDURES_CALLNORETURN_TOOLTIP:"運行用戶定義的函數“%1”。",PROCEDURES_CALLRETURN_HELPURL:"https://zh.wikipedia.org/wiki/子程序",PROCEDURES_CALLRETURN_TOOLTIP:"運行用戶定義的函數“%1”,並使用它的輸出值。",PROCEDURES_CALL_BEFORE_PARAMS:"與:",PROCEDURES_CREATE_DO:"創建“%1”",PROCEDURES_DEFNORETURN_COMMENT:"",PROCEDURES_DEFNORETURN_DO:"",PROCEDURES_DEFNORETURN_HELPURL:"https://zh.wikipedia.org/wiki/子程序",PROCEDURES_DEFNORETURN_PROCEDURE:"my_func",PROCEDURES_DEFNORETURN_TITLE:"定義函數",PROCEDURES_DEFNORETURN_TOOLTIP:"創建一個不帶輸出值的函數。",PROCEDURES_DEFRETURN_HELPURL:"https://zh.wikipedia.org/wiki/子程序",PROCEDURES_DEFRETURN_RETURN:"返回",PROCEDURES_DEFRETURN_TOOLTIP:"創建一個有輸出值的函數。",PROCEDURES_DEF_DUPLICATE_WARNING:"警告: 此函數具有重復參數。",PROCEDURES_HIGHLIGHT_DEF:"突出顯示函數定義",PROCEDURES_IFRETURN_HELPURL:"http://c2.com/cgi/wiki?GuardClause",PROCEDURES_IFRETURN_TOOLTIP:"如果值為真,則返回第二個值。",PROCEDURES_IFRETURN_WARNING:"警告: 僅在定義函數內可使用此塊。",PROCEDURES_MUTATORARG_TITLE:"輸入名稱:",PROCEDURES_MUTATORARG_TOOLTIP:"添加函數輸入。",PROCEDURES_MUTATORCONTAINER_TITLE:"輸入",PROCEDURES_MUTATORCONTAINER_TOOLTIP:"添加、刪除或重新排此函數的輸入。",REDO:"重做",REMOVE_COMMENT:"刪除註釋",RENAME_VARIABLE:"重命名變量...",RENAME_VARIABLE_TITLE:"將所有“%1”變量重命名為:",TEXT_APPEND_APPENDTEXT:"追加文本",TEXT_APPEND_HELPURL:"https://github.com/google/blockly/wiki/Text#text-modification",TEXT_APPEND_TO:"",TEXT_APPEND_TOOLTIP:"將一些文本追加到變量“%1”。",TEXT_CHANGECASE_HELPURL:"https://github.com/google/blockly/wiki/Text#adjusting-text-case",TEXT_CHANGECASE_OPERATOR_LOWERCASE:"轉為小寫",TEXT_CHANGECASE_OPERATOR_TITLECASE:"轉為首字母大寫",TEXT_CHANGECASE_OPERATOR_UPPERCASE:"轉為大寫",TEXT_CHANGECASE_TOOLTIP:"使用不同的大小寫復制這段文字。",TEXT_CHARAT_FIRST:"獲得第一個字符",TEXT_CHARAT_FROM_END:"獲得倒數第#個字符",TEXT_CHARAT_FROM_START:"獲得字符#",TEXT_CHARAT_HELPURL:"https://github.com/google/blockly/wiki/Text#extracting-text",TEXT_CHARAT_INPUT_INTEXT:"從文本",TEXT_CHARAT_LAST:"獲得最後一個字符",TEXT_CHARAT_RANDOM:"獲取隨機的字母",TEXT_CHARAT_TAIL:"",TEXT_CHARAT_TOOLTIP:"返回位於指定位置的字母。",TEXT_CREATE_JOIN_ITEM_TOOLTIP:"將一個項添加到文本中。",TEXT_CREATE_JOIN_TITLE_JOIN:"加入",TEXT_CREATE_JOIN_TOOLTIP:"添加、移除或重新排列各節來重新配置這個文本塊。",TEXT_GET_SUBSTRING_END_FROM_END:"到倒數第#個字符",TEXT_GET_SUBSTRING_END_FROM_START:"到字符#",TEXT_GET_SUBSTRING_END_LAST:"到最後一個字符",TEXT_GET_SUBSTRING_HELPURL:"https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text",TEXT_GET_SUBSTRING_INPUT_IN_TEXT:"從文本",TEXT_GET_SUBSTRING_START_FIRST:"取得一段字串自第一個字符",TEXT_GET_SUBSTRING_START_FROM_END:"取得一段字串自倒數第#個字符",TEXT_GET_SUBSTRING_START_FROM_START:"取得一段字串自#",TEXT_GET_SUBSTRING_TAIL:"",TEXT_GET_SUBSTRING_TOOLTIP:"返回指定的部分文本。",TEXT_INDEXOF_HELPURL:"https://github.com/google/blockly/wiki/Text#finding-text",TEXT_INDEXOF_INPUT_INTEXT:"在文本",TEXT_INDEXOF_OPERATOR_FIRST:"中查找 最先 出現",TEXT_INDEXOF_OPERATOR_LAST:"中查找 最後 出現",TEXT_INDEXOF_TAIL:"的位置",TEXT_INDEXOF_TOOLTIP:"返回在第二個字串中的第一/最後一個匹配項的索引值。如果未找到則返回%1。",TEXT_ISEMPTY_HELPURL:"https://github.com/google/blockly/wiki/Text#checking-for-empty-text",TEXT_ISEMPTY_TITLE:"%1是空的",TEXT_ISEMPTY_TOOLTIP:"如果提供的文本為空,則返回真。",TEXT_JOIN_HELPURL:"https://github.com/google/blockly/wiki/Text#text-creation",TEXT_JOIN_TITLE_CREATEWITH:"轉為文本",TEXT_JOIN_TOOLTIP:"通過串起任意數量的項以建立一段文字。",TEXT_LENGTH_HELPURL:"https://github.com/google/blockly/wiki/Text#text-modification",TEXT_LENGTH_TITLE:"%1的長度",TEXT_LENGTH_TOOLTIP:"返回提供文本的字母數(包括空格)。",TEXT_PRINT_HELPURL:"https://github.com/google/blockly/wiki/Text#printing-text",TEXT_PRINT_TITLE:"打印%1",MPYTHON_INPUT_MESSAGE0:"輸入%1",TEXT_PRINT_TOOLTIP:"打印指定的文字、數字或其他值。",TEXT_PROMPT_HELPURL:"https://github.com/google/blockly/wiki/Text#getting-input-from-the-user",TEXT_PROMPT_TOOLTIP_NUMBER:"提示用戶輸入數字。",TEXT_PROMPT_TOOLTIP_TEXT:"提示用戶輸入一些文本。",TEXT_PROMPT_TYPE_NUMBER:"輸入數字並顯示提示消息",TEXT_PROMPT_TYPE_TEXT:"輸入數字並顯示提示消息",TEXT_TEXT_HELPURL:"https://zh.wikipedia.org/wiki/字符串",TEXT_TEXT_TOOLTIP:"一個字母、單詞或一行文本。",TEXT_TRIM_HELPURL:"https://github.com/google/blockly/wiki/Text#trimming-removing-spaces",TEXT_TRIM_OPERATOR_BOTH:"消除兩側空格",TEXT_TRIM_OPERATOR_LEFT:"消除左側空格",TEXT_TRIM_OPERATOR_RIGHT:"消除右側空格",TEXT_TRIM_TOOLTIP:"復制這段文字的同時刪除兩端多余的空格。",TODAY:"今天",UNDO:"撤銷",VARIABLES_DEFAULT_NAME:"item",VARIABLES_GET_CREATE_SET:"創建“設定%1”",VARIABLES_GET_HELPURL:"https://github.com/google/blockly/wiki/Variables#get",VARIABLES_GET_TOOLTIP:"返回此變量的值。",VARIABLES_SET:"將變量 %1 設定為 %2",VARIABLES_SET_CREATE_GET:"創建“獲得%1”",VARIABLES_SET_HELPURL:"https://github.com/google/blockly/wiki/Variables#set",VARIABLES_SET_TOOLTIP:"設置此變量,以使它和輸入值相等。",VARIABLE_ALREADY_EXISTS:"已存在名為“%1”的變量。"};rF.PROCEDURES_DEFRETURN_TITLE=rF.PROCEDURES_DEFNORETURN_TITLE,rF.CONTROLS_IF_IF_TITLE_IF=rF.CONTROLS_IF_MSG_IF,rF.CONTROLS_WHILEUNTIL_INPUT_DO=rF.CONTROLS_REPEAT_INPUT_DO,rF.CONTROLS_IF_MSG_THEN=rF.CONTROLS_REPEAT_INPUT_DO,rF.TRY_EXCEPT_TRY="try",rF.CONTROLS_IF_ELSE_TITLE_ELSE=rF.CONTROLS_IF_MSG_ELSE,rF.CONTROLS_IF_ELSE_TITLE_ELSE=rF.CONTROLS_IF_MSG_ELSE,rF.PROCEDURES_DEFRETURN_PROCEDURE=rF.PROCEDURES_DEFNORETURN_PROCEDURE,rF.LISTS_GET_SUBLIST_INPUT_IN_LIST=rF.LISTS_INLIST,rF.LISTS_GET_INDEX_INPUT_IN_LIST=rF.LISTS_INLIST,rF.PROCEDURES_DEFRETURN_DO=rF.PROCEDURES_DEFNORETURN_DO,rF.CONTROLS_IF_ELSEIF_TITLE_ELSEIF=rF.CONTROLS_IF_MSG_ELSEIF,rF.LISTS_GET_INDEX_HELPURL=rF.LISTS_INDEX_OF_HELPURL,rF.CONTROLS_FOREACH_INPUT_DO=rF.CONTROLS_REPEAT_INPUT_DO,rF.LISTS_SET_INDEX_INPUT_IN_LIST=rF.LISTS_INLIST,rF.CONTROLS_FOR_INPUT_DO=rF.CONTROLS_REPEAT_INPUT_DO,rF.LISTS_CREATE_WITH_ITEM_TITLE=rF.VARIABLES_DEFAULT_NAME,rF.TUPLE_CREATE_WITH_ITEM_TITLE=rF.VARIABLES_DEFAULT_NAME,rF.DICT_CREATE_WITH_ITEM_TITLE=rF.VARIABLES_DEFAULT_NAME,rF.SET_CREATE_WITH_ITEM_TITLE=rF.VARIABLES_DEFAULT_NAME,rF.TEXT_APPEND_VARIABLE=rF.VARIABLES_DEFAULT_NAME,rF.TEXT_CREATE_JOIN_ITEM_TITLE_ITEM=rF.VARIABLES_DEFAULT_NAME,rF.MATH_CHANGE_TITLE_ITEM=rF.VARIABLES_DEFAULT_NAME,rF.LISTS_INDEX_OF_INPUT_IN_LIST=rF.LISTS_INLIST,rF.PROCEDURES_DEFRETURN_COMMENT=rF.PROCEDURES_DEFNORETURN_COMMENT,rF.MPYTHON_MAIN_HELPURL="",rF.MPYTHON_MAIN_TOOLTIP="這個圖形塊不是必須使用。但使用這個圖形塊,能使得程序結構更規整。",rF.MPYTHON_MAIN_MESSAGE0="主程式",rF.MPYTHON_OPEN="開啟",rF.MPYTHON_CLOSE="關閉",rF.MPYTHONBOX_RGB_IMAGE_SHIFT_LEFT="左移",rF.MPYTHONBOX_RGB_IMAGE_SHIFT_RIGHT="右移",rF.MPYTHONBOX_RGB_IMAGE_SHIFT_UP="上移",rF.MPYTHONBOX_RGB_IMAGE_SHIFT_DOWN="下移",rF.MPYTHON_AI_LCD_SHOW_IMAGE_HEAT_GRAYSCALE="灰度",rF.MPYTHON_AI_LCD_SHOW_IMAGE_HEAT_RAINBOW="彩虹",rF.MPYTHON_AI_LCD_SHOW_IMAGE_HEAT_NEGATE="數字反轉",rF.MPYTHON_AI_LCD_SHOW_IMAGE_HEAT_INVERT="黑白翻轉",rF.MPYTHON_AI_LCD_SHOW_IMAGE_DESCARTES_LINPOLAR="線性極",rF.MPYTHON_AI_LCD_SHOW_IMAGE_DESCARTES_LOGPOLAR="對數極",rF.MPYTHON_AI_SENSOR_PATTERN_GRAYSCALE="灰度",rF.MPYTHON_AI_SENSOR_PATTERN_COLOR="彩色",rF.MPYTHON_AI_SENSOR_ENABLE_START="開始抓取圖像",rF.MPYTHON_AI_SENSOR_ENABLE_STOP="停止抓取圖像",rF.MPYTHON_AI_SENSOR_LEVEL_MI_H="水平鏡像",rF.MPYTHON_AI_SENSOR_LEVEL_MI_V="垂直翻轉",rF.MPYTHON_AI_SENSOR_SETS_CONTRAST="對比度",rF.MPYTHON_AI_SENSOR_SETS_BRIGHTNESS="亮度",rF.MPYTHON_AI_SENSOR_SETS_SATURATION="飽和度",rF.MPYTHON_AI2_FACE_YOLO="人臉識別",rF.MPYTHON_AI2_CLASS_20_YOLO="20類識別",rF.MPYTHON_AI_TRACE_COLOR_RECTANGLE="矩形",rF.MPYTHON_AI_TRACE_COLOR_CROSS="十字",rF.TEXT_APPEND_TEXT_HELPURL="",rF.TEXT_APPEND_TEXT_TOOLTIP="",rF.TEXT_APPEND_TEXT_MESSAGE0="%1 追加文本 %2",rF.CHINA_CITY_MESSAGE0="%1 %2",rF.CHINA_CITY_TOWN_MESSAGE0="%1 %2 %3 返回 %4",rF.CHINA_CITY_CNNAME="中文簡稱",rF.CHINA_CITY_PINYIN="拼音",rF.MPYTHON_SENIVERSE_WEATHER_LANGUAGE_1="简体中文",rF.MPYTHON_SENIVERSE_WEATHER_LANGUAGE_2="正體中文",rF.MPYTHON_SENIVERSE_CITY_WEATHER_HELPURL="",rF.MPYTHON_SENIVERSE_CITY_WEATHER_TOOLTIP="",rF.MPYTHON_SENIVERSE_CITY_WEATHER_MESSAGE0="[心知天氣] %1 信息 %2 地理位置 %3 API私鑰 %4 %5 語言 %6 %7 溫度單位 %8",rF.MPYTHON_SENIVERSE_WEATHER_API_1="天氣實況",rF.MPYTHON_SENIVERSE_WEATHER_API_2="3天天氣預報",rF.MPYTHON_SENIVERSE_WEATHER_API_3="6項生活指數",rF.MPYTHON_SENIVERSE_WEATHER_UNIT_1="攝氏度",rF.MPYTHON_SENIVERSE_WEATHER_UNIT_2="華氏度",rF.MPYTHON_DEFINE_SENIVERSE_WEATHER_HELPURL="",rF.MPYTHON_DEFINE_SENIVERSE_WEATHER_TOOLTIP="",rF.MPYTHON_DEFINE_SENIVERSE_WEATHER_MESSAGE0="設定 %1 為 %2",rF.MPYTHON_GET_SENIVERSE_WEATHER_INFO_HELPURL="",rF.MPYTHON_GET_SENIVERSE_WEATHER_INFO_TOOLTIP="",rF.MPYTHON_GET_SENIVERSE_WEATHER_INFO_MESSAGE0="%1 [心知天氣] 通用字段 %2",rF.MPYTHON_GET_SENIVERSE_WEATHER_INFO1_HELPURL="",rF.MPYTHON_GET_SENIVERSE_WEATHER_INFO1_TOOLTIP="",rF.MPYTHON_GET_SENIVERSE_WEATHER_INFO1_MESSAGE0="%1 [心知天氣] 天氣實況 %2",rF.MPYTHON_GET_SENIVERSE_WEATHER_INFO2_HELPURL="",rF.MPYTHON_GET_SENIVERSE_WEATHER_INFO2_TOOLTIP="風向角度,範圍0~360\n風速,單位km/h(當unit=c時)、mph(當unit=f時)",rF.MPYTHON_GET_SENIVERSE_WEATHER_INFO2_MESSAGE0="%1 [心知天氣] 3天天氣預報 %2 的 %3",rF.MPYTHON_GET_SENIVERSE_WEATHER_INFO3_HELPURL="",rF.MPYTHON_GET_SENIVERSE_WEATHER_INFO3_TOOLTIP="",rF.MPYTHON_GET_SENIVERSE_WEATHER_INFO3_MESSAGE0="%1 [心知天氣] 6項生活指數 %2",rF.MPYTHON_SENIVERSE_WEATHER_city_name="城市名稱",rF.MPYTHON_SENIVERSE_WEATHER_city_id="城市ID",rF.MPYTHON_SENIVERSE_WEATHER_country="國家代碼",rF.MPYTHON_SENIVERSE_WEATHER_path="行政歸屬",rF.MPYTHON_SENIVERSE_WEATHER_timezone="時區",rF.MPYTHON_SENIVERSE_WEATHER_timezone_offset="UTC偏移量",rF.MPYTHON_SENIVERSE_WEATHER_last_update_date="數據更新日期",rF.MPYTHON_SENIVERSE_WEATHER_last_update="數據更新時間",rF.MPYTHON_SENIVERSE_WEATHER_object="原始字典對象",rF.MPYTHON_SENIVERSE_WEATHER_text="天氣現象",rF.MPYTHON_SENIVERSE_WEATHER_code="天氣現象代碼",rF.MPYTHON_SENIVERSE_WEATHER_temperature="溫度",rF.MPYTHON_SENIVERSE_WEATHER_today="今天",rF.MPYTHON_SENIVERSE_WEATHER_tomorrow="明天",rF.MPYTHON_SENIVERSE_WEATHER_the_day_after_tomorrow="後天",rF.MPYTHON_SENIVERSE_WEATHER_date="日期",rF.MPYTHON_SENIVERSE_WEATHER_text_day="白天天氣現象",rF.MPYTHON_SENIVERSE_WEATHER_code_day="白天天氣現象代碼",rF.MPYTHON_SENIVERSE_WEATHER_text_night="晚間天氣現象",rF.MPYTHON_SENIVERSE_WEATHER_code_night="晚間天氣現象代碼",rF.MPYTHON_SENIVERSE_WEATHER_high="當天最高溫度",rF.MPYTHON_SENIVERSE_WEATHER_low="當天最低溫度",rF.MPYTHON_SENIVERSE_WEATHER_wind_direction="風向",rF.MPYTHON_SENIVERSE_WEATHER_wind_direction_degree="風向角度",rF.MPYTHON_SENIVERSE_WEATHER_wind_speed="風速",rF.MPYTHON_SENIVERSE_WEATHER_wind_scale="風力等級",rF.MPYTHON_SENIVERSE_WEATHER_car_washing="洗車指數",rF.MPYTHON_SENIVERSE_WEATHER_dressing="穿衣指數",rF.MPYTHON_SENIVERSE_WEATHER_flu="感冒指數",rF.MPYTHON_SENIVERSE_WEATHER_sport="運動指數",rF.MPYTHON_SENIVERSE_WEATHER_travel="旅遊指數",rF.MPYTHON_SENIVERSE_WEATHER_uv="紫外線指數",rF.MPYTHON_RED="紅",rF.MPYTHON_GREEN="綠",rF.MPYTHON_BLUE="藍",rF.MPYTHON_BLUEBIT_HELPURL="http://wiki.labplus.cn/index.php?title=Bluebit",rF.MPYTHON_BLUEBIT_NEWRFID_READ_MESSAGE0="I2C射頻卡 讀取電子錢包 數據",rF.MPYTHON_BLUEBIT_NEWRFID_READ_TOOLTIP="讀取塊數據,長度16位元組",rF.MPYTHON_BLUEBIT_NEWRFID_READ_HELPURL="https://mpython.readthedocs.io/zh/master/library/mPython/bluebit.html#rfid",rF.MPYTHON_BLUEBIT_NEWRFID_WRITE_MESSAGE0="I2C射頻卡 寫入電子錢包 數據%1",rF.MPYTHON_BLUEBIT_NEWRFID_WRITE_TOOLTIP="寫入塊數據,長度16位元組",rF.MPYTHON_BLUEBIT_NEWRFID_WRITE_HELPURL="https://mpython.readthedocs.io/zh/master/library/mPython/bluebit.html#rfid",rF.MPYTHON_BLUEBIT_NEWRFID_MONEY_MESSAGE0="I2C射頻卡 給電子錢包%1 金額%2",rF.MPYTHON_BLUEBIT_NEWRFID_MONEY_TOOLTIP="",rF.MPYTHON_BLUEBIT_NEWRFID_MONEY_HELPURL="https://mpython.readthedocs.io/zh/master/library/mPython/bluebit.html#rfid",rF.MPYTHON_BLUEBIT_NEWRFID_INC_MESSAGE0="充值",rF.MPYTHON_BLUEBIT_NEWRFID_DEC_MESSAGE0="扣費",rF.MPYTHON_BLUEBIT_NEWRFID_GET_MESSAGE0="I2C射頻卡 獲取電子錢包餘額",rF.MPYTHON_BLUEBIT_NEWRFID_GET_TOOLTIP="",rF.MPYTHON_BLUEBIT_NEWRFID_GET_HELPURL="https://mpython.readthedocs.io/zh/master/library/mPython/bluebit.html#rfid",rF.MPYTHON_BLUEBIT_NEWRFID_GETSERIAL_MESSAGE0="I2C射頻卡 獲取序號",rF.MPYTHON_BLUEBIT_NEWRFID_GETSERIAL_TOOLTIP="",rF.MPYTHON_BLUEBIT_NEWRFID_GETSERIAL_HELPURL="https://mpython.readthedocs.io/zh/master/library/mPython/bluebit.html#rfid",rF.MPYTHON_BLUEBIT_NEWRFID_SET_MESSAGE0="I2C射頻卡 初始化電子錢包",rF.MPYTHON_BLUEBIT_NEWRFID_SET_TOOLTIP="",rF.MPYTHON_BLUEBIT_NEWRFID_SET_HELPURL="https://mpython.readthedocs.io/zh/master/library/mPython/bluebit.html#rfid",rF.MPYTHON_BLUEBIT_NEWRFID_SCAN_MESSAGE0="I2C射頻卡 掃描",rF.MPYTHON_BLUEBIT_NEWRFID_SCAN_TOOLTIP="",rF.MPYTHON_BLUEBIT_NEWRFID_SCAN_HELPURL="https://mpython.readthedocs.io/zh/master/library/mPython/bluebit.html#rfid",rF.MPYTHON_BLUEBIT_ULTRASONIC_MESSAGE0="I2C超聲波",rF.MPYTHON_BLUEBIT_ULTRASONIC_TOOLTIP="",rF.MPYTHON_BLUEBIT_ULTRASONIC_HELPURL="http://wiki.labplus.cn/index.php?title=Bluebit",rF.MPYTHON_BLUEBIT_READ_DIGITAL_MESSAGE0="%1 被觸發 引腳%2",rF.MPYTHON_BLUEBIT_READ_DIGITAL_TOOLTIP="",rF.MPYTHON_BLUEBIT_READ_DIGITAL_HELPURL="http://wiki.labplus.cn/index.php?title=Bluebit",rF.MPYTHON_BLUEBIT_READ_ANALOG_MESSAGE0="%1 模擬值 引腳%2",rF.MPYTHON_BLUEBIT_READ_ANALOG_TOOLTIP="",rF.MPYTHON_BLUEBIT_READ_ANALOG_HELPURL="http://wiki.labplus.cn/index.php?title=Bluebit",rF.MPYTHON_BLUEBIT_SET_ANALOG_MESSAGE0="設置LED燈 輸出%1 引腳%2",rF.MPYTHON_BLUEBIT_SET_ANALOG_TOOLTIP="",rF.MPYTHON_BLUEBIT_SET_ANALOG_HELPURL="http://wiki.labplus.cn/index.php?title=Bluebit",rF.MPYTHON_BLUEBIT_LINE_FOLLOWER_MESSAGE0="循跡傳感器 檢測為黑 引腳%1",rF.MPYTHON_BLUEBIT_LINE_FOLLOWER_TOOLTIP="",rF.MPYTHON_BLUEBIT_LINE_FOLLOWER_HELPURL="http://wiki.labplus.cn/index.php?title=Bluebit",rF.MPYTHON_BLUEBIT_SET_TRUE_HELPURL="http://wiki.labplus.cn/index.php?title=Bluebit",rF.MPYTHON_BLUEBIT_SET_TRUE_MESSAGE0="打開 %1 引腳 %2",rF.MPYTHON_BLUEBIT_SET_TRUE_TOOLTIP="",rF.MPYTHON_BLUEBIT_SET_FALSE_HELPURL="http://wiki.labplus.cn/index.php?title=Bluebit",rF.MPYTHON_BLUEBIT_SET_FALSE_MESSAGE0="關閉 %1 引腳 %2",rF.MPYTHON_BLUEBIT_SET_FALSE_TOOLTIP="",rF.MPYTHON_BLUEBIT_VOICE_RECORD_ON_HELPURL="http://wiki.labplus.cn/index.php?title=%E8%AF%AD%E9%9F%B3%E5%BD%95%E6%94%BE",rF.MPYTHON_BLUEBIT_VOICE_RECORD_ON_TOOLTIP="",rF.MPYTHON_BLUEBIT_VOICE_RECORD_ON_MESSAGE0="打開錄放器 %1 %2 REC %3 PLAY %4",rF.MPYTHON_BLUEBIT_VOICE_RECORD_OFF_HELPURL="http://wiki.labplus.cn/index.php?title=%E8%AF%AD%E9%9F%B3%E5%BD%95%E6%94%BE",rF.MPYTHON_BLUEBIT_VOICE_RECORD_OFF_TOOLTIP="",rF.MPYTHON_BLUEBIT_VOICE_RECORD_OFF_MESSAGE0="關閉錄放器 %1 REC %2 PLAY %3",rF.MPYTHON_BLUEBIT_VOICE_RECORD_PLAY="播放",rF.MPYTHON_BLUEBIT_VOICE_RECORD_REC="錄音",rF.MPYTHON_BLUEBIT_IR_RECEIVE="紅外探測",rF.MPYTHON_BLUEBIT_SOUND="麥克風",rF.MPYTHON_BLUEBIT_LINE_FOLLOWER="循跡",rF.MPYTHON_BLUEBIT_VIBRATION="震動",rF.MPYTHON_BLUEBIT_RFID="射頻卡",rF.MPYTHON_BLUEBIT_FINGERPRINT_SCANNER="指紋",rF.MPYTHON_BLUEBIT_PIR="人體感應",rF.MPYTHON_BLUEBIT_MAGNETIC="門磁開關",rF.MPYTHON_BLUEBIT_BUTTON="按鍵",rF.MPYTHON_BLUEBIT_RELAY="繼電器",rF.MPYTHON_BLUEBIT_LIMIT_SWITCH="限位開關",rF.MPYTHON_BLUEBIT_FAN="風扇",rF.MPYTHON_BLUEBIT_LASER="激光",rF.MPYTHON_BLUEBIT_NTC_TEMP="熱敏電阻",rF.MPYTHON_BLUEBIT_WATER="水位",rF.MPYTHON_BLUEBIT_SOIL_MOISTURE="土壤濕度",rF.MPYTHON_BLUEBIT_ROTATE_DIMMER="旋鈕電位器",rF.MPYTHON_BLUEBIT_LINEAR_SLIDING_POTENTIOMETER="直滑電位器",rF.MPYTHON_BLUEBIT_ANALOG_LIGHT="模擬光線",rF.MPYTHON_BLUEBIT_LM35_TEMP="LM35溫度",rF.MPYTHON_BLUEBIT_SMOKE="煙霧",rF.MPYTHON_BLUEBIT_MOTOR_ON_CLOCKWISE="正轉",rF.MPYTHON_BLUEBIT_MOTOR_ON_ANTICLOCKWISE="反轉",rF.MPYTHON_BLUEBIT_READ_SOIL_HELPURL="",rF.MPYTHON_BLUEBIT_READ_SOIL_TOOLTIP="新的土壤濕度",rF.MPYTHON_BLUEBIT_READ_SOIL_MESSAGE0="土壤濕度(新)%1",rF.MPYTHON_BLUEBIT_MOTOR_ON_HELPURL="http://wiki.labplus.cn/index.php?title=%E7%94%B5%E6%9C%BA%E9%A9%B1%E5%8A%A8",rF.MPYTHON_BLUEBIT_MOTOR_ON_TOOLTIP="速度:-100~100 映射至 -1023~1023",rF.MPYTHON_BLUEBIT_MOTOR_ON_MESSAGE0="打開直流電機 %1 速度 %2 引腳AIN1 %3 引腳AIN2 %4",rF.MPYTHON_BLUEBIT_MOTOR_OFF_HELPURL="http://wiki.labplus.cn/index.php?title=%E7%94%B5%E6%9C%BA%E9%A9%B1%E5%8A%A8",rF.MPYTHON_BLUEBIT_MOTOR_OFF_TOOLTIP="",rF.MPYTHON_BLUEBIT_MOTOR_OFF_MESSAGE0="停止直流電機 %1 引腳AIN1 %2 引腳AIN2 %3",rF.MPYTHON_BLUEBIT_SET_FAN_HELPURL="",rF.MPYTHON_BLUEBIT_SET_FAN_TOOLTIP="",rF.MPYTHON_BLUEBIT_SET_FAN_MESSAGE0="拓展板 打開風扇 %1",rF.MPYTHON_BLUEBIT_SET_FAN_OFF_HELPURL="",rF.MPYTHON_BLUEBIT_SET_FAN_OFF_TOOLTIP="",rF.MPYTHON_BLUEBIT_SET_FAN_OFF_MESSAGE0="拓展板 關閉風扇 %1",rF.MPYTHON_BLUEBIT_4BUTTON_HELPURL="http://wiki.MPYTHON_BLUEBIT.cn/index.php?title=%E5%9B%9B%E6%8C%89%E9%94%AE",rF.MPYTHON_BLUEBIT_4BUTTON_TOOLTIP="",rF.MPYTHON_BLUEBIT_4BUTTON_MESSAGE0="四向按鍵模塊 引腳 %1 按鍵 %2 被按下",rF.BLUE="A",rF.GREEN="B",rF.RED="C",rF.YELLOW="D",rF.MPYTHON_BLUEBIT_JOYSTICK_HELPURL="",rF.MPYTHON_BLUEBIT_JOYSTICK_TOOLTIP="",rF.MPYTHON_BLUEBIT_JOYSTICK_MESSAGE0="搖桿 引腳A0 %1 引腳A1 %2 %3 軸的值",rF.MPYTHON_BLUEBIT_MOTOR_ON_I2C_HELPURL="",rF.MPYTHON_BLUEBIT_MOTOR_ON_I2C_TOOLTIP="速度:0~100",rF.MPYTHON_BLUEBIT_MOTOR_ON_I2C_MESSAGE0="拓展板 打開直流電機 %1 %2 速度 %3",rF.MPYTHON_BLUEBIT_BLUEBIT_MOTOR_OFF_I2C_HELPURL="",rF.MPYTHON_BLUEBIT_MOTOR_OFF_I2C_TOOLTIP="速度:0~100",rF.MPYTHON_BLUEBIT_MOTOR_OFF_I2C_MESSAGE0="拓展板 關閉直流電機",rF.MPYTHON_BLUEBIT_CODED_THREE_MOTOR_ON_I2C_HELPURL="",rF.MPYTHON_BLUEBIT_CODED_THREE_MOTOR_ON_I2C_TOOLTIP="速度:-1023~1023",rF.MPYTHON_BLUEBIT_CODED_THREE_MOTOR_ON_I2C_MESSAGE0="編碼電機 模式 %1 撥碼 %2 M1速度 %3 M2速度 %4",rF.MPYTHON_BLUEBIT_CODED_STOP_MOTOR_ON_I2C_HELPURL="",rF.MPYTHON_BLUEBIT_CODED_STOP_MOTOR_ON_I2C_TOOLTIP="停止編碼電機轉動",rF.MPYTHON_BLUEBIT_CODED_STOP_MOTOR_ON_I2C_MESSAGE0="停止編碼電機轉動 %1",rF.MPYTHON_BLUEBIT_HUM_TEM_HELPURL="",rF.MPYTHON_BLUEBIT_HUM_TEM_TOOLTIP="",rF.MPYTHON_BLUEBIT_HUM_TEM_MESSAGE0="I2C %1",rF.MPYTHON_BLUEBIT_TEMPERATURE="溫度",rF.MPYTHON_BLUEBIT_HUMIDITY="濕度",rF.MPYTHON_BLUEBIT_INIT_MIDI_HELPURL="",rF.MPYTHON_BLUEBIT_INIT_MIDI_MESSAGE0="初始化MIDI TX引脚 %1",rF.MPYTHON_BLUEBIT_INIT_MIDI_TOOLTIP="",rF.MPYTHON_BLUEBIT_MIDI_VOLUME_HELPURL="",rF.MPYTHON_BLUEBIT_MIDI_VOLUME_MESSAGE0="設MIDI音量 %1",rF.MPYTHON_BLUEBIT_MIDI_VOLUME_TOOLTIP="音量 0~127",rF.MIDI_PIANO="平臺鋼琴",rF.MIDI_BRIGHTACOUSTICPIANO="亮音鋼琴",rF.MIDI_ELECTRICGRANDPIANO="電鋼琴",rF.MIDI_HARPSICHORD="大鍵琴",rF.MIDI_CELESTA="鋼片琴",rF.MIDI_GLOCKENSPIEL="鍾琴",rF.MIDI_MUSICALBOX="音樂盒",rF.MIDI_MARIMBA="馬林巴琴",rF.MIDI_XYLOPHONE="木琴",rF.MIDI_TUBULARBELL="管鐘",rF.MIDI_DULCIMER="洋琴",rF.MIDI_VIBRAPHONE="顫音琴",rF.MIDI_ORGAN="音栓風琴",rF.MIDI_ACOUSTIC_GUITAR="木吉他",rF.MIDI_ELECTRIC_GUITAR="電吉他",rF.MIDI_ACOUSTIC_BASS="民謠貝斯",rF.MIDI_STRING_ENSEMBLE="弦樂合奏",rF.MIDI_VIOLIN="小提琴",rF.MIDI_TRUMPET="小號",rF.MIDI_SAX="薩克斯",rF.MIDI_STEEL_DRUMS="鋼鼓",rF.MIDI_LEAD="合成音主旋律",rF.MIDI_PAD="合成音襯底",rF.MPYTHON_BLUEBIT_MIDI_INSTRUMENT_HELPURL="",rF.MPYTHON_BLUEBIT_MIDI_INSTRUMENT_MESSAGE0="設MIDI樂器 %1",rF.MPYTHON_BLUEBIT_MIDI_INSTRUMENT_TOOLTIP="",rF.MPYTHON_BLUEBIT_MIDI_PLAY_HELPURL="",rF.MPYTHON_BLUEBIT_MIDI_PLAY_MESSAGE0="MIDI %1 音調 %2",rF.MPYTHON_BLUEBIT_MIDI_PLAY_TOOLTIP="",rF.MPYTHON_BLUEBIT_MATRIX_BRIGHTNESS_HELPURL="",rF.MPYTHON_BLUEBIT_MATRIX_BRIGHTNESS_MESSAGE0="設點陣亮度等級 %1",rF.MPYTHON_BLUEBIT_MATRIX_BRIGHTNESS_TOOLTIP="亮度等級 0~15",rF.MPYTHON_BLUEBIT_MATRIX_FILL_HELPURL="",rF.MPYTHON_BLUEBIT_MATRIX_FILL_MESSAGE0="點陣 %1",rF.MPYTHON_BLUEBIT_MATRIX_FILL_TOOLTIP="",rF.MPYTHON_BLUEBIT_MATRIX_BITMAP_HELPURL="",rF.MPYTHON_BLUEBIT_MATRIX_BITMAP_MESSAGE0="設置點陣 %1 %2 %3 %4 %5 %6 %7 %8 %9 %10 %11 %12 %13 %14 %15 %16 %17 %18 %19 %20 %21 %22 %23 %24 %25 %26 %27 %28 %29 %30 %31 %32 %33 %34 %35 %36 %37 %38 %39 %40 %41 %42 %43 %44 %45 %46 %47 %48 %49 %50 %51 %52 %53 %54 %55 %56 %57 %58 %59 %60 %61 %62 %63 %64 %65 %66 %67 %68 %69 %70 %71 %72",rF.MPYTHON_BLUEBIT_MATRIX_BITMAP_TOOLTIP="",rF.MPYTHON_BLUEBIT_MATRIX_SHOW_HELPURL="",rF.MPYTHON_BLUEBIT_MATRIX_SHOW_MESSAGE0="點陣設置生效",rF.MPYTHON_BLUEBIT_MATRIX_SHOW_TOOLTIP="",rF.MPYTHON_BLUEBIT_MP3_VOLUME_HELPURL="",rF.MPYTHON_BLUEBIT_MP3_VOLUME_MESSAGE0="設MP3音量 %1",rF.MPYTHON_BLUEBIT_MP3_VOLUME_TOOLTIP="音量:0~30",rF.MPYTHON_BLUEBIT_MP3_INIT_HELPURL="",rF.MPYTHON_BLUEBIT_MP3_INIT_MESSAGE0="初始化MP3 TX引脚 %1",rF.MPYTHON_BLUEBIT_MP3_INIT_TOOLTIP="掌控板的 tx 引脚連接音樂模塊的 RXI 引脚",rF.MPYTHON_BLUEBIT_MP3_VOLUME_PLUS_HELPURL="",rF.MPYTHON_BLUEBIT_MP3_VOLUME_PLUS_MESSAGE0="MP3 音量 %1",rF.MPYTHON_BLUEBIT_MP3_VOLUME_PLUS_TOOLTIP="",rF.MPYTHON_PLUS_1="加1",rF.MPYTHON_MINUS_1="減1",rF.MPYTHON_BLUEBIT_MP3_PLAY_SONG_HELPURL="",rF.MPYTHON_BLUEBIT_MP3_PLAY_SONG_MESSAGE0="MP3 播放第 %1 首歌",rF.MPYTHON_BLUEBIT_MP3_PLAY_SONG_TOOLTIP="",rF.MPYTHON_BLUEBIT_MP3_CMD_HELPURL="",rF.MPYTHON_BLUEBIT_MP3_CMD_MESSAGE0="MP3 播放 %1",rF.MPYTHON_BLUEBIT_MP3_CMD_TOOLTIP="",rF.MPYTHON_BLUEBIT_MP3_SINGLELOOP_HELPURL="",rF.MPYTHON_BLUEBIT_MP3_SINGLELOOP_MESSAGE0="Mp3 單曲循環 %1",rF.MPYTHON_BLUEBIT_MP3_SINGLELOOP_TOOLTIP="",rF.MPYTHON_BLUEBIT_EXTIO_IOMODE_HELPURL="",rF.MPYTHON_BLUEBIT_EXTIO_IOMODE_MESSAGE0="設擴展端口 IO %2 為 %1",rF.MPYTHON_BLUEBIT_EXTIO_IOMODE_TOOLTIP="IO: 0~7",rF.MPYTHON_BLUEBIT_EXTIO_READIO_HELPURL="",rF.MPYTHON_BLUEBIT_EXTIO_READIO_MESSAGE0="擴展端口值 IO %1",rF.MPYTHON_BLUEBIT_EXTIO_READIO_TOOLTIP="",rF.MPYTHON_BLUEBIT_EXTIO_WRITEIO_HELPURL="",rF.MPYTHON_BLUEBIT_EXTIO_WRITEIO_MESSAGE0="設擴展端口 IO %2 為 %1",rF.MPYTHON_BLUEBIT_EXTIO_WRITEIO_TOOLTIP="",rF.MPYTHON_LCD_OBJECT_HELPURL="",rF.MPYTHON_LCD_OBJECT_MESSAGE0="LCD1602 初始化",rF.MPYTHON_LCD_OBJECT_TOOLTIP="",rF.MPYTHON_LCD_PRINT_HELPURL="",rF.MPYTHON_LCD_PRINT_MESSAGE0="LCD1602 顯示 %1",rF.MPYTHON_LCD_PRINT_TOOLTIP="",rF.MPYTHON_LCD_HOME_HELPURL="",rF.MPYTHON_LCD_HOME_MESSAGE0="LCD1602 光標 回到原點",rF.MPYTHON_LCD_HOME_TOOLTIP="",rF.MPYTHON_LCD_CURSOR_HELPURL="",rF.MPYTHON_LCD_CURSOR_MESSAGE0="LCD1602 光標 %1",rF.MPYTHON_LCD_CURSOR_TOOLTIP="",rF.MPYTHON_LCD_SET_CURSOR_HELPURL="",rF.MPYTHON_LCD_SET_CURSOR_MESSAGE0="LCD1602 起始點 行 %2 列 %1",rF.MPYTHON_LCD_SET_CURSOR_TOOLTIP="行列從0開始計數",rF.MPYTHON_LCD_CLEAR_HELPURL="",rF.MPYTHON_LCD_CLEAR_MESSAGE0="LCD1602 清屏",rF.MPYTHON_LCD_CLEAR_TOOLTIP="",rF.MPYTHON_LCD_CURSOR_BLINK="閃爍",rF.MPYTHON_LCD_CURSOR_NO_BLINK="不閃爍",rF.MPYTHON_RIGHT_TO_LEFT="從右向左",rF.MPYTHON_LEFT_TO_RIGHT="從左向右",rF.MPYTHON_LCD_TEXT_DIRECTION_HELPURL="",rF.MPYTHON_LCD_TEXT_DIRECTION_MESSAGE0="LCD1602 文字方向 %1",rF.MPYTHON_LCD_TEXT_DIRECTION_TOOLTIP="",rF.MPYTHON_LCD_MOVE_HELPURL="",rF.MPYTHON_LCD_MOVE_MESSAGE0="LCD1602 向 %1 滾動一格",rF.MPYTHON_LCD_MOVE_TOOLTIP="",rF.MPYTHON_IR_TRANS_HELPURL="",rF.MPYTHON_IR_TRANS_MESSAGE0="紅外發送 單字節字符串 %1 tx 引脚 %2",rF.MPYTHON_IR_TRANS_TOOLTIP="\n單字節字符串:\n'A', 'b', '1'等\n",rF.OUTPUT_PIN_HELPURL="",rF.OUTPUT_PIN_MESSAGE0="%1",rF.OUTPUT_PIN_TOOLTIP="",rF.INPUT_PIN_HELPURL="",rF.INPUT_PIN_MESSAGE0="%1",rF.INPUT_PIN_TOOLTIP="",rF.READ_ANALOG_PIN_HELPURL="",rF.READ_ANALOG_PIN_MESSAGE0="%1",rF.READ_ANALOG_PIN_TOOLTIP="",rF.SET_DIGITAL_HELPURL="",rF.SET_DIGITAL_MESSAGE0="%1",rF.SET_DIGITAL_TOOLTIP="",rF.SET_ANALOG_HELPURL="",rF.SET_ANALOG_MESSAGE0="%1",rF.SET_ANALOG_TOOLTIP="",rF.ALL_PIN_HELPURL="",rF.ALL_PIN_MESSAGE0="%1",rF.ALL_PIN_TOOLTIP="",rF.PWM_PIN_HELPURL="",rF.PWM_PIN_MESSAGE0="%1",rF.PWM_PIN_TOOLTIP="",rF.DH11_HUM_TEM_PIN_HELPURL="",rF.DH11_HUM_TEM_PIN_MESSAGE0="%1",rF.DH11_HUM_TEM_PIN_TOOLTIP="",rF.UART_TX_PIN_HELPURL="",rF.UART_TX_PIN_MESSAGE0="%1",rF.UART_TX_PIN_TOOLTIP="",rF.UART_RX_PIN_HELPURL="",rF.UART_RX_PIN_MESSAGE0="%1",rF.UART_RX_PIN_TOOLTIP="",rF.I2C_PIN_HELPURL="",rF.I2C_PIN_MESSAGE0="%1",rF.I2C_PIN_TOOLTIP="",rF.MQTT_COMMON_SETUP_HELPURL="https://mpython.readthedocs.io/zh/master/library/mPython/umqtt.simple.html?highlight=mqtt#MQTTClient",rF.MQTT_COMMON_SETUP_MESSAGE0="MQTT %1 client_id %2 server %3 port %4 user %5 password %6 keepalive %7",rF.MQTT_COMMON_SETUP_TOOLTIP="",rF.MQTT_TENCENT_SETUP_HELPURL="https://mpython.readthedocs.io/zh/master/library/mPython/umqtt.simple.html?highlight=mqtt#MQTTClient",rF.MQTT_TENCENT_SETUP_MESSAGE0="MQTT 騰訊物聯網 %1 服務器 %2 Port %3 AppId %4 Device %5 -- 傳出參數 -- %6 ReportTopic %7 ControlTopic %8",rF.MQTT_TENCENT_SETUP_TOOLTIP="",rF.MQTT_TENCENT_SETUPS_HELPURL="https://mpython.readthedocs.io/zh/master/library/mPython/umqtt.simple.html?highlight=mqtt#MQTTClient",rF.MQTT_TENCENT_SETUPS_MESSAGE0="MQTT 騰訊物聯網 %1 服務器 %2 Port %3 AppId %4 Device %5 -- 傳出參數 -- %6 ReportTopic %7 ControlTopic %8",rF.MQTT_TENCENT_SETUPS_TOOLTIP="",rF.MQTT_SETUP_HELPURL="https://mpython.readthedocs.io/zh/master/tutorials/advance/iot/mqtt.html#id2",rF.MQTT_SETUP_MESSAGE0="MQTT-Easy IoT %1 服務器 %2 Client ID %5 Iot_id %3 Iot_pwd %4",rF.MQTT_SETUP_TOOLTIP="",rF.MQTT_CONNECT_HELPURL="https://mpython.readthedocs.io/zh/master/tutorials/advance/iot/mqtt.html#id2",rF.MQTT_CONNECT_MESSAGE0="連接 MQTT",rF.MQTT_CONNECT_TOOLTIP="",rF.MQTT_PUBLISH_HELPURL="https://mpython.readthedocs.io/zh/master/tutorials/advance/iot/mqtt.html#id2",rF.MQTT_PUBLISH_MESSAGE0="發佈 %1 至 主題 %2",rF.MQTT_PUBLISH_TOOLTIP="",rF.MQTT_REC_FROM_TOPIC_HELPURL="https://mpython.readthedocs.io/zh/master/tutorials/advance/iot/mqtt.html#id2",rF.MQTT_REC_FROM_TOPIC_MESSAGE0="當從主題 %1 接收到 %2 時",rF.MQTT_REC_FROM_TOPIC_TOOLTIP="",rF.MQTT_RECEIVE_HELPURL="https://mpython.readthedocs.io/zh/master/tutorials/advance/iot/mqtt.html#id2",rF.MQTT_RECEIVE_MESSAGE0="當從主題 %1 接收到 %2 時",rF.MQTT_RECEIVE_TOOLTIP='參數"主題"只接受變量',rF.MQTT_RECEIVED_MESSAGE0="當從主題 %1 接收到消息 時",rF.MQTT_MESSAGE_HELPURL="https://mpython.readthedocs.io/zh/master/tutorials/advance/iot/mqtt.html#id2",rF.MQTT_MESSAGE_MESSAGE0="從 MQTT 收到的消息",rF.MQTT_MESSAGE_TOOLTIP="",rF.MQTT_WAIT_MSG_HELPURL="https://mpython.readthedocs.io/zh/master/tutorials/advance/iot/mqtt.html#id2",rF.MQTT_WAIT_MSG_MESSAGE0="等待主題消息 以 %1 模式",rF.MQTT_WAIT_MSG_TOOLTIP="建議放在'一直重複'中運行",rF.MQTT_DISCONNECT_HELPURL="https://mpython.readthedocs.io/zh/master/tutorials/advance/iot/mqtt.html#id2",rF.MQTT_DISCONNECT_MESSAGE0="MQTT 斷開連接",rF.MQTT_DISCONNECT_TOOLTIP="",rF.MQTT_LAST_WILL_HELPURL="https://mpython.readthedocs.io/zh/master/library/mPython/umqtt.simple.html?highlight=mqtt#MQTTClient.set_last_will",rF.MQTT_LAST_WILL_MESSAGE0="設置 MQTT 主題 %2 離綫消息 %1",rF.MQTT_LAST_WILL_TOOLTIP="設置 MQTT last will 消息。應該在 connect() 之前調用。",rF.MPYTHON_SIOT_CONNECT_HELPURL="",rF.MPYTHON_SIOT_CONNECT_TOOLTIP="",rF.MPYTHON_SIOT_CONNECT_MESSAGE0="創建 SIoT 連接 %1 客戶端ID %2 服務器 %3 用戶 %4 密碼 %5",rF.MPYTHON_SIOT_ISCONNECTED_HELPURL="",rF.MPYTHON_SIOT_ISCONNECTED_TOOLTIP="",rF.MPYTHON_SIOT_ISCONNECTED_MESSAGE0="SIoT 連接成功 ?",rF.MPYTHON_SIOT_SUBSCRIBE_HELPURL="",rF.MPYTHON_SIOT_SUBSCRIBE_TOOLTIP="",rF.MPYTHON_SIOT_SUBSCRIBE_MESSAGE0="SIoT 訂閱主題",rF.MPYTHON_SIOT_SUBSCRIBE_EMPTY_TITLE="點擊左邊星號 訂閱 SIoT 主題",rF.MPYTHON_SIOT_SUBSCRIBE_INPUT_WITH="SIoT 訂閱 主題1",rF.MPYTHON_SIOT_SUBSCRIBE_ITEM_TITLE="主題",rF.MPYTHON_SIOT_SUBSCRIBE_ITEM_TOOLTIP="",rF.MPYTHON_SIOT_SUBSCRIBE_CONTAINER_TITLE_ADD="最多訂閱 5 個主題",rF.MPYTHON_SIOT_SUBSCRIBE_CONTAINER_TOOLTIP="",rF.MPYTHON_SIOT_DISCONNECT_HELPURL="",rF.MPYTHON_SIOT_DISCONNECT_TOOLTIP="",rF.MPYTHON_SIOT_DISCONNECT_MESSAGE0="SIoT 斷開連接",rF.MPYTHON_SIOT_MESSAGE_HELPURL="",rF.MPYTHON_SIOT_MESSAGE_TOOLTIP="",rF.MPYTHON_SIOT_MESSAGE_MESSAGE0="從 SIoT 收到的消息",rF.MPYTHON_SIOT_TOPIC1="主題1",rF.MPYTHON_SIOT_TOPIC2="主題2",rF.MPYTHON_SIOT_TOPIC3="主題3",rF.MPYTHON_SIOT_TOPIC4="主題4",rF.MPYTHON_SIOT_TOPIC5="主題5",rF.MPYTHON_SIOT_PUBLISH_HELPURL="",rF.MPYTHON_SIOT_PUBLISH_TOOLTIP="",rF.MPYTHON_SIOT_PUBLISH_MESSAGE0="SIoT 發送消息 %1 到 %2",rF.MPYTHON_SIOT_PUBLISH_TO_MESSAGE0="SIoT 發送消息 %1 到 主題 %2",rF.MPYTHON_SIOT_RECEIVE_HELPURL="",rF.MPYTHON_SIOT_RECEIVE_TOOLTIP="",rF.MPYTHON_SIOT_RECEIVE_MESSAGE0="當從 SIoT %1 收到消息時 %2 執行 %3",rF.MPYTHON_SIOT_RECEIVE_FROM_MESSAGE0="當從 SIoT 主題 %1 收到消息時 %2 執行 %3",rF.MPYTHON_IR_RECV_HELPURL="",rF.MPYTHON_IR_RECV_MESSAGE0="紅外接收 整型 rx 引脚 %1",rF.MPYTHON_IR_RECV_TOOLTIP="第一次接收總爲空",rF.MPYTHON_BLUEBIT_OLED_PRINT_HELPURL="",rF.MPYTHON_BLUEBIT_OLED_PRINT_MESSAGE0="bluebit OLED 顯示 %1 x %2 y %3",rF.MPYTHON_BLUEBIT_OLED_PRINT_TOOLTIP="",rF.MPYTHON_BLUEBIT_OLED_INIT_HELPURL="",rF.MPYTHON_BLUEBIT_OLED_INIT_MESSAGE0="bluebit OLED 初始化 tx %1 rx %2",rF.MPYTHON_BLUEBIT_OLED_INIT_TOOLTIP="",rF.MPYTHON_BLUEBIT_OLED_CLEAR_HELPURL="",rF.MPYTHON_BLUEBIT_OLED_CLEAR_MESSAGE0="bluebit OLED 清空",rF.MPYTHON_BLUEBIT_OLED_CLEAR_TOOLTIP="",rF.MPYTHON_BLUEBIT_OLED_BMP_HELPURL="",rF.MPYTHON_BLUEBIT_OLED_BMP_MESSAGE0="bluebit OLED 顯示圖像 x %1 y %2 寬 %3 高 %4 16進制圖像數據 %5",rF.MPYTHON_BLUEBIT_OLED_BMP_TOOLTIP="",rF.mpython_bme280_hum_tem_pre_MESSAGE0="气象 %1",rF.mpython_bme280_hum_tem_pre_TOOLTIP="气压单位Pa, 温度单位摄氏度, 环境湿度单位%",rF.mpythonbox_sound_MESSAGE0="聲音值",rF.mpythonbox_sound_TOOLTIP="採樣數據,为0~4095。",rF.mpythonbox_sound_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mPythonBox/lib/mpython.html",rF.MPYTHONBOX_SLIDER_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mPythonBox/lib/mpython_box.html#mpython-box",rF.MPYTHONBOX_SLIDER_MESSAGE0="滑杆",rF.MPYTHONBOX_SLIDER_TOOLTIP="返回滑杆電阻採樣值。範圍0~4095。",rF.MPYTHONBOX_5BUTTON_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mPythonBox/lib/mpython_box.html#mpython-box",rF.MPYTHONBOX_5BUTTON_MESSAGE0="五向按鍵%1",rF.MPYTHONBOX_5BUTTON_TOOLTIP="",rF.MPYTHONBOX_MOTOR_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mPythonBox/lib/mpython_box.html#mpython-box",rF.MPYTHONBOX_MOTOR_MESSAGE0="馬達 速度%1",rF.MPYTHONBOX_MOTOR_TOOLTIP="馬達速度,範圍±100。正值表示正轉,負值則反。",rF.MPYTHONBOX_ULTRASONIC_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mPythonBox/lib/mpython_box.html#mpython_box.get_key",rF.MPYTHONBOX_ULTRASONIC_MESSAGE0="超聲波",rF.MPYTHONBOX_ULTRASONIC_TOOLTIP="超聲波測距,獲取超聲波感測器測距值,組織cm。範圍3~340CM",rF.MPYTHONBOX_THEHUMANBODYINFRARE_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mPythonBox/lib/mpython_box.html#mpython_box.get_key",rF.MPYTHONBOX_THEHUMANBODYINFRARE_MESSAGE0="人體紅外",rF.MPYTHONBOX_THEHUMANBODYINFRARE_TOOLTIP="返回人體紅外觸發值。當為1時,表示已觸發;當為0時,表示未觸發。",rF.MPYTHONBOX_RGB_pixel_HELPURL="",rF.MPYTHONBOX_RGB_pixel_MESSAGE0="設定第 %1列 %2行 R%3 G%4 B%5",rF.MPYTHONBOX_RGB_pixel_TOOLTIP="設定第多少列,行的RGB顏色",rF.MPYTHONBOX_RGB_get_pixel_HELPURL="",rF.MPYTHONBOX_RGB_get_pixel_MESSAGE0="返回 第%1列 %2行 RGB颜色",rF.MPYTHONBOX_RGB_get_pixel_TOOLTIP="返回第多少列,行位置的RGB顏色",rF.MPYTHONBOX_RGB_ImageText_HELPURL="",rF.MPYTHONBOX_RGB_ImageText_MESSAGE0="滾動顯示文本%1 速度%2",rF.MPYTHONBOX_RGB_ImageText_TOOLTIP="滾動顯示文字,亮度為0不亮,9最亮",rF.MPYTHONBOX_RGB_SetImage_HELPURL="",rF.MPYTHONBOX_RGB_SetImage_TOOLTIP="",rF.MPYTHONBOX_RGB_SetImage_MESSAGE0="創建圖像 %1 第一行%2第二行%3第三行%4第四行%5第五行%6",rF.MPYTHONBOX_RGB_Image_HELPURL="",rF.MPYTHONBOX_RGB_Image_MESSAGE0="顯示影像%1",rF.MPYTHONBOX_RGB_Image_TOOLTIP="顯示影像",rF.MPYTHONBOX_RGB_SetImage_HELPURL="",rF.MPYTHONBOX_RGB_SetImage_MESSAGE0="創建影像 %1 第一行%2第二行%3第三行%4第四行%5第五行%6",rF.MPYTHONBOX_RGB_SetImage_TOOLTIP="創建新影像,每行每位數代表第幾比特燈,默認紅色;亮度為0不亮,9最亮。",rF.MPYTHONBOX_RGB_SHOW_IMAGE_MESSAGE0="顯示影像/文本 %1",rF.MPYTHONBOX_RGB_SHOW_IMAGE_TOOLTIP="顯示影像或文字消息。",rF.MPYTHONBOX_RGB_SHOW_IMAGE_HELPURL="",rF.MPYTHONBOX_RGB_SHOW_IMAGEImport_MESSAGE0="顯示影像 %1",rF.MPYTHONBOX_RGB_SHOW_IMAGEImport_TOOLTIP="顯示影像。",rF.MPYTHONBOX_RGB_SHOW_IMAGEImport_HELPURL="",rF.MPYTHONBOX_RGB_SHOW_IMAGE_Copy_MESSAGE0="複製影像 %1",rF.MPYTHONBOX_RGB_SHOW_IMAGE_Copy_TOOLTIP="複製影像。",rF.MPYTHONBOX_RGB_SHOW_IMAGE_Copy_HELPURL="",rF.MPYTHONBOX_RGB_ImageCot_HELPURL="",rF.MPYTHONBOX_RGB_ImageCot_MESSAGE0="切剪影像%1 列%2 行%3 宽%4 高%5",rF.MPYTHONBOX_RGB_ImageCot_TOOLTIP="切剪影像",rF.MPYTHONBOX_RGB_IMAGE_BUILTINS_MESSAGE0="內寘影像 %1",rF.MPYTHONBOX_RGB_IMAGE_BUILTINS_TOOLTIP="選擇一個內寘的影像。",rF.MPYTHONBOX_RGB_IMAGE_BUILTINS_HELPURL="",rF.MPYTHONBOX_RGB_IMAGE_SHIFT_MESSAGE0="平移影像 %1 %2 %3 位",rF.MPYTHONBOX_RGB_IMAGE_SHIFT_TOOLTIP="向特定方向移動影像,並返回移動後的結果。",rF.MPYTHONBOX_RGB_IMAGE_SHIFT_HELPURL="",rF.MPYTHONBOX_RGB_clear_HELPURL="",rF.MPYTHONBOX_RGB_clear_MESSAGE0="關閉所有 RGB 燈",rF.MPYTHONBOX_RGB_clear_TOOLTIP="",rF.MPYTHONBOX_RGB_pixel_return_HELPURL="",rF.MPYTHONBOX_RGB_pixel_return_MESSAGE0="返回第 %1列 %2行 顏色",rF.MPYTHONBOX_RGB_pixel_return_TOOLTIP="返回第多少列,行的RGB顏色",rF.MPYTHONBOX_TRIAXIAL_ACCELERATION_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython.html",rF.MPYTHONBOX_TRIAXIAL_ACCELERATION_MESSAGE0="%1軸加速度",rF.MPYTHONBOX_TRIAXIAL_ACCELERATION_TOOLTIP="单位g,范围-2~+2g。",rF.MPYTHONBOX_TRIAXIAL_AUGULAR_VELOCITY_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython.html",rF.MPYTHONBOX_TRIAXIAL_AUGULAR_VELOCITY_MESSAGE0="%1軸角速度",rF.MPYTHONBOX_TRIAXIAL_AUGULAR_VELOCITY_TOOLTIP="范围±500°/秒",rF.MPYTHONBOX_EULER_ANGLE_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython.html",rF.MPYTHONBOX_EULER_ANGLE_MESSAGE0="%1歐拉角",rF.MPYTHONBOX_EULER_ANGLE_TOOLTIP="返回當前歐拉角(Pitch,Roll,Yaw),單位角度",rF.MPYTHONBOX_QUATERNION_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython.html",rF.MPYTHONBOX_QUATERNION_MESSAGE0="%1四元數",rF.MPYTHONBOX_QUATERNION_TOOLTIP="返回當前四元數(w,x,y,z)",rF.MPYTHONBOX_CAMERA_LED_HELPURL="",rF.MPYTHONBOX_CAMERA_LED_MESSAGE0="攝像燈%1",rF.MPYTHONBOX_CAMERA_LED_TOOLTIP="led燈,分為打開和關閉兩種狀態",rF.LIST_FIRST_INDEX_HELPURL="",rF.LIST_FIRST_INDEX_MESSAGE0="項 %1 在列表 %2 %3 出現的位置",rF.LIST_FIRST_INDEX_TOOLTIP="",rF.MPYTHON_AI_LCD_INIT_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.lcd.init",rF.MPYTHON_AI_LCD_INIT_MESSAGE0="螢幕 初始化 ",rF.MPYTHON_AI_LCD_INIT_TOOLTIP="初始化 螢幕顯示",rF.MPYTHON_AI_SENSOR_RESET_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/sensor.html#%E5%8D%95%E7%9B%AE%E6%91%84%E5%83%8F%E5%A4%B4%E9%87%8D%E7%BD%AE%E5%87%BD%E6%95%B0",rF.MPYTHON_AI_SENSOR_RESET_MESSAGE0="監視器 初始化",rF.MPYTHON_AI_SENSOR_RESET_TOOLTIP="初始化單目監視器",rF.MPYTHON_AI_SENSOR_ENABLE_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/sensor.html#%E8%8E%B7%E5%8F%96%E5%9B%BE%E5%83%8F",rF.MPYTHON_AI_SENSOR_ENABLE_MESSAGE0="監視器%1",rF.MPYTHON_AI_SENSOR_ENABLE_TOOLTIP="获取影像",rF.MPYTHON_AI_LCD_TEXT_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/lcd.html#%E4%BE%8B%E7%A8%8B-1%EF%BC%9A-%E6%98%BE%E7%A4%BA%E8%8B%B1%E6%96%87",rF.MPYTHON_AI_LCD_TEXT_MESSAGE0="顯示文字 x %1 y %2 内容 %3",rF.MPYTHON_AI_LCD_TEXT_TOOLTIP="僅支持字母和數位",rF.MPYTHON_AI_SENSOR_SKIP_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/sensor.html#%E8%B7%B3%E5%B8%A7",rF.MPYTHON_AI_SENSOR_SKIP_MESSAGE0="監視器 跳過幀數%1 毫秒%2内的影像",rF.MPYTHON_AI_SENSOR_SKIP_TOOLTIP="監視器跳過指定幀數或者跳過指定時間內的影像",rF.MPYTHON_AI_SENSOR_RETURN_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/sensor.html#%E5%88%86%E8%BE%A8%E7%8E%87%E5%AE%BD%E5%BA%A6",rF.MPYTHON_AI_SENSOR_RETURN_MESSAGE0="测 監視器 获取%1",rF.MPYTHON_AI_SENSOR_RETURN_TOOLTIP="(AI)監視器返回参数(宽高,图像帧的格式,图像帧的大小)",rF.MPYTHON_AI_SENSOR_SETS_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/sensor.html#%E8%AE%BE%E7%BD%AE%E5%AF%B9%E6%AF%94%E5%BA%A6",rF.MPYTHON_AI_SENSOR_SETS_MESSAGE0="監視器 设置%1 为%2",rF.MPYTHON_AI_SENSOR_SETS_TOOLTIP="设置監視器对比度,亮度,饱和度范围为[-2,+2]",rF.MPYTHON_AI_SENSOR_AUTO_GAIN_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/sensor.html#%E8%AE%BE%E7%BD%AE%E8%87%AA%E5%8A%A8%E5%A2%9E%E7%9B%8A",rF.MPYTHON_AI_SENSOR_AUTO_GAIN_MESSAGE0="監視器 自動增益%1",rF.MPYTHON_AI_SENSOR_AUTO_GAIN_TOOLTIP="1開啟監視器自動增益0關閉監視器自動增益",rF.MPYTHON_AI_SENSOR_AUTO_WHITEBAL_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/sensor.html#%E8%AE%BE%E7%BD%AE%E8%87%AA%E5%8A%A8%E5%A2%9E%E7%9B%8A",rF.MPYTHON_AI_SENSOR_AUTO_WHITEBAL_MESSAGE0="監視器 白平衡%1",rF.MPYTHON_AI_SENSOR_AUTO_WHITEBAL_TOOLTIP="設定攝像自動白平衡模式,默認打開。True為打開,False為關閉自動白平衡。若您想追跡顏色,則需關閉白平衡。",rF.MPYTHON_AI_SENSOR_LEVEL_MI_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/sensor.html#%E8%AE%BE%E7%BD%AE%E6%B0%B4%E5%B9%B3%E9%95%9C%E5%83%8F",rF.MPYTHON_AI_SENSOR_LEVEL_MI_MESSAGE0="監視器 %1 %2",rF.MPYTHON_AI_SENSOR_LEVEL_MI_TOOLTIP="1表示開啟水准鏡像 0表示關閉水准鏡像",rF.MPYTHON_AI_LCD_DISPLAY_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.lcd.display",rF.MPYTHON_AI_LCD_DISPLAY_MESSAGE0="屏幕 顯示生效",rF.MPYTHON_AI_LCD_DISPLAY_TOOLTIP="可以在液晶屏上顯示",rF.MPYTHON_AI_LCD_DISPLAY_SIZE_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.lcd.display",rF.MPYTHON_AI_LCD_DISPLAY_SIZE_MESSAGE0="图像 顯示生效 x%1 y%2 宽%3 高%4",rF.MPYTHON_AI_LCD_DISPLAY_SIZE_TOOLTIP="可以在液晶屏上顯示一張圖片",rF.MPYTHON_AI_SENSOR_IMAGES_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/sensor.html#%E8%8E%B7%E5%8F%96%E5%9B%BE%E5%83%8F",rF.MPYTHON_AI_SENSOR_IMAGES_MESSAGE0="監視器 獲取影像",rF.MPYTHON_AI_SENSOR_IMAGES_TOOLTIP="控制監視器捕捉影像",rF.MPYTHON_AI_IMAGE_FACEDETECT_HELPURL="https://maixpy.sipeed.com/zh/libs/Maix/kpu.html#%E8%BF%90%E8%A1%8Cyolo2%E7%BD%91%E7%BB%9C",rF.MPYTHON_AI_IMAGE_FACEDETECT_MESSAGE0="人臉識別",rF.MPYTHON_AI_IMAGE_FACEDETECT_TOOLTIP="",rF.MPYTHON_AI_LCD_SHOW_REC_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.draw_rectangle",rF.MPYTHON_AI_LCD_SHOW_REC_MESSAGE0="矩形%1 x%3 y%4 宽%5 高%6 颜色为 R%7 G%8 B%9 加粗%2",rF.MPYTHON_AI_LCD_SHOW_REC_TOOLTIP="在影像上繪製矩形",rF.MPYTHON_AI_LCD_SHOW_STRING_MESSAGE0="线条 x1%1 y1%2 到x2%3 y2%4 颜色为R%5 G%6 B%7 加粗%8",rF.MPYTHON_AI_LCD_SHOW_STRING_TOOLTIP="在影像上繪製線條",rF.MPYTHON_AI_LCD_SHOW_STRING_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.draw_rectangle",rF.MPYTHON_AI_LCD_CLEAR_ALL_MESSAGE0="螢幕 顯示清空",rF.MPYTHON_AI_LCD_CLEAR_ALL_TOOLTIP="將液晶屏清空為黑色或者指定的顏色",rF.MPYTHON_AI_LCD_CLEAR_ALL_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.draw_rectangle",rF.MPYTHON_AI_LCD_return_colour_MESSAGE0="LCD 返回 x%1 y%2 顏色",rF.MPYTHON_AI_LCD_return_colour_TOOLTIP="返回某個座標點的顏色",rF.MPYTHON_AI_LCD_return_colour_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.draw_rectangle",rF.MPYTHON_AI_LCD_SHOW_CIRCLE_MESSAGE0="圓形%1 x%2 y%3 半径%4 顏色为 R%5 G%6 B%7 加粗%8",rF.MPYTHON_AI_LCD_SHOW_CIRCLE_TOOLTIP="在影像上繪製圓形",rF.MPYTHON_AI_LCD_SHOW_CIRCLE_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.draw_rectangle",rF.MPYTHON_AI_LCD_TEXT_MOST_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.draw_rectangle",rF.MPYTHON_AI_LCD_TEXT_MOST_MESSAGE0="顯示文字 x %1 y %2 内容 %3 顏色为R%4 G%5 B%6 字号%7",rF.MPYTHON_AI_LCD_TEXT_MOST_TOOLTIP="僅支持字母和數位",rF.MPYTHON_AI_LCD_SHOW_TEN_STRING_MESSAGE0="十字線 x%1 y%2 顏色为R%3 G%4 B%5 尺寸%6 加粗%7",rF.MPYTHON_AI_LCD_SHOW_TEN_STRING_TOOLTIP="在影像上繪製十字線",rF.MPYTHON_AI_LCD_SHOW_TEN_STRING_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.draw_rectangle",rF.MPYTHON_AI_LCD_SHOW_ARROWS_MESSAGE0="箭頭 x1%1 y1%2 到x2%3 y2%4 顏色为R%5 G%6 B%7 加粗%8",rF.MPYTHON_AI_LCD_SHOW_ARROWS_TOOLTIP="在影像上繪製一個箭頭",rF.MPYTHON_AI_LCD_SHOW_ARROWS_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.draw_rectangle",rF.MPYTHON_AI_LCD_SHOW_IMAGE_PIRCTURE_HELPURL=".https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.lcd.display",rF.MPYTHON_AI_LCD_SHOW_IMAGE_PIRCTURE_MESSAGE0="顯示影像 路徑%1",rF.MPYTHON_AI_LCD_SHOW_IMAGE_PIRCTURE_TOOLTIP="顯示影像",rF.MPYTHON_AI_LCD_SHOW_IMAGE_HEAT_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.invert",rF.MPYTHON_AI_LCD_SHOW_IMAGE_HEAT_MESSAGE0="圖像轉換為%1",rF.MPYTHON_AI_LCD_SHOW_IMAGE_HEAT_TOOLTIP="黑白翻轉是將二進位影像0(黑色)變為1(白色),1(白色)變為0(黑色),非常快速地翻轉二進位影像中的所有點數值。",rF.MPYTHON_AI_LCD_SHOW_IMAGE_DESCARTES_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.linpolar",rF.MPYTHON_AI_LCD_SHOW_IMAGE_DESCARTES_MESSAGE0="影像 從笛卡爾座標到%1 座標重新投影 反向%2",rF.MPYTHON_AI_LCD_SHOW_IMAGE_DESCARTES_TOOLTIP="",rF.MPYTHON_AI_LCD_SHOW_IMAGE_EROSION_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.dilate",rF.MPYTHON_AI_LCD_SHOW_IMAGE_EROSION_MESSAGE0="影像 膨胀 級別%1",rF.MPYTHON_AI_LCD_SHOW_IMAGE_EROSION_TOOLTIP="膨脹就是對影像高亮部分進行“領域擴張”,效果圖擁有比原圖更大的高亮區域。",rF.MPYTHON_AI_LCD_SHOW_IMAGE_MIDDLE_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.midpoint",rF.MPYTHON_AI_LCD_SHOW_IMAGE_MIDDLE_MESSAGE0="影像 中点濾波 級別%1 滤波%2",rF.MPYTHON_AI_LCD_SHOW_IMAGE_MIDDLE_TOOLTIP="控制影像混合的最小/最大程度。0只適用於最小濾波,1僅用於最大濾波。",rF.MPYTHON_AI_LCD_SHOW_IMAGE_MODE_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.modehttps://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.mode",rF.MPYTHON_AI_LCD_SHOW_IMAGE_MODE_MESSAGE0="影像 众数濾波 級別%1",rF.MPYTHON_AI_LCD_SHOW_IMAGE_MODE_TOOLTIP="在影像上運行眾數濾波,用相鄰點數的模式替換每個點數。",rF.MPYTHON_AI_LCD_SHOW_IMAGE_INDISTINCT_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.mean",rF.MPYTHON_AI_LCD_SHOW_IMAGE_INDISTINCT_MESSAGE0="影像 模糊滤波 级别%1",rF.MPYTHON_AI_LCD_SHOW_IMAGE_INDISTINCT_TOOLTIP="使用盒式濾波器的標準平均值模糊濾波。",rF.MPYTHON_AI_LCD_SHOW_IMAGE_CARTOON_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.cartoon",rF.MPYTHON_AI_LCD_SHOW_IMAGE_CARTOON_MESSAGE0="影像 卡通化 級別%1 起始點數差异%2 相鄰點數差异%3",rF.MPYTHON_AI_LCD_SHOW_IMAGE_CARTOON_TOOLTIP="使图像卡通化",rF.MPYTHON_AI_LCD_SHOW_IMAGE_3D_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.rotation_corr",rF.MPYTHON_AI_LCD_SHOW_IMAGE_3D_MESSAGE0="影像 3D旋轉 上下旋轉%1 左右旋轉%2 度数%3 左右移动%4 上下移动%5 缩放%6",rF.MPYTHON_AI_LCD_SHOW_IMAGE_3D_TOOLTIP="通過執行幀緩衝區的3D旋轉來糾正影像中的透視問題。",rF.MPYTHON_AI_LCD_SHOW_ECTYPE_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.copy",rF.MPYTHON_AI_LCD_SHOW_ECTYPE_MESSAGE0="將影像的副本保存到SD卡 图像名%1 影像顯示區域 x%2 y%3 宽%4 高%5",rF.MPYTHON_AI_LCD_SHOW_ECTYPE_TOOLTIP="將影像的副本保存到SD卡",rF.MPYTHON_AI_LCD_SHOW_ECTYPE_SHOW_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.save",rF.MPYTHON_AI_LCD_SHOW_ECTYPE_SHOW_MESSAGE0="創建一個影像對象的副本 複製影像區域 x%1 y%2 宽%3 高%4",rF.MPYTHON_AI_LCD_SHOW_ECTYPE_SHOW_TOOLTIP="創建一個影像對象的副本",rF.MPYTHON_AI2_NUMBER_DISCERN_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",rF.MPYTHON_AI2_NUMBER_DISCERN_MESSAGE0="手寫數位識別",rF.MPYTHON_AI2_NUMBER_DISCERN_TOOLTIP="手寫數位識別",rF.MPYTHON_AI_LCD_PIXEL_COLOUR_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html?highlight=get_pixel#mpython_classroom_kit.image.set_pixel",rF.MPYTHON_AI_LCD_PIXEL_COLOUR_MESSAGE0="屏幕 x%1 y%2 显示颜色 R%3 G%4 B%5",rF.MPYTHON_AI_LCD_PIXEL_COLOUR_TOOLTIP="屏幕显示颜色",rF.MPYTHON_AI_LCD_COLOUR_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.lcd.clear",rF.MPYTHON_AI_LCD_COLOUR_MESSAGE0="屏幕 初始化 显示颜色 R%1 G%2 B%3",rF.MPYTHON_AI_LCD_COLOUR_TOOLTIP="屏幕显示颜色",rF.MPYTHON_AI_SENSOR_PATTERN_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.camera.set_pixformat",rF.MPYTHON_AI_SENSOR_PATTERN_MESSAGE0="監視器 初始化 點數模式 %1",rF.MPYTHON_AI_SENSOR_PATTERN_TOOLTIP="用於設定監視器點數模式,有黑白和rgb彩色",rF.MPYTHON_AI_TRACE_CILOR_DISPLAYTEN_HELPURL="",rF.MPYTHON_AI_TRACE_CILOR_DISPLAYTEN_MESSAGE0="追跡色塊 顯示%1",rF.MPYTHON_AI_TRACE_CILOR_DISPLAYTEN_TOOLTIP="",rF.MPYTHON_AI2_FACE_TRACKING_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",rF.MPYTHON_AI2_FACE_TRACKING_MESSAGE0="(實驗箱)選擇訓練模型 人臉",rF.MPYTHON_AI2_FACE_TRACKING_TOOLTIP="可以識別並且追蹤人臉,顯示人臉大小等",rF.MPYTHON_AI2_PHOTOGRAPH_TRACKING_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",rF.MPYTHON_AI2_PHOTOGRAPH_TRACKING_MESSAGE0="(實驗箱)調用攝像頭進行 人臉識別",rF.MPYTHON_AI2_PHOTOGRAPH_TRACKING_TOOLTIP="調用攝像頭進行 人臉識別",rF.MPYTHON_AI2_RESULT_FACE_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",rF.MPYTHON_AI2_RESULT_FACE_MESSAGE0="(實驗箱)獲取識別後人臉的 所有參數",rF.MPYTHON_AI2_RESULT_FACE_TOOLTIP="獲取識別後人臉的 所有參數",rF.MPYTHON_AI2_RESULT_FACE_X_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",rF.MPYTHON_AI2_RESULT_FACE_X_MESSAGE0="(實驗箱)獲取識別後人臉的 x座標",rF.MPYTHON_AI2_RESULT_FACE_X_TOOLTIP="獲取識別後人臉的 x座標",rF.MPYTHON_AI2_RESULT_FACE_Y_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",rF.MPYTHON_AI2_RESULT_FACE_Y_MESSAGE0="(實驗箱)獲取識別後人臉的 y座標",rF.MPYTHON_AI2_RESULT_FACE_Y_TOOLTIP="獲取識別後人臉的 y座標",rF.MPYTHON_AI2_RESULT_FACE_W_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",rF.MPYTHON_AI2_RESULT_FACE_W_MESSAGE0="(實驗箱)獲取識別後人臉的 寬度",rF.MPYTHON_AI2_RESULT_FACE_W_TOOLTIP="獲取識別後人臉的 寬度",rF.MPYTHON_AI2_RESULT_FACE_H_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",rF.MPYTHON_AI2_RESULT_FACE_H_MESSAGE0="(實驗箱)獲取識別後人臉的 高度",rF.MPYTHON_AI2_RESULT_FACE_H_TOOLTIP="獲取識別後人臉的 高度",rF.MPYTHON_AI2_RESULT_FACE_VALUE_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",rF.MPYTHON_AI2_RESULT_FACE_VALUE_MESSAGE0="(實驗箱)獲取識別後人臉的 置信度",rF.MPYTHON_AI2_RESULT_FACE_VALUE_TOOLTIP="獲取識別後人臉的 置信度",rF.MPYTHON_AI2_RESULT_FACE_OBJNUM_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",rF.MPYTHON_AI2_RESULT_FACE_OBJNUM_MESSAGE0="(實驗箱)獲取識別後人臉的 數量",rF.MPYTHON_AI2_RESULT_FACE_OBJNUM_TOOLTIP="獲取識別後人臉的 數量",rF.MPYTHON_AI2_20class_TRACKING_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",rF.MPYTHON_AI2_20class_TRACKING_MESSAGE0="(實驗箱)選擇訓練模型 20類",rF.MPYTHON_AI2_20class_TRACKING_TOOLTIP="可以識別20個類型,分別是0-19爲飛機,自行車,鳥,船,瓶子,公交車,汽車,貓,椅子,奶牛,餐桌,狗,屋子,摩托車,人,盆栽,羊,沙發,火車,電視",rF.MPYTHON_AI2_PHOTOGRAPH_20TRACKING_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",rF.MPYTHON_AI2_PHOTOGRAPH_20TRACKING_MESSAGE0="(實驗箱)調用攝像頭進行 20類識別",rF.MPYTHON_AI2_PHOTOGRAPH_20TRACKING_TOOLTIP="調用攝像頭進行 20類識別",rF.MPYTHON_AI2_RESULT_20CLASS_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",rF.MPYTHON_AI2_RESULT_20CLASS_MESSAGE0="(實驗箱)獲取識別後20類的 所有參數",rF.MPYTHON_AI2_RESULT_20CLASS_TOOLTIP="獲取識別後20類的 所有參數",rF.MPYTHON_AI2_RESULT_20CLASS_X_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",rF.MPYTHON_AI2_RESULT_20CLASS_X_MESSAGE0="(實驗箱)獲取識別後20類的 x座標",rF.MPYTHON_AI2_RESULT_20CLASS_X_TOOLTIP="獲取識別後20類的 x座標",rF.MPYTHON_AI2_RESULT_20CLASS_Y_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",rF.MPYTHON_AI2_RESULT_20CLASS_Y_MESSAGE0="(實驗箱)獲取識別後20類的 y座標",rF.MPYTHON_AI2_RESULT_20CLASS_Y_TOOLTIP="獲取識別後20類的 y座標",rF.MPYTHON_AI2_RESULT_20CLASS_W_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",rF.MPYTHON_AI2_RESULT_20CLASS_W_MESSAGE0="(實驗箱)獲取識別後20類的 寬度",rF.MPYTHON_AI2_RESULT_20CLASS_W_TOOLTIP="獲取識別後20類的 寬度",rF.MPYTHON_AI2_RESULT_20CLASS_H_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",rF.MPYTHON_AI2_RESULT_20CLASS_H_MESSAGE0="(實驗箱)獲取識別後20類的 高度",rF.MPYTHON_AI2_RESULT_20CLASS_H_TOOLTIP="獲取識別後20類的 高度",rF.MPYTHON_AI2_RESULT_20CLASS_VALUE_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",rF.MPYTHON_AI2_RESULT_20CLASS_VALUE_MESSAGE0="(實驗箱)獲取識別後20類的 置信度",rF.MPYTHON_AI2_RESULT_20CLASS_VALUE_TOOLTIP="獲取識別後20類的 置信度",rF.MPYTHON_AI2_RESULT_20CLASS_OBJNUM_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",rF.MPYTHON_AI2_RESULT_20CLASS_OBJNUM_MESSAGE0="(實驗箱)獲取識別後20類的 數量",rF.MPYTHON_AI2_RESULT_20CLASS_OBJNUM_TOOLTIP="獲取識別後20類的 數量",rF.MPYTHON_AI2_RESULT_20CLASS_CLASSID_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",rF.MPYTHON_AI2_RESULT_20CLASS_CLASSID_MESSAGE0="(實驗箱)獲取識別後20類的 類型",rF.MPYTHON_AI2_RESULT_20CLASS_CLASSID_TOOLTIP="可以識別20個類型,分別是0-19爲飛機,自行車,鳥,船,瓶子,公交車,汽車,貓,椅子,奶牛,餐桌,狗,屋子,摩托車,人,盆栽,羊,沙發,火車,電視",rF.MPYTHON_AI2_RESULT_20CLASS_INDEX_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",rF.MPYTHON_AI2_RESULT_20CLASS_INDEX_MESSAGE0="(實驗箱)獲取識別後20類的 類型數量",rF.MPYTHON_AI2_RESULT_20CLASS_INDEX_TOOLTIP="獲取識別後20類的 類型數量",rF.MPYTHON_AI2_NUMBER_DISCERN_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",rF.MPYTHON_AI2_NUMBER_DISCERN_MESSAGE0="(實驗箱)選擇訓練模型 手寫數字",rF.MPYTHON_AI2_NUMBER_DISCERN_TOOLTIP="選擇訓練模型 手寫數字",rF.MPYTHON_AI2_RESULT_NUMBER_DISCERN_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",rF.MPYTHON_AI2_RESULT_NUMBER_DISCERN_MESSAGE0="(實驗箱)調用攝像頭進行 手寫數字識別",rF.MPYTHON_AI2_RESULT_NUMBER_DISCERN_TOOLTIP="調用攝像頭進行 手寫數字識別",rF.MPYTHON_AI2_NUMBER_DETECT_ALL_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#id2",rF.MPYTHON_AI2_NUMBER_DETECT_ALL_MESSAGE0="(實驗箱)獲取識別後手寫數字的 所有參數",rF.MPYTHON_AI2_NUMBER_DETECT_ALL_TOOLTIP="獲取識別後手寫數字的 所有參數",rF.MPYTHON_AI2_NUMBER_DETECT_NUMBER_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#id2",rF.MPYTHON_AI2_NUMBER_DETECT_NUMBER_MESSAGE0="(實驗箱)獲取識別後手寫數字的 數字",rF.MPYTHON_AI2_NUMBER_DETECT_NUMBER_TOOLTIP="獲取識別後手寫數字的 數字",rF.MPYTHON_AI2_NUMBER_DETECT_ADIENCE_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#id2",rF.MPYTHON_AI2_NUMBER_DETECT_ADIENCE_MESSAGE0="(實驗箱)獲取識別後手寫數字的 置信度",rF.MPYTHON_AI2_NUMBER_DETECT_ADIENCE_TOOLTIP="獲取識別後手寫數字的 置信度",rF.MPYTHON_AI_IMAGE_LAB_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/image.html#%E4%BE%8B%E7%A8%8B-1%EF%BC%9A-%E6%89%BE%E7%BB%BF%E8%89%B2",rF.MPYTHON_AI_IMAGE_LAB_MESSAGE0="寻找颜色 LAB值%1",rF.MPYTHON_AI_IMAGE_LAB_TOOLTIP="image寻找颜色",rF.MPYTHON_AI_TRACE_COLOR_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.find_blobs",rF.MPYTHON_AI_TRACE_COLOR_MESSAGE0="(實驗箱)追蹤色塊 LAB顏色%1 邊界框小於%2 像素小於%3 過濾",rF.MPYTHON_AI_TRACE_COLOR_TOOLTIP="追蹤色塊",rF.MPYTHON_AI_TRACE_CILOR_DISPLAYTEN_HELPURL="",rF.MPYTHON_AI_TRACE_CILOR_DISPLAYTEN_MESSAGE0="(實驗箱)追蹤色塊 顯示%1",rF.MPYTHON_AI_TRACE_CILOR_DISPLAYTEN_TOOLTIP="",rF.MPYTHON_AI_BLOB_ALL_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#blob",rF.MPYTHON_AI_BLOB_ALL_MESSAGE0="(實驗箱)%1獲取識別後色塊的 所有參數",rF.MPYTHON_AI_BLOB_ALL_TOOLTIP="返回blob 類 -- 色塊對象",rF.MPYTHON_AI_BLOB_X_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#blob",rF.MPYTHON_AI_BLOB_X_MESSAGE0="(實驗箱)%1獲取識別後色塊的 x座標",rF.MPYTHON_AI_BLOB_X_TOOLTIP="返回blob 類 -- 色塊對象",rF.MPYTHON_AI_BLOB_Y_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#blob",rF.MPYTHON_AI_BLOB_Y_MESSAGE0="(實驗箱)%1獲取識別後色塊的 y座標",rF.MPYTHON_AI_BLOB_Y_TOOLTIP="返回blob 類 -- 色塊對象",rF.MPYTHON_AI_BLOB_W_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#blob",rF.MPYTHON_AI_BLOB_W_MESSAGE0="(實驗箱)%1獲取識別後色塊的 寬度",rF.MPYTHON_AI_BLOB_W_TOOLTIP="返回blob 類 -- 色塊對象",rF.MPYTHON_AI_BLOB_H_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#blob",rF.MPYTHON_AI_BLOB_H_MESSAGE0="(實驗箱)%1獲取識別後色塊的 高度",rF.MPYTHON_AI_BLOB_H_TOOLTIP="返回blob 類 -- 色塊對象",rF.MPYTHON_AI_BLOB_NUMBER_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#blob",rF.MPYTHON_AI_BLOB_NUMBER_MESSAGE0="(實驗箱)%1獲取識別後色塊的 數量",rF.MPYTHON_AI_BLOB_NUMBER_TOOLTIP="返回blob 類 -- 色塊對象",rF.MPYTHON_AI_BLOB_CENTER_X_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#blob",rF.MPYTHON_AI_BLOB_CENTER_X_MESSAGE0="(實驗箱)%1獲取識別後色塊的 中心x座標",rF.MPYTHON_AI_BLOB_CENTER_X_TOOLTIP="返回blob 類 -- 色塊對象",rF.MPYTHON_AI_BLOB_CENTER_Y_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#blob",rF.MPYTHON_AI_BLOB_CENTER_Y_MESSAGE0="(實驗箱)%1獲取識別後色塊的 中心y座標",rF.MPYTHON_AI_BLOB_CENTER_Y_TOOLTIP="返回blob 類 -- 色塊對象",rF.MPYTHON_AI_BLOB_ORTHOGON_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#blob",rF.MPYTHON_AI_BLOB_ORTHOGON_MESSAGE0="(實驗箱)%1獲取識別後色塊的 矩形",rF.MPYTHON_AI_BLOB_ORTHOGON_TOOLTIP="返回blob 類 -- 色塊對象",rF.MPYTHON_DRILL_WEIGHT_MESSAGE0="初始化 訓練 %1",rF.MPYTHON_DRILL_WEIGHT_TOOLTIP="",rF.MPYTHON_DRILL_WEIGHT_HELPURL="",rF.MPYTHON_DRILL_LINEAR_REGRESSION_HELPURL="",rF.MPYTHON_DRILL_LINEAR_REGRESSION_MESSAGE0="實例化 線性迴歸直線",rF.MPYTHON_DRILL_LINEAR_REGRESSION_TOOLTIP="",rF.MPYTHON_DRILL_TITLE_HELPURL="",rF.MPYTHON_DRILL_TITLE_MESSAGE0="標題%1 字號%2",rF.MPYTHON_DRILL_TITLE_TOOLTIP="",rF.MPYTHON_DRILL_LABEL_HELPURL="",rF.MPYTHON_DRILL_LABEL_MESSAGE0="標籤%1 標題%2 字號%3",rF.MPYTHON_DRILL_LABEL_TOOLTIP="",rF.MPYTHON_DRILL_DRILL_REALITY_HELPURL="",rF.MPYTHON_DRILL_DRILL_REALITY_MESSAGE0="真實數據 符號標記%1 顏色爲 r%2 g%3 b%4 標題%5",rF.MPYTHON_DRILL_DRILL_REALITY_TOOLTIP="",rF.MPYTHON_DRILL_PREDICTED_REALITY_HELPURL="",rF.MPYTHON_DRILL_PREDICTED_REALITY_MESSAGE0="預測線性迴歸直線 符號標記%1 顏色爲 r%2 g%3 b%4 標題%5",rF.MPYTHON_DRILL_PREDICTED_REALITY_TOOLTIP="",rF.MPYTHON_DRILL_LEGEND_HELPURL="",rF.MPYTHON_DRILL_LEGEND_MESSAGE0="展示圖例",rF.MPYTHON_DRILL_LEGEND_TOOLTIP="",rF.MPYTHON_DRILL_SHOW_HELPURL="",rF.MPYTHON_DRILL_SHOW_MESSAGE0="顯示圖片",rF.MPYTHON_DRILL_SHOW_TOOLTIP="",rF.MPYTHON_DRILL_DRILL_PRINT_HELPURL="",rF.MPYTHON_DRILL_DRILL_PRINT_MESSAGE0="返回對應鍵值%1",rF.MPYTHON_DRILL_DRILL_PRINT_TOOLTIP="",rF.MPYTHON_DRILL_DRILL_full_line="實線",rF.MPYTHON_DRILL_DRILL_dash_line="破折線",rF.MPYTHON_DRILL_DRILL_chain_line="點劃線",rF.MPYTHON_DRILL_DRILL_imaginary_line="虛線",rF.MPYTHON_DRILL_DRILL_dot="點",rF.MPYTHON_DRILL_DRILL_pixel="像素",rF.MPYTHON_DRILL_DRILL_solid_rim="實心圈",rF.MPYTHON_DRILL_DRILL_down_triangle="下三角",rF.MPYTHON_DRILL_DRILL_up_triangle="上三角",rF.MPYTHON_DRILL_DRILL_right_triangle="右三角",rF.MPYTHON_DRILL_DRILL_left_triangle="左三角",rF.MPYTHON_DRILL_DRILL_down_flower_triangle="下花三角",rF.MPYTHON_DRILL_DRILL_up_flower_triangle="上花三角",rF.MPYTHON_DRILL_DRILL_right_flower_triangle="右花三角",rF.MPYTHON_DRILL_DRILL_left_flower_triangle="左花三角",rF.MPYTHON_DRILL_DRILL_solid_square="實心方形",rF.MPYTHON_DRILL_DRILL_solid_pentagon="實心五角",rF.MPYTHON_DRILL_DRILL_star="星形",rF.MPYTHON_DRILL_DRILL_vertical_hexagon="豎六邊形",rF.MPYTHON_DRILL_DRILL_across_hexagon="橫六邊形",rF.MPYTHON_DRILL_DRILL_cross="十字",rF.MPYTHON_DRILL_DRILL_X="X",rF.MPYTHON_DRILL_DRILL_rhombus="菱形",rF.MPYTHON_DRILL_DRILL_thin_rhombus="瘦菱形",rF.MPYTHON_DRILL_DRILL_vertical_line="垂直線",rF.MPYTHONS_FLOWER_DE_LUCE_INITIALIZE_HELPURL="",rF.MPYTHONS_FLOWER_DE_LUCE_INITIALIZE_MESSAGE0="初始化 鳶尾花數據集",rF.MPYTHONS_FLOWER_DE_LUCE_INITIALIZE_TOOLTIP="採用Python的Sklearn機器學習庫中自帶的數據集——鳶尾花數據集。簡單分析數據集之間特徵的關係圖,根據花瓣長度,花瓣寬度,花萼長度,花萼寬度四個特徵進行繪圖虹膜植物數據集可以從龍骨數據集數據集網站獲取,也可以直接從Sklearn。數據集機器學習包得到。數據集共包含4個特徵變量,1個類別變量,共150個有樣本。類別變量分別對應鳶尾花的三個亞屬,分別是山鳶尾(Iris-setosa),變色鳶尾(Iris-versicolor)和維吉尼亞鳶尾(Iris-virginica)分別用(0,1,2)來做映射",rF.MPYTHONS_FLOWER_DE_LUCE_PCA_HELPURL="",rF.MPYTHONS_FLOWER_DE_LUCE_PCA_MESSAGE0="鳶尾花 主成分分析",rF.MPYTHONS_FLOWER_DE_LUCE_PCA_TOOLTIP="",rF.MPYTHONS_FLOWER_DE_LUCE_FA3D_HELPURL="",rF.MPYTHONS_FLOWER_DE_LUCE_FA3D_MESSAGE0="鳶尾花 因子分析 3D",rF.MPYTHONS_FLOWER_DE_LUCE_FA3D_TOOLTIP="",rF.MPYTHONS_FLOWER_DE_LUCE_FA_HELPURL="",rF.MPYTHONS_FLOWER_DE_LUCE_FA_MESSAGE0="鳶尾花 因子分析",rF.MPYTHONS_FLOWER_DE_LUCE_FA_TOOLTIP="",rF.MPYTHONS_FLOWER_DE_LUCE_PCA_DISPLAY_HELPURL="",rF.MPYTHONS_FLOWER_DE_LUCE_PCA_DISPLAY_MESSAGE0="預測圖示 鳶尾花類型%1 呈現內容 x%3 y%4 呈現種類%2 顏色爲 r%5 g%6 b%7 標題%8 向上合併%9",rF.MPYTHONS_FLOWER_DE_LUCE_PCA_DISPLAY_TOOLTIP="",rF.MPYTHONS_FLOWER_DE_LUCE_DATA_HELPURL="",rF.MPYTHONS_FLOWER_DE_LUCE_DATA_MESSAGE0="預測圖示 呈現內容 x%1 y%2 呈現種類%3 顏色爲 r%4 g%5 b%6 標題%7",rF.MPYTHONS_FLOWER_DE_LUCE_DATA_TOOLTIP="",rF.MPYTHONS_FLOWER_DE_LUCE_DATA3D_HELPURL="",rF.MPYTHONS_FLOWER_DE_LUCE_DATA3D_MESSAGE0="3D 預測圖示 呈現內容 x朝向%1 y朝向%2 z朝向%3 顏色爲 r%4 g%5 b%6 標題%7",rF.MPYTHONS_FLOWER_DE_LUCE_DATA3D_TOOLTIP="",rF.MPYTHONS_FLOWER_DE_LUCE_TITLE_HELPURL="",rF.MPYTHONS_FLOWER_DE_LUCE_TITLE_MESSAGE0="標題%1 字號%2",rF.MPYTHONS_FLOWER_DE_LUCE_TITLE_TOOLTIP="",rF.MPYTHONS_FLOWER_DE_LUCE_LABEL_HELPURL="",rF.MPYTHONS_FLOWER_DE_LUCE_LABEL_MESSAGE0="標籤%1 標題%2 字號%3",rF.MPYTHONS_FLOWER_DE_LUCE_LABEL_TOOLTIP="",rF.MPYTHONS_FLOWER_DE_LUCE_TITLE3D_HELPURL="",rF.MPYTHONS_FLOWER_DE_LUCE_TITLE3D_MESSAGE0="3D 標題%1 字號%2",rF.MPYTHONS_FLOWER_DE_LUCE_TITLE3D_TOOLTIP="",rF.MPYTHONS_FLOWER_DE_LUCE_LABEL3D_HELPURL="",rF.MPYTHONS_FLOWER_DE_LUCE_LABEL3D_MESSAGE0="3D 標籤%1 標題%2 字號%3",rF.MPYTHONS_FLOWER_DE_LUCE_LABEL3D_TOOLTIP="",rF.MPYTHONS_FLOWER_DE_LUCE_LEGEND_HELPURL="",rF.MPYTHONS_FLOWER_DE_LUCE_LEGEND_MESSAGE0="展示圖例",rF.MPYTHONS_FLOWER_DE_LUCE_LEGEND_TOOLTIP="",rF.MPYTHONS_FLOWER_DE_LUCE_SHOW_HELPURL="",rF.MPYTHONS_FLOWER_DE_LUCE_SHOW_MESSAGE0="顯示圖片",rF.MPYTHONS_FLOWER_DE_LUCE_SHOW_TOOLTIP="",rF.MPYTHONS_FLOWER_DE_LUCE_LOAD_IRIS_HELPURL="",rF.MPYTHONS_FLOWER_DE_LUCE_LOAD_IRIS_MESSAGE0="花萼和花瓣的x, y座標",rF.MPYTHONS_FLOWER_DE_LUCE_LOAD_IRIS_TOOLTIP="共150條記錄,分別代表50條山鳶尾(Iris-setosa),變色鳶尾(Iris-versicolor),維吉尼亞鳶尾(Iris-virginica)",rF.MPYTHONS_FLOWER_DE_LUCE_Iris_setosa="山鳶尾",rF.MPYTHONS_FLOWER_DE_LUCE_Iris_versicolor="變色鳶尾",rF.MPYTHONS_FLOWER_DE_LUCE_Iris_virginica="維吉尼亞鳶尾",rF.MPYTHONS_FLOWER_DE_LUCE_scatter_diagram="散點圖",rF.MPYTHONS_FLOWER_DE_LUCE_kde_diagram="kde圖",rF.MPYTHONS_FLOWER_DE_LUCE_box_diagram="箱圖",rF.MPYTHONS_FLOWER_DE_LUCE_merge="合並",rF.MPYTHONS_FLOWER_DE_LUCE_not_merge="不合並",rF.MPYTHONS_FLOWER_DE_LUCE_calyx_length="花萼長度",rF.MPYTHONS_FLOWER_DE_LUCE_calyx_width="花萼寬度",rF.MPYTHONS_FLOWER_DE_LUCE_petal_length="花瓣長度",rF.MPYTHONS_FLOWER_DE_LUCE_petal_width="花瓣寬度",rF.MPYTHONS_CONVERT_PICTURE_HELPURL="",rF.MPYTHONS_CONVERT_PICTURE_MESSAGE0="將圖片轉換爲28²二值圖%1 待處理的圖片存儲路徑%2 處理後的圖片存儲路徑%3 格式%4",rF.MPYTHONS_CONVERT_PICTURE_TOOLTIP="掌控板通過串口把WIF傳給語音助手",rF.MPYTHONS_NUMBER_REPERTOIRE_HELPURL="",rF.MPYTHONS_NUMBER_REPERTOIRE_MESSAGE0="查找解析 手寫數字數 據存儲路徑%1",rF.MPYTHONS_NUMBER_REPERTOIRE_TOOLTIP="使用手寫數字字符庫",rF.MPYTHONS_SHOW_NUMBER_PATH_HELPURL="",rF.MPYTHONS_SHOW_NUMBER_PATH_MESSAGE0="手寫數字圖像 存儲路徑%1",rF.MPYTHONS_SHOW_NUMBER_PATH_TOOLTIP="",rF.MPYTHONS_SHOW_NUMBER_HELPURL="",rF.MPYTHONS_SHOW_NUMBER_MESSAGE0="顯示手寫數字圖像",rF.MPYTHONS_SHOW_NUMBER_TOOLTIP="",rF.MPYTHONS_NUMBER_RECOGNITION_HELPURL="",rF.MPYTHONS_NUMBER_RECOGNITION_MESSAGE0="識別手寫數字圖像 存儲路徑%1",rF.MPYTHONS_NUMBER_RECOGNITION_TOOLTIP="",rF.MPYTHONS_NUMBER_PLACEHOLDER_HELPURL="",rF.MPYTHONS_NUMBER_PLACEHOLDER_MESSAGE0="創建變量%1 初始化 神經網絡張量 變量名%2",rF.MPYTHONS_NUMBER_PLACEHOLDER_TOOLTIP="",rF.MPYTHON_DRILL_RESHAPE_MESSAGE0="創建變量%1 將輸入照片變量%2 轉換爲 神經網絡輸出張量%3",rF.MPYTHON_DRILL_RESHAPE_TOOLTIP="",rF.MPYTHON_DRILL_RESHAPE_HELPURL="",rF.MPYTHON_NUMBER_CONV_WEIGHT_MESSAGE0="創建變量%1 共享變量%2 初始化模式%3",rF.MPYTHON_NUMBER_CONV_WEIGHT_TOOLTIP="",rF.MPYTHON_NUMBER_CONV_WEIGHT_HELPURL="",rF.MPYTHON_NUMBER_INITIALIZER_MESSAGE0="產生截斷正態分佈隨機數 輸出張量%1 標準差%2",rF.MPYTHON_NUMBER_INITIALIZER_TOOLTIP="",rF.MPYTHON_NUMBER_INITIALIZER_HELPURL="",rF.MPYTHON_NUMBER_CONSTANT_MESSAGE0="創建常量 數值%1 輸出張量%2",rF.MPYTHON_NUMBER_CONSTANT_TOOLTIP="",rF.MPYTHON_NUMBER_CONSTANT_HELPURL="",rF.MPYTHON_NUMBER_CONV2D_MESSAGE0="神經網絡輸出張量%1 共享變量%2 步長%3 填充%4",rF.MPYTHON_NUMBER_CONV2D_TOOLTIP="",rF.MPYTHON_NUMBER_CONV2D_HELPURL="",rF.MPYTHON_NUMBER_CONV_BIASES_MESSAGE0="張量%1",rF.MPYTHON_NUMBER_CONV_BIASES_TOOLTIP="",rF.MPYTHON_NUMBER_CONV_BIASES_HELPURL="",rF.MPYTHON_NUMBER_CONV_CONV2D_MESSAGE0="卷積二維層 變量%1 %2",rF.MPYTHON_NUMBER_CONV_CONV2D_TOOLTIP="",rF.MPYTHON_NUMBER_CONV_CONV2D_HELPURL="",rF.MPYTHON_NUMBER_RELU_MESSAGE0="創建變量%1 Relu正向激勵函數 卷積二維層%2",rF.MPYTHON_NUMBER_RELU_TOOLTIP="",rF.MPYTHON_NUMBER_RELU_HELPURL="",rF.MPYTHON_NUMBER_MAX_POOL_MESSAGE0="池化二維層 變量%1 卷積層%2 池化窗口%3 步長%4 填充%5",rF.MPYTHON_NUMBER_MAX_POOL_TOOLTIP="",rF.MPYTHON_NUMBER_MAX_POOL_HELPURL="",rF.MPYTHON_NUMBER_MATMUL_MESSAGE0="兩個參數的對應元素各自相乘 x%1 y%2",rF.MPYTHON_NUMBER_MATMUL_TOOLTIP="",rF.MPYTHON_NUMBER_MATMUL_HELPURL="",rF.MPYTHON_NUMBER_ADD_MESSAGE0="全連接層 變量%1 兩個參數的元素相加 x%2 y%3",rF.MPYTHON_NUMBER_ADD_TOOLTIP="",rF.MPYTHON_NUMBER_ADD_HELPURL="",rF.MPYTHON_NUMBER_SOFTMAX_MESSAGE0="創建變量%1 預測模型準確度 變量名%2",rF.MPYTHON_NUMBER_SOFTMAX_TOOLTIP="",rF.MPYTHON_NUMBER_SOFTMAX_HELPURL="",rF.MPYTHON_NUMBER_REDUCE_MEAN_MESSAGE0="創建變量%1 損失函數%2",rF.MPYTHON_NUMBER_REDUCE_MEAN_TOOLTIP="",rF.MPYTHON_NUMBER_REDUCE_MEAN_HELPURL="",rF.MPYTHON_NUMBER_LOG_MESSAGE0="自然對數 %1",rF.MPYTHON_NUMBER_LOG_TOOLTIP="",rF.MPYTHON_NUMBER_LOG_HELPURL="",rF.MPYTHON_NUMBER_REDUCE_SUM_MESSAGE0="壓縮求和%1 維度%2",rF.MPYTHON_NUMBER_REDUCE_SUM_TOOLTIP="因爲日誌函數是單調遞增的,所以logP (Y | X)也會達到最大值,因此在前面加上負號之後,最大化P (Y | X)就等價於最小化了。",rF.MPYTHON_NUMBER_REDUCE_SUM_HELPURL="https://www.cnblogs.com/guoyaohua/p/9217206.html",rF.MPYTHON_NUMBER_TRAIN_MESSAGE0="優化學習速率 %1",rF.MPYTHON_NUMBER_TRAIN_TOOLTIP="",rF.MPYTHON_NUMBER_TRAIN_HELPURL="",rF.MPYTHON_NUMBER_MINIMIZE_MESSAGE0="創建變量%1 優化張量%2",rF.MPYTHON_NUMBER_MINIMIZE_TOOLTIP="",rF.MPYTHON_NUMBER_MINIMIZE_HELPURL="",rF.MPYTHON_NUMBER_INIT_MESSAGE0="初始化模型 完成",rF.MPYTHON_NUMBER_INIT_TOOLTIP="",rF.MPYTHON_NUMBER_INIT_HELPURL="",rF.MPYTHON_NUMBER_TRAIN_TEST_MESSAGE0="選擇 手寫數字集%1 數量%2",rF.MPYTHON_NUMBER_TRAIN_TEST_TOOLTIP="",rF.MPYTHON_NUMBER_TRAIN_TEST_HELPURL="",rF.MPYTHON_NUMBER_SESSION_RUN_MESSAGE0="啓動數據流圖會話進行計算 會話%1 圖片%2 標籤%3",rF.MPYTHON_NUMBER_SESSION_RUN_TOOLTIP="",rF.MPYTHON_NUMBER_SESSION_RUN_HELPURL="",rF.MPYTHON_NUMBER_SESSION_RUN2_MESSAGE0="啓動數據流圖會話進行計算 會話%1 圖片%2 標籤%3",rF.MPYTHON_NUMBER_SESSION_RUN2_TOOLTIP="",rF.MPYTHON_NUMBER_SESSION_RUN2_HELPURL="",rF.MPYTHON_NUMBER_SESSION_RUN3_MESSAGE0="預測模型%1 擬合度%2 會話%3",rF.MPYTHON_NUMBER_SESSION_RUN3_TOOLTIP="",rF.MPYTHON_NUMBER_SESSION_RUN3_HELPURL="",rF.MPYTHON_NUMBER_EQUAL_MESSAGE0="兩個張量的每一維是否相等 x%1 y%2",rF.MPYTHON_NUMBER_EQUAL_TOOLTIP="",rF.MPYTHON_NUMBER_EQUAL_HELPURL="",rF.MPYTHON_NUMBER_ARGMAX_MESSAGE0="張量%1 按%2比較返回最大值的索引",rF.MPYTHON_NUMBER_ARGMAX_TOOLTIP="",rF.MPYTHON_NUMBER_ARGMAX_HELPURL="",rF.MPYTHON_NUMBER_CAST_MESSAGE0="轉爲浮點型 %1",rF.MPYTHON_NUMBER_CAST_TOOLTIP="",rF.MPYTHON_NUMBER_CAST_HELPURL="",rF.MPYTHONS_NUMBER_SAVER_SAVE_HELPURL="",rF.MPYTHONS_NUMBER_SAVER_SAVE_MESSAGE0="手寫數字識別模型 變量名%1 存儲路徑%2",rF.MPYTHONS_NUMBER_SAVER_SAVE_TOOLTIP="MNIST手寫數字識別模型保存路徑",rF.MPYTHONS_NUMBER_SAVER_RESTORE_HELPURL="",rF.MPYTHONS_NUMBER_SAVER_RESTORE_MESSAGE0="加載模型%1 存儲路徑%2",rF.MPYTHONS_NUMBER_SAVER_RESTORE_TOOLTIP="",rF.MPYTHONS_NUMBER_SAME="包含邊界",rF.MPYTHONS_NUMBER_VALID="不包含邊界",rF.MPYTHONS_NUMBER_train="訓練",rF.MPYTHONS_NUMBER_test="測試",rF.MPYTHONS_NUMBER_row="行",rF.MPYTHONS_NUMBER_rank="列",rF.MPYTHONS_FACE_RECOGNITION_CAMERA_HELPURL="",rF.MPYTHONS_FACE_RECOGNITION_CAMERA_MESSAGE0="調用攝像頭 %1",rF.MPYTHONS_FACE_RECOGNITION_CAMERA_TOOLTIP="調用筆記本內置攝像頭,所以參數爲0,如果有其他的攝像頭可以調整參數爲1,2",rF.MPYTHONS_FACE_RECOGNITION_CAMERA_OFF_HELPURL="",rF.MPYTHONS_FACE_RECOGNITION_CAMERA_OFF_MESSAGE0="關閉攝像頭",rF.MPYTHONS_FACE_RECOGNITION_CAMERA_OFF_TOOLTIP="",rF.MPYTHONS_FACE_RECOGNITION_WINDOWS_DELETE_HELPURL="",rF.MPYTHONS_FACE_RECOGNITION_WINDOWS_DELETE_MESSAGE0="刪除所有窗口",rF.MPYTHONS_FACE_RECOGNITION_WINDOWS_DELETE_TOOLTIP="",rF.MPYTHONS_FACE_RECOGNITION_IMPORT_MODEL_SITE_HELPURL="",rF.MPYTHONS_FACE_RECOGNITION_IMPORT_MODEL_SITE_MESSAGE0="加載模型 存儲路徑%1",rF.MPYTHONS_FACE_RECOGNITION_IMPORT_MODEL_SITE_TOOLTIP="",rF.MPYTHONS_FACE_RECOGNITION_READ_IMAGES_HELPURL="",rF.MPYTHONS_FACE_RECOGNITION_READ_IMAGES_MESSAGE0="從攝像頭讀取圖片",rF.MPYTHONS_FACE_RECOGNITION_READ_IMAGES_TOOLTIP="ret如果有讀取圖片就真的,否則假;第二個參數是框架,是當前截取一幀的圖片。",rF.MPYTHONS_FACE_RECOGNITION_GRAY_IMAGES_HELPURL="",rF.MPYTHONS_FACE_RECOGNITION_GRAY_IMAGES_MESSAGE0="轉爲灰度圖片",rF.MPYTHONS_FACE_RECOGNITION_GRAY_IMAGES_TOOLTIP="",rF.MPYTHONS_FACE_RECOGNITION_DETECTION_FACES_HELPURL="",rF.MPYTHONS_FACE_RECOGNITION_DETECTION_FACES_MESSAGE0="檢測人臉 每次圖像尺寸減小比例%1",rF.MPYTHONS_FACE_RECOGNITION_DETECTION_FACES_TOOLTIP="",rF.MPYTHONS_FACE_DISPLAY_RECOGNITION_ORTHOGON_HELPURL="",rF.MPYTHONS_FACE_DISPLAY_RECOGNITION_ORTHOGON_MESSAGE0="人臉區域顯示矩形框 顏色爲 紅%1 綠%2 藍%3",rF.MPYTHONS_FACE_DISPLAY_RECOGNITION_ORTHOGON_TOOLTIP="",rF.MPYTHONS_FACE_RECOGNITIONR_PSTORAGE_PICTURE_HELPURL="",rF.MPYTHONS_FACE_RECOGNITIONR_PSTORAGE_PICTURE_MESSAGE0="保存圖像 位置%1 ID%2 編號%3",rF.MPYTHONS_FACE_RECOGNITIONR_PSTORAGE_PICTURE_TOOLTIP="",rF.MPYTHONS_FACE_RECOGNITIONR_PRESERVE_PICTURE_HELPURL="",rF.MPYTHONS_FACE_RECOGNITIONR_PRESERVE_PICTURE_MESSAGE0="窗口中顯示圖像 文件名%1",rF.MPYTHONS_FACE_RECOGNITIONR_PRESERVE_PICTURE_TOOLTIP="",rF.MPYTHONS_FACE_RECOGNITIONR_ESC_HELPURL="",rF.MPYTHONS_FACE_RECOGNITIONR_ESC_MESSAGE0="通過esc鍵 退出",rF.MPYTHONS_FACE_RECOGNITIONR_ESC_TOOLTIP="在窗口置頂時使用纔有效果",rF.MPYTHONS_FACE_RECOGNITIONR_HELPURL="",rF.MPYTHONS_FACE_RECOGNITIONR_MESSAGE0="獲得人臉在圖像中的座標值 人臉%1",rF.MPYTHONS_FACE_RECOGNITIONR_TOOLTIP="",rF.MPYTHONS_FACE_RECOGNITION_JUDGE_FACES_HELPURL="",rF.MPYTHONS_FACE_RECOGNITION_JUDGE_FACES_MESSAGE0="是否讀取圖片",rF.MPYTHONS_FACE_RECOGNITION_JUDGE_FACES_TOOLTIP="",rF.MPYTHONS_FACE_RECOGNITION_JUDGE_CAMERA_HELPURL="",rF.MPYTHONS_FACE_RECOGNITION_JUDGE_CAMERA_MESSAGE0="是否打開攝像頭",rF.MPYTHONS_FACE_RECOGNITION_JUDGE_CAMERA_TOOLTIP="",rF.MPYTHONS_FACE_RECOGNITION_ACQUIRE_ID_PICTURE_HELPURL="",rF.MPYTHONS_FACE_RECOGNITION_ACQUIRE_ID_PICTURE_MESSAGE0="獲取照片及id 照片存儲路徑%1",rF.MPYTHONS_FACE_RECOGNITION_ACQUIRE_ID_PICTURE_TOOLTIP="",rF.MPYTHONS_FACE_RECOGNITION_INITIALIZE_TRANI_MODEL_HELPURL="",rF.MPYTHONS_FACE_RECOGNITION_INITIALIZE_TRANI_MODEL_MESSAGE0="初始化訓練模型",rF.MPYTHONS_FACE_RECOGNITION_INITIALIZE_TRANI_MODEL_TOOLTIP="",rF.MPYTHONS_FACE_RECOGNITION_START_DRILL_HELPURL="",rF.MPYTHONS_FACE_RECOGNITION_START_DRILL_MESSAGE0="開始訓練模型",rF.MPYTHONS_FACE_RECOGNITION_START_DRILL_TOOLTIP="",rF.MPYTHONS_FACE_RECOGNITION_STORAGE_DRILL_MODEL_HELPURL="",rF.MPYTHONS_FACE_RECOGNITION_STORAGE_DRILL_MODEL_MESSAGE0="%1訓練模型 存儲路徑%2",rF.MPYTHONS_FACE_RECOGNITION_STORAGE_DRILL_MODEL_TOOLTIP="",rF.MPYTHONS_FACE_RECOGNITION_DRILL_NUMBERS_HELPURL="",rF.MPYTHONS_FACE_RECOGNITION_DRILL_NUMBERS_MESSAGE0="人臉模型訓練 數目",rF.MPYTHONS_FACE_RECOGNITION_DRILL_NUMBERS_TOOLTIP="",rF.MPYTHONS_FACE_RECOGNITION_FONT_HELPURL="",rF.MPYTHONS_FACE_RECOGNITION_FONT_MESSAGE0="窗口顯示 識別的名字%1 設置字體爲%2 顏色爲 紅%3 綠%4 藍%5",rF.MPYTHONS_FACE_RECOGNITION_FONT_TOOLTIP="",rF.MPYTHONS_FACE_RECOGNITION_PERCENT_HELPURL="",rF.MPYTHONS_FACE_RECOGNITION_PERCENT_MESSAGE0="窗口顯示 識別的置信度%1 設置字體爲%2 顏色爲 紅%3 綠%4 藍%5",rF.MPYTHONS_FACE_RECOGNITION_PERCENT_TOOLTIP="",rF.MPYTHONS_FACE_RECOGNITION_FORECAST_FACE_INITIALIZE_HELPURL="",rF.MPYTHONS_FACE_RECOGNITION_FORECAST_FACE_INITIALIZE_MESSAGE0="預測人臉 名字%1 置信度%2",rF.MPYTHONS_FACE_RECOGNITION_FORECAST_FACE_INITIALIZE_TOOLTIP="",rF.MPYTHONS_FACE_RECOGNITION_FORECAST_Write="寫入",rF.MPYTHONS_FACE_RECOGNITION_FORECAST_Read="讀取",rF.MPYTHONS_DIALOGUE_ROBOT_INITIALIZE_HELPURL="",rF.MPYTHONS_DIALOGUE_ROBOT_INITIALIZE_MESSAGE0="初始化 聊天机器人",rF.MPYTHONS_ADIALOGUE_ROBOT_INITIALIZE_TOOLTIP="",rF.MPYTHONS_DIALOGUE_ROBOT_CHOOSE_HELPURL="",rF.MPYTHONS_DIALOGUE_ROBOT_CHOOSE_MESSAGE0="选择训练器 聊天机器人",rF.MPYTHONS_ADIALOGUE_ROBOT_CHOOSE_TOOLTIP="",rF.MPYTHONS_DIALOGUE_ROBOT_START_HELPURL="",rF.MPYTHONS_DIALOGUE_ROBOT_START_MESSAGE0="选择与%1 聊天",rF.MPYTHONS_ADIALOGUE_ROBOT_START_TOOLTIP="",rF.MPYTHONS_ADIALOGUE_ROBOT_CORPUS_HELPURL="",rF.MPYTHONS_ADIALOGUE_ROBOT_CORPUS_TOOLTIP="",rF.MPYTHONS_ADIALOGUE_ROBOT_CORPUS_MESSAGE0="自定义 语料库 %1[%2]",rF.MPYTHONS_ADIALOGUE_ROBOT_MY_FAQs_HELPURL="",rF.MPYTHONS_ADIALOGUE_ROBOT_MY_FAQs_MESSAGE0="输入对话 获得响应 %1",rF.MPYTHONS_ADIALOGUE_ROBOT_MY_FAQs_TOOLTIP="",rF.MPYTHONS_ADIALOGUE_ROBOT_FAQs_RETURN_MESSAGE0="识别响应",rF.MPYTHONS_ADIALOGUE_ROBOT_FAQs_RETURN_TOOLTIP="",rF.MPYTHONS_ADIALOGUE_ROBOT_FAQs_RETURN_HELPURL="",rF.MPYTHONS_ADIALOGUE_ROBOT_CORPUS2_HELPURL="",rF.MPYTHONS_ADIALOGUE_ROBOT_CORPUS2_MESSAGE0="选择跟 %1 聊天",rF.MPYTHONS_ADIALOGUE_ROBOT_CORPUS2_TOOLTIP="",rF.Jenny="珍妮",rF.Jack="杰克",rF.Tom="汤姆",rF.MPYTHONS_ADIALOGUE_ROBOT_FEED_HELPURL="",rF.MPYTHONS_ADIALOGUE_ROBOT_FEED_MESSAGE0="选择 %1 %2 模式%3 %4 喂养%5",rF.MPYTHONS_ADIALOGUE_ROBOT_FEED_TOOLTIP="",rF.MPYTHONS_ADIALOGUE_READ_TRAINING_LIBRARY_HELPURL="",rF.MPYTHONS_ADIALOGUE_READ_TRAINING_LIBRARY_MESSAGE0="查看训练库 选择%1",rF.MPYTHONS_ADIALOGUE_READ_TRAINING_LIBRARY_TOOLTIP="",rF.MPYTHON_GESTURE_RANDOM_NUMBER_HELPURL="",rF.MPYTHON_GESTURE_RANDOM_NUMBER_MESSAGE0="生成随机数 %1",rF.MPYTHON_GESTURE_RANDOM_NUMBER_TOOLTIP="",rF.MPYTHON_AGESTURE_SHOW_WINDOW_HELPURL="",rF.MPYTHON_AGESTURE_SHOW_WINDOW_MESSAGE0="显示窗口",rF.MPYTHON_AGESTURE_SHOW_WINDOW_TOOLTIP="",rF.MPYTHON_AGESTURE_IMSHOW_HELPURL="",rF.MPYTHON_AGESTURE_IMSHOW_MESSAGE0="处理图像 %1",rF.MPYTHON_AGESTURE_IMSHOW_TOOLTIP="",rF.MPYTHON_AGESTURE_TRAIN_MODEL_HELPURL="",rF.MPYTHON_AGESTURE_TRAIN_MODEL_MESSAGE0="选择训练库 knn模型",rF.MPYTHON_AGESTURE_TRAIN_MODEL_TOOLTIP="",rF.MPYTHON_AGESTURE_LOAD_MODEL_HELPURL="",rF.MPYTHON_AGESTURE_LOAD_MODEL_MESSAGE0="载入knn模型 存储路径%1",rF.MPYTHON_AGESTURE_LOAD_MODEL_TOOLTIP="",rF.MPYTHON_AGESTURE_OPEN_IMAGES_HELPURL="",rF.MPYTHON_AGESTURE_OPEN_IMAGES_MESSAGE0="%1打开图片 存储路径%2 图片名%3",rF.MPYTHON_AGESTURE_OPEN_IMAGES_TOOLTIP="",rF.MPYTHON_AGESTURE_ARRAY_MESSAGE0="选择%1 构建特征数据%2",rF.MPYTHON_AGESTURE_ARRAY_TOOLTIP="",rF.MPYTHON_AGESTURE_ARRAY_HELPURL="",rF.MPYTHON_GESTURE_RANDOM_RANK_MESSAGE0="打乱排序%1 ",rF.MPYTHON_GESTURE_RANDOM_RANK_TOOLTIP="",rF.MPYTHON_GESTURE_RANDOM_RANK_HELPURL="",rF.MPYTHON_GESTURE_READ_LEND_MESSAGE0=" %1 图片特征",rF.MPYTHON_GESTURE_READ_LEND_TOOLTIP="",rF.MPYTHON_GESTURE_READ_LEND_HELPURL="",rF.MPYTHON_GESTURE_START_SRAIN_HELPURL="",rF.MPYTHON_GESTURE_START_SRAIN_MESSAGE0="开始训练 手势识别 期望%1 目标%2",rF.MPYTHON_GESTURE_START_SRAIN_TOOLTIP="",rF.MPYTHON_GESTURE_SCORE_HELPURL="",rF.MPYTHON_GESTURE_SCORE_MESSAGE0="进行评分 期望%1 目标%2",rF.MPYTHON_GESTURE_SCORE_TOOLTIP="",rF.MPYTHON_GESTURE_DIMENSIONALITY_REDUCTION_HELPURL="",rF.MPYTHON_GESTURE_DIMENSIONALITY_REDUCTION_TOOLTIP="",rF.MPYTHON_GESTURE_DIMENSIONALITY_REDUCTION_MESSAGE0="%1 数组降维 图片总数%2",rF.MPYTHON_GESTURE_FORECAST_HELPURL="",rF.MPYTHON_GESTURE_FORECAST_TOOLTIP="",rF.MPYTHON_GESTURE_FORECAST_MESSAGE0="预测结果%1",rF.MPYTHON_AGESTURE_SAVE_MODEL_HELPURL="",rF.MPYTHON_AGESTURE_SAVE_MODEL_MESSAGE0="保存模型 存储路径%1",rF.MPYTHON_AGESTURE_SAVE_MODEL_TOOLTIP="",rF.MPYTHON_AGESTURE_FORECAST_PICTURE_HELPURL="",rF.MPYTHON_AGESTURE_FORECAST_PICTURE_MESSAGE0="%1图片 预测图片 ",rF.MPYTHON_AGESTURE_FORECAST_PICTURE_TOOLTIP="",rF.MPYTHON_GESTURE_PICTURE_DIMENSIONALITY_REDUCTION_HELPURL="",rF.MPYTHON_GESTURE_PICTURE_DIMENSIONALITY_REDUCTION_TOOLTIP="",rF.MPYTHON_GESTURE_PICTURE_DIMENSIONALITY_REDUCTION_MESSAGE0="%1 彩色图像降维",rF.MPYTHONS_FACEAI_READ_PICTURE_PATH_HELPURL="",rF.MPYTHONS_FACEAI_READ_PICTURE_PATH_MESSAGE0="选择人脸库 图片存储路径%1",rF.MPYTHONS_FACEAI_READ_PICTURE_PATH_TOOLTIP="",rF.MPYTHONS_FACEAI_RECOGNITION_IMPORT_MODEL_SITE_HELPURL="",rF.MPYTHONS_FACEAI_RECOGNITION_IMPORT_MODEL_SITE_MESSAGE0="加载模型 存储路径%1",rF.MPYTHONS_FACEAI_RECOGNITION_IMPORT_MODEL_SITE_TOOLTIP="",rF.MPYTHONS_FACEAI_FACE_GENDER_DETECTION_RETURN_HELPURL="",rF.MPYTHONS_FACEAI_FACE_GENDER_DETECTION_RETURN_MESSAGE0="第%1位人脸性别结果 置信度",rF.MPYTHONS_FACEAI_FACE_GENDER_DETECTION_RETURN_TOOLTIP="",rF.MPYTHONS_FACEAI_FACE_EMOTION_DETECTION_RETURN_HELPURL="",rF.MPYTHONS_FACEAI_FACE_EMOTION_DETECTION_RETURN_MESSAGE0="第%1位人脸情绪结果 置信度",rF.MPYTHONS_FACEAI_FACE_EMOTION_DETECTION_RETURN_TOOLTIP="",rF.MPYTHONS_FACEAI_FACE_GENDER_RESULT_HELPURL="",rF.MPYTHONS_FACEAI_FACE_GENDER_RESULT_MESSAGE0="第%1位人脸性别 结果",rF.MPYTHONS_FACEAI_FACE_GENDER_RESULT_TOOLTIP="",rF.MPYTHONS_FACEAI_FACE_EMOTION_RESULT_HELPURL="",rF.MPYTHONS_FACEAI_FACE_EMOTION_RESULT_MESSAGE0="第%1位人脸情绪 结果",rF.MPYTHONS_FACEAI_FACE_EMOTION_RESULT_TOOLTIP="",rF.MPYTHON_FACEAI_CHOOSE_FACE_POOL_HELPURL="",rF.MPYTHON_FACEAI_CHOOSE_FACE_POOL_MESSAGE0="选择人脸库 %1",rF.MPYTHON_FACEAI_CHOOSE_FACE_POOL_TOOLTIP="",rF.MPYTHONS_FACEAI_FACE_EMOTION_RETURN_HELPURL="",rF.MPYTHONS_FACEAI_FACE_EMOTION_RETURN_MESSAGE0="第%1位情绪为 %2",rF.MPYTHONS_FACEAI_FACE_EMOTION_RETURN_TOOLTIP="",rF.MPYTHONS_FACEAI_FACE_GENDER_RETURN_HELPURL="",rF.MPYTHONS_FACEAI_FACE_GENDER_RETURN_MESSAGE0="第%1位性别为 %2",rF.MPYTHONS_FACEAI_FACE_GENDER_RETURN_TOOLTIP="",rF.MPYTHONS_FACEAI_FACE_NUMBER_RETURN_HELPURL="",rF.MPYTHONS_FACEAI_FACE_NUMBER_RETURN_MESSAGE0="人脸数量",rF.MPYTHONS_FACEAI_FACE_NUMBER_RETURN_TOOLTIP="",rF.MPYTHONS_FACEAI_FACE_EXPRESSION_RETURN_HELPURL="",rF.MPYTHONS_FACEAI_FACE_EXPRESSION_RETURN_MESSAGE0="表情数量",rF.MPYTHONS_FACEAI_FACE_EXPRESSION_RETURN_TOOLTIP="",rF.MPYTHONS_FACEAI_FACE_RECOGNITION_VEDIO_RETURN_HELPURL="",rF.MPYTHONS_FACEAI_FACE_RECOGNITION_VEDIO_RETURN_MESSAGE0="人脸实时检测 %1",rF.MPYTHONS_FACEAI_FACE_RECOGNITION_VEDIO_RETURN_TOOLTIP="",rF.MPYTHONS_FACEAI_FACE_IMG_RESULT_HELPURL="",rF.MPYTHONS_FACEAI_FACE_IMG_RESULT_MESSAGE0="显示图片",rF.MPYTHONS_FACEAI_FACE_IMG_RESULT_TOOLTIP="",rF.MPYTHONS_FACEAI_CHOOSE_FACE_DATABASE_HELPURL="",rF.MPYTHONS_FACEAI_CHOOSE_FACE_DATABASE_MESSAGE0="选择人脸%1 %2",rF.MPYTHONS_FACEAI_CHOOSE_FACE_DATABASE_TOOLTIP="",rF.MPYTHONS_WORD_CLOUD_INITIALIZE_HELPURL="",rF.MPYTHONS_WORD_CLOUD_INITIALIZE_MESSAGE0="初始化 文章聚类",rF.MPYTHONS_WORD_CLOUD_INITIALIZE_TOOLTIP="",rF.MPYTHONS_WORD_CLOUD_TITLE_HELPURL="文章数量不超过100",rF.MPYTHONS_WORD_CLOUD_TITLE_MESSAGE0="标题 第%1文章",rF.MPYTHONS_WORD_CLOUD_TITLE_TOOLTIP="",rF.MPYTHONS_WORD_CLOUD_CONTENT_HELPURL="文章数量不超过100",rF.MPYTHONS_WORD_CLOUD_CONTENT_MESSAGE0="内容 第%1文章",rF.MPYTHONS_WORD_CLOUD_CONTENT_TOOLTIP="",rF.MPYTHONS_WORD_CLOUD_JIEBA_HELPURL="文章数量不超过100",rF.MPYTHONS_WORD_CLOUD_JIEBA_MESSAGE0="文章内容转为列表 第%1文章",rF.MPYTHONS_WORD_CLOUD_JIEBA_TOOLTIP="",rF.MPYTHONS_WORD_CLOUD_STOPWORD_HELPURL="",rF.MPYTHONS_WORD_CLOUD_STOPWORD_MESSAGE0="读取停词表%1",rF.MPYTHONS_WORD_CLOUD_STOPWORD_TOOLTIP="返回的是100篇文章里的符号",rF.MPYTHONS_WORD_CLOUD_DELETE_AFTER_NEWS_HELPURL="",rF.MPYTHONS_WORD_CLOUD_DELETE_AFTER_NEWS_MESSAGE0="删除后的新闻";rF.MPYTHONS_WORD_CLOUD_DELETE_AFTER_NEWS_TOOLTIP="",rF.MPYTHONS_WORD_CLOUD_THESAURUS_CONSTRUCTION_DATA_HELPURL="",rF.MPYTHONS_WORD_CLOUD_THESAURUS_CONSTRUCTION_DATA_MESSAGE0="构造词云所用的数据",rF.MPYTHONS_WORD_CLOUD_THESAURUS_CONSTRUCTION_DATA_TOOLTIP="",rF.MPYTHONS_WORD_CLOUD_COUNT_RANK_HELPURL="",rF.MPYTHONS_WORD_CLOUD_COUNT_RANK_MESSAGE0="计算总数 排序前%1",rF.MPYTHONS_WORD_CLOUD_COUNT_RANK_TOOLTIP="返回的是100篇文章里的文本",rF.MPYTHONS_WORD_CLOUD_SAVE_PICTURE_HELPURL="",rF.MPYTHONS_WORD_CLOUD_SAVE_PICTURE_MESSAGE0="文章聚类训练结果 保存为图片",rF.MPYTHONS_WORD_CLOUD_SAVE_PICTURE_TOOLTIP="",rF.MPYTHONS_WORD_CLOUD_DISPLAY_PICTURE_HELPURL="",rF.MPYTHONS_WORD_CLOUD_DISPLAY_PICTURE_MESSAGE0="显示图片",rF.MPYTHONS_WORD_CLOUD_DISPLAY_PICTURE_TOOLTIP="",rF.FIRST="第一次",rF.LAST="最后一次",rF.MPYTHON_USOCKET_BLOCK="阻塞",rF.MPYTHON_USOCKET_UNBLOCK="非阻塞",rF.MPYTHON_USOCKET_SETSOCKOPT_HELPURL="http://docs.micropython.org/en/latest/library/usocket.html#usocket.socket",rF.MPYTHON_USOCKET_SETSOCKOPT_MESSAGE0="設定socket %1 地址 %2 類型 %3",rF.MPYTHON_USOCKET_SETSOCKOPT_TOOLTIP="設定給定通訊端選項的值。所需的符號常數在通訊端模塊中定義(SO_ *等)。該值可以是整數或表示緩衝區的類位元組對象。",rF.MPYTHON_USOCKET_READLINE_HELPURL="http://docs.micropython.org/en/latest/library/usocket.html#usocket.socket.accept",rF.MPYTHON_USOCKET_READLINE_MESSAGE0="socket %1 接收一行數據,遇分行符號結束並返回接收數據的對象",rF.MPYTHON_USOCKET_READLINE_TOOLTIP="接收一行數據,遇分行符號結束,並返回接收數據的對象",rF.MPYTHON_USOCKET_READ_HELPURL="http://docs.micropython.org/en/latest/library/usocket.html#usocket.socket.read",rF.MPYTHON_USOCKET_READ_MESSAGE0="從socket %1 讀取 %2 字節並返回字節對象",rF.MPYTHON_USOCKET_READ_TOOLTIP="若未給定讀取數量 ,則按照類似 socket.readall() 的模式運行",rF.MPYTHON_USOCKET_SETBLOCKING_HELPURL="http://docs.micropython.org/en/latest/library/usocket.html#usocket.socket.setblocking",rF.MPYTHON_USOCKET_SETBLOCKING_MESSAGE0="設socket %1 為 %2 模式",rF.MPYTHON_USOCKET_SETBLOCKING_TOOLTIP="",rF.MPYTHON_USOCKET_SETTIMEOUT_HELPURL="http://docs.micropython.org/en/latest/library/usocket.html#usocket.socket.settimeout",rF.MPYTHON_USOCKET_SETTIMEOUT_MESSAGE0="socket %1 設超時時間 %2 秒",rF.MPYTHON_USOCKET_SETTIMEOUT_TOOLTIP="",rF.MPYTHON_USOCKET_RECV_HELPURL="http://docs.micropython.org/en/latest/library/usocket.html#usocket.socket.recv",rF.MPYTHON_USOCKET_RECV_MESSAGE0="socket %1 接收並返回接收到的數據對象 最大數據量為 %2",rF.MPYTHON_USOCKET_RECV_TOOLTIP="",rF.MPYTHON_USOCKET_RECVFROM_HELPURL="http://docs.micropython.org/en/latest/library/usocket.html#usocket.socket.recvfrom",rF.MPYTHON_USOCKET_RECVFROM_MESSAGE0="socket %1 接收並返回接收到的數據元組 最大數據量為 %2",rF.MPYTHON_USOCKET_RECVFROM_TOOLTIP="元組格式 (bytes, address)",rF.MPYTHON_USOCKET_SENDALL_HELPURL="http://docs.micropython.org/en/latest/library/usocket.html#usocket.socket.send",rF.MPYTHON_USOCKET_SENDALL_MESSAGE0="socket %1 連續發送%2 並返回發送的位元組數",rF.MPYTHON_USOCKET_SENDALL_TOOLTIP="將所有數據發送到通訊端。通訊端必須連接到遠程通訊端。與send()此不同,此方法將嘗試通過連續發送數據塊來發送所有數據。",rF.MPYTHON_USOCKET_SENDS_HELPURL="http://docs.micropython.org/en/latest/library/usocket.html#usocket.socket.send",rF.MPYTHON_USOCKET_SENDS_MESSAGE0="socket %1 發送 %2 並返回發送的字節數",rF.MPYTHON_USOCKET_SENDS_TOOLTIP="將數據發送到通訊端。通訊端必須連接到遠程通訊端。返回發送的位元組數,可能小於數據長度(“short write”)。",rF.MPYTHON_USOCKET_SEND_HELPURL="http://docs.micropython.org/en/latest/library/usocket.html#usocket.socket.send",rF.MPYTHON_USOCKET_SEND_MESSAGE0="socket %1 發送 %2 並返回發送的字節數",rF.MPYTHON_USOCKET_SEND_TOOLTIP="Send data to the socket. The socket must be connected to a remote socket. Returns number of bytes sent, which may be smaller than the length of data (“short write”).",rF.MPYTHON_TEXT_ESC_HELPURL="",rF.MPYTHON_TEXT_ESC_MESSAGE0="文本轉義字元 %1 ",rF.MPYTHON_TEXT_ESC_TOOLTIP="文本轉義字元",rF.MPYTHON_USOCKET_SENDTO_HELPURL="http://docs.micropython.org/en/latest/library/usocket.html#usocket.socket.sendto",rF.MPYTHON_USOCKET_SENDTO_MESSAGE0="socket %1 發送 %2 到地址 %3",rF.MPYTHON_USOCKET_SENDTO_TOOLTIP="Send data to the socket. The socket should not be connected to a remote socket, since the destination socket is specified by address.",rF.MPYTHON_USOCKET_CONNECT_HELPURL="http://docs.micropython.org/en/latest/library/usocket.html#usocket.socket.connect",rF.MPYTHON_USOCKET_CONNECT_MESSAGE0="socket %1 連接 host %2 端口 %3",rF.MPYTHON_USOCKET_CONNECT_TOOLTIP="",rF.MPYTHON_USOCKET_GETADDRINFO_HELPURL="http://docs.micropython.org/en/latest/library/usocket.html#usocket.socket.getaddrinfo",rF.MPYTHON_USOCKET_GETADDRINFO_MESSAGE0="解析 host %1 端口 %2 並返回 ip",rF.MPYTHON_USOCKET_GETADDRINFO_TOOLTIP="需聯網",rF.MPYTHON_USOCKET_ACCEPT_HELPURL="http://docs.micropython.org/en/latest/library/usocket.html#usocket.socket.accept",rF.MPYTHON_USOCKET_ACCEPT_MESSAGE0="socket %1 接受連接請求並返回socket元組",rF.MPYTHON_USOCKET_ACCEPT_TOOLTIP="接收連接請求。socket需要指定地址並監聽連接。返回值是 (conn, address)。\nconn:新的socket對象,可以用來收發消息\naddress:連接到服務器的客戶端地址",rF.MPYTHON_USOCKET_LISTEN_HELPURL="http://docs.micropython.org/en/latest/library/usocket.html#usocket.socket.listen",rF.MPYTHON_USOCKET_LISTEN_MESSAGE0="監聽socket %1 backlog個數 %2",rF.MPYTHON_USOCKET_LISTEN_TOOLTIP="backlog :接受套接字的最大个数,至少为0,如果没有指定,则默认一个合理值。",rF.MPYTHON_USOCKET_BIND_HELPURL="http://docs.micropython.org/en/latest/library/usocket.html#usocket.socket.bind",rF.MPYTHON_USOCKET_BIND_MESSAGE0="socket %1 綁定地址 %2 端口 %3",rF.MPYTHON_USOCKET_BIND_TOOLTIP="",rF.MPYTHON_USOCKET_CLOSE_HELPURL="http://docs.micropython.org/en/latest/library/usocket.html#usocket.socket.close",rF.MPYTHON_USOCKET_CLOSE_MESSAGE0="socket %1 關閉",rF.MPYTHON_USOCKET_CLOSE_TOOLTIP="",rF.MPYTHON_USOCKET_INIT_HELPURL="http://docs.micropython.org/en/latest/library/usocket.html#usocket.socket",rF.MPYTHON_USOCKET_INIT_MESSAGE0="創建 socket %1 地址 %2 類型 %3",rF.MPYTHON_USOCKET_INIT_TOOLTIP="AF_INET:=2 — TCP/IP – IPv4\nAF_INET6 :=10 — TCP/IP – IPv6\nSOCK_STREAM:=1 — TCP流\nSOCK_DGRAM:=2 — UDP數據報\nSOCK_RAW :=3 — 原始套接字\nSO_REUSEADDR : =4 — socket可重用\n",rF.MPYTHON_GET_POST_HELPURL="",rF.MPYTHON_GET_POST_MESSAGE0="%1 請求網址 %2 提交字段 %3",rF.MPYTHON_GET_POST_TOOLTIP="",rF.MPYTHON_UREQUESTS_GET_POST_HELPURL="",rF.MPYTHON_UREQUESTS_GET_POST_TOOLTIP="",rF.MPYTHON_UREQUESTS_GET_POST_MESSAGE0="%1 請求網址 %2 提交字段 %3",rF.MPYTHON_UREQUESTS_POST_FILE_HELPURL="",rF.MPYTHON_UREQUESTS_POST_FILE_TOOLTIP="",rF.MPYTHON_UREQUESTS_POST_FILE_MESSAGE0="Post 提交文件 %1 請求網址 %2 文件路徑 %3 Mime類型 %4 附加字段 %5",rF.MPYTHON_RESPONSE_HELPURL="",rF.MPYTHON_RESPONSE_MESSAGE0="響應内容 格式 %1",rF.MPYTHON_RESPONSE_TOOLTIP="",rF.STRING="字符串",rF._BYTE="二进制",rF.TEXT="文本",rF.MPYTHON_RESPONSE_ATTRIBUTE_HELPURL="",rF.MPYTHON_RESPONSE_ATTRIBUTE_MESSAGE0="響應屬性 %1",rF.MPYTHON_RESPONSE_ATTRIBUTE_TOOLTIP="",rF.MPYTHON_SETS_PIN_MODE_HELPURL="https://mpython.readthedocs.io/zh/master/board/hardware.html#mpythonpindesc",rF.MPYTHON_SETS_PIN_MODE_TOOLTIP="右鍵幫助,查看引脚聲明",rF.MPYTHON_SETS_PIN_MODE_MESSAGE0="設置引脚 %1 為 %2 模式 %3 並設置值為 %4",rF.MPYTHON_SET_PIN_IN="輸入",rF.MPYTHON_SET_PIN_PUSH_PULL_OUT="推挽輸出",rF.MPYTHON_SET_PIN_LEAKY_OUT="開漏輸出",rF.MPYTHON_SET_PIN_NO_PULL="無上下拉",rF.MPYTHON_SET_PIN_DOWN_PULL="下拉",rF.MPYTHON_SET_PIN_UP_PULL="上拉",rF.MPYTHON_LOCK_OBJECT_ACQUIRE_LOCK_HELPURL="",rF.MPYTHON_LOCK_OBJECT_ACQUIRE_LOCK_MESSAGE0="綫程鎖對象 %1 請求鎖",rF.MPYTHON_LOCK_OBJECT_ACQUIRE_LOCK_TOOLTIP="",rF.MPYTHON_START_NEW_THREAD_HELPURL="",rF.MPYTHON_START_NEW_THREAD_MESSAGE0="子綫程 %1",rF.MPYTHON_START_NEW_THREAD_TOOLTIP="",rF.MPYTHON_UART_INIT_HELPURL="",rF.MPYTHON_UART_INIT_MESSAGE0="串口 %4 初始化 波特率 %1 tx %2 rx %3",rF.MPYTHON_UART_INIT_TOOLTIP="掌控板支持3組串口。0用於REPL,剩下1,2兩組串口可用。所有引脚皆可作爲串口的輸入RX,除 P2、P3 、P4 、P10 只能作爲輸出,其餘所有的引脚理論上都可作爲輸出 TX。",rF.MPYTHON_UART_DEINIT_HELPURL="",rF.MPYTHON_UART_DEINIT_MESSAGE0="關閉串口 %1",rF.MPYTHON_UART_DEINIT_TOOLTIP="關閉 UART 總線",rF.MPYTHON_UART_WRITE_STR_HELPURL="",rF.MPYTHON_UART_WRITE_STR_MESSAGE0="串口 %1 寫入文本 %2 %3",rF.MPYTHON_UART_WRITE_STR_TOOLTIP="將文本寫入總線。\n返回值:寫入或 None 超時的字節數。",rF.MPYTHON_UART_WRITE_HEX_HELPURL="",rF.MPYTHON_UART_WRITE_HEX_MESSAGE0="串口 %1 發送16進制字符串 %2 %3",rF.MPYTHON_UART_WRITE_HEX_TOOLTIP="",rF.MPYTHON_UART_HAS_DATA_HELPURL="",rF.MPYTHON_UART_HAS_DATA_MESSAGE0="串口 %1 有可讀數據",rF.MPYTHON_UART_HAS_DATA_TOOLTIP="返回一個整數,計算可以無阻塞地讀取的字符數。\n如果沒有可用字符,它將返回0,如果有字符,則返回正數。\n即使有多個可讀的字符,該方法也可以返回1。",rF.MPYTHON_UART_READLINE_HELPURL="",rF.MPYTHON_UART_READLINE_MESSAGE0="串口 %1 讀取一行數據",rF.MPYTHON_UART_READLINE_TOOLTIP="讀一行,以換行符結尾。\n返回值:讀取行或 None 超時。",rF.MPYTHON_UART_READ_HELPURL="",rF.MPYTHON_UART_READ_MESSAGE0="串口 %1 讀取數據",rF.MPYTHON_UART_READ_TOOLTIP="讀取盡可能多的串口數據\n返回值:包含讀入字節的字節列表。若讀取超時則返回 None。",rF.MPYTHON_UART_READ_LENGTH_HELPURL="",rF.MPYTHON_UART_READ_LENGTH_MESSAGE0="串口 %1 讀取數據 長度 %2",rF.MPYTHON_UART_READ_LENGTH_TOOLTIP="讀取指定長度字節數據\n返回值:包含讀入字節的字節列表。若讀取超時則返回 None。",rF.MPYTHON_UART_WRITE_BYTE_HELPURL="",rF.MPYTHON_UART_WRITE_BYTE_MESSAGE0="串口 %1 寫入單字節 %2",rF.MPYTHON_UART_WRITE_BYTE_TOOLTIP="參數為 0~255 的整數\n將字節寫入總線。\n返回值:寫入或 None 超時的字節數。",rF.MPYTHON_UART_WRITE_BYTES_HELPURL="",rF.MPYTHON_UART_WRITE_BYTES_MESSAGE0="串口 %1 寫入字節數組 %2",rF.MPYTHON_UART_WRITE_BYTES_TOOLTIP="將字節數組寫入總線。\n返回值:寫入或 None 超時的字節數。",rF.TEXT_FORMAT_MESSAGE0="格式化字符串 %1 % %2",rF.TEXT_FORMAT_TOOLTIP="",rF.TEXT_FORMAT_HELPURL="",rF.TEXT_FORMAT2_MESSAGE0="格式化字符串 %1 format %2",rF.TEXT_FORMAT2_TOOLTIP="",rF.TEXT_FORMAT2_HELPURL="",rF.MPYTHON_BAUDRATE_HELPURL="",rF.MPYTHON_BAUDRATE_MESSAGE0="%1",rF.MPYTHON_BAUDRATE_TOOLTIP="",rF.MPYTHON_HIGH_LOW_HELPURL="",rF.MPYTHON_HIGH_LOW_MESSAGE0="%1",rF.MPYTHON_HIGH_LOW_TOOLTIP="",rF.MPYTHON_TEN_CONVERT_TO_HELPURL="",rF.MPYTHON_TEN_CONVERT_TO_MESSAGE0="10進制整數 %1 轉化為 %2 字符串",rF.MPYTHON_TEN_CONVERT_TO_TOOLTIP="",rF.MPYTHON_BIN="二進制",rF.MPYTHON_OCT="八進制",rF.MPYTHON_HEX="十六進制",rF.MPYTHON_CONVERT_TO_TEN_HELPURL="",rF.MPYTHON_CONVERT_TO_TEN_MESSAGE0="%1 字符串 %2 轉 10進制整數",rF.MPYTHON_CONVERT_TO_TEN_TOOLTIP="",rF.MPYTHON_TEN_CONVERTED_TO_BYTES_HELPURL="",rF.MPYTHON_TEN_CONVERTED_TO_BYTES_MESSAGE0="10進制整數 %2 轉 %1 字节",rF.MPYTHON_TEN_CONVERTED_TO_BYTES_TOOLTIP="",rF.MPYTHON_INT_TO_CHR_HELPURL="",rF.MPYTHON_INT_TO_CHR_MESSAGE0="整型 %1 轉 ASCII 單字符",rF.MPYTHON_INT_TO_CHR_TOOLTIP="ASCII:基於拉丁字母的一套電腦編碼系統,主要用於顯示現代英語和其他西歐語言",rF.MPYTHON_CHR_TO_INT_HELPURL="",rF.MPYTHON_CHR_TO_INT_MESSAGE0="ASCII 單字符 %1 轉 整型",rF.MPYTHON_CHR_TO_INT_TOOLTIP="ASCII:基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。",rF.MPYTHON_STR_TO_HEX_HELPURL="",rF.MPYTHON_STR_TO_HEX_MESSAGE0="字符串 %1 轉 十六進制 字節",rF.MPYTHON_STR_TO_HEX_TOOLTIP="返回結果中用空格分隔兩個十六進制數",rF.MPYTHON_HEX_TO_BIN_STR_HELPURL="",rF.MPYTHON_HEX_TO_BIN_STR_MESSAGE0="十六進制字符串 %1 轉 二進制 字節",rF.MPYTHON_HEX_TO_BIN_STR_TOOLTIP="",rF.MPYTHON_DATA_TO_BASE64_HELPURL="",rF.MPYTHON_DATA_TO_BASE64_MESSAGE0="%1 以 base64 格式編碼 返回字節對象",rF.MPYTHON_DATA_TO_BASE64_TOOLTIP="",rF.MPYTHON_BASE64_TO_DATA_HELPURL="",rF.MPYTHON_BASE64_TO_DATA_MESSAGE0="解碼 base64 數據 %1 返回字節對象",rF.MPYTHON_BASE64_TO_DATA_TOOLTIP="",rF.MPYTHON_UJSON_DUMPS_HELPURL="",rF.MPYTHON_UJSON_DUMPS_MESSAGE0="%1 轉 json 字符串",rF.MPYTHON_UJSON_DUMPS_TOOLTIP="JSON 格式的 key 必須是字符串 ,value 可以是合法的 JSON 數據類型(字符串, 數字, 對象, 數組, 布爾值或 none)",rF.MPYTHON_UJSON_LOADS_HELPURL="",rF.MPYTHON_UJSON_LOADS_MESSAGE0="解析 json 字符串 %1 返回对象",rF.MPYTHON_UJSON_LOADS_TOOLTIP="JSON 格式的 key 必須是字符串 ,value 可以是合法的 JSON 數據類型(字符串, 數字, 對象, 數組, 布爾值或 none)",rF.MPYTHON_BLYNK_TERMINAL_WIDGET_VPIN_HELPURL="",rF.MPYTHON_BLYNK_TERMINAL_WIDGET_VPIN_MESSAGE0="自定義終端部件 Terminal 虛擬管脚 V %1",rF.MPYTHON_BLYNK_TERMINAL_WIDGET_VPIN_TOOLTIP="",rF.MPYTHON_BLYNK_SYNC_VIRTUAL_HELPURL="",rF.MPYTHON_BLYNK_SYNC_VIRTUAL_MESSAGE0="同步虛擬管脚狀態 V %1",rF.MPYTHON_BLYNK_SYNC_VIRTUAL_TOOLTIP="",rF.MPYTHON_BLYNK_ON_DISCONNECTED_HELPURL="",rF.MPYTHON_BLYNK_ON_DISCONNECTED_MESSAGE0="當 Blynk 斷開連接時",rF.MPYTHON_BLYNK_ON_DISCONNECTED_TOOLTIP="",rF.MPYTHON_BLYNK_ON_CONNECTED_HELPURL="",rF.MPYTHON_BLYNK_ON_CONNECTED_MESSAGE0="當 Blynk 連接時",rF.MPYTHON_BLYNK_ON_CONNECTED_TOOLTIP="",rF.MPYTHON_BLYNKTIMER_RUN_HELPURL="",rF.MPYTHON_BLYNKTIMER_RUN_MESSAGE0="運行 Blynk 定時器進程",rF.MPYTHON_BLYNKTIMER_RUN_TOOLTIP="建議放在 '一直重復' 中循環執行",rF.MPYTHON_BLYNK_RUN_HELPURL="",rF.MPYTHON_BLYNK_RUN_MESSAGE0="運行 Blynk 進程",rF.MPYTHON_BLYNK_RUN_TOOLTIP="建議放在 '一直重復' 中循環執行",rF.MPYTHON_BLYNK_APP_NOTIFY_HELPURL="",rF.MPYTHON_BLYNK_APP_NOTIFY_MESSAGE0="Blynk APP 顯示通知 %1",rF.MPYTHON_BLYNK_APP_NOTIFY_TOOLTIP="",rF.MPYTHON_BLYNKTIMER_HELPURL="",rF.MPYTHON_BLYNKTIMER_MESSAGE0="Blynk 定時器 %1 %2 周期 %3 秒",rF.MPYTHON_BLYNKTIMER_TOOLTIP='注意:\n定時器序號為自動獲取,自上而下,從0開始且連續,不可"定時器0,定時器2",此處暴露參數為方便查看!\n參數:\nno_timers_err=False - 如果所有定時器都停止,禁用異常觸發',rF.MPYTHON_BLYNK_GET_TIMERS_HELPURL="",rF.MPYTHON_BLYNK_GET_TIMERS_MESSAGE0="可用的 Blynk 定時器",rF.MPYTHON_BLYNK_GET_TIMERS_TOOLTIP="",rF.MPYTHON_BLYNK_STOP_TIMERS_HELPURL="",rF.MPYTHON_BLYNK_STOP_TIMERS_MESSAGE0="停止 Blynk 定時器 %1",rF.MPYTHON_BLYNK_STOP_TIMERS_TOOLTIP='注意:\n定時器序號為自動獲取,自上而下,從0開始且連續,不可"定時器0,定時器2",此處暴露參數為方便查看!\n參數:\nno_timers_err=False - 如果所有定時器都停止,禁用異常觸發',rF.MPYTHON_UART_INPUT_HELPURL="",rF.MPYTHON_UART_INPUT_MESSAGE0="從串口獲取文本 提示語句 %1",rF.MPYTHON_UART_INPUT_TOOLTIP="",rF.INT_TO_CHR_HELPURL="",rF.INT_TO_CHR_MESSAGE0="整數 %1 轉 ASCII 單字符",rF.INT_TO_CHR_TOOLTIP="",rF.MPYTHON_BLYNK_SET_PROPERTY_HELPURL="",rF.MPYTHON_BLYNK_SET_PROPERTY_MESSAGE0="給虛擬管脚添加 屬性 %1 值 %2",rF.MPYTHON_BLYNK_SET_PROPERTY_TOOLTIP="放於 read 或 write 事件中,虛擬管脚由事件決定,與該管脚綁定的組件會擁有添加的屬性",rF.MPYTHON_BLYNK_EMAIL_HELPURL="",rF.MPYTHON_BLYNK_EMAIL_MESSAGE0="向預設郵箱發郵件 %1 主題 %2 正文 %3",rF.MPYTHON_BLYNK_EMAIL_TOOLTIP="",rF.MPYTHON_BLYNK_SENSOR_DATA_TO_APP_HELPURL="",rF.MPYTHON_BLYNK_SENSOR_DATA_TO_APP_MESSAGE0="發送數據 %1 到 Blynk APP 的 虛擬管脚 V %2",rF.MPYTHON_BLYNK_SENSOR_DATA_TO_APP_TOOLTIP="虛擬管脚:V0 ~ V255",rF.MPYTHON_BLYNK_SETUP_HELPURL="",rF.MPYTHON_BLYNK_SETUP_MESSAGE0="Blynk 設置 %1 服務器 %2 端口 %3 授權碼 %4",rF.MPYTHON_BLYNK_SETUP_TOOLTIP="服務器可填 blynk-cloud.com 或者 blynk.mpython.cn\n默認端口為 8080\n註意:手機APP訪問端口為 9443",rF.MPYTHON_BLYNK_APP_DATA_HELPURL="",rF.MPYTHON_BLYNK_APP_DATA_MESSAGE0="當 從 Blynk APP 收到 虛擬管腳 V %1 的值 %2 時",rF.MPYTHON_BLYNK_APP_DATA_TOOLTIP="虛擬管脚:V0 ~ V255",rF.MPYTHON_BLYNK_RECEIVED_MESSAGE0="當 收到 Blynk 虛擬管腳 V %1 的值",rF.MPYTHON_BLYNK_VALUE_MESSAGE0="從 Blynk 收到的值",rF.MPYTHON_BLYNK_VALUE_TOOLTIP="",rF.MPYTHON_BLYNK_VALUE_HELPURL="",rF.MPYTHON_ONENET_DISCONNECT_MESSAGE0="OneNET 斷開連接",rF.MPYTHON_ONENET_DISCONNECT_TOOLTIP="",rF.MPYTHON_ONENET_DISCONNECT_HELPURL="",rF.MPYTHON_ONENET_MSG_MESSAGE0="從 OneNET 收到的消息",rF.MPYTHON_ONENET_MSG_TOOLTIP="",rF.MPYTHON_ONENET_MSG_HELPURL="",rF.MPYTHON_ONENET_RECV_MESSAGE0="當 從 OneNET 收到消息 %1 時",rF.MPYTHON3_ONENET_RECV_MESSAGE0="當 從 OneNET 收到消息 時",rF.MPYTHON_ONENET_RECV_TOOLTIP="",rF.MPYTHON_ONENET_RECV_HELPURL="",rF.MPYTHON_ONENET_RECV_MSG_MESSAGE0="當 從 OneNET 收到特定消息 %1 時",rF.MPYTHON_ONENET_RECV_MSG_TOOLTIP="",rF.MPYTHON_ONENET_RECV_MSG_HELPURL="",rF.MPYTHON_ONENET_PUB_VALUE_MESSAGE0="向 OneNET 發送數據流 名稱 %1 值 %2",rF.MPYTHON_ONENET_PUB_VALUE_TOOLTIP="",rF.MPYTHON_ONENET_PUB_VALUE_HELPURL="",rF.MPYTHON_ONENET_PUB_DICT_MESSAGE0="向 OneNET 發送數據流 %1",rF.MPYTHON_ONENET_PUB_DICT_TOOLTIP="",rF.MPYTHON_ONENET_PUB_DICT_HELPURL="",rF.MPYTHON_ONENET_PUB_VALUE2_MESSAGE0="向 小程序 發送數據流 名稱 %1 值 %2",rF.MPYTHON_ONENET_PUB_VALUE2_TOOLTIP="",rF.MPYTHON_ONENET_PUB_VALUE2_HELPURL="",rF.MPYTHON_HCSR04_DISTANCE_HELPURL="https://mpython-lib.readthedocs.io/zh/master/hcsr04/index.html#hcsr04",rF.MPYTHON_HCSR04_DISTANCE_MESSAGE0="%1 hcsr04 超聲波距離 測量單位 %2",rF.MPYTHON_HCSR04_DISTANCE_TOOLTIP="",rF.MPYTHON_HCSR04_DISTANCE_MM_HELPURL="https://mpython-lib.readthedocs.io/zh/master/hcsr04/index.html#hcsr04",rF.MPYTHON_HCSR04_DISTANCE_MM_MESSAGE0="%1 hcsr04 超聲波(mm)",rF.MPYTHON_HCSR04_DISTANCE_MM_TOOLTIP="",rF.MPYTHON_HCSR04_OBJ_HELPURL="https://mpython-lib.readthedocs.io/zh/master/hcsr04/index.html#hcsr04",rF.MPYTHON_HCSR04_OBJ_MESSAGE0="hcsr04 超聲波初始化 名稱 %1 trigger %2 echo %3",rF.MPYTHON_HCSR04_OBJ_TOOLTIP="",rF.MPYTHON_PM2_5_MIC_HELPURL="",rF.MPYTHON_PM2_5_MIC_MESSAGE0="rx引脚%1 PM值濃度%2",rF.MPYTHON_PM2_5_MIC_TOOLTIP="",rF.MPYTHON_PM2_5_LitresAir_HELPURL="",rF.MPYTHON_PM2_5_LitresAir_MESSAGE0="rx引脚%1 0.1昇空氣中直徑在%2 顆粒物個數",rF.MPYTHON_PM2_5_LitresAir_TOOLTIP="",rF.MPYTHON3_IR_REMOTE_RECV_MESSAGE0="當 紅外接收端 %1 收到消息時 %2 執行 %3",rF.MPYTHON_IR_REMOTE_ADDRESS_MESSAGE0="紅外回調地址",rF.MPYTHON_IR_REMOTE_MESSAGE_MESSAGE0="紅外接收內容",rF.MPYTHON_IR_REMOTE_RECV_MESSAGE0="紅外接收 %1 回調地址 %2 回調命令 %3",rF.MPYTHON_IR_REMOTE_RECV_HELPURL="",rF.MPYTHON_IR_REMOTE_RECV_TOOLTIP="",rF.MPYTHON_IR_REMOTE_SEND_MESSAGE0="紅外發送 %1 地址 %2 命令 %3",rF.MPYTHON_IR_REMOTE_SEND_HELPURL="",rF.MPYTHON_IR_REMOTE_SEND_TOOLTIP="",rF.MPYTHON_ONENET_ACCEPT_MESSAGE="收到消息",rF.MPYTHON_ONENET="OneNET 設置",rF.MPYTHON_ONENET_WECHAT_APP="小程序 设置",rF.MPYTHON_ONENET_OPTION_BOARDS="可選掌控板",rF.MPYTHON_ONENET_TITLE="OneNET",rF.MPYTHON_SERVER="服務器",rF.MPYTHON_DEVICE_ID="設備ID",rF.MPYTHON_PRODUCT_ID="產品ID",rF.MPYTHON_API_KEY="產品APIKey",rF.MPYTHON_ONENET_CALLBACK="回調函數",rF.MPYTHON_TOPIC="主題",rF.MPYTHON_ONENET_CALLBACK_TITLE="OneNET回調函數",rF.MPYTHON_ONENET_OPTION_BOARDS_HELPURL="",rF.MPYTHON_ONENET_OPTION_BOARDS_MESSAGE0="小程序 選擇掌控板應用 %1",rF.MPYTHON_ONENET_OPTION_BOARDS_TOOLTIP="",rF.TEXT_TO_BYTE_MESSAGE0="轉字節 %1",rF.TEXT_TO_BYTE_TOOLTIP="支持數據類型:string",rF.TEXT_TO_BYTE_HELPURL="",rF.OTHER_TO_BYTE_MESSAGE0="非文本轉字節 %1",rF.OTHER_TO_BYTE_TOOLTIP="",rF.OTHER_TO_BYTE_HELPURL="",rF.MPYTHON_BYTES_DECODE_HELPURL="",rF.MPYTHON_BYTES_DECODE_MESSAGE0="字節 %1 轉 字符串",rF.MPYTHON_BYTES_DECODE_TOOLTIP="",rF.MPYTHON_ONENET_TOOLTIP="創建OneNET連接",rF.MPYTHON_ONENET_INIT_WIFI_MESSAGE0="物聯網 確保連接到 Wi-Fi 名稱 %1 密碼 %2",rF.MPYTHON_ONENET_INIT_WIFI_TOOLTIP="",rF.MPYTHON_ONENET_INIT_WIFI_HELPURL="",rF.MPYTHON_ONENET_RECV_FROM_WECHAT_APP_HELPURL="",rF.MPYTHON_ONENET_RECV_FROM_WECHAT_APP_MESSAGE0="儅從小程序收到消息 %1 和 %2 時",rF.MPYTHON_ONENET_RECV_FROM_WECHAT_APP_TOOLTIP="",rF.MPYTHON_MAC_ADDRESS_HELPURL="",rF.MPYTHON_MAC_ADDRESS_MESSAGE0="MAC 地址",rF.MPYTHON_MAC_ADDRESS_TOOLTIP="",rF.MPYTHON_RADIO_REC_HELPURL="",rF.MPYTHON_RADIO_REC_MESSAGE0="無綫廣播 接收消息",rF.MPYTHON_RADIO_REC_TOOLTIP="所接收為字節型",rF.MPYTHON_RADIO_SEND_HELPURL="",rF.MPYTHON_RADIO_SEND_MESSAGE0="無綫廣播 發送 %1",rF.MPYTHON_RADIO_SEND_TOOLTIP="頻道: 1~13",rF.MPYTHON_RADIO_CHANNEL_HELPURL="",rF.MPYTHON_RADIO_CHANNEL_MESSAGE0="設無綫廣播 頻道為 %1",rF.MPYTHON_RADIO_CHANNEL_TOOLTIP="頻道: 1~13",rF.MPYTHON_RADIO_ON_OFF_HELPURL="",rF.MPYTHON_RADIO_ON_OFF_MESSAGE0="%1 無綫廣播",rF.MPYTHON_RADIO_ON_OFF_TOOLTIP="頻道: 1~13",rF.MPYTHON_RADIO_MSG_MESSAGE0="收到的無線廣播消息",rF.MPYTHON_RADIO_MSG_TOOLTIP="",rF.MPYTHON_RADIO_MSG_HELPURL="",rF.MPYTHON3_RADIO_RECV_MESSAGE0="當 收到無線廣播消息 時 %1 執行 %2",rF.MPYTHON_RADIO_RECV_MESSAGE0="當 收到無線廣播消息 %1 時",rF.MPYTHON_RADIO_RECV_TOOLTIP="頻道: 1~13",rF.MPYTHON_RADIO_RECV_HELPURL="",rF.MPYTHON_RADIO_RECV_MSG_MESSAGE0="當 收到特定無線廣播消息 %1 時 %2 執行 %3",rF.MPYTHON_RADIO_RECV_MSG_TOOLTIP="頻道: 1~13",rF.MPYTHON_RADIO_RECV_MSG_HELPURL="",rF.MPYTHON_UDP_INIT_HELPURL="",rF.MPYTHON_UDP_INIT_MESSAGE0="建立 UDP 連接",rF.MPYTHON_UDP_INIT_TOOLTIP="UDP連接基於Wi-Fi",rF.MPYTHON_UDP_SEND_HELPURL="",rF.MPYTHON_UDP_SEND_MESSAGE0="UDP 群發消息 %1",rF.MPYTHON_UDP_SEND_TOOLTIP="",rF.MPYTHON_UDP_SENDTO_HELPURL="",rF.MPYTHON_UDP_SENDTO_MESSAGE0="UDP 發送消息 %1 到 %2 端口 %3",rF.MPYTHON_UDP_SENDTO_TOOLTIP="",rF.MPYTHON_UDP_RECV_HELPURL="",rF.MPYTHON_UDP_RECV_MESSAGE0="UDP 接收消息",rF.MPYTHON_UDP_RECV_TOOLTIP="",rF.MPYTHON_UDP_RECV_EVENT_HELPURL="",rF.MPYTHON_UDP_RECV_EVENT_MESSAGE0="當從 UDP 收到消息時 %1 執行 %2",rF.MPYTHON_UDP_RECV_EVENT_TOOLTIP="",rF.MPYTHON_UDP_RECV_MSG_MESSAGE0="從 UDP 收到的消息",rF.MPYTHON_UDP_RECV_MSG_TOOLTIP="",rF.MPYTHON_UDP_RECV_MSG_HELPURL="",rF.MPYTHON_AUDIO_PLAY_chirp_MESSAGE0="鳥叫",rF.MPYTHON_AUDIO_PLAY_Pianodarkmelodies_MESSAGE0="鋼琴黑暗旋律配樂",rF.MPYTHON_AUDIO_PLAY_miaow_MESSAGE0="貓叫",rF.MPYTHON_AUDIO_PLAY_bark_MESSAGE0="小狗吠叫",rF.MPYTHON_AUDIO_PLAY_Arichpercussivesound_MESSAGE0="渾厚的打擊音",rF.MPYTHON_AUDIO_PLAY_Soundeffectsfortension_MESSAGE0="緊張效果的音效",rF.MPYTHON_AUDIO_PLAY_Camerashuttersound_MESSAGE0="拍照快門聲",rF.MPYTHON_AUDIO_PLAY_Hundredsofflies_MESSAGE0="數百只蒼蠅",rF.MPYTHON_AUDIO_PLAY_Cricketscry_MESSAGE0="蟋蟀叫聲",rF.MPYTHON_AUDIO_PLAY_Shakethebassline_MESSAGE0="搖晃低音聲線",rF.MPYTHON_AUDIO_PLAY_audiencecheeredandclapped_MESSAGE0="聽眾歡呼掌聲",rF.MPYTHON_AUDIO_PLAY_Cruiseshipwhistle_MESSAGE0="郵輪汽笛",rF.MPYTHON_AUDIO_PLAY_Moderntelephoneringtone_MESSAGE0="現代電話鈴聲",rF.MPYTHON_AUDIO_PLAY_pullingtradish_MESSAGE0="拔蘿蔔",rF.MPYTHON_AUDIO_PLAY_twotigers_MESSAGE0="兩只老虎",rF.MPYTHON_AUDIO_SET_VOLUME_HELPURL="",rF.MPYTHON_AUDIO_SET_VOLUME_MESSAGE0="設音頻音量 %1",rF.MPYTHON_AUDIO_SET_VOLUME_TOOLTIP="",rF.MPYTHON_DISPCHAR_MODE_1="普通",rF.MPYTHON_DISPCHAR_MODE_2="反轉",rF.MPYTHON_DISPCHAR_MODE_3="透明",rF.MPYTHON_AUDIO_XUNFEI_TTS_HELPURL="",rF.MPYTHON_AUDIO_XUNFEI_TTS_MESSAGE0="TTS 語音播放 %1",rF.MPYTHON_AUDIO_XUNFEI_TTS_TOOLTIP="需要在 訊飛開放平臺 www.xfyun.cn 上開通“在線語音合成”服務",rF.MPYTHON_AUDIO_XUNFEI_TTS_CONFIG_HELPURL="https://mpython.readthedocs.io/zh/master/extboard/tutorials/tutorials_parrot.html#id3",rF.MPYTHON_AUDIO_XUNFEI_TTS_CONFIG_MESSAGE0="TTS 語音配置 APPID %1 APIKey %2",rF.MPYTHON_AUDIO_XUNFEI_TTS_CONFIG_TOOLTIP="輸入在 訊飛開放平臺 www.xfyun.cn 獲取的 APPID 與 APIKey\n註意:要設置IP白名單",rF.MPYTHON_AUDIO_PLAY_HELPURL="https://mpython.readthedocs.io/zh/master/library/mPython/audio.html#id1",rF.MPYTHON_AUDIO_PLAY_MESSAGE0="音頻 播放 %1",rF.MPYTHON_AUDIO_PLAY_TOOLTIP="需要有源音箱\nP8 左聲道\nP9 右聲道\nGND 接地\n播放參數: \n網絡 MP3 的 url 或已上傳至掌控板的 MP3, 如'music_1.mp3' ",rF.MPYTHON_AUDIO_PLAY_CHOOSE_HELPURL="https://mpython.readthedocs.io/zh/master/library/mPython/audio.html#id1",rF.MPYTHON_AUDIO_PLAY_CHOOSE_MESSAGE0="音頻 播放 %1",rF.MPYTHON_AUDIO_PLAY_CHOOSE_TOOLTIP="需要有源音箱\nP8 左聲道\nP9 右聲道\nGND 接地\n播放參數: \n網絡 MP3 的 url 或已上傳至掌控板的 MP3, 如'music_1.mp3' ",rF.MPYTHON_AUDIO_DEINIT_HELPURL="",rF.MPYTHON_AUDIO_DEINIT_MESSAGE0="音頻 釋放緩存",rF.MPYTHON_AUDIO_DEINIT_TOOLTIP="",rF.MPYTHON_AUDIO_CMD_HELPURL="",rF.MPYTHON_AUDIO_CMD_MESSAGE0="音頻 %1",rF.MPYTHON_AUDIO_CMD_TOOLTIP="",rF.MPYTHON_AUDIO_INIT_HELPURL="",rF.MPYTHON_AUDIO_INIT_MESSAGE0="音頻 初始化",rF.MPYTHON_AUDIO_INIT_TOOLTIP="為音頻解碼開闢緩存",rF.MPYTHON_AUDIO_START_RECORDING_HELPURL="",rF.MPYTHON_AUDIO_START_RECORDING_MESSAGE0="開始錄音 錄音時長%1秒",rF.MPYTHON_AUDIO_START_RECORDING_TOOLTIP="需要掌控板v1.1以上硬件版本,錄音時長不能超過5秒",rF.MPYTHON_AUDIO_RECORDING_RESULT_HELPURL="",rF.MPYTHON_AUDIO_RECORDING_RESULT_MESSAGE0="錄音結果",rF.MPYTHON_AUDIO_RECORDING_RESULT_TOOLTIP="需要掌控板v1.1以上硬件版本。",rF.MPYTHON_AUDIO_DISCERN_RECORDING_HELPURL="",rF.MPYTHON_AUDIO_DISCERN_RECORDING_MESSAGE0="將 %1 進行識別",rF.MPYTHON_AUDIO_DISCERN_RECORDING_TOOLTIP="需要掌控板v1.1以上硬件版本。",rF.MPYTHON_AUDIO_DISCERN_RECORDING_RESULT_HELPURL="",rF.MPYTHON_AUDIO_DISCERN_RECORDING_RESULT_MESSAGE0="識別錄音結果",rF.MPYTHON_AUDIO_DISCERN_RECORDING_RESULT_TOOLTIP="需要掌控板v1.1以上硬件版本。",rF.MPYTHON_RECORD_INIT_HELPURL="",rF.MPYTHON_RECORD_INIT_MESSAGE0="錄音 初始化",rF.MPYTHON_RECORD_INIT_TOOLTIP="錄音初始化。\n需要掌控板v1.1以上硬件版本。",rF.MPYTHON_RECORD_DEINIT_HELPURL="",rF.MPYTHON_RECORD_DEINIT_MESSAGE0="錄音 釋放資源",rF.MPYTHON_RECORD_DEINIT_TOOLTIP="錄音結束後釋放資源。\n需要掌控板v1.1以上硬件版本。",rF.MPYTHON_RECORD_WAV_HELPURL="",rF.MPYTHON_RECORD_WAV_MESSAGE0="錄制音頻 存儲路徑 %1 時長 %2 秒",rF.MPYTHON_RECORD_WAV_TOOLTIP="錄制音頻,並以 WAV 格式存儲。\n需要掌控板v1.1以上硬件版本。",rF.MPYTHON_ASR_HELPURL="",rF.MPYTHON_ASR_MESSAGE0="識別 %1 秒語音指令",rF.MPYTHON_ASR_TOOLTIP="可以識別3秒內的語音指令。\n需要掌控板v1.1以上硬件版本。",rF.mpython_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",rF.mpython_button_A="P5(按鍵A)",rF.mpython_button_B="P11(按鍵B)",rF.mpython_PIN7_RGB="P7(板載RGB)",rF.MPYTHON_PWM_PIN_P7="P7 (掌控板)",rF.MPYTHON_PWM_PIN_P9="P9 (掌控實驗箱)",rF.mpython_tem="溫度",rF.mpython_hum="濕度",rF.mpython_pre="氣壓",rF.mpython_left_right="左右",rF.MPYTHON_LEFT="左",rF.MPYTHON_RIGHT="右",rF.mpython_front_back="前後",rF.mpython_vertical="垂直",rF.mpython_horizontal="水平",rF.mpython_run_in_back="後臺運行",rF.mpython_run_in_front="前臺運行",rF.mpython_draw="繪制",rF.mpython_clear="清除",rF.mpython_s="秒",rF.mpython_ms="毫秒",rF.mpython_us="微秒",rF.mpython_year="年",rF.mpython_month="月",rF.mpython_date="日",rF.mpython_hour="時",rF.mpython_minute="分",rF.mpython_week="星期數",rF.mpython_days="天數",rF.MPYTHON_ORDER="第",rF.MPYTHON_REVERSE_ORDER="倒數第",rF.MATH_RANDOM_RANDRANGE_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",rF.MATH_RANDOM_RANDRANGE_TOOLTIP="返回指定遞增基數集合中的一個隨機數,基數缺省值為1",rF.MATH_RANDOM_RANDRANGE_MESSAGE0="隨機數 從遞增區間 [%1 ,%2) 遞增步長%3",rF.MATH_KEEP_DECIMAL_HELPURL="",rF.MATH_KEEP_DECIMAL_TOOLTIP="",rF.MATH_KEEP_DECIMAL_MESSAGE0="%1 保留 %2 位小數",rF.MPYTHON_MIN="最小值",rF.MPYTHON_MAX="最大值",rF.MPYTHON_LENTH="長度",rF.TUPLE_MIN_MAX_LEN_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",rF.TUPLE_MIN_MAX_LEN_TOOLTIP="",rF.TUPLE_MIN_MAX_LEN_MESSAGE0="元組 %1 %2",rF.TUPLE_ITEM_EXIST_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",rF.TUPLE_ITEM_EXIST_TOOLTIP="",rF.TUPLE_ITEM_EXIST_MESSAGE0="元組%1 包含%2",rF.LIST_ITEM_EXIST_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",rF.LIST_ITEM_EXIST_TOOLTIP="",rF.LIST_ITEM_EXIST_MESSAGE0="列表%1 包含%2",rF.PARTS_OF_TUPLE_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",rF.PARTS_OF_TUPLE_TOOLTIP="正序計數從0開始,倒序計數從1開始",rF.PARTS_OF_TUPLE_MESSAGE0="返回元組%1 取第%2 項到尾項",rF.PARTS_OF_TUPLE2_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",rF.PARTS_OF_TUPLE2_TOOLTIP="遞增順序取項\n舉例:\n 倒數第5到倒數第2;\n 第0到第5",rF.PARTS_OF_TUPLE2_MESSAGE0="返回元組%1 取%2 %3 項到 %4 %5 項",rF.PARTS_OF_LIST_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",rF.PARTS_OF_LIST_TOOLTIP="遞增順序取項\n舉例:\n 倒數第5到倒數第2;\n 第0到第5",rF.PARTS_OF_LIST_MESSAGE0="返回列表%1 取%2 %3 項到 %4 %5 項",rF.LIST_TO_TUPLE_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",rF.LIST_TO_TUPLE_TOOLTIP="",rF.LIST_TO_TUPLE_MESSAGE0="列表%1 轉元組",rF.tuple_create_with_MESSAGE0="定義元組 %1 = %2 ",rF.tuple_create_with_TOOLTIP="只包含一個元素時,需要在元素後面添加逗號",rF.tuple_create_with_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",rF.tuple_order_item_MESSAGE0="元組%1 %2 %3 項",rF.tuple_order_item_TOOLTIP="正序計數從0開始,倒序計數從1開始",rF.tuple_order_item_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",rF.LIST_ORDER_ITEM_MESSAGE0="列表%1 %2 %3 項",rF.LIST_ORDER_ITEM_TOOLTIP="正序計數從0開始,倒序計數從1開始",rF.LIST_ORDER_ITEM_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",rF.SET_LIST_ORDER_ITEM_MESSAGE0="設列表%1 %2 %3 項為%4",rF.SET_LIST_ORDER_ITEM_TOOLTIP="正序計數從0開始,倒序計數從1開始",rF.SET_LIST_ORDER_ITEM_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",rF.INSERT_LIST_ORDER_ITEM_MESSAGE0="插入列表%1 %2 %3 項為%4",rF.INSERT_LIST_ORDER_ITEM_TOOLTIP="正序計數從0開始,倒序計數從1開始",rF.INSERT_LIST_ORDER_ITEM_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",rF.SET_TUPLE_ORDER_ITEM_MESSAGE0="設元組%1 %2 %3 項為%4",rF.SET_TUPLE_ORDER_ITEM_TOOLTIP="正序計數從0開始,倒序計數從1開始",rF.SET_TUPLE_ORDER_ITEM_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",rF.DICT_CREATE_WITH_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",rF.DICT_CREATE_WITH_TOOLTIP="",rF.DICT_CREATE_WITH_MESSAGE0="定義字典 %1 = %2",rF.SET_CREATE_WITH_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",rF.SET_CREATE_WITH_TOOLTIP="",rF.SET_CREATE_WITH_MESSAGE0="定義集合 %1 = %2",rF.SET_UPDATE_WITH_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",rF.SET_UPDATE_WITH_TOOLTIP="添加參數可為字符串、列表、元組、集合、字典(只添加key),已有元素則不進行操作",rF.SET_UPDATE_WITH_MESSAGE0="集合 %1 添加 %2",rF.INTERSECTION_OF_SETS_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",rF.INTERSECTION_OF_SETS_TOOLTIP="",rF.INTERSECTION_OF_SETS_MESSAGE0="取 %1 集合 %2 集合 %3",rF.MPYTHON_INTERSECTION="交集",rF.MPYTHON_UNION="並集",rF.MPYTHON_DIFFERENCE="差集",rF.SETS_UPDATE_WAYS_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",rF.SETS_UPDATE_WAYS_TOOLTIP="",rF.SETS_UPDATE_WAYS_MESSAGE0="集合 %1 更新為 與集合 %2 的 %3",rF.SUBSET_SUPERSET_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",rF.SUBSET_SUPERSET_TOOLTIP="",rF.SUBSET_SUPERSET_MESSAGE0="集合 %1 為集合 %2 的 %3",rF.MPYTHON_SUBSET="子集",rF.MPYTHON_SUPERSET="超集",rF.LEN_OF_SETS_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",rF.LEN_OF_SETS_TOOLTIP="",rF.LEN_OF_SETS_MESSAGE0="集合 %1 長度",rF.GET_SETS_POP_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",rF.GET_SETS_POP_TOOLTIP="",rF.GET_SETS_POP_MESSAGE0="返回隨機項並移除之 從集合 %1",rF.CREATE_EMPTY_SET_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",rF.CREATE_EMPTY_SET_TOOLTIP="",rF.CREATE_EMPTY_SET_MESSAGE0="創建空集合 %1",rF.BIT_INVERSION_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",rF.BIT_INVERSION_TOOLTIP="對數據的每個二進制位取反",rF.BIT_INVERSION_MESSAGE0="二進制取反 %1",rF.TUPLE_CREATE_WITH_ITEMS_INSERT_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",rF.TUPLE_CREATE_WITH_ITEMS_INSERT_TOOLTIP="正序計數從0開始,倒序計數從1開始",rF.SET_CREATE_WITH_ITEMS_INSERT_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",rF.SET_CREATE_WITH_ITEMS_INSERT_TOOLTIP="項可為字符串、已賦值變量、元組",rF.DICT_CREATE_WITH_ITEMS_INSERT_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",rF.DICT_CREATE_WITH_ITEMS_INSERT_TOOLTIP="正序計數從0開始,倒序計數從1開始",rF.DICT_KEY_VALUE_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",rF.DICT_KEY_VALUE_TOOLTIP="",rF.DICT_KEY_VALUE_MESSAGE0="字典%1 鍵%2 的值",rF.ADD_DICT_KEY_VALUE_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",rF.ADD_DICT_KEY_VALUE_TOOLTIP="已有該鍵則更新該鍵",rF.ADD_DICT_KEY_VALUE_MESSAGE0="字典%1 添加鍵%2 值%3",rF.DICT_LENGTH_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",rF.DICT_LENGTH_TOOLTIP="",rF.DICT_LENGTH_MESSAGE0="字典%1 長度",rF.DICT_KEY_EXIST_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",rF.DICT_KEY_EXIST_TOOLTIP="",rF.DICT_KEY_EXIST_MESSAGE0="字典%1 包含鍵%2",rF.DICT_KEY_OR_VAL_LIST_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",rF.DICT_KEY_OR_VAL_LIST_TOOLTIP="",rF.DICT_KEY_OR_VAL_LIST_MESSAGE0="字典%1 %2的列表",rF.DICT_KEYS="鍵",rF.DICT_VALUES="值",rF.mpython_lists_append_MESSAGE0="列表%1 末尾添加項%2",rF.mpython_lists_append_TOOLTIP="",rF.mpython_lists_append_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",rF.mpython_lists_extend_MESSAGE0="列表%1 追加列表%2",rF.mpython_lists_extend_TOOLTIP="",rF.mpython_lists_extend_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",rF.mpython_lists_clear_MESSAGE0="列表%1 清空",rF.mpython_lists_clear_TOOLTIP="",rF.mpython_lists_clear_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",rF.MPYTHON_REMOVE_REPETITION_MESSAGE0="列表%1 移除重複",rF.MPYTHON_REMOVE_REPETITION_TOOLTIP="",rF.MPYTHON_REMOVE_REPETITION_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",rF.mpython_Timer_value_MESSAGE0="定時器 %1 的計數值",rF.mpython_Timer_value_TOOLTIP="獲取並返回計時器當前計數值",rF.mpython_Timer_deinit_MESSAGE0="清除 定時器/事件 %1",rF.mpython_Timer_deinit_TOOLTIP="取消定時器的初始化。停止計時器,並禁用計時器外圍設備",rF.mpython_Interrupt_AB_HELPURL="https://mpython.readthedocs.io/zh/latest/tutorials/basics/buttons.html#id3",rF.mpython_Interrupt_AB_TOOLTIP="",rF.mpython_Interrupt_AB_MESSAGE0="當按鍵 %1 被 %2 時",rF.mpython_Interrupt_pin_HELPURL="https://mpython.readthedocs.io/zh/latest/tutorials/basics/io/digital_io.html#id3",rF.mpython_Interrupt_pin_TOOLTIP="上升沿觸發:由低電平到高電平;下降沿觸發:由高電平到低電平",rF.mpython_Interrupt_pin_MESSAGE0="當引腳 %1 電平 %2 時",rF.mpython_Interrupt_pin_IRQ_FALLING="↘ 從高到低",rF.mpython_Interrupt_pin_IRQ_RISING="↗ 從低到高",rF.mpython_IRQ_FALLING="按下",rF.mpython_IRQ_RISING="松開",rF.mpython_PERIODIC="重復執行",rF.mpython_ONE_SHOT="延時執行",rF.MPYTHON_IS_SHAKED_MESSAGE0="掌控板 %1",rF.MPYTHON_IS_SHAKED_HELPURL="",rF.MPYTHON_IS_SHAKED_TOOLTIP="",rF.MPYTHON_IS_SHAKED="被搖晃",rF.MPYTHON_IS_THROWN="被拋起",rF.MPYTHON_SHAKE_DETECTOR_MESSAGE0="當掌控板 %1 時",rF.MPYTHON_SHAKE_DETECTOR_HELPURL="",rF.MPYTHON_SHAKE_DETECTOR_TOOLTIP="",rF.MPYTHON_IS_TILTED_MESSAGE0="掌控板 %1",rF.MPYTHON_IS_TILTED_HELPURL="",rF.MPYTHON_IS_TILTED_TOOLTIP="",rF.MPYTHON_TILT_DETECTOR_MESSAGE0="當掌控板 %1 時",rF.MPYTHON_TILT_DETECTOR_HELPURL="",rF.MPYTHON_TILT_DETECTOR_TOOLTIP="",rF.MPYTHON_DIRECTION_FORWARD="向前傾斜",rF.MPYTHON_DIRECTION_BACK="向後傾斜",rF.MPYTHON_DIRECTION_RIGHT="向右傾斜",rF.MPYTHON_DIRECTION_LEFT="向左傾斜",rF.MPYTHON_DIRECTION_NONE="平放",rF.MPYTHON_TOUCH_EVENT_MESSAGE0="當觸摸鍵 %1 被 %2 時",rF.MPYTHON_TOUCH_EVENT_HELPURL="",rF.MPYTHON_TOUCH_EVENT_TOOLTIP="",rF.MPYTHON_TOUCH_EVENT_PRESSED="觸摸",rF.MPYTHON_TOUCH_EVENT_UNPRESSED="釋放",rF.MPYTHON_CUSTOM_EVENT_MESSAGE0="事件 %1 : 當 %2 時",rF.MPYTHON_CUSTOM_EVENT_HELPURL="",rF.MPYTHON_CUSTOM_EVENT_TOOLTIP="自定義事件與定時器共用 1/2/4/7/8/9/10,不可同時占用一個端口。\n最大同時創建4個事件/定時器,如果存在沖突,請嘗試換一個編號。",rF.mpython_music_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",rF.mpython_music_range_pitch_TOOLTIP="時長為單個頻率的時長",rF.mpython_music_range_pitch_MESSAGE0="播放音調 從%1 到%2 步長%3 時長%4 毫秒 引脚 %5",rF.mpython_neopixel_init_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",rF.mpython_neopixel_init_TOOLTIP="",rF.mpython_neopixel_init_MESSAGE0="燈帶初始化 名稱%1 引腳%2 數量%3",rF.MPYTHON_NEOPIXEL_RAINBOW_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",rF.MPYTHON_NEOPIXEL_RAINBOW_TOOLTIP="",rF.MPYTHON_NEOPIXEL_RAINBOW_MESSAGE0="彩虹燈效 燈帶%1 數量 %2 亮度 %3 偏移 %4",rF.MPYTHON_NEOPIXEL_BRIGHTNESS_HELPURL="https://mpython.readthedocs.io/zh/master/library/micropython/neopixel.html#NeoPixel.brightness",rF.MPYTHON_NEOPIXEL_BRIGHTNESS_TOOLTIP="亮度調節, 範圍 0 ~ 100",rF.MPYTHON_NEOPIXEL_BRIGHTNESS_MESSAGE0="燈帶 %1 設置亮度為 %2",rF.mpython_neopixel_single_TOOLTIP="",rF.mpython_neopixel_single_MESSAGE0="燈帶%1 %2號 紅%3 綠%4 藍%5",rF.mpython_neopixel_single_gui_MESSAGE0="燈帶 %1 %2號 顏色為 %3",rF.mpython_neopixel_single_gui_TOOLTIP="",rF.mpython_neopixel_show_TOOLTIP="",rF.mpython_neopixel_show_MESSAGE0="燈帶%1 設置生效",rF.mpython_neopixel_off_TOOLTIP="",rF.mpython_neopixel_off_MESSAGE0="燈帶%1 關閉",rF.mpython_neopixel_all_TOOLTIP="",rF.mpython_neopixel_all_MESSAGE0="燈帶%1 全亮 紅%2 綠%3 藍%4",rF.mpython_neopixel_all_gui_TOOLTIP="",rF.mpython_neopixel_all_gui_MESSAGE0="燈帶%1 全亮 顏色%2",rF.mpython_image_to_oled_MESSAGE0="打開圖片 %1 寬 %2 高 %3",rF.mpython_image_to_oled_TOOLTIP="",rF.mpython_time_localtime_MESSAGE0="本地時間 %1",rF.mpython_time_localtime_TOOLTIP="星期數:返回0~6,周一為0,周日為6\n天數:獲取當前日期是一年中的第幾天\n建議先連接wifi並獲取網絡時間",rF.mpython_WiFi_config_MESSAGE0="Wi-Fi 配置信息 %1",rF.mpython_WiFi_config_TOOLTIP="netmask-子網掩碼;gateway-網關",rF.mpython_time_ticks_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",rF.mpython_time_ticks_MESSAGE0="運行時間 %1",rF.mpython_time_ticks_TOOLTIP="",rF.MPYTHON_TIMER_DEF_MESSAGE0="定義定時器 %1",rF.MPYTHON_TIMER_INIT_MESSAGE0="啟動定時器 %1 %2 周期 %3 毫秒",rF.mpython_Timer_MESSAGE0="設置定時器 %1 %2 周期 %3 毫秒",rF.mpython_Timer_TOOLTIP="創建定時器n,n=1-14。\n最大同時創建4個定時器,如果存在沖突,請嘗試換一個編號。\n3用於內部程序,\n5/6用於伺服系統和ADC,\n11用於搖晃檢測,\n12用於觸摸鍵檢測,\n13用於Radio和DHT11/DHT22定時取值(共用),\n14用於OneNET和傾斜檢測(共用),\n其余端口與自定義事件共用。",rF.mpython_Timer_HELPURL="https://mpythonx.readthedocs.io/zh_CN/latest/blocks/index.html",rF.mpython_bme280_hum_tem_pre_MESSAGE0="%1",rF.mpython_bme280_hum_tem_pre_TOOLTIP="氣壓單位Pa, 溫度單位攝氏度, 環境濕度單位%",rF.mpython_sway_xyz_MESSAGE0="%1 搖晃掌控板",rF.mpython_sway_xyz_TOOLTIP="掌控板正面朝上,觸摸鍵 'python' 靠近使用者,開始左右或前後搖晃掌控板",rF.mpython_init_bluetooth_MESSAGE0="初始化 藍牙名稱%1",rF.mpython_init_bluetooth_TOOLTIP="初始化 藍牙名稱",rF.mpython_OnOff_bluetooth_MESSAGE0="藍牙設備%1廣播",rF.mpython_OnOff_bluetooth_TOOLTIP="藍牙設備 開啟或關閉廣播",rF.mpython_HID_consumer_bluetooth_MESSAGE0="消費類設備%1 狀態%2",rF.mpython_HID_consumer_bluetooth_TOOLTIP="類比HID消費類設備的控制器,如藍牙遙控器",rF.mpython_HID_release_keyboard_bluetooth_MESSAGE0="鍵盤 釋放按鍵",rF.mpython_HID_release_keyboard_bluetooth_TOOLTIP="HID鍵盤設備",rF.mpython_HID_mouse_bluetooth_MESSAGE0="鼠標%1",rF.mpython_HID_mouse_bluetooth_TOOLTIP="鼠標設備",rF.mpython_HID_release_mouse_bluetooth_MESSAGE0="鼠標 釋放按鍵",rF.mpython_HID_release_mouse_bluetooth_TOOLTIP="鼠標設備",rF.mpython_HID_keyboard_bluetooth_MESSAGE0="鍵盤 按鍵%1",rF.mpython_HID_keyboard_bluetooth_TOOLTIP="鍵盤設備",rF.mpython_HID_keyboard_group_bluetooth_MESSAGE0="HID設備按鍵 %1 組合按鍵%2",rF.mpython_HID_keyboard_group_bluetooth_TOOLTIP="如果想使用多個按鍵組合指令,可以用“|”或運算",rF.mpython_HID_mouse_pointer_bluetooth_MESSAGE0="滑鼠 指標移動 x%2 y%1",rF.mpython_HID_mouse_pointer_bluetooth_TOOLTIP="鼠标坐标x,y轴的相对位移,范围-1023 ~ 1023",rF.mpython_HID_keyboard_group_bluetooth_MESSAGE0="設備 按鍵 %1 組合按鍵%2",rF.mpython_HID_keyboard_group_bluetooth_TOOLTIP="鍵盤設備",rF.mpython_HID_keyboard_part_bluetooth_MESSAGE0="鍵盤 组合設備%1",rF.mpython_HID_keyboard_part_bluetooth_TOOLTIP="如果想使用多個按鍵組合指令,可以用“|”或運算",rF.mpython_HID_keyboard_part_bluetooth_HELPURL="",rF.mpython_init_wifi_MESSAGE0="連接 Wi-Fi 名稱 %1 密碼 %2",rF.mpython_init_wifi_TOOLTIP="讓掌控板接入Wi-Fi環境",rF.MPYTHON_WIFI_IFCONFIG_MESSAGE0="Wi-Fi 設置固定IP %1 IP 地址 %2 子網掩碼 %3 默認網關 %4 DNS %5",rF.MPYTHON_WIFI_IFCONFIG_TOOLTIP="",rF.MPYTHON_WIFI_IFCONFIG_HELPURL="",rF.mpython_dis_WiFi_MESSAGE0="斷開 Wi-Fi 連接",rF.mpython_dis_WiFi_TOOLTIP="",rF.MPYTHON_ENABLE_APWIFI_HELPURL="https://mpython.readthedocs.io/zh/master/tutorials/basics/network/network_basics.html#ap",rF.MPYTHON_ENABLE_APWIFI_TOOLTIP="密碼可以為空,或者8位以上的字母或數字。\nAP模式僅用於掌控板之間的相互通信,不可以作為熱點,令其它設備上網。",rF.MPYTHON_ENABLE_APWIFI_MESSAGE0="開啟 AP模式 名稱 %1 密碼 %2 信道 %3",rF.mpython_disable_APWiFi_MESSAGE0="關閉 AP模式",rF.mpython_disable_APWiFi_TOOLTIP="",rF.mpython_ntptime_settime_MESSAGE0="同步網絡時間 時區 %1 授時服務器 %2",rF.mpython_ntptime_settime_TOOLTIP="NTP時間同步是一種時間同步網絡技術",rF.mpython_wifi_get_date_MESSAGE0="獲取當前日期",rF.mpython_wifi_get_date_TOOLTIP="獲取當前日期字符串 示例:2020年12月12日",rF.mpython_wifi_get_time_MESSAGE0="獲取當前時間",rF.mpython_wifi_get_time_TOOLTIP="獲取當前時間字符串",rF.mpython_ntptime_timezone_E1="東1區",rF.mpython_ntptime_timezone_E2="東2區",rF.mpython_ntptime_timezone_E3="東3區",rF.mpython_ntptime_timezone_E4="東4區",rF.mpython_ntptime_timezone_E5="東5區",rF.mpython_ntptime_timezone_E6="東6區",rF.mpython_ntptime_timezone_E7="東7區",rF.mpython_ntptime_timezone_E8="東8區",rF.mpython_ntptime_timezone_E9="東9區",rF.mpython_ntptime_timezone_E10="東10區",rF.mpython_ntptime_timezone_E11="東11區",rF.mpython_ntptime_timezone_E12="東12區",rF.mpython_ntptime_timezone_0="中時區",rF.mpython_ntptime_timezone_W1="西1區",rF.mpython_ntptime_timezone_W2="西2區",rF.mpython_ntptime_timezone_W3="西3區",rF.mpython_ntptime_timezone_W4="西4區",rF.mpython_ntptime_timezone_W5="西5區",rF.mpython_ntptime_timezone_W6="西6區",rF.mpython_ntptime_timezone_W7="西7區",rF.mpython_ntptime_timezone_W8="西8區",rF.mpython_ntptime_timezone_W9="西9區",rF.mpython_ntptime_timezone_W10="西10區",rF.mpython_ntptime_timezone_W11="西11區",rF.mpython_ntptime_timezone_W12="西12區",rF.FILE_TO_LIST_HELPURL="",rF.FILE_TO_LIST_TOOLTIP="讀出指定路徑的文本文件內容(僅限utf-8格式),並轉為列表形式,以分隔符分隔。",rF.FILE_TO_LIST_MESSAGE0="讀取文本文件 %1 為列表 ,以 %2 分隔",rF.FILE_TO_BIN_HELPURL="",rF.FILE_TO_BIN_TOOLTIP="以二進制格式讀出指定路徑的文件內容。",rF.FILE_TO_BIN_MESSAGE0="讀取文件 %1 的二進制內容",rF.MPYTHON_INIT_FILE_HELPURL="",rF.MPYTHON_INIT_FILE_TOOLTIP="初始化一個文本文件,如果文件不存在則創建文件,如果文件存在則清空內容。",rF.MPYTHON_INIT_FILE_MESSAGE0="初始化文本文件 %1",rF.MPYTHON_WRITE_FILE_HELPURL="",rF.MPYTHON_WRITE_FILE_TOOLTIP="向指定路徑的文本文件寫入內容,如果文件不存在則創建文件。",rF.MPYTHON_WRITE_FILE_MESSAGE0="向文本文件 %1 寫入內容 %2 ,以 %3 分隔",rF.MPYTHON_SDCARD_INIT_HELPURL="https://mpython.readthedocs.io/zh/master/library/mPython/sdcard.html#sdcard.SDCard",rF.MPYTHON_SDCARD_INIT_TOOLTIP="sck: P13\nmosi: P15\nmiso: P14\nsdcard: P16\n須確保 SPI 總線的引腳與 micro SD 卡物理連接正確,並預先使用 FAT 或 FAT32 文件系統格式化 micro SD 卡。",rF.MPYTHON_SDCARD_INIT_MESSAGE0="初始化 SD 卡",rF.MPYTHON_SDCARD_MOUNT_HELPURL="https://mpython.readthedocs.io/zh/master/library/mPython/sdcard.html#sdcard.SDCard",rF.MPYTHON_SDCARD_MOUNT_TOOLTIP="掛載 SDCard 到指定路徑。",rF.MPYTHON_SDCARD_MOUNT_MESSAGE0="掛載 SD 卡到路徑 %1",rF.MPYTHON_ENTER="回車",rF.MPYTHON_COMMA="逗號",rF.MPYTHON_SEMICOLON="分號",rF.MPYTHON_SPACE="空格",rF.mpython_wifi_clock_MESSAGE0="Wi-Fi 模擬時鐘 x %1 y %2 半徑 %3",rF.mpython_wifi_clock_TOOLTIP="需連接 Wi-Fi 使用",rF.mpython_def_clock_MESSAGE0="初始化時鐘%1 x %2 y %3 半徑 %4",rF.mpython_def_clock_TOOLTIP="",rF.mpython_settime_clock_MESSAGE0="時鐘%1 讀取時間",rF.mpython_settime_clock_TOOLTIP="",rF.mpython_draw_clear_clock_MESSAGE0="%1 時鐘 %2",rF.mpython_draw_clear_clock_TOOLTIP="",rF.mpython_tinywebio_start_MESSAGE0="啟動 TinyWebIO 服務 %1",rF.mpython_tinywebio_start_TOOLTIP="啟動該服務需連接Wi-Fi,TinyWebIO服務為App Inventor應用提供遠程控制接口的掌控板工具包",rF.mpython_tinywebio_client_setup_HELPURL="",rF.mpython_tinywebio_client_setup_TOOLTIP="向服務器發布的數據項(逗號分隔)\nbuttona/b 按鍵狀態\ntouchpadp/y/t/h/o/n 觸摸按鍵值\nlight 光線值\nsound 聲音值\naccelerometer 三軸加速度值\nid 掌控板標識\ntime 時間戳\npind 數字IO引腳\npina 模擬IO引腳\n----------\n從服務器讀取的數據項(逗號分隔)\nrgb0/1/2 RGB燈珠\noled OLED顯示屏\nmusic 音樂\nservo 舵機\npind 數字IO引腳\npina 模擬IO引腳",rF.mpython_tinywebio_client_setup_MESSAGE0="設置 TinyWebIO 客戶端參數 %1 TinyWebDB服務器地址 %2 向服務器發布的數據項 %3 從服務器讀取的數據項 %4 存取服務器的時間間隔(ms) %5",rF.mpython_tinywebio_client_action_HELPURL="",rF.mpython_tinywebio_client_action_TOOLTIP="",rF.mpython_tinywebio_client_action_MESSAGE0="%1 TinyWebIO 客戶端",rF.mpython_tinywebio_client_action_start="啟動",rF.mpython_tinywebio_client_action_stop="停止",rF.MPYTHON_CUSTOM_CODE_HELPURL="",rF.MPYTHON_CUSTOM_CODE_TOOLTIP="",rF.MPYTHON_CUSTOM_CODE_MESSAGE0="%1 自定義代碼 %2 %3",rF.MPYTHON_CUSTOM_VALUE_MESSAGE0="自定義返回值 %1",rF.MPYTHON_CUSTOM_TYPE_IMPORT="置頂",rF.MPYTHON_CUSTOM_TYPE_NORMAL="普通",rF.mpython_servo_angle0_MESSAGE0="設置舵機 %1 角度為 %2",rF.mpython_servo_angle_MESSAGE0="設置舵機 %1 角度為 %2 脈寬從 %3 到 %4 最大角度 %5",rF.mpython_servo_angle_TOOLTIP="電源線Vcc(紅色)連接拓展板電源口V,地線GND(棕色)連接拓展板地線口G,控制信號線(橙色)連接所選的拓展板引腳",rF.mpython_dh11_hum_tem_HELPURL="https://mpython.readthedocs.io/zh/latest/classic/dht11.html?highlight=DHT",rF.mpython_dh11_hum_tem_MESSAGE0="DHT11 %1 %2",rF.mpython_dh11_hum_tem_TOOLTIP="DHT11上的 + 連接拓展板的電源口 V ,- 連接拓展板的地線口 G ,out 連接拓展板的引腳 0(即選引腳)",rF.MPYTHON_DH22_HUM_TEM_MESSAGE0="DHT22 %1 %2",rF.MPYTHON_DH22_HUM_TEM_TOOLTIP="",rF.MPYTHON_DH22_HUM_TEM_HELPURL="https://mpython.readthedocs.io/zh/latest/classic/dht11.html?highlight=DHT",rF.mpython_music_note_MESSAGE0="音符 %1 %2 : %3",rF.mpython_music_note_TOOLTIP="音符,如C4:4",rF.mpython_return_list_MESSAGE0="定義列表 %1 = %2",rF.mpython_return_list_TOOLTIP="",rF.mpython_display_Show_MESSAGE0="OLED 顯示生效",rF.mpython_display_Show_TOOLTIP="",rF.mpython_display_DispChar_MESSAGE0="顯示文本 x %1 y %2 內容 %3 模式 %4 %5",rF.mpython_display_DispChar_TOOLTIP="OLED分辨率128x64",rF.mpython_display_DispChar_HELPURL="https://mpython.readthedocs.io/zh/master/library/mPython/mpython.html?highlight=oled#oled.DispChar",rF.mpython_display_DispChar_5lines_MESSAGE0="OLED 第%1 行顯示 %2 模式 %3 %4",rF.mpython_display_DispChar_5lines_TOOLTIP="OLED分辨率128x64",rF.mpython_line1="1",rF.mpython_line2="2",rF.mpython_line3="3",rF.mpython_line4="4",rF.mpython_line5="5",rF.MPYTHON_CLEAR_DISPCHAR_5LINES_MESSAGE0="OLED 清除第 %1 行",rF.MPYTHON_CLEAR_DISPCHAR_5LINES_TOOLTIP="OLED分辨率128x64",rF.MPYTHON_CLEAR_DISPCHAR_5LINES_HELPURL="";rF.mpython_display_fill_0="清空",rF.mpython_display_fill_1="全亮",rF.mpython_display_invert_0="黑底",rF.mpython_display_invert_1="白底",rF.mpython_display_show="生效",rF.mpython_display_fill_MESSAGE0="OLED 顯示 %1",rF.mpython_display_fill_TOOLTIP="",rF.mpython_display_pixel_0="暗",rF.mpython_display_pixel_1="亮",rF.mpython_display_pixel_MESSAGE0="描點 x %1 y %2 為 %3",rF.mpython_display_pixel_TOOLTIP="",rF.mpython_display_hline_0="擦除",rF.mpython_display_hline_1="繪制",rF.mpython_display_hline_MESSAGE0="%1 水平線%2 x%3 y%4 長度%5",rF.mpython_display_hline_TOOLTIP="",rF.mpython_ProgressBar_MESSAGE0="進度條%1 x%2 y%3 寬%4 高%5 進度%6",rF.mpython_ProgressBar_TOOLTIP="",rF.mpython_stripBar_MESSAGE0="柱狀條%1 x%2 y%3 寬%4 高%5 進度%6",rF.mpython_stripBar_TOOLTIP="",rF.MPYTHON_QR_CODE_HELPURL="https://mpython.readthedocs.io/zh/master/library/mPython/gui.html#gui.UI.qr_code",rF.MPYTHON_QR_CODE_TOOLTIP="",rF.MPYTHON_QR_CODE_MESSAGE0="在坐標 x %1 y %2 繪制二維碼 %3 尺寸 %4",rF.MPYTHON_DISPLAY_MODE_0="擦除",rF.MPYTHON_DISPLAY_MODE_1="繪制",rF.MPYTHON_DISPLAY_HOLLOW="空心",rF.MPYTHON_DISPLAY_SOLID="實心",rF.MPYTHON_DISPLAY_HVLINE_MESSAGE0="%1 %2 線 %3 x %4 y %5 長度 %6",rF.MPYTHON_DISPLAY_HVLINE_TOOLTIP="",rF.MPYTHON_DISPLAY_SHAPE_RECT_MESSAGE0="%1 %2 矩形 %3 x %4 y %5 寬 %6 高 %7",rF.MPYTHON_DISPLAY_SHAPE_RECT_TOOLTIP="",rF.MPYTHON_DISPLAY_SHAPE_CIRCLE_MESSAGE0="%1 %2 圓 %3 x %4 y %5 半徑 %6",rF.MPYTHON_DISPLAY_SHAPE_CIRCLE_TOOLTIP="",rF.MPYTHON_DISPLAY_SHAPE_TRIANGLE_MESSAGE0="%1 %2 三角 %3 x1 %4 y1 %5 x2 %6 y2 %7 x3 %8 y3 %9",rF.MPYTHON_DISPLAY_SHAPE_TRIANGLE_TOOLTIP="",rF.MPYTHON_RGB_0="0 #",rF.MPYTHON_RGB_1="1 #",rF.MPYTHON_RGB_2="2 #",rF.MPYTHON_RGB_ALL="所有",rF.MPYTHON_SET_RGB_LIST_COLOR_MESSAGE0="設置 %1 RGB 燈顏色為 %2",rF.MPYTHON_SET_RGB_LIST_COLOR_TOOLTIP="原生亮度的 1/30 能較好顯示色差",rF.MPYTHON_SET_RGB_LIST_NUMBER_MESSAGE0="設置 %1 RGB 燈顏色為 R %2 G %3 B %4",rF.MPYTHON_SET_RGB_LIST_NUMBER_TOOLTIP="原生亮度的 1/30 能較好顯示色差",rF.MPYTHON_OFF_RGB_LIST_MESSAGE0="關閉 %1 RGB 燈",rF.MPYTHON_OFF_RGB_LIST_TOOLTIP="",rF.MPYTHON_MUSIC_PLAY_MESSAGE0="播放音樂 %1 引腳 %2",rF.MPYTHON_MUSIC_PLAY_TOOLTIP="播放內置的音樂",rF.MPYTHON_MUSIC_PLAY_UNTIL_END_MESSAGE0="播放音樂 %1 直到完成 , 引腳 %2",rF.MPYTHON_MUSIC_PLAY_UNTIL_END_TOOLTIP="播放內置的音樂",rF.MPYTHON_MUSIC_GE_CHANG_ZU_GUO="歌唱祖國",rF.MPYTHON_MUSIC_DONG_FANG_HONG="東方紅",rF.MPYTHON_MUSIC_CAI_YUN_ZHUI_YUE="彩雲追月",rF.MPYTHON_MUSIC_ZOU_JIN_XIN_SHI_DAI="走進新時代",rF.MPYTHON_MUSIC_MO_LI_HUA="茉莉花",rF.MPYTHON_MUSIC_YI_MENG_SHAN_XIAO_DIAO="沂蒙山小調",rF.mpython_display_vline_MESSAGE0="%1 垂直線%2 x%3 y%4 長度%5",rF.mpython_display_vline_TOOLTIP="",rF.mpython_display_line_MESSAGE0="%1 線%2 x1 %3 y1 %4 到 x2 %5 y2 %6",rF.mpython_display_line_TOOLTIP="",rF.mpython_display_rect_MESSAGE0="%1 邊框%2 x %3 y %4 寬 %5 高 %6",rF.mpython_display_rect_TOOLTIP="",rF.mpython_display_RoundRect_MESSAGE0="%1 弧角邊框%2 x %3 y %4 寬 %5 高 %6 半徑%7",rF.mpython_display_RoundRect_TOOLTIP="",rF.mpython_display_fill_rect_MESSAGE0="%1 矩形%2 x %3 y %4 寬 %5 高 %6 ",rF.mpython_display_fill_rect_TOOLTIP="",rF.mpython_display_fill_circle_MESSAGE0="%1 實心圓%2 x %3 y %4 半徑 %5",rF.mpython_display_fill_circle_TOOLTIP="",rF.mpython_display_circle_MESSAGE0="%1 空心圓%2 x %3 y %4 半徑 %5",rF.mpython_display_circle_TOOLTIP="",rF.mpython_display_triangle_MESSAGE0="%1 空心三角%2 x%3 y%4 x2%5 y2%6 x3%7 y3%8",rF.mpython_display_triangle_TOOLTIP="",rF.mpython_display_fill_triangle_MESSAGE0="%1 實心三角%2 x%3 y%4 x2%5 y2%6 x3%7 y3%8",rF.mpython_display_fill_triangle_TOOLTIP="",rF.mpython_display_Bitmap_MESSAGE0="%1 圖像 x%2 y%3 寬%4 高%5 16進制圖像數據 %6",rF.mpython_display_Bitmap_TOOLTIP="將16進制圖像數據顯示在OLED屏的指定位置",rF.MPYTHON_GET_PBM_DATA_MESSAGE0="獲取內置圖像 %1 模式%2",rF.MPYTHON_GET_PBM_DATA_TOOLTIP="支持*.pbm 或 *.bmp格式的單色圖像文件,獲取指定路徑的圖像文件數據,返回一個元組對象。",rF.MPYTHON_GET_PBM_DATA_HELPURL="https://mpython.readthedocs.io/zh/master/library/mPython/gui.html#image",rF.MPYTHON_GET_PBM_DATA_CUSTOM_MESSAGE0="獲取自定義圖像 %1 模式%2",rF.MPYTHON_DISPLAY_PBM_DATA_MESSAGE0="在坐標 x %1 y %2 顯示圖像 %3",rF.MPYTHON_DISPLAY_PBM_DATA_TOOLTIP="支持*.pbm 或 *.bmp格式的單色圖像文件",rF.MPYTHON_DISPLAY_PBM_DATA_HELPURL="https://mpython.readthedocs.io/zh/master/library/mPython/gui.html#image",rF.MPYTHON_BITMAP_FROM_FILE_MESSAGE0="在坐標 x %1 y %2 顯示圖像 %5 寬 %3 高 %4",rF.MPYTHON_BITMAP_FROM_FILE_TOOLTIP="",rF.MPYTHON_BITMAP_FROM_FILE_HELPURL="",rF.mpython_horizontal="水平",rF.mpython_vertical="垂直",rF.mpython_display_FrameBuffer_MESSAGE0="構建幀 列表 %1 長 %2 寬 %3 掃描模式 %4",rF.mpython_display_FrameBuffer_TOOLTIP="用圖像取模後數據的列表 ,創建128x64的幀緩存區,以儲存圖片幀",rF.MPYTHON_FONT_DIGIFACE_11="仿數碼管 11像素",rF.MPYTHON_FONT_DIGIFACE_16="仿數碼管 16像素",rF.MPYTHON_FONT_DIGIFACE_21="仿數碼管 21像素",rF.MPYTHON_FONT_DIGIFACE_30="仿數碼管 30像素",rF.MPYTHON_FONT_DIGIFACE_44="仿數碼管 44像素",rF.MPYTHON_FONT_DIGIFACE_IT_30="仿數碼管 斜體 30像素",rF.MPYTHON_FONT_DIGIFACE_IT_42="仿數碼管 斜體 42像素",rF.MPYTHON_FONT_DVSM_12="DejaVu Sans Mono 12像素",rF.MPYTHON_FONT_DVSM_16="DejaVu Sans Mono 16像素",rF.MPYTHON_FONT_DVSM_21="DejaVu Sans Mono 21像素",rF.MPYTHON_FONT_DVSMB_12="DejaVu Sans Mono 黑體 12像素",rF.MPYTHON_FONT_DVSMB_16="DejaVu Sans Mono 黑體 16像素",rF.MPYTHON_FONT_DVSMB_21="DejaVu Sans Mono 黑體 21像素",rF.MPYTHON_FONT_WRAP="自動換行",rF.MPYTHON_FONT_NO_WRAP="不換行",rF.MPYTHON_FACE_1="心形",rF.MPYTHON_FACE_2="心形(小)",rF.MPYTHON_FACE_3="高興",rF.MPYTHON_FACE_4="笑臉",rF.MPYTHON_FACE_5="傷心",rF.MPYTHON_FACE_6="困惑",rF.MPYTHON_FACE_7="生氣",rF.MPYTHON_FACE_8="睡著",rF.MPYTHON_FACE_9="驚訝",rF.MPYTHON_FACE_10="愚蠢",rF.MPYTHON_FACE_11="極妙",rF.MPYTHON_FACE_12="無聊",rF.MPYTHON_FACE_ROCK="石頭",rF.MPYTHON_FACE_PAPER="布",rF.MPYTHON_FACE_SCISSORS="剪刀",rF.MPYTHON_FACE_ROCK_S="石頭(小)",rF.MPYTHON_FACE_PAPER_S="布(小)",rF.MPYTHON_FACE_SCISSORS_S="剪刀(小)",rF.MPYTHON_DISPLAY_FONT_MESSAGE0="在坐標 x %1 y %2 顯示 %3 以 %4 字體 %5",rF.MPYTHON_DISPLAY_FONT_TOOLTIP="",rF.MPYTHON_DISPLAY_FONT_HELPURL="",rF.mpython_front="正向",rF.mpython_reverse="反轉",rF.mpython_display_blit_MESSAGE0="顯示幀 坐標x %1 y %2",rF.mpython_display_blit_TOOLTIP="",rF.mpython_front_reverse_MESSAGE0="像素點bit %1",rF.mpython_front_reverse_TOOLTIP="用於顯示之前",rF.mpython_images_append_MESSAGE0="動圖顯示 幀數%1 周期%2 長%3 寬%4",rF.mpython_images_append_TOOLTIP="上傳至掌控板的pbm圖片需命名為IMAGE.數字,後綴為pbm。如:IMAGE.1.pbm。幀數為7則數字為1至7",rF.mpython_button_is_pressed_MESSAGE0="按鍵%1 被按下",rF.mpython_button_is_pressed_TOOLTIP="",rF.mpython_button_both_pressed_MESSAGE0="AB按鍵都按下",rF.mpython_button_both_pressed_TOOLTIP="",rF.mpython_touchPad_value_MESSAGE0="按鍵%1 被觸摸",rF.mpython_touchPad_value_TOOLTIP="",rF.mpython_touchPad_value_num_MESSAGE0="按鍵%1 觸摸值",rF.mpython_touchPad_value_num_TOOLTIP="",rF.mpython_read_digital_MESSAGE0="讀取引腳 %1 數字值",rF.mpython_read_digital_TOOLTIP="",rF.mpython_read_DS18B20_MESSAGE0="DS18B20 防水溫度感測器 引脚 %1",rF.mpython_read_DS18B20_TOOLTIP="",rF.mpython_read_DS18B20_HELPURL="http://docs.micropython.org/en/latest/esp32/quickref.html?highlight=onewire#onewire-driver",rF.mpython_set_digital_MESSAGE0="設置引腳 %2 數字值為 %1",rF.mpython_set_digital_TOOLTIP="",rF.mpython_read_analog_MESSAGE0="讀取引腳 %1 模擬值",rF.mpython_read_analog_TOOLTIP="",rF.mpython_set_analog_MESSAGE0="設置引腳 %2 模擬值(PWM)為 %1",rF.mpython_set_analog_TOOLTIP="模擬輸出是通過IO引腳輸出脈寬調制信號,輸出指定的電壓值,簡稱PWM。",rF.mpython_set_RGB_MESSAGE0="設置 %1 號 RGB 燈顏色為 R %2 G %3 B %4",rF.mpython_set_RGB_TOOLTIP="原生亮度的 1/30 能較好顯示色差",rF.mpython_set_RGB_color_MESSAGE0="設置 %1 號 RGB 燈顏色為 %2",rF.mpython_set_RGB_color_TOOLTIP="原生亮度的 1/30 能較好顯示色差",rF.mpython_set_RGB_all_MESSAGE0="設置所有 RGB 燈顏色為 R %1 G %2 B %3",rF.mpython_set_RGB_all_TOOLTIP="原生亮度的 1/30 能較好顯示色差",rF.mpython_set_RGB_color_all_MESSAGE0="設置所有 RGB 燈顏色為 %1",rF.mpython_set_RGB_color_all_TOOLTIP="原生亮度的 1/30 能較好顯示色差",rF.mpython_fresh_RGB_MESSAGE0="RGB 燈設置生效",rF.mpython_fresh_RGB_TOOLTIP="",rF.mpython_off_RGB_MESSAGE0="關閉 RGB 燈",rF.mpython_off_RGB_TOOLTIP="",rF.mpython_buzz_state_MESSAGE0="停止播放音樂",rF.mpython_buzz_state_TOOLTIP="",rF.mpython_buzz_freq_MESSAGE0="播放連續音調 %1 引脚 %2",rF.mpython_buzz_freq_TOOLTIP="",rF.mpython_buzz_tone_MESSAGE0="播放音調 %1",rF.mpython_buzz_tone_TOOLTIP="",rF.MPYTHON_MUSIC_TONE_TEMPO_HELPURL="",rF.MPYTHON_MUSIC_TONE_TEMPO_TOOLTIP="默認是掌控板的P6引脚",rF.MPYTHON_MUSIC_TONE_TEMPO_MESSAGE0="播放音符 %1 引脚 %2",rF.MPYTHON_MUSIC_TONE_HELPURL="",rF.MPYTHON_MUSIC_TONE_TOOLTIP="",rF.MPYTHON_MUSIC_TONE_MESSAGE0="音調 %1",rF.MPYTHON_MUSIC_MUSICAL_NOTE_HELPURL="",rF.MPYTHON_MUSIC_MUSICAL_NOTE_TOOLTIP="",rF.MPYTHON_MUSIC_MUSICAL_NOTE_MESSAGE0="音符 %1 節拍 %2",rF.MPYTHON_MUSIC_TICK_HELPURL="",rF.MPYTHON_MUSIC_TICK_TOOLTIP="",rF.MPYTHON_MUSIC_TICK_MESSAGE0="節拍 %1",rF.MPYTHON_4_LINES_HELPURL="",rF.MPYTHON_4_LINES_TOOLTIP="",rF.MPYTHON_4_LINES_MESSAGE0="%1",rF.NUMBER_1="1",rF.NUMBER_1_2="1/2",rF.NUMBER_1_4="1/4",rF.NUMBER_2="2",rF.NUMBER_4="4",rF.mpython_read_sound_MESSAGE0="聲音值",rF.mpython_read_sound_TOOLTIP="",rF.mpython_read_light_MESSAGE0="光線值",rF.mpython_read_light_TOOLTIP="",rF.mpython_accelerometer_get_MESSAGE0="%1 軸加速度",rF.mpython_accelerometer_get_TOOLTIP="",rF.mpython_accelerometer_get_z_MESSAGE0="z軸加速度",rF.mpython_accelerometer_get_z_TOOLTIP="",rF.mpython_accelerometer_get_y_MESSAGE0="y軸加速度",rF.mpython_accelerometer_get_y_TOOLTIP="",rF.mpython_accelerometer_get_x_MESSAGE0="x軸加速度",rF.mpython_accelerometer_get_x_TOOLTIP="",rF.MPYTHON_ACCELEROMETER_RANGE_2G="±2g",rF.MPYTHON_ACCELEROMETER_RANGE_4G="±4g",rF.MPYTHON_ACCELEROMETER_RANGE_8G="±8g",rF.MPYTHON_ACCELEROMETER_RANGE_16G="±16g",rF.MPYTHON_ACCELEROMETER_RES_10_BIT="10bits",rF.MPYTHON_ACCELEROMETER_RES_12_BIT="12bits",rF.MPYTHON_ACCELEROMETER_RES_14_BIT="14bits",rF.MPYTHON_ACCELEROMETER_SET_RANGE_TOOLTIP="設置加速度範圍,默認為 ±2g。",rF.MPYTHON_ACCELEROMETER_SET_RANGE_MESSAGE0="設置加速度範圍為 %1",rF.MPYTHON_ACCELEROMETER_SET_RESOLUTION_TOOLTIP="設置加速度分辨率,默認為 10bits。",rF.MPYTHON_ACCELEROMETER_SET_RESOLUTION_MESSAGE0="設置加速度分辨率為 %1",rF.MPYTHON_ACCELEROMETER_SET_OFFSET_TOOLTIP="校準加速度計的3個軸(x,y,z)的加速值偏差。\n一般情況下無需校準,只有遇到加速度偏差較大時才要校準。\n x , y , z 為調整偏差值,可修正範圍為 ±1g。\n註意:校準數據斷電後不會保存。",rF.MPYTHON_ACCELEROMETER_SET_OFFSET_MESSAGE0="校準加速度值 %1 X軸偏差 %2 Y軸偏差 %3 Z軸偏差 %4",rF.MPYTHON_MAGNETIC_GET_AXIS_TOOLTIP="僅適用於掌控板2.0及以上版本",rF.MPYTHON_MAGNETIC_GET_AXIS_MESSAGE0="%1 軸 磁力",rF.MPYTHON_MAGNETIC_GET_HEADING_TOOLTIP="僅適用於掌控板2.0及以上版本",rF.MPYTHON_MAGNETIC_GET_HEADING_MESSAGE0="指南針方向",rF.MPYTHON_MAGNETIC_CALIBRATE_TOOLTIP="僅適用於掌控板2.0及以上版本",rF.MPYTHON_MAGNETIC_CALIBRATE_MESSAGE0="校準指南針",rF.MPYTHON_MAGNETIC_PEELING_TOOLTIP="僅適用於掌控板2.0及以上版本",rF.MPYTHON_MAGNETIC_PEELING_MESSAGE0="去除當前環境磁場",rF.MPYTHON_MAGNETIC_GET_FIELD_STRENGTH_TOOLTIP="僅適用於掌控板2.0及以上版本",rF.MPYTHON_MAGNETIC_GET_FIELD_STRENGTH_MESSAGE0="磁場強度",rF.MPYTHON_TILT_ANGLE_HELPURL="",rF.MPYTHON_TILT_ANGLE_TOOLTIP="",rF.MPYTHON_TILT_ANGLE_MESSAGE0="%1 軸傾斜角",rF.mpython_random_choice_MESSAGE0="返回隨機項%1",rF.mpython_random_choice_TOOLTIP="以String格式,返回列表或字符串中的隨機項",rF.mpython_i2c_init_MESSAGE0="初始化I2C 波特率%1",rF.mpython_i2c_init_TOOLTIP="SCL引腳19,SDA引腳20,與內部的OLED和加速度傳感器共享I2C總線",rF.MACHINE_TIME_PULSE_US_HELPURL="https://mpython.readthedocs.io/zh/master/library/micropython/machine/machine.html?highlight=machine.time_pulse_us#machine.time_pulse_us",rF.MACHINE_TIME_PULSE_US_MESSAGE0="%1 外部 %2 電平持續時間(微秒)",rF.MACHINE_TIME_PULSE_US_TOOLTIP="",rF.BYTES="字節",rF.MPYTHON_I2C_INIT_HELPURL="https://mpython.readthedocs.io/zh/master/library/micropython/machine/machine.I2C.html#machine.I2C",rF.MPYTHON_I2C_INIT_MESSAGE0="初始化i2c 速率%1",rF.MPYTHON_I2C_INIT_TOOLTIP="",rF.MPYTHON_I2C_DEV_INIT_HELPURL="https://mpython.readthedocs.io/zh/master/library/micropython/machine/machine.I2C.html#machine.I2C",rF.MPYTHON_I2C_DEV_INIT_MESSAGE0="初始化%1 SCL %2 SDA %3 速率 %4",rF.MPYTHON_I2C_DEV_INIT_TOOLTIP="",rF.MPYTHON_I2C_SCAN_HELPURL="https://mpython.readthedocs.io/zh/master/library/micropython/machine/machine.I2C.html?highlight=I2C#machine.I2C.scan",rF.MPYTHON_I2C_SCAN_MESSAGE0="%1 掃描地址",rF.MPYTHON_I2C_SCAN_TOOLTIP="返回壹個數組對象",rF.MPYTHON_I2C_DEINIT_HELPURL="https://mpython.readthedocs.io/zh/master/library/micropython/machine/machine.I2C.html?highlight=I2C#machine.I2C.deinit",rF.MPYTHON_I2C_DEINIT_MESSAGE0="關閉%1總線",rF.MPYTHON_I2C_DEINIT_TOOLTIP="",rF.MPYTHON_I2C_WRITETO_HELPURL="https://mpython.readthedocs.io/zh/master/library/micropython/machine/machine.I2C.html?highlight=I2C#id4",rF.MPYTHON_I2C_WRITETO_MESSAGE0="從%1 %5 地址%2 寫入%3 停止位%4",rF.MPYTHON_I2C_WRITETO_TOOLTIP="地址:Number\n寫入:Number、String",rF.MPYTHON_I2C_READFROM_HELPURL="https://mpython.readthedocs.io/zh/master/library/micropython/machine/machine.I2C.html?highlight=I2C#id4",rF.MPYTHON_I2C_READFROM_MESSAGE0="從%1 %5 地址%2 讀取 字節數%3 停止位%4",rF.MPYTHON_I2C_READFROM_TOOLTIP="地址:Number\n返回:讀取數據的 bytes 對象的字符串",rF.MPYTHON_I2C_READFROM_INTO_HELPURL="https://mpython.readthedocs.io/zh/master/library/micropython/machine/machine.I2C.html?highlight=I2C#id4",rF.MPYTHON_I2C_READFROM_INTO_MESSAGE0="從%1 %6 地址%2 讀入緩存區%3 字節數%4 停止位%5",rF.MPYTHON_I2C_READFROM_INTO_TOOLTIP="",rF.MPYTHON_I2C_WRITETO_MEN_HELPURL="https://mpython.readthedocs.io/zh/master/library/micropython/machine/machine.I2C.html?highlight=I2C#id5",rF.MPYTHON_I2C_WRITETO_MEN_MESSAGE0="從%1 %5 地址%2 寄存器%4 寫入%3",rF.MPYTHON_I2C_WRITETO_MEN_TOOLTIP="地址:Number\n寫入:Number、String",rF.MPYTHON_I2C_READFROM_MEN_HELPURL="https://mpython.readthedocs.io/zh/master/library/micropython/machine/machine.I2C.html?highlight=I2C#id5",rF.MPYTHON_I2C_READFROM_MEN_MESSAGE0="從%1 %5 地址%2 寄存器%4 讀取 字節數%3",rF.MPYTHON_I2C_READFROM_MEN_TOOLTIP="地址:Number\n返回:讀取數據的 bytes 對象的字符串",rF.MPYTHON_I2C_READFROM_MEN_INTO_HELPURL="https://mpython.readthedocs.io/zh/master/library/micropython/machine/machine.I2C.html?highlight=I2C#id5",rF.MPYTHON_I2C_READFROM_MEN_INTO_MESSAGE0="從%1 %6 地址%2 寄存器%5 讀入緩存區%3 字節數%4",rF.MPYTHON_I2C_READFROM_MEN_INTO_TOOLTIP="地址:Number\n返回:讀取數據的 bytes 對象的字符串",rF.mpython_print_MESSAGE0="調試輸出 %1",rF.mpython_print_TOOLTIP="通過串口調試,輸出字符串",rF.MPYTHON_PRINT_TO_CHART_TOOLTIP="",rF.MPYTHON_PRINT_TO_CHART_EMPTY_TITLE="打印數據到圖表",rF.MPYTHON_PRINT_TO_CHART_INPUT_WITH="打印數據到圖表",rF.MPYTHON_PRINT_TO_CHART_ITEM_TITLE="數據",rF.MPYTHON_PRINT_TO_CHART_ITEM_TOOLTIP="",rF.MPYTHON_PRINT_TO_CHART_CONTAINER_TITLE_ADD="數據內容",rF.MPYTHON_PRINT_TO_CHART_CONTAINER_TOOLTIP="",rF.MPYTHON_INIT_CHART_TOOLTIP="",rF.MPYTHON_INIT_CHART_EMPTY_TITLE="初始化圖表列標題",rF.MPYTHON_INIT_CHART_INPUT_WITH="初始化圖表列標題",rF.MPYTHON_INIT_CHART_ITEM_TITLE="標題",rF.MPYTHON_INIT_CHART_ITEM_TOOLTIP="",rF.MPYTHON_INIT_CHART_CONTAINER_TITLE_ADD="數據列標題",rF.MPYTHON_INIT_CHART_CONTAINER_TOOLTIP="",rF.MPYTHON_MS="毫秒",rF.MPYTHON_US="微秒",rF.MPYTHON_TIME_DIFFERENCE_HELPURL="",rF.MPYTHON_TIME_DIFFERENCE_MESSAGE0="返回運行時間差 開始時間 %1 結束時間 %2",rF.MPYTHON_TIME_DIFFERENCE_TOOLTIP="测量连续调用ticks_ms()、ticks_us()间的周期",rF.MPYTHON_TYPE_HELPURL="",rF.MPYTHON_TYPE_MESSAGE0="值 %1 的類型",rF.MPYTHON_TYPE_TOOLTIP="",rF.MPYTHON_TYPE_IS_HELPURL="",rF.MPYTHON_TYPE_IS_MESSAGE0="值 %1 的類型為 %2",rF.MPYTHON_TYPE_IS_TOOLTIP="",rF.MPYTHON_EVAL_HELPURL="",rF.MPYTHON_EVAL_MESSAGE0="計算表達式 %1 的結果",rF.MPYTHON_EVAL_TOOLTIP="計算字符串表達式,並返回結果",rF.MPYTHON_RETURN_HELPURL="",rF.MPYTHON_RETURN_MESSAGE0="return %1",rF.MPYTHON_RETURN_TOOLTIP="",rF.MPYTHON_BLUEBIT_GET_MOTORPEED_HELPURL="",rF.MPYTHON_BLUEBIT_GET_MOTORPEED_MESSAGE0="拓展板 電機速度 %1",rF.MPYTHON_BLUEBIT_GET_MOTORPEED_TOOLTIP="",rF.MPYTHON_M1M2_LED_ON_HELPURL="",rF.MPYTHON_M1M2_LED_ON_MESSAGE0="拓展板 設燈 %1 亮度 %2",rF.MPYTHON_M1M2_LED_ON_TOOLTIP="",rF.MPYTHON_M1M2_LED_OFF_HELPURL="",rF.MPYTHON_M1M2_LED_OFF_MESSAGE0="拓展板 關燈 %1",rF.MPYTHON_M1M2_LED_OFF_TOOLTIP="",rF.MPYTHON_BLUEBIT_AMBIENTLIGHT_HELPURL="",rF.MPYTHON_BLUEBIT_AMBIENTLIGHT_MESSAGE0="I2C數字光綫",rF.MPYTHON_BLUEBIT_AMBIENTLIGHT_TOOLTIP="",rF.MPYTHON_BLUEBIT_GET_COLOR_HELPURL="",rF.MPYTHON_BLUEBIT_GET_COLOR_MESSAGE0="I2C RGB 顔色 %1",rF.MPYTHON_BLUEBIT_GET_COLOR_TOOLTIP="",rF.MPYTHON_BLUEBIT_GET_ALL_COLOR_HELPURL="",rF.MPYTHON_BLUEBIT_GET_ALL_COLOR_MESSAGE0="I2C RGB 顔色",rF.MPYTHON_BLUEBIT_GET_ALL_COLOR_TOOLTIP="以列表形式返回",rF.MPYTHON_BLUEBIT_GET_COLOR_HSV_HELPURL="",rF.MPYTHON_BLUEBIT_GET_COLOR_HSV_MESSAGE0="I2C HSV 顔色 %1",rF.MPYTHON_BLUEBIT_GET_COLOR_HSV_TOOLTIP="色調(H),飽和度(S),明度(V)",rF.MPYTHON_BLUEBIT_GET_ALL_COLOR_HSV_HELPURL="",rF.MPYTHON_BLUEBIT_GET_ALL_COLOR_HSV_MESSAGE0="I2C HSV 顔色",rF.MPYTHON_BLUEBIT_GET_ALL_COLOR_HSV_TOOLTIP="色調(H),飽和度(S),明度(V)",rF.MPYTHON_BLUEBIT_GET_FORCE_MEASURE_HELPURL="",rF.MPYTHON_BLUEBIT_GET_FORCE_MEASURE_MESSAGE0="I2C力感測器 撥碼 %1",rF.MPYTHON_BLUEBIT_GET_FORCE_MEASURE_TOOLTIP="I2C地址與編碼開關的需要對應",rF.MPYTHON_BLUEBIT_GET_ELECTRICITY_MEASURE_HELPURL="",rF.MPYTHON_BLUEBIT_GET_ELECTRICITY_MEASURE_MESSAGE0="I2C电流感測器 撥碼 %1",rF.MPYTHON_BLUEBIT_GET_ELECTRICITY_MEASURE_TOOLTIP="I2C地址與編碼開關的需要對應",rF.MPYTHON_BLUEBIT_GET_VOLTAGE_MEASURE_HELPURL="",rF.MPYTHON_BLUEBIT_GET_VOLTAGE_MEASURE_MESSAGE0="I2C電壓感測器 撥碼 %1",rF.MPYTHON_BLUEBIT_GET_VOLTAGE_MEASURE_TOOLTIP="I2C地址與編碼開關的需要對應",rF.MPYTHON_BLUEBIT_GET_MAGNETIC_MEASURE_HELPURL="",rF.MPYTHON_BLUEBIT_GET_MAGNETIC_MEASURE_MESSAGE0="I2C磁場感測器 撥碼 %1",rF.MPYTHON_BLUEBIT_GET_MAGNETIC_MEASURE_TOOLTIP="I2C地址與編碼開關的需要對應",rF.MPYTHON_BLUEBIT_GET_PH_MEASURE_HELPURL="",rF.MPYTHON_BLUEBIT_GET_PH_MEASURE_MESSAGE0="I2C PH感測器 撥碼 %1",rF.MPYTHON_BLUEBIT_GET_PH_MEASURE_TOOLTIP="I2C地址與編碼開關的需要對應",rF.MPYTHON_BLUEBIT_GET_TDS_MEASURE_HELPURL="",rF.MPYTHON_BLUEBIT_GET_TDS_MEASURE_MESSAGE0="I2C電導率感測器 撥碼 %1",rF.MPYTHON_BLUEBIT_GET_TDS_MEASURE_TOOLTIP="I2C地址與編碼開關的需要對應",rF.MPYTHON_BLUEBIT_GET_PRESSURE_MEASURE_HELPURL="",rF.MPYTHON_BLUEBIT_GET_PRESSURE_MEASURE_MESSAGE0="I2C氣壓感測器 撥碼 %1",rF.MPYTHON_BLUEBIT_GET_PRESSURE_MEASURE_TOOLTIP="I2C地址與編碼開關的需要對應",rF.MPYTHON_BLUEBIT_GET_PHOTOGATE_TIMER_MEASURE_HELPURL="",rF.MPYTHON_BLUEBIT_GET_PHOTOGATE_TIMER_MEASURE_MESSAGE0="I2C光電門感測器 撥碼 %1",rF.MPYTHON_BLUEBIT_GET_PHOTOGATE_TIMER_MEASURE_TOOLTIP="I2C地址與編碼開關的需要對應",rF.MPYTHON_WIFI_ALL_CONFIG_HELPURL="",rF.MPYTHON_WIFI_ALL_CONFIG_MESSAGE0="WI-FI配置信息",rF.MPYTHON_WIFI_ALL_CONFIG_TOOLTIP="以元組形式返回所有wifi配置信息",rF.MPYTHON_WIFI_ISCONNECTED_HELPURL="",rF.MPYTHON_WIFI_ISCONNECTED_MESSAGE0="已連接到 WI-FI",rF.MPYTHON_WIFI_ISCONNECTED_TOOLTIP="",rF.MPYTHON_INIT_ASSISTANT_WIFI_HELPURL="",rF.MPYTHON_INIT_ASSISTANT_WIFI_MESSAGE0="Wi-Fi連接 語音助手 Wi-Fi 名稱 %1 密碼 %2",rF.MPYTHON_INIT_ASSISTANT_WIFI_TOOLTIP="掌控板通過串口把WIF傳給語音助手",rF.MPYTHON_INIT_ASSISTANT_PROFILE_HELPURL="",rF.MPYTHON_INIT_ASSISTANT_PROFILE_TOOLTIP="需要先在檔案系統將文件上傳到板",rF.MPYTHON_INIT_ASSISTANT_PROFILE_MESSAGE0="讀取 語音助手 文字檔 %1",rF.MPYTHON_BLUEBIT_SEG_DISPLAY_HELPURL="",rF.MPYTHON_BLUEBIT_SEG_DISPLAY_MESSAGE0="數碼管顯示 %1",rF.MPYTHON_BLUEBIT_SEG_DISPLAY_TOOLTIP="-999~9999",rF.MPYTHON_MACHINE_RESET_HELPURL="",rF.MPYTHON_MACHINE_RESET_MESSAGE0="復位",rF.MPYTHON_MACHINE_RESET_TOOLTIP="與按下外部RESET按鍵效果一樣",rF.MPYTHON_BLUEBIT_SEG_CLEAR_HELPURL="",rF.MPYTHON_BLUEBIT_SEG_CLEAR_MESSAGE0="清空數碼管",rF.MPYTHON_BLUEBIT_SEG_CLEAR_TOOLTIP="",rF.MPYTHON_MUSIC_PIN_P6="默認",rF.MPYTHON_MUSIC_PIN_P6_HELPURL="",rF.MPYTHON_MUSIC_PIN_P6_MESSAGE0="%1",rF.MPYTHON_MUSIC_PIN_P6_TOOLTIP="",rF.MPYTHON_SLEEP_MESSAGE0="等待 %1 %2",rF.MPYTHON_SLEEP_TOOLTIP="在進行下一個命令前,等待設定的時間。\n1秒(s) = 1,000毫秒(ms)\n1秒(s) = 1,000,000微秒(μs)\n毫秒,符號ms(millisecond)\n微秒,符號μs(microsecond)",rF.MICROBIT_MICROBIT_RUNNING_TIME_MESSAGE0="運行時間",rF.MICROBIT_MICROBIT_RUNNING_TIME_TOOLTIP="獲取開機或復位後的運行時間(毫秒)。",rF.MICROBIT_MICROBIT_RUNNING_TIME_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/microbit.html#microbit.running_time",rF.MICROBIT_MICROBIT_TEMPERATURE_MESSAGE0="溫度",rF.MICROBIT_MICROBIT_TEMPERATURE_TOOLTIP="獲取 micro:bit 的溫度(℃)。",rF.MICROBIT_MICROBIT_TEMPERATURE_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/microbit.html#microbit.temperature",rF.MICROBIT_MUSIC_PLAY_BUILT_IN_MESSAGE0="播放音樂 %1 等待 %2 循環 %3 引脚 %4",rF.MICROBIT_MUSIC_PLAY_BUILT_IN_TOOLTIP="播放內置的音樂,可以設置等待模式和循環播放。",rF.MICROBIT_MUSIC_PLAY_BUILT_IN_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/music.html#built-in-melodies",rF.MICROBIT_MUSIC_PITCH_MESSAGE0="播放音調 %1 %2 延時 %3 毫秒 引脚 %4",rF.MICROBIT_MUSIC_PITCH_TOOLTIP="在設定的時間長度裏播放音調。",rF.MICROBIT_MUSIC_PITCH_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/music.html#music.pitch",rF.MICROBIT_MUSIC_PLAY_LIST_OF_NOTES_MESSAGE0="引脚 %5 播放音符列表 %1 等待 %2 %3 循環 %4",rF.MICROBIT_MUSIC_PLAY_LIST_OF_NOTES_TOOLTIP="播放音符列表,如C4:4、G4:8等,音符為字符串形式。默認是掌控板的P6引脚",rF.MICROBIT_MUSIC_PLAY_LIST_OF_NOTES_HELPURL="https://mpython.readthedocs.io/zh/latest/tutorials/basics/buzz.html",rF.MICROBIT_MUSIC_RESET_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/music.html#music.reset",rF.MICROBIT_MUSIC_RESET_MESSAGE0="恢復音樂設置",rF.MICROBIT_MUSIC_RESET_TOOLTIP="將所有音樂設置 (當前節拍, 音階和周期) 恢復成默認值。",rF.MICROBIT_MUSIC_STOP_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/music.html#music.stop",rF.MICROBIT_MUSIC_STOP_MESSAGE0="停止播放音樂 引脚 %1",rF.MICROBIT_MUSIC_STOP_TOOLTIP="默認是掌控板的P6引脚",rF.MICROBIT_MUSIC_SET_TEMPO_MESSAGE0="設置每一拍等同 %1 分音符,每分鐘節拍數 %2",rF.MICROBIT_MUSIC_SET_TEMPO_TOOLTIP="設置回放速度 (節拍)。一定數量的滴答代表一拍,每拍每分鐘播放次數 (BPM 每分鐘節拍)。",rF.MICROBIT_MUSIC_SET_TEMPO_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/music.html#music.set_tempo",rF.MICROBIT_MUSIC_SET_TEMPO_SPEED_MESSAGE0="設置播放速度為 %1 倍",rF.MICROBIT_MUSIC_SET_TEMPO_SPEED_TOOLTIP="4分音符為1拍,每分鐘節拍數默認120,為1倍的播放速度",rF.MICROBIT_MUSIC_SET_TEMPO_SPEED_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/music.html#music.set_tempo",rF.MICROBIT_MUSIC_GET_TEMPO_MESSAGE0="獲取當前節拍",rF.MICROBIT_MUSIC_GET_TEMPO_TOOLTIP="獲取當前節拍: 每節拍滴答數, 每分鐘節拍 (BPM)。",rF.MICROBIT_MUSIC_GET_TEMPO_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/music.html#music.get_tempo",rF.MICROBIT_NEOPIXEL_INITIALISE_MESSAGE0="使用 引腳 %1 控制, neopixel 彩燈數 %2 ",rF.MICROBIT_NEOPIXEL_INITIALISE_TOOLTIP="控制 neopixels 彩燈。需要設定 neopixels 彩燈數量和控制腳。",rF.MICROBIT_NEOPIXEL_INITIALISE_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/neopixel.html#neopixel.NeoPixel",rF.MICROBIT_NEOPIXEL_CLEAR_MESSAGE0="清除 neopixels 彩燈 %1",rF.MICROBIT_NEOPIXEL_CLEAR_TOOLTIP="清除所有 neopixels 彩燈",rF.MICROBIT_NEOPIXEL_CLEAR_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/neopixel.html#neopixel.NeoPixel.clear",rF.MICROBIT_NEOPIXEL_SHOW_MESSAGE0="顯示 neopixels 彩燈 %1",rF.MICROBIT_NEOPIXEL_SHOW_TOOLTIP="顯示 / 更新全部 neopixels 彩燈。",rF.MICROBIT_NEOPIXEL_SHOW_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/neopixel.html#neopixel.NeoPixel.show",rF.MICROBIT_NEOPIXEL_SET_MESSAGE0="neopixels 彩燈控制 %1 設置位置 %2 紅色 %3 綠色 %4 藍色 %5",rF.MICROBIT_NEOPIXEL_SET_TOOLTIP="更新指定的 neopixel 彩燈的紅、綠、藍 (RGB) 顏色",rF.MICROBIT_NEOPIXEL_SET_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/neopixel.html#using-neopixels",rF.MICROBIT_PIN_TOUCHED_MESSAGE0="引腳 %1 被觸摸",rF.MICROBIT_PIN_TOUCHED_TOOLTIP="如果引腳被觸摸將返回 “真”。",rF.MICROBIT_PIN_TOUCHED_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/pin.html#microbit.MicroBitTouchPin.is_touched",rF.MICROBIT_PIN_WAS_PRESSED_MESSAGE0="引腳 %1 曾經被觸摸",rF.MICROBIT_PIN_WAS_PRESSED_TOOLTIP="如果引腳曾經被觸摸將返回 “真”。",rF.MICROBIT_PIN_WAS_PRESSED_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/pin.html#microbit.MicroBitTouchPin.was_pressed",rF.MICROBIT_PIN_GET_PRESSES_MESSAGE0="引腳 %1 被觸摸的次數",rF.MICROBIT_PIN_GET_PRESSES_TOOLTIP="返回被觸摸的次數,然後清零。",rF.MICROBIT_PIN_GET_PRESSES_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/pin.html#microbit.MicroBitTouchPin.get_presses",rF.MICROBIT_PIN_READ_ANALOG_MESSAGE0="讀取引腳 %1 模擬電壓",rF.MICROBIT_PIN_READ_ANALOG_TOOLTIP="讀取引腳的模擬輸入電壓。",rF.MICROBIT_PIN_READ_ANALOG_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/pin.html#microbit.MicroBitAnalogDigitalPin.read_analog",rF.MICROBIT_PIN_WRITE_ANALOG_MESSAGE0="設置模擬量 %1 到引腳 %2",rF.MICROBIT_PIN_WRITE_ANALOG_TOOLTIP="寫入模擬參數到指定引腳上。",rF.MICROBIT_PIN_WRITE_ANALOG_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/pin.html#microbit.MicroBitAnalogDigitalPin.write_analog",rF.MICROBIT_PIN_READ_DIGITAL_MESSAGE0="讀取引腳 %1 的數字輸入",rF.MICROBIT_PIN_READ_DIGITAL_TOOLTIP="讀取引腳的數字輸入 (真 或 假)。",rF.MICROBIT_PIN_READ_DIGITAL_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/pin.html#microbit.MicroBitDigitalPin.read_digital",rF.MICROBIT_PIN_WRITE_DIGITAL_MESSAGE0="設置數字輸出 %1 到引腳 %2",rF.MICROBIT_PIN_WRITE_DIGITAL_TOOLTIP="寫入數字量 (真 或 假) 到指定引腳。",rF.MICROBIT_PIN_WRITE_DIGITAL_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/pin.html#microbit.MicroBitDigitalPin.write_digital",rF.MICROBIT_RADIO_ON_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/radio.html#radio.on",rF.MICROBIT_RADIO_ON_MESSAGE0="打開無線廣播",rF.MICROBIT_RADIO_ON_TOOLTIP="打開無線廣播。需要明確聲明調用,因為它會消耗更多功率和占用更多內存。",rF.MICROBIT_RADIO_OFF_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/radio.html#radio.off",rF.MICROBIT_RADIO_OFF_MESSAGE0="關閉無線廣播",rF.MICROBIT_RADIO_OFF_TOOLTIP="關閉無線廣播,節省功耗和內存。",rF.MICROBIT_RADIO_CONFIG_MESSAGE0="配置無線廣播消息長度 %1 %2 最大隊列數量 %3 %4 信道 %5 %6 廣播功率 %7 %8 地址 %9 %10 組 %11 %12 數據速率 %13",rF.MICROBIT_RADIO_CONFIG_TOOLTIP="配置無線廣播。\n 長度指單個消息的最大長度; \n 隊列指可以存放在消息隊列中消息的數量; \n 信道指無線廣播使用的無線頻率; \n 功率指發射廣播信號的強度; \n 地址:32位值; \n 組:8位值(0-255); \n 數據速率指數據傳輸的速度。",rF.MICROBIT_RADIO_CONFIG_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/radio.html#radio.config",rF.MICROBIT_RADIO_RESET_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/radio.html#radio.reset",rF.MICROBIT_RADIO_RESET_MESSAGE0="復位無線廣播",rF.MICROBIT_RADIO_RESET_TOOLTIP="恢復無線廣播到默認設置。",rF.MICROBIT_RADIO_SEND_STRING_MESSAGE0="發送消息 %1",rF.MICROBIT_RADIO_SEND_STRING_TOOLTIP="廣播文字消息。",rF.MICROBIT_RADIO_SEND_STRING_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/radio.html#radio.send",rF.MICROBIT_RADIO_SEND_BYTES_MESSAGE0="發送字節 %1",rF.MICROBIT_RADIO_SEND_BYTES_TOOLTIP="廣播字節。",rF.MICROBIT_RADIO_SEND_BYTES_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/radio.html#radio.send",rF.MICROBIT_RADIO_RECEIVE_MESSAGE0="接收消息",rF.MICROBIT_RADIO_RECEIVE_TOOLTIP="接收消息。",rF.MICROBIT_RADIO_RECEIVE_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/radio.html#radio.receive",rF.MICROBIT_RADIO_RECEIVE_BYTES_MESSAGE0="接收字節",rF.MICROBIT_RADIO_RECEIVE_BYTES_TOOLTIP="接收字節。",rF.MICROBIT_RADIO_RECEIVE_BYTES_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/radio.html#radio.receive",rF.MICROBIT_SPEECH_SAY_MESSAGE0="說 %1",rF.MICROBIT_SPEECH_SAY_TOOLTIP="嘗試說英語",rF.MICROBIT_SPEECH_SAY_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/speech.html#speech.say",rF.MICROBIT_SPEECH_PRONOUNCE_MESSAGE0="讀 %1",rF.MICROBIT_SPEECH_PRONOUNCE_TOOLTIP="精確發音。",rF.MICROBIT_SPEECH_PRONOUNCE_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/speech.html#phonemes",rF.MICROBIT_SPEECH_SING_MESSAGE0="唱 %1",rF.MICROBIT_SPEECH_SING_TOOLTIP="象機器人一樣唱歌。",rF.MICROBIT_SPEECH_SING_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/speech.html#singing",rF.MICROBIT_GESTURE_SHAKE="搖晃",rF.MICROBIT_GESTURE_UP="上",rF.MICROBIT_GESTURE_DOWN="下",rF.MICROBIT_GESTURE_LEFT="左",rF.MICROBIT_GESTURE_RIGHT="右",rF.MICROBIT_GESTURE_FACE_UP="朝上",rF.MICROBIT_GESTURE_FACE_DOWN="朝下",rF.MICROBIT_GESTURE_FREEFAIL="自由下落",rF.MICROBIT_IMAGE_HEART="心形",rF.MICROBIT_IMAGE_HEART_SMALL="心(小)",rF.MICROBIT_IMAGE_HAPPY="高興",rF.MICROBIT_IMAGE_SMILE="笑臉",rF.MICROBIT_IMAGE_SAD="傷心",rF.MICROBIT_IMAGE_CONFUSED="困惑",rF.MICROBIT_IMAGE_ANGRY="生氣",rF.MICROBIT_IMAGE_ASLEEP="睡著",rF.MICROBIT_IMAGE_SUPRISED="驚訝",rF.MICROBIT_IMAGE_SILLY="愚蠢",rF.MICROBIT_IMAGE_FABULOUS="極妙",rF.MICROBIT_IMAGE_MEH="無聊",rF.MICROBIT_IMAGE_YES="是",rF.MICROBIT_IMAGE_NO="否",rF.MICROBIT_IMAGE_CLOCK12="12點",rF.MICROBIT_IMAGE_CLOCK11="11點",rF.MICROBIT_IMAGE_CLOCK10="10點",rF.MICROBIT_IMAGE_CLOCK9="9點",rF.MICROBIT_IMAGE_CLOCK8="8點",rF.MICROBIT_IMAGE_CLOCK7="7點",rF.MICROBIT_IMAGE_CLOCK6="6點",rF.MICROBIT_IMAGE_CLOCK5="5點",rF.MICROBIT_IMAGE_CLOCK4="4點",rF.MICROBIT_IMAGE_CLOCK3="3點",rF.MICROBIT_IMAGE_CLOCK2="2點",rF.MICROBIT_IMAGE_CLOCK1="1點",rF.MICROBIT_IMAGE_ARROW_N="箭頭-北",rF.MICROBIT_IMAGE_ARROW_NE="箭頭-東北",rF.MICROBIT_IMAGE_ARROW_E="箭頭-東",rF.MICROBIT_IMAGE_ARROW_SE="箭頭-東南",rF.MICROBIT_IMAGE_ARROW_S="箭頭-南",rF.MICROBIT_IMAGE_ARROW_SW="箭頭-西南",rF.MICROBIT_IMAGE_ARROW_W="箭頭-西",rF.MICROBIT_IMAGE_ARROW_NW="箭頭-西北",rF.MICROBIT_IMAGE_TRIANGLE="三角形",rF.MICROBIT_IMAGE_TRIANGLE_LEFT="左三角形",rF.MICROBIT_IMAGE_CHESSBOARD="棋盤",rF.MICROBIT_IMAGE_DIAMOND="菱形",rF.MICROBIT_IMAGE_DIAMOND_SMALL="菱形(小)",rF.MICROBIT_IMAGE_SQUARE="方形",rF.MICROBIT_IMAGE_SQUARE_SMALL="方形(小)",rF.MICROBIT_IMAGE_RABBIT="兔子",rF.MICROBIT_IMAGE_COW="牛",rF.MICROBIT_IMAGE_MUSIC_CROTCHET="四分音符",rF.MICROBIT_IMAGE_MUSIC_QUAVER="八分音符",rF.MICROBIT_IMAGE_MUSIC_QUAVERS="顫音",rF.MICROBIT_IMAGE_PITCHFORK="叉子",rF.MICROBIT_IMAGE_XMAS="聖誕樹",rF.MICROBIT_IMAGE_PACMAN="吃豆人",rF.MICROBIT_IMAGE_TARGET="目標",rF.MICROBIT_IMAGE_TSHIRT="T恤衫",rF.MICROBIT_IMAGE_ROLLERSKATE="輪滑",rF.MICROBIT_IMAGE_DUCK="鴨子",rF.MICROBIT_IMAGE_HOUSE="房子",rF.MICROBIT_IMAGE_TORTOISE="烏龜",rF.MICROBIT_IMAGE_BUTTERFLY="蝴蝶",rF.MICROBIT_IMAGE_STICKFIGURE="線條畫",rF.MICROBIT_IMAGE_GHOST="幽靈",rF.MICROBIT_IMAGE_SWORD="寶劍",rF.MICROBIT_IMAGE_GIRAFFE="長頸鹿",rF.MICROBIT_IMAGE_SKULL="頭",rF.MICROBIT_IMAGE_UMBRELLA="傘",rF.MICROBIT_IMAGE_SNAKE="蛇",rF.MICROBIT_IMAGE_ALL_CLOCKS="所有時鐘",rF.MICROBIT_IMAGE_ALL_ARROWS="所有箭頭",rF.MICROBIT_PIN_SET_SERVO_HELPURL="http://wiki.labplus.cn/index.php?title=%E8%88%B5%E6%9C%BA",rF.MICROBIT_PIN_SET_SERVO_TOOLTIP="設置舵機角度,範圍為 0 ~ 180度",rF.MICROBIT_PIN_SET_SERVO_MESSAGE0="設置舵機 引腳 %1 角度為 %2",rF.MICROBIT_PIN_SET_MODE_HELPURL="",rF.MICROBIT_PIN_SET_MODE_TOOLTIP="引腳模式有三種:懸空、上拉、下拉",rF.MICROBIT_PIN_SET_MODE_MESSAGE0="設置引腳 %1 模式為 %2",rF.MICROBIT_PIN_MODE_NO="懸空",rF.MICROBIT_PIN_MODE_UP="上拉",rF.MICROBIT_PIN_MODE_DOWN="下拉",rF.MICROBIT_UART_INIT_MESSAGE0="初始化串口波特率為 %3 TX為 %1 RX為 %2",rF.MICROBIT_UART_INIT_TOOLTIP="",rF.MICROBIT_UART_INIT_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/uart.html",rF.MICROBIT_UART_ANY_MSG_RECEIVED_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/uart.html",rF.MICROBIT_UART_ANY_MSG_RECEIVED_TOOLTIP="",rF.MICROBIT_UART_ANY_MSG_RECEIVED_MESSAGE0="串口接收到數據",rF.MICROBIT_UART_READ_MSG_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/uart.html",rF.MICROBIT_UART_READ_MSG_TOOLTIP="",rF.MICROBIT_UART_READ_MSG_MESSAGE0="讀取串口 %1 字節",rF.MICROBIT_UART_READ_MSG_TO_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/uart.html",rF.MICROBIT_UART_READ_MSG_TO_TOOLTIP="",rF.MICROBIT_UART_READ_MSG_TO_MESSAGE0="讀取串口 %1 字節存至 %2",rF.MICROBIT_UART_WRITE_MSG_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/uart.html",rF.MICROBIT_UART_WRITE_MSG_TOOLTIP="",rF.MICROBIT_UART_WRITE_MSG_MESSAGE0="串口發送數據 %1",rF.MICROBIT_ALL_BYTES="全部",rF.MICROBIT_ALINE_BYTES="一行",rF.LABPLUS_BUTTON_IS_PRESSED_MESSAGE0="引腳 %1 被觸發",rF.LABPLUS_BUTTON_IS_PRESSED_TOOLTIP="如果指定按鍵按下返回 “真”,否則返回 “假”。",rF.LABPLUS_BUTTON_IS_PRESSED_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/button.html#Button.is_pressed",rF.LABPLUS_BUTTON_WAS_PRESSED_MESSAGE0="引腳 %1 曾經被觸發",rF.LABPLUS_BUTTON_WAS_PRESSED_TOOLTIP="如果按鍵曾經按下過返回 “真”,否則返回 “假”。",rF.LABPLUS_BUTTON_WAS_PRESSED_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/button.html#Button.was_pressed",rF.LABPLUS_BUTTON_GET_PRESSES_MESSAGE0="引腳 %1 被觸發過的次數",rF.LABPLUS_BUTTON_GET_PRESSES_TOOLTIP="返回按鍵按下的總次數,然後清除計數。",rF.LABPLUS_BUTTON_GET_PRESSES_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/button.html#Button.get_presses",rF.LABPLUS_LED_MESSAGE0="設置LED燈 引腳 %2 輸出 %1",rF.LABPLUS_LED_TOOLTIP="",rF.LABPLUS_LED_HELPURL="http://wiki.labplus.cn/index.php?title=LED",rF.LABPLUS_INFRARED_IS_TRIGGERED_MESSAGE0="紅外探測 引腳 %1 被觸發",rF.LABPLUS_INFRARED_IS_TRIGGERED_TOOLTIP="",rF.LABPLUS_INFRARED_IS_TRIGGERED_HELPURL="http://wiki.labplus.cn/index.php?title=%E7%BA%A2%E5%A4%96%E6%8E%A2%E6%B5%8B",rF.LABPLUS_HEAT_SENSITIVE_DETECTOR_MESSAGE0="熱敏傳感器 引腳 %1 的值",rF.LABPLUS_HEAT_SENSITIVE_DETECTOR_TOOLTIP="",rF.LABPLUS_HEAT_SENSITIVE_DETECTOR_HELPURL="http://wiki.labplus.cn/index.php?title=%E7%83%AD%E6%95%8F%E7%94%B5%E9%98%BB",rF.LABPLUS_I2C_LIGHT_SENSOR_MESSAGE0="I2C數字光線傳感器的值(lux)",rF.LABPLUS_I2C_LIGHT_SENSOR_TOOLTIP="",rF.LABPLUS_I2C_LIGHT_SENSOR_HELPURL="http://wiki.labplus.cn/index.php?title=%E6%95%B0%E5%AD%97%E5%85%89%E7%BA%BF",rF.LABPLUS_WATER_LEVEL_DETECTOR_MESSAGE0="水位傳感器 引腳 %1 的值",rF.LABPLUS_WATER_LEVEL_DETECTOR_TOOLTIP="",rF.LABPLUS_WATER_LEVEL_DETECTOR_HELPURL="http://wiki.labplus.cn/index.php?title=%E6%B0%B4%E4%BD%8D",rF.LABPLUS_SMOKE_DETECTOR_IS_TRIGGERED_MESSAGE0="煙霧探測器 引腳 %1 被觸發",rF.LABPLUS_SMOKE_DETECTOR_IS_TRIGGERED_TOOLTIP="",rF.LABPLUS_SMOKE_DETECTOR_IS_TRIGGERED_HELPURL="http://wiki.labplus.cn/index.php?title=%E7%83%9F%E9%9B%BE",rF.LABPLUS_BUZZER_FOR_HELPURL="http://wiki.labplus.cn/index.php?title=%E8%9C%82%E9%B8%A3%E5%99%A8",rF.LABPLUS_BUZZER_FOR_TOOLTIP="",rF.LABPLUS_BUZZER_FOR_MESSAGE0="以頻率 %1 激活蜂鳴器 引腳0 %2 毫秒",rF.LABPLUS_BUZZER_ON_HELPURL="http://wiki.labplus.cn/index.php?title=%E8%9C%82%E9%B8%A3%E5%99%A8",rF.LABPLUS_BUZZER_ON_TOOLTIP="",rF.LABPLUS_BUZZER_ON_MESSAGE0="以頻率 %1 激活蜂鳴器 引腳0",rF.LABPLUS_BUZZER_OFF_HELPURL="http://wiki.labplus.cn/index.php?title=%E8%9C%82%E9%B8%A3%E5%99%A8",rF.LABPLUS_BUZZER_OFF_TOOLTIP="",rF.LABPLUS_BUZZER_OFF_MESSAGE0="關閉蜂鳴器 引腳0",rF.LABPLUS_TM_HM_SENSOR_MESSAGE0="I2C溫濕度傳感器的 %1 值",rF.LABPLUS_TM_HM_SENSOR_TOOLTIP="",rF.LABPLUS_TM_HM_SENSOR_HELPURL="http://wiki.labplus.cn/index.php?title=%E6%B8%A9%E6%B9%BF%E5%BA%A6",rF.LABPLUS_TM_HM_SENSOR_TM="溫度",rF.LABPLUS_TM_HM_SENSOR_HM="濕度",rF.LABPLUS_SET_SERVO_HELPURL="http://wiki.labplus.cn/index.php?title=%E8%88%B5%E6%9C%BA",rF.LABPLUS_SET_SERVO_TOOLTIP="",rF.LABPLUS_SET_SERVO_MESSAGE0="設置舵機 引腳 %1 角度為 %2",rF.LABPLUS_FINGERPRINT_SENSOR_MESSAGE0="指紋傳感器 引腳 %1 驗證通過",rF.LABPLUS_FINGERPRINT_SENSOR_TOOLTIP="",rF.LABPLUS_FINGERPRINT_SENSOR_HELPURL="http://wiki.labplus.cn/index.php?title=%E6%8C%87%E7%BA%B9",rF.LABPLUS_SET_MOTOR_HELPURL="",rF.LABPLUS_SET_MOTOR_TOOLTIP="",rF.LABPLUS_SET_MOTOR_MESSAGE0="設置電機 %1 方向 %2 速度 %3",rF.LABPLUS_SET_MOTOR_CLOCKWISE="正轉",rF.LABPLUS_SET_MOTOR_ANTI_CLOCKWISE="反轉",rF.LABPLUS_STOP_MOTOR_HELPURL="",rF.LABPLUS_STOP_MOTOR_TOOLTIP="",rF.LABPLUS_STOP_MOTOR_MESSAGE0="停止電機",rF.LABPLUS_GET_RFID_ID_MESSAGE0="射頻卡 引腳 %1 驗證通過",rF.LABPLUS_GET_RFID_ID_TOOLTIP="",rF.LABPLUS_GET_RFID_ID_HELPURL="http://wiki.labplus.cn/index.php?title=RFID",rF.LABPLUS_GET_RFID_VALUE_MESSAGE0="電子錢包 引腳 %1 余額",rF.LABPLUS_GET_RFID_VALUE_TOOLTIP="",rF.LABPLUS_GET_RFID_VALUE_HELPURL="",rF.LABPLUS_SET_RFID_VALUE_MESSAGE0="設置電子錢包 引腳 %1 余額 %2 %3",rF.LABPLUS_SET_RFID_VALUE_TOOLTIP="",rF.LABPLUS_SET_RFID_VALUE_HELPURL="",rF.LABPLUS_SET_RFID_ADD="增加",rF.LABPLUS_SET_RFID_MINUS="減少",rF.LABPLUS_SOUND_IS_TRIGGERED_MESSAGE0="聲音傳感器 引腳 %1 被觸發",rF.LABPLUS_SOUND_IS_TRIGGERED_TOOLTIP="",rF.LABPLUS_SOUND_IS_TRIGGERED_HELPURL="http://wiki.labplus.cn/index.php?title=%E9%BA%A6%E5%85%8B%E9%A3%8E",rF.LABPLUS_USB_SWITCH_HELPURL="",rF.LABPLUS_USB_SWITCH_TOOLTIP="",rF.LABPLUS_USB_SWITCH_MESSAGE0="%1 USB開關 引腳 %2",rF.LABPLUS_USB_SWITCH_ON="打開",rF.LABPLUS_USB_SWITCH_OFF="關閉",rF.LABPLUS_VOICE_RECORD_HELPURL="",rF.LABPLUS_VOICE_RECORD_TOOLTIP="",rF.LABPLUS_VOICE_RECORD_MESSAGE0="%1 語音錄放器 引腳 %2",rF.LABPLUS_VOICE_RECORD_ON="打開",rF.LABPLUS_VOICE_RECORD_OFF="關閉",rF.LABPLUS_RGB_INITIALISE_MESSAGE0="使用 引腳 %1 控制,RGB 彩燈數 %2 ",rF.LABPLUS_RGB_INITIALISE_TOOLTIP="控制 RGB 彩燈。需要設定 neopixels 彩燈數量和控制腳。",rF.LABPLUS_RGB_INITIALISE_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/neopixel.html#neopixel.NeoPixel",rF.LABPLUS_RGB_CLEAR_MESSAGE0="清除 RGB 彩燈 %1",rF.LABPLUS_RGB_CLEAR_TOOLTIP="清除所有 RGB 彩燈",rF.LABPLUS_RGB_CLEAR_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/neopixel.html#neopixel.NeoPixel.clear",rF.LABPLUS_RGB_SHOW_MESSAGE0="顯示 RGB 彩燈 %1",rF.LABPLUS_RGB_SHOW_TOOLTIP="顯示 / 更新全部 RGB 彩燈。",rF.LABPLUS_RGB_SHOW_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/neopixel.html#neopixel.NeoPixel.show",rF.LABPLUS_RGB_SET_MESSAGE0="RGB 彩燈控制 %1 設置位置 %2 紅色 %3 綠色 %4 藍色 %5",rF.LABPLUS_RGB_SET_TOOLTIP="更新指定的 RGB 彩燈的紅、綠、藍 (RGB) 顏色",rF.LABPLUS_RGB_SET_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/neopixel.html#using-neopixels",rF.LABPLUS_COMPITITION_INIT_EXTENDED_PINS_MESSAGE0="設置擴展端口 IO %1 為 %2",rF.LABPLUS_COMPITITION_INIT_EXTENDED_PINS_TOOLTIP="0表示輸出引腳,1表示輸入引腳",rF.LABPLUS_COMPITITION_INIT_EXTENDED_PINS_HELPURL="http://wiki.labplus.cn/index.php?title=%E7%AB%AF%E5%8F%A3%E6%89%A9%E5%B1%95",rF.LABPLUS_COMPITITION_INIT_EXTENDED_PINS_INPUT="輸入",rF.LABPLUS_COMPITITION_INIT_EXTENDED_PINS_OUTPUT="輸出",rF.LABPLUS_READ_EXTENDED_PIN_HELPURL="http://wiki.labplus.cn/index.php?title=%E7%AB%AF%E5%8F%A3%E6%89%A9%E5%B1%95",rF.LABPLUS_READ_EXTENDED_PIN_TOOLTIP="",rF.LABPLUS_READ_EXTENDED_PIN_MESSAGE0="讀取擴展端口值 IO %1",rF.LABPLUS_WRITE_EXTENDED_PIN_HELPURL="http://wiki.labplus.cn/index.php?title=%E7%AB%AF%E5%8F%A3%E6%89%A9%E5%B1%95",rF.LABPLUS_WRITE_EXTENDED_PIN_TOOLTIP="",rF.LABPLUS_WRITE_EXTENDED_PIN_MESSAGE0="設置擴展端口 IO %1 值為 %2",rF.LABPLUS_I2C_ULTRASONIC_HELPURL="http://wiki.labplus.cn/index.php?title=%E8%B6%85%E5%A3%B0%E6%B3%A2",rF.LABPLUS_I2C_ULTRASONIC_TOOLTIP="",rF.LABPLUS_I2C_ULTRASONIC_MESSAGE0="I2C超聲波傳感器的值",rF.MICROBIT_SET_MUSIC_PIN_HELPURL="",rF.MICROBIT_SET_MUSIC_PIN_TOOLTIP="",rF.MICROBIT_SET_MUSIC_PIN_MESSAGE0="設置默認蜂鳴器引腳為 %1",rF.LABPLUS_HUMAN_DETECTOR_IS_TRIGGERED_HELPURL="http://wiki.labplus.cn/index.php?title=%E4%BA%BA%E4%BD%93%E6%84%9F%E5%BA%94",rF.LABPLUS_HUMAN_DETECTOR_IS_TRIGGERED_TOOLTIP="",rF.LABPLUS_HUMAN_DETECTOR_IS_TRIGGERED_MESSAGE0="人體感應 引腳 %1 被觸發",rF.LABPLUS_MAGNETIC_SWITCH_IS_TRIGGERED_HELPURL="http://wiki.labplus.cn/index.php?title=%E9%97%A8%E7%A3%81%E5%BC%80%E5%85%B3",rF.LABPLUS_MAGNETIC_SWITCH_IS_TRIGGERED_TOOLTIP="",rF.LABPLUS_MAGNETIC_SWITCH_IS_TRIGGERED_MESSAGE0="門磁開關 引腳 %1 被觸發",rF.LABPLUS_SOUND_LEVEL_SENSOR_HELPURL="",rF.LABPLUS_SOUND_LEVEL_SENSOR_TOOLTIP="",rF.LABPLUS_SOUND_LEVEL_SENSOR_MESSAGE0="聲音傳感器 引腳 %1 的值",rF.LABPLUS_SMOKE_SENSOR_HELPURL="http://wiki.labplus.cn/index.php?title=%E7%83%9F%E9%9B%BE",rF.LABPLUS_SMOKE_SENSOR_TOOLTIP="",rF.LABPLUS_SMOKE_SENSOR_MESSAGE0="煙霧傳感器 引腳 %1 的值",rF.LABPLUS_SOIL_MOISTURE_SENSOR_HELPURL="http://wiki.labplus.cn/index.php?title=%E5%9C%9F%E5%A3%A4%E6%B9%BF%E5%BA%A6",rF.LABPLUS_SOIL_MOISTURE_SENSOR_TOOLTIP="",rF.LABPLUS_SOIL_MOISTURE_SENSOR_MESSAGE0="土壤濕度傳感器 引腳 %1 的值",rF.LABPLUS_FAN_SWITCH_HELPURL="http://wiki.labplus.cn/index.php?title=%E6%8E%92%E9%A3%8E%E6%89%87",rF.LABPLUS_FAN_SWITCH_TOOLTIP="",rF.LABPLUS_FAN_SWITCH_MESSAGE0="%1 風扇 引腳 %2",rF.LABPLUS_VOICE_RECORD_ON_HELPURL="http://wiki.labplus.cn/index.php?title=%E8%AF%AD%E9%9F%B3%E5%BD%95%E6%94%BE",rF.LABPLUS_VOICE_RECORD_ON_TOOLTIP="",rF.LABPLUS_VOICE_RECORD_ON_MESSAGE0="打開錄放器 %1 引腳 %2",rF.LABPLUS_VOICE_RECORD_PLAY="播放",rF.LABPLUS_VOICE_RECORD_REC="錄音",rF.LABPLUS_VOICE_RECORD_OFF_HELPURL="http://wiki.labplus.cn/index.php?title=%E8%AF%AD%E9%9F%B3%E5%BD%95%E6%94%BE",rF.LABPLUS_VOICE_RECORD_OFF_TOOLTIP="",rF.LABPLUS_VOICE_RECORD_OFF_MESSAGE0="關閉錄放器 引腳 %1",rF.LABPLUS_MOTOR_ON_HELPURL="http://wiki.labplus.cn/index.php?title=%E7%94%B5%E6%9C%BA%E9%A9%B1%E5%8A%A8",rF.LABPLUS_MOTOR_ON_TOOLTIP="",rF.LABPLUS_MOTOR_ON_MESSAGE0="打開直流電機 %1 速度 %2 引腳 %3",rF.LABPLUS_MOTOR_ON_CLOCKWISE="正轉",rF.LABPLUS_MOTOR_ON_ANTICLOCKWISE="反轉",rF.LABPLUS_MOTOR_OFF_HELPURL="http://wiki.labplus.cn/index.php?title=%E7%94%B5%E6%9C%BA%E9%A9%B1%E5%8A%A8",rF.LABPLUS_MOTOR_OFF_TOOLTIP="",rF.LABPLUS_MOTOR_OFF_MESSAGE0="停止直流電機 引腳 %1",rF.LABPLUS_READ_COLOR_FROM_I2C_HELPURL="http://wiki.labplus.cn/index.php?title=%E9%A2%9C%E8%89%B2",rF.LABPLUS_READ_COLOR_FROM_I2C_TOOLTIP="",rF.LABPLUS_READ_COLOR_FROM_I2C_MESSAGE0="I2C顏色傳感器讀取並儲存顏色",rF.LABPLUS_RGB_COLOR_HELPURL="http://wiki.labplus.cn/index.php?title=RGB_LED",rF.LABPLUS_RGB_COLOR_TOOLTIP="讀取已儲存的顏色",rF.LABPLUS_RGB_COLOR_MESSAGE0="RGB顏色 %1",rF.LABPLUS_SET_I2C_DIGITS_HELPURL="http://wiki.labplus.cn/index.php?title=%E6%95%B0%E7%A0%81%E7%AE%A1",rF.LABPLUS_SET_I2C_DIGITS_TOOLTIP="",rF.LABPLUS_SET_I2C_DIGITS_MESSAGE0="設置I2C數碼管的值為 %1",rF.LABPLUS_TURN_OFF_I2C_DIGITS_HELPURL="http://wiki.labplus.cn/index.php?title=%E6%95%B0%E7%A0%81%E7%AE%A1",rF.LABPLUS_TURN_OFF_I2C_DIGITS_TOOLTIP="",rF.LABPLUS_TURN_OFF_I2C_DIGITS_MESSAGE0="關閉I2C數碼管",rF.LABPLUS_UART_SET_MIDI_MELODIC_HELPURL="http://wiki.labplus.cn/index.php?title=%E7%94%B5%E5%AD%90%E7%90%B4",rF.LABPLUS_UART_SET_MIDI_MELODIC_TOOLTIP="",rF.LABPLUS_UART_SET_MIDI_MELODIC_MESSAGE0="設置MIDI模塊音調為 %1",rF.LABPLUS_UART_PLAY_MIDI_NOTE_HELPURL="http://wiki.labplus.cn/index.php?title=%E7%94%B5%E5%AD%90%E7%90%B4",rF.LABPLUS_UART_PLAY_MIDI_NOTE_TOOLTIP="",rF.LABPLUS_UART_PLAY_MIDI_NOTE_MESSAGE0="MIDI模塊 %2 音符 %1",rF.LABPLUS_UART_PLAY_MIDI_NOTE_Do="Do",rF.LABPLUS_UART_PLAY_MIDI_NOTE_Re="Re",rF.LABPLUS_UART_PLAY_MIDI_NOTE_Mi="Mi",rF.LABPLUS_UART_PLAY_MIDI_NOTE_Fa="Fa",rF.LABPLUS_UART_PLAY_MIDI_NOTE_Sol="Sol",rF.LABPLUS_UART_PLAY_MIDI_NOTE_La="La",rF.LABPLUS_UART_PLAY_MIDI_NOTE_Si="Si",rF.LABPLUS_UART_PLAY_MIDI_NOTE="播放",rF.LABPLUS_UART_OFF_MIDI_NOTE="停止",rF.LABPLUS_UART_OFF_MIDI_NOTE_HELPURL="http://wiki.labplus.cn/index.php?title=%E7%94%B5%E5%AD%90%E7%90%B4",rF.LABPLUS_UART_OFF_MIDI_NOTE_TOOLTIP="",rF.LABPLUS_UART_OFF_MIDI_NOTE_MESSAGE0="MIDI模塊停止播放音符 %1",rF.LABPLUS_UART_INIT_MIDI_HELPURL="http://wiki.labplus.cn/index.php?title=%E7%94%B5%E5%AD%90%E7%90%B4",rF.LABPLUS_UART_INIT_MIDI_TOOLTIP="",rF.LABPLUS_UART_INIT_MIDI_MESSAGE0="初始化MIDI模塊 %1",rF.LABPLUS_LINE_FOLLOWER_IS_TRIGGERED_HELPURL="http://wiki.labplus.cn/index.php?title=%E5%BE%AA%E8%BF%B9",rF.LABPLUS_LINE_FOLLOWER_IS_TRIGGERED_TOOLTIP="",rF.LABPLUS_LINE_FOLLOWER_IS_TRIGGERED_MESSAGE0="循跡傳感器 引腳 %1 檢測為黑",rF.LABPLUS_TEMPERATURE_SENSOR_HELPURL="http://wiki.labplus.cn/index.php?title=LM35%E6%B8%A9%E5%BA%A6",rF.LABPLUS_TEMPERATURE_SENSOR_TOOLTIP="",rF.LABPLUS_TEMPERATURE_SENSOR_MESSAGE0="LM35溫度傳感器 引腳 %1 的值",rF.LABPLUS_ROTATE_DIMMER_HELPURL="http://wiki.labplus.cn/index.php?title=%E6%97%8B%E9%92%AE%E7%94%B5%E4%BD%8D%E5%99%A8",rF.LABPLUS_ROTATE_DIMMER_TOOLTIP="",rF.LABPLUS_ROTATE_DIMMER_MESSAGE0="旋轉電位器 引腳 %1 的值",rF.LABPLUS_SHAKE_DETECTOR_IS_TRIGGERED_HELPURL="http://wiki.labplus.cn/index.php?title=%E9%9C%87%E5%8A%A8",rF.LABPLUS_SHAKE_DETECTOR_IS_TRIGGERED_TOOLTIP="",rF.LABPLUS_SHAKE_DETECTOR_IS_TRIGGERED_MESSAGE0="震動傳感器 引腳 %1 被觸發",rF.LABPLUS_LASER_SWITCH_HELPURL="http://wiki.labplus.cn/index.php?title=%E6%BF%80%E5%85%89%E5%8F%91%E5%B0%84",rF.LABPLUS_LASER_SWITCH_TOOLTIP="",rF.LABPLUS_LASER_SWITCH_MESSAGE0="%1 激光開關 引腳 %2",rF.LABPLUS_4BUTTON_HELPURL="http://wiki.labplus.cn/index.php?title=%E5%9B%9B%E6%8C%89%E9%94%AE",rF.LABPLUS_4BUTTON_TOOLTIP="",rF.LABPLUS_4BUTTON_MESSAGE0="四向按鍵模塊 引腳 %1 按鍵 %2 被按下",rF.BLUE="A",rF.GREEN="B",rF.RED="C",rF.YELLOW="D",rF.LABPLUS_JOYSTICK_HELPURL="",rF.LABPLUS_JOYSTICK_TOOLTIP="",rF.LABPLUS_JOYSTICK_MESSAGE0="搖桿 引腳A0 %1 引腳A1 %2 %3 軸的值",rF.LABPLUS_UART_MP3_PLAY_HELPURL="http://wiki.labplus.cn/index.php?title=%E9%9F%B3%E4%B9%90%E6%92%AD%E6%94%BE",rF.LABPLUS_UART_MP3_PLAY_TOOLTIP="",rF.LABPLUS_UART_MP3_PLAY_MESSAGE0="MP3模塊(UART)播放第 %1 首音樂",rF.LABPLUS_UART_MP3_SET_VOLUME_HELPURL="http://wiki.labplus.cn/index.php?title=%E9%9F%B3%E4%B9%90%E6%92%AD%E6%94%BE",rF.LABPLUS_UART_MP3_SET_VOLUME_TOOLTIP="",rF.LABPLUS_UART_MP3_SET_VOLUME_MESSAGE0="設置MP3模塊(UART)音量為 %1",rF.LABPLUS_UART_MP3_SET_STATUS_HELPURL="http://wiki.labplus.cn/index.php?title=%E9%9F%B3%E4%B9%90%E6%92%AD%E6%94%BE",rF.LABPLUS_UART_MP3_SET_STATUS_TOOLTIP="",rF.LABPLUS_UART_MP3_SET_STATUS_MESSAGE0="設置MP3模塊(UART)狀態為 %1",rF.PAUSE="暫停",rF.STOP="停止",rF.PLAY="繼續播放",rF.PLAYNEXT="下一首",rF.PLAYPREV="上一首",rF.LABPLUS_UART_INIT_HELPURL="http://wiki.labplus.cn/index.php?title=Bluebit",rF.LABPLUS_UART_INIT_TOOLTIP="",rF.LABPLUS_UART_INIT_MESSAGE0="初始化串口波特率為 %3 TX為 %1 RX為 %2",rF.LABPLUS_VOICE_RECORD_ON1_HELPURL="http://wiki.labplus.cn/index.php?title=%E8%AF%AD%E9%9F%B3%E5%BD%95%E6%94%BE",rF.LABPLUS_VOICE_RECORD_ON1_TOOLTIP="",rF.LABPLUS_VOICE_RECORD_ON1_MESSAGE0="打開錄放器 %1 %2 引腳REC %3 引腳PLAY %4",rF.LABPLUS_VOICE_RECORD_OFF1_HELPURL="http://wiki.labplus.cn/index.php?title=%E8%AF%AD%E9%9F%B3%E5%BD%95%E6%94%BE",rF.LABPLUS_VOICE_RECORD_OFF1_TOOLTIP="",rF.LABPLUS_VOICE_RECORD_OFF1_MESSAGE0="關閉錄放器 %1 引腳REC %2 引腳PLAY %3",rF.LABPLUS_MOTOR_ON1_HELPURL="http://wiki.labplus.cn/index.php?title=%E7%94%B5%E6%9C%BA%E9%A9%B1%E5%8A%A8",rF.LABPLUS_MOTOR_ON1_TOOLTIP="",rF.LABPLUS_MOTOR_ON1_MESSAGE0="打開直流電機 %1 速度 %2 引腳AIN1 %3 引腳AIN2 %4",rF.LABPLUS_MOTOR_OFF1_HELPURL="http://wiki.labplus.cn/index.php?title=%E7%94%B5%E6%9C%BA%E9%A9%B1%E5%8A%A8",rF.LABPLUS_MOTOR_OFF1_TOOLTIP="",rF.LABPLUS_MOTOR_OFF1_MESSAGE0="停止直流電機 %1 引腳AIN1 %2 引腳AIN2 %3",rF.LABPLUS_SET_I2C_LCD1602_CURSOR_HELPURL="http://wiki.labplus.cn/index.php?title=1602_LCD",rF.LABPLUS_SET_I2C_LCD1602_CURSOR_TOOLTIP="",rF.LABPLUS_SET_I2C_LCD1602_CURSOR_MESSAGE0="設置LCD遊標位置%1 X %2 Y %3";rF.LABPLUS_SET_I2C_LCD1602_PRINT_HELPURL="http://wiki.labplus.cn/index.php?title=1602_LCD",rF.LABPLUS_SET_I2C_LCD1602_PRINT_TOOLTIP="",rF.LABPLUS_SET_I2C_LCD1602_PRINT_MESSAGE0="設置LCD顯示 %1",rF.LABPLUS_SET_I2C_LCD1602_SCROLL_HELPURL="http://wiki.labplus.cn/index.php?title=1602_LCD",rF.LABPLUS_SET_I2C_LCD1602_SCROLL_TOOLTIP="配合循環次數使用",rF.LABPLUS_SET_I2C_LCD1602_SCROLL_MESSAGE0="%1滾動LCD顯示內容",rF.LABPLUS_SET_I2C_LCD1602_SCROLL_ALEFT="向左",rF.LABPLUS_SET_I2C_LCD1602_SCROLL_RIGHTWARD="向右",rF.LABPLUS_SET_I2C_LCD1602_CLEAR_HELPURL="http://wiki.labplus.cn/index.php?title=1602_LCD",rF.LABPLUS_SET_I2C_LCD1602_CLEAR_TOOLTIP="",rF.LABPLUS_SET_I2C_LCD1602_CLEAR_MESSAGE0="清除LCD顯示內容",rF.LABPLUS_UART_ANY_MSG_RECEIVED_HELPURL="http://wiki.labplus.cn/index.php?title=Bluebit",rF.LABPLUS_UART_ANY_MSG_RECEIVED_TOOLTIP="",rF.LABPLUS_UART_ANY_MSG_RECEIVED_MESSAGE0="%1 接收到數據",rF.BLUEBIT_UART="串口",rF.BLUEBIT_INFRARED_SIGNAL="紅外信號",rF.BLUEBIT_BLUEBOOTH="藍牙",rF.LABPLUS_UART_READ_MSG_HELPURL="http://wiki.labplus.cn/index.php?title=Bluebit",rF.LABPLUS_UART_READ_MSG_TOOLTIP="",rF.LABPLUS_UART_READ_MSG_MESSAGE0="讀取 %1 數據",rF.LABPLUS_UART_WRITE_MSG_HELPURL="http://wiki.labplus.cn/index.php?title=Bluebit",rF.LABPLUS_UART_WRITE_MSG_TOOLTIP="",rF.LABPLUS_UART_WRITE_MSG_MESSAGE0="%1 發送數據 %2",rF.LABPLUS_SET_I2C_LED_MATRIX_HELPURL="http://wiki.labplus.cn/index.php?title=%E7%82%B9%E9%98%B5",rF.LABPLUS_SET_I2C_LED_MATRIX_TOOLTIP="",rF.LABPLUS_SET_I2C_LED_MATRIX_MESSAGE0="設置點陣 %1 第一行顯示%2 第二行顯示%3 第三行顯示%4 第四行顯示%5 第五行顯示%6 第六行顯示%7 第七行顯示%8 第八行顯示%9 ",rF.LABPLUS_SET_I2C_LED_MATRIX_MESSAGE2="設置點陣 %1 %2 %3 %4 %5 %6 %7 %8 %9 %10 %11 %12 %13 %14 %15 %16 %17 %18 %19 %20 %21 %22 %23 %24 %25 %26 %27 %28 %29 %30 %31 %32 %33 %34 %35 %36 %37 %38 %39 %40 %41 %42 %43 %44 %45 %46 %47 %48 %49 %50 %51 %52 %53 %54 %55 %56 %57 %58 %59 %60 %61 %62 %63 %64 %65 %66 %67 %68 %69 %70 %71 %72",rF.LABPLUS_SET_I2C_LED_MATRIX_CLEAR_HELPURL="http://wiki.labplus.cn/index.php?title=%E7%82%B9%E9%98%B5",rF.LABPLUS_SET_I2C_LED_MATRIX_CLEAR_TOOLTIP="",rF.LABPLUS_SET_I2C_LED_MATRIX_CLEAR_MESSAGE0="清空點陣",rF.LABPLUS_UART_SET_OLED_HELPURL="http://wiki.labplus.cn/index.php?title=OLED",rF.LABPLUS_UART_SET_OLED_TOOLTIP="",rF.LABPLUS_UART_SET_OLED_MESSAGE0="設置OLED屏 %1 X %2 Y %3 顯示文本 %4 字體為 %5",rF.LABPLUS_UART_SET_OLED_CLEAR_HELPURL="http://wiki.labplus.cn/index.php?title=OLED",rF.LABPLUS_UART_SET_OLED_CLEAR_TOOLTIP="",rF.LABPLUS_UART_SET_OLED_CLEAR_MESSAGE0="在OLED屏上擦除矩陣 %1 X1 %2 Y1 %3 X2 %4 Y2 %5",rF.LABPLUS_UART_SET_OLED_CLEAR_ALL_MESSAGE0="清空OLED屏",rF.LABPLUS_UART_SET_OLED_CLEAR_ALL_HELPURL="http://wiki.labplus.cn/index.php?title=OLED",rF.LABPLUS_UART_SET_OLED_CLEAR_ALL_TOOLTIP="",rF.LABPLUS_LIGHT_SENSOR_HELPURL="http://wiki.labplus.cn/index.php?title=%E6%A8%A1%E6%8B%9F%E5%85%89%E7%BA%BF",rF.LABPLUS_LIGHT_SENSOR_TOOLTIP="",rF.LABPLUS_LIGHT_SENSOR_MESSAGE0="模擬光線傳感器 引腳 %1 的值",rF.LABPLUS_BUTTON_MODULE_IS_PRESSED_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/i2c.html",rF.LABPLUS_BUTTON_MODULE_IS_PRESSED_TOOLTIP="",rF.LABPLUS_BUTTON_MODULE_IS_PRESSED_MESSAGE0="按鍵模塊 引腳 %1 被按下",rF.MICROBIT_EXT2_SET_SERVO_HELPURL="http://wiki.labplus.cn/index.php?title=Extend:bit%E2%85%A1",rF.MICROBIT_EXT2_SET_SERVO_TOOLTIP="",rF.MICROBIT_EXT2_SET_SERVO_MESSAGE0="設置舵機 %1 的角度為 %2",rF.MICROBIT_EXT2_SET_MOTOR_HELPURL="http://wiki.labplus.cn/index.php?title=Extend:bit%E2%85%A1",rF.MICROBIT_EXT2_SET_MOTOR_TOOLTIP="",rF.MICROBIT_EXT2_SET_MOTOR_MESSAGE0="設置馬達 %1 方向 %2 速度 %3",rF.MICROBIT_EXT2_STOP_MOTOR_HELPURL="http://wiki.labplus.cn/index.php?title=Extend:bit%E2%85%A1",rF.MICROBIT_EXT2_STOP_MOTOR_TOOLTIP="",rF.MICROBIT_EXT2_STOP_MOTOR_MESSAGE0="停止馬達 %1",rF.MICROBIT_EXT2_SOUND_VALUE_MESSAGE0="聲音傳感器的值",rF.MICROBIT_EXT2_SOUND_VALUE_HELPURL="http://wiki.labplus.cn/index.php?title=Extend:bit%E2%85%A1",rF.MICROBIT_EXT2_SOUND_VALUE_TOOLTIP="",rF.MICROBIT_EXT2_LIGHT_VALUE_MESSAGE0="光線傳感器的值",rF.MICROBIT_EXT2_LIGHT_VALUE_HELPURL="http://wiki.labplus.cn/index.php?title=Extend:bit%E2%85%A1",rF.MICROBIT_EXT2_LIGHT_VALUE_TOOLTIP="",rF.MICROBIT_INIT_I2C_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/i2c.html",rF.MICROBIT_INIT_I2C_TOOLTIP="",rF.MICROBIT_INIT_I2C_MESSAGE0="初始化I2C 頻率 %1 引腳SDA %2 引腳SCL %3",rF.MICROBIT_I2C_READ_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/i2c.html",rF.MICROBIT_I2C_READ_TOOLTIP="",rF.MICROBIT_I2C_READ_MESSAGE0="I2C讀取從地址 %1 讀取 %2 字節",rF.MICROBIT_I2C_WRITE_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/i2c.html",rF.MICROBIT_I2C_WRITE_TOOLTIP="",rF.MICROBIT_I2C_WRITE_MESSAGE0="I2C寫入 %2 到地址 %1",rF.MICROBIT_CONVERT_BYTEARRAY_HELPURL="https://microbit-micropython.readthedocs.io/en/latest/i2c.html",rF.MICROBIT_CONVERT_BYTEARRAY_TOOLTIP="",rF.MICROBIT_CONVERT_BYTEARRAY_MESSAGE0="bytearray %1",rF.BOTBIT_MOTOR_ON_HELPURL="",rF.BOTBIT_MOTOR_ON_TOOLTIP="範圍:-2000~2000",rF.BOTBIT_MOTOR_ON_MESSAGE0="設置機器人 %1 右輪速度為 %2 左輪速度為 %3",rF.BOTBIT_MOTOR_LEFT="左",rF.BOTBIT_MOTOR_RIGHT="右",rF.BOTBIT_SERVO_UP="上方",rF.BOTBIT_SERVO_DOWN="下方",rF.BOTBIT_MOTOR_FORWARD="前進",rF.BOTBIT_MOTOR_BACKWARD="後退",rF.BOTBIT_HOLDBALL_HELPURL="",rF.BOTBIT_HOLDBALL_TOOLTIP="",rF.BOTBIT_HOLDBALL_MESSAGE0="雙臂抱起",rF.BOTBIT_STEERING_ENGINEL_HELPURL="",rF.BOTBIT_STEERING_ENGINEL_TOOLTIP="角度範圍為-45°~45°",rF.BOTBIT_STEERING_ENGINEL_MESSAGE0="設置 %1臂 %2的角度為 %3",rF.BOTBIT_SERVO_Y="Y軸舵機",rF.BOTBIT_SERVO_X="X軸舵機",rF.BOTBIT_STEERING_ENGINE_LEG_HELPURL="",rF.BOTBIT_STEERING_ENGINE_LEG_TOOLTIP="角度範圍為-45°~45°",rF.BOTBIT_STEERING_ENGINE_LEG_MESSAGE0="設置 %1腿 %2舵機的角度為 %3",rF.BOTBIT_UPDATEPOSITION_HELPURL="",rF.BOTBIT_UPDATEPOSITION_TOOLTIP="",rF.BOTBIT_UPDATEPOSITION_MESSAGE0="刷新舵機角度",rF.BOTBIT_ULTRASONIC_HELPURL="",rF.BOTBIT_ULTRASONIC_TOOLTIP="",rF.BOTBIT_ULTRASONIC_MESSAGE0="超聲波傳感器的值",rF.BOTBIT_WALKING_HELPURL="",rF.BOTBIT_WALKING_TOOLTIP="周期越短, 速度越快, 推薦1000~2000",rF.BOTBIT_WALKING_MESSAGE0="舞步(walking) 步數%2 周期%3 方向%1 ",rF.BOTBIT_WALKING_FORWARD="前",rF.BOTBIT_WALKING_BACK="後",rF.BOTBIT_MOONWALKER_HELPURL="",rF.BOTBIT_MOONWALKER_TOOLTIP="推薦周期1000~2000, 幅度10~50",rF.BOTBIT_MOONWALKER_MESSAGE0="舞步(moonwalker) 步數%2 周期%3 幅度%4 方向%1 ",rF.BOTBIT_MOONWALKER_L="左",rF.BOTBIT_MOONWALKER_R="右",rF.BOTBIT_CRUSAITO_HELPURL="",rF.BOTBIT_CRUSAITO_TOOLTIP="推薦步數2~10, 幅度10~50",rF.BOTBIT_CRUSAITO_MESSAGE0="舞步(crusaito) 步數%2 周期%3 幅度%4 方向%1",rF.BOTBIT_CRUSAITO_CW="逆時針",rF.BOTBIT_CRUSAITO_ANTICW="順時針",rF.BOTBIT_FLAPPING_HELPURL="",rF.BOTBIT_FLAPPING_TOOLTIP="推薦步數5~15, 幅度10~30, 周期1000~2000",rF.BOTBIT_FLAPPING_MESSAGE0="舞步(flapping) 步數%2 周期%3 幅度%4 方向%1",rF.BOTBIT_FLAPPING_FORWARD="前",rF.BOTBIT_FLAPPING_BACK="後",rF.BOTBIT_HOME_HELPURL="",rF.BOTBIT_HOME_TOOLTIP="",rF.BOTBIT_HOME_MESSAGE0="機器人舞步初始化",rF.LABPLUS_UART_SET_MIDI_VOL_HELPURL="http://wiki.labplus.cn/index.php?title=MIDI(%E7%94%B5%E5%AD%90%E7%90%B4)",rF.LABPLUS_UART_SET_MIDI_VOL_TOOLTIP="",rF.LABPLUS_UART_SET_MIDI_VOL_MESSAGE0="設置MIDI模塊音量為 %1",rF.labplus_mapping_MESSAGE0="映射%1 從%2 , %3到%4 , %5",rF.labplus_mapping_TOOLTIP="將0~100中的10映射到0~200中並返回映射值",rF.labplus_mapping_HELPURL="",rF.JOINT_MIDI_PIANO="平臺鋼琴",rF.JOINT_MIDI_BRIGHTACOUSTICPIANO="亮音鋼琴",rF.JOINT_MIDI_ELECTRICGRANDPIANO="電鋼琴",rF.JOINT_MIDI_HARPSICHORD="大鍵琴",rF.JOINT_MIDI_Celesta="鋼片琴",rF.JOINT_MIDI_Glockenspiel="鐘琴",rF.JOINT_MIDI_Musicalbox="音樂盒",rF.JOINT_MIDI_Marimba="馬林巴琴",rF.JOINT_MIDI_Xylophone="木琴",rF.JOINT_MIDI_TubularBell="管鐘",rF.JOINT_MIDI_Dulcimer="洋琴",rF.JOINT_Vibraphone="顫音琴",rF.JOINT_MIDI_ORGAN="音栓風琴",rF.JOINT_Acoustic_Guitar="木吉他",rF.JOINT_Electric_Guitar="電吉他",rF.JOINT_Acoustic_Bass="民謠貝斯",rF.JOINT_String_Ensemble="弦樂合奏",rF.JOINT_Violin="小提琴",rF.JOINT_Trumpet="小號",rF.JOINT_Sax="薩克斯",rF.JOINT_Steel_Drums="鋼鼓",rF.JOINT_Lead="合成音主旋律",rF.JOINT_Pad="合成音襯底",rF.LABPLUS_PLAY_BUZZER_NOTE_HELPURL="http://wiki.labplus.cn/index.php?title=%E8%9C%82%E9%B8%A3%E5%99%A8",rF.LABPLUS_PLAY_BUZZER_NOTE_TOOLTIP="",rF.LABPLUS_PLAY_BUZZER_NOTE_MESSAGE0="播放音調 %1",rF.Carbit_init_MESSAGE0="CarBit初始化",rF.Carbit_init_TOOLTIP="",rF.Carbit_init_HELPURL="http://wiki.labplus.cn/index.php?title=Car:bit",rF.Carbit_setLeftMotor_MESSAGE0="B2電機速度 %1",rF.Carbit_setLeftMotor_TOOLTIP="範圍:-100~100",rF.Carbit_setLeftMotor_HELPURL="http://wiki.labplus.cn/index.php?title=Car:bit",rF.Carbit_setRightMotor_MESSAGE0="B1電機速度 %1",rF.Carbit_setRightMotor_TOOLTIP="範圍:-100~100",rF.Carbit_setRightMotor_HELPURL="http://wiki.labplus.cn/index.php?title=Car:bit",rF.Carbit_analog_light_HELPURL="http://wiki.labplus.cn/index.php?title=Car:bit",rF.Carbit_analog_light_TOOLTIP="Q3對應Pin1,Q4對應Pin2",rF.Carbit_analog_light_MESSAGE0="%1 模擬光線的值",rF.Carbit_Speed_U10_HELPURL="http://wiki.labplus.cn/index.php?title=Car:bit",rF.Carbit_Speed_U10_TOOLTIP="對應U10",rF.Carbit_Speed_U10_MESSAGE0="左輪速度",rF.Carbit_Speed_U11_HELPURL="http://wiki.labplus.cn/index.php?title=Car:bit",rF.Carbit_Speed_U11_TOOLTIP="對應U11",rF.Carbit_Speed_U11_MESSAGE0="右輪速度",rF.Carbit_Distance_HELPURL="http://wiki.labplus.cn/index.php?title=Car:bit",rF.Carbit_Distance_TOOLTIP="",rF.Carbit_Distance_MESSAGE0="超聲波的值",rF.Carbit_tracking_HELPURL="http://wiki.labplus.cn/index.php?title=Car:bit",rF.Carbit_tracking_TOOLTIP="",rF.Carbit_tracking_MESSAGE0="循跡參數 %1 直行速度 %2 最大限速 %3 轉彎延時 %5 轉彎速度系數 %4 ",rF.XUNFEI_SPEECH_TTS_HELPURL="",rF.XUNFEI_SPEECH_TTS_TOOLTIP="合成音頻文件格式只能是 *.pcm",rF.XUNFEI_SPEECH_TTS_MESSAGE0="[訊飛語音] 合成音頻 %1 APPID %2 APISecret %3 APIKey %4 文字內容 %5 轉存為音頻文件 %6",rF.XUNFEI_SPEECH_IAT_HELPURL="",rF.XUNFEI_SPEECH_IAT_TOOLTIP="可識別的音頻格式有 *.pcm 與 *.wav",rF.XUNFEI_SPEECH_IAT_MESSAGE0="[訊飛語音] 識別音頻 %1 APPID %2 APISecret %3 APIKey %4 待識別音頻文件 %5",rF.XUNFEI_SPEECH_IAT_RESULT_HELPURL="",rF.XUNFEI_SPEECH_IAT_RESULT_TOOLTIP="",rF.XUNFEI_SPEECH_IAT_RESULT_MESSAGE0="[訊飛語音] 識別結果",rF.MPYTHON_ZKAI_LCD_INIT_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/lcd.html#lcdinittype1-freq15000000-colorlcdblack",rF.MPYTHON_ZKAI_LCD_INIT_MESSAGE0="LCD 屏幕初始化",rF.MPYTHON_ZKAI_LCD_INIT_TOOLTIP="初始化 LCD 屏幕显示",rF.MPYTHON_ZKAI_LCD_ROTATION_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/lcd.html#lcddirectiondir",rF.MPYTHON_ZKAI_LCD_ROTATION_MESSAGE0="LCD 屏幕方向%1",rF.MPYTHON_ZKAI_LCD_ROTATION_TOOLTIP="设置 LCD 屏幕方向,取值范围 [0,3], 从0到3依次顺时针旋转",rF.MPYTHON_ZKAI_SENSOR_RESET_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/sensor.html#%E5%8D%95%E7%9B%AE%E6%91%84%E5%83%8F%E5%A4%B4%E9%87%8D%E7%BD%AE%E5%87%BD%E6%95%B0",rF.MPYTHON_ZKAI_SENSOR_RESET_MESSAGE0="摄像头 初始化",rF.MPYTHON_ZKAI_SENSOR_RESET_TOOLTIP="初始化单目摄像头",rF.MPYTHON_ZKAI_SENSOR_ENABLE_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/sensor.html#%E8%8E%B7%E5%8F%96%E5%9B%BE%E5%83%8F",rF.MPYTHON_ZKAI_SENSOR_ENABLE_MESSAGE0="摄像头%1",rF.MPYTHON_ZKAI_SENSOR_ENABLE_TOOLTIP="获取图像",rF.MPYTHON_ZKAI_LCD_WIDTHANDHEIGHT_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/lcd.html#lcdwidth",rF.MPYTHON_ZKAI_LCD_WIDTHANDHEIGHT_MESSAGE0="LCD 获取%1",rF.MPYTHON_ZKAI_LCD_WIDTHANDHEIGHT_TOOLTIP="返回 LCD 的宽度(水平分辨率);高度(垂直分辨率)",rF.MPYTHON_ZKAI_LCD_MI_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/lcd.html#lcddirectiondir",rF.MPYTHON_ZKAI_LCD_MI_MESSAGE0="LCD 设置镜像",rF.MPYTHON_ZKAI_LCD_MI_TOOLTIP="设置是否镜像",rF.MPYTHON_ZKAI_LCD_TEXT_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/lcd.html#%E4%BE%8B%E7%A8%8B-1%EF%BC%9A-%E6%98%BE%E7%A4%BA%E8%8B%B1%E6%96%87",rF.MPYTHON_ZKAI_LCD_TEXT_MESSAGE0="显示文本 x %1 y %2 内容 %3",rF.MPYTHON_ZKAI_LCD_TEXT_TOOLTIP="仅支持字母和数字",rF.MPYTHON_ZKAI_SENSOR_OffOn_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/sensor.html#%E5%85%B3%E9%97%AD%E6%91%84%E5%83%8F%E5%A4%B4",rF.MPYTHON_ZKAI_SENSOR_OffOn_MESSAGE0="摄像头%1",rF.MPYTHON_ZKAI_SENSOR_OffOn_TOOLTIP="1 表示开启摄像头 0 表示关闭摄像头",rF.MPYTHON_ZKAI_SENSOR_SKIP_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/sensor.html#%E8%B7%B3%E5%B8%A7",rF.MPYTHON_ZKAI_SENSOR_SKIP_MESSAGE0="摄像头 跳过帧数%1 毫秒%2内的图像 ",rF.MPYTHON_ZKAI_SENSOR_SKIP_TOOLTIP="摄像头跳过指定帧数或者跳过指定时间内的图像",rF.MPYTHON_ZKAI_SENSOR_RETURN_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/sensor.html#%E5%88%86%E8%BE%A8%E7%8E%87%E5%AE%BD%E5%BA%A6",rF.MPYTHON_ZKAI_SENSOR_RETURN_MESSAGE0="摄像头 获取%1",rF.MPYTHON_ZKAI_SENSOR_RETURN_TOOLTIP="(ZKAI)摄像头返回参数(宽高,获取帧缓冲,获取ID)",rF.MPYTHON_ZKAI_SENSOR_SETS_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/sensor.html#%E8%AE%BE%E7%BD%AE%E5%AF%B9%E6%AF%94%E5%BA%A6",rF.MPYTHON_ZKAI_SENSOR_SETS_MESSAGE0="摄像头 设置%1 为%2",rF.MPYTHON_ZKAI_SENSOR_SETS_TOOLTIP="设置摄像头对比度,亮度,饱和度范围为[-2,+2]",rF.MPYTHON_ZKAI_SENSOR_AUTO_GAIN_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/sensor.html#%E8%AE%BE%E7%BD%AE%E8%87%AA%E5%8A%A8%E5%A2%9E%E7%9B%8A",rF.MPYTHON_ZKAI_SENSOR_AUTO_GAIN_MESSAGE0="摄像头 自动增益%1",rF.MPYTHON_ZKAI_SENSOR_AUTO_GAIN_TOOLTIP="1开启摄像头自动增益 0关闭摄像头自动增益",rF.MPYTHON_ZKAI_SENSOR_ACQUIRE_AUTO_GAIN_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/sensor.html#%E8%8E%B7%E5%8F%96%E5%A2%9E%E7%9B%8A%E5%80%BC",rF.MPYTHON_ZKAI_SENSOR_ACQUIRE_AUTO_GAIN_MESSAGE0="摄像头 获取增益值",rF.MPYTHON_ZKAI_SENSOR_ACQUIRE_AUTO_GAIN_TOOLTIP="获取摄像头增益值",rF.MPYTHON_ZKAI_SENSOR_LEVEL_MI_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/sensor.html#%E8%AE%BE%E7%BD%AE%E6%B0%B4%E5%B9%B3%E9%95%9C%E5%83%8F",rF.MPYTHON_ZKAI_SENSOR_LEVEL_MI_MESSAGE0="摄像头 水平镜像%1",rF.MPYTHON_ZKAI_SENSOR_LEVEL_MI_TOOLTIP="1 表示开启水平镜像 0 表示关闭水平镜像",rF.MPYTHON_ZKAI_IMAGE_LAB_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/image.html#%E4%BE%8B%E7%A8%8B-1%EF%BC%9A-%E6%89%BE%E7%BB%BF%E8%89%B2",rF.MPYTHON_ZKAI_IMAGE_LAB_MESSAGE0="寻找颜色 LAB值%1",rF.MPYTHON_ZKAI_IMAGE_LAB_TOOLTIP="image寻找颜色",rF.MPYTHON_ZKAI_TRACE_COLOR_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.find_blobs",rF.MPYTHON_ZKAI_TRACE_COLOR_MESSAGE0="(掌控AI)追蹤色塊 LAB顏色%1 邊界框小於%2 像素小於%3 過濾",rF.MPYTHON_ZKAI_TRACE_COLOR_TOOLTIP="追蹤色塊",rF.MPYTHON_ZKAI_TRACE_CILOR_DISPLAYTEN_HELPURL="",rF.MPYTHON_ZKAI_TRACE_CILOR_DISPLAYTEN_MESSAGE0="(掌控AI)追蹤色塊 顯示%1",rF.MPYTHON_ZKAI_TRACE_CILOR_DISPLAYTEN_TOOLTIP="",rF.MPYTHON_ZKAI_BLOB_ALL_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#blob",rF.MPYTHON_ZKAI_BLOB_ALL_MESSAGE0="(掌控AI)%1獲取識別後色塊的 所有參數",rF.MPYTHON_ZKAI_BLOB_ALL_TOOLTIP="返回blob 類 -- 色塊對象",rF.MPYTHON_ZKAI_BLOB_X_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#blob",rF.MPYTHON_ZKAI_BLOB_X_MESSAGE0="(掌控AI)%1獲取識別後色塊的 x座標",rF.MPYTHON_ZKAI_BLOB_X_TOOLTIP="返回blob 類 -- 色塊對象",rF.MPYTHON_ZKAI_BLOB_Y_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#blob",rF.MPYTHON_ZKAI_BLOB_Y_MESSAGE0="(掌控AI)%1獲取識別後色塊的 y座標",rF.MPYTHON_ZKAI_BLOB_Y_TOOLTIP="返回blob 類 -- 色塊對象",rF.MPYTHON_ZKAI_BLOB_W_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#blob",rF.MPYTHON_ZKAI_BLOB_W_MESSAGE0="(掌控AI)%1獲取識別後色塊的 寬度",rF.MPYTHON_ZKAI_BLOB_W_TOOLTIP="返回blob 類 -- 色塊對象",rF.MPYTHON_ZKAI_BLOB_H_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#blob",rF.MPYTHON_ZKAI_BLOB_H_MESSAGE0="(掌控AI)%1獲取識別後色塊的 高度",rF.MPYTHON_ZKAI_BLOB_H_TOOLTIP="返回blob 類 -- 色塊對象",rF.MPYTHON_ZKAI_BLOB_NUMBER_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#blob",rF.MPYTHON_ZKAI_BLOB_NUMBER_MESSAGE0="(掌控AI)%1獲取識別後色塊的 數量",rF.MPYTHON_ZKAI_BLOB_NUMBER_TOOLTIP="返回blob 類 -- 色塊對象",rF.MPYTHON_ZKAI_BLOB_CENTER_X_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#blob",rF.MPYTHON_ZKAI_BLOB_CENTER_X_MESSAGE0="(掌控AI)%1獲取識別後色塊的 中心x座標",rF.MPYTHON_ZKAI_BLOB_CENTER_X_TOOLTIP="返回blob 類 -- 色塊對象",rF.MPYTHON_ZKAI_BLOB_CENTER_Y_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#blob",rF.MPYTHON_ZKAI_BLOB_CENTER_Y_MESSAGE0="(掌控AI)%1獲取識別後色塊的 中心y座標",rF.MPYTHON_ZKAI_BLOB_CENTER_Y_TOOLTIP="返回blob 類 -- 色塊對象",rF.MPYTHON_ZKAI_BLOB_ORTHOGON_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#blob",rF.MPYTHON_ZKAI_BLOB_ORTHOGON_MESSAGE0="(掌控AI)%1獲取識別後色塊的 矩形",rF.MPYTHON_ZKAI_BLOB_ORTHOGON_TOOLTIP="返回blob 類 -- 色塊對象",rF.MPYTHON_ZKAI2_FACE_TRACKING_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",rF.MPYTHON_ZKAI2_FACE_TRACKING_MESSAGE0="(掌控AI)選擇訓練模型 人臉",rF.MPYTHON_ZKAI2_FACE_TRACKING_TOOLTIP="可以識別並且追蹤人臉,顯示人臉大小等",rF.MPYTHON_ZKAI2_PHOTOGRAPH_TRACKING_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",rF.MPYTHON_ZKAI2_PHOTOGRAPH_TRACKING_MESSAGE0="(掌控AI)調用攝像頭進行 人臉識別",rF.MPYTHON_ZKAI2_PHOTOGRAPH_TRACKING_TOOLTIP="調用攝像頭進行 人臉識別",rF.MPYTHON_ZKAI2_RESULT_FACE_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",rF.MPYTHON_ZKAI2_RESULT_FACE_MESSAGE0="(掌控AI)獲取識別後人臉的 所有參數",rF.MPYTHON_ZKAI2_RESULT_FACE_TOOLTIP="獲取識別後人臉的 所有參數",rF.MPYTHON_ZKAI2_RESULT_FACE_X_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",rF.MPYTHON_ZKAI2_RESULT_FACE_X_MESSAGE0="(掌控AI)獲取識別後人臉的 x座標",rF.MPYTHON_ZKAI2_RESULT_FACE_X_TOOLTIP="獲取識別後人臉的 x座標",rF.MPYTHON_ZKAI2_RESULT_FACE_Y_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",rF.MPYTHON_ZKAI2_RESULT_FACE_Y_MESSAGE0="(掌控AI)獲取識別後人臉的 y座標",rF.MPYTHON_ZKAI2_RESULT_FACE_Y_TOOLTIP="獲取識別後人臉的 y座標",rF.MPYTHON_ZKAI2_RESULT_FACE_W_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",rF.MPYTHON_ZKAI2_RESULT_FACE_W_MESSAGE0="(掌控AI)獲取識別後人臉的 寬度",rF.MPYTHON_ZKAI2_RESULT_FACE_W_TOOLTIP="獲取識別後人臉的 寬度",rF.MPYTHON_ZKAI2_RESULT_FACE_H_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",rF.MPYTHON_ZKAI2_RESULT_FACE_H_MESSAGE0="(掌控AI)獲取識別後人臉的 高度",rF.MPYTHON_ZKAI2_RESULT_FACE_H_TOOLTIP="獲取識別後人臉的 高度",rF.MPYTHON_ZKAI2_RESULT_FACE_VALUE_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",rF.MPYTHON_ZKAI2_RESULT_FACE_VALUE_MESSAGE0="(掌控AI)獲取識別後人臉的 置信度",rF.MPYTHON_ZKAI2_RESULT_FACE_VALUE_TOOLTIP="獲取識別後人臉的 置信度",rF.MPYTHON_ZKAI2_RESULT_FACE_OBJNUM_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",rF.MPYTHON_ZKAI2_RESULT_FACE_OBJNUM_MESSAGE0="(掌控AI)獲取識別後人臉的 數量",rF.MPYTHON_ZKAI2_RESULT_FACE_OBJNUM_TOOLTIP="獲取識別後人臉的 數量",rF.MPYTHON_ZKAI_LCD_DISPLAY_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/lcd.html#lcddisplayimage-roiauto",rF.MPYTHON_ZKAI_LCD_DISPLAY_MESSAGE0="LCD 显示生效",rF.MPYTHON_ZKAI_LCD_DISPLAY_TOOLTIP="可以在液晶屏上显示一张 image",rF.MPYTHON_ZKAI_SENSOR_IMAGES_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/sensor.html#%E8%8E%B7%E5%8F%96%E5%9B%BE%E5%83%8F",rF.MPYTHON_ZKAI_SENSOR_IMAGES_MESSAGE0="摄像头 获取图像",rF.MPYTHON_ZKAI_SENSOR_IMAGES_TOOLTIP="控制摄像头捕捉图像",rF.MPYTHON_ZKAI2_20class_TRACKING_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",rF.MPYTHON_ZKAI2_20class_TRACKING_MESSAGE0="(掌控AI)選擇訓練模型 20類",rF.MPYTHON_ZKAI2_20class_TRACKING_TOOLTIP="可以識別20個類型,分別是0-19爲飛機,自行車,鳥,船,瓶子,公交車,汽車,貓,椅子,奶牛,餐桌,狗,屋子,摩托車,人,盆栽,羊,沙發,火車,電視",rF.MPYTHON_ZKAI2_PHOTOGRAPH_20TRACKING_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",rF.MPYTHON_ZKAI2_PHOTOGRAPH_20TRACKING_MESSAGE0="(掌控AI)調用攝像頭進行 20類識別",rF.MPYTHON_ZKAI2_PHOTOGRAPH_20TRACKING_TOOLTIP="調用攝像頭進行 20類識別",rF.MPYTHON_ZKAI2_RESULT_20CLASS_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",rF.MPYTHON_ZKAI2_RESULT_20CLASS_MESSAGE0="(掌控AI)獲取識別後20類的 所有參數",rF.MPYTHON_ZKAI2_RESULT_20CLASS_TOOLTIP="獲取識別後20類的 所有參數",rF.MPYTHON_ZKAI2_RESULT_20CLASS_X_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",rF.MPYTHON_ZKAI2_RESULT_20CLASS_X_MESSAGE0="(掌控AI)獲取識別後20類的 x座標",rF.MPYTHON_ZKAI2_RESULT_20CLASS_X_TOOLTIP="獲取識別後20類的 x座標",rF.MPYTHON_ZKAI2_RESULT_20CLASS_Y_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",rF.MPYTHON_ZKAI2_RESULT_20CLASS_Y_MESSAGE0="(掌控AI)獲取識別後20類的 y座標",rF.MPYTHON_ZKAI2_RESULT_20CLASS_Y_TOOLTIP="獲取識別後20類的 y座標",rF.MPYTHON_ZKAI2_RESULT_20CLASS_W_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",rF.MPYTHON_ZKAI2_RESULT_20CLASS_W_MESSAGE0="(掌控AI)獲取識別後20類的 寬度",rF.MPYTHON_ZKAI2_RESULT_20CLASS_W_TOOLTIP="獲取識別後20類的 寬度",rF.MPYTHON_ZKAI2_RESULT_20CLASS_H_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",rF.MPYTHON_ZKAI2_RESULT_20CLASS_H_MESSAGE0="(掌控AI)獲取識別後20類的 高度",rF.MPYTHON_ZKAI2_RESULT_20CLASS_H_TOOLTIP="獲取識別後20類的 高度",rF.MPYTHON_ZKAI2_RESULT_20CLASS_VALUE_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",rF.MPYTHON_ZKAI2_RESULT_20CLASS_VALUE_MESSAGE0="(掌控AI)獲取識別後20類的 置信度",rF.MPYTHON_ZKAI2_RESULT_20CLASS_VALUE_TOOLTIP="獲取識別後20類的 置信度",rF.MPYTHON_ZKAI2_RESULT_20CLASS_OBJNUM_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",rF.MPYTHON_ZKAI2_RESULT_20CLASS_OBJNUM_MESSAGE0="(掌控AI)獲取識別後20類的 數量",rF.MPYTHON_ZKAI2_RESULT_20CLASS_OBJNUM_TOOLTIP="獲取識別後20類的 數量",rF.MPYTHON_ZKAI2_RESULT_20CLASS_CLASSID_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",rF.MPYTHON_ZKAI2_RESULT_20CLASS_CLASSID_MESSAGE0="(掌控AI)獲取識別後20類的 類型",rF.MPYTHON_ZKAI2_RESULT_20CLASS_CLASSID_TOOLTIP="可以識別20個類型,分別是0-19爲飛機,自行車,鳥,船,瓶子,公交車,汽車,貓,椅子,奶牛,餐桌,狗,屋子,摩托車,人,盆栽,羊,沙發,火車,電視",rF.MPYTHON_ZKAI2_RESULT_20CLASS_INDEX_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",rF.MPYTHON_ZKAI2_RESULT_20CLASS_INDEX_MESSAGE0="(掌控AI)獲取識別後20類的 類型數量",rF.MPYTHON_ZKAI2_RESULT_20CLASS_INDEX_TOOLTIP="獲取識別後20類的 類型數量",rF.MPYTHON_ZKAI2_NUMBER_DISCERN_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",rF.MPYTHON_ZKAI2_NUMBER_DISCERN_MESSAGE0="(掌控AI)選擇訓練模型 手寫數字",rF.MPYTHON_ZKAI2_NUMBER_DISCERN_TOOLTIP="選擇訓練模型 手寫數字",rF.MPYTHON_ZKAI2_RESULT_NUMBER_DISCERN_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",rF.MPYTHON_ZKAI2_RESULT_NUMBER_DISCERN_MESSAGE0="(掌控AI)調用攝像頭進行 手寫數字識別",rF.MPYTHON_ZKAI2_RESULT_NUMBER_DISCERN_TOOLTIP="調用攝像頭進行 手寫數字識別",rF.MPYTHON_ZKAI2_NUMBER_DETECT_ALL_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#id2",rF.MPYTHON_ZKAI2_NUMBER_DETECT_ALL_MESSAGE0="(掌控AI)獲取識別後手寫數字的 所有參數",rF.MPYTHON_ZKAI2_NUMBER_DETECT_ALL_TOOLTIP="獲取識別後手寫數字的 所有參數",rF.MPYTHON_ZKAI2_NUMBER_DETECT_NUMBER_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#id2",rF.MPYTHON_ZKAI2_NUMBER_DETECT_NUMBER_MESSAGE0="(掌控AI)獲取識別後手寫數字的 數字",rF.MPYTHON_ZKAI2_NUMBER_DETECT_NUMBER_TOOLTIP="獲取識別後手寫數字的 數字",rF.MPYTHON_ZKAI2_NUMBER_DETECT_ADIENCE_HELPURL="https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#id2",rF.MPYTHON_ZKAI2_NUMBER_DETECT_ADIENCE_MESSAGE0="(掌控AI)獲取識別後手寫數字的 置信度",rF.MPYTHON_ZKAI2_NUMBER_DETECT_ADIENCE_TOOLTIP="獲取識別後手寫數字的 置信度",rF.MPYTHON_ZKAI_IMAGE_FACEDETECT_HELPURL="https://maixpy.sipeed.com/zh/libs/Maix/kpu.html#%E8%BF%90%E8%A1%8Cyolo2%E7%BD%91%E7%BB%9C",rF.MPYTHON_ZKAI_IMAGE_FACEDETECT_MESSAGE0="人脸识别",rF.MPYTHON_ZKAI_IMAGE_FACEDETECT_TOOLTIP="",rF.MPYTHON_ZKAI_IMAGE_FACEDETECT_RETURN_HELPURL="https://maixpy.sipeed.com/zh/libs/Maix/kpu.html#%E8%BF%90%E8%A1%8Cyolo2%E7%BD%91%E7%BB%9C",rF.MPYTHON_ZKAI_IMAGE_FACEDETECT_RETURN_MESSAGE0="获取 识别%1",rF.MPYTHON_ZKAI_IMAGE_FACEDETECT_RETURN_TOOLTIP="人脸识别的x和y是LCD屏幕的坐标位置;width和height是人脸识别出的宽度和高度;classid是识别出的类别;objnum是人脸识别出的个数",rF.MPYTHON_ZKAI_IMAGE_FACEDETECT_ALL_RETURN_HELPURL="https://maixpy.sipeed.com/zh/libs/Maix/kpu.html#%E8%BF%90%E8%A1%8Cyolo2%E7%BD%91%E7%BB%9C",rF.MPYTHON_ZKAI_IMAGE_FACEDETECT_ALL_RETURN_MESSAGE0="获取 识别 所有参数",rF.MPYTHON_ZKAI_IMAGE_FACEDETECT_ALL_RETURN_TOOLTIP="人脸识别的x和y是LCD屏幕的坐标位置;width和height是人脸识别出的宽度和高度;classid是识别出的类别;objnum是人脸识别出的个数",rF.MPYTHON_ZKAI_IMAGE_FACEDETECT2_HELPURL="https://maixpy.sipeed.com/zh/libs/Maix/kpu.html#%E8%BF%90%E8%A1%8Cyolo2%E7%BD%91%E7%BB%9C",rF.MPYTHON_ZKAI_IMAGE_FACEDETECT2_MESSAGE0="人脸识别",rF.MPYTHON_ZKAI_IMAGE_FACEDETECT2_TOOLTIP="可以放入获取识别的参数",rF.MPYTHON_ZKAI_IMAGE_20CLASS_HELPURL="https://maixpy.sipeed.com/zh/libs/Maix/kpu.html#%E8%BF%90%E8%A1%8Cyolo2%E7%BD%91%E7%BB%9C",rF.MPYTHON_ZKAI_IMAGE_20CLASS_TOOLTIP="可以放入获取识别的参数,可以识别20个类型,分别是飞机,自行车,鸟,船,瓶子,公交车,汽车,猫,椅子,奶牛, 餐桌,狗,屋子,摩托车,人,盆栽,羊,沙发,火车,电视",rF.MPYTHON_ZKAI_LCD_SHOW_REC_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/image.html#imagedrawrectanglex-y-w-h-color-thickness1-fillfalse",rF.MPYTHON_ZKAI_LCD_SHOW_REC_MESSAGE0="矩形%1 x%3 y%4 宽%5 高%6 颜色为 R%7 G%8 B%9 加粗%2",rF.MPYTHON_ZKAI_LCD_SHOW_REC_TOOLTIP="在图像上绘制矩形",rF.MPYTHON_ZKAI_LCD_SHOW_STRING_MESSAGE0="线条 x1%1 y1%2 到x2%3 y2%4 颜色为R%5 G%6 B%7 加粗%8",rF.MPYTHON_ZKAI_LCD_SHOW_STRING_TOOLTIP="在图像上绘制线条",rF.MPYTHON_ZKAI_LCD_SHOW_STRING_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/image.html#imagedrawlinex0-y0-x1-y1-color-thickness1",rF.MPYTHON_ZKAI_LCD_CLEAR_ALL_MESSAGE0="LCD 显示清空",rF.MPYTHON_ZKAI_LCD_CLEAR_ALL_TOOLTIP="将液晶屏清空为黑色或者指定的颜色",rF.MPYTHON_ZKAI_LCD_CLEAR_ALL_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/lcd.html#lcdclear",rF.MPYTHON_ZKAI_LCD_return_colour_MESSAGE0="LCD 返回 x%1 y%2 颜色",rF.MPYTHON_ZKAI_LCD_return_colour_TOOLTIP="返回某个坐标点的颜色",rF.MPYTHON_ZKAI_LCD_return_colour_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/image.html#imagegetpixelx-y-rgbtuple",rF.MPYTHON_ZKAI_LCD_SHOW_CIRCLE_MESSAGE0="圆形%1 x%2 y%3 半径%4 颜色为 R%5 G%6 B%7 加粗%8",rF.MPYTHON_ZKAI_LCD_SHOW_CIRCLE_TOOLTIP="在图像上绘制圆形",rF.MPYTHON_ZKAI_LCD_SHOW_CIRCLE_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/image.html#imagedrawcirclex-y-radius-color-thickness1-fillfalse",rF.MPYTHON_ZKAI_LCD_TEXT_MOST_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/lcd.html#%E4%BE%8B%E7%A8%8B-1%EF%BC%9A-%E6%98%BE%E7%A4%BA%E8%8B%B1%E6%96%87",rF.MPYTHON_ZKAI_LCD_TEXT_MOST_MESSAGE0="显示文本 x %1 y %2 内容 %3 颜色为R%4 G%5 B%6 字号%7",rF.MPYTHON_ZKAI_LCD_TEXT_MOST_TOOLTIP="仅支持字母和数字",rF.MPYTHON_ZKAI_LCD_SHOW_TEN_STRING_MESSAGE0="十字线 x%1 y%2 颜色为R%3 G%4 B%5 尺寸%6 加粗%7",rF.MPYTHON_ZKAI_LCD_SHOW_TEN_STRING_TOOLTIP="在图像上绘制十字线",rF.MPYTHON_ZKAI_LCD_SHOW_TEN_STRING_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/image.html#imagedrawcrossx-y-color-size5-thickness1",rF.MPYTHON_ZKAI_LCD_SHOW_ARROWS_MESSAGE0="箭头 x1%1 y1%2 到x2%3 y2%4 颜色为R%5 G%6 B%7 加粗%8",rF.MPYTHON_ZKAI_LCD_SHOW_ARROWS_TOOLTIP="在图像上绘制一个箭头",rF.MPYTHON_ZKAI_LCD_SHOW_ARROWS_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/image.html#imagedrawarrowx0-y0-x1-y1-color-thickness1",rF.MPYTHON_ZKAI_LCD_SHOW_IMAGE_PIRCTURE_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/lcd.html#%E4%BE%8B%E7%A8%8B-2%EF%BC%9A-%E6%98%BE%E7%A4%BA%E5%9B%BE%E7%89%87",rF.MPYTHON_ZKAI_LCD_SHOW_IMAGE_PIRCTURE_MESSAGE0="显示图像 路径%1",rF.MPYTHON_ZKAI_LCD_SHOW_IMAGE_PIRCTURE_TOOLTIP="显示图像",rF.MPYTHON_ZKAI_LCD_SHOW_IMAGE_HEAT_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/image.html#imagetorainbowcopyfalse",rF.MPYTHON_ZKAI_LCD_SHOW_IMAGE_HEAT_MESSAGE0="LCD 显示热图颜色",rF.MPYTHON_ZKAI_LCD_SHOW_IMAGE_HEAT_TOOLTIP="可以在液晶屏上显示一张 image的热图颜色",rF.MPYTHON_ZKAI_LCD_SHOW_ECTYPE_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/image.html#imagesavepath-roi-quality50",rF.MPYTHON_ZKAI_LCD_SHOW_ECTYPE_MESSAGE0="将图像的副本保存到SD卡 图像名%1 图像显示区域 x%2 y%3 宽%4 高%5",rF.MPYTHON_ZKAI_LCD_SHOW_ECTYPE_TOOLTIP="将图像的副本保存到SD卡",rF.MPYTHON_ZKAI_LCD_SHOW_ECTYPE_SHOW_HELPURL="https://maixpy.sipeed.com/zh/libs/machine_vision/image.html#imagecopyroi-copytofbfalse",rF.MPYTHON_ZKAI_LCD_SHOW_ECTYPE_SHOW_MESSAGE0="创建一个图像对象的副本 复制图像区域 x%1 y%2 宽%3 高%4",rF.MPYTHON_ZKAI_LCD_SHOW_ECTYPE_SHOW_TOOLTIP="创建一个图像对象的副本",rF.MPYTHON_ZKAI_LCD_SHOW_IMAGE_HEAT_GRAYSCALE="灰度",rF.MPYTHON_ZKAI_LCD_SHOW_IMAGE_HEAT_RAINBOW="彩虹",rF.MPYTHON_ZKAI_LCD_SHOW_IMAGE_HEAT_NEGATE="數字反轉",rF.MPYTHON_ZKAI_LCD_SHOW_IMAGE_HEAT_INVERT="黑白翻轉",rF.MPYTHON_ZKAI_LCD_SHOW_IMAGE_DESCARTES_LINPOLAR="線性極",rF.MPYTHON_ZKAI_LCD_SHOW_IMAGE_DESCARTES_LOGPOLAR="對數極",rF.MPYTHON_ZKAI_SENSOR_PATTERN_GRAYSCALE="灰度",rF.MPYTHON_ZKAI_SENSOR_PATTERN_COLOR="彩色",rF.MPYTHON_ZKAI_SENSOR_ENABLE_START="開始抓取圖像",rF.MPYTHON_ZKAI_SENSOR_ENABLE_STOP="停止抓取圖像",rF.MPYTHON_ZKAI_SENSOR_LEVEL_MI_H="水平鏡像",rF.MPYTHON_ZKAI_SENSOR_LEVEL_MI_V="垂直翻轉",rF.MPYTHON_ZKAI_SENSOR_SETS_CONTRAST="對比度",rF.MPYTHON_ZKAI_SENSOR_SETS_BRIGHTNESS="亮度",rF.MPYTHON_ZKAI_SENSOR_SETS_SATURATION="飽和度",rF.MPYTHON_ZKAI2_FACE_YOLO="人臉識別",rF.MPYTHON_ZKAI2_CLASS_20_YOLO="20類識別",rF.MPYTHON_ZKAI2_MNIST_NET="数字识别",rF.MPYTHON_ZKAI2_PHOTOGRAPH_FACE_YOLO="人臉",rF.MPYTHON_ZKAI2_PHOTOGRAPH_CLASS_20_YOLO="0類",rF.MPYTHON_ZKAI_TRACE_COLOR_RECTANGLE="矩形",rF.MPYTHON_ZKAI_TRACE_COLOR_CROSS="十字",rF.MPYTHON_NAME_PYTHON_ENVIRONMENT_HELPURL="",rF.MPYTHON_NAME_PYTHON_ENVIRONMENT_MESSAGE0="聲明python 運行環境",rF.MPYTHON_NAME_PYTHON_ENVIRONMENT_TOOLTIP="",rF.MPYTHON_LARK_GET_ALL_COLOR_MESSAGE0="I2C獲取顔色",rF.MPYTHON_LARK_GET_ALL_COLOR_TOOLTIP="返回列表",rF.MPYTHON_LARK_GET_COLOR_TOOLTIP="",rF.MPYTHON_LARK_GET_COLOR_MESSAGE0="I2C獲取 %1",rF.MPYTHON_lARK_RED="紅色",rF.MPYTHON__LARK_GREEN="綠色",rF.MPYTHON__LARK_BLUE="藍色",rF.MPYTHON_LARK_GET_ALL_COLOR_HSV_TOOLTIP="HSV(Hue, Saturation, Value)",rF.MPYTHON_LARKT_GET_ALL_COLOR_HSV_MESSAGE0="I2C獲取HSV",rF.MPYTHON_LARK_GET_COLOR_HSV_TOOLTIP="HSV(Hue, Saturation, Value)",rF.MPYTHON_LARK_GET_COLOR_HSV_MESSAGE0="i2C獲取HSV %1",rF.MPYTHON_LARK_GET_COLOR_STRING_TOOLTIP="",rF.MPYTHON_LARK_GET_COLOR_STRING_MESSAGE0="I2C獲取顔色",rF.MPYTHON_LARK_DISCERN_COLOR_TOOLTIP="",rF.MPYTHON_LARK_DISCERN_COLOR_MESSAGE0="識別 %1",rF.MPYTHON_LARK_RED="紅色",rF.MPYTHON_LARK_GREEN="綠色",rF.MPYTHON_LARK_BLUE="藍色",rF.MPYTHON_LARK_ORANGE="橙色",rF.MPYTHON_LARK_YELLOW="黃色",rF.MPYTHON_LARK_PURPLE="紫色",rF.MPYTHON_LARK_CYAN="青色",rF.MPYTHON_LARK_NONE="無色",rF.MPYTHON_LARK_NULL="無法獲取",rF.MPYTHON_LARK_ULTRASONIC_TOOLTIP="",rF.MPYTHON_LARK_ULTRASONIC_MESSAGE0="I2C超聲波",rF.MPYTHON_LARK_MOTOR_SET_I2C_TOOLTIP="",rF.MPYTHON_LARK_MOTOR_SET_I2C_MESSAGE0="I2C設置 %1 速度 %2",rF.MPYTHON_LARK_GET_LINE_ON_I2C_TOOLTIP="",rF.mpython_LARK_GET_LINE_ON_I2C_MESSAGE0="I2C獲取 %1 巡綫值",rF.mpython_LARK_GET_LINE_RIGHT_ON_I2C="右邊",rF.mpython_LARK_GET_LINE_LEFT_ON_I2C="左邊",rF.MPYTHON_LARK_SEARCH_LINE_ON_I2C_TOOLTIP="",rF.mpython_LARK_SEARCH_LINE_ON_I2C_MESSAGE0="I2C循跡傳感器 %1 遇到黑綫",rF.MPYTHON_LARK_SEARCH_LEFT="左邊",rF.MPYTHON_LARK_SEARCH_RIGHT="右邊",rF.MPYTHON_LARK_SEARCH_LEFT2="兩邊都",rF.MPYTHON_LARK_SEARCH_RIGHT2="兩邊都無",rF.MPYTHON_LARK_SEARCH_BOTH="兩邊都",rF.MPYTHON_LARK_SEARCH_NONE="兩邊都無",rF.MPYTHON_LARK__CAR_GET_ALL_COLOR_TOOLTIP="Returns as list",rF.MPYTHON_LARK__CAR_GET_ALL_COLOR_MESSAGE0="千里馬獲取顔色",rF.MPYTHON_LARK_CAR_GET_COLOR_TOOLTIP="",rF.MPYTHON_LARK_CAR_GET_COLOR_MESSAGE0="千里馬獲取 %1",rF.MPYTHON_lARK_CAR_RED="紅色",rF.MPYTHON__LARK_CAR_GREEN="綠色",rF.MPYTHON__LARK_CAR_BLUE="藍色",rF.MPYTHON_LARK_CAR_GET_ALL_COLOR_HSV_TOOLTIP="HSV(Hue, Saturation, Value)",rF.MPYTHON_LARKT_CAR_GET_ALL_COLOR_HSV_MESSAGE0="千里馬獲取HSV",rF.MPYTHON_LARK_CAR_GET_COLOR_HSV_TOOLTIP="HSV(Hue, Saturation, Value)",rF.MPYTHON_LARK_CAR_GET_COLOR_HSV_MESSAGE0="千里馬HSV %1",rF.MPYTHON_LARK_CAR_GET_COLOR_STRING_TOOLTIP="",rF.MPYTHON_LARK_CAR_GET_COLOR_STRING_MESSAGE0="千里馬識別顔色",rF.MPYTHON_LARK_CAR_DISCERN_COLOR_TOOLTIP="",rF.MPYTHON_LARK_CAR_DISCERN_COLOR_MESSAGE0="千里馬識別顔色 %1",rF.MPYTHON_LARK_CAR_RED="紅色",rF.MPYTHON_LARK_CAR_GREEN="綠色",rF.MPYTHON_LARK_CAR_BLUE="藍色",rF.MPYTHON_LARK_CAR_ORANGE="橙色",rF.MPYTHON_LARK_CAR_YELLOW="黃色",rF.MPYTHON_LARK_CAR_PURPLE="紫色",rF.MPYTHON_LARK_CAR_CYAN="青色",rF.MPYTHON_LARK_CAR_NONE="無識別",rF.MPYTHON_LARK_CAR_NULL="識別錯誤",rF.MPYTHON_LARK_CAR_ULTRASONIC_TOOLTIP="",rF.MPYTHON_LARK_CAR_ULTRASONIC_MESSAGE0="千里馬獲取超聲波",rF.MPYTHON_LARK_CAR_GET_LINE_ON_I2C_TOOLTIP="",rF.mpython_LARK_CAR_GET_LINE_ON_I2C_MESSAGE0="千里馬獲取 %1 循跡數值",rF.mpython_LARK_CAR_GET_LINE_RIGHT_ON_I2C="右邊",rF.mpython_LARK_CAR_GET_LINE_LEFT_ON_I2C="左邊",rF.MPYTHON_LARK_CAR_SEARCH_LINE_ON_I2C_TOOLTIP="",rF.mpython_LARK_CAR_SEARCH_LINE_ON_I2C_MESSAGE0="千里馬循跡 %1 碰到黑綫",rF.MPYTHON_LARK_CAR_SEARCH_LEFT="左邊",rF.MPYTHON_LARK_CAR_SEARCH_RIGHT="右邊",rF.MPYTHON_LARK_CAR_SEARCH_LEFT2="兩邊",rF.MPYTHON_LARK_CAR_SEARCH_NONE="兩邊都沒有",rF.MPYTHON_LARK_MOTOR_SET_I2C_TOOLTIP="",rF.MPYTHON_LARK_MOTOR_SET_I2C_MESSAGE0="電機驅動 %1 速度 %2",rF.MPYTHON_LARK_MOTOR2_SET_I2C_TOOLTIP="",rF.MPYTHON_LARK_MOTOR2_SET_I2C_MESSAGE0="千里馬 %1 速度 %2",rF.MPYTHON_LARK_CAR_MOTION_LEFT="左轉",rF.MPYTHON_LARK_CAR_MOTION_RIGHT="右轉",rF.MPYTHON_LARK_CAR_MOTION_FORWARD="前進",rF.MPYTHON_LARK_CAR_MOTION_BACKWARD="後退",rF.MPYTHON_LARK_CAR_MOTION_STOP="停止",rF.MPYTHON_DEFINE_THREAD_MESSAGE0="定義線程 %1",rF.MPYTHON_RUN_THREAD_MESSAGE0="運行線程 %1",rF.NUMBER_TO_BYTES_MESSAGE0="(struct.pack) 轉換數字為bytes %1 %2 %3 %4 待轉換數字 %5",rF.BYTES_TO_NUMBER_MESSAGE0="(struct.unpack) 解包bytes為數字 %1 %2 %3 %4 待轉換bytes %5",rF.LITTLE_ENDIAN="低字節序(默認)",rF.BIG_ENDIAN="高字節序",rF.MPYTHON2_ACCELEROMETER_EVENT_MESSAGE0="[適用2.0板] 當掌控板 %1 時",rF.MPYTHON2_ACCELEROMETER_EVENT_HELPURL="",rF.MPYTHON2_ACCELEROMETER_EVENT_TOOLTIP="",rF.MPYTHON2_ACCELEROMETER_EVENT_TILT_LEFT="向左傾斜",rF.MPYTHON2_ACCELEROMETER_EVENT_TILT_RIGHT="向右傾斜",rF.MPYTHON2_ACCELEROMETER_EVENT_TILT_UP="向前傾斜",rF.MPYTHON2_ACCELEROMETER_EVENT_TILT_DOWN="向後傾斜",rF.MPYTHON2_ACCELEROMETER_EVENT_FACE_UP="正面朝上",rF.MPYTHON2_ACCELEROMETER_EVENT_FACE_DOWN="正面朝下",rF.MPYTHON2_ACCELEROMETER_EVENT_SINGLE_CLICK="被單擊",rF.MPYTHON2_ACCELEROMETER_EVENT_DOUBLE_CLICK="被雙擊",rF.MPYTHON2_ACCELEROMETER_EVENT_FREEFALL="墜落",rF.MPYTHON2_ACCELEROMETER_ROLL_ANGLE="橫滾角",rF.MPYTHON2_ACCELEROMETER_PITCH_ANGLE="俯仰角",rF.MPYTHON2_ACCELEROMETER_ANGLE_HELPURL="",rF.MPYTHON2_ACCELEROMETER_ANGLE_TOOLTIP="",rF.MPYTHON2_ACCELEROMETER_ANGLE_MESSAGE0="掌控板 %1",rF.MPYTHON2_BUTTON_IS_PRESSED_HELPURL="",rF.MPYTHON2_BUTTON_IS_PRESSED_TOOLTIP="",rF.MPYTHON2_BUTTON_IS_PRESSED_MESSAGE0="按鍵 %1 已經按下",rF.MPYTHON2_BUTTON_WAS_PRESSED_HELPURL="",rF.MPYTHON2_BUTTON_WAS_PRESSED_TOOLTIP="",rF.MPYTHON2_BUTTON_WAS_PRESSED_MESSAGE0="按鍵 %1 曾經按下",rF.MPYTHON2_BUTTON_GET_PRESSES_HELPURL="",rF.MPYTHON2_BUTTON_GET_PRESSES_TOOLTIP="",rF.MPYTHON2_BUTTON_GET_PRESSES_MESSAGE0="按鍵 %1 按下過的次數",rF.MPYTHON2_BUTTON_EVENT_MESSAGE0="當按鍵 %1 被 %2 時",rF.MPYTHON2_BUTTON_EVENT_HELPURL="",rF.MPYTHON2_BUTTON_EVENT_TOOLTIP="",rF.MPYTHON2_BUTTON_EVENT_PRESSED="按下",rF.MPYTHON2_BUTTON_EVENT_RELEASED="松開",rF.MPYTHON2_TOUCHPAD_IS_PRESSED_HELPURL="",rF.MPYTHON2_TOUCHPAD_IS_PRESSED_TOOLTIP="",rF.MPYTHON2_TOUCHPAD_IS_PRESSED_MESSAGE0="觸摸鍵 %1 已經按下",rF.MPYTHON2_TOUCHPAD_WAS_PRESSED_HELPURL="",rF.MPYTHON2_TOUCHPAD_WAS_PRESSED_TOOLTIP="",rF.MPYTHON2_TOUCHPAD_WAS_PRESSED_MESSAGE0="觸摸鍵 %1 曾經按下",rF.MPYTHON2_TOUCHPAD_GET_PRESSES_HELPURL="",rF.MPYTHON2_TOUCHPAD_GET_PRESSES_TOOLTIP="",rF.MPYTHON2_TOUCHPAD_GET_PRESSES_MESSAGE0="觸摸鍵 %1 按下過的次數",rF.MPYTHON2_TOUCHPAD_VALUE_HELPURL="",rF.MPYTHON2_TOUCHPAD_VALUE_TOOLTIP="",rF.MPYTHON2_TOUCHPAD_VALUE_MESSAGE0="觸摸鍵 %1 值",rF.MPYTHON2_TOUCHPAD_EVENT_MESSAGE0="當觸摸鍵 %1 被 %2 時",rF.MPYTHON2_TOUCHPAD_EVENT_HELPURL="",rF.MPYTHON2_TOUCHPAD_EVENT_TOOLTIP="",rF.MPYTHON2_TOUCHPAD_EVENT_PRESSED="觸摸",rF.MPYTHON2_TOUCHPAD_EVENT_RELEASED="釋放",rF.MPYTHON2_TOUCHPAD_THRESHOLD_MESSAGE0="設置觸摸鍵 %1 閥值為 %2",rF.MPYTHON2_TOUCHPAD_THRESHOLD_HELPURL="",rF.MPYTHON2_TOUCHPAD_THRESHOLD_TOOLTIP="",rF.BLE_UUID_HELPURL="https://mpython-ble.readthedocs.io/zh/master/api/index.html#UUID",rF.BLE_UUID_TOOLTIP="",rF.BLE_SETUP_PERIPHERAL_HELPURL="",rF.BLE_SETUP_PERIPHERAL_TOOLTIP="",rF.BLE_SETUP_PERIPHERAL_MESSAGE0="構建 BLE 外圍設備對象 %1 顯示名稱 %2 Service UUID %3",rF.BLE_ADD_CHARACTERISTIC_HELPURL="",rF.BLE_ADD_CHARACTERISTIC_TOOLTIP="",rF.BLE_ADD_CHARACTERISTIC_MESSAGE0="定義 BLE 屬性 %1 %2 Characteristic UUID %3 Read %4 Write %5 Notity %6",rF.BLE_PERIPHERAL_ADVERTISE_HELPURL="",rF.BLE_PERIPHERAL_ADVERTISE_TOOLTIP="",rF.BLE_PERIPHERAL_ADVERTISE_MESSAGE0="BLE 外圍設備 %1",rF.BLE_START_BROADCASTING="開始廣播",rF.BLE_STOP_BROADCASTING="停止廣播",rF.BLE_PERIPHERAL_ATTRUBUTE_READ_HELPURL="",rF.BLE_PERIPHERAL_ATTRUBUTE_READ_TOOLTIP="",rF.BLE_PERIPHERAL_ATTRUBUTE_READ_MESSAGE0="讀 BLE 設備的屬性 %1",rF.BLE_PERIPHERAL_ATTRUBUTE_WRITE_HELPURL="",rF.BLE_PERIPHERAL_ATTRUBUTE_WRITE_TOOLTIP="",rF.BLE_PERIPHERAL_ATTRUBUTE_WRITE_MESSAGE0="寫 BLE 設備的屬性 %1 %2 值 %3 Notify %4",rF.BLE_PERIPHERAL_DISCONNECT_HELPURL="",rF.BLE_PERIPHERAL_DISCONNECT_TOOLTIP="",rF.BLE_PERIPHERAL_DISCONNECT_MESSAGE0="BLE 外圍設備斷開連接",rF.BLE_PERIPHERAL_MAC_HELPURL="",rF.BLE_PERIPHERAL_MAC_TOOLTIP="",rF.BLE_PERIPHERAL_MAC_MESSAGE0="BLE 外圍設備 MAC地址",rF.BLE_PERIPHERAL_CONNECTION_CALLBACK_HELPURL="",rF.BLE_PERIPHERAL_CONNECTION_CALLBACK_TOOLTIP="",rF.BLE_PERIPHERAL_CONNECTION_CALLBACK_MESSAGE0="當 BLE 與中央設備建立連接時 %1 連接句柄 %2 地址類型 %3 中央設備的MAC地址 %4",rF.BLE_PERIPHERAL_WRITE_CALLBACK_HELPURL="",rF.BLE_PERIPHERAL_WRITE_CALLBACK_TOOLTIP="",rF.BLE_PERIPHERAL_WRITE_CALLBACK_MESSAGE0="當 BLE 設備的屬性值被改寫時 %1 連接句柄 %2 被寫屬性句柄 %3 寫入的數據 %4",rF.BLE_SETUP_CENTERAL_HELPURL="",rF.BLE_SETUP_CENTERAL_TOOLTIP="",rF.BLE_SETUP_CENTERAL_MESSAGE0="構建 BLE 中央設備對象 顯示名稱 %1",rF.BLE_CENTERAL_CONNECT_HELPURL="",rF.BLE_CENTERAL_CONNECT_TOOLTIP="",rF.BLE_CENTERAL_CONNECT_MESSAGE0="BLE 中央設備連接到 %1 %2",rF.BLE_CENTERAL_IS_CONNECTED_HELPURL="",rF.BLE_CENTERAL_IS_CONNECTED_TOOLTIP="",rF.BLE_CENTERAL_IS_CONNECTED_MESSAGE0="BLE 外圍設備已連接 ?",rF.BLE_CENTERAL_DEF_CHARACTERISTIC_HELPURL="",rF.BLE_CENTERAL_DEF_CHARACTERISTIC_TOOLTIP="",rF.BLE_CENTERAL_DEF_CHARACTERISTIC_MESSAGE0="設定 %1 為 已連接外圍設備 屬性對象 %2 Service UUID %3 Characteristic UUID %4",rF.BLE_CENTERAL_CHARACTERISTIC_READ_HELPURL="",rF.BLE_CENTERAL_CHARACTERISTIC_READ_TOOLTIP="",rF.BLE_CENTERAL_CHARACTERISTIC_READ_MESSAGE0="讀 已連接外圍設備的 屬性 %1 值",rF.BLE_CENTERAL_CHARACTERISTIC_WRITE_HELPURL="",rF.BLE_CENTERAL_CHARACTERISTIC_WRITE_TOOLTIP="",rF.BLE_CENTERAL_CHARACTERISTIC_WRITE_MESSAGE0="寫 已連接外圍設備的 屬性 %1 值 %2",rF.BLE_CENTERAL_NOTIFY_CALLBACK_HELPURL="",rF.BLE_CENTERAL_NOTIFY_CALLBACK_TOOLTIP="",rF.BLE_CENTERAL_NOTIFY_CALLBACK_MESSAGE0="當 已連接外圍設備發起 Notify 通知事件時 %1 屬性的值柄 %2 通知的屬性值 %3",rF.BLE_CENTERAL_CONNECTED_INFO_HELPURL="",rF.BLE_CENTERAL_CONNECTED_INFO_TOOLTIP="",rF.BLE_CENTERAL_CONNECTED_INFO_MESSAGE0="已連接的外圍設備 %1",rF.BLE_CENTERAL_CLOSE_HELPURL="",rF.BLE_CENTERAL_CLOSE_TOOLTIP="",rF.BLE_CENTERAL_CLOSE_MESSAGE0="BLE 中央設備 斷開連接",rF.BLE_INFO_NAME="藍牙名稱",rF.BLE_INFO_MAC="MAC地址",rF.BLE_INFO_RSSI="信號強度",rF.BLE_INFO_ADDRTYPE="地址類型",rF.BLE_INFO_ADVTYPE="廣播類型",rF.BLE_INFO_DATA="原始數據(元組)",rF.BLE_SETUP_UART_HELPURL="",rF.BLE_SETUP_UART_TOOLTIP="",rF.BLE_SETUP_UART_MESSAGE0="構建 BLE UART從機 顯示名稱 %1",rF.BLE_UART_IS_CONNECTED_HELPURL="",rF.BLE_UART_IS_CONNECTED_TOOLTIP="",rF.BLE_UART_IS_CONNECTED_MESSAGE0="BLE UART 已連接 ?",rF.BLE_UART_ANY_HELPURL="",rF.BLE_UART_ANY_TOOLTIP="",rF.BLE_UART_ANY_MESSAGE0="BLE UART 可讀字節數量",rF.BLE_UART_IRQ_HELPURL="",rF.BLE_UART_IRQ_TOOLTIP="",rF.BLE_UART_IRQ_MESSAGE0="當 BLE UART 接收到數據時 %1 執行 %2",rF.BLE_UART_READ_HELPURL="",rF.BLE_UART_READ_TOOLTIP="從 UART 另一端發送過來的消息",rF.BLE_UART_READ_MESSAGE0="已接收數據",rF.BLE_UART_WRITE_HELPURL="",rF.BLE_UART_WRITE_TOOLTIP="",rF.BLE_UART_WRITE_MESSAGE0="BLE UART 發送字節 %1",rF.BLE_UART_CLOSE_HELPURL="",rF.BLE_UART_CLOSE_TOOLTIP="",rF.BLE_UART_CLOSE_MESSAGE0="BLE UART 斷開連接",rF.BLE_SETUP_UART_MASTER_HELPURL="",rF.BLE_SETUP_UART_MASTER_TOOLTIP="",rF.BLE_SETUP_UART_MASTER_MESSAGE0="構建 BLE UART主機 連接到 %1 %2",rF.BLE_SETUP_HID_HELPURL="",rF.BLE_SETUP_HID_TOOLTIP="",rF.BLE_SETUP_HID_MESSAGE0="構建 BLE HID %1 對象 %2 顯示名稱 %3 電池電量 %4",rF.BLE_HID_MOUSE="鼠標",rF.BLE_HID_KEYBOARD="鍵盤",rF.BLE_HID_CONSUMER="遙控器",rF.BLE_HID_ADVERTISE_HELPURL="",rF.BLE_HID_ADVERTISE_TOOLTIP="",rF.BLE_HID_ADVERTISE_MESSAGE0="BLE HID設備 %1",rF.BLE_HID_CONNECT_EVENT_HELPURL="",rF.BLE_HID_CONNECT_EVENT_TOOLTIP="",rF.BLE_HID_CONNECT_EVENT_MESSAGE0="當 BLE HID設備 連接時",rF.BLE_HID_DISCONNECT_HELPURL="",rF.BLE_HID_DISCONNECT_TOOLTIP="",rF.BLE_HID_DISCONNECT_MESSAGE0="BLE HID設備 斷開連接",rF.BLE_HID_BATTERY_LEVEL_HELPURL="",rF.BLE_HID_BATTERY_LEVEL_TOOLTIP="",rF.BLE_HID_BATTERY_LEVEL_MESSAGE0="BLE HID設備 電池電量",rF.BLE_HID_MOUSE_BUTTONS_HELPURL="",rF.BLE_HID_MOUSE_BUTTONS_TOOLTIP="",rF.BLE_HID_MOUSE_BUTTONS_MESSAGE0="鼠標鍵 %1",rF.BLE_HID_MOUSE_CLICK_HELPURL="",rF.BLE_HID_MOUSE_CLICK_TOOLTIP="",rF.BLE_HID_MOUSE_CLICK_MESSAGE0="BLE HID 鼠標 點擊按鍵 %1",rF.BLE_HID_MOUSE_PRESS_HELPURL="",rF.BLE_HID_MOUSE_PRESS_TOOLTIP="",rF.BLE_HID_MOUSE_PRESS_MESSAGE0="BLE HID 鼠標 長按按鍵 %1",rF.BLE_HID_MOUSE_RELEASE_HELPURL="",rF.BLE_HID_MOUSE_RELEASE_TOOLTIP="",rF.BLE_HID_MOUSE_RELEASE_MESSAGE0="BLE HID 鼠標 釋放按鍵 %1",rF.BLE_HID_MOUSE_RELEASE_ALL_HELPURL="",rF.BLE_HID_MOUSE_RELEASE_ALL_TOOLTIP="",rF.BLE_HID_MOUSE_RELEASE_ALL_MESSAGE0="BLE HID 鼠標 釋放所有按鍵",rF.BLE_HID_MOUSE_MOVE_HELPURL="",rF.BLE_HID_MOUSE_MOVE_TOOLTIP="x, y - 光標移動量,範圍 ±127 。\nwheel - 滾輪,範圍 ±127 。",rF.BLE_HID_MOUSE_MOVE_MESSAGE0="BLE HID 鼠標 光標移動 %1 X軸移動量 %2 Y軸移動量 %3 滾輪 %4",rF.BLE_HID_KEYBOARD_BUTTONS_HELPURL="",rF.BLE_HID_KEYBOARD_BUTTONS_TOOLTIP="",rF.BLE_HID_KEYBOARD_BUTTONS_MESSAGE0="鍵盤按鍵 %1",rF.BLE_HID_KEYBOARD_SEND_HELPURL="",rF.BLE_HID_KEYBOARD_SEND_TOOLTIP="",rF.BLE_HID_KEYBOARD_SEND_MESSAGE0="BLE HID 鍵盤 按下按鍵 %1",rF.BLE_HID_KEYBOARD_SEND_MULTI_HELPURL="",rF.BLE_HID_KEYBOARD_SEND_MULTI_TOOLTIP="",rF.BLE_HID_KEYBOARD_SEND_MULTI_MESSAGE0="BLE HID 鍵盤 同時按下按鍵 %1 %2 %3",rF.BLE_HID_KEYBOARD_PRESS_HELPURL="",rF.BLE_HID_KEYBOARD_PRESS_TOOLTIP="",rF.BLE_HID_KEYBOARD_PRESS_MESSAGE0="BLE HID 鍵盤 長按按鍵 %1",rF.BLE_HID_KEYBOARD_RELEASE_HELPURL="",rF.BLE_HID_KEYBOARD_RELEASE_TOOLTIP="",rF.BLE_HID_KEYBOARD_RELEASE_MESSAGE0="BLE HID 鍵盤 釋放按鍵 %1",rF.BLE_HID_KEYBOARD_RELEASE_ALL_HELPURL="",rF.BLE_HID_KEYBOARD_RELEASE_ALL_TOOLTIP="",rF.BLE_HID_KEYBOARD_RELEASE_ALL_MESSAGE0="BLE HID 鍵盤 釋放所有按鍵",rF.BLE_HID_CONSUMER_BUTTONS_HELPURL="",rF.BLE_HID_CONSUMER_BUTTONS_TOOLTIP="",rF.BLE_HID_CONSUMER_BUTTONS_MESSAGE0="遙控器鍵 %1",rF.BLE_HID_CONSUMER_SEND_HELPURL="",rF.BLE_HID_CONSUMER_SEND_TOOLTIP="",rF.BLE_HID_CONSUMER_SEND_MESSAGE0="BLE HID 遙控器點擊 %1",rF.BLE_SETUP_IBEACON_HELPURL="",rF.BLE_SETUP_IBEACON_TOOLTIP="",rF.BLE_SETUP_IBEACON_MESSAGE0="構建 BLE iBeacon設備 %1 UUID %2 major %3 minor %4",rF.BLE_IBEACON_ADVERTISE_HELPURL="",rF.BLE_IBEACON_ADVERTISE_TOOLTIP="",rF.BLE_IBEACON_ADVERTISE_MESSAGE0="BLE iBeacon設備 %1",rF.MPYTHON_PARROT_GET_BATTERY_LEVEL_HELPURL="",rF.MPYTHON_PARROT_GET_BATTERY_LEVEL_TOOLTIP="返回電量,單位mV",rF.MPYTHON_PARROT_GET_BATTERY_LEVEL_MESSAGE0="拓展板的電壓值(mV)",rF.MPYTHON_BLUEBIT_IR_ENCODE_RAW_HELPURL="",rF.MPYTHON_BLUEBIT_IR_ENCODE_RAW_TOOLTIP="返回編碼後的紅外脈沖數據buff",rF.MPYTHON_BLUEBIT_IR_ENCODE_RAW_MESSAGE0="拓展板 紅外脈沖任意編碼 %1 載波頻率(Hz) %2 code總數 %3 循環碼位置 %4 code列表 %5 編碼波形數據 %6",rF.MPYTHON_BLUEBIT_IR_ENCODE_NEC_HELPURL="",rF.MPYTHON_BLUEBIT_IR_ENCODE_NEC_TOOLTIP="返回編碼後的紅外脈沖數據buff\n用戶碼:0~255\n命令碼:0~255",rF.MPYTHON_BLUEBIT_IR_ENCODE_NEC_MESSAGE0="拓展板 紅外脈沖NEC編碼 %1 用戶碼 %2 命令碼 %3",rF.MPYTHON_BLUEBIT_IR_SEND_HELPURL="",rF.MPYTHON_BLUEBIT_IR_SEND_TOOLTIP="",rF.MPYTHON_BLUEBIT_IR_SEND_MESSAGE0="拓展板 發送紅外脈沖數據 %1 %2",rF.MPYTHON_BLUEBIT_IR_SEND_REPEAT_0="只發一次",rF.MPYTHON_BLUEBIT_IR_SEND_REPEAT_1="持續發送",rF.MPYTHON_BLUEBIT_IR_STOP_SEND_HELPURL="",rF.MPYTHON_BLUEBIT_IR_STOP_SEND_TOOLTIP="當發送重復碼後,使用此函數來停止發送。",rF.MPYTHON_BLUEBIT_IR_STOP_SEND_MESSAGE0="拓展板 停止發送紅外脈沖數據",rF.MPYTHON_BLUEBIT_IR_LEARN_HELPURL="",rF.MPYTHON_BLUEBIT_IR_LEARN_TOOLTIP="學習開始後,需等待4秒,之後返回學習結果。",rF.MPYTHON_BLUEBIT_IR_LEARN_MESSAGE0="拓展板 開始紅外學習",rF.MPYTHON_BLUEBIT_IR_GET_LEARN_STATUS_HELPURL="",rF.MPYTHON_BLUEBIT_IR_GET_LEARN_STATUS_TOOLTIP="",rF.MPYTHON_BLUEBIT_IR_GET_LEARN_STATUS_MESSAGE0="拓展板 紅外學習有結果 ?",rF.MPYTHON_BLUEBIT_IR_GET_LEARN_DATA_HELPURL="",rF.MPYTHON_BLUEBIT_IR_GET_LEARN_DATA_TOOLTIP="返回學習後的“紅外編碼數據”,須在 learn 函數後使用。",rF.MPYTHON_BLUEBIT_IR_GET_LEARN_DATA_MESSAGE0="拓展板 學習到的紅外編碼數據",rF.MPYTHON_MLX90615_SET_HELPURL="",rF.MPYTHON_MLX90615_SET_MESSAGE0="MLX90615 非接觸測溫傳感器 設置發射系數%1",rF.MPYTHON_MLX90615_SET_TOOLTIP="",rF.MPYTHON_MLX90615_GET_HELPURL="",rF.MPYTHON_MLX90615_GET_MESSAGE0="MLX90615 非接觸測溫傳感器 獲取系數",rF.MPYTHON_MLX90615_GET_TOOLTIP="",rF.MPYTHON_MLX90615_THERMOMETRY_HELPURL="",rF.MPYTHON_MLX90615_THERMOMETRY_MESSAGE0="MLX90615 非接觸測溫傳感器 獲取測溫",rF.MPYTHON_MLX90615_THERMOMETRY_TOOLTIP="",rF.MPYTHON_MQ135_INIT_HELPURL="",rF.MPYTHON_MQ135_INIT_MESSAGE0="MQ135初始化 輸出引腳%1 溫度%2 ℃ 濕度%3 %",rF.MPYTHON_MQ135_INIT_TOOLTIP="MQ135上的VCC 連接擴展板的電源口 V ,GND連接擴展板的地線口 G ,AO輸出連接擴展板的引腳 P0/P1(即選引腳)\nMQ135主要用於檢測空氣中的二氧化碳、酒精、苯、氮氧化物、氨等氣體的濃度",rF.MPYTHON_MQ135_OPTIONS_MESSAGE0="MQ135 返回 %1",rF.MPYTHON_MQ135_OPTIONS_HELPURL="",rF.MPYTHON_MQ135_OPTIONS_TOOLTIP="返回探測到的二氧化碳的百萬分之一(假設只有空氣中的二氧化碳) ppm濃度",rF.MPYTHON_MQ135_GET_RZERO="校正傳感器電阻",rF.MPYTHON_MQ135_GET_CORRECTED_RZERO="校正傳感器電阻(校準溫度、濕度)",rF.MPYTHON_MQ135_GET_PPM="二氧化碳、酒精、苯、氮氧化物、氨等氣體ppm濃度",rF.MPYTHON_MQ135_GET_CORRECTED_PPM="二氧化碳、酒精、苯、氮氧化物、氨等氣體ppm濃度(校準溫度、濕度)",rF.mpython_gyroscope_get_HELPURL="",rF.mpython_gyroscope_get_MESSAGE0="%1 軸角速度",rF.mpython_gyroscope_get_TOOLTIP="v2.3版本以上掌控版適用",rF.MPYTHON_GYROSCOPE_RANGE_16_DPS="±16dps",rF.MPYTHON_GYROSCOPE_RANGE_32_DPS="±32dps",rF.MPYTHON_GYROSCOPE_RANGE_64_DPS="±64dps",rF.MPYTHON_GYROSCOPE_RANGE_128_DPS="±128dps",rF.MPYTHON_GYROSCOPE_RANGE_256_DPS="±256dps",rF.MPYTHON_GYROSCOPE_RANGE_512_DPS="±512dps",rF.MPYTHON_GYROSCOPE_RANGE_1024_DPS="±1024dps",rF.MPYTHON_GYROSCOPE_RANGE_2048_DPS="±2048dps",rF.MPYTHON_GYROSCOPE_SET_RANGE_HELPURL="",rF.MPYTHON_GYROSCOPE_SET_RANGE_TOOLTIP="設置角速度範圍,默認為 ±256dps。僅適用於掌控板2.3及以上版本",rF.MPYTHON_GYROSCOPE_SET_RANGE_MESSAGE0="設置角速度範圍為 %1",rF.MPYTHON_GYROSCOPE_SET_OFFSET_HELPURL="",rF.MPYTHON_GYROSCOPE_SET_OFFSET_TOOLTIP="校準陀螺儀角速度計的3個軸(x,y,z)的角速度值偏差。\n一般情況下無需校準,只有遇到角速度偏差較大時才要校準。\n x , y , z 為調整偏差值,可修正範圍為 ±1024dps。\n註意:v2.3版本以後適用",rF.MPYTHON_GYROSCOPE_SET_OFFSET_MESSAGE0="校準角速度值 %1 X軸偏差 %2 Y軸偏差 %3 Z軸偏差 %4";const SF=rF,lF={TEXT_IS_NUMBER_HELPURL:"",TEXT_IS_NUMBER_TOOLTIP:"",TEXT_IS_NUMBER_MESSAGE0:"%1 %2",TEXT_IS_DIGIT:"is number",TEXT_IS_ALPHA:"is letter",TEXT_IS_ALNUM:"is mix of numbers and letters",REDO:"Redo",UNDO:"Undo",DELETE_VARIABLE:'Delete "%1" variable',DELETE_VARIABLE_CONFIRMATION:'Delete %1 of the "%2" variable?',CONTROLS_REPEAT_FOREVER:"repeat forever",CONTROLS_REPEAT_FOREVER_TOOLTIP:"Do some statements forever times",TEXT_LIST_START:"create list [",TEXT_LIST_END:"]",TEXT_TUPLE_START:"create tuple (",TEXT_TUPLE_END:")",TEXT_DICT_START:"create dictionary {",TEXT_DICT_END:"}",TEXT_SET_START:"create set {",TEXT_SET_END:"}",TEXT_SET_HELPURL:"https://mpythonx.readthedocs.io/zh_CN/latest/index.html",TUPLE_CREATE_EMPTY_TITLE:"create empty tuple",DICT_CREATE_EMPTY_TITLE:"create empty dictionary",SET_CREATE_EMPTY_TITLE:"create empty sets",TUPLE_CREATE_WITH_CONTAINER_TITLE_ADD:"tuple",DICT_CREATE_WITH_CONTAINER_TITLE_ADD:"dictionary",SET_CREATE_WITH_CONTAINER_TITLE_ADD:"sets",TUPLE_CREATE_WITH_CONTAINER_TOOLTIP:"Add, remove, or rearrange sections to reconfigure this tuple block.",DICT_CREATE_WITH_CONTAINER_TOOLTIP:"Add, remove, or rearrange sections to reconfigure this dictionary block.",TUPLE_CREATE_WITH_INPUT_WITH:"create tuple with",DICT_CREATE_WITH_INPUT_WITH:"create dictionary with",SET_CREATE_WITH_INPUT_WITH:"create sets with",TUPLE_CREATE_WITH_ITEM_TOOLTIP:"Add an item to the tuple.",DICT_CREATE_WITH_ITEM_TOOLTIP:"Add an item to the dictionary.",SET_CREATE_WITH_ITEM_TOOLTIP:"Add an item to the sets.",LISTS_SORT_HELPURL:"https://github.com/google/blockly/wiki/Lists#sorting-a-list",LISTS_SORT_ORDER_ASCENDING:"ascending",LISTS_SORT_ORDER_DESCENDING:"descending",LISTS_SORT_TITLE:"sort %1 %2 %3",LISTS_SORT_TOOLTIP:"Sort a copy of a list.",LISTS_SORT_TYPE_IGNORECASE:"by letter, ignore case",LISTS_SORT_TYPE_NUMERIC:"by number",LISTS_SORT_TYPE_TEXT:"by letter",labplus_mapping_MESSAGE0:"map %1 from %2 , %3 to %4 , %5",labplus_mapping_TOOLTIP:"Map 10 of 0~100 to 0~200 and return the mapped value",labplus_mapping_HELPURL:"",MPYTHON_OPEN:"on",MPYTHON_CLOSE:"off",MPYTHONBOX_RGB_IMAGE_SHIFT_LEFT:"shift left",MPYTHONBOX_RGB_IMAGE_SHIFT_RIGHT:"shift right",MPYTHONBOX_RGB_IMAGE_SHIFT_UP:"shift up",MPYTHONBOX_RGB_IMAGE_SHIFT_DOWN:"shift down",MPYTHON_AI_LCD_SHOW_IMAGE_HEAT_GRAYSCALE:"grayscale",MPYTHON_AI_LCD_SHOW_IMAGE_HEAT_RAINBOW:"rainbow",MPYTHON_AI_LCD_SHOW_IMAGE_HEAT_NEGATE:"negate",MPYTHON_AI_LCD_SHOW_IMAGE_HEAT_INVERT:"invert",MPYTHON_AI_LCD_SHOW_IMAGE_DESCARTES_LINPOLAR:"line polar",MPYTHON_AI_LCD_SHOW_IMAGE_DESCARTES_LOGPOLAR:"log polar",MPYTHON_AI_SENSOR_PATTERN_GRAYSCALE:"grayscale",MPYTHON_AI_SENSOR_PATTERN_COLOR:"color",MPYTHON_AI_SENSOR_ENABLE_START:"start capturing image",MPYTHON_AI_SENSOR_ENABLE_STOP:"stop capturing image",MPYTHON_AI_SENSOR_LEVEL_MI_H:"horizontal mirror",MPYTHON_AI_SENSOR_LEVEL_MI_V:"vertical flip",MPYTHON_AI_SENSOR_SETS_CONTRAST:"contrast",MPYTHON_AI_SENSOR_SETS_BRIGHTNESS:"brightness",MPYTHON_AI_SENSOR_SETS_SATURATION:"saturation",MPYTHON_AI2_FACE_YOLO:"FACE YOLO",MPYTHON_AI2_CLASS_20_YOLO:"CLASS 20 YOLO",MPYTHON_AI_TRACE_COLOR_RECTANGLE:"rectangle",MPYTHON_AI_TRACE_COLOR_CROSS:"cross",TEXT_APPEND_TEXT_HELPURL:"",TEXT_APPEND_TEXT_TOOLTIP:"",TEXT_APPEND_TEXT_MESSAGE0:"%1 append text %2",MPYTHON_AUDIO_PLAY_chirp_MESSAGE0:"鸟叫",MPYTHON_AUDIO_PLAY_Pianodarkmelodies_MESSAGE0:"钢琴黑暗旋律配乐",MPYTHON_AUDIO_PLAY_miaow_MESSAGE0:"猫叫",MPYTHON_AUDIO_PLAY_bark_MESSAGE0:"小狗吠叫",MPYTHON_AUDIO_PLAY_Arichpercussivesound_MESSAGE0:"浑厚的打击音",MPYTHON_AUDIO_PLAY_Soundeffectsfortension_MESSAGE0:"紧张效果的音效",MPYTHON_AUDIO_PLAY_Camerashuttersound_MESSAGE0:"拍照快门声",MPYTHON_AUDIO_PLAY_Hundredsofflies_MESSAGE0:"数百只苍蝇",MPYTHON_AUDIO_PLAY_Cricketscry_MESSAGE0:"蟋蟀叫声",MPYTHON_AUDIO_PLAY_Shakethebassline_MESSAGE0:"摇晃低音声线",MPYTHON_AUDIO_PLAY_audiencecheeredandclapped_MESSAGE0:"听众欢呼掌声",MPYTHON_AUDIO_PLAY_Cruiseshipwhistle_MESSAGE0:"邮轮汽笛",MPYTHON_AUDIO_PLAY_Moderntelephoneringtone_MESSAGE0:"现代电话铃声",MPYTHON_AUDIO_PLAY_pullingtradish_MESSAGE0:"拔萝卜",MPYTHON_AUDIO_PLAY_twotigers_MESSAGE0:"两只老虎",MPYTHON_AUDIO_SET_VOLUME_HELPURL:"",MPYTHON_AUDIO_SET_VOLUME_MESSAGE0:"set Audio volume as %1",MPYTHON_AUDIO_SET_VOLUME_TOOLTIP:"",MPYTHON_BLUEBIT_GET_MOTORPEED_HELPURL:"",MPYTHON_BLUEBIT_GET_MOTORPEED_MESSAGE0:"expansion-board speed of DC motor %1",MPYTHON_BLUEBIT_GET_MOTORPEED_TOOLTIP:"",MPYTHON_M1M2_LED_ON_HELPURL:"",MPYTHON_M1M2_LED_ON_MESSAGE0:"expansion-board set led at %1 brightness %2",MPYTHON_M1M2_LED_ON_TOOLTIP:"",MPYTHON_M1M2_LED_OFF_HELPURL:"",MPYTHON_M1M2_LED_OFF_MESSAGE0:"expansion-board turn off led at %1",MPYTHON_M1M2_LED_OFF_TOOLTIP:"",MPYTHON_BLUEBIT_HELPURL:"http://wiki.labplus.cn/index.php?title=Bluebit",MPYTHON_BLUEBIT_NEWRFID_READ_MESSAGE0:"I2C RFID Read wallet data",MPYTHON_BLUEBIT_NEWRFID_READ_TOOLTIP:"Read block data, length 16 bytes",MPYTHON_BLUEBIT_NEWRFID_READ_HELPURL:"https://mpython.readthedocs.io/zh/master/library/mPython/bluebit.html#rfid",MPYTHON_BLUEBIT_NEWRFID_WRITE_MESSAGE0:"I2C RFID Write wallet data%1",MPYTHON_BLUEBIT_NEWRFID_WRITE_TOOLTIP:"Write block data, length 16 bytes",MPYTHON_BLUEBIT_NEWRFID_WRITE_HELPURL:"https://mpython.readthedocs.io/zh/master/library/mPython/bluebit.html#rfid",MPYTHON_BLUEBIT_NEWRFID_MONEY_MESSAGE0:"I2C RFID wallet%1 money%2",MPYTHON_BLUEBIT_NEWRFID_MONEY_TOOLTIP:"",MPYTHON_BLUEBIT_NEWRFID_MONEY_HELPURL:"https://mpython.readthedocs.io/zh/master/library/mPython/bluebit.html#rfid",MPYTHON_BLUEBIT_NEWRFID_INC_MESSAGE0:"Recharge",MPYTHON_BLUEBIT_NEWRFID_DEC_MESSAGE0:"Deduction fee",MPYTHON_BLUEBIT_NEWRFID_GET_MESSAGE0:"I2C RFID Get wallet balance",MPYTHON_BLUEBIT_NEWRFID_GET_TOOLTIP:"",MPYTHON_BLUEBIT_NEWRFID_GET_HELPURL:"https://mpython.readthedocs.io/zh/master/library/mPython/bluebit.html#rfid",MPYTHON_BLUEBIT_NEWRFID_GETSERIAL_MESSAGE0:"I2C RFID Get serial number",MPYTHON_BLUEBIT_NEWRFID_GETSERIAL_TOOLTIP:"",MPYTHON_BLUEBIT_NEWRFID_GETSERIAL_HELPURL:"https://mpython.readthedocs.io/zh/master/library/mPython/bluebit.html#rfid",MPYTHON_BLUEBIT_NEWRFID_SET_MESSAGE0:"I2C RFID Initialize Wallet",MPYTHON_BLUEBIT_NEWRFID_SET_TOOLTIP:"",MPYTHON_BLUEBIT_NEWRFID_SET_HELPURL:"https://mpython.readthedocs.io/zh/master/library/mPython/bluebit.html#rfid",MPYTHON_BLUEBIT_NEWRFID_SCAN_MESSAGE0:"I2C RFID scanning",MPYTHON_BLUEBIT_NEWRFID_SCAN_TOOLTIP:"",MPYTHON_BLUEBIT_NEWRFID_SCAN_HELPURL:"https://mpython.readthedocs.io/zh/master/library/mPython/bluebit.html#rfid",MPYTHON_BLUEBIT_ULTRASONIC_MESSAGE0:"I2C ultrasonic value",MPYTHON_BLUEBIT_ULTRASONIC_TOOLTIP:"",MPYTHON_BLUEBIT_ULTRASONIC_HELPURL:"http://wiki.labplus.cn/index.php?title=Bluebit",MPYTHON_BLUEBIT_READ_DIGITAL_MESSAGE0:"%1 on pin %2 be triggered",MPYTHON_BLUEBIT_READ_DIGITAL_TOOLTIP:"",MPYTHON_BLUEBIT_READ_DIGITAL_HELPURL:"http://wiki.labplus.cn/index.php?title=Bluebit",MPYTHON_BLUEBIT_READ_ANALOG_MESSAGE0:"%1 on pin %2 analog value",MPYTHON_BLUEBIT_READ_ANALOG_TOOLTIP:"",MPYTHON_BLUEBIT_READ_ANALOG_HELPURL:"http://wiki.labplus.cn/index.php?title=Bluebit",MPYTHON_BLUEBIT_SET_ANALOG_MESSAGE0:"set LED on pin %2 value as %1",MPYTHON_BLUEBIT_SET_ANALOG_TOOLTIP:"",MPYTHON_BLUEBIT_SET_ANALOG_HELPURL:"http://wiki.labplus.cn/index.php?title=Bluebit",MPYTHON_BLUEBIT_LINE_FOLLOWER_MESSAGE0:"tracking sensor on pin %1 detected as black",MPYTHON_BLUEBIT_LINE_FOLLOWER_TOOLTIP:"",MPYTHON_BLUEBIT_LINE_FOLLOWER_HELPURL:"http://wiki.labplus.cn/index.php?title=Bluebit",MPYTHON_BLUEBIT_SET_TRUE_HELPURL:"http://wiki.labplus.cn/index.php?title=Bluebit",MPYTHON_BLUEBIT_SET_TRUE_MESSAGE0:"turn on %1 on pin %2",MPYTHON_BLUEBIT_SET_TRUE_TOOLTIP:"",MPYTHON_BLUEBIT_SET_FALSE_HELPURL:"http://wiki.labplus.cn/index.php?title=Bluebit",MPYTHON_BLUEBIT_SET_FALSE_MESSAGE0:"turn off %1 on pin %2",MPYTHON_BLUEBIT_SET_FALSE_TOOLTIP:"",MPYTHON_BLUEBIT_VOICE_RECORD_ON_HELPURL:"http://wiki.labplus.cn/index.php?title=%E8%AF%AD%E9%9F%B3%E5%BD%95%E6%94%BE",MPYTHON_BLUEBIT_VOICE_RECORD_ON_TOOLTIP:"",MPYTHON_BLUEBIT_VOICE_RECORD_ON_MESSAGE0:"turn on recorder %1 %2 REC %3 PLAY %4",MPYTHON_BLUEBIT_VOICE_RECORD_OFF_HELPURL:"http://wiki.labplus.cn/index.php?title=%E8%AF%AD%E9%9F%B3%E5%BD%95%E6%94%BE",MPYTHON_BLUEBIT_VOICE_RECORD_OFF_TOOLTIP:"",MPYTHON_BLUEBIT_VOICE_RECORD_OFF_MESSAGE0:"turn off recorder %1 REC %2 PLAY %3",MPYTHON_BLUEBIT_VOICE_RECORD_PLAY:"PLAY",MPYTHON_BLUEBIT_VOICE_RECORD_REC:"REC",STOP:("STOP","STOP"),MPYTHON_BLUEBIT_IR_RECEIVE:"infrared detection",MPYTHON_BLUEBIT_SOUND:"microphone",MPYTHON_BLUEBIT_LINE_FOLLOWER:"tracking sensor",MPYTHON_BLUEBIT_VIBRATION:"vibration sensor",MPYTHON_BLUEBIT_RFID:"RF card",MPYTHON_BLUEBIT_FINGERPRINT_SCANNER:"fingerprint scanner",MPYTHON_BLUEBIT_PIR:"PIR sensor",MPYTHON_BLUEBIT_MAGNETIC:"magnetic switch",MPYTHON_BLUEBIT_BUTTON:"button",MPYTHON_BLUEBIT_RELAY:"relay",MPYTHON_BLUEBIT_LIMIT_SWITCH:"limit switch",MPYTHON_BLUEBIT_FAN:"fan",MPYTHON_BLUEBIT_LASER:"laser",MPYTHON_BLUEBIT_NTC_TEMP:"NTC temperature",MPYTHON_BLUEBIT_WATER:"water level",MPYTHON_BLUEBIT_SOIL_MOISTURE:"soil moisture",MPYTHON_BLUEBIT_ROTATE_DIMMER:"rotate dimmer",MPYTHON_BLUEBIT_LINEAR_SLIDING_POTENTIOMETER:"sliding potentiometer",MPYTHON_BLUEBIT_ANALOG_LIGHT:"analog light",MPYTHON_BLUEBIT_LM35_TEMP:"LM35 temperature",MPYTHON_BLUEBIT_SMOKE:"smoke",MPYTHON_BLUEBIT_MOTOR_ON_CLOCKWISE:"corotation",MPYTHON_BLUEBIT_MOTOR_ON_ANTICLOCKWISE:"reverse",MPYTHON_BLUEBIT_READ_SOIL_HELPURL:"",MPYTHON_BLUEBIT_READ_SOIL_TOOLTIP:"New soil moisture",MPYTHON_BLUEBIT_READ_SOIL_MESSAGE0:"soil moisture(new)%1",MPYTHON_BLUEBIT_MOTOR_ON_HELPURL:"http://wiki.labplus.cn/index.php?title=%E7%94%B5%E6%9C%BA%E9%A9%B1%E5%8A%A8",MPYTHON_BLUEBIT_MOTOR_ON_TOOLTIP:"speed:Map -100~100 to -1023~1023",MPYTHON_BLUEBIT_MOTOR_ON_MESSAGE0:"turn on DC motor %1 speed %2 pin AIN1 %3 pin AIN2 %4",MPYTHON_BLUEBIT_MOTOR_OFF_HELPURL:"http://wiki.labplus.cn/index.php?title=%E7%94%B5%E6%9C%BA%E9%A9%B1%E5%8A%A8",MPYTHON_BLUEBIT_MOTOR_OFF_TOOLTIP:"",MPYTHON_BLUEBIT_MOTOR_OFF_MESSAGE0:"stop DC motor %1 pin AIN1 %2 pin AIN2 %3",MPYTHON_BLUEBIT_SET_FAN_HELPURL:"",MPYTHON_BLUEBIT_SET_FAN_TOOLTIP:"",MPYTHON_BLUEBIT_SET_FAN_MESSAGE0:"expansion-board turn on the fan %1",MPYTHON_LEFT:"LEFT",MPYTHON_RIGHT:"RIGHT",MPYTHON_BLUEBIT_SET_FAN_OFF_HELPURL:"",MPYTHON_BLUEBIT_SET_FAN_OFF_TOOLTIP:"",MPYTHON_BLUEBIT_SET_FAN_OFF_MESSAGE0:"expansion-board turn off the fan %1",MPYTHON_BLUEBIT_4BUTTON_HELPURL:"http://wiki.MPYTHON_BLUEBIT.cn/index.php?title=%E5%9B%9B%E6%8C%89%E9%94%AE",MPYTHON_BLUEBIT_4BUTTON_TOOLTIP:"",MPYTHON_BLUEBIT_4BUTTON_MESSAGE0:"Navigation button module pin %1 button %2 is pressed",BLUE:"A",GREEN:"B",RED:"C",YELLOW:"D",MPYTHON_BLUEBIT_JOYSTICK_HELPURL:"",MPYTHON_BLUEBIT_JOYSTICK_TOOLTIP:"",MPYTHON_BLUEBIT_JOYSTICK_MESSAGE0:"Thumb joystick pin A0 %1 pin A1 %2 %3 axis",MPYTHON_BLUEBIT_MOTOR_ON_I2C_HELPURL:"",MPYTHON_BLUEBIT_MOTOR_ON_I2C_TOOLTIP:"speed: 0~100",MPYTHON_BLUEBIT_MOTOR_ON_I2C_MESSAGE0:"expansion-board turn on DC motor %1 %2 speed %3",MPYTHON_BLUEBIT_BLUEBIT_MOTOR_OFF_I2C_HELPURL:"",MPYTHON_BLUEBIT_MOTOR_OFF_I2C_TOOLTIP:"speed: 0~100",MPYTHON_BLUEBIT_MOTOR_OFF_I2C_MESSAGE0:"expansion-board stop DC motor",MPYTHON_BLUEBIT_CODED_THREE_MOTOR_ON_I2C_HELPURL:"",MPYTHON_BLUEBIT_CODED_THREE_MOTOR_ON_I2C_TOOLTIP:"speed: -1023~1023",MPYTHON_BLUEBIT_CODED_THREE_MOTOR_ON_I2C_MESSAGE0:"Coded motor mode%1 dial code%2 M1 speed%3 M2 speed%4",MPYTHON_BLUEBIT_CODED_STOP_MOTOR_ON_I2C_HELPURL:"",MPYTHON_BLUEBIT_CODED_STOP_MOTOR_ON_I2C_TOOLTIP:"Stop Coding Motor Rotation",MPYTHON_BLUEBIT_CODED_STOP_MOTOR_ON_I2C_MESSAGE0:"Stop Coding Motor Rotation %1",MPYTHON_BLUEBIT_INIT_MIDI_HELPURL:"",MPYTHON_BLUEBIT_INIT_MIDI_MESSAGE0:"Initialize MIDI TX pin %1",MPYTHON_BLUEBIT_INIT_MIDI_TOOLTIP:"",MPYTHON_BLUEBIT_MIDI_VOLUME_HELPURL:"",MPYTHON_BLUEBIT_MIDI_VOLUME_MESSAGE0:"Set MIDI volume as %1",MPYTHON_BLUEBIT_MIDI_VOLUME_TOOLTIP:"volume range:0~127",MIDI_PIANO:"ACOUSTIC GRAND PIANO",MIDI_BRIGHTACOUSTICPIANO:"BRIGHT ACOUSTIC PIANO",MIDI_ELECTRICGRANDPIANO:"ELECTRIC GRAND PIANO",MIDI_HARPSICHORD:"HARPSICHORD",MIDI_CELESTA:"CELESTA",MIDI_GLOCKENSPIEL:"GLOCKENSPIEL",MIDI_MUSICALBOX:"MUSICAL BOX",MIDI_MARIMBA:"MARIMBA",MIDI_XYLOPHONE:"XYLOPHONE",MIDI_TUBULARBELL:"TUBULAR BELL",MIDI_DULCIMER:"DULCIMER",MIDI_VIBRAPHONE:"VIBRAPHONE",MIDI_ORGAN:"DRAWBAR ORGAN",MIDI_ACOUSTIC_GUITAR:"ACOUSTIC GUITAR",MIDI_ELECTRIC_GUITAR:"ELECTRIC GUITAR",MIDI_ACOUSTIC_BASS:"ACOUSTIC BASS",MIDI_STRING_ENSEMBLE:"STRING ENSEMBLE",MIDI_VIOLIN:"VIOLIN",MIDI_TRUMPET:"TRUMPET",MIDI_SAX:"SAX",MIDI_STEEL_DRUMS:"STEEL DRUMS",MIDI_LEAD:"LEAD",MIDI_PAD:"PAD",MPYTHON_BLUEBIT_MIDI_INSTRUMENT_HELPURL:"",MPYTHON_BLUEBIT_MIDI_INSTRUMENT_MESSAGE0:"Set MIDI instrument as %1",MPYTHON_BLUEBIT_MIDI_INSTRUMENT_TOOLTIP:"",MPYTHON_BLUEBIT_MIDI_PLAY_HELPURL:"",MPYTHON_BLUEBIT_MIDI_PLAY_MESSAGE0:"MIDI %1 tone %2",MPYTHON_BLUEBIT_MIDI_PLAY_TOOLTIP:"",MPYTHON_BLUEBIT_MATRIX_BRIGHTNESS_HELPURL:"",MPYTHON_BLUEBIT_MATRIX_BRIGHTNESS_MESSAGE0:"Set matrix`s brightness level as %1",MPYTHON_BLUEBIT_MATRIX_BRIGHTNESS_TOOLTIP:"brightness level:0~15",MPYTHON_BLUEBIT_MATRIX_FILL_HELPURL:"",MPYTHON_BLUEBIT_MATRIX_FILL_MESSAGE0:"Set matrix %1",MPYTHON_BLUEBIT_MATRIX_FILL_TOOLTIP:"",MPYTHON_BLUEBIT_MATRIX_BITMAP_HELPURL:"",MPYTHON_BLUEBIT_MATRIX_BITMAP_MESSAGE0:"Set matrix %1 %2 %3 %4 %5 %6 %7 %8 %9 %10 %11 %12 %13 %14 %15 %16 %17 %18 %19 %20 %21 %22 %23 %24 %25 %26 %27 %28 %29 %30 %31 %32 %33 %34 %35 %36 %37 %38 %39 %40 %41 %42 %43 %44 %45 %46 %47 %48 %49 %50 %51 %52 %53 %54 %55 %56 %57 %58 %59 %60 %61 %62 %63 %64 %65 %66 %67 %68 %69 %70 %71 %72",MPYTHON_BLUEBIT_MATRIX_BITMAP_TOOLTIP:"",MPYTHON_BLUEBIT_MATRIX_SHOW_HELPURL:"",MPYTHON_BLUEBIT_MATRIX_SHOW_MESSAGE0:"The setting of matrix takes effect",MPYTHON_BLUEBIT_MATRIX_SHOW_TOOLTIP:"",MPYTHON_BLUEBIT_MP3_VOLUME_HELPURL:"",MPYTHON_BLUEBIT_MP3_VOLUME_MESSAGE0:"Set MP3 volume as %1",MPYTHON_BLUEBIT_MP3_VOLUME_TOOLTIP:"volume:0~30",MPYTHON_BLUEBIT_MP3_INIT_HELPURL:"",MPYTHON_BLUEBIT_MP3_INIT_MESSAGE0:"Init MP3 TX pin %1",MPYTHON_BLUEBIT_MP3_INIT_TOOLTIP:"The tx pin of the mPython board is connected to the RXI pin of the music module",MPYTHON_BLUEBIT_MP3_VOLUME_PLUS_HELPURL:"",MPYTHON_BLUEBIT_MP3_VOLUME_PLUS_MESSAGE0:"MP3 volume %1",MPYTHON_BLUEBIT_MP3_VOLUME_PLUS_TOOLTIP:"",MPYTHON_PLUS_1:"plus 1",MPYTHON_MINUS_1:"minus 1",MPYTHON_BLUEBIT_MP3_PLAY_SONG_HELPURL:"",MPYTHON_BLUEBIT_MP3_PLAY_SONG_MESSAGE0:"Mp3 plays song with order %1",MPYTHON_BLUEBIT_MP3_PLAY_SONG_TOOLTIP:"",PAUSE:"PAUSE",PLAY:"GO ON",PLAYNEXT:"NEXT SONG",PLAYPREV:"LAST SONG",MPYTHON_BLUEBIT_MP3_CMD_HELPURL:"",MPYTHON_BLUEBIT_MP3_CMD_MESSAGE0:"MP3 play %1",MPYTHON_BLUEBIT_MP3_CMD_TOOLTIP:"",LABPLUS_USB_SWITCH_ON:"ON",LABPLUS_USB_SWITCH_OFF:"OFF",MPYTHON_BLUEBIT_MP3_SINGLELOOP_HELPURL:"",MPYTHON_BLUEBIT_MP3_SINGLELOOP_MESSAGE0:"MP3 single-loop mode %1",MPYTHON_BLUEBIT_MP3_SINGLELOOP_TOOLTIP:"",MPYTHON_BLUEBIT_EXTIO_IOMODE_HELPURL:"",MPYTHON_BLUEBIT_EXTIO_IOMODE_MESSAGE0:"Set EXT IO module`s IO %2 as %1",MPYTHON_BLUEBIT_EXTIO_IOMODE_TOOLTIP:"IO: 0~7",LABPLUS_COMPITITION_INIT_EXTENDED_PINS_OUTPUT:"OUTPUT",LABPLUS_COMPITITION_INIT_EXTENDED_PINS_INPUT:"INPUT",MPYTHON_BLUEBIT_EXTIO_READIO_HELPURL:"",MPYTHON_BLUEBIT_EXTIO_READIO_MESSAGE0:"Value of EXT IO at IO %1",MPYTHON_BLUEBIT_EXTIO_READIO_TOOLTIP:"",MPYTHON_BLUEBIT_EXTIO_WRITEIO_HELPURL:"",MPYTHON_BLUEBIT_EXTIO_WRITEIO_MESSAGE0:"Set EXT IO module`s IO %2 as %1",MPYTHON_BLUEBIT_EXTIO_WRITEIO_TOOLTIP:"",MPYTHON_LCD_OBJECT_HELPURL:"",MPYTHON_LCD_OBJECT_MESSAGE0:"initialise LCD1602",MPYTHON_LCD_OBJECT_TOOLTIP:"",MPYTHON_LCD_PRINT_HELPURL:"",MPYTHON_LCD_PRINT_MESSAGE0:"LCD1602 display %1",MPYTHON_LCD_PRINT_TOOLTIP:"",MPYTHON_LCD_HOME_HELPURL:"",MPYTHON_LCD_HOME_MESSAGE0:"LCD1602 cursor returns to the origin",MPYTHON_LCD_HOME_TOOLTIP:"",MPYTHON_LCD_CURSOR_HELPURL:"",MPYTHON_LCD_CURSOR_MESSAGE0:"LCD1602 cursor %1",MPYTHON_LCD_CURSOR_TOOLTIP:"",MPYTHON_LCD_SET_CURSOR_HELPURL:"",MPYTHON_LCD_SET_CURSOR_MESSAGE0:"LCD1602 starts with row %2 column %1",MPYTHON_LCD_SET_CURSOR_TOOLTIP:"Row and column count from 0",MPYTHON_LCD_CLEAR_HELPURL:"",MPYTHON_LCD_CLEAR_MESSAGE0:"LCD1602 clear",MPYTHON_LCD_CLEAR_TOOLTIP:"",MPYTHON_LCD_CURSOR_BLINK:"BLINK",MPYTHON_LCD_CURSOR_NO_BLINK:"NO BLINK",MPYTHON_LEFT_TO_RIGHT:"LEFT TO RIGHT",MPYTHON_RIGHT_TO_LEFT:"RIGHT TO LEFT",MPYTHON_LCD_TEXT_DIRECTION_HELPURL:"",MPYTHON_LCD_TEXT_DIRECTION_MESSAGE0:"LCD1602 text direction %1",MPYTHON_LCD_TEXT_DIRECTION_TOOLTIP:"",MPYTHON_LCD_MOVE_HELPURL:"",MPYTHON_LCD_MOVE_MESSAGE0:"LCD1602 scrolls a column to %1",MPYTHON_LCD_MOVE_TOOLTIP:"",MPYTHON_IR_TRANS_HELPURL:"",MPYTHON_IR_TRANS_MESSAGE0:"infrared transmission of string with one byte length %1 tx pin %2",MPYTHON_IR_TRANS_TOOLTIP:"string with one byte length: 'A', 'b', '1' and so on",OUTPUT_PIN_HELPURL:"",OUTPUT_PIN_MESSAGE0:"%1",OUTPUT_PIN_TOOLTIP:"",INPUT_PIN_HELPURL:"",INPUT_PIN_MESSAGE0:"%1",INPUT_PIN_TOOLTIP:"",READ_ANALOG_PIN_HELPURL:"",READ_ANALOG_PIN_MESSAGE0:"%1",READ_ANALOG_PIN_TOOLTIP:"",SET_DIGITAL_HELPURL:"",SET_DIGITAL_MESSAGE0:"%1",SET_DIGITAL_TOOLTIP:"",SET_ANALOG_HELPURL:"",SET_ANALOG_MESSAGE0:"%1",SET_ANALOG_TOOLTIP:"",ALL_PIN_HELPURL:"",ALL_PIN_MESSAGE0:"%1",ALL_PIN_TOOLTIP:"",PWM_PIN_HELPURL:"",PWM_PIN_MESSAGE0:"%1",PWM_PIN_TOOLTIP:"",DH11_HUM_TEM_PIN_HELPURL:"",DH11_HUM_TEM_PIN_MESSAGE0:"%1",DH11_HUM_TEM_PIN_TOOLTIP:"",UART_TX_PIN_HELPURL:"",UART_TX_PIN_MESSAGE0:"%1",UART_TX_PIN_TOOLTIP:"",UART_RX_PIN_HELPURL:"",UART_RX_PIN_MESSAGE0:"%1",UART_RX_PIN_TOOLTIP:"",I2C_PIN_HELPURL:"",I2C_PIN_MESSAGE0:"%1",I2C_PIN_TOOLTIP:"",MQTT_COMMON_SETUP_HELPURL:"https://mpython.readthedocs.io/zh/master/library/mPython/umqtt.simple.html?highlight=mqtt#MQTTClient",MQTT_COMMON_SETUP_MESSAGE0:"MQTT %1 client_id %2 server %3 port %4 user %5 password %6 keepalive %7",MQTT_COMMON_SETUP_TOOLTIP:"",MQTT_TENCENT_SETUP_HELPURL:"https://mpython.readthedocs.io/zh/master/library/mPython/umqtt.simple.html?highlight=mqtt#MQTTClient",MQTT_TENCENT_SETUP_MESSAGE0:"MQTT Tencent IoT %1 Server %2 Port %3 AppId %4 Device %5 -- Output -- %6 ReportTopic %7 ControlTopic %8",MQTT_TENCENT_SETUP_TOOLTIP:"",MQTT_TENCENT_SETUPS_HELPURL:"https://mpython.readthedocs.io/zh/master/library/mPython/umqtt.simple.html?highlight=mqtt#MQTTClient",MQTT_TENCENT_SETUPS_MESSAGE0:"MQTT Tencent IoT %1 Server %2 Port %3 AppId %4 Device %5 -- Output -- %6 ReportTopic %7 ControlTopic %8",MQTT_TENCENT_SETUPS_TOOLTIP:"",MQTT_SETUP_HELPURL:"https://mpython.readthedocs.io/zh/master/tutorials/advance/iot/mqtt.html#id2",MQTT_SETUP_MESSAGE0:"MQTT-Easy IoT %1 Server %2 Client ID %5 Iot_id %3 Iot_pwd %4",MQTT_SETUP_TOOLTIP:"",MQTT_CONNECT_HELPURL:"https://mpython.readthedocs.io/zh/master/tutorials/advance/iot/mqtt.html#id2",MQTT_CONNECT_MESSAGE0:"connect to MQTT",MQTT_CONNECT_TOOLTIP:"",MQTT_PUBLISH_HELPURL:"https://mpython.readthedocs.io/zh/master/tutorials/advance/iot/mqtt.html#id2",MQTT_PUBLISH_MESSAGE0:"publish %1 to topic %2",MQTT_PUBLISH_TOOLTIP:"",MQTT_REC_FROM_TOPIC_HELPURL:"https://mpython.readthedocs.io/zh/master/tutorials/advance/iot/mqtt.html#id2",MQTT_REC_FROM_TOPIC_MESSAGE0:"when recieved %2 from topic %1",MQTT_REC_FROM_TOPIC_TOOLTIP:"",MQTT_RECEIVE_HELPURL:"https://mpython.readthedocs.io/zh/master/tutorials/advance/iot/mqtt.html#id2",MQTT_RECEIVE_MESSAGE0:"when recieved %2 from topic %1",MQTT_RECEIVE_TOOLTIP:'Parameter "topic" only accepts variable',MQTT_RECEIVED_MESSAGE0:"when recieved message from topic %1",MQTT_MESSAGE_HELPURL:"https://mpython.readthedocs.io/zh/master/tutorials/advance/iot/mqtt.html#id2",MQTT_MESSAGE_MESSAGE0:"message from MQTT",MQTT_MESSAGE_TOOLTIP:"",MQTT_WAIT_MSG_HELPURL:"https://mpython.readthedocs.io/zh/master/tutorials/advance/iot/mqtt.html#id2",MQTT_WAIT_MSG_MESSAGE0:"wait for topic message in %1 mode",MQTT_WAIT_MSG_TOOLTIP:"It is recommended to run in 'while True'",MQTT_DISCONNECT_HELPURL:"https://mpython.readthedocs.io/zh/master/tutorials/advance/iot/mqtt.html#id2",MQTT_DISCONNECT_MESSAGE0:"disconnect from MQTT",MQTT_DISCONNECT_TOOLTIP:"",MQTT_LAST_WILL_HELPURL:"https://mpython.readthedocs.io/zh/master/library/mPython/umqtt.simple.html?highlight=mqtt#MQTTClient.set_last_will",MQTT_LAST_WILL_MESSAGE0:"set MQTT topic %2 last will message as %1",MQTT_LAST_WILL_TOOLTIP:'Set the MQTT "last will" message. Should be called before connect().',MPYTHON_SIOT_CONNECT_HELPURL:"",MPYTHON_SIOT_CONNECT_TOOLTIP:"",MPYTHON_SIOT_CONNECT_MESSAGE0:"SIoT setting %1 client_id %2 server %3 user %4 password %5",MPYTHON_SIOT_ISCONNECTED_HELPURL:"",MPYTHON_SIOT_ISCONNECTED_TOOLTIP:"",MPYTHON_SIOT_ISCONNECTED_MESSAGE0:"SIoT is connected ?",MPYTHON_SIOT_SUBSCRIBE_HELPURL:"",MPYTHON_SIOT_SUBSCRIBE_TOOLTIP:"",MPYTHON_SIOT_SUBSCRIBE_MESSAGE0:"SIoT subscribe",MPYTHON_SIOT_SUBSCRIBE_EMPTY_TITLE:"click the left star to subscribe SIoT topic",MPYTHON_SIOT_SUBSCRIBE_INPUT_WITH:"subscribe SIoT Topic1",MPYTHON_SIOT_SUBSCRIBE_ITEM_TITLE:"Topic",MPYTHON_SIOT_SUBSCRIBE_ITEM_TOOLTIP:"",MPYTHON_SIOT_SUBSCRIBE_CONTAINER_TITLE_ADD:"add up to 5 topics",MPYTHON_SIOT_SUBSCRIBE_CONTAINER_TOOLTIP:"",MPYTHON_SIOT_DISCONNECT_HELPURL:"",MPYTHON_SIOT_DISCONNECT_TOOLTIP:"",MPYTHON_SIOT_DISCONNECT_MESSAGE0:"SIoT disconnect",MPYTHON_SIOT_MESSAGE_HELPURL:"",MPYTHON_SIOT_MESSAGE_TOOLTIP:"",MPYTHON_SIOT_MESSAGE_MESSAGE0:"SIoT message",MPYTHON_SIOT_TOPIC1:"Topic1",MPYTHON_SIOT_TOPIC2:"Topic2",MPYTHON_SIOT_TOPIC3:"Topic3",MPYTHON_SIOT_TOPIC4:"Topic4",MPYTHON_SIOT_TOPIC5:"Topic5",MPYTHON_SIOT_PUBLISH_HELPURL:"",MPYTHON_SIOT_PUBLISH_TOOLTIP:"",MPYTHON_SIOT_PUBLISH_MESSAGE0:"SIoT publish message %1 to %2",MPYTHON_SIOT_PUBLISH_TO_MESSAGE0:"SIoT publish message %1 to topic %2",MPYTHON_SIOT_RECEIVE_HELPURL:"",MPYTHON_SIOT_RECEIVE_TOOLTIP:"",MPYTHON_SIOT_RECEIVE_MESSAGE0:"when SIoT received message from %1 %2 do %3",MPYTHON_SIOT_RECEIVE_FROM_MESSAGE0:"when SIoT received message from topic %1 %2 do %3",MPYTHON_IR_RECV_HELPURL:"",MPYTHON_IR_RECV_MESSAGE0:"infrared received int at rx pin %1",MPYTHON_IR_RECV_TOOLTIP:"The first time the receive is always empty",MPYTHON_BLUEBIT_OLED_PRINT_HELPURL:"",MPYTHON_BLUEBIT_OLED_PRINT_MESSAGE0:"bluebit OLED show %1 at x %2 y %3",MPYTHON_BLUEBIT_OLED_PRINT_TOOLTIP:"",MPYTHON_BLUEBIT_OLED_INIT_HELPURL:"",MPYTHON_BLUEBIT_OLED_INIT_MESSAGE0:"bluebit OLED init at tx %1 rx %2",MPYTHON_BLUEBIT_OLED_INIT_TOOLTIP:"",MPYTHON_BLUEBIT_OLED_CLEAR_HELPURL:"",MPYTHON_BLUEBIT_OLED_CLEAR_MESSAGE0:"bluebit OLED clear",MPYTHON_BLUEBIT_OLED_CLEAR_TOOLTIP:"",MPYTHON_BLUEBIT_OLED_BMP_HELPURL:"",MPYTHON_BLUEBIT_OLED_BMP_MESSAGE0:"bluebit OLED show image x %1 y %2 width %3 height %4 with hex image data %5",MPYTHON_BLUEBIT_OLED_BMP_TOOLTIP:"",MICROBIT_GESTURE_SHAKE:"shake",MICROBIT_GESTURE_UP:"up",MICROBIT_GESTURE_DOWN:"down",MICROBIT_GESTURE_LEFT:"left",MICROBIT_GESTURE_RIGHT:"Right",MICROBIT_GESTURE_FACE_UP:"upward",MICROBIT_GESTURE_FACE_DOWN:"down",MICROBIT_GESTURE_FREEFAIL:"free fall",MICROBIT_IMAGE_HEART:"heart",MICROBIT_IMAGE_HEART_SMALL:"heart (small)",MICROBIT_IMAGE_HAPPY:"Happy",MICROBIT_IMAGE_SMILE:"Smile Face",MICROBIT_IMAGE_SAD:"sad",MICROBIT_IMAGE_CONFUSED:"confusion",MICROBIT_IMAGE_ANGRY:"angry",MICROBIT_IMAGE_ASLEEP:"Sleep",MICROBIT_IMAGE_SUPRISED:"surprise",MICROBIT_IMAGE_SILLY:"Stupid",MICROBIT_IMAGE_FABULOUS:"Wonderful",MICROBIT_IMAGE_MEH:"Boredom",MICROBIT_IMAGE_YES:"Yes",MICROBIT_IMAGE_NO:"No",MICROBIT_IMAGE_CLOCK12:"12 clock",MICROBIT_IMAGE_CLOCK11:"11 clock",MICROBIT_IMAGE_CLOCK10:"10 clock",MICROBIT_IMAGE_CLOCK9:"9 clock",MICROBIT_IMAGE_CLOCK8:"8 clock",MICROBIT_IMAGE_CLOCK7:"7 clock",MICROBIT_IMAGE_CLOCK6:"6 clock",MICROBIT_IMAGE_CLOCK5:"5 clock",MICROBIT_IMAGE_CLOCK4:"4 clock",MICROBIT_IMAGE_CLOCK3:"3 clock",MICROBIT_IMAGE_CLOCK2:"2 clock",MICROBIT_IMAGE_CLOCK1:"1 clock",MICROBIT_IMAGE_ARROW_N:"Arrow-North",MICROBIT_IMAGE_ARROW_NE:"Arrow-Northeast",MICROBIT_IMAGE_ARROW_E:"arrow-east",MICROBIT_IMAGE_ARROW_SE:"arrow-southeast",MICROBIT_IMAGE_ARROW_S:"Arrow-South",MICROBIT_IMAGE_ARROW_SW:"arrow-southwest",MICROBIT_IMAGE_ARROW_W:"Arrow-West",MICROBIT_IMAGE_ARROW_NW:"Arrow-Northwest",MICROBIT_IMAGE_TRIANGLE:"triangle",MICROBIT_IMAGE_TRIANGLE_LEFT:"left triangle",MICROBIT_IMAGE_CHESSBOARD:"chessboard",MICROBIT_IMAGE_DIAMOND:"diamond",MICROBIT_IMAGE_DIAMOND_SMALL:"diamond (small)",MICROBIT_IMAGE_SQUARE:"square",MICROBIT_IMAGE_SQUARE_SMALL:"Square (small)",MICROBIT_IMAGE_RABBIT:"Rabbit",MICROBIT_IMAGE_COW:"cow",MICROBIT_IMAGE_MUSIC_CROTCHET:"quarter note",MICROBIT_IMAGE_MUSIC_QUAVER:"octave",MICROBIT_IMAGE_MUSIC_QUAVERS:"tremolo",MICROBIT_IMAGE_PITCHFORK:"fork",MICROBIT_IMAGE_XMAS:"Christmas Tree",MICROBIT_IMAGE_PACMAN:"Bean Eater",MICROBIT_IMAGE_TARGET:"target",MICROBIT_IMAGE_TSHIRT:"T-shirt",MICROBIT_IMAGE_ROLLERSKATE:"Roller Skating",MICROBIT_IMAGE_DUCK:"duck",MICROBIT_IMAGE_HOUSE:"House",MICROBIT_IMAGE_TORTOISE:"tortoise",MICROBIT_IMAGE_BUTTERFLY:"Butterfly",MICROBIT_IMAGE_STICKFIGURE:"line drawing",MICROBIT_IMAGE_GHOST:"Ghost",MICROBIT_IMAGE_SWORD:"Sword",MICROBIT_IMAGE_GIRAFFE:"Giraffe",MICROBIT_IMAGE_SKULL:"Head",MICROBIT_IMAGE_UMBRELLA:"umbrella",MICROBIT_IMAGE_SNAKE:"snake",MICROBIT_IMAGE_ALL_CLOCKS:"All Clocks",MICROBIT_IMAGE_ALL_ARROWS:"All arrows",mpython_bme280_hum_tem_pre_MESSAGE0:("Meteorological %1","%1"),mpython_bme280_hum_tem_pre_TOOLTIP:("%","Air pressure unit is 'Pa', temperature unit is 'Celsius', ambient humidity unit is '%'"),mpythonbox_sound_MESSAGE0:"Sound value",mpythonbox_sound_TOOLTIP:"0~4095。",mpythonbox_sound_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mPythonBox/lib/mpython.html",MPYTHONBOX_SLIDER_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mPythonBox/lib/mpython_box.html#mpython-box",MPYTHONBOX_SLIDER_MESSAGE0:"Slide bar",MPYTHONBOX_SLIDER_TOOLTIP:"0~4095。",MPYTHONBOX_5BUTTON_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mPythonBox/lib/mpython_box.html#mpython-box",MPYTHONBOX_5BUTTON_MESSAGE0:"Five way button%1",MPYTHONBOX_5BUTTON_TOOLTIP:"",MPYTHONBOX_MOTOR_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mPythonBox/lib/mpython_box.html#mpython-box",MPYTHONBOX_MOTOR_MESSAGE0:"Motor speed%1",MPYTHONBOX_MOTOR_TOOLTIP:"",MPYTHONBOX_ULTRASONIC_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mPythonBox/lib/mpython_box.html#mpython_box.get_key",MPYTHONBOX_ULTRASONIC_MESSAGE0:"Ultrasonic",MPYTHONBOX_ULTRASONIC_TOOLTIP:"3~340CM",MPYTHONBOX_THEHUMANBODYINFRARE_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mPythonBox/lib/mpython_box.html#mpython_box.get_key",MPYTHONBOX_THEHUMANBODYINFRARE_MESSAGE0:"Human body infrared",MPYTHONBOX_THEHUMANBODYINFRARE_TOOLTIP:"",MPYTHONBOX_RGB_pixel_HELPURL:"",MPYTHONBOX_RGB_pixel_MESSAGE0:"Set column%1 line%2 R%3 G%4 B%5",MPYTHONBOX_RGB_pixel_TOOLTIP:"",MPYTHONBOX_RGB_get_pixel_HELPURL:"",MPYTHONBOX_RGB_get_pixel_MESSAGE0:"Returns the RGB color of column%1, line%2",MPYTHONBOX_RGB_get_pixel_TOOLTIP:"",MPYTHONBOX_RGB_ImageText_HELPURL:"",MPYTHONBOX_RGB_ImageText_MESSAGE0:"Scroll Display Text%1 Speed%2",MPYTHONBOX_RGB_ImageText_TOOLTIP:"",MPYTHONBOX_RGB_SetImage_HELPURL:("",""),MPYTHONBOX_RGB_SetImage_TOOLTIP:("",""),MPYTHONBOX_RGB_SetImage_MESSAGE0:("Create image %1 row1 %2 row2 %3 row3 %4 row4 %5 row5 %6","Create an image %1 The first line%2, the second line%3, the third line%4, the fourth line%5, the fifth line%6"),MPYTHONBOX_RGB_Image_HELPURL:"",MPYTHONBOX_RGB_Image_MESSAGE0:"According to the image%1",MPYTHONBOX_RGB_Image_TOOLTIP:"According to the image",MPYTHONBOX_RGB_SHOW_IMAGE_MESSAGE0:"Display image/text %1",MPYTHONBOX_RGB_SHOW_IMAGE_TOOLTIP:"",MPYTHONBOX_RGB_SHOW_IMAGE_HELPURL:"",MPYTHONBOX_RGB_SHOW_IMAGEImport_MESSAGE0:"Display image %1",MPYTHONBOX_RGB_SHOW_IMAGEImport_TOOLTIP:"Display image。",MPYTHONBOX_RGB_SHOW_IMAGEImport_HELPURL:"",MPYTHONBOX_RGB_SHOW_IMAGE_Copy_MESSAGE0:"Copy image %1",MPYTHONBOX_RGB_SHOW_IMAGE_Copy_TOOLTIP:"Copy image",MPYTHONBOX_RGB_SHOW_IMAGE_Copy_HELPURL:"",MPYTHONBOX_RGB_ImageCot_HELPURL:"",MPYTHONBOX_RGB_ImageCot_MESSAGE0:"Cut image%1 column%2 rows%3 width%4 high%5",MPYTHONBOX_RGB_ImageCot_TOOLTIP:"Cut image",MPYTHONBOX_RGB_IMAGE_BUILTINS_MESSAGE0:"Built in image %1",MPYTHONBOX_RGB_IMAGE_BUILTINS_TOOLTIP:"Select a built-in image.",MPYTHONBOX_RGB_IMAGE_BUILTINS_HELPURL:"",MPYTHONBOX_RGB_IMAGE_SHIFT_MESSAGE0:"Translation image %1 %2 %3 ",MPYTHONBOX_RGB_IMAGE_SHIFT_TOOLTIP:"Move the image in a specific direction and return the result of the move.",MPYTHONBOX_RGB_IMAGE_SHIFT_HELPURL:"",MPYTHONBOX_RGB_clear_HELPURL:"",MPYTHONBOX_RGB_clear_MESSAGE0:"Turn off all RGB",MPYTHONBOX_RGB_clear_TOOLTIP:"",MPYTHONBOX_RGB_pixel_return_HELPURL:"",MPYTHONBOX_RGB_pixel_return_MESSAGE0:"Return %1 column %2 line colour",MPYTHONBOX_RGB_pixel_return_TOOLTIP:"Return to the number of columns, row RGB color",MPYTHONBOX_TRIAXIAL_ACCELERATION_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython.html",MPYTHONBOX_TRIAXIAL_ACCELERATION_MESSAGE0:"%1Triaxial acceleration",MPYTHONBOX_TRIAXIAL_ACCELERATION_TOOLTIP:"Unit g, range-2~+2g。",MPYTHONBOX_TRIAXIAL_AUGULAR_VELOCITY_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython.html",MPYTHONBOX_TRIAXIAL_AUGULAR_VELOCITY_MESSAGE0:"%1Triaxial angular velocity",MPYTHONBOX_TRIAXIAL_AUGULAR_VELOCITY_TOOLTIP:"range±500°/seconds",MPYTHONBOX_EULER_ANGLE_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython.html",MPYTHONBOX_EULER_ANGLE_MESSAGE0:"%1Euler Angle",MPYTHONBOX_EULER_ANGLE_TOOLTIP:"Returns the current euler Angle(Pitch,Roll,Yaw),Unit Angle",MPYTHONBOX_QUATERNION_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython.html",MPYTHONBOX_QUATERNION_MESSAGE0:"%1quaternions",MPYTHONBOX_QUATERNION_TOOLTIP:"Returns the current quaternion(w,x,y,z)",MPYTHONBOX_CAMERA_LED_HELPURL:"",MPYTHONBOX_CAMERA_LED_MESSAGE0:"camear light %1",MPYTHONBOX_CAMERA_LED_TOOLTIP:"",LIST_FIRST_INDEX_HELPURL:"",LIST_FIRST_INDEX_MESSAGE0:"Location of item%1 in list%2 %3",LIST_FIRST_INDEX_TOOLTIP:"",MPYTHON_AI_LCD_INIT_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.lcd.init",MPYTHON_AI_LCD_INIT_MESSAGE0:"Screen Initialization ",MPYTHON_AI_LCD_INIT_TOOLTIP:"",MPYTHON_AI_SENSOR_RESET_HELPURL:"https://maixpy.sipeed.com/zh/libs/machine_vision/sensor.html#%E5%8D%95%E7%9B%AE%E6%91%84%E5%83%8F%E5%A4%B4%E9%87%8D%E7%BD%AE%E5%87%BD%E6%95%B0",MPYTHON_AI_SENSOR_RESET_MESSAGE0:"Initialize the camera",MPYTHON_AI_SENSOR_RESET_TOOLTIP:"",MPYTHON_AI_SENSOR_ENABLE_HELPURL:"https://maixpy.sipeed.com/zh/libs/machine_vision/sensor.html#%E8%8E%B7%E5%8F%96%E5%9B%BE%E5%83%8F",MPYTHON_AI_SENSOR_ENABLE_MESSAGE0:"Camera%1",MPYTHON_AI_SENSOR_ENABLE_TOOLTIP:"",MPYTHON_AI_LCD_TEXT_HELPURL:"https://maixpy.sipeed.com/zh/libs/machine_vision/lcd.html#%E4%BE%8B%E7%A8%8B-1%EF%BC%9A-%E6%98%BE%E7%A4%BA%E8%8B%B1%E6%96%87",MPYTHON_AI_LCD_TEXT_MESSAGE0:"Display text x %1 y %2 content %3",MPYTHON_AI_LCD_TEXT_TOOLTIP:"",MPYTHON_AI_SENSOR_SKIP_HELPURL:"https://maixpy.sipeed.com/zh/libs/machine_vision/sensor.html#%E8%B7%B3%E5%B8%A7",MPYTHON_AI_SENSOR_SKIP_MESSAGE0:"The number of frames skipped by the camera %1 Millisecond %2 ",MPYTHON_AI_SENSOR_SKIP_TOOLTIP:"",MPYTHON_AI_SENSOR_RETURN_HELPURL:"https://maixpy.sipeed.com/zh/libs/machine_vision/sensor.html#%E5%88%86%E8%BE%A8%E7%8E%87%E5%AE%BD%E5%BA%A6",MPYTHON_AI_SENSOR_RETURN_MESSAGE0:"测 摄像头 获取%1",MPYTHON_AI_SENSOR_RETURN_TOOLTIP:"",MPYTHON_AI_SENSOR_SETS_HELPURL:"https://maixpy.sipeed.com/zh/libs/machine_vision/sensor.html#%E8%AE%BE%E7%BD%AE%E5%AF%B9%E6%AF%94%E5%BA%A6",MPYTHON_AI_SENSOR_SETS_MESSAGE0:"Camera set %1 as %2",MPYTHON_AI_SENSOR_SETS_TOOLTIP:"",MPYTHON_AI_SENSOR_AUTO_GAIN_HELPURL:"https://maixpy.sipeed.com/zh/libs/machine_vision/sensor.html#%E8%AE%BE%E7%BD%AE%E8%87%AA%E5%8A%A8%E5%A2%9E%E7%9B%8A",MPYTHON_AI_SENSOR_AUTO_GAIN_MESSAGE0:"Automatic gain of camera%1",MPYTHON_AI_SENSOR_AUTO_GAIN_TOOLTIP:"",MPYTHON_AI_SENSOR_AUTO_WHITEBAL_HELPURL:"https://maixpy.sipeed.com/zh/libs/machine_vision/sensor.html#%E8%AE%BE%E7%BD%AE%E8%87%AA%E5%8A%A8%E5%A2%9E%E7%9B%8A",MPYTHON_AI_SENSOR_AUTO_WHITEBAL_MESSAGE0:"Camera White Balance%1",MPYTHON_AI_SENSOR_AUTO_WHITEBAL_TOOLTIP:"",MPYTHON_AI_SENSOR_LEVEL_MI_HELPURL:"https://maixpy.sipeed.com/zh/libs/machine_vision/sensor.html#%E8%AE%BE%E7%BD%AE%E6%B0%B4%E5%B9%B3%E9%95%9C%E5%83%8F",MPYTHON_AI_SENSOR_LEVEL_MI_MESSAGE0:"Camera %1 %2",MPYTHON_AI_SENSOR_LEVEL_MI_TOOLTIP:"",MPYTHON_AI_LCD_DISPLAY_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.lcd.display",MPYTHON_AI_LCD_DISPLAY_MESSAGE0:"Screen display takes effect",MPYTHON_AI_LCD_DISPLAY_TOOLTIP:"",MPYTHON_AI_LCD_DISPLAY_SIZE_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.lcd.display",MPYTHON_AI_LCD_DISPLAY_SIZE_MESSAGE0:"Image display takes effect x%1 y%2 wide%3 high%4",MPYTHON_AI_LCD_DISPLAY_SIZE_TOOLTIP:"",MPYTHON_AI_SENSOR_IMAGES_HELPURL:"https://maixpy.sipeed.com/zh/libs/machine_vision/sensor.html#%E8%8E%B7%E5%8F%96%E5%9B%BE%E5%83%8F",MPYTHON_AI_SENSOR_IMAGES_MESSAGE0:"Camera captures images",MPYTHON_AI_SENSOR_IMAGES_TOOLTIP:"",MPYTHON_AI_IMAGE_FACEDETECT_HELPURL:"https://maixpy.sipeed.com/zh/libs/Maix/kpu.html#%E8%BF%90%E8%A1%8Cyolo2%E7%BD%91%E7%BB%9C",MPYTHON_AI_IMAGE_FACEDETECT_MESSAGE0:"Face recognition",MPYTHON_AI_IMAGE_FACEDETECT_TOOLTIP:"",MPYTHON_AI_LCD_SHOW_REC_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.draw_rectangle",MPYTHON_AI_LCD_SHOW_REC_MESSAGE0:"Rectangular%1 x%3 y%4 width%5 high%6 color R%7 G%8 B%9 coarsening%2",MPYTHON_AI_LCD_SHOW_REC_TOOLTIP:"",MPYTHON_AI_LCD_SHOW_STRING_MESSAGE0:"line x1%1 y1%2 reachx2%3 y2%4 Color isR%5 G%6 B%7 Thickening%8",MPYTHON_AI_LCD_SHOW_STRING_TOOLTIP:"",MPYTHON_AI_LCD_SHOW_STRING_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.draw_rectangle",MPYTHON_AI_LCD_CLEAR_ALL_MESSAGE0:"Clear screen display",MPYTHON_AI_LCD_CLEAR_ALL_TOOLTIP:"",MPYTHON_AI_LCD_CLEAR_ALL_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.draw_rectangle",MPYTHON_AI_LCD_return_colour_MESSAGE0:"LCD Return x%1 y%2 colour",MPYTHON_AI_LCD_return_colour_TOOLTIP:"",MPYTHON_AI_LCD_return_colour_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.draw_rectangle",MPYTHON_AI_LCD_SHOW_CIRCLE_MESSAGE0:"circular%1 x%2 y%3 radius%4 colour R%5 G%6 B%7 Thickening%8",MPYTHON_AI_LCD_SHOW_CIRCLE_TOOLTIP:"",MPYTHON_AI_LCD_SHOW_CIRCLE_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.draw_rectangle",MPYTHON_AI_LCD_TEXT_MOST_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.draw_rectangle",MPYTHON_AI_LCD_TEXT_MOST_MESSAGE0:"Display text x %1 y %2 content %3 colourR%4 G%5 B%6 size%7",MPYTHON_AI_LCD_TEXT_MOST_TOOLTIP:"",MPYTHON_AI_LCD_SHOW_TEN_STRING_MESSAGE0:"Cross line x%1 y%2 colourR%3 G%4 B%5 size%6 Thickening%7",MPYTHON_AI_LCD_SHOW_TEN_STRING_TOOLTIP:"",MPYTHON_AI_LCD_SHOW_TEN_STRING_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.draw_rectangle",MPYTHON_AI_LCD_SHOW_ARROWS_MESSAGE0:"Arrow x1%1 y1%2 x2%3 y2%4 colourR%5 G%6 B%7 Thickening%8",MPYTHON_AI_LCD_SHOW_ARROWS_TOOLTIP:"",MPYTHON_AI_LCD_SHOW_ARROWS_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.draw_rectangle",MPYTHON_AI_LCD_SHOW_IMAGE_PIRCTURE_HELPURL:".https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.lcd.display",MPYTHON_AI_LCD_SHOW_IMAGE_PIRCTURE_MESSAGE0:"Display image path%1",MPYTHON_AI_LCD_SHOW_IMAGE_PIRCTURE_TOOLTIP:"",MPYTHON_AI_LCD_SHOW_IMAGE_HEAT_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.invert",MPYTHON_AI_LCD_SHOW_IMAGE_HEAT_MESSAGE0:"Image conversion to%1",MPYTHON_AI_LCD_SHOW_IMAGE_HEAT_TOOLTIP:"",MPYTHON_AI_LCD_SHOW_IMAGE_DESCARTES_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.linpolar",MPYTHON_AI_LCD_SHOW_IMAGE_DESCARTES_MESSAGE0:"Image from Cartesian coordinates to%1 Reprojection of coordinates %2",MPYTHON_AI_LCD_SHOW_IMAGE_DESCARTES_TOOLTIP:"",MPYTHON_AI_LCD_SHOW_IMAGE_EROSION_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.dilate",MPYTHON_AI_LCD_SHOW_IMAGE_EROSION_MESSAGE0:"Image Expansion Level%1",MPYTHON_AI_LCD_SHOW_IMAGE_EROSION_TOOLTIP:"",MPYTHON_AI_LCD_SHOW_IMAGE_MIDDLE_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.midpoint",MPYTHON_AI_LCD_SHOW_IMAGE_MIDDLE_MESSAGE0:"Image Point Filtering Level%1 Wave filtering%2",MPYTHON_AI_LCD_SHOW_IMAGE_MIDDLE_TOOLTIP:"",MPYTHON_AI_LCD_SHOW_IMAGE_MODE_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.modehttps://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.mode",MPYTHON_AI_LCD_SHOW_IMAGE_MODE_MESSAGE0:"Image Modal Filtering Level%1",MPYTHON_AI_LCD_SHOW_IMAGE_MODE_TOOLTIP:"",MPYTHON_AI_LCD_SHOW_IMAGE_INDISTINCT_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.mean",MPYTHON_AI_LCD_SHOW_IMAGE_INDISTINCT_MESSAGE0:"Image Fuzzy Filtering Level%1",MPYTHON_AI_LCD_SHOW_IMAGE_INDISTINCT_TOOLTIP:"",MPYTHON_AI_LCD_SHOW_IMAGE_CARTOON_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.cartoon",MPYTHON_AI_LCD_SHOW_IMAGE_CARTOON_MESSAGE0:"Image Cartoonization Level%1 Initial Pixel Difference%2 Adjacent pixel difference%3",MPYTHON_AI_LCD_SHOW_IMAGE_CARTOON_TOOLTIP:"",MPYTHON_AI_LCD_SHOW_IMAGE_3D_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.rotation_corr",MPYTHON_AI_LCD_SHOW_IMAGE_3D_MESSAGE0:"Image 3D Rotation Up and Down%1 Rotate left and right%2 degrees%3 or so move%4 up and down move%5 zoom%6",MPYTHON_AI_LCD_SHOW_IMAGE_3D_TOOLTIP:"",MPYTHON_AI_LCD_SHOW_ECTYPE_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.copy",MPYTHON_AI_LCD_SHOW_ECTYPE_MESSAGE0:"Save a copy of the image to the SD card image name%1 Image display area x%2 y%3 wide%4 high%5",MPYTHON_AI_LCD_SHOW_ECTYPE_TOOLTIP:"",MPYTHON_AI_LCD_SHOW_ECTYPE_SHOW_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.save",MPYTHON_AI_LCD_SHOW_ECTYPE_SHOW_MESSAGE0:"Create a copy of the image object to copy the image area x%1 y%2 wide%3 high%4",MPYTHON_AI_LCD_SHOW_ECTYPE_SHOW_TOOLTIP:"",MPYTHON_AI2_20CLASS_TRACKING_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",MPYTHON_AI2_20CLASS_TRACKING_MESSAGE0:"20 kinds of recognition",MPYTHON_AI2_20CLASS_TRACKING_TOOLTIP:"",MPYTHON_AI2_NUMBER_DISCERN_HELPURL:("https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model","https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model"),MPYTHON_AI2_NUMBER_DISCERN_MESSAGE0:("Handwritten Number Recognition",'set the training model to "Number ID"'),MPYTHON_AI2_NUMBER_DISCERN_TOOLTIP:("","Select training model handwritten numerals"),MPYTHON_AI_LCD_PIXEL_COLOUR_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html?highlight=get_pixel#mpython_classroom_kit.image.set_pixel",MPYTHON_AI_LCD_PIXEL_COLOUR_MESSAGE0:"screen x%1 y%2 Display color R%3 G%4 B%5",MPYTHON_AI_LCD_PIXEL_COLOUR_TOOLTIP:"",MPYTHON_AI_LCD_COLOUR_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.lcd.clear",MPYTHON_AI_LCD_COLOUR_MESSAGE0:"Screen Initialization Display Color R%1 G%2 B%3",MPYTHON_AI_LCD_COLOUR_TOOLTIP:"",MPYTHON_AI_SENSOR_PATTERN_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.camera.set_pixformat",MPYTHON_AI_SENSOR_PATTERN_MESSAGE0:"Initialize the camera, set pixel mode as %1",MPYTHON_AI_SENSOR_PATTERN_TOOLTIP:"",MPYTHON_AI_TRACE_CILOR_DISPLAYTEN_HELPURL:("",""),MPYTHON_AI_TRACE_CILOR_DISPLAYTEN_MESSAGE0:("Tracking color display%1","Trace color display%1"),MPYTHON_AI_TRACE_CILOR_DISPLAYTEN_TOOLTIP:("",""),MPYTHON_AI2_FACE_TRACKING_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",MPYTHON_AI2_FACE_TRACKING_MESSAGE0:'set the training model to "Face ID"',MPYTHON_AI2_FACE_TRACKING_TOOLTIP:"It can recognize and track faces, display face size and so on",MPYTHON_AI2_PHOTOGRAPH_TRACKING_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",MPYTHON_AI2_PHOTOGRAPH_TRACKING_MESSAGE0:'call the camera for "Face ID"',MPYTHON_AI2_PHOTOGRAPH_TRACKING_TOOLTIP:"It can recognize and track faces, display face size and so on",MPYTHON_AI2_RESULT_FACE_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",MPYTHON_AI2_RESULT_FACE_MESSAGE0:'get the recognition result of "Face ID"',MPYTHON_AI2_RESULT_FACE_TOOLTIP:"After acquisition and identification All the parameters",MPYTHON_AI2_RESULT_FACE_X_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",MPYTHON_AI2_RESULT_FACE_X_MESSAGE0:'get the X coordinate of the "Face ID" result',MPYTHON_AI2_RESULT_FACE_X_TOOLTIP:"After acquisition and identification x coordinates",MPYTHON_AI2_RESULT_FACE_Y_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",MPYTHON_AI2_RESULT_FACE_Y_MESSAGE0:'get the Y coordinate of the "Face ID" result',MPYTHON_AI2_RESULT_FACE_Y_TOOLTIP:"After acquisition and identification y coordinates",MPYTHON_AI2_RESULT_FACE_W_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",MPYTHON_AI2_RESULT_FACE_W_MESSAGE0:'get the width of the "Face ID" result',MPYTHON_AI2_RESULT_FACE_W_TOOLTIP:"After acquisition and identification width",MPYTHON_AI2_RESULT_FACE_H_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",MPYTHON_AI2_RESULT_FACE_H_MESSAGE0:'get the height of the "Face ID" result',MPYTHON_AI2_RESULT_FACE_H_TOOLTIP:"After acquisition and identification height",MPYTHON_AI2_RESULT_FACE_VALUE_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",MPYTHON_AI2_RESULT_FACE_VALUE_MESSAGE0:'get the confidence of the "Face ID" result',MPYTHON_AI2_RESULT_FACE_VALUE_TOOLTIP:"After acquisition and identification Confidence",MPYTHON_AI2_RESULT_FACE_OBJNUM_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",MPYTHON_AI2_RESULT_FACE_OBJNUM_MESSAGE0:'get the object count of the "Face ID" result',MPYTHON_AI2_RESULT_FACE_OBJNUM_TOOLTIP:"After acquisition and identification number",MPYTHON_AI2_20class_TRACKING_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",MPYTHON_AI2_20class_TRACKING_MESSAGE0:'set the training model to "20 Class ID"',MPYTHON_AI2_20class_TRACKING_TOOLTIP:"Can identify 20 types, respectively are 0-19 for aircraft, bicycle, bird, boat, bottle, bus, car, cat, chair, cow, dining table, dog, house, motorcycle, person, potted plant, sheep, sofa, train, TV",MPYTHON_AI2_PHOTOGRAPH_20TRACKING_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",MPYTHON_AI2_PHOTOGRAPH_20TRACKING_MESSAGE0:'call the camera for "20 Class ID"',MPYTHON_AI2_PHOTOGRAPH_20TRACKING_TOOLTIP:"",MPYTHON_AI2_RESULT_20CLASS_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",MPYTHON_AI2_RESULT_20CLASS_MESSAGE0:'get the recognition result of "20 Class ID"',MPYTHON_AI2_RESULT_20CLASS_TOOLTIP:"After acquisition and identification All the parameters",MPYTHON_AI2_RESULT_20CLASS_X_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",MPYTHON_AI2_RESULT_20CLASS_X_MESSAGE0:'get the X coordinate of the "20 Class ID" result',MPYTHON_AI2_RESULT_20CLASS_X_TOOLTIP:"After acquisition and identification x coordinates",MPYTHON_AI2_RESULT_20CLASS_Y_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",MPYTHON_AI2_RESULT_20CLASS_Y_MESSAGE0:'get the Y coordinate of the "20 Class ID" result',MPYTHON_AI2_RESULT_20CLASS_Y_TOOLTIP:"After acquisition and identification y coordinates",MPYTHON_AI2_RESULT_20CLASS_W_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",MPYTHON_AI2_RESULT_20CLASS_W_MESSAGE0:'get the width of the "20 Class ID" result',MPYTHON_AI2_RESULT_20CLASS_W_TOOLTIP:"After acquisition and identification width",MPYTHON_AI2_RESULT_20CLASS_H_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",MPYTHON_AI2_RESULT_20CLASS_H_MESSAGE0:'get the height of the "20 Class ID" result',MPYTHON_AI2_RESULT_20CLASS_H_TOOLTIP:"After acquisition and identification height",MPYTHON_AI2_RESULT_20CLASS_VALUE_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",MPYTHON_AI2_RESULT_20CLASS_VALUE_MESSAGE0:'get the confidence of the "20 Class ID" result',MPYTHON_AI2_RESULT_20CLASS_VALUE_TOOLTIP:"After acquisition and identification Confidence",MPYTHON_AI2_RESULT_20CLASS_OBJNUM_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",MPYTHON_AI2_RESULT_20CLASS_OBJNUM_MESSAGE0:'get the object count of the "20 Class ID" result',MPYTHON_AI2_RESULT_20CLASS_OBJNUM_TOOLTIP:"After acquisition and identification number",MPYTHON_AI2_RESULT_20CLASS_CLASSID_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",MPYTHON_AI2_RESULT_20CLASS_CLASSID_MESSAGE0:'get the type name of the "20 Class ID" result',MPYTHON_AI2_RESULT_20CLASS_CLASSID_TOOLTIP:"Can identify 20 types, respectively are 0-19 for aircraft, bicycle, bird, boat, bottle, bus, car, cat, chair, cow, dining table, dog, house, motorcycle, person, potted plant, sheep, sofa, train, TV",MPYTHON_AI2_RESULT_20CLASS_INDEX_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",MPYTHON_AI2_RESULT_20CLASS_INDEX_MESSAGE0:'get the type count of the "20 Class ID" result',MPYTHON_AI2_RESULT_20CLASS_INDEX_TOOLTIP:"After acquisition and identification type number",MPYTHON_AI2_RESULT_NUMBER_DISCERN_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.model.select_model",MPYTHON_AI2_RESULT_NUMBER_DISCERN_MESSAGE0:'call the camera for "Number ID"',MPYTHON_AI2_RESULT_NUMBER_DISCERN_TOOLTIP:"Call camera identification",MPYTHON_AI2_NUMBER_DETECT_ALL_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#id2",MPYTHON_AI2_NUMBER_DETECT_ALL_MESSAGE0:'get the recognition result of "Number ID"',MPYTHON_AI2_NUMBER_DETECT_ALL_TOOLTIP:"Handwritten digit recognition parameters",MPYTHON_AI2_NUMBER_DETECT_NUMBER_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#id2",MPYTHON_AI2_NUMBER_DETECT_NUMBER_MESSAGE0:'get the digital of the "Number ID" result',MPYTHON_AI2_NUMBER_DETECT_NUMBER_TOOLTIP:"Handwritten digits recognize Numbers",MPYTHON_AI2_NUMBER_DETECT_ADIENCE_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#id2",MPYTHON_AI2_NUMBER_DETECT_ADIENCE_MESSAGE0:'get the confidence of the "Number ID" result',MPYTHON_AI2_NUMBER_DETECT_ADIENCE_TOOLTIP:"Handwritten digit recognition digital confidence",MPYTHON_AI_TRACE_COLOR_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#mpython_classroom_kit.image.find_blobs",MPYTHON_AI_TRACE_COLOR_MESSAGE0:"Trace color block LAB color %1 bounding box less than %2 pixels less than %3 filter",MPYTHON_AI_TRACE_COLOR_TOOLTIP:"Track the color piece",MPYTHON_AI_BLOB_ALL_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#blob",MPYTHON_AI_BLOB_ALL_MESSAGE0:"%1Color piece block all parameters",MPYTHON_AI_BLOB_ALL_TOOLTIP:"Returns blob class -- a color block object",MPYTHON_AI_BLOB_X_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#blob",MPYTHON_AI_BLOB_X_MESSAGE0:"%1Color piece x coordinates",MPYTHON_AI_BLOB_X_TOOLTIP:"Returns blob class -- a color block object",MPYTHON_AI_BLOB_Y_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#blob",MPYTHON_AI_BLOB_Y_MESSAGE0:"%1Color piece y coordinates",MPYTHON_AI_BLOB_Y_TOOLTIP:"Returns blob class -- a color block object",MPYTHON_AI_BLOB_W_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#blob",MPYTHON_AI_BLOB_W_MESSAGE0:"%1Color piece width",MPYTHON_AI_BLOB_W_TOOLTIP:"Returns blob class -- a color block object",MPYTHON_AI_BLOB_H_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#blob",MPYTHON_AI_BLOB_H_MESSAGE0:"%1Color piece height",MPYTHON_AI_BLOB_H_TOOLTIP:"Returns blob class -- a color block object",MPYTHON_AI_BLOB_NUMBER_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#blob",MPYTHON_AI_BLOB_NUMBER_MESSAGE0:"%1Color piece number",MPYTHON_AI_BLOB_NUMBER_TOOLTIP:"Returns blob class -- a color block object",MPYTHON_AI_BLOB_CENTER_X_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#blob",MPYTHON_AI_BLOB_CENTER_X_MESSAGE0:"%1Color piece center x coordinates",MPYTHON_AI_BLOB_CENTER_X_TOOLTIP:"Returns blob class -- a color block object",MPYTHON_AI_BLOB_CENTER_Y_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#blob",MPYTHON_AI_BLOB_CENTER_Y_MESSAGE0:"%1Color piece center y coordinates",MPYTHON_AI_BLOB_CENTER_Y_TOOLTIP:"Returns blob class -- a color block object",MPYTHON_AI_BLOB_ORTHOGON_HELPURL:"https://mpython.readthedocs.io/zh/doc_mpythonbox/mpython_classroom_kit/lib/mpython_classroom_kit.html#blob",MPYTHON_AI_BLOB_ORTHOGON_MESSAGE0:"%1Color piece rectangular",MPYTHON_AI_BLOB_ORTHOGON_TOOLTIP:"Returns blob class -- a color block object",MPYTHON_DRILL_WEIGHT_MESSAGE0:"Initialize training%1",MPYTHON_DRILL_WEIGHT_TOOLTIP:"",MPYTHON_DRILL_WEIGHT_HELPURL:"",MPYTHON_DRILL_LINEAR_REGRESSION_HELPURL:"",MPYTHON_DRILL_LINEAR_REGRESSION_MESSAGE0:"Instantiate the linear regression line",MPYTHON_DRILL_LINEAR_REGRESSION_TOOLTIP:"",MPYTHON_DRILL_TITLE_HELPURL:"",MPYTHON_DRILL_TITLE_MESSAGE0:" title%1 size%2",MPYTHON_DRILL_TITLE_TOOLTIP:"",MPYTHON_DRILL_LABEL_HELPURL:"",MPYTHON_DRILL_LABEL_MESSAGE0:"label%1 title%2 size%3",MPYTHON_DRILL_LABEL_TOOLTIP:"",MPYTHON_DRILL_DRILL_REALITY_HELPURL:"",MPYTHON_DRILL_DRILL_REALITY_MESSAGE0:"Real data lines Sign marks%1 The color of r%2 g%3 b%4 title%5",MPYTHON_DRILL_DRILL_REALITY_TOOLTIP:"",MPYTHON_DRILL_PREDICTED_REALITY_HELPURL:"",MPYTHON_DRILL_PREDICTED_REALITY_MESSAGE0:"Predict linear regression lines Sign marks%1 The color of r%2 g%3 b%4 title%5",MPYTHON_DRILL_PREDICTED_REALITY_TOOLTIP:"",MPYTHON_DRILL_LEGEND_HELPURL:"",MPYTHON_DRILL_LEGEND_MESSAGE0:"Show legend",MPYTHON_DRILL_LEGEND_TOOLTIP:"",MPYTHON_DRILL_SHOW_HELPURL:"",MPYTHON_DRILL_SHOW_MESSAGE0:"Display images",MPYTHON_DRILL_SHOW_TOOLTIP:"",MPYTHON_DRILL_DRILL_PRINT_HELPURL:"",MPYTHON_DRILL_DRILL_PRINT_MESSAGE0:"Returns the corresponding key value%1",MPYTHON_DRILL_DRILL_PRINT_TOOLTIP:"",MPYTHONS_FLOWER_DE_LUCE_INITIALIZE_HELPURL:"",MPYTHONS_FLOWER_DE_LUCE_INITIALIZE_MESSAGE0:"Initialize Iris dataset",MPYTHONS_FLOWER_DE_LUCE_INITIALIZE_TOOLTIP:"",MPYTHONS_FLOWER_DE_LUCE_PCA_HELPURL:"",MPYTHONS_FLOWER_DE_LUCE_PCA_MESSAGE0:"flower-de-luce Principal component analysis",MPYTHONS_FLOWER_DE_LUCE_PCA_TOOLTIP:"",MPYTHONS_FLOWER_DE_LUCE_FA3D_HELPURL:"",MPYTHONS_FLOWER_DE_LUCE_FA3D_MESSAGE0:"flower-de-luce Factor analysis 3D",MPYTHONS_FLOWER_DE_LUCE_FA3D_TOOLTIP:"",MPYTHONS_FLOWER_DE_LUCE_FA_HELPURL:"",MPYTHONS_FLOWER_DE_LUCE_FA_MESSAGE0:"flower-de-luce Factor analysis",MPYTHONS_FLOWER_DE_LUCE_FA_TOOLTIP:"",MPYTHONS_FLOWER_DE_LUCE_PCA_DISPLAY_HELPURL:"",MPYTHONS_FLOWER_DE_LUCE_PCA_DISPLAY_MESSAGE0:"Predicting graphic flower-de-luce type%1 Render content x%3 y%4 Present species%2 color r%5 g%6 b%7 title%8 upward merge%9",MPYTHONS_FLOWER_DE_LUCE_PCA_DISPLAY_TOOLTIP:"",MPYTHONS_FLOWER_DE_LUCE_DATA_HELPURL:"",MPYTHONS_FLOWER_DE_LUCE_DATA_MESSAGE0:"Predicting graphic Render content x%1 y%2 Present species%3 color r%4 g%5 b%6 title%7",MPYTHONS_FLOWER_DE_LUCE_DATA_TOOLTIP:"",MPYTHONS_FLOWER_DE_LUCE_DATA3D_HELPURL:"",MPYTHONS_FLOWER_DE_LUCE_DATA3D_MESSAGE0:"3D Predicting graphic Render content x%1 y%2 z%3 color r%4 g%5 b%6 title%7",MPYTHONS_FLOWER_DE_LUCE_DATA3D_TOOLTIP:"",MPYTHONS_FLOWER_DE_LUCE_TITLE_HELPURL:"",MPYTHONS_FLOWER_DE_LUCE_TITLE_MESSAGE0:" title%1 size%2",MPYTHONS_FLOWER_DE_LUCE_TITLE_TOOLTIP:"",MPYTHONS_FLOWER_DE_LUCE_LABEL_HELPURL:"",MPYTHONS_FLOWER_DE_LUCE_LABEL_MESSAGE0:"label%1 title%2 size%3",MPYTHONS_FLOWER_DE_LUCE_LABEL_TOOLTIP:"",MPYTHONS_FLOWER_DE_LUCE_TITLE3D_HELPURL:"",MPYTHONS_FLOWER_DE_LUCE_TITLE3D_MESSAGE0:"3D title%1 size%2",MPYTHONS_FLOWER_DE_LUCE_TITLE3D_TOOLTIP:"",MPYTHONS_FLOWER_DE_LUCE_LABEL3D_HELPURL:"",MPYTHONS_FLOWER_DE_LUCE_LABEL3D_MESSAGE0:"3D label%1 title%2 size%3",MPYTHONS_FLOWER_DE_LUCE_LABEL3D_TOOLTIP:"",MPYTHONS_FLOWER_DE_LUCE_LEGEND_HELPURL:"",MPYTHONS_FLOWER_DE_LUCE_LEGEND_MESSAGE0:"Show legend",MPYTHONS_FLOWER_DE_LUCE_LEGEND_TOOLTIP:"",MPYTHONS_FLOWER_DE_LUCE_SHOW_HELPURL:"",MPYTHONS_FLOWER_DE_LUCE_SHOW_MESSAGE0:"Display images",MPYTHONS_FLOWER_DE_LUCE_SHOW_TOOLTIP:"",MPYTHONS_FLOWER_DE_LUCE_LOAD_IRIS_HELPURL:"",MPYTHONS_FLOWER_DE_LUCE_LOAD_IRIS_MESSAGE0:"X and y coordinates of calyx and petals",MPYTHONS_FLOWER_DE_LUCE_LOAD_IRIS_TOOLTIP:"There are 150 records, representing 50 Iris-setosa, Iris-versicolor and Iris-virginica respectively",MPYTHONS_FLOWER_DE_LUCE_Iris_setosa:"Iris setosa",MPYTHONS_FLOWER_DE_LUCE_Iris_versicolor:"Iris versicolor",MPYTHONS_FLOWER_DE_LUCE_Iris_virginica:"Iris virginica",MPYTHONS_FLOWER_DE_LUCE_scatter_diagram:"scatter diagram",MPYTHONS_FLOWER_DE_LUCE_kde_diagram:"kde diagram",MPYTHONS_FLOWER_DE_LUCE_box_diagram:"box diagram",MPYTHONS_FLOWER_DE_LUCE_merge:"merge",MPYTHONS_FLOWER_DE_LUCE_not_merge:"Don it merge",MPYTHONS_FLOWER_DE_LUCE_calyx_length:"calyx length",MPYTHONS_FLOWER_DE_LUCE_calyx_width:"calyx width",MPYTHONS_FLOWER_DE_LUCE_petal_length:"petal length",MPYTHONS_FLOWER_DE_LUCE_petal_width:"petal width",MPYTHON_DRILL_DRILL_full_line:"full line",MPYTHON_DRILL_DRILL_dash_line:"dash line",MPYTHON_DRILL_DRILL_chain_line:"chain line",MPYTHON_DRILL_DRILL_imaginary_line:"imaginary line",MPYTHON_DRILL_DRILL_dot:"dot",MPYTHON_DRILL_DRILL_pixel:"pixel",MPYTHON_DRILL_DRILL_solid_rim:"solid rim",MPYTHON_DRILL_DRILL_down_triangle:"down triangle",MPYTHON_DRILL_DRILL_up_triangle:"up triangle",MPYTHON_DRILL_DRILL_right_triangle:"right triangle",MPYTHON_DRILL_DRILL_left_triangle:"left triangle",MPYTHON_DRILL_DRILL_down_flower_triangle:"down flower triangle",MPYTHON_DRILL_DRILL_up_flower_triangle:"up flower triangle",MPYTHON_DRILL_DRILL_right_flower_triangle:"right flower triangle",MPYTHON_DRILL_DRILL_left_flower_triangle:"left flower triangle",MPYTHON_DRILL_DRILL_solid_square:"solid square",MPYTHON_DRILL_DRILL_solid_pentagon:"solid pentagon",MPYTHON_DRILL_DRILL_star:"star",MPYTHON_DRILL_DRILL_vertical_hexagon:"vertical hexagon",MPYTHON_DRILL_DRILL_across_hexagon:"across hexagon",MPYTHON_DRILL_DRILL_cross:"cross",MPYTHON_DRILL_DRILL_X:"X",MPYTHON_DRILL_DRILL_rhombus:"rhombus",MPYTHON_DRILL_DRILL_thin_rhombus:"thin rhombus",MPYTHON_DRILL_DRILL_vertical_line:"vertical line",MPYTHONS_CONVERT_PICTURE_HELPURL:" ",MPYTHONS_CONVERT_PICTURE_MESSAGE0:" convert image to 28 ^ 2 binary image %1 pending image storage path %2 processed image storage path %3 format %4",MPYTHONS_CONVERT_PICTURE_TOOLTIP:"control board passes WIF to voice assistant via serial port ",MPYTHONS_NUMBER_REPERTOIRE_HELPURL:" ",MPYTHONS_NUMBER_REPERTOIRE_MESSAGE0:" find parse handwritten numeric data store path %1",MPYTHONS_NUMBER_REPERTOIRE_TOOLTIP:"use handwritten number library ",MPYTHONS_SHOW_NUMBER_PATH_HELPURL:" ",MPYTHONS_SHOW_NUMBER_PATH_MESSAGE0:" handwritten digital image storage path %1",MPYTHONS_SHOW_NUMBER_PATH_TOOLTIP:"path of handwritten digital image ",MPYTHONS_SHOW_NUMBER_HELPURL:" ",MPYTHONS_SHOW_NUMBER_MESSAGE0:" display handwritten digital image ",MPYTHONS_SHOW_NUMBER_TOOLTIP:"display handwritten digital image ",MPYTHONS_NUMBER_RECOGNITION_HELPURL:" ",MPYTHONS_NUMBER_RECOGNITION_MESSAGE0:" identify handwritten digital image storage path %1",MPYTHONS_NUMBER_RECOGNITION_TOOLTIP:"path to recognize handwritten digital image ",MPYTHONS_NUMBER_PLACEHOLDER_HELPURL:" ",MPYTHONS_NUMBER_PLACEHOLDER_MESSAGE0:" create variable %1 initialize neural network tensor variable name %2",MPYTHONS_NUMBER_PLACEHOLDER_TOOLTIP:" ",MPYTHON_DRILL_RESHAPE_MESSAGE0:"create variable %1 and convert the input photo variable %2 into neural network output tensor %3",MPYTHON_DRILL_RESHAPE_TOOLTIP:" ",MPYTHON_DRILL_RESHAPE_HELPURL:" ",MPYTHON_NUMBER_CONV_WEIGHT_MESSAGE0:"create variable %1 Shared variable name %2 initialization mode %3",MPYTHON_NUMBER_CONV_WEIGHT_TOOLTIP:" ",MPYTHON_NUMBER_CONV_WEIGHT_HELPURL:" ",MPYTHON_NUMBER_INITIALIZER_MESSAGE0:"produce truncated normal distribution random number output tensor %1 standard deviation %2",MPYTHON_NUMBER_INITIALIZER_TOOLTIP:" ",MPYTHON_NUMBER_INITIALIZER_HELPURL:" ",MPYTHON_NUMBER_CONSTANT_MESSAGE0:"create constant value %1 output tensor %2",MPYTHON_NUMBER_CONSTANT_TOOLTIP:" ",MPYTHON_NUMBER_CONSTANT_HELPURL:" ",MPYTHON_NUMBER_CONV2D_MESSAGE0:"neural network output tensor %1 Shared variable %2 step size %3 fill %4",MPYTHON_NUMBER_CONV2D_TOOLTIP:" ",MPYTHON_NUMBER_CONV2D_HELPURL:" ",MPYTHON_NUMBER_CONV_BIASES_MESSAGE0:"tensor %1",MPYTHON_NUMBER_CONV_BIASES_TOOLTIP:" ",MPYTHON_NUMBER_CONV_BIASES_HELPURL:" ",MPYTHON_NUMBER_CONV_CONV2D_MESSAGE0:"convolution two-dimensional variable %1 %2",MPYTHON_NUMBER_CONV_CONV2D_TOOLTIP:" ",MPYTHON_NUMBER_CONV_CONV2D_HELPURL:" ",MPYTHON_NUMBER_RELU_MESSAGE0:"create variable %1 Relu forward drive function convolution 2d layer %2",MPYTHON_NUMBER_RELU_TOOLTIP:" ",MPYTHON_NUMBER_RELU_HELPURL:" ",MPYTHON_NUMBER_MAX_POOL_MESSAGE0:"pooling 2d layer variable %1 convolution layer %2 pooling window %3 step size %4 fill %5",MPYTHON_NUMBER_MAX_POOL_TOOLTIP:" ",MPYTHON_NUMBER_MAX_POOL_HELPURL:" ",MPYTHON_NUMBER_MATMUL_MESSAGE0:"the corresponding elements of the two parameters are multiplied x%1 y%2",MPYTHON_NUMBER_MATMUL_TOOLTIP:" ",MPYTHON_NUMBER_MATMUL_HELPURL:" ",MPYTHON_NUMBER_ADD_MESSAGE0:"full connection layer variable %1 add elements of two parameters x%2 y%3",MPYTHON_NUMBER_ADD_TOOLTIP:" ",MPYTHON_NUMBER_ADD_HELPURL:" ",MPYTHON_NUMBER_SOFTMAX_MESSAGE0:"create variable %1 prediction model accuracy variable name %2",MPYTHON_NUMBER_SOFTMAX_TOOLTIP:" ",MPYTHON_NUMBER_SOFTMAX_HELPURL:" ",MPYTHON_NUMBER_REDUCE_MEAN_MESSAGE0:"create variable %1 loss function %2",MPYTHON_NUMBER_REDUCE_MEAN_TOOLTIP:" ",MPYTHON_NUMBER_REDUCE_MEAN_HELPURL:" ",MPYTHON_NUMBER_LOG_MESSAGE0:"natural logarithm %1",MPYTHON_NUMBER_LOG_TOOLTIP:" ",MPYTHON_NUMBER_LOG_HELPURL:" ",MPYTHON_NUMBER_REDUCE_SUM_MESSAGE0:"compress sum %1 dimension %2",MPYTHON_NUMBER_REDUCE_SUM_TOOLTIP:"because the log function is monotonically increasing, logP(Y|X) will also reach its maximum value, so maximizing P(Y|X) after adding a negative sign in front is equivalent to minimizing L.",MPYTHON_NUMBER_REDUCE_SUM_HELPURL:"https://www.cnblogs.com/guoyaohua/p/9217206.html",MPYTHON_NUMBER_TRAIN_MESSAGE0:"optimize learning rate %1",MPYTHON_NUMBER_TRAIN_TOOLTIP:" ",MPYTHON_NUMBER_TRAIN_HELPURL:" ",MPYTHON_NUMBER_MINIMIZE_MESSAGE0:"create variable %1 optimize tensor %2",MPYTHON_NUMBER_MINIMIZE_TOOLTIP:" ",MPYTHON_NUMBER_MINIMIZE_HELPURL:" ",MPYTHON_NUMBER_INIT_MESSAGE0:"initialization model complete ",MPYTHON_NUMBER_INIT_TOOLTIP:" ",MPYTHON_NUMBER_INIT_HELPURL:" ",MPYTHON_NUMBER_TRAIN_TEST_MESSAGE0:"select handwritten number set %1 number %2",MPYTHON_NUMBER_TRAIN_TEST_TOOLTIP:" ",MPYTHON_NUMBER_TRAIN_TEST_HELPURL:" ",MPYTHON_NUMBER_SESSION_RUN_MESSAGE0:"start data stream graph session to compute session %1 picture %2 tag %3",MPYTHON_NUMBER_SESSION_RUN_TOOLTIP:" ",MPYTHON_NUMBER_SESSION_RUN_HELPURL:" ",MPYTHON_NUMBER_SESSION_RUN2_MESSAGE0:"start data stream graph session to compute session %1 picture %2 tag %3",MPYTHON_NUMBER_SESSION_RUN2_TOOLTIP:" ",MPYTHON_NUMBER_SESSION_RUN2_HELPURL:" ",MPYTHON_NUMBER_SESSION_RUN3_MESSAGE0:"prediction model %1 fit %2 session %3",MPYTHON_NUMBER_SESSION_RUN3_TOOLTIP:" ",MPYTHON_NUMBER_SESSION_RUN3_HELPURL:" ",MPYTHON_NUMBER_EQUAL_MESSAGE0:"Whether each dimension of two tensors is equalx%1 y%2",MPYTHON_NUMBER_EQUAL_TOOLTIP:"",MPYTHON_NUMBER_EQUAL_HELPURL:"",MPYTHON_NUMBER_ARGMAX_MESSAGE0:"tensor%1 %2Compare the index that returns the maximum value",MPYTHON_NUMBER_ARGMAX_TOOLTIP:"",MPYTHON_NUMBER_ARGMAX_HELPURL:"",MPYTHON_NUMBER_CAST_MESSAGE0:"Floating point %1",MPYTHON_NUMBER_CAST_TOOLTIP:"",MPYTHON_NUMBER_CAST_HELPURL:"",MPYTHONS_NUMBER_SAVER_SAVE_HELPURL:"",MPYTHONS_NUMBER_SAVER_SAVE_MESSAGE0:"Handwritten numeral recognition model variable name %1 store path%2",MPYTHONS_NUMBER_SAVER_SAVE_TOOLTIP:"MNIST Handwritten numeral recognition model Save the path",MPYTHONS_NUMBER_SAVER_RESTORE_HELPURL:"",MPYTHONS_NUMBER_SAVER_RESTORE_MESSAGE0:"Load model %1 store path%2",MPYTHONS_NUMBER_SAVER_RESTORE_TOOLTIP:"Load model",MPYTHONS_NUMBER_SAME:"SAME",MPYTHONS_NUMBER_VALID:"VALID",MPYTHONS_NUMBER_train:"train",MPYTHONS_NUMBER_test:"test",MPYTHONS_NUMBER_row:"row",MPYTHONS_NUMBER_rank:"rank",MPYTHONS_FACE_RECOGNITION_CAMERA_HELPURL:"",MPYTHONS_FACE_RECOGNITION_CAMERA_MESSAGE0:"Call camera %1",MPYTHONS_FACE_RECOGNITION_CAMERA_TOOLTIP:"Call the built-in camera in the notebook, so the parameter is 0. If there are other cameras, the parameter can be adjusted to 1,2",MPYTHONS_FACE_RECOGNITION_CAMERA_OFF_HELPURL:"",MPYTHONS_FACE_RECOGNITION_CAMERA_OFF_MESSAGE0:"off the camera",MPYTHONS_FACE_RECOGNITION_CAMERA_OFF_TOOLTIP:"",MPYTHONS_FACE_RECOGNITION_WINDOWS_DELETE_HELPURL:"",MPYTHONS_FACE_RECOGNITION_WINDOWS_DELETE_MESSAGE0:"Delete all Windows",MPYTHONS_FACE_RECOGNITION_WINDOWS_DELETE_TOOLTIP:"",MPYTHONS_FACE_RECOGNITION_IMPORT_MODEL_SITE_HELPURL:"",MPYTHONS_FACE_RECOGNITION_IMPORT_MODEL_SITE_MESSAGE0:"Load model store path%1",MPYTHONS_FACE_RECOGNITION_IMPORT_MODEL_SITE_TOOLTIP:"",MPYTHONS_FACE_RECOGNITION_READ_IMAGES_HELPURL:"",MPYTHONS_FACE_RECOGNITION_READ_IMAGES_MESSAGE0:"Read the picture from the camera",MPYTHONS_FACE_RECOGNITION_READ_IMAGES_TOOLTIP:"Ret True if the image is read, otherwise false;The second parameter is frame, which is the image of the currently captured frame.",MPYTHONS_FACE_RECOGNITION_GRAY_IMAGES_HELPURL:"",MPYTHONS_FACE_RECOGNITION_GRAY_IMAGES_MESSAGE0:"Grayscale image",MPYTHONS_FACE_RECOGNITION_GRAY_IMAGES_TOOLTIP:"",MPYTHONS_FACE_RECOGNITION_DETECTION_FACES_HELPURL:"",MPYTHONS_FACE_RECOGNITION_DETECTION_FACES_MESSAGE0:"Each time the face is detected, the image size is reduced proportionally%1",MPYTHONS_FACE_RECOGNITION_DETECTION_FACES_TOOLTIP:"",MPYTHONS_FACE_DISPLAY_RECOGNITION_ORTHOGON_HELPURL:"",MPYTHONS_FACE_DISPLAY_RECOGNITION_ORTHOGON_MESSAGE0:"Face area displays rectangular box color r%1 g%2 b%3",MPYTHONS_FACE_DISPLAY_RECOGNITION_ORTHOGON_TOOLTIP:"",MPYTHONS_FACE_RECOGNITIONR_PSTORAGE_PICTURE_HELPURL:"",MPYTHONS_FACE_RECOGNITIONR_PSTORAGE_PICTURE_MESSAGE0:"Save the image location%1 ID%2 Serial number%3",MPYTHONS_FACE_RECOGNITIONR_PSTORAGE_PICTURE_TOOLTIP:"",MPYTHONS_FACE_RECOGNITIONR_PRESERVE_PICTURE_HELPURL:"",MPYTHONS_FACE_RECOGNITIONR_PRESERVE_PICTURE_MESSAGE0:"Window to display the image filename%1",MPYTHONS_FACE_RECOGNITIONR_PRESERVE_PICTURE_TOOLTIP:"",MPYTHONS_FACE_RECOGNITIONR_ESC_HELPURL:"",MPYTHONS_FACE_RECOGNITIONR_ESC_MESSAGE0:"Exit via esc key",MPYTHONS_FACE_RECOGNITIONR_ESC_TOOLTIP:"Use only when the window is on top",MPYTHONS_FACE_RECOGNITIONR_HELPURL:"",MPYTHONS_FACE_RECOGNITIONR_MESSAGE0:"Gets the coordinate value of the face in the image face%1",MPYTHONS_FACE_RECOGNITIONR_TOOLTIP:"",MPYTHONS_FACE_RECOGNITION_JUDGE_FACES_HELPURL:"",MPYTHONS_FACE_RECOGNITION_JUDGE_FACES_MESSAGE0:"If the image is read",MPYTHONS_FACE_RECOGNITION_JUDGE_FACES_TOOLTIP:"",MPYTHONS_FACE_RECOGNITION_JUDGE_CAMERA_HELPURL:"",MPYTHONS_FACE_RECOGNITION_JUDGE_CAMERA_MESSAGE0:"Whether to turn on the camera",MPYTHONS_FACE_RECOGNITION_JUDGE_CAMERA_TOOLTIP:"",MPYTHONS_FACE_RECOGNITION_ACQUIRE_ID_PICTURE_HELPURL:"",MPYTHONS_FACE_RECOGNITION_ACQUIRE_ID_PICTURE_MESSAGE0:"Get photos and id Photo storage path%1",MPYTHONS_FACE_RECOGNITION_ACQUIRE_ID_PICTURE_TOOLTIP:"",MPYTHONS_FACE_RECOGNITION_INITIALIZE_TRANI_MODEL_HELPURL:"",MPYTHONS_FACE_RECOGNITION_INITIALIZE_TRANI_MODEL_MESSAGE0:"Initialize Training model",MPYTHONS_FACE_RECOGNITION_INITIALIZE_TRANI_MODEL_TOOLTIP:"",MPYTHONS_FACE_RECOGNITION_START_DRILL_HELPURL:"",MPYTHONS_FACE_RECOGNITION_START_DRILL_MESSAGE0:"Start Training model",MPYTHONS_FACE_RECOGNITION_START_DRILL_TOOLTIP:"",MPYTHONS_FACE_RECOGNITION_STORAGE_DRILL_MODEL_HELPURL:"",MPYTHONS_FACE_RECOGNITION_STORAGE_DRILL_MODEL_MESSAGE0:"%1Training model store path%2",MPYTHONS_FACE_RECOGNITION_STORAGE_DRILL_MODEL_TOOLTIP:"",MPYTHONS_FACE_RECOGNITION_DRILL_NUMBERS_HELPURL:"",MPYTHONS_FACE_RECOGNITION_DRILL_NUMBERS_MESSAGE0:"Face model training number",MPYTHONS_FACE_RECOGNITION_DRILL_NUMBERS_TOOLTIP:"",MPYTHONS_FACE_RECOGNITION_FONT_HELPURL:"",MPYTHONS_FACE_RECOGNITION_FONT_MESSAGE0:"Window display Recognized name%1 Set font to%2 color r%3 g%4 b%5",MPYTHONS_FACE_RECOGNITION_FONT_TOOLTIP:"",MPYTHONS_FACE_RECOGNITION_PERCENT_HELPURL:"",MPYTHONS_FACE_RECOGNITION_PERCENT_MESSAGE0:"Window display Confidence of identification%1 Set font to%2 color r%3 g%4 b%5",MPYTHONS_FACE_RECOGNITION_PERCENT_TOOLTIP:"",MPYTHONS_FACE_RECOGNITION_FORECAST_FACE_INITIALIZE_HELPURL:"",MPYTHONS_FACE_RECOGNITION_FORECAST_FACE_INITIALIZE_MESSAGE0:"Predict human face name%1 Degree of confidence%2",MPYTHONS_FACE_RECOGNITION_FORECAST_FACE_INITIALIZE_TOOLTIP:"",MPYTHONS_FACE_RECOGNITION_FORECAST_Write:"write",MPYTHONS_FACE_RECOGNITION_FORECAST_Read:"read",MPYTHONS_DIALOGUE_ROBOT_INITIALIZE_HELPURL:"",MPYTHONS_DIALOGUE_ROBOT_INITIALIZE_MESSAGE0:"初始化 聊天机器人",MPYTHONS_ADIALOGUE_ROBOT_INITIALIZE_TOOLTIP:"",MPYTHONS_DIALOGUE_ROBOT_CHOOSE_HELPURL:"",MPYTHONS_DIALOGUE_ROBOT_CHOOSE_MESSAGE0:"选择训练器 聊天机器人",MPYTHONS_ADIALOGUE_ROBOT_CHOOSE_TOOLTIP:"",MPYTHONS_DIALOGUE_ROBOT_START_HELPURL:"",MPYTHONS_DIALOGUE_ROBOT_START_MESSAGE0:"选择与%1 聊天",MPYTHONS_ADIALOGUE_ROBOT_START_TOOLTIP:"",MPYTHONS_ADIALOGUE_ROBOT_CORPUS_HELPURL:"",MPYTHONS_ADIALOGUE_ROBOT_CORPUS_TOOLTIP:"",MPYTHONS_ADIALOGUE_ROBOT_CORPUS_MESSAGE0:"自定义 语料库 %1[%2]",MPYTHONS_ADIALOGUE_ROBOT_MY_FAQs_HELPURL:"",MPYTHONS_ADIALOGUE_ROBOT_MY_FAQs_MESSAGE0:"输入对话 获得响应 %1",MPYTHONS_ADIALOGUE_ROBOT_MY_FAQs_TOOLTIP:"",MPYTHONS_ADIALOGUE_ROBOT_FAQs_RETURN_MESSAGE0:"识别响应",MPYTHONS_ADIALOGUE_ROBOT_FAQs_RETURN_TOOLTIP:"",MPYTHONS_ADIALOGUE_ROBOT_FAQs_RETURN_HELPURL:"",MPYTHONS_ADIALOGUE_ROBOT_CORPUS2_HELPURL:"",MPYTHONS_ADIALOGUE_ROBOT_CORPUS2_MESSAGE0:"选择跟 %1 聊天",MPYTHONS_ADIALOGUE_ROBOT_CORPUS2_TOOLTIP:"",Jenny:"珍妮",Jack:"杰克",Tom:"汤姆",MPYTHONS_ADIALOGUE_ROBOT_FEED_HELPURL:"",MPYTHONS_ADIALOGUE_ROBOT_FEED_MESSAGE0:"选择 %1 %2 模式%3 %4 喂养%5",MPYTHONS_ADIALOGUE_ROBOT_FEED_TOOLTIP:"",MPYTHONS_ADIALOGUE_READ_TRAINING_LIBRARY_HELPURL:"",MPYTHONS_ADIALOGUE_READ_TRAINING_LIBRARY_MESSAGE0:"查看训练库 选择%1",MPYTHONS_ADIALOGUE_READ_TRAINING_LIBRARY_TOOLTIP:"",MPYTHON_GESTURE_RANDOM_NUMBER_HELPURL:"",MPYTHON_GESTURE_RANDOM_NUMBER_MESSAGE0:"生成随机数 %1",MPYTHON_GESTURE_RANDOM_NUMBER_TOOLTIP:"",MPYTHON_AGESTURE_SHOW_WINDOW_HELPURL:"",MPYTHON_AGESTURE_SHOW_WINDOW_MESSAGE0:"显示窗口",MPYTHON_AGESTURE_SHOW_WINDOW_TOOLTIP:"",MPYTHON_AGESTURE_IMSHOW_HELPURL:"",MPYTHON_AGESTURE_IMSHOW_MESSAGE0:"处理图像 %1",MPYTHON_AGESTURE_IMSHOW_TOOLTIP:"",MPYTHON_AGESTURE_TRAIN_MODEL_HELPURL:"",MPYTHON_AGESTURE_TRAIN_MODEL_MESSAGE0:"选择训练库 knn模型",MPYTHON_AGESTURE_TRAIN_MODEL_TOOLTIP:"",MPYTHON_AGESTURE_LOAD_MODEL_HELPURL:"",MPYTHON_AGESTURE_LOAD_MODEL_MESSAGE0:"载入knn模型 存储路径%1",MPYTHON_AGESTURE_LOAD_MODEL_TOOLTIP:"",MPYTHON_AGESTURE_OPEN_IMAGES_HELPURL:"",MPYTHON_AGESTURE_OPEN_IMAGES_MESSAGE0:"%1打开图片 存储路径%2 图片名%3",MPYTHON_AGESTURE_OPEN_IMAGES_TOOLTIP:"",MPYTHON_AGESTURE_ARRAY_MESSAGE0:"选择%1 构建特征数据%2",MPYTHON_AGESTURE_ARRAY_TOOLTIP:"",MPYTHON_AGESTURE_ARRAY_HELPURL:"",MPYTHON_GESTURE_RANDOM_RANK_MESSAGE0:"打乱排序%1 ",MPYTHON_GESTURE_RANDOM_RANK_TOOLTIP:"",MPYTHON_GESTURE_RANDOM_RANK_HELPURL:"",MPYTHON_GESTURE_READ_LEND_MESSAGE0:" %1 图片特征",MPYTHON_GESTURE_READ_LEND_TOOLTIP:"",MPYTHON_GESTURE_READ_LEND_HELPURL:"",MPYTHON_GESTURE_START_SRAIN_HELPURL:"",MPYTHON_GESTURE_START_SRAIN_MESSAGE0:"开始训练 手势识别 期望%1 目标%2",MPYTHON_GESTURE_START_SRAIN_TOOLTIP:"",MPYTHON_GESTURE_SCORE_HELPURL:"",MPYTHON_GESTURE_SCORE_MESSAGE0:"进行评分 期望%1 目标%2",MPYTHON_GESTURE_SCORE_TOOLTIP:"",MPYTHON_GESTURE_DIMENSIONALITY_REDUCTION_HELPURL:"",MPYTHON_GESTURE_DIMENSIONALITY_REDUCTION_TOOLTIP:"",MPYTHON_GESTURE_DIMENSIONALITY_REDUCTION_MESSAGE0:"%1 数组降维 图片总数%2",MPYTHON_GESTURE_FORECAST_HELPURL:"",MPYTHON_GESTURE_FORECAST_TOOLTIP:"",MPYTHON_GESTURE_FORECAST_MESSAGE0:"预测结果%1",MPYTHON_AGESTURE_SAVE_MODEL_HELPURL:"",MPYTHON_AGESTURE_SAVE_MODEL_MESSAGE0:"保存模型 存储路径%1",MPYTHON_AGESTURE_SAVE_MODEL_TOOLTIP:"",MPYTHON_AGESTURE_FORECAST_PICTURE_HELPURL:"",MPYTHON_AGESTURE_FORECAST_PICTURE_MESSAGE0:"%1图片 预测图片 ",MPYTHON_AGESTURE_FORECAST_PICTURE_TOOLTIP:"",MPYTHON_GESTURE_PICTURE_DIMENSIONALITY_REDUCTION_HELPURL:"",MPYTHON_GESTURE_PICTURE_DIMENSIONALITY_REDUCTION_TOOLTIP:"",MPYTHON_GESTURE_PICTURE_DIMENSIONALITY_REDUCTION_MESSAGE0:"%1 彩色图像降维",MPYTHONS_FACEAI_READ_PICTURE_PATH_HELPURL:"",MPYTHONS_FACEAI_READ_PICTURE_PATH_MESSAGE0:"选择人脸库 图片存储路径%1",MPYTHONS_FACEAI_READ_PICTURE_PATH_TOOLTIP:"",MPYTHONS_FACEAI_RECOGNITION_IMPORT_MODEL_SITE_HELPURL:"",MPYTHONS_FACEAI_RECOGNITION_IMPORT_MODEL_SITE_MESSAGE0:"加载模型 存储路径%1",MPYTHONS_FACEAI_RECOGNITION_IMPORT_MODEL_SITE_TOOLTIP:"",MPYTHONS_FACEAI_FACE_GENDER_DETECTION_RETURN_HELPURL:"",MPYTHONS_FACEAI_FACE_GENDER_DETECTION_RETURN_MESSAGE0:"第%1位人脸性别结果 置信度",MPYTHONS_FACEAI_FACE_GENDER_DETECTION_RETURN_TOOLTIP:"",MPYTHONS_FACEAI_FACE_EMOTION_DETECTION_RETURN_HELPURL:"",MPYTHONS_FACEAI_FACE_EMOTION_DETECTION_RETURN_MESSAGE0:"第%1位人脸情绪结果 置信度",MPYTHONS_FACEAI_FACE_EMOTION_DETECTION_RETURN_TOOLTIP:"",MPYTHONS_FACEAI_FACE_GENDER_RESULT_HELPURL:"",MPYTHONS_FACEAI_FACE_GENDER_RESULT_MESSAGE0:"第%1位人脸性别 结果",MPYTHONS_FACEAI_FACE_GENDER_RESULT_TOOLTIP:"",MPYTHONS_FACEAI_FACE_EMOTION_RESULT_HELPURL:"",MPYTHONS_FACEAI_FACE_EMOTION_RESULT_MESSAGE0:"第%1位人脸情绪 结果",MPYTHONS_FACEAI_FACE_EMOTION_RESULT_TOOLTIP:"",MPYTHON_FACEAI_CHOOSE_FACE_POOL_HELPURL:"",MPYTHON_FACEAI_CHOOSE_FACE_POOL_MESSAGE0:"选择人脸库 %1",MPYTHON_FACEAI_CHOOSE_FACE_POOL_TOOLTIP:"",MPYTHONS_FACEAI_FACE_EMOTION_RETURN_HELPURL:"",MPYTHONS_FACEAI_FACE_EMOTION_RETURN_MESSAGE0:"第%1位情绪为 %2",MPYTHONS_FACEAI_FACE_EMOTION_RETURN_TOOLTIP:"",MPYTHONS_FACEAI_FACE_GENDER_RETURN_HELPURL:"",MPYTHONS_FACEAI_FACE_GENDER_RETURN_MESSAGE0:"第%1位性别为 %2",MPYTHONS_FACEAI_FACE_GENDER_RETURN_TOOLTIP:"",MPYTHONS_FACEAI_FACE_NUMBER_RETURN_HELPURL:"",MPYTHONS_FACEAI_FACE_NUMBER_RETURN_MESSAGE0:"人脸数量",MPYTHONS_FACEAI_FACE_NUMBER_RETURN_TOOLTIP:"",MPYTHONS_FACEAI_FACE_EXPRESSION_RETURN_HELPURL:"",MPYTHONS_FACEAI_FACE_EXPRESSION_RETURN_MESSAGE0:"表情数量",MPYTHONS_FACEAI_FACE_EXPRESSION_RETURN_TOOLTIP:"",MPYTHONS_FACEAI_FACE_RECOGNITION_VEDIO_RETURN_HELPURL:"",MPYTHONS_FACEAI_FACE_RECOGNITION_VEDIO_RETURN_MESSAGE0:"人脸实时检测 %1",MPYTHONS_FACEAI_FACE_RECOGNITION_VEDIO_RETURN_TOOLTIP:"",MPYTHONS_FACEAI_FACE_IMG_RESULT_HELPURL:"",MPYTHONS_FACEAI_FACE_IMG_RESULT_MESSAGE0:"显示图片",MPYTHONS_FACEAI_FACE_IMG_RESULT_TOOLTIP:"",MPYTHONS_FACEAI_CHOOSE_FACE_DATABASE_HELPURL:"",MPYTHONS_FACEAI_CHOOSE_FACE_DATABASE_MESSAGE0:"选择人脸%1 %2",MPYTHONS_FACEAI_CHOOSE_FACE_DATABASE_TOOLTIP:"",MPYTHONS_WORD_CLOUD_INITIALIZE_HELPURL:"",MPYTHONS_WORD_CLOUD_INITIALIZE_MESSAGE0:"初始化 文章聚类",MPYTHONS_WORD_CLOUD_INITIALIZE_TOOLTIP:"",MPYTHONS_WORD_CLOUD_TITLE_HELPURL:"文章数量不超过100",MPYTHONS_WORD_CLOUD_TITLE_MESSAGE0:"标题 第%1文章",MPYTHONS_WORD_CLOUD_TITLE_TOOLTIP:"",MPYTHONS_WORD_CLOUD_CONTENT_HELPURL:"文章数量不超过100",MPYTHONS_WORD_CLOUD_CONTENT_MESSAGE0:"内容 第%1文章",MPYTHONS_WORD_CLOUD_CONTENT_TOOLTIP:"",MPYTHONS_WORD_CLOUD_JIEBA_HELPURL:"文章数量不超过100",MPYTHONS_WORD_CLOUD_JIEBA_MESSAGE0:"文章内容转为列表 第%1文章",MPYTHONS_WORD_CLOUD_JIEBA_TOOLTIP:"",MPYTHONS_WORD_CLOUD_STOPWORD_HELPURL:"",MPYTHONS_WORD_CLOUD_STOPWORD_MESSAGE0:"读取停词表%1",MPYTHONS_WORD_CLOUD_STOPWORD_TOOLTIP:"返回的是100篇文章里的符号",MPYTHONS_WORD_CLOUD_DELETE_AFTER_NEWS_HELPURL:"",MPYTHONS_WORD_CLOUD_DELETE_AFTER_NEWS_MESSAGE0:"删除后的新闻",MPYTHONS_WORD_CLOUD_DELETE_AFTER_NEWS_TOOLTIP:"",MPYTHONS_WORD_CLOUD_THESAURUS_CONSTRUCTION_DATA_HELPURL:"",MPYTHONS_WORD_CLOUD_THESAURUS_CONSTRUCTION_DATA_MESSAGE0:"构造词云所用的数据",MPYTHONS_WORD_CLOUD_THESAURUS_CONSTRUCTION_DATA_TOOLTIP:"",MPYTHONS_WORD_CLOUD_COUNT_RANK_HELPURL:"",MPYTHONS_WORD_CLOUD_COUNT_RANK_MESSAGE0:"计算总数 排序前%1",MPYTHONS_WORD_CLOUD_COUNT_RANK_TOOLTIP:"返回的是100篇文章里的文本",MPYTHONS_WORD_CLOUD_SAVE_PICTURE_HELPURL:"",MPYTHONS_WORD_CLOUD_SAVE_PICTURE_MESSAGE0:"文章聚类训练结果 保存为图片",MPYTHONS_WORD_CLOUD_SAVE_PICTURE_TOOLTIP:"",MPYTHONS_WORD_CLOUD_DISPLAY_PICTURE_HELPURL:"",MPYTHONS_WORD_CLOUD_DISPLAY_PICTURE_MESSAGE0:"显示图片",MPYTHONS_WORD_CLOUD_DISPLAY_PICTURE_TOOLTIP:"",FIRST:"first",LAST:"last",MPYTHON_USOCKET_BLOCK:"block",MPYTHON_USOCKET_UNBLOCK:"unblock",MPYTHON_USOCKET_SETSOCKOPT_HELPURL:"http://docs.micropython.org/en/latest/library/usocket.html#usocket.socket",MPYTHON_USOCKET_SETSOCKOPT_MESSAGE0:"set socket %1 with af %2 and type %3",MPYTHON_USOCKET_SETSOCKOPT_TOOLTIP:"Sets the value of a given socket option. The required symbolic constants are defined in the socket module (SO_*, etc.). This value can be an integer or a class byte object representing a buffer.",MPYTHON_USOCKET_READ_HELPURL:"http://docs.micropython.org/en/latest/library/usocket.html#usocket.socket.read",MPYTHON_USOCKET_READ_MESSAGE0:"read %2 bytes from socket %1 and returns a byte object",MPYTHON_USOCKET_READ_TOOLTIP:"if no number of read is given, run in a mode similar to socket.readall ()",MPYTHON_USOCKET_SETBLOCKING_HELPURL:"http://docs.micropython.org/en/latest/library/usocket.html#usocket.socket.setblocking",MPYTHON_USOCKET_SETBLOCKING_MESSAGE0:"set socket %1 as %2 mode ",MPYTHON_USOCKET_SETBLOCKING_TOOLTIP:"",MPYTHON_USOCKET_SETTIMEOUT_HELPURL:"http://docs.micropython.org/en/latest/library/usocket.html#usocket.socket.settimeout",MPYTHON_USOCKET_SETTIMEOUT_MESSAGE0:"socket %1 sets timeout as %2 seconds",MPYTHON_USOCKET_SETTIMEOUT_TOOLTIP:"",MPYTHON_USOCKET_SENDALL_HELPURL:"http://docs.micropython.org/en/latest/library/usocket.html#usocket.socket.send",MPYTHON_USOCKET_SENDALL_MESSAGE0:"Socket%1 sends%2 continuously and returns the number of bytes sent",MPYTHON_USOCKET_SENDALL_TOOLTIP:"Send all data to sockets. Sockets must be connected to remote sockets. Unlike send (), this method will attempt to send all data by sending blocks continuously.",MPYTHON_USOCKET_SENDS_HELPURL:"http://docs.micropython.org/en/latest/library/usocket.html#usocket.socket.send",MPYTHON_USOCKET_SENDS_MESSAGE0:"socket %1 send %2 and returns the number of bytes sent",MPYTHON_USOCKET_SENDS_TOOLTIP:"Send data to the socket. The socket must be connected to a remote socket. Returns number of bytes sent, which may be smaller than the length of data (“short write”).",MPYTHON_USOCKET_SEND_HELPURL:"http://docs.micropython.org/en/latest/library/usocket.html#usocket.socket.send",MPYTHON_USOCKET_SEND_MESSAGE0:"socket %1 send %2 and returns the number of bytes sent",MPYTHON_USOCKET_SEND_TOOLTIP:"Send data to the socket. The socket must be connected to a remote socket. Returns number of bytes sent, which may be smaller than the length of data (“short write”).",MPYTHON_LINE_BREAK_HELPURL:"",MPYTHON_LINE_BREAK_MESSAGE0:"Escape character %1",MPYTHON_LINE_BREAK_TOOLTIP:"Escape character",MPYTHON_USOCKET_SENDTO_HELPURL:"http://docs.micropython.org/en/latest/library/usocket.html#usocket.socket.sendto",MPYTHON_USOCKET_SENDTO_MESSAGE0:"socket %1 send %2 to address %3",MPYTHON_USOCKET_SENDTO_TOOLTIP:"Send data to the socket. The socket should not be connected to a remote socket, since the destination socket is specified by address.",MPYTHON_USOCKET_RECV_HELPURL:"http://docs.micropython.org/en/latest/library/usocket.html#usocket.socket.recv",MPYTHON_USOCKET_RECV_MESSAGE0:"socket %1 receives with maximum amount %2 and returns received data object",MPYTHON_USOCKET_RECV_TOOLTIP:"",MPYTHON_TEXT_ESC_HELPURL:"",MPYTHON_TEXT_ESC_MESSAGE0:"text ESC %1",MPYTHON_TEXT_ESC_TOOLTIP:"text ESC",MPYTHON_USOCKET_RECVFROM_HELPURL:"http://docs.micropython.org/en/latest/library/usocket.html#usocket.socket.recvfrom",MPYTHON_USOCKET_RECVFROM_MESSAGE0:"socket %1 receives with maximum amount %2 and returns received data tuple",MPYTHON_USOCKET_RECVFROM_TOOLTIP:"Tuple format: (bytes, address)",MPYTHON_USOCKET_CONNECT_HELPURL:"http://docs.micropython.org/en/latest/library/usocket.html#usocket.socket.connect",MPYTHON_USOCKET_CONNECT_MESSAGE0:"socket %1 connect to host %2 with port %3",MPYTHON_USOCKET_CONNECT_TOOLTIP:"",MPYTHON_USOCKET_GETADDRINFO_HELPURL:"http://docs.micropython.org/en/latest/library/usocket.html#usocket.socket.getaddrinfo",MPYTHON_USOCKET_GETADDRINFO_MESSAGE0:"parse host %1 with port %2 and return ip",MPYTHON_USOCKET_GETADDRINFO_TOOLTIP:"Internet required",MPYTHON_USOCKET_ACCEPT_HELPURL:"http://docs.micropython.org/en/latest/library/usocket.html#usocket.socket.accept",MPYTHON_USOCKET_ACCEPT_MESSAGE0:"socket %1 receive connection request and return socket tuple",MPYTHON_USOCKET_ACCEPT_TOOLTIP:"Receive connection request.Socket needs to specify an address and listen to the connection.The return value is (conn, address)\nconn: A new socket object that can be used to send and receive message\naddress: Client address connected to the server",MPYTHON_USOCKET_LISTEN_HELPURL:"http://docs.micropython.org/en/latest/library/usocket.html#usocket.socket.listen",MPYTHON_USOCKET_LISTEN_MESSAGE0:"listen to socket %1 with backlog as %2",MPYTHON_USOCKET_LISTEN_TOOLTIP:"backlog : Maximum number of accepted sockets, at least 0, default reasonable value if not specified",MPYTHON_USOCKET_BIND_HELPURL:"http://docs.micropython.org/en/latest/library/usocket.html#usocket.socket.bind",MPYTHON_USOCKET_BIND_MESSAGE0:"socket %1 bind with address %2 and port %3",MPYTHON_USOCKET_BIND_TOOLTIP:"",MPYTHON_USOCKET_CLOSE_HELPURL:"http://docs.micropython.org/en/latest/library/usocket.html#usocket.socket.close",MPYTHON_USOCKET_CLOSE_MESSAGE0:"close socket %1",MPYTHON_USOCKET_CLOSE_TOOLTIP:"",MPYTHON_USOCKET_INIT_HELPURL:"http://docs.micropython.org/en/latest/library/usocket.html#usocket.socket",MPYTHON_USOCKET_INIT_MESSAGE0:"create socket %1 with af %2 and type %3",MPYTHON_USOCKET_INIT_TOOLTIP:"AF_INET:=2 — TCP/IP – IPv4\nAF_INET6 :=10 — TCP/IP – IPv6\nSOCK_STREAM:=1 — TCP stream\nSOCK_DGRAM:=2 — UDP datagram\nSOCK_RAW :=3 — Original socket\nSO_REUSEADDR : =4 — Socket reusable\n",MPYTHON_GET_POST_HELPURL:"",MPYTHON_GET_POST_MESSAGE0:"%1 request url %2 submit fields %3",MPYTHON_GET_POST_TOOLTIP:"",MPYTHON_UREQUESTS_GET_POST_HELPURL:"",MPYTHON_UREQUESTS_GET_POST_TOOLTIP:"",MPYTHON_UREQUESTS_GET_POST_MESSAGE0:"%1 request url %2 submit fields %3",MPYTHON_UREQUESTS_POST_FILE_HELPURL:"",MPYTHON_UREQUESTS_POST_FILE_TOOLTIP:"",MPYTHON_UREQUESTS_POST_FILE_MESSAGE0:"Post submit file %1 request url %2 file path %3 mime type %4 fields %5",MPYTHON_RESPONSE_HELPURL:"",MPYTHON_RESPONSE_MESSAGE0:"return response content as %1",MPYTHON_RESPONSE_TOOLTIP:"",STRING:"string",_BYTE:"byte",TEXT:"text",MPYTHON_RESPONSE_ATTRIBUTE_HELPURL:"",MPYTHON_RESPONSE_ATTRIBUTE_MESSAGE0:"response attribute %1",MPYTHON_RESPONSE_ATTRIBUTE_TOOLTIP:"",MPYTHON_SLEEP_MESSAGE0:"waiting for %1 %2",MPYTHON_SLEEP_TOOLTIP:"Wait for the time before proceeding to the next command.\n1 second = 1,000 milliseconds (ms)\n1 second = 1,000,000 microseconds (μs)",MPYTHON_MS:"millisecond(ms)",MPYTHON_US:"microsecond(μs)",MPYTHON_TIME_DIFFERENCE_HELPURL:"",MPYTHON_TIME_DIFFERENCE_MESSAGE0:"Return time difference from %1 to %2",MPYTHON_TIME_DIFFERENCE_TOOLTIP:"Measure the period between successive calls to ticks_ms (), ticks_us ()",MPYTHON_TYPE_HELPURL:"",MPYTHON_TYPE_MESSAGE0:"type %1",MPYTHON_TYPE_TOOLTIP:"",MPYTHON_TYPE_IS_HELPURL:"",MPYTHON_TYPE_IS_MESSAGE0:"type %1 is %2",MPYTHON_TYPE_IS_TOOLTIP:"",MPYTHON_EVAL_HELPURL:"",MPYTHON_EVAL_MESSAGE0:"eval %1",MPYTHON_EVAL_TOOLTIP:"Simulate a string expression and return the result",MPYTHON_RETURN_HELPURL:"",MPYTHON_RETURN_MESSAGE0:"return %1",MPYTHON_RETURN_TOOLTIP:"",MPYTHON_BLUEBIT_AMBIENTLIGHT_HELPURL:"",MPYTHON_BLUEBIT_AMBIENTLIGHT_MESSAGE0:"I2C digital ray",MPYTHON_BLUEBIT_AMBIENTLIGHT_TOOLTIP:"",MPYTHON_WIFI_ALL_CONFIG_HELPURL:"",MPYTHON_WIFI_ALL_CONFIG_MESSAGE0:"Wi-Fi configuration information",MPYTHON_WIFI_ALL_CONFIG_TOOLTIP:"Returns all wifi configuration information as tuples",MPYTHON_WIFI_ISCONNECTED_HELPURL:"",MPYTHON_WIFI_ISCONNECTED_MESSAGE0:"Has connected to Wi-Fi",MPYTHON_WIFI_ISCONNECTED_TOOLTIP:"",MPYTHON_INIT_ASSISTANT_WIFI_HELPURL:"",MPYTHON_INIT_ASSISTANT_WIFI_MESSAGE0:"Wi-Fi Connect voice assistant Wi-Fi name%1 password%2",MPYTHON_INIT_ASSISTANT_WIFI_TOOLTIP:"Control board passes WIF to voice assistant through serial port",MPYTHON_INIT_ASSISTANT_PROFILE_HELPURL:"",MPYTHON_INIT_ASSISTANT_PROFILE_TOOLTIP:"Files need to be uploaded to the board on the file system first",MPYTHON_INIT_ASSISTANT_PROFILE_MESSAGE0:"Read Voice Assistant Text Files %1",MPYTHON_BLUEBIT_SEG_DISPLAY_HELPURL:"",MPYTHON_BLUEBIT_SEG_DISPLAY_MESSAGE0:"digital tube display %1",MPYTHON_BLUEBIT_SEG_DISPLAY_TOOLTIP:"-999~9999",MPYTHON_BLUEBIT_SEG_CLEAR_HELPURL:"",MPYTHON_BLUEBIT_SEG_CLEAR_MESSAGE0:"clear the digital tube display",MPYTHON_BLUEBIT_SEG_CLEAR_TOOLTIP:"",MPYTHON_MACHINE_RESET_HELPURL:"",MPYTHON_MACHINE_RESET_MESSAGE0:"reset",MPYTHON_MACHINE_RESET_TOOLTIP:"Same as pressing an external reset button",MPYTHON_BLUEBIT_GET_COLOR_HELPURL:"",MPYTHON_BLUEBIT_GET_COLOR_MESSAGE0:"I2C RGB color %1",MPYTHON_BLUEBIT_GET_COLOR_TOOLTIP:"",MPYTHON_BLUEBIT_GET_ALL_COLOR_HELPURL:"",MPYTHON_BLUEBIT_GET_ALL_COLOR_MESSAGE0:"I2C RGB color",MPYTHON_BLUEBIT_GET_ALL_COLOR_TOOLTIP:"Returns as list",MPYTHON_BLUEBIT_GET_COLOR_HSV_HELPURL:"",MPYTHON_BLUEBIT_GET_COLOR_HSV_MESSAGE0:"I2C HSV color %1",MPYTHON_BLUEBIT_GET_COLOR_HSV_TOOLTIP:"HSV(Hue, Saturation, Value)",MPYTHON_BLUEBIT_GET_ALL_COLOR_HSV_HELPURL:"",MPYTHON_BLUEBIT_GET_ALL_COLOR_HSV_MESSAGE0:"I2C HSV color",MPYTHON_BLUEBIT_GET_ALL_COLOR_HSV_TOOLTIP:"HSV(Hue, Saturation, Value)",MPYTHON_BLUEBIT_GET_FORCE_MEASURE_HELPURL:"",MPYTHON_BLUEBIT_GET_FORCE_MEASURE_MESSAGE0:"I2C force sensor Dial code %1",MPYTHON_BLUEBIT_GET_FORCE_MEASURE_TOOLTIP:"I2C Address Corresponds to the Requirements of Coding Switches",MPYTHON_BLUEBIT_GET_ELECTRICITY_MEASURE_HELPURL:"",MPYTHON_BLUEBIT_GET_ELECTRICITY_MEASURE_MESSAGE0:"I2C current sensor Dial code %1",MPYTHON_BLUEBIT_GET_ELECTRICITY_MEASURE_TOOLTIP:"I2C Address Corresponds to the Requirements of Coding Switches",MPYTHON_BLUEBIT_GET_VOLTAGE_MEASURE_HELPURL:"",MPYTHON_BLUEBIT_GET_VOLTAGE_MEASURE_MESSAGE0:"I2C voltage sensor Dial code %1",MPYTHON_BLUEBIT_GET_VOLTAGE_MEASURE_TOOLTIP:"I2C Address Corresponds to the Requirements of Coding Switches",MPYTHON_BLUEBIT_GET_MAGNETIC_MEASURE_HELPURL:"",MPYTHON_BLUEBIT_GET_MAGNETIC_MEASURE_MESSAGE0:"I2C magnetic sensor Dial code %1",MPYTHON_BLUEBIT_GET_MAGNETIC_MEASURE_TOOLTIP:"I2C Address Corresponds to the Requirements of Coding Switches",MPYTHON_BLUEBIT_GET_PH_MEASURE_HELPURL:"",MPYTHON_BLUEBIT_GET_PH_MEASURE_MESSAGE0:"I2C PH sensor Dial code %1",MPYTHON_BLUEBIT_GET_PH_MEASURE_TOOLTIP:"I2C Address Corresponds to the Requirements of Coding Switches",MPYTHON_BLUEBIT_GET_TDS_MEASURE_HELPURL:"",MPYTHON_BLUEBIT_GET_TDS_MEASURE_MESSAGE0:"I2C TDS sensor Dial code %1",MPYTHON_BLUEBIT_GET_TDS_MEASURE_TOOLTIP:"I2C Address Corresponds to the Requirements of Coding Switches",MPYTHON_BLUEBIT_GET_PRESSURE_MEASURE_HELPURL:"",MPYTHON_BLUEBIT_GET_PRESSURE_MEASURE_MESSAGE0:"I2C Pressure sensor Dial code %1",MPYTHON_BLUEBIT_GET_PRESSURE_MEASURE_TOOLTIP:"I2C Address Corresponds to the Requirements of Coding Switches",MPYTHON_BLUEBIT_GET_PHOTOGATE_TIMER_MEASURE_HELPURL:"",MPYTHON_BLUEBIT_GET_PHOTOGATE_TIMER_MEASURE_MESSAGE0:"I2C Photogate Timer sensor Dial code %1",MPYTHON_BLUEBIT_GET_PHOTOGATE_TIMER_MEASURE_TOOLTIP:"I2C Address Corresponds to the Requirements of Coding Switches",MPYTHON_RED:"red",MPYTHON_GREEN:"green",MPYTHON_BLUE:"blue",MPYTHON_MUSIC_PIN_P6:"default",MPYTHON_MUSIC_PIN_P6_HELPURL:"",MPYTHON_MUSIC_PIN_P6_MESSAGE0:"%1",MPYTHON_MUSIC_PIN_P6_TOOLTIP:"",MICROBIT_MUSIC_PLAY_BUILT_IN_MESSAGE0:"play music %1 wait %2 loop %3 Pin %4",MICROBIT_MUSIC_PLAY_BUILT_IN_TOOLTIP:"Play the built-in music, you can set the standby mode and loop playback.",MICROBIT_MUSIC_PLAY_BUILT_IN_HELPURL:"https://microbit-micropython.readthedocs.io/en/latest/music.html#built-in-melodies",MICROBIT_MUSIC_PITCH_MESSAGE0:"play tone %1 %2 delay %3 millisecond(s) at Pin %4",MICROBIT_MUSIC_PITCH_TOOLTIP:"Plays the tone for the set length of time.",MICROBIT_MUSIC_PITCH_HELPURL:"https://microbit-micropython.readthedocs.io/en/latest/music.html#music.pitch",MICROBIT_MUSIC_PLAY_LIST_OF_NOTES_MESSAGE0:"at Pin %5 play note list %1 wait %2 %3 loop %4",MICROBIT_MUSIC_PLAY_LIST_OF_NOTES_TOOLTIP:"Play a list of notes, such as C4:4, G4:8, etc., the notes are in string form, the default pin is P6 of the mPython board",MICROBIT_MUSIC_PLAY_LIST_OF_NOTES_HELPURL:"https://mpython.readthedocs.io/zh/latest/tutorials/basics/buzz.html",MICROBIT_MUSIC_RESET_HELPURL:"https://microbit-micropython.readthedocs.io/en/latest/music.html#music.reset",MICROBIT_MUSIC_RESET_MESSAGE0:"restore music settings",MICROBIT_MUSIC_RESET_TOOLTIP:"Restore all music settings (current beats, scales, and periods) to their default values.",MICROBIT_MUSIC_STOP_HELPURL:"https://microbit-micropython.readthedocs.io/en/latest/music.html#music.stop",MICROBIT_MUSIC_STOP_MESSAGE0:"stop playing music at Pin %1",MICROBIT_MUSIC_STOP_TOOLTIP:"The default pin is P6 of the mPython board",MICROBIT_MUSIC_SET_TEMPO_MESSAGE0:"set each beat equal to %1 notes, the number of beats per minute is %2",MICROBIT_MUSIC_SET_TEMPO_TOOLTIP:"Set the playback speed (beat). A certain number of tick represents a beat, the number of beats per minute per beat (BPM beats per minute).",MICROBIT_MUSIC_SET_TEMPO_HELPURL:"https://microbit-micropython.readthedocs.io/en/latest/music.html#music.set_tempo",MICROBIT_MUSIC_SET_TEMPO_SPEED_MESSAGE0:"set the playback speed to %1 times",MICROBIT_MUSIC_SET_TEMPO_SPEED_TOOLTIP:"The 4th note is 1 beat, and the number of beats per minute is 120 by default, which is 1 times the playback speed.",MICROBIT_MUSIC_SET_TEMPO_SPEED_HELPURL:"https://microbit-micropython.readthedocs.io/en/latest/music.html#music.set_tempo",MICROBIT_MUSIC_GET_TEMPO_MESSAGE0:"current beats",MICROBIT_MUSIC_GET_TEMPO_TOOLTIP:"Get current beats: Taps per beat, beats per minute (BPM).",MICROBIT_MUSIC_GET_TEMPO_HELPURL:"https://microbit-micropython.readthedocs.io/en/latest/music.html#music.get_tempo",MPYTHON_BLUEBIT_HUM_TEM_HELPURL:"",MPYTHON_BLUEBIT_HUM_TEM_TOOLTIP:"",MPYTHON_BLUEBIT_HUM_TEM_MESSAGE0:"I2C %1",MPYTHON_BLUEBIT_TEMPERATURE:"temperature",MPYTHON_BLUEBIT_HUMIDITY:"humidity",MPYTHON_UART_INIT_HELPURL:"",MPYTHON_UART_INIT_MESSAGE0:"initialize serial port %4 as baudrate %1 tx %2 rx %3",MPYTHON_UART_INIT_TOOLTIP:"mPython board supports 3 sets of serial ports. 0 for repl, remaining 1, 2 sets of serial ports available. All pins can be used as the input of serial port rx, except P2, p3, p4, p10 can only be used as input, and all the other pins can be used as output tx. in theory.",MPYTHON_UART_DEINIT_HELPURL:"",MPYTHON_UART_DEINIT_MESSAGE0:"close serial port %1",MPYTHON_UART_DEINIT_TOOLTIP:"Turn off the UART bus",MPYTHON_UART_WRITE_STR_HELPURL:"",MPYTHON_UART_WRITE_STR_MESSAGE0:"serial port %1 write string %2 %3",MPYTHON_UART_WRITE_STR_TOOLTIP:"Write a text to the bus. \nReturn value: The number of bytes to write or None to time out.",MPYTHON_UART_WRITE_HEX_HELPURL:"",MPYTHON_UART_WRITE_HEX_MESSAGE0:"serial port %1 write hex string %2 %3",MPYTHON_UART_WRITE_HEX_TOOLTIP:"",MPYTHON_UART_HAS_DATA_HELPURL:"",MPYTHON_UART_HAS_DATA_MESSAGE0:"serial port %1 has readable data",MPYTHON_UART_HAS_DATA_TOOLTIP:"Returns an integer that counts the number of characters that can be read without blocking. \n If there are no characters available, it will return 0, if there are characters, it will return a positive number. \n This method can return 1 even if there are multiple readable characters.",MPYTHON_UART_READLINE_HELPURL:"",MPYTHON_UART_READLINE_MESSAGE0:"serial port %1 read a line of data",MPYTHON_UART_READLINE_TOOLTIP:"Read a line and end with a newline character.\nReturn value: Read row or None timeout.",MPYTHON_UART_READ_HELPURL:"",MPYTHON_UART_READ_MESSAGE0:"serial port %1 read data",MPYTHON_UART_READ_TOOLTIP:"Read as much serial data as possible.\n Return value: A list of bytes containing the bytes read. Returns None if the read times out.",MPYTHON_UART_READ_LENGTH_HELPURL:"",MPYTHON_UART_READ_LENGTH_MESSAGE0:"serial port %1 read data with length as %2",MPYTHON_UART_READ_LENGTH_TOOLTIP:"Read the specified length bytes data.\n Return value: A list of bytes containing the bytes read. Returns None if the read times out.",MPYTHON_UART_WRITE_BYTE_HELPURL:"",MPYTHON_UART_WRITE_BYTE_MESSAGE0:"serial port %1 write a byte %2",MPYTHON_UART_WRITE_BYTE_TOOLTIP:"The parameter is a integer as 0~255\nWrite a byte to the bus. \nReturn value: The number of bytes to write or None to time out.",MPYTHON_UART_WRITE_BYTES_HELPURL:"",MPYTHON_UART_WRITE_BYTES_MESSAGE0:"serial port %1 write bytes %2",MPYTHON_UART_WRITE_BYTES_TOOLTIP:"Write some bytes to the bus. \nReturn value: The number of bytes to write or None to time out.",TEXT_FORMAT_MESSAGE0:"format string %1 % %2",TEXT_FORMAT_TOOLTIP:"",TEXT_FORMAT_HELPURL:"",TEXT_FORMAT2_MESSAGE0:"format string %1 with %2",TEXT_FORMAT2_TOOLTIP:"",TEXT_FORMAT2_HELPURL:"",MPYTHON_BAUDRATE_HELPURL:"",MPYTHON_BAUDRATE_MESSAGE0:"%1",MPYTHON_BAUDRATE_TOOLTIP:"",MPYTHON_HIGH_LOW_HELPURL:"",MPYTHON_HIGH_LOW_MESSAGE0:"%1",MPYTHON_HIGH_LOW_TOOLTIP:"",MPYTHON_TEN_CONVERT_TO_HELPURL:"",MPYTHON_TEN_CONVERT_TO_MESSAGE0:"decimal int num %1 converted to %2 string",MPYTHON_TEN_CONVERT_TO_TOOLTIP:"",MPYTHON_BIN:"BIN",MPYTHON_OCT:"OCT",MPYTHON_HEX:"HEX",MPYTHON_CONVERT_TO_TEN_HELPURL:"",MPYTHON_CONVERT_TO_TEN_MESSAGE0:"%1 string %2 converted to decimal int num",MPYTHON_CONVERT_TO_TEN_TOOLTIP:"",MPYTHON_TEN_CONVERTED_TO_BYTES_HELPURL:"",MPYTHON_TEN_CONVERTED_TO_BYTES_MESSAGE0:"decimal int num %2 converted to %1 bytes",MPYTHON_TEN_CONVERTED_TO_BYTES_TOOLTIP:"",MPYTHON_INT_TO_CHR_HELPURL:"",MPYTHON_INT_TO_CHR_MESSAGE0:"shaping number %1 converted to character in ASCII",MPYTHON_INT_TO_CHR_TOOLTIP:"ASCII is a computer coding system based on the Latin alphabet, mainly used to display modern English and other Western European languages",MPYTHON_STR_TO_HEX_HELPURL:"",MPYTHON_STR_TO_HEX_MESSAGE0:"string %1 converted to hex bytes",MPYTHON_STR_TO_HEX_TOOLTIP:"Returns two hexadecimal numbers separated by spaces in the result",MPYTHON_CHR_TO_INT_HELPURL:"",MPYTHON_CHR_TO_INT_MESSAGE0:"character in ASCII %1 converted to shaping number",MPYTHON_CHR_TO_INT_TOOLTIP:"ASCII is a computer coding system based on the Latin alphabet, mainly used to display modern English and other Western European languages",MPYTHON_HEX_TO_BIN_STR_HELPURL:"",MPYTHON_HEX_TO_BIN_STR_MESSAGE0:"hex string %1 converted to bin bytes",MPYTHON_HEX_TO_BIN_STR_TOOLTIP:"",MPYTHON_DATA_TO_BASE64_HELPURL:"",MPYTHON_DATA_TO_BASE64_MESSAGE0:"encoding data %1 in base64 and return byte object",MPYTHON_DATA_TO_BASE64_TOOLTIP:"Base64 encoding is a process from binary to character",MPYTHON_BASE64_TO_DATA_HELPURL:"",MPYTHON_BASE64_TO_DATA_MESSAGE0:"decoding base64 data %1 and return byte object",MPYTHON_BASE64_TO_DATA_TOOLTIP:"Base64 encoding is a process from binary to character",MPYTHON_UJSON_DUMPS_HELPURL:"",MPYTHON_UJSON_DUMPS_MESSAGE0:"%1 converted to json string",MPYTHON_UJSON_DUMPS_TOOLTIP:"Key in json format must be a string, and value can be a legitimate json data type (string, number, object, array, Boolean, or none",MPYTHON_UJSON_LOADS_HELPURL:"",MPYTHON_UJSON_LOADS_MESSAGE0:"parse json string %1 and return the object",MPYTHON_UJSON_LOADS_TOOLTIP:"Key in json format must be a string, and value can be a legitimate json data type (string, number, object, array, Boolean, or none",MPYTHON_SETS_PIN_MODE_HELPURL:"https://mpython.readthedocs.io/zh/master/board/hardware.html#mpythonpindesc",MPYTHON_SETS_PIN_MODE_TOOLTIP:"Right-click help to view the pin declaration",MPYTHON_SETS_PIN_MODE_MESSAGE0:"set pin %1 as %2 mode %3 and set the value to %4",MPYTHON_SET_PIN_IN:"input",MPYTHON_SET_PIN_PUSH_PULL_OUT:"Push-pull output",MPYTHON_SET_PIN_LEAKY_OUT:"Leaky output",MPYTHON_SET_PIN_NO_PULL:"no pull",MPYTHON_SET_PIN_DOWN_PULL:"pull down",MPYTHON_SET_PIN_UP_PULL:"pull up",MPYTHON_LOCK_OBJECT_ACQUIRE_LOCK_HELPURL:"",MPYTHON_LOCK_OBJECT_ACQUIRE_LOCK_MESSAGE0:"thread lock object %1 requests lock",MPYTHON_LOCK_OBJECT_ACQUIRE_LOCK_TOOLTIP:"",MPYTHON_START_NEW_THREAD_HELPURL:"",MPYTHON_START_NEW_THREAD_MESSAGE0:"thread %1",MPYTHON_START_NEW_THREAD_TOOLTIP:"",MPYTHON_BLYNK_TERMINAL_WIDGET_VPIN_HELPURL:"",MPYTHON_BLYNK_TERMINAL_WIDGET_VPIN_MESSAGE0:"custom terminal widget on virtual pin V %1",MPYTHON_BLYNK_TERMINAL_WIDGET_VPIN_TOOLTIP:"",MPYTHON_BLYNK_SYNC_VIRTUAL_HELPURL:"",MPYTHON_BLYNK_SYNC_VIRTUAL_MESSAGE0:"synchronizing the status of virtual pin V %1",MPYTHON_BLYNK_SYNC_VIRTUAL_TOOLTIP:"",MPYTHON_BLYNK_ON_DISCONNECTED_HELPURL:"",MPYTHON_BLYNK_ON_DISCONNECTED_MESSAGE0:"when Blynk disconnected",MPYTHON_BLYNK_ON_DISCONNECTED_TOOLTIP:"",MPYTHON_BLYNK_ON_CONNECTED_HELPURL:"",MPYTHON_BLYNK_ON_CONNECTED_MESSAGE0:"when Blynk connected",MPYTHON_BLYNK_ON_CONNECTED_TOOLTIP:"",MPYTHON_BLYNKTIMER_RUN_HELPURL:"",MPYTHON_BLYNKTIMER_RUN_MESSAGE0:"run the BlynkTimer processes",MPYTHON_BLYNKTIMER_RUN_TOOLTIP:"It is recommended to put this block in 'repeat forever' block",MPYTHON_BLYNK_RUN_HELPURL:"",MPYTHON_BLYNK_RUN_MESSAGE0:"run the Blynk processes",MPYTHON_BLYNK_RUN_TOOLTIP:"It is recommended to put this block in 'repeat forever' block",MPYTHON_BLYNK_APP_NOTIFY_HELPURL:"",MPYTHON_BLYNK_APP_NOTIFY_MESSAGE0:"Blynk APP notifies %1",MPYTHON_BLYNK_APP_NOTIFY_TOOLTIP:"",MPYTHON_BLYNKTIMER_HELPURL:"",MPYTHON_BLYNKTIMER_MESSAGE0:"BlynkTimer number %1 mode %2 period %3 seconds",MPYTHON_BLYNKTIMER_TOOLTIP:'Note:\nthe serial number of the timer is automatically obtained, from top to bottom, starting from 0 and continuous, don`t do this"timer 0, timer 2", the exposed serial number parameter is convenient to view here!\nParameter:\nno_timers_err=False - disable exception raise if all all timers were stopped',MPYTHON_BLYNK_STOP_TIMERS_HELPURL:"",MPYTHON_BLYNK_STOP_TIMERS_MESSAGE0:"stop Blynk timer %1",MPYTHON_BLYNK_STOP_TIMERS_TOOLTIP:'Note:\nthe serial number of the timer is automatically obtained, from top to bottom, starting from 0 and continuous, don`t do this"timer 0, timer 2", the exposed serial number parameter is convenient to view here!\nParameter:\nno_timers_err=False - disable exception raise if all all timers were stopped',MPYTHON_UART_INPUT_HELPURL:"",MPYTHON_UART_INPUT_MESSAGE0:"get input text from serial port, title %1",MPYTHON_UART_INPUT_TOOLTIP:"",MPYTHON_BLYNK_SET_PROPERTY_HELPURL:"",MPYTHON_BLYNK_SET_PROPERTY_MESSAGE0:"set property %1 and value %2 to virtual pin",MPYTHON_BLYNK_SET_PROPERTY_TOOLTIP:"Placed in a read or write event, the virtual pin is determined by the event,the component bound to the pin will have the added property",MPYTHON_BLYNK_EMAIL_HELPURL:"",MPYTHON_BLYNK_EMAIL_MESSAGE0:"email to pre-set email address with %1 subject %2 body %3",MPYTHON_BLYNK_EMAIL_TOOLTIP:"",MPYTHON_BLYNK_GET_TIMERS_HELPURL:"",MPYTHON_BLYNK_GET_TIMERS_MESSAGE0:"available Blynk timers",MPYTHON_BLYNK_GET_TIMERS_TOOLTIP:"",MPYTHON_BLYNK_SENSOR_DATA_TO_APP_HELPURL:"",MPYTHON_BLYNK_SENSOR_DATA_TO_APP_MESSAGE0:"send data %1 to Blynk APP's virtual pin V %2",MPYTHON_BLYNK_SENSOR_DATA_TO_APP_TOOLTIP:"virtual pin: V0 ~ V255",MPYTHON_BLYNK_APP_DATA_HELPURL:"",MPYTHON_BLYNK_APP_DATA_MESSAGE0:"when received value %2 of virtual pin V %1 from Blynk",MPYTHON_BLYNK_APP_DATA_TOOLTIP:"Virtual pin: V0 ~ V255",MPYTHON_BLYNK_RECEIVED_MESSAGE0:"when received value of virtual pin V %1 from Blynk",MPYTHON_BLYNK_VALUE_MESSAGE0:"value from Blynk",MPYTHON_BLYNK_VALUE_TOOLTIP:"",MPYTHON_BLYNK_VALUE_HELPURL:"",MPYTHON_BLYNK_SETUP_HELPURL:"",MPYTHON_BLYNK_SETUP_MESSAGE0:"Blynk Settings %1 server %2 port %3 authorization code %4",MPYTHON_BLYNK_SETUP_TOOLTIP:'The server can be set to "blynk-cloud.com" or "blynk.mpython.cn"\n The default port is 8080\n Note: The mobile APP access port is 9443.',INT_TO_CHR_HELPURL:"",INT_TO_CHR_MESSAGE0:"int %1 to ASCII single character",INT_TO_CHR_TOOLTIP:"",a123_HELPURL:"",a123_MESSAGE0:"新 %1",a123_TOOLTIP:"",MPYTHON_ONENET_DISCONNECT_MESSAGE0:"disconnect from OneNET",MPYTHON_ONENET_DISCONNECT_TOOLTIP:"",MPYTHON_ONENET_DISCONNECT_HELPURL:"",MPYTHON_ONENET_MSG_MESSAGE0:"message from OneNET",MPYTHON_ONENET_MSG_TOOLTIP:"",MPYTHON_ONENET_MSG_HELPURL:"",MPYTHON_ONENET_RECV_MESSAGE0:"when received message %1 from OneNET",MPYTHON3_ONENET_RECV_MESSAGE0:"when received message from OneNET",MPYTHON_ONENET_RECV_TOOLTIP:"",MPYTHON_ONENET_RECV_HELPURL:"",MPYTHON_ONENET_RECV_MSG_MESSAGE0:"when received specific message %1 from OneNET",MPYTHON_ONENET_RECV_MSG_TOOLTIP:"",MPYTHON_ONENET_RECV_MSG_HELPURL:"",MPYTHON_ONENET_PUB_VALUE_MESSAGE0:"publish data to OneNET, name %1 value %2",MPYTHON_ONENET_PUB_VALUE_TOOLTIP:"",MPYTHON_ONENET_PUB_VALUE_HELPURL:"",MPYTHON_ONENET_PUB_DICT_MESSAGE0:"publish data to OneNET %1",MPYTHON_ONENET_PUB_DICT_TOOLTIP:"",MPYTHON_ONENET_PUB_DICT_HELPURL:"",MPYTHON_HCSR04_DISTANCE_HELPURL:"https://mpython-lib.readthedocs.io/zh/master/hcsr04/index.html#hcsr04",MPYTHON_HCSR04_DISTANCE_MESSAGE0:"%1 hcsr04 untrasonic distance, unit %2",MPYTHON_HCSR04_DISTANCE_TOOLTIP:"",MPYTHON_HCSR04_DISTANCE_MM_HELPURL:"https://mpython-lib.readthedocs.io/zh/master/hcsr04/index.html#hcsr04",MPYTHON_HCSR04_DISTANCE_MM_MESSAGE0:"%1 hcsr04 untrasonic(mm)",MPYTHON_HCSR04_DISTANCE_MM_TOOLTIP:"",MPYTHON_HCSR04_OBJ_HELPURL:"https://mpython-lib.readthedocs.io/zh/master/hcsr04/index.html#hcsr04",MPYTHON_HCSR04_OBJ_MESSAGE0:"Hcsr04 ultrasonic initialize name %1 trigger %2 echo %3",MPYTHON_HCSR04_OBJ_TOOLTIP:"",MPYTHON_PM2_5_LitresAir_HELPURL:"",MPYTHON_PM2_5_LitresAir_MESSAGE0:"RX pin %1 Number of particles with diameter of %2 in 0.1 liter air",MPYTHON_PM2_5_LitresAir_TOOLTIP:"",MPYTHON_PM2_5_MIC_HELPURL:"",MPYTHON_PM2_5_MIC_MESSAGE0:"RX pin %1 PM value concentration %2",MPYTHON_PM2_5_MIC_TOOLTIP:"",MPYTHON3_IR_REMOTE_RECV_MESSAGE0:"when infrared receiver %1 received message %2 do %3",MPYTHON_IR_REMOTE_ADDRESS_MESSAGE0:"callback address",MPYTHON_IR_REMOTE_MESSAGE_MESSAGE0:"received message",MPYTHON_IR_REMOTE_RECV_MESSAGE0:"infrared receive %1 callback address %2 callback command %3",MPYTHON_IR_REMOTE_RECV_HELPURL:"",MPYTHON_IR_REMOTE_RECV_TOOLTIP:"",MPYTHON_IR_REMOTE_SEND_MESSAGE0:"infrared send %1 address %2 command %3",MPYTHON_IR_REMOTE_SEND_HELPURL:"",MPYTHON_IR_REMOTE_SEND_TOOLTIP:"",MPYTHON_ONENET_PUB_VALUE2_MESSAGE0:"publish data to Wechat app, name %1 value %2",MPYTHON_ONENET_PUB_VALUE2_TOOLTIP:"",MPYTHON_ONENET_PUB_VALUE2_HELPURL:"",MPYTHON_ONENET_ACCEPT_MESSAGE:"If received message",MPYTHON_ONENET:"OneNET settings",MPYTHON_ONENET_WECHAT_APP:"Wechat app settings",MPYTHON_ONENET_OPTION_BOARDS:"optional mPython boards",MPYTHON_ONENET_TITLE:"OneNET",MPYTHON_SERVER:"server",MPYTHON_DEVICE_ID:"device_id",MPYTHON_PRODUCT_ID:"product_id",MPYTHON_API_KEY:"product_APIKey",MPYTHON_TOPIC:"topic",MPYTHON_ONENET_CALLBACK:"Callback function",MPYTHON_ONENET_CALLBACK_TITLE:"OneNET callback",MPYTHON_ONENET_OPTION_BOARDS_HELPURL:"",MPYTHON_ONENET_OPTION_BOARDS_MESSAGE0:"choose mPython App %1 in WeChat App",MPYTHON_ONENET_OPTION_BOARDS_TOOLTIP:"",TEXT_TO_BYTE_MESSAGE0:"convert %1 to bytes",TEXT_TO_BYTE_TOOLTIP:"Supported data type as string",TEXT_TO_BYTE_HELPURL:"",OTHER_TO_BYTE_MESSAGE0:"convert Non-text %1 to bytes",OTHER_TO_BYTE_TOOLTIP:"",OTHER_TO_BYTE_HELPURL:"",MPYTHON_BYTES_DECODE_HELPURL:"",MPYTHON_BYTES_DECODE_MESSAGE0:"convert bytes %1 to string",MPYTHON_BYTES_DECODE_TOOLTIP:"",MPYTHON_ONENET_TOOLTIP:"Create a OneNET connection",MPYTHON_ONENET_INIT_WIFI_MESSAGE0:"IoT make sure to connect to Wi-Fi with SSID %1 & Password %2",MPYTHON_ONENET_INIT_WIFI_TOOLTIP:"Let the board access the Wi-Fi environment",MPYTHON_ONENET_INIT_WIFI_HELPURL:"",MPYTHON_ONENET_RECV_FROM_WECHAT_APP_HELPURL:"",MPYTHON_ONENET_RECV_FROM_WECHAT_APP_MESSAGE0:"when receives %1 and %2 from WeChat App",MPYTHON_ONENET_RECV_FROM_WECHAT_APP_TOOLTIP:"",MPYTHON_MAC_ADDRESS_HELPURL:"",MPYTHON_MAC_ADDRESS_MESSAGE0:"MAC Address",MPYTHON_MAC_ADDRESS_TOOLTIP:"",MPYTHON_RADIO_REC_HELPURL:"",MPYTHON_RADIO_REC_MESSAGE0:"radio received",MPYTHON_RADIO_REC_TOOLTIP:"received data is bytes",MPYTHON_RADIO_SEND_HELPURL:"",MPYTHON_RADIO_SEND_MESSAGE0:"radio sends %1",MPYTHON_RADIO_SEND_TOOLTIP:"channel: 1~13",MPYTHON_RADIO_CHANNEL_HELPURL:"",MPYTHON_RADIO_CHANNEL_MESSAGE0:"set radio channel %1",MPYTHON_RADIO_CHANNEL_TOOLTIP:"channel: 1~13",MPYTHON_RADIO_ON_OFF_HELPURL:"",MPYTHON_RADIO_ON_OFF_MESSAGE0:"%1 radio",MPYTHON_RADIO_ON_OFF_TOOLTIP:"channel: 1~13",MPYTHON_RADIO_MSG_MESSAGE0:"message from Radio",MPYTHON_RADIO_MSG_TOOLTIP:"",MPYTHON_RADIO_MSG_HELPURL:"",MPYTHON3_RADIO_RECV_MESSAGE0:"when receiving broadcast message from Radio %1 do %2",MPYTHON_RADIO_RECV_MESSAGE0:"when receiving broadcast message %1 from Radio",MPYTHON_RADIO_RECV_TOOLTIP:"channel: 1~13",MPYTHON_RADIO_RECV_HELPURL:"",MPYTHON_RADIO_RECV_MSG_MESSAGE0:"when receiving specific broadcast message %1 from Radio %2 do %3",MPYTHON_RADIO_RECV_MSG_TOOLTIP:"channel: 1~13",MPYTHON_RADIO_RECV_MSG_HELPURL:"",MPYTHON_UDP_INIT_HELPURL:"",MPYTHON_UDP_INIT_MESSAGE0:"connect to UDP",MPYTHON_UDP_INIT_TOOLTIP:"base on Wi-Fi",MPYTHON_UDP_SEND_HELPURL:"",MPYTHON_UDP_SEND_MESSAGE0:"UDP send message %1 to all",MPYTHON_UDP_SEND_TOOLTIP:"",MPYTHON_UDP_SENDTO_HELPURL:"",MPYTHON_UDP_SENDTO_MESSAGE0:"UDP send message %1 to %2 port %3",MPYTHON_UDP_SENDTO_TOOLTIP:"",MPYTHON_UDP_RECV_HELPURL:"",MPYTHON_UDP_RECV_MESSAGE0:"UDP receive message",MPYTHON_UDP_RECV_TOOLTIP:"",MPYTHON_UDP_RECV_EVENT_HELPURL:"",MPYTHON_UDP_RECV_EVENT_MESSAGE0:"when received message from UDP %1 do %2",MPYTHON_UDP_RECV_EVENT_TOOLTIP:"",MPYTHON_UDP_RECV_MSG_MESSAGE0:"message from UDP",MPYTHON_UDP_RECV_MSG_TOOLTIP:"",MPYTHON_UDP_RECV_MSG_HELPURL:"",MPYTHON_DISPCHAR_MODE_1:"normal",MPYTHON_DISPCHAR_MODE_2:"rev",MPYTHON_DISPCHAR_MODE_3:"trans",MPYTHON_AUDIO_XUNFEI_TTS_HELPURL:"",MPYTHON_AUDIO_XUNFEI_TTS_MESSAGE0:"TTS play text %1",MPYTHON_AUDIO_XUNFEI_TTS_TOOLTIP:'The "Online Speech Synthesis" service needs to be enabled on the "Xunfei Open Platform" www.xfyun.cn',MPYTHON_AUDIO_XUNFEI_TTS_CONFIG_HELPURL:"https://mpython.readthedocs.io/zh/master/extboard/tutorials/tutorials_parrot.html#id3",MPYTHON_AUDIO_XUNFEI_TTS_CONFIG_MESSAGE0:"TTS config APPID %1 APIKey %2",MPYTHON_AUDIO_XUNFEI_TTS_CONFIG_TOOLTIP:'Enter the APPID and APIKey obtained on the "Xunfei Open Platform" www.xfyun.cn\nNote: To set the IP whitelist',MPYTHON_AUDIO_PLAY_HELPURL:"https://mpython.readthedocs.io/zh/master/library/mPython/audio.html#id1",MPYTHON_AUDIO_PLAY_MESSAGE0:"Audio play %1",MPYTHON_AUDIO_PLAY_TOOLTIP:"Need active speakers\nP8 left channel\nP9 right channel\nGND ground\nparameter: \n the url of the network mp3, or the mp3 that has been uploaded to the mPython board, e.g 'music_1.mp3'",MPYTHON_AUDIO_PLAY_CHOOSE_HELPURL:"https://mpython.readthedocs.io/zh/master/library/mPython/audio.html#id1",MPYTHON_AUDIO_PLAY_CHOOSE_MESSAGE0:"Audio play %1",MPYTHON_AUDIO_PLAY_CHOOSE_TOOLTIP:"Need active speakers\nP8 left channel\nP9 right channel\nGND ground\nparameter: \n the url of the network mp3, or the mp3 that has been uploaded to the mPython board, e.g 'music_1.mp3'",MPYTHON_AUDIO_DEINIT_HELPURL:"",MPYTHON_AUDIO_DEINIT_MESSAGE0:"deinit Audio",MPYTHON_AUDIO_DEINIT_TOOLTIP:"Create a cache for controlling the audio decoding",MPYTHON_AUDIO_CMD_HELPURL:"",MPYTHON_AUDIO_CMD_MESSAGE0:"Audio %1",MPYTHON_AUDIO_CMD_TOOLTIP:"",MPYTHON_AUDIO_INIT_HELPURL:"",MPYTHON_AUDIO_INIT_MESSAGE0:"initialize Audio",MPYTHON_AUDIO_INIT_TOOLTIP:"Create a cache for controlling the audio decoding",MPYTHON_AUDIO_START_RECORDING_HELPURL:"",MPYTHON_AUDIO_START_RECORDING_MESSAGE0:"Start the recording The recording time %1 seconds",MPYTHON_AUDIO_START_RECORDING_TOOLTIP:"Need mPython board v1.1 or above hardware version.The recording should not be longer than 5 seconds",MPYTHON_AUDIO_RECORDING_RESULT_HELPURL:"",MPYTHON_AUDIO_RECORDING_RESULT_MESSAGE0:"Recording the results",MPYTHON_AUDIO_RECORDING_RESULT_TOOLTIP:"Need mPython board v1.1 or above hardware version.",MPYTHON_AUDIO_DISCERN_RECORDING_HELPURL:"",MPYTHON_AUDIO_DISCERN_RECORDING_MESSAGE0:"For %1 Discern",MPYTHON_AUDIO_DISCERN_RECORDING_TOOLTIP:"Need mPython board v1.1 or above hardware version.",MPYTHON_AUDIO_DISCERN_RECORDING_RESULT_HELPURL:"",MPYTHON_AUDIO_DISCERN_RECORDING_RESULT_MESSAGE0:"Discern Recording the results",MPYTHON_AUDIO_DISCERN_RECORDING_RESULT_TOOLTIP:"Need mPython board v1.1 or above hardware version.",MPYTHON_RECORD_INIT_HELPURL:"",MPYTHON_RECORD_INIT_MESSAGE0:"initialize Recording",MPYTHON_RECORD_INIT_TOOLTIP:"Recording initialization.\nNeed mPython board v1.1 or above hardware version.",MPYTHON_RECORD_DEINIT_HELPURL:"",MPYTHON_RECORD_DEINIT_MESSAGE0:"Trelease cache of Recording",MPYTHON_RECORD_DEINIT_TOOLTIP:"Release the cache after the recording ends.\nNeed mPython board v1.1 or above hardware version.",MPYTHON_RECORD_WAV_HELPURL:"",MPYTHON_RECORD_WAV_MESSAGE0:"record audio with storage path %1 and duration %2 second(s)",MPYTHON_RECORD_WAV_TOOLTIP:"Record audio and store it in *.wav format.\nNeed mPython board v1.1 or above hardware version.",MPYTHON_ASR_HELPURL:"",MPYTHON_ASR_MESSAGE0:"get voice command within %1 seconds",MPYTHON_ASR_TOOLTIP:"Can recognize voice command within 3 seconds.\nNeed mPython board v1.1 or above hardware version.",mpython_HELPURL:"https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",mpython_button_A:"P5 (button A)",mpython_button_B:"P11 (button B)",mpython_PIN7_RGB:"P7 (Onboard RGB)",MPYTHON_PWM_PIN_P7:"P7 (mPython board)",MPYTHON_PWM_PIN_P9:"P9 (mPython box)",mpython_tem:"temperature",mpython_hum:"humidity",mpython_pre:"air pressure",mpython_left_right:"left-right",mpython_front_back:"front-back",mpython_vertical:("vertical","vertical"),mpython_horizontal:("horizontal","horizontal"),mpython_run_in_back:"background",mpython_run_in_front:"foreground",mpython_draw:"draw",mpython_clear:"clear",mpython_s:"second",mpython_ms:"millisecond",mpython_us:"microsecond",mpython_year:"year",mpython_month:"month",mpython_date:"day",mpython_hour:"hour",mpython_minute:"minute",mpython_week:"week number",mpython_days:"days number",MPYTHON_ORDER:"#",MPYTHON_REVERSE_ORDER:"countdown #",MATH_RANDOM_RANDRANGE_HELPURL:"https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",MATH_RANDOM_RANDRANGE_TOOLTIP:"Returns a random number in the specified incremental cardinality set, the base value defaults to 1",MATH_RANDOM_RANDRANGE_MESSAGE0:"random number increments from increment interval [%1 , %2) by step %3",MATH_KEEP_DECIMAL_HELPURL:"",MATH_KEEP_DECIMAL_TOOLTIP:"",MATH_KEEP_DECIMAL_MESSAGE0:"%1 keep %2 decimal places",MPYTHON_MIN:"min value",MPYTHON_MAX:"max value",MPYTHON_LENTH:"length",TUPLE_MIN_MAX_LEN_HELPURL:"https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",TUPLE_MIN_MAX_LEN_TOOLTIP:"",TUPLE_MIN_MAX_LEN_MESSAGE0:"tuple %1 %2",TUPLE_ITEM_EXIST_HELPURL:"https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",TUPLE_ITEM_EXIST_TOOLTIP:"",TUPLE_ITEM_EXIST_MESSAGE0:"tuple %1 include %2",LIST_ITEM_EXIST_HELPURL:"https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",LIST_ITEM_EXIST_TOOLTIP:"",LIST_ITEM_EXIST_MESSAGE0:"list %1 include %2",PARTS_OF_TUPLE_HELPURL:"https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",PARTS_OF_TUPLE_TOOLTIP:"The sequence count starts from 0, and the reverse count starts from 1.",PARTS_OF_TUPLE_MESSAGE0:"return tuple %1 from the %2 to the last item",PARTS_OF_TUPLE2_HELPURL:"https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",PARTS_OF_TUPLE2_TOOLTIP:"Incremental order fetching \n Example: \n reciprocal number 5 to reciprocal number 2; \n 0th to 5th",PARTS_OF_TUPLE2_MESSAGE0:"return tuple %1 takes %2 %3 items to %4 %5 items",PARTS_OF_LIST_HELPURL:"https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",PARTS_OF_LIST_TOOLTIP:"Incremental order fetching \n Example: \n reciprocal number 5 to reciprocal number 2; \n 0th to 5th",PARTS_OF_LIST_MESSAGE0:"return list %1 takes %2 %3 items to %4 %5 items",LIST_TO_TUPLE_HELPURL:"https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",LIST_TO_TUPLE_TOOLTIP:"",LIST_TO_TUPLE_MESSAGE0:"list %1 conversion to tuple",tuple_create_with_MESSAGE0:"define tuple %1 = %2 ",tuple_create_with_TOOLTIP:"When you only have one element, you need to add a comma after the element",tuple_create_with_HELPURL:"https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",tuple_order_item_MESSAGE0:"tuple %1 %2 %3 item",tuple_order_item_TOOLTIP:"The sequence count starts from 0, and the reverse count starts from 1.",tuple_order_item_HELPURL:"https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",LIST_ORDER_ITEM_MESSAGE0:"list %1 %2 %3 item",LIST_ORDER_ITEM_TOOLTIP:"The sequence count starts from 0, and the reverse count starts from 1.",LIST_ORDER_ITEM_HELPURL:"https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",SET_LIST_ORDER_ITEM_MESSAGE0:"set list %1 %2 %3 item as %4",SET_LIST_ORDER_ITEM_TOOLTIP:"The sequence count starts from 0, and the reverse count starts from 1.",SET_LIST_ORDER_ITEM_HELPURL:"https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",INSERT_LIST_ORDER_ITEM_MESSAGE0:"insert list %1 %2 %3 item as %4",INSERT_LIST_ORDER_ITEM_TOOLTIP:"The sequence count starts from 0, and the reverse count starts from 1.",INSERT_LIST_ORDER_ITEM_HELPURL:"https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",SET_TUPLE_ORDER_ITEM_MESSAGE0:"set tuple %1 %2 %3 item as %4",SET_TUPLE_ORDER_ITEM_TOOLTIP:"The sequence count starts from 0, and the reverse count starts from 1.",SET_TUPLE_ORDER_ITEM_HELPURL:"https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",DICT_CREATE_WITH_HELPURL:"https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",DICT_CREATE_WITH_TOOLTIP:"",DICT_CREATE_WITH_MESSAGE0:"define dictionary %1 = %2",SET_CREATE_WITH_HELPURL:"https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",SET_CREATE_WITH_TOOLTIP:"",SET_CREATE_WITH_MESSAGE0:"define set %1 = %2",SET_UPDATE_WITH_HELPURL:"https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",SET_UPDATE_WITH_TOOLTIP:"Add parameters as strings, lists, tuples, sets, dictionaries (add only key). For existing elements, do not do anything",SET_UPDATE_WITH_MESSAGE0:"update set %1 with %2",INTERSECTION_OF_SETS_HELPURL:"https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",INTERSECTION_OF_SETS_TOOLTIP:"",INTERSECTION_OF_SETS_MESSAGE0:"%1 of set %2 and set %3",MPYTHON_INTERSECTION:"intersection",MPYTHON_UNION:"union",MPYTHON_DIFFERENCE:"difference",SETS_UPDATE_WAYS_HELPURL:"https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",SETS_UPDATE_WAYS_TOOLTIP:"",SETS_UPDATE_WAYS_MESSAGE0:"update set %1 as the %3 with set %2",SUBSET_SUPERSET_HELPURL:"https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",SUBSET_SUPERSET_TOOLTIP:"",SUBSET_SUPERSET_MESSAGE0:"set %1 is %3 of set %2",MPYTHON_SUBSET:"subset",MPYTHON_SUPERSET:"superset",GET_SETS_POP_HELPURL:"https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",GET_SETS_POP_TOOLTIP:"",GET_SETS_POP_MESSAGE0:"return a random item from the set %1, and remove it",LEN_OF_SETS_HELPURL:"https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",LEN_OF_SETS_TOOLTIP:"",LEN_OF_SETS_MESSAGE0:"length of set %1",CREATE_EMPTY_SET_HELPURL:"https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",CREATE_EMPTY_SET_TOOLTIP:"",CREATE_EMPTY_SET_MESSAGE0:"create empty sets %1",BIT_INVERSION_HELPURL:"https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",BIT_INVERSION_TOOLTIP:"Reverse each binary bit of data",BIT_INVERSION_MESSAGE0:"invert each binary bit of the data %1",TUPLE_CREATE_WITH_ITEMS_INSERT_HELPURL:"https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",TUPLE_CREATE_WITH_ITEMS_INSERT_TOOLTIP:"The sequence count starts from 0, and the reverse count starts from 1.",SET_CREATE_WITH_ITEMS_INSERT_HELPURL:"https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",SET_CREATE_WITH_ITEMS_INSERT_TOOLTIP:"Items can be strings, assigned variables, tuples",DICT_CREATE_WITH_ITEMS_INSERT_HELPURL:"https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",DICT_CREATE_WITH_ITEMS_INSERT_TOOLTIP:"",DICT_KEY_VALUE_HELPURL:"https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",DICT_KEY_VALUE_TOOLTIP:"",DICT_KEY_VALUE_MESSAGE0:"value of the key %2 in dictionary %1",ADD_DICT_KEY_VALUE_HELPURL:"https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",ADD_DICT_KEY_VALUE_TOOLTIP:"Update the key if the key already exists",ADD_DICT_KEY_VALUE_MESSAGE0:"add key %2 & value %3 to dictionary %1",DICT_LENGTH_HELPURL:"https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",DICT_LENGTH_TOOLTIP:"",DICT_LENGTH_MESSAGE0:"length of dictionary %1",DICT_KEY_EXIST_HELPURL:"https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",DICT_KEY_EXIST_TOOLTIP:"",DICT_KEY_EXIST_MESSAGE0:"dictionary %1 include key %2",DICT_KEY_OR_VAL_LIST_HELPURL:"https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",DICT_KEY_OR_VAL_LIST_TOOLTIP:"",DICT_KEY_OR_VAL_LIST_MESSAGE0:"list of %2 in dictionary %1",DICT_KEYS:"KEY",DICT_VALUES:"VALUE",mpython_lists_append_MESSAGE0:"add item %2 at the end of list %1",mpython_lists_append_TOOLTIP:"",mpython_lists_append_HELPURL:"https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",mpython_lists_extend_MESSAGE0:"list %1 append list %2",mpython_lists_extend_TOOLTIP:"",mpython_lists_extend_HELPURL:"https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",mpython_lists_clear_MESSAGE0:"clear list %1",mpython_lists_clear_TOOLTIP:"",mpython_lists_clear_HELPURL:"https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",MPYTHON_REMOVE_REPETITION_MESSAGE0:"list%1 remove repetition",MPYTHON_REMOVE_REPETITION_TOOLTIP:"",MPYTHON_REMOVE_REPETITION_HELPURL:"https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",mpython_Timer_value_MESSAGE0:"timer %1 count value",mpython_Timer_value_TOOLTIP:"Get and return the current count value of the timer",mpython_Timer_deinit_MESSAGE0:"clear timer / event %1",mpython_Timer_deinit_TOOLTIP:"Cancel the initialization of the timer. Stop timer and disable timer peripherals",mpython_Interrupt_AB_HELPURL:"https://mpython.readthedocs.io/zh/latest/tutorials/basics/buttons.html#id3",mpython_Interrupt_AB_TOOLTIP:"",mpython_Interrupt_AB_MESSAGE0:"when the button %1 is %2",mpython_Interrupt_pin_HELPURL:"https://mpython.readthedocs.io/zh/latest/tutorials/basics/io/digital_io.html#id3",mpython_Interrupt_pin_TOOLTIP:"Rising edge trigger: from low level to high level; falling edge trigger: from high level to low level",mpython_Interrupt_pin_MESSAGE0:"when pin %1 level is from %2",mpython_Interrupt_pin_IRQ_FALLING:"↘ high to low",mpython_Interrupt_pin_IRQ_RISING:"↗ low to high",mpython_IRQ_FALLING:"pressed",mpython_IRQ_RISING:"released",mpython_PERIODIC:"repeated mode",mpython_ONE_SHOT:"delayed mode",MPYTHON_IS_SHAKED_MESSAGE0:"the board %1",MPYTHON_IS_SHAKED_HELPURL:"",MPYTHON_IS_SHAKED_TOOLTIP:"",MPYTHON_IS_SHAKED:"was shaked",MPYTHON_IS_THROWN:"was thrown",MPYTHON_SHAKE_DETECTOR_MESSAGE0:"when the board %1",MPYTHON_SHAKE_DETECTOR_HELPURL:"",MPYTHON_SHAKE_DETECTOR_TOOLTIP:"",MPYTHON_IS_TILTED_MESSAGE0:"the board is %1",MPYTHON_IS_TILTED_HELPURL:"",MPYTHON_IS_TILTED_TOOLTIP:"",MPYTHON_TILT_DETECTOR_MESSAGE0:"when the board is %1",MPYTHON_TILT_DETECTOR_HELPURL:"",MPYTHON_TILT_DETECTOR_TOOLTIP:"",MPYTHON_DIRECTION_FORWARD:"tilt forward",MPYTHON_DIRECTION_BACK:"tilt back",MPYTHON_DIRECTION_RIGHT:"tilt right",MPYTHON_DIRECTION_LEFT:"tilt left",MPYTHON_DIRECTION_NONE:"flat",MPYTHON_TOUCH_EVENT_MESSAGE0:"when the touchpad %1 is %2",MPYTHON_TOUCH_EVENT_HELPURL:"",MPYTHON_TOUCH_EVENT_TOOLTIP:"",MPYTHON_TOUCH_EVENT_PRESSED:"pressed",MPYTHON_TOUCH_EVENT_UNPRESSED:"unpressed",MPYTHON_CUSTOM_EVENT_MESSAGE0:"event %1 : when %2",MPYTHON_CUSTOM_EVENT_HELPURL:"",MPYTHON_CUSTOM_EVENT_TOOLTIP:"Custom events use port 1/2/4/7/8/9/10, shared with Timers, cannot access one port at the same time.\nMax up to 4 events/timers at the same time.\nIf there is conflict, try changing the number.",mpython_music_HELPURL:"https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",mpython_music_range_pitch_TOOLTIP:"duration is the length of a single frequency",mpython_music_range_pitch_MESSAGE0:"play tone from %1 to %2 step %3 duration %4 ms Pin %5",mpython_neopixel_init_HELPURL:"https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",mpython_neopixel_init_TOOLTIP:"",mpython_neopixel_init_MESSAGE0:"initialize light strip with Name %1 Pin %2 Quantity %3",MPYTHON_NEOPIXEL_RAINBOW_HELPURL:"https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",MPYTHON_NEOPIXEL_RAINBOW_TOOLTIP:"",MPYTHON_NEOPIXEL_RAINBOW_MESSAGE0:"define rainbow effect of light strip with Name %1 Quantity %2 bright %3 offset %4",MPYTHON_NEOPIXEL_BRIGHTNESS_HELPURL:"https://mpython.readthedocs.io/zh/master/library/micropython/neopixel.html#NeoPixel.brightness",MPYTHON_NEOPIXEL_BRIGHTNESS_TOOLTIP:"Adjust the brightness range of 0 to 100",MPYTHON_NEOPIXEL_BRIGHTNESS_MESSAGE0:"light strip %1 set brightness as %2",mpython_neopixel_single_TOOLTIP:"",mpython_neopixel_single_MESSAGE0:"light strip %1 # %2 R %3 G %4 B %5",mpython_neopixel_single_gui_MESSAGE0:"light strip %1 # %2 color as %3",mpython_neopixel_single_gui_TOOLTIP:"",mpython_neopixel_show_TOOLTIP:"",mpython_neopixel_show_MESSAGE0:"light strip %1 setting take effect",mpython_neopixel_off_TOOLTIP:"",mpython_neopixel_off_MESSAGE0:"light strip %1 off",mpython_neopixel_all_TOOLTIP:"",mpython_neopixel_all_MESSAGE0:"light strip %1 full bright R %2 G %3 B %4",mpython_neopixel_all_gui_TOOLTIP:"",mpython_neopixel_all_gui_MESSAGE0:"light strip %1 full bright with color %2",mpython_time_localtime_MESSAGE0:"local time %1",mpython_time_localtime_TOOLTIP:"Week number: return 0 to 6, Monday is 0, Sunday is 6\nDays number: return the position of the day in the year\nIt is recommended to connect wifi and get network time first.",mpython_WiFi_config_MESSAGE0:"Wi-Fi configuration information %1",mpython_WiFi_config_TOOLTIP:"",mpython_time_ticks_HELPURL:"https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html",mpython_time_ticks_MESSAGE0:"run time %1",mpython_time_ticks_TOOLTIP:"",MPYTHON_TIMER_DEF_MESSAGE0:"define timer %1",MPYTHON_TIMER_INIT_MESSAGE0:"init timer %1 %2 , cycle %3 millisecond(s)",mpython_Timer_MESSAGE0:"set timer %1 %2 , cycle %3 millisecond(s)",mpython_Timer_TOOLTIP:"Create timer n, n=1-14.\nMax up to 4 timers at the same time.\nIf there is conflict, try changing the number.\n3 for internal program,\n5/6 for servo system and ADC,\n11 is used for shaked event,\n12 is used for touchpad event,\n13 is used for Radio or DHT11/DHT22 timing value,\n14 is used for OneNET or tilt detection,\nothers ports are shared with custom events.",mpython_Timer_HELPURL:"https://mpythonx.readthedocs.io/zh_CN/latest/blocks/index.html",mpython_init_bluetooth_MESSAGE0:"Initialize Bluetooth Name %1",mpython_init_bluetooth_TOOLTIP:"Initialize Bluetooth Name",mpython_OnOff_bluetooth_MESSAGE0:"Bluetooth device %1 broadcasting",mpython_OnOff_bluetooth_TOOLTIP:"Bluetooth devices turn on or off broadcasting",mpython_HID_consumer_bluetooth_MESSAGE0:"HID Consumption Equipment%1 Status%2",mpython_HID_consumer_bluetooth_TOOLTIP:"Controllers that simulate HID consumer devices, such as Bluetooth remote controls",mpython_HID_mouse_bluetooth_MESSAGE0:"HID Mouse button%1",mpython_HID_mouse_bluetooth_TOOLTIP:"HID Mouse button",mpython_HID_mouse_pointer_bluetooth_MESSAGE0:"Mouse pointer movement x%2 y%1",mpython_HID_mouse_pointer_bluetooth_TOOLTIP:"Relative Displacement of Mouse Pointer Coordinates X and Y,Range -1023 ~ 1023",mpython_HID_release_mouse_bluetooth_MESSAGE0:"Mouse Release Key",mpython_HID_release_mouse_bluetooth_TOOLTIP:"Mouse device",mpython_HID_keyboard_bluetooth_MESSAGE0:"HID Keyboard device keys%1",mpython_HID_keyboard_bluetooth_TOOLTIP:"HID keyboard equipment",mpython_HID_keyboard_group_bluetooth_MESSAGE0:"HID device keys%1 combination keys%2",mpython_HID_keyboard_group_bluetooth_TOOLTIP:'If you want to use multiple keystrokes to combine instructions, you can use "|" or arithmetic',mpython_HID_keyboard_part_bluetooth_MESSAGE0:"HID Device combination key%1",mpython_HID_keyboard_part_bluetooth_TOOLTIP:'If you want to use multiple key combinations of instructions, you can use "|" or operation',mpython_HID_release_keyboard_bluetooth_MESSAGE0:"Keyboard Release Key",mpython_HID_release_keyboard_bluetooth_TOOLTIP:"Keyboard equipment",mpython_init_wifi_MESSAGE0:"connect to Wi-Fi with SSID %1 & Password %2",mpython_init_wifi_TOOLTIP:"Let the board access the Wi-Fi environment",MPYTHON_WIFI_IFCONFIG_MESSAGE0:"Wi-Fi set static IP %1 IP address %2 netmask %3 gateway %4 DNS %5",MPYTHON_WIFI_IFCONFIG_TOOLTIP:"",MPYTHON_WIFI_IFCONFIG_HELPURL:"",mpython_dis_WiFi_MESSAGE0:"disconnect Wi-Fi connection",mpython_dis_WiFi_TOOLTIP:"",MPYTHON_ENABLE_APWIFI_HELPURL:"https://mpython.readthedocs.io/zh/master/tutorials/basics/network/network_basics.html#ap",MPYTHON_ENABLE_APWIFI_TOOLTIP:"The password can be empty or alphanumeric with more than 8 digits.\nAP mode is only used for communication between the control boards. It cannot be used as a hotspot to make other devices access the Internet.",MPYTHON_ENABLE_APWIFI_MESSAGE0:"open AP mode with SSID %1 & Password %2 Channel %3",mpython_disable_APWiFi_MESSAGE0:"close AP mode",mpython_disable_APWiFi_TOOLTIP:"",mpython_ntptime_settime_MESSAGE0:"synchronize network time, timezone %1 & timing server %2",mpython_ntptime_settime_TOOLTIP:"NTP time synchronization is a time synchronization network technology",mpython_wifi_get_date_MESSAGE0:"get the current date string",mpython_wifi_get_date_TOOLTIP:"",mpython_wifi_get_time_MESSAGE0:"get the current time string",mpython_wifi_get_time_TOOLTIP:"",mpython_ntptime_timezone_E1:"UTC+1",mpython_ntptime_timezone_E2:"UTC+2",mpython_ntptime_timezone_E3:"UTC+3",mpython_ntptime_timezone_E4:"UTC+4",mpython_ntptime_timezone_E5:"UTC+5",mpython_ntptime_timezone_E6:"UTC+6",mpython_ntptime_timezone_E7:"UTC+7",mpython_ntptime_timezone_E8:"UTC+8",mpython_ntptime_timezone_E9:"UTC+9",mpython_ntptime_timezone_E10:"UTC+10",mpython_ntptime_timezone_E11:"UTC+11",mpython_ntptime_timezone_E12:"UTC+12",mpython_ntptime_timezone_0:"UTC",mpython_ntptime_timezone_W1:"UTC-1",mpython_ntptime_timezone_W2:"UTC-2",mpython_ntptime_timezone_W3:"UTC-3",mpython_ntptime_timezone_W4:"UTC-4",mpython_ntptime_timezone_W5:"UTC-5",mpython_ntptime_timezone_W6:"UTC-6",mpython_ntptime_timezone_W7:"UTC-7",mpython_ntptime_timezone_W8:"UTC-8",mpython_ntptime_timezone_W9:"UTC-9",mpython_ntptime_timezone_W10:"UTC-10",mpython_ntptime_timezone_W11:"UTC-11",mpython_ntptime_timezone_W12:"UTC-12",FILE_TO_LIST_HELPURL:"",FILE_TO_LIST_TOOLTIP:"Read the text file content of the specified path (only in UTF-8 format) and converts it to a list format, separated by the selected separator.",FILE_TO_LIST_MESSAGE0:"convert the text file %1 to a list separated by %2",FILE_TO_BIN_HELPURL:"",FILE_TO_BIN_TOOLTIP:"Reads the contents of the file in the specified path in binary format.",FILE_TO_BIN_MESSAGE0:"read the binary content of file %1",MPYTHON_INIT_FILE_HELPURL:"",MPYTHON_INIT_FILE_TOOLTIP:"Initializes a text file, creates a file if it does not exist, and clears the content if it exists.",MPYTHON_INIT_FILE_MESSAGE0:"initialize text file %1",MPYTHON_WRITE_FILE_HELPURL:"",MPYTHON_WRITE_FILE_TOOLTIP:"Writes content to a text file of the specified path, and creates a file if the file does not exist.",MPYTHON_WRITE_FILE_MESSAGE0:"write content %2 to the text file %1 separated by %3",MPYTHON_SDCARD_INIT_HELPURL:"https://mpython.readthedocs.io/zh/master/library/mPython/sdcard.html#sdcard.SDCard",MPYTHON_SDCARD_INIT_TOOLTIP:"sck: P13\nmosi: P15\nmiso: P14\nsdcard: P16\nMake sure that the pins of the SPI bus are connected to the micro SD card which is formatted by using the FAT or FAT32 file system.",MPYTHON_SDCARD_INIT_MESSAGE0:"initialize SD card",MPYTHON_SDCARD_MOUNT_HELPURL:"https://mpython.readthedocs.io/zh/master/library/mPython/sdcard.html#sdcard.SDCard",MPYTHON_SDCARD_MOUNT_TOOLTIP:"Mount the SD card to the specified path.",MPYTHON_SDCARD_MOUNT_MESSAGE0:"mount SD card to path %1",MPYTHON_ENTER:"enter",MPYTHON_COMMA:"comma",MPYTHON_SEMICOLON:"semicolon",MPYTHON_SPACE:"space",mpython_def_clock_MESSAGE0:"initialize clock %1 x %2 y %3 radius %4",mpython_def_clock_TOOLTIP:"",mpython_settime_clock_MESSAGE0:"clock %1 read time",mpython_settime_clock_TOOLTIP:"",mpython_draw_clear_clock_MESSAGE0:"%1 clock %2",mpython_draw_clear_clock_TOOLTIP:"",mpython_tinywebio_start_MESSAGE0:"start TinyWebIO service, run in %1",mpython_tinywebio_start_TOOLTIP:"Wi-Fi is required to start the service, and the TinyWebIO service provides a remote control interface for the App Inventor application.",mpython_tinywebio_client_setup_HELPURL:"",mpython_tinywebio_client_setup_TOOLTIP:"Items send to the server (separated by comma)\nbuttona/b Button status\ntouchpadp/y/t/h/o/n Touch button value \nlight Light value\nsound Sound value\naccelerometer Triaxial acceleration value\nid the board identification \ntime timestamp \npind digital IO pin \npina analog IO pin\n----------\nItems read from the server (separated by comma)\nrgb0/ 1/2 RGB lamp bead \noled OLED display \nmusic music \nservo steering gear \npind digital IO pin \npina analog IO pin",mpython_tinywebio_client_setup_MESSAGE0:"setup TinyWebIO client params %1 TinyWebDB server address %2 items send to the server %3 items read from the server %4 access server time interval(ms) %5",mpython_tinywebio_client_action_HELPURL:"",mpython_tinywebio_client_action_TOOLTIP:"",mpython_tinywebio_client_action_MESSAGE0:"%1 TinyWebIO client",mpython_tinywebio_client_action_start:"start",mpython_tinywebio_client_action_stop:"stop",MPYTHON_CUSTOM_CODE_HELPURL:"",MPYTHON_CUSTOM_CODE_TOOLTIP:"",MPYTHON_CUSTOM_CODE_MESSAGE0:"%1 custom code %2 %3",MPYTHON_CUSTOM_TYPE_IMPORT:"topping",MPYTHON_CUSTOM_TYPE_NORMAL:"normal",MPYTHON_CUSTOM_VALUE_MESSAGE0:"custom value %1",mpython_servo_angle0_MESSAGE0:"set the servo %1 angle as %2",mpython_servo_angle_MESSAGE0:"set the servo %1 angle as %2 pulse width from %3 us to %4 us actuation range as %5",mpython_servo_angle_TOOLTIP:"power cable Vcc (red) connected to expansion-board power port V, ground line GND (brown) connected to expansion-board ground port G, control signal line (orange) connected to selected expansion-board pins",mpython_dh11_hum_tem_MESSAGE0:"DHT11 %1 %2",mpython_dh11_hum_tem_TOOLTIP:'"+" on the DHT11 connects the power port of the expansion-board V, "-" connects the ground port of the expansion-board G, "out" connects the pin0 of the expansion-board',MPYTHON_DH22_HUM_TEM_MESSAGE0:"DHT22 %1 %2",MPYTHON_DH22_HUM_TEM_TOOLTIP:"",MPYTHON_DH22_HUM_TEM_HELPURL:"https://mpython.readthedocs.io/zh/latest/classic/dht11.html?highlight=DHT",mpython_music_note_MESSAGE0:"note %1 %2 : %3",mpython_music_note_TOOLTIP:"Note, such as C4:4",mpython_return_list_MESSAGE0:"define list %1 = %2",mpython_return_list_TOOLTIP:"",mpython_display_Show_MESSAGE0:"OLED setting take effect",mpython_display_Show_TOOLTIP:"",mpython_display_DispChar_MESSAGE0:"display text %3 at x %1 y %2 text mode %4 %5",mpython_display_DispChar_TOOLTIP:"OLED resolution 128x64",mpython_display_DispChar_HELPURL:"https://mpython.readthedocs.io/zh/master/library/mPython/mpython.html?highlight=oled#oled.DispChar",mpython_display_DispChar_5lines_MESSAGE0:"OLED line %1 shows %2 text mode %3 %4",mpython_display_DispChar_5lines_TOOLTIP:"OLED resolution 128x64",mpython_line1:"1",mpython_line2:"2",mpython_line3:"3",mpython_line4:"4",mpython_line5:"5",MPYTHON_CLEAR_DISPCHAR_5LINES_MESSAGE0:"OLED clear line %1",MPYTHON_CLEAR_DISPCHAR_5LINES_TOOLTIP:"OLED resolution 128x64",MPYTHON_CLEAR_DISPCHAR_5LINES_HELPURL:"",mpython_display_fill_0:"clear",mpython_display_fill_1:"full bright",mpython_display_invert_0:"black background",mpython_display_invert_1:"white background",mpython_display_show:"show",mpython_display_fill_MESSAGE0:"OLED display %1",mpython_display_fill_TOOLTIP:"",mpython_display_pixel_0:"dark",mpython_display_pixel_1:"bright",mpython_display_pixel_MESSAGE0:"draw a point x %1 y %2 as %3",mpython_display_pixel_TOOLTIP:"",mpython_display_hline_0:"erase",mpython_display_hline_1:"draw",mpython_display_hline_MESSAGE0:"%1 horizontal line %2 x %3 y %4 length %5",mpython_display_hline_TOOLTIP:"",mpython_ProgressBar_MESSAGE0:"progress bar %1 x %2 y %3 width %4 height %5 progress %6",mpython_ProgressBar_TOOLTIP:"",mpython_stripBar_MESSAGE0:"column bar %1 x %2 y %3 width %4 height %5 progress %6",mpython_stripBar_TOOLTIP:"",MPYTHON_QR_CODE_HELPURL:"https://mpython.readthedocs.io/zh/master/library/mPython/gui.html#gui.UI.qr_code",MPYTHON_QR_CODE_TOOLTIP:"",MPYTHON_QR_CODE_MESSAGE0:"display QR code %3 at x %1 y %2 with size %4",MPYTHON_DISPLAY_MODE_0:"erase",MPYTHON_DISPLAY_MODE_1:"draw",MPYTHON_DISPLAY_HOLLOW:"hollow",MPYTHON_DISPLAY_SOLID:"solid",MPYTHON_DISPLAY_HVLINE_MESSAGE0:"%1 %2 line %3 x %4 y %5 length %6",MPYTHON_DISPLAY_HVLINE_TOOLTIP:"",MPYTHON_DISPLAY_SHAPE_RECT_MESSAGE0:"%1 %2 rectangle %3 x %4 y %5 width %6 height %7",MPYTHON_DISPLAY_SHAPE_RECT_TOOLTIP:"",MPYTHON_DISPLAY_SHAPE_CIRCLE_MESSAGE0:"%1 %2 circle %3 x %4 y %5 radius %6",MPYTHON_DISPLAY_SHAPE_CIRCLE_TOOLTIP:"",MPYTHON_DISPLAY_SHAPE_TRIANGLE_MESSAGE0:"%1 %2 triangle %3 x1 %4 y1 %5 x2 %6 y2 %7 x3 %8 y3 %9",MPYTHON_DISPLAY_SHAPE_TRIANGLE_TOOLTIP:"",MPYTHON_RGB_0:"0 #",MPYTHON_RGB_1:"1 #",MPYTHON_RGB_2:"2 #",MPYTHON_RGB_ALL:"all",MPYTHON_SET_RGB_LIST_COLOR_MESSAGE0:"set %1 RGB light(s) color to %2",MPYTHON_SET_RGB_LIST_COLOR_TOOLTIP:"1/30 of the original brightness can better display the color difference",MPYTHON_SET_RGB_LIST_NUMBER_MESSAGE0:"set %1 RGB light(s) color to R%2 G%3 B%4",MPYTHON_SET_RGB_LIST_NUMBER_TOOLTIP:"1/30 of the original brightness can better display the color difference",MPYTHON_OFF_RGB_LIST_MESSAGE0:"turn off %1 RGB light(s)",MPYTHON_OFF_RGB_LIST_TOOLTIP:"",MPYTHON_MUSIC_PLAY_MESSAGE0:"play music %1 Pin %2",MPYTHON_MUSIC_PLAY_TOOLTIP:"Play the built-in music",MPYTHON_MUSIC_PLAY_UNTIL_END_MESSAGE0:"play music %1 until end, Pin %2",MPYTHON_MUSIC_PLAY_UNTIL_END_TOOLTIP:"Play the built-in music",MPYTHON_MUSIC_GE_CHANG_ZU_GUO:"GE_CHANG_ZU_GUO",MPYTHON_MUSIC_DONG_FANG_HONG:"DONG_FANG_HONG",MPYTHON_MUSIC_CAI_YUN_ZHUI_YUE:"CAI_YUN_ZHUI_YUE",MPYTHON_MUSIC_ZOU_JIN_XIN_SHI_DAI:"ZOU_JIN_XIN_SHI_DAI",MPYTHON_MUSIC_MO_LI_HUA:"MO_LI_HUA",MPYTHON_MUSIC_YI_MENG_SHAN_XIAO_DIAO:"YI_MENG_SHAN_XIAO_DIAO",mpython_display_vline_MESSAGE0:"%1 vertical line %2 x %3 y %4 length %5",mpython_display_vline_TOOLTIP:"",mpython_display_line_MESSAGE0:"%1 line %2 x1 %3 y1 %4 to x2 %5 y2 %6",mpython_display_line_TOOLTIP:"",mpython_display_rect_MESSAGE0:"%1 border %2 x %3 y %4 width %5 height %6",mpython_display_rect_TOOLTIP:"",mpython_display_RoundRect_MESSAGE0:"%1 arc border %2 x %3 y %4 width %5 height %6 radius %7",mpython_display_RoundRect_TOOLTIP:"",mpython_display_fill_rect_MESSAGE0:"%1 rectangle %2 x %3 y %4 width %5 height %6",mpython_display_fill_rect_TOOLTIP:"",mpython_display_fill_circle_MESSAGE0:"%1 solid circle %2 x %3 y %4 radius %5",mpython_display_fill_circle_TOOLTIP:"",mpython_display_circle_MESSAGE0:"%1 hollow circle %2 x %3 y %4 radius %5",mpython_display_circle_TOOLTIP:"",mpython_display_triangle_MESSAGE0:"%1 hollow triangle %2 x %3 y %4 x2 %5 y2 %6 x3 %7 y3 %8",mpython_display_triangle_TOOLTIP:"",mpython_display_fill_triangle_MESSAGE0:"%1 solid triangle %2 x %3 y %4 x2 %5 y2 %6 x3 %7 y3 %8",mpython_display_fill_triangle_TOOLTIP:"",mpython_display_Bitmap_MESSAGE0:"%1 pattern x %2 y %3 width %4 height %5 with hex image data %6",mpython_display_Bitmap_TOOLTIP:"Display hex image data at a specified position on the OLED screen",MPYTHON_GET_PBM_DATA_MESSAGE0:"get inner image %1 Pattern %2",MPYTHON_GET_PBM_DATA_TOOLTIP:"Supports * .PBM or * .PBM format monochrome image files, retrieves image file data of specified path, and returns a tuple object",MPYTHON_GET_PBM_DATA_HELPURL:"https://mpython.readthedocs.io/zh/master/library/mPython/gui.html#image",MPYTHON_GET_PBM_DATA_CUSTOM_MESSAGE0:"Get custom image%1 mode%2",MPYTHON_DISPLAY_PBM_DATA_MESSAGE0:"display image at x %1 y %2 with data %3",MPYTHON_DISPLAY_PBM_DATA_TOOLTIP:"Monochromatic image files supporting * .PBM or * .PBM formats",MPYTHON_DISPLAY_PBM_DATA_HELPURL:"https://mpython.readthedocs.io/zh/master/library/mPython/gui.html#image",MPYTHON_BITMAP_FROM_FILE_MESSAGE0:"display image at x %1 y %2 with data %5 width %3 height %4",MPYTHON_BITMAP_FROM_FILE_TOOLTIP:"",MPYTHON_BITMAP_FROM_FILE_HELPURL:"",mpython_front:"front",mpython_reverse:"reverse",MPYTHON_FONT_DIGIFACE_11:"Digiface 11px",MPYTHON_FONT_DIGIFACE_16:"Digiface 16px",MPYTHON_FONT_DIGIFACE_21:"Digiface 21px",MPYTHON_FONT_DIGIFACE_30:"Digiface 30px",MPYTHON_FONT_DIGIFACE_44:"Digiface 44px",MPYTHON_FONT_DIGIFACE_IT_30:"Digiface Italic 30px",MPYTHON_FONT_DIGIFACE_IT_42:"Digiface Italic 42px",MPYTHON_FONT_DVSM_12:"DejaVu Sans Mono 12px",MPYTHON_FONT_DVSM_16:"DejaVu Sans Mono 16px",MPYTHON_FONT_DVSM_21:"DejaVu Sans Mono 21px",MPYTHON_FONT_DVSMB_12:"DejaVu Sans Mono Bold 12px",MPYTHON_FONT_DVSMB_16:"DejaVu Sans Mono Bold 16px",MPYTHON_FONT_DVSMB_21:"DejaVu Sans Mono Bold 21px",MPYTHON_FONT_WRAP:"auto wrap",MPYTHON_FONT_NO_WRAP:"no wrap",MPYTHON_FACE_1:"Heart",MPYTHON_FACE_2:"Small heart",MPYTHON_FACE_3:"Happy",MPYTHON_FACE_4:"Smile",MPYTHON_FACE_5:"Sad",MPYTHON_FACE_6:"Confused",MPYTHON_FACE_7:"Angry",MPYTHON_FACE_8:"Sleep",MPYTHON_FACE_9:"Surprise",MPYTHON_FACE_10:"Silly",MPYTHON_FACE_11:"Wonderful",MPYTHON_FACE_12:"Bored",MPYTHON_FACE_ROCK:"Rock",MPYTHON_FACE_PAPER:"Paper",MPYTHON_FACE_SCISSORS:"Scissors",MPYTHON_FACE_ROCK_S:"Small rock",MPYTHON_FACE_PAPER_S:"Small paper",MPYTHON_FACE_SCISSORS_S:"Small scissors",MPYTHON_DISPLAY_FONT_MESSAGE0:"display text %3 at x %1 y %2, using %4 font with %5",MPYTHON_DISPLAY_FONT_TOOLTIP:"",MPYTHON_DISPLAY_FONT_HELPURL:"",mpython_button_is_pressed_MESSAGE0:"button %1 is pressed",mpython_button_is_pressed_TOOLTIP:"",mpython_touchPad_value_MESSAGE0:"button %1 is touched",mpython_touchPad_value_TOOLTIP:"",mpython_touchPad_value_num_MESSAGE0:"button %1 touch value",mpython_touchPad_value_num_TOOLTIP:"",mpython_read_digital_MESSAGE0:"pin %1 digital value",mpython_read_digital_TOOLTIP:"",mpython_read_DS18B20_MESSAGE0:"DS18B20 waterproof temperature sensor at pin %1",mpython_read_DS18B20_TOOLTIP:"",mpython_read_DS18B20_HELPURL:"http://docs.micropython.org/en/latest/esp32/quickref.html?highlight=onewire#onewire-driver",mpython_set_digital_MESSAGE0:"set pin %2 digital value to %1",mpython_set_digital_TOOLTIP:"",mpython_read_analog_MESSAGE0:"pin %1 analog value",mpython_read_analog_TOOLTIP:"",mpython_set_analog_MESSAGE0:"set pin %2 analog value (PWM) to %1",mpython_set_analog_TOOLTIP:"The analog output is a pulse width modulated signal output through the IO pin, which outputs a specified voltage value, referred to as PWM.",mpython_set_RGB_MESSAGE0:"set %1 RGB light color to R %2 G %3 B %4",mpython_set_RGB_TOOLTIP:"1/30 of the original brightness can better display the color difference",mpython_set_RGB_color_MESSAGE0:"set %1 RGB light color to %2",mpython_set_RGB_color_TOOLTIP:"1/30 of the original brightness can better display the color difference",mpython_set_RGB_all_MESSAGE0:"set all RGB lights color to R %1 G %2 B %3",mpython_set_RGB_all_TOOLTIP:"1/30 of the original brightness can better display the color difference",mpython_set_RGB_color_all_MESSAGE0:"set all RGB lights color to %1",mpython_set_RGB_color_all_TOOLTIP:"1/30 of the original brightness can better display the color difference",mpython_fresh_RGB_MESSAGE0:"RGB lights settings take effect",mpython_fresh_RGB_TOOLTIP:"",mpython_off_RGB_MESSAGE0:"turn off all RGB lights",mpython_off_RGB_TOOLTIP:"",mpython_buzz_state_MESSAGE0:"stop playing music",mpython_buzz_state_TOOLTIP:"",mpython_buzz_freq_MESSAGE0:"play continuous tone %1 at Pin %2",mpython_buzz_freq_TOOLTIP:"",mpython_buzz_tone_MESSAGE0:"play tone %1",mpython_buzz_tone_TOOLTIP:"",MPYTHON_MUSIC_TONE_TEMPO_HELPURL:"",MPYTHON_MUSIC_TONE_TEMPO_TOOLTIP:"The default pin is P6 of the mPython board",MPYTHON_MUSIC_TONE_TEMPO_MESSAGE0:"play musical note %1 at Pin %2",MPYTHON_MUSIC_TONE_HELPURL:"",MPYTHON_MUSIC_TONE_TOOLTIP:"",MPYTHON_MUSIC_TONE_MESSAGE0:"tone %1",MPYTHON_MUSIC_MUSICAL_NOTE_HELPURL:"",MPYTHON_MUSIC_MUSICAL_NOTE_TOOLTIP:"",MPYTHON_MUSIC_MUSICAL_NOTE_MESSAGE0:"note %1 beat %2",MPYTHON_MUSIC_TICK_HELPURL:"",MPYTHON_MUSIC_TICK_TOOLTIP:"",MPYTHON_MUSIC_TICK_MESSAGE0:"beat %1",MPYTHON_4_LINES_HELPURL:"",MPYTHON_4_LINES_TOOLTIP:"",MPYTHON_4_LINES_MESSAGE0:"%1",NUMBER_1:"1",NUMBER_1_2:"1/2",NUMBER_1_4:"1/4",NUMBER_2:"2",NUMBER_4:"4",mpython_read_sound_MESSAGE0:"sound value",mpython_read_sound_TOOLTIP:"",mpython_read_light_MESSAGE0:"light value",mpython_read_light_TOOLTIP:"",mpython_accelerometer_get_MESSAGE0:"%1 axis acceleration",mpython_accelerometer_get_TOOLTIP:"",MPYTHON_ACCELEROMETER_RANGE_2G:"±2g",MPYTHON_ACCELEROMETER_RANGE_4G:"±4g",MPYTHON_ACCELEROMETER_RANGE_8G:"±8g",MPYTHON_ACCELEROMETER_RANGE_16G:"±16g",MPYTHON_ACCELEROMETER_RES_10_BIT:"10bits",MPYTHON_ACCELEROMETER_RES_12_BIT:"12bits",MPYTHON_ACCELEROMETER_RES_14_BIT:"14bits",MPYTHON_ACCELEROMETER_SET_RANGE_TOOLTIP:"Set the acceleration range, the default is ±2g。",MPYTHON_ACCELEROMETER_SET_RANGE_MESSAGE0:"set acceleration range to %1",MPYTHON_ACCELEROMETER_SET_RESOLUTION_TOOLTIP:"Set the acceleration resolution, the default is 10bits。",MPYTHON_ACCELEROMETER_SET_RESOLUTION_MESSAGE0:"set acceleration resolution to %1",MPYTHON_ACCELEROMETER_SET_OFFSET_TOOLTIP:"Calibrate the acceleration value deviation of the three axes (x, y, z) of the accelerometer.\nIn general, calibration is not required, and calibration is only required when the acceleration deviation is large.\nx , y , z are the adjustment deviation values, and the correction range is ±1g.\nNote: Calibration data will not be saved after power off.",MPYTHON_ACCELEROMETER_SET_OFFSET_MESSAGE0:"calibration acceleration value with %1 X axis deviation %2 Y axis deviation %3 Z axis deviation %4",MPYTHON_MAGNETIC_GET_AXIS_TOOLTIP:"Only applicable to mPython board 2.0 and above",MPYTHON_MAGNETIC_GET_AXIS_MESSAGE0:"magnetic force of %1 axis",MPYTHON_MAGNETIC_GET_HEADING_TOOLTIP:"Only applicable to mPython board 2.0 and above",MPYTHON_MAGNETIC_GET_HEADING_MESSAGE0:"get magnetic heading",MPYTHON_MAGNETIC_CALIBRATE_TOOLTIP:"Only applicable to mPython board 2.0 and above",MPYTHON_MAGNETIC_CALIBRATE_MESSAGE0:"magnetic calibrate",MPYTHON_MAGNETIC_PEELING_TOOLTIP:"Only applicable to mPython board 2.0 and above",MPYTHON_MAGNETIC_PEELING_MESSAGE0:"magnetic peeling",MPYTHON_MAGNETIC_GET_FIELD_STRENGTH_TOOLTIP:"Only applicable to mPython board 2.0 and above",MPYTHON_MAGNETIC_GET_FIELD_STRENGTH_MESSAGE0:"get magnetic field strength",MPYTHON_TILT_ANGLE_HELPURL:"",MPYTHON_TILT_ANGLE_TOOLTIP:"",MPYTHON_TILT_ANGLE_MESSAGE0:"%1 axis tilt angle",mpython_random_choice_MESSAGE0:"random item %1",mpython_random_choice_TOOLTIP:"Return a random item in a list or string in String format",MACHINE_TIME_PULSE_US_HELPURL:"https://mpython.readthedocs.io/zh/master/library/micropython/machine/machine.html?highlight=machine.time_pulse_us#machine.time_pulse_us",MACHINE_TIME_PULSE_US_MESSAGE0:"duration(us) of external %2 pulse level at %1",MACHINE_TIME_PULSE_US_TOOLTIP:"",BYTES:"bytes",MPYTHON_I2C_INIT_HELPURL:"https://mpython.readthedocs.io/zh/master/library/micropython/machine/machine.I2C.html#machine.I2C",MPYTHON_I2C_INIT_MESSAGE0:"init i2c with baudrate %1",MPYTHON_I2C_INIT_TOOLTIP:"",MPYTHON_I2C_DEV_INIT_HELPURL:"https://mpython.readthedocs.io/zh/master/library/micropython/machine/machine.I2C.html#machine.I2C",MPYTHON_I2C_DEV_INIT_MESSAGE0:"init %1 SCL %2 SDA %3 baudrate %4",MPYTHON_I2C_DEV_INIT_TOOLTIP:"",MPYTHON_I2C_SCAN_HELPURL:"https://mpython.readthedocs.io/zh/master/library/micropython/machine/machine.I2C.html?highlight=I2C#machine.I2C.scan",MPYTHON_I2C_SCAN_MESSAGE0:"%1 scan result",MPYTHON_I2C_SCAN_TOOLTIP:"Return an array object",MPYTHON_I2C_DEINIT_HELPURL:"https://mpython.readthedocs.io/zh/master/library/micropython/machine/machine.I2C.html?highlight=I2C#machine.I2C.deinit",MPYTHON_I2C_DEINIT_MESSAGE0:"deinit %1",MPYTHON_I2C_DEINIT_TOOLTIP:"",MPYTHON_I2C_WRITETO_HELPURL:"https://mpython.readthedocs.io/zh/master/library/micropython/machine/machine.I2C.html?highlight=I2C#id4",MPYTHON_I2C_WRITETO_MESSAGE0:"write to %1 %5 address %2 data %3 stop bit %4",MPYTHON_I2C_WRITETO_TOOLTIP:"Address: Number\nData: Number, String",MPYTHON_I2C_READFROM_HELPURL:"https://mpython.readthedocs.io/zh/master/library/micropython/machine/machine.I2C.html?highlight=I2C#id4",MPYTHON_I2C_READFROM_MESSAGE0:"read from %1 %5 address %2 bytes num %3 stop bit %4",MPYTHON_I2C_READFROM_TOOLTIP:"Address: Number\nReturn: Convert bytes data to string",MPYTHON_I2C_READFROM_INTO_HELPURL:"https://mpython.readthedocs.io/zh/master/library/micropython/machine/machine.I2C.html?highlight=I2C#id4",MPYTHON_I2C_READFROM_INTO_MESSAGE0:"read from %1 %6 address %2 into %3 bytes num %4 stop bit %5",MPYTHON_I2C_READFROM_INTO_TOOLTIP:"",MPYTHON_I2C_WRITETO_MEN_HELPURL:"https://mpython.readthedocs.io/zh/master/library/micropython/machine/machine.I2C.html?highlight=I2C#id5",MPYTHON_I2C_WRITETO_MEN_MESSAGE0:"write to %1 %5 address %2 mem %4 data %3",MPYTHON_I2C_WRITETO_MEN_TOOLTIP:"Address: Number\nData: Number, String",MPYTHON_I2C_READFROM_MEN_HELPURL:"https://mpython.readthedocs.io/zh/master/library/micropython/machine/machine.I2C.html?highlight=I2C#id5",MPYTHON_I2C_READFROM_MEN_MESSAGE0:"read from %1 %5 address %2 mem %4 bytes num %3",MPYTHON_I2C_READFROM_MEN_TOOLTIP:"Address: Number\nReturn: Convert bytes data to string",MPYTHON_I2C_READFROM_MEN_INTO_HELPURL:"https://mpython.readthedocs.io/zh/master/library/micropython/machine/machine.I2C.html?highlight=I2C#id5",MPYTHON_I2C_READFROM_MEN_INTO_MESSAGE0:"read from %1 %6 address %2 mem %5 into %3 bytes num %4",MPYTHON_I2C_READFROM_MEN_INTO_TOOLTIP:"Address: Number\nReturn: Convert bytes data to string",MICROBIT_CONVERT_BYTEARRAY_HELPURL:"https://microbit-micropython.readthedocs.io/en/latest/i2c.html",MICROBIT_CONVERT_BYTEARRAY_TOOLTIP:"",MICROBIT_CONVERT_BYTEARRAY_MESSAGE0:"bytearray %1",AUTH:"Please authorize this app to enable your work to be saved and to allow it to be shared by you.",CHAT:"Chat with your collaborator by typing in this box!",TRY_EXCEPT_FINALLY:"finally",TRY_EXCEPT_FINALLY_TOOLTIP:"",TRY_EXCEPT_EXCEPT:"except",TRY_EXCEPT_EXCEPT_TOOLTIP:"",TRY_EXCEPT_TRY:"try",TRY_EXCEPT_TRY_TOOLTIP:"",TRY_EXCEPT_HELPURL:"https://mpythonx.readthedocs.io/zh_CN/latest/index.html",LISTS_POP_HELPURL:"",LISTS_POP_TOOLTIP:"",LISTS_POP_MESSAGE0:"remove %2 item in list %1",MATH_CONVERT_HELPURL:"",MATH_CONVERT_MESSAGE0:"%1 %2",MATH_CONVERT_TOOLTIP:"Conversion data type",MATH_DIVISION_CONSULT_HELPURL:"",MATH_DIVISION_CONSULT_TITLE:"the integer part of the quotient %1 ÷ %2",MATH_DIVISION_CONSULT_TOOLTIP:"",MATH_NUMBER_BITS_OPS_HELPURL:"",MATH_NUMBER_BITS_OPS_MESSAGE0:"%1 %2 %3",MATH_NUMBER_BITS_OPS_TOOLTIP:"Bitwise operations on numbers",ME:"Me",MPYTHON_PRINT_TO_CHART_TOOLTIP:"",MPYTHON_PRINT_TO_CHART_EMPTY_TITLE:"print data to chart",MPYTHON_PRINT_TO_CHART_INPUT_WITH:"print data to chart",MPYTHON_PRINT_TO_CHART_ITEM_TITLE:"data",MPYTHON_PRINT_TO_CHART_ITEM_TOOLTIP:"",MPYTHON_PRINT_TO_CHART_CONTAINER_TITLE_ADD:"data content",MPYTHON_PRINT_TO_CHART_CONTAINER_TOOLTIP:"",MPYTHON_INIT_CHART_TOOLTIP:"",MPYTHON_INIT_CHART_EMPTY_TITLE:"init chart column headers",MPYTHON_INIT_CHART_INPUT_WITH:"init chart column headers",MPYTHON_INIT_CHART_ITEM_TITLE:"header",MPYTHON_INIT_CHART_ITEM_TOOLTIP:"",MPYTHON_INIT_CHART_CONTAINER_TITLE_ADD:"column header",MPYTHON_INIT_CHART_CONTAINER_TOOLTIP:"",MICROBIT_IMAGE_CREATE1_MESSAGE0:"create image %1 line 1 %2 line 2 %3 line 3 %4 line 4 %5 line 5 %6",MICROBIT_IMAGE_CREATE1_TOOLTIP:"Create new image.",MICROBIT_IMAGE_CREATE1_HELPURL:"",ADD_COMMENT:"Add Comment",CHANGE_VALUE_TITLE:"Change value:",COLLAPSE_ALL:"Collapse Blocks",COLLAPSE_BLOCK:"Collapse Block",COLOUR_BLEND_COLOUR1:"colour 1",COLOUR_BLEND_COLOUR2:"colour 2",COLOUR_BLEND_HELPURL:"http://meyerweb.com/eric/tools/color-blend/",COLOUR_BLEND_RATIO:"ratio",COLOUR_BLEND_TITLE:"blend",COLOUR_BLEND_TOOLTIP:"Blends two colours together with a given ratio (0.0 - 1.0).",COLOUR_PICKER_HELPURL:"https://en.wikipedia.org/wiki/Color",COLOUR_PICKER_TOOLTIP:"Choose a colour from the palette.",COLOUR_RANDOM_HELPURL:"http://randomcolour.com",COLOUR_RANDOM_TITLE:"random colour",COLOUR_RANDOM_TOOLTIP:"Choose a colour at random.",COLOUR_RGB_BLUE:"blue",COLOUR_RGB_GREEN:"green",COLOUR_RGB_HELPURL:"http://www.december.com/html/spec/colorper.html",COLOUR_RGB_RED:"red",COLOUR_RGB_TITLE:"colour with",COLOUR_RGB_TOOLTIP:"Create a colour with the specified amount of red, green, and blue. All values must be between 0 and 100.",CONTROLS_FLOW_STATEMENTS_HELPURL:"https://github.com/google/blockly/wiki/Loops#loop-termination-blocks",CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK:"break out of loop",CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE:"continue with next iteration of loop",CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK:"Break out of the containing loop.",CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE:"Skip the rest of this loop, and continue with the next iteration.",CONTROLS_FLOW_STATEMENTS_WARNING:"Warning: This block may only be used within a loop.",CONTROLS_FOREACH_HELPURL:"https://github.com/google/blockly/wiki/Loops#for-each",CONTROLS_FOREACH_TITLE:"for each item %1 in list %2",CONTROLS_FOREACH_TOOLTIP:"For each item in a list, set the variable '%1' to the item, and then do some statements.",CONTROLS_FOR_HELPURL:"https://github.com/google/blockly/wiki/Loops#count-with",CONTROLS_FOR_TITLE:"count with %1 from %2 to %3 by %4",CONTROLS_FOR_TOOLTIP:"Have the variable '%1' take on the values from the start number to the end number, counting by the specified interval, and do the specified blocks.",CONTROLS_IF_ELSEIF_TOOLTIP:"Add a condition to the if block.",CONTROLS_IF_ELSE_TOOLTIP:"Add a final, catch-all condition to the if block.",CONTROLS_IF_HELPURL:"https://github.com/google/blockly/wiki/IfElse",CONTROLS_IF_IF_TOOLTIP:"Add, remove, or reorder sections to reconfigure this if block.",CONTROLS_IF_MSG_ELSE:"else",CONTROLS_IF_MSG_ELSEIF:"else if",CONTROLS_IF_MSG_IF:"if",CONTROLS_IF_TOOLTIP_1:"If a value is true, then do some statements.",CONTROLS_IF_TOOLTIP_2:"If a value is true, then do the first block of statements. Otherwise, do the second block of statements.",CONTROLS_IF_TOOLTIP_3:"If the first value is true, then do the first block of statements. Otherwise, if the second value is true, do the second block of statements.",CONTROLS_IF_TOOLTIP_4:"If the first value is true, then do the first block of statements. Otherwise, if the second value is true, do the second block of statements. If none of the values are true, do the last block of statements.",CONTROLS_REPEAT_HELPURL:"https://en.wikipedia.org/wiki/For_loop",CONTROLS_REPEAT_INPUT_DO:"",CONTROLS_REPEAT_TITLE:"repeat %1 times",CONTROLS_REPEAT_TOOLTIP:"Do some statements several times.",CONTROLS_WHILEUNTIL_HELPURL:"https://github.com/google/blockly/wiki/Loops#repeat",CONTROLS_WHILEUNTIL_OPERATOR_UNTIL:"repeat until",CONTROLS_WHILEUNTIL_OPERATOR_WHILE:"repeat while",CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL:"While a value is false, then do some statements.",CONTROLS_WHILEUNTIL_TOOLTIP_WHILE:"While a value is true, then do some statements.",DELETE_BLOCK:"Delete Block",DELETE_X_BLOCKS:"Delete %1 Blocks",DISABLE_BLOCK:"Disable Block",DUPLICATE_BLOCK:"Duplicate",ENABLE_BLOCK:"Enable Block",EXPAND_ALL:"Expand Blocks",EXPAND_BLOCK:"Expand Block",EXTERNAL_INPUTS:"External Inputs",HELP:"Help",INLINE_INPUTS:"Inline Inputs",LISTS_CREATE_EMPTY_HELPURL:"https://github.com/google/blockly/wiki/Lists#create-empty-list",LISTS_CREATE_EMPTY_TITLE:"create empty list",LISTS_CREATE_EMPTY_TOOLTIP:"Returns a list, of length 0, containing no data records",LISTS_CREATE_WITH_CONTAINER_TITLE_ADD:"list",LISTS_CREATE_WITH_CONTAINER_TOOLTIP:"Add, remove, or reorder sections to reconfigure this list block.",SET_CREATE_WITH_CONTAINER_TOOLTIP:"Add, remove, or reorder sections to reconfigure this set block.",LISTS_CREATE_WITH_HELPURL:"https://github.com/google/blockly/wiki/Lists#create-list-with",LISTS_CREATE_WITH_INPUT_WITH:"create list with",LISTS_CREATE_WITH_ITEM_TOOLTIP:"Add an item to the list.",LISTS_CREATE_WITH_TOOLTIP:"Create a list with any number of items.",LISTS_GET_INDEX_FIRST:"first",LISTS_GET_INDEX_FROM_END:"# from end",LISTS_GET_INDEX_FROM_START:"#",LISTS_GET_INDEX_GET:"get",LISTS_GET_INDEX_GET_REMOVE:"get and remove",LISTS_GET_INDEX_LAST:"last",LISTS_GET_INDEX_RANDOM:"random",LISTS_GET_INDEX_REMOVE:"remove",LISTS_GET_INDEX_TAIL:"",LISTS_GET_INDEX_TOOLTIP_GET_FIRST:"Returns the first item in a list.",LISTS_GET_INDEX_TOOLTIP_GET_FROM_END:"Returns the item at the specified position in a list. #1 is the last item.",LISTS_GET_INDEX_TOOLTIP_GET_FROM_START:"Returns the item at the specified position in a list. #1 is the first item.",LISTS_GET_INDEX_TOOLTIP_GET_LAST:"Returns the last item in a list.",LISTS_GET_INDEX_TOOLTIP_GET_RANDOM:"Returns a random item in a list.",LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST:"Removes and returns the first item in a list.",LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM_END:"Removes and returns the item at the specified position in a list. #1 is the last item.",LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM_START:"Removes and returns the item at the specified position in a list. #1 is the first item.",LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST:"Removes and returns the last item in a list.",LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM:"Removes and returns a random item in a list.",LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST:"Removes the first item in a list.",LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM_END:"Removes the item at the specified position in a list. #1 is the last item.",LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM_START:"Removes the item at the specified position in a list. #1 is the first item.",LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST:"Removes the last item in a list.",LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM:"Removes a random item in a list.",LISTS_GET_SUBLIST_END_FROM_END:"to # from end",LISTS_GET_SUBLIST_END_FROM_START:"to #",LISTS_GET_SUBLIST_END_LAST:"to last",LISTS_GET_SUBLIST_HELPURL:"https://github.com/google/blockly/wiki/Lists#getting-a-sublist",LISTS_GET_SUBLIST_START_FIRST:"get sub-list from first",LISTS_GET_SUBLIST_START_FROM_END:"get sub-list from # from end",LISTS_GET_SUBLIST_START_FROM_START:"get sub-list from #",LISTS_GET_SUBLIST_TAIL:"",LISTS_GET_SUBLIST_TOOLTIP:"Creates a copy of the specified portion of a list.",LISTS_INDEX_OF_FIRST:"find first occurrence of item",LISTS_INDEX_OF_HELPURL:"https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list",LISTS_INDEX_OF_LAST:"find last occurrence of item",LISTS_INDEX_OF_TOOLTIP:"Returns the index of the first/last occurrence of the item in the list. Returns 0 if text is not found.",LISTS_INLIST:"in list",LISTS_ISEMPTY_HELPURL:"https://github.com/google/blockly/wiki/Lists#is-empty",LISTS_ISEMPTY_TITLE:"%1 is empty",LISTS_ISEMPTY_TOOLTIP:"Returns true if the list is empty.",LISTS_LENGTH_HELPURL:"https://github.com/google/blockly/wiki/Lists#length-of",LISTS_LENGTH_TITLE:"length of %1",LISTS_LENGTH_TOOLTIP:"Returns the length of a list.",LISTS_REPEAT_HELPURL:"https://github.com/google/blockly/wiki/Lists#create-list-with",LISTS_REPEAT_TITLE:"create list with item %1 repeated %2 times",LISTS_REPEAT_TOOLTIP:"Creates a list consisting of the given value repeated the specified number of times.",LISTS_SET_INDEX_HELPURL:"https://github.com/google/blockly/wiki/Lists#in-list--set",LISTS_SET_INDEX_INPUT_TO:"as",LISTS_SET_INDEX_INSERT:"insert at",LISTS_SET_INDEX_SET:"set",LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST:"Inserts the item at the start of a list.",LISTS_SET_INDEX_TOOLTIP_INSERT_FROM_END:"Inserts the item at the specified position in a list. #1 is the last item.",LISTS_SET_INDEX_TOOLTIP_INSERT_FROM_START:"Inserts the item at the specified position in a list. #1 is the first item.",LISTS_SET_INDEX_TOOLTIP_INSERT_LAST:"Append the item to the end of a list.",LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM:"Inserts the item randomly in a list.",LISTS_SET_INDEX_TOOLTIP_SET_FIRST:"Sets the first item in a list.",LISTS_SET_INDEX_TOOLTIP_SET_FROM_END:"Sets the item at the specified position in a list. #1 is the last item.",LISTS_SET_INDEX_TOOLTIP_SET_FROM_START:"Sets the item at the specified position in a list. #1 is the first item.",LISTS_SET_INDEX_TOOLTIP_SET_LAST:"Sets the last item in a list.",LISTS_SET_INDEX_TOOLTIP_SET_RANDOM:"Sets a random item in a list.",LISTS_SPLIT_HELPURL:"https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists",LISTS_SPLIT_LIST_FROM_TEXT:"make list from text",LISTS_SPLIT_TEXT_FROM_LIST:"make text from list",LISTS_SPLIT_TOOLTIP_JOIN:"Join a list of texts into one text, separated by a delimiter.",LISTS_SPLIT_TOOLTIP_SPLIT:"Split text into a list of texts, breaking at each delimiter.",LISTS_SPLIT_WITH_DELIMITER:"with delimiter",LOGIC_BOOLEAN_FALSE:"false",LOGIC_BOOLEAN_HELPURL:"https://github.com/google/blockly/wiki/Logic#values",LOGIC_BOOLEAN_TOOLTIP:"Returns either true or false.",LOGIC_BOOLEAN_TRUE:"true",LOGIC_COMPARE_HELPURL:"https://en.wikipedia.org/wiki/Inequality_(mathematics)",LOGIC_COMPARE_TOOLTIP_EQ:"Return true if both inputs equal each other.",LOGIC_COMPARE_TOOLTIP_GT:"Return true if the first input is greater than the second input.",LOGIC_COMPARE_TOOLTIP_GTE:"Return true if the first input is greater than or equal to the second input.",LOGIC_COMPARE_TOOLTIP_LT:"Return true if the first input is smaller than the second input.",LOGIC_COMPARE_TOOLTIP_LTE:"Return true if the first input is smaller than or equal to the second input.",LOGIC_COMPARE_TOOLTIP_NEQ:"Return true if both inputs are not equal to each other.",LOGIC_NEGATE_HELPURL:"https://github.com/google/blockly/wiki/Logic#not",LOGIC_NEGATE_TITLE:"not %1",LOGIC_NEGATE_TOOLTIP:"Returns true if the input is false. Returns false if the input is true.",LOGIC_NULL:"null",LOGIC_NULL_HELPURL:"https://en.wikipedia.org/wiki/Nullable_type",LOGIC_NULL_TOOLTIP:"Returns null.",LOGIC_OPERATION_AND:"and",LOGIC_OPERATION_HELPURL:"https://github.com/google/blockly/wiki/Logic#logical-operations",LOGIC_OPERATION_OR:"or",LOGIC_OPERATION_TOOLTIP_AND:"Return true if both inputs are true.",LOGIC_OPERATION_TOOLTIP_OR:"Return true if at least one of the inputs is true.",LOGIC_TERNARY_CONDITION:"test",LOGIC_TERNARY_HELPURL:"https://en.wikipedia.org/wiki/%3F:",LOGIC_TERNARY_IF_FALSE:"if false",LOGIC_TERNARY_IF_TRUE:"if true",LOGIC_TERNARY_TOOLTIP:"Check the condition in 'test'. If the condition is true, returns the 'if true' value; otherwise returns the 'if false' value.",MATH_ADDITION_SYMBOL:"+",MATH_ARITHMETIC_HELPURL:"https://en.wikipedia.org/wiki/Arithmetic",MATH_ARITHMETIC_TOOLTIP_ADD:"Return the sum of the two numbers.",MATH_ARITHMETIC_TOOLTIP_DIVIDE:"Return the quotient of the two numbers.",MATH_ARITHMETIC_TOOLTIP_MINUS:"Return the difference of the two numbers.",MATH_ARITHMETIC_TOOLTIP_MULTIPLY:"Return the product of the two numbers.",MATH_ARITHMETIC_TOOLTIP_POWER:"Return the first number raised to the power of the second number.",MATH_CHANGE_HELPURL:"https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter",MATH_CHANGE_TITLE:"change %1 by %2",MATH_CHANGE_TOOLTIP:"Add a number to variable '%1'.",MATH_CONSTANT_HELPURL:"https://en.wikipedia.org/wiki/Mathematical_constant",MATH_CONSTANT_TOOLTIP:"Return one of the common constants: π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…), or ∞ (infinity).",MATH_CONSTRAIN_HELPURL:"https://en.wikipedia.org/wiki/Clamping_%28graphics%29",MATH_CONSTRAIN_TITLE:"constrain %1 low %2 high %3",MATH_CONSTRAIN_TOOLTIP:"Constrain a number to be between the specified limits (inclusive).",MATH_DIVISION_SYMBOL:"÷",MATH_IS_DIVISIBLE_BY:"is divisible by",MATH_IS_EVEN:"is even",MATH_IS_NEGATIVE:"is negative",MATH_IS_ODD:"is odd",MATH_IS_POSITIVE:"is positive",MATH_IS_PRIME:"is prime",MATH_IS_TOOLTIP:"Check if a number is an even, odd, prime, whole, positive, negative, or if it is divisible by certain number. Returns true or false.",MATH_IS_WHOLE:"is whole",MATH_MODULO_HELPURL:"https://en.wikipedia.org/wiki/Modulo_operation",MATH_MODULO_TITLE:"remainder of %1 ÷ %2",MATH_MODULO_TOOLTIP:"Return the remainder from dividing the two numbers.",MATH_MULTIPLICATION_SYMBOL:"×",MATH_NUMBER_HELPURL:"https://en.wikipedia.org/wiki/Number",MATH_NUMBER_TOOLTIP:"A number.",MATH_ONLIST_HELPURL:"",MATH_ONLIST_OPERATOR_AVERAGE:"average of list",MATH_ONLIST_OPERATOR_MAX:"max of list",MATH_ONLIST_OPERATOR_MEDIAN:"median of list",MATH_ONLIST_OPERATOR_MIN:"min of list",MATH_ONLIST_OPERATOR_MODE:"modes of list",MATH_ONLIST_OPERATOR_RANDOM:"random item of list",MATH_ONLIST_OPERATOR_STD_DEV:"standard deviation of list",MATH_ONLIST_OPERATOR_SUM:"sum of list",MATH_ONLIST_TOOLTIP_AVERAGE:"Return the average (arithmetic mean) of the numeric values in the list.",MATH_ONLIST_TOOLTIP_MAX:"Return the largest number in the list.",MATH_ONLIST_TOOLTIP_MEDIAN:"Return the median number in the list.",MATH_ONLIST_TOOLTIP_MIN:"Return the smallest number in the list.",MATH_ONLIST_TOOLTIP_MODE:"Return a list of the most common item(s) in the list.",MATH_ONLIST_TOOLTIP_RANDOM:"Return a random element from the list.",MATH_ONLIST_TOOLTIP_STD_DEV:"Return the standard deviation of the list.",MATH_ONLIST_TOOLTIP_SUM:"Return the sum of all the numbers in the list.",MATH_POWER_SYMBOL:"**",MATH_RANDOM_FLOAT_HELPURL:"https://en.wikipedia.org/wiki/Random_number_generation",MATH_RANDOM_FLOAT_TITLE_RANDOM:"random fraction",MATH_RANDOM_FLOAT_TOOLTIP:"Return a random fraction between 0.0 (inclusive) and 1.0 (exclusive).",MATH_RANDOM_INT_HELPURL:"https://en.wikipedia.org/wiki/Random_number_generation",MATH_RANDOM_INT_TITLE:"random integer from %1 to %2",MATH_RANDOM_INT_TOOLTIP:"Return a random integer between the two specified limits, inclusive.",MATH_ROUND_HELPURL:"https://en.wikipedia.org/wiki/Rounding",MATH_ROUND_OPERATOR_ROUND:"round",MATH_ROUND_OPERATOR_ROUNDDOWN:"round down",MATH_ROUND_OPERATOR_ROUNDUP:"round up",MATH_ROUND_TOOLTIP:"Round a number up or down.",MATH_SINGLE_HELPURL:"https://en.wikipedia.org/wiki/Square_root",MATH_SINGLE_OP_ABSOLUTE:"absolute",MATH_SINGLE_OP_ROOT:"square root",MATH_SINGLE_TOOLTIP_ABS:"Return the absolute value of a number.",MATH_SINGLE_TOOLTIP_EXP:"Return e to the power of a number.",MATH_SINGLE_TOOLTIP_LN:"Return the natural logarithm of a number.",MATH_SINGLE_TOOLTIP_LOG10:"Return the base 10 logarithm of a number.",MATH_SINGLE_TOOLTIP_NEG:"Return the negation of a number.",MATH_SINGLE_TOOLTIP_POW10:"Return 10 to the power of a number.",MATH_SINGLE_TOOLTIP_ROOT:"Return the square root of a number.",MATH_SUBTRACTION_SYMBOL:"-",MATH_TRIG_ACOS:"acos",MATH_TRIG_ASIN:"asin",MATH_TRIG_ATAN:"atan",MATH_TRIG_COS:"cos",MATH_TRIG_HELPURL:"https://en.wikipedia.org/wiki/Trigonometric_functions",MATH_TRIG_SIN:"sin",MATH_TRIG_TAN:"tan",MATH_TRIG_TOOLTIP_ACOS:"Return the arccosine of a number.",MATH_TRIG_TOOLTIP_ASIN:"Return the arcsine of a number.",MATH_TRIG_TOOLTIP_ATAN:"Return the arctangent of a number.",MATH_TRIG_TOOLTIP_COS:"Return the cosine of a degree (not radian).",MATH_TRIG_TOOLTIP_SIN:"Return the sine of a degree (not radian).",MATH_TRIG_TOOLTIP_TAN:"Return the tangent of a degree (not radian).",NEW_VARIABLE:"New variable...",NEW_VARIABLE_TITLE:"New variable name:",ORDINAL_NUMBER_SUFFIX:"",PROCEDURES_ALLOW_STATEMENTS:"allow statements",PROCEDURES_BEFORE_PARAMS:"with:",PROCEDURES_CALLNORETURN_CALL:"",PROCEDURES_CALLNORETURN_HELPURL:"https://en.wikipedia.org/wiki/Procedure_%28computer_science%29",PROCEDURES_CALLNORETURN_TOOLTIP:"Run the user-defined function '%1'.",PROCEDURES_CALLRETURN_HELPURL:"https://en.wikipedia.org/wiki/Procedure_%28computer_science%29",PROCEDURES_CALLRETURN_TOOLTIP:"Run the user-defined function '%1' and use its output.",PROCEDURES_CALL_BEFORE_PARAMS:"with:",PROCEDURES_CREATE_DO:"Create '%1'",PROCEDURES_DEFNORETURN_COMMENT:"",PROCEDURES_DEFNORETURN_DO:"",PROCEDURES_DEFNORETURN_HELPURL:"https://en.wikipedia.org/wiki/Procedure_%28computer_science%29",PROCEDURES_DEFNORETURN_PROCEDURE:"my_func",PROCEDURES_DEFNORETURN_TITLE:"to",PROCEDURES_DEFNORETURN_TOOLTIP:"Creates a function with no output.",PROCEDURES_DEFRETURN_HELPURL:"https://en.wikipedia.org/wiki/Procedure_%28computer_science%29",PROCEDURES_DEFRETURN_RETURN:"return",PROCEDURES_DEFRETURN_TOOLTIP:"Creates a function with an output.",PROCEDURES_DEF_DUPLICATE_WARNING:"Warning: This function has duplicate parameters.",PROCEDURES_HIGHLIGHT_DEF:"Highlight function definition",PROCEDURES_IFRETURN_TOOLTIP:"If a value is true, then return a second value.",PROCEDURES_IFRETURN_WARNING:"Warning: This block may be used only within a function definition.",PROCEDURES_MUTATORARG_TITLE:"input name:",PROCEDURES_MUTATORARG_TOOLTIP:"Add an input to the function.",PROCEDURES_MUTATORCONTAINER_TITLE:"inputs",PROCEDURES_MUTATORCONTAINER_TOOLTIP:"Add, remove, or reorder inputs to this function.",REMOVE_COMMENT:"Remove Comment",RENAME_VARIABLE:"Rename variable...",RENAME_VARIABLE_TITLE:"Rename all '%1' variables to:",TEXT_APPEND_APPENDTEXT:"append text",TEXT_APPEND_HELPURL:"https://github.com/google/blockly/wiki/Text#text-modification",TEXT_APPEND_TO:"to",TEXT_APPEND_TOOLTIP:"Append some text to variable '%1'.",TEXT_CHANGECASE_HELPURL:"https://github.com/google/blockly/wiki/Text#adjusting-text-case",TEXT_CHANGECASE_OPERATOR_LOWERCASE:"to lower case",TEXT_CHANGECASE_OPERATOR_TITLECASE:"to Title Case",TEXT_CHANGECASE_OPERATOR_UPPERCASE:"to UPPER CASE",TEXT_CHANGECASE_TOOLTIP:"Return a copy of the text in a different case.",TEXT_CHARAT_FIRST:"get first letter",TEXT_CHARAT_FROM_END:"get letter # from end",TEXT_CHARAT_FROM_START:"get letter #",TEXT_CHARAT_HELPURL:"https://github.com/google/blockly/wiki/Text#extracting-text",TEXT_CHARAT_INPUT_INTEXT:"in text",TEXT_CHARAT_LAST:"get last letter",TEXT_CHARAT_RANDOM:"get random letter",TEXT_CHARAT_TAIL:"",TEXT_CHARAT_TOOLTIP:"Returns the letter at the specified position.",TEXT_CREATE_JOIN_ITEM_TOOLTIP:"Add an item to the text.",TEXT_CREATE_JOIN_TITLE_JOIN:"join",TEXT_CREATE_JOIN_TOOLTIP:"Add, remove, or reorder sections to reconfigure this text block.",TEXT_GET_SUBSTRING_END_FROM_END:"to letter # from end",TEXT_GET_SUBSTRING_END_FROM_START:"to letter #",TEXT_GET_SUBSTRING_END_LAST:"to last letter",TEXT_GET_SUBSTRING_HELPURL:"https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text",TEXT_GET_SUBSTRING_INPUT_IN_TEXT:"in text",TEXT_GET_SUBSTRING_START_FIRST:"get substring from first letter",TEXT_GET_SUBSTRING_START_FROM_END:"get substring from letter # from end",TEXT_GET_SUBSTRING_START_FROM_START:"get substring from letter #",TEXT_GET_SUBSTRING_TAIL:"",TEXT_GET_SUBSTRING_TOOLTIP:"Returns a specified portion of the text.",TEXT_INDEXOF_HELPURL:"https://github.com/google/blockly/wiki/Text#finding-text",TEXT_INDEXOF_INPUT_INTEXT:"in text",TEXT_INDEXOF_OPERATOR_FIRST:"find first occurrence of text",TEXT_INDEXOF_OPERATOR_LAST:"find last occurrence of text",TEXT_INDEXOF_TAIL:"",TEXT_INDEXOF_TOOLTIP:"Returns the index of the first/last occurrence of first text in the second text. Returns 0 if text is not found.",TEXT_ISEMPTY_HELPURL:"https://github.com/google/blockly/wiki/Text#checking-for-empty-text",TEXT_ISEMPTY_TITLE:"%1 is empty",TEXT_ISEMPTY_TOOLTIP:"Returns true if the provided text is empty.",TEXT_JOIN_HELPURL:"https://github.com/google/blockly/wiki/Text#text-creation",TEXT_JOIN_TITLE_CREATEWITH:"create text with",TEXT_JOIN_TOOLTIP:"Create a piece of text by joining together any number of items.",TEXT_LENGTH_HELPURL:"https://github.com/google/blockly/wiki/Text#text-modification",TEXT_LENGTH_TITLE:"length of %1",TEXT_LENGTH_TOOLTIP:"Returns the number of letters (including spaces) in the provided text.",TEXT_PRINT_HELPURL:"https://github.com/google/blockly/wiki/Text#printing-text",TEXT_PRINT_TITLE:"print %1",TEXT_PRINT_TOOLTIP:"Print the specified text, number or other value.",TEXT_PROMPT_HELPURL:"https://github.com/google/blockly/wiki/Text#getting-input-from-the-user",TEXT_PROMPT_TOOLTIP_NUMBER:"Prompt for user for a number.",TEXT_PROMPT_TOOLTIP_TEXT:"Prompt for user for some text.",TEXT_PROMPT_TYPE_NUMBER:"prompt for number with message",TEXT_PROMPT_TYPE_TEXT:"prompt for text with message",TEXT_TEXT_HELPURL:"https://en.wikipedia.org/wiki/String_(computer_science)",TEXT_TEXT_TOOLTIP:"A letter, word, or line of text.",TEXT_TRIM_HELPURL:"https://github.com/google/blockly/wiki/Text#trimming-removing-spaces",TEXT_TRIM_OPERATOR_BOTH:"trim spaces from both sides of",TEXT_TRIM_OPERATOR_LEFT:"trim spaces from left side of",TEXT_TRIM_OPERATOR_RIGHT:"trim spaces from right side of",TEXT_TRIM_TOOLTIP:"Return a copy of the text with spaces removed from one or both ends.",TODAY:"Today",VARIABLES_DEFAULT_NAME:"item",VARIABLES_GET_CREATE_SET:"Create 'set %1'",VARIABLES_GET_HELPURL:"https://github.com/google/blockly/wiki/Variables#get",VARIABLES_GET_TOOLTIP:"Returns the value of this variable.",VARIABLES_SET:"set %1 to %2",VARIABLES_SET_CREATE_GET:"Create 'get %1'",VARIABLES_SET_HELPURL:"https://github.com/google/blockly/wiki/Variables#set",VARIABLES_SET_TOOLTIP:"Sets this variable to be equal to the input."};lF.PROCEDURES_DEFRETURN_TITLE=lF.PROCEDURES_DEFNORETURN_TITLE,lF.CONTROLS_IF_IF_TITLE_IF=lF.CONTROLS_IF_MSG_IF,lF.CONTROLS_WHILEUNTIL_INPUT_DO=lF.CONTROLS_REPEAT_INPUT_DO,lF.CONTROLS_IF_MSG_THEN=lF.CONTROLS_REPEAT_INPUT_DO,lF.PROCEDURES_DEFRETURN_PROCEDURE=lF.PROCEDURES_DEFNORETURN_PROCEDURE,lF.CONTROLS_IF_ELSE_TITLE_ELSE=lF.CONTROLS_IF_MSG_ELSE,lF.PROCEDURES_CALLRETURN_CALL=lF.PROCEDURES_CALLNORETURN_CALL,lF.LISTS_GET_SUBLIST_INPUT_IN_LIST=lF.LISTS_INLIST,lF.LISTS_GET_INDEX_INPUT_IN_LIST=lF.LISTS_INLIST,lF.MATH_CHANGE_TITLE_ITEM=lF.VARIABLES_DEFAULT_NAME,lF.PROCEDURES_DEFRETURN_DO=lF.PROCEDURES_DEFNORETURN_DO,lF.CONTROLS_IF_ELSEIF_TITLE_ELSEIF=lF.CONTROLS_IF_MSG_ELSEIF,lF.LISTS_GET_INDEX_HELPURL=lF.LISTS_INDEX_OF_HELPURL,lF.CONTROLS_FOREACH_INPUT_DO=lF.CONTROLS_REPEAT_INPUT_DO,lF.CONTROLS_FOR_INPUT_DO=lF.CONTROLS_REPEAT_INPUT_DO,lF.LISTS_CREATE_WITH_ITEM_TITLE=lF.VARIABLES_DEFAULT_NAME,lF.TEXT_APPEND_VARIABLE=lF.VARIABLES_DEFAULT_NAME,lF.TEXT_CREATE_JOIN_ITEM_TITLE_ITEM=lF.VARIABLES_DEFAULT_NAME,lF.LISTS_INDEX_OF_INPUT_IN_LIST=lF.LISTS_INLIST,lF.LISTS_SET_INDEX_INPUT_IN_LIST=lF.LISTS_INLIST,lF.LISTS_CREATE_WITH_ITEM_TITLE=lF.VARIABLES_DEFAULT_NAME,lF.TUPLE_CREATE_WITH_ITEM_TITLE=lF.VARIABLES_DEFAULT_NAME,lF.DICT_CREATE_WITH_ITEM_TITLE=lF.VARIABLES_DEFAULT_NAME,lF.SET_CREATE_WITH_ITEM_TITLE=lF.VARIABLES_DEFAULT_NAME,lF.TEXT_APPEND_VARIABLE=lF.VARIABLES_DEFAULT_NAME,lF.TEXT_CREATE_JOIN_ITEM_TITLE_ITEM=lF.VARIABLES_DEFAULT_NAME,lF.MATH_CHANGE_TITLE_ITEM=lF.VARIABLES_DEFAULT_NAME,lF.LABPLUS_USB_SWITCH_ON="turn on",lF.LABPLUS_USB_SWITCH_OFF="turn off",lF.LABPLUS_MOTOR_ON_ANTICLOCKWISE="toggle",lF.XUNFEI_SPEECH_TTS_HELPURL="",lF.XUNFEI_SPEECH_TTS_TOOLTIP='The synthesized audio file format can only be "*.pcm"',lF.XUNFEI_SPEECH_TTS_MESSAGE0="[iFLYTEK] synthetic audio %1 APPID %2 APISecret %3 APIKey %4 text %5 transfer to audio file %6",lF.XUNFEI_SPEECH_IAT_HELPURL="",lF.XUNFEI_SPEECH_IAT_TOOLTIP='The audio formats that can be recognized are "*.pcm" and "*.wav"',lF.XUNFEI_SPEECH_IAT_MESSAGE0="[iFLYTEK] identify audio %1 APPID %2 APISecret %3 APIKey %4 audio file to be identified %5",lF.XUNFEI_SPEECH_IAT_RESULT_HELPURL="",lF.XUNFEI_SPEECH_IAT_RESULT_TOOLTIP="",lF.XUNFEI_SPEECH_IAT_RESULT_MESSAGE0="[iFLYTEK] identify result",lF.MPYTHON_LARK_GET_ALL_COLOR_MESSAGE0="LARK I2C RGB color",lF.MPYTHON_LARK_GET_ALL_COLOR_TOOLTIP="Returns as list",lF.MPYTHON_LARK_GET_COLOR_TOOLTIP="",lF.MPYTHON_LARK_GET_COLOR_MESSAGE0="LARK I2C RGB color %1",lF.MPYTHON_lARK_RED="RED",lF.MPYTHON__LARK_GREEN="GREEN",lF.MPYTHON__LARK_BLUE="BLUE",lF.MPYTHON_LARK_GET_ALL_COLOR_HSV_TOOLTIP="HSV(Hue, Saturation, Value)",lF.MPYTHON_LARKT_GET_ALL_COLOR_HSV_MESSAGE0="LARK I2C HSV color",lF.MPYTHON_LARK_GET_COLOR_HSV_TOOLTIP="HSV(Hue, Saturation, Value)",lF.MPYTHON_LARK_GET_COLOR_HSV_MESSAGE0="LARK I2C HSV color %1",lF.MPYTHON_LARK_GET_COLOR_STRING_TOOLTIP="",lF.MPYTHON_LARK_GET_COLOR_STRING_MESSAGE0="LARK GET COLOR",lF.MPYTHON_LARK_DISCERN_COLOR_TOOLTIP="",lF.MPYTHON_LARK_DISCERN_COLOR_MESSAGE0="LARK GET COLOR %1",lF.MPYTHON_LARK_RED="RED",lF.MPYTHON_LARK_GREEN="GREEN",lF.MPYTHON_LARK_BLUE="BLUE",lF.MPYTHON_LARK_ORANGE="ORANGE",lF.MPYTHON_LARK_YELLOW="YELLOW",lF.MPYTHON_LARK_PURPLE="PURPLE",lF.MPYTHON_LARK_CYAN="CYAN",lF.MPYTHON_LARK_NONE="NO COLOR",lF.MPYTHON_LARK_NULL="FAIL THE COLOR",lF.MPYTHON_LARK_ULTRASONIC_TOOLTIP="",lF.MPYTHON_LARK_ULTRASONIC_MESSAGE0="LARK I2C ultrasonic value",lF.MPYTHON_LARK_MOTOR_SET_I2C_TOOLTIP="",lF.MPYTHON_LARK_MOTOR_SET_I2C_MESSAGE0="LARK I2C SET MOTOR %1 SPEED %2",lF.MPYTHON_LARK_MOTOR2_SET_I2C_TOOLTIP="",lF.MPYTHON_LARK_MOTOR2_SET_I2C_MESSAGE0="SWIFT HORSE %1 速度 %2",lF.MPYTHON_LARK_GET_LINE_ON_I2C_TOOLTIP="",lF.mpython_LARK_GET_LINE_ON_I2C_MESSAGE0="LARK I2C GET %1 VALUE",lF.mpython_LARK_GET_LINE_RIGHT_ON_I2C="RIGHT",lF.mpython_LARK_GET_LINE_LEFT_ON_I2C="LEFT",lF.MPYTHON_LARK_SEARCH_LINE_ON_I2C_TOOLTIP="",lF.mpython_LARK_SEARCH_LINE_ON_I2C_MESSAGE0="LARK I2C SEARCH TOUCH LINE %1",lF.MPYTHON_LARK_SEARCH_LEFT="LEFT",lF.MPYTHON_LARK_SEARCH_RIGHT="RIGHT",lF.MPYTHON_LARK_SEARCH_LEFT2="ALL",lF.MPYTHON_LARK_SEARCH_RIGHT2="NOT",lF.MPYTHON_LARK_SEARCH_BOTH="ALL",lF.MPYTHON_LARK_SEARCH_NONE="NOT",lF.MPYTHON_LARK__CAR_GET_ALL_COLOR_TOOLTIP="Returns as list",lF.MPYTHON_LARK__CAR_GET_ALL_COLOR_MESSAGE0="HORSE GET COLOR",lF.MPYTHON_LARK_CAR_GET_COLOR_TOOLTIP="",lF.MPYTHON_LARK_CAR_GET_COLOR_MESSAGE0="HORSE GET COLOR %1",lF.MPYTHON_lARK_CAR_RED="RED",lF.MPYTHON__LARK_CAR_GREEN="GREEN",lF.MPYTHON__LARK_CAR_BLUE="BLUE",lF.MPYTHON_LARK_CAR_GET_ALL_COLOR_HSV_TOOLTIP="HSV(Hue, Saturation, Value)",lF.MPYTHON_LARKT_CAR_GET_ALL_COLOR_HSV_MESSAGE0="HORSE I2C HSV color",lF.MPYTHON_LARK_CAR_GET_COLOR_HSV_TOOLTIP="HSV(Hue, Saturation, Value)",lF.MPYTHON_LARK_CAR_GET_COLOR_HSV_MESSAGE0="HORSE I2C HSV %1",lF.MPYTHON_LARK_CAR_GET_COLOR_STRING_TOOLTIP="",lF.MPYTHON_LARK_CAR_GET_COLOR_STRING_MESSAGE0="HORSE GET COLOR",lF.MPYTHON_LARK_CAR_DISCERN_COLOR_TOOLTIP="",lF.MPYTHON_LARK_CAR_DISCERN_COLOR_MESSAGE0="HORSE GET %1",lF.MPYTHON_LARK_CAR_RED="RED",lF.MPYTHON_LARK_CAR_GREEN="Green",lF.MPYTHON_LARK_CAR_BLUE="Blue",lF.MPYTHON_LARK_CAR_ORANGE="Orange",lF.MPYTHON_LARK_CAR_YELLOW="Yellow",lF.MPYTHON_LARK_CAR_PURPLE="Purple",lF.MPYTHON_LARK_CAR_CYAN="Cyan",lF.MPYTHON_LARK_CAR_NONE="None",lF.MPYTHON_LARK_CAR_NULL="Null",lF.MPYTHON_LARK_CAR_ULTRASONIC_TOOLTIP="",lF.MPYTHON_LARK_CAR_ULTRASONIC_MESSAGE0="Horse Get Ultrasoinc",lF.MPYTHON_LARK_CAR_GET_LINE_ON_I2C_TOOLTIP="",lF.mpython_LARK_CAR_GET_LINE_ON_I2C_MESSAGE0="HORSE GET %1 LINE VALUE",lF.mpython_LARK_CAR_GET_LINE_RIGHT_ON_I2C="RIGHT",lF.mpython_LARK_CAR_GET_LINE_LEFT_ON_I2C="LEFT",lF.MPYTHON_LARK_CAR_SEARCH_LINE_ON_I2C_TOOLTIP="",lF.mpython_LARK_CAR_SEARCH_LINE_ON_I2C_MESSAGE0="HORSE I2C SEARCH TOUCH LINE %1",lF.MPYTHON_LARK_CAR_SEARCH_LEFT="LEFT TOUCHED",lF.MPYTHON_LARK_CAR_SEARCH_RIGHT="RIGHT TOUCHED",lF.MPYTHON_LARK_CAR_SEARCH_LEFT2="BOTH TOUCHED",lF.MPYTHON_LARK_CAR_SEARCH_NONE="NOT TOUCHED",lF.MPYTHON_LARK_MOTOR_SET_I2C_TOOLTIP="",lF.MPYTHON_LARK_MOTOR_SET_I2C_MESSAGE0="HOSRE MOTION %1 SPEED %2",lF.MPYTHON_LARK_CAR_MOTION_LEFT="Trun Left",lF.MPYTHON_LARK_CAR_MOTION_RIGHT="Trun Right",lF.MPYTHON_LARK_CAR_MOTION_FORWARD="forward",lF.MPYTHON_LARK_CAR_MOTION_BACKWARD="Backward",lF.MPYTHON_LARK_CAR_MOTION_STOP="Stop",lF.MPYTHON_DEFINE_THREAD_MESSAGE0="define thread %1",lF.MPYTHON_RUN_THREAD_MESSAGE0="run thread %1",lF.NUMBER_TO_BYTES_MESSAGE0="(struct.pack) convert number to bytes %1 %2 %3 %4 source number %5",lF.BYTES_TO_NUMBER_MESSAGE0="(struct.unpack) unpack bytes to number %1 %2 %3 %4 source bytes %5",lF.LITTLE_ENDIAN="Little-Endian (Default)",lF.BIG_ENDIAN="Big-Endian",lF.MPYTHON2_ACCELEROMETER_EVENT_MESSAGE0="[mPython 2.x] When board is %1",lF.MPYTHON2_ACCELEROMETER_EVENT_HELPURL="",lF.MPYTHON2_ACCELEROMETER_EVENT_TOOLTIP="",lF.MPYTHON2_ACCELEROMETER_EVENT_TILT_LEFT="tilt left",lF.MPYTHON2_ACCELEROMETER_EVENT_TILT_RIGHT="tilt right",lF.MPYTHON2_ACCELEROMETER_EVENT_TILT_UP="tilt up",lF.MPYTHON2_ACCELEROMETER_EVENT_TILT_DOWN="tilt down",lF.MPYTHON2_ACCELEROMETER_EVENT_FACE_UP="face up",lF.MPYTHON2_ACCELEROMETER_EVENT_FACE_DOWN="face down",lF.MPYTHON2_ACCELEROMETER_EVENT_SINGLE_CLICK="single click",lF.MPYTHON2_ACCELEROMETER_EVENT_DOUBLE_CLICK="double click",lF.MPYTHON2_ACCELEROMETER_EVENT_FREEFALL="freefall",lF.MPYTHON2_ACCELEROMETER_ROLL_ANGLE="roll angle",lF.MPYTHON2_ACCELEROMETER_PITCH_ANGLE="pitch angle",lF.MPYTHON2_ACCELEROMETER_ANGLE_HELPURL="",lF.MPYTHON2_ACCELEROMETER_ANGLE_TOOLTIP="",lF.MPYTHON2_ACCELEROMETER_ANGLE_MESSAGE0="Get %1",lF.MPYTHON2_BUTTON_IS_PRESSED_HELPURL="",lF.MPYTHON2_BUTTON_IS_PRESSED_TOOLTIP="",lF.MPYTHON2_BUTTON_IS_PRESSED_MESSAGE0="Button %1 is pressed",lF.MPYTHON2_BUTTON_WAS_PRESSED_HELPURL="",lF.MPYTHON2_BUTTON_WAS_PRESSED_TOOLTIP="",lF.MPYTHON2_BUTTON_WAS_PRESSED_MESSAGE0="Button %1 was pressed",lF.MPYTHON2_BUTTON_GET_PRESSES_HELPURL="",lF.MPYTHON2_BUTTON_GET_PRESSES_TOOLTIP="",lF.MPYTHON2_BUTTON_GET_PRESSES_MESSAGE0="Get number of presses for button %1",lF.MPYTHON2_BUTTON_EVENT_MESSAGE0="When button %1 is %2",lF.MPYTHON2_BUTTON_EVENT_HELPURL="",lF.MPYTHON2_BUTTON_EVENT_TOOLTIP="",lF.MPYTHON2_BUTTON_EVENT_PRESSED="pressed",lF.MPYTHON2_BUTTON_EVENT_RELEASED="released",lF.MPYTHON2_TOUCHPAD_IS_PRESSED_HELPURL="",lF.MPYTHON2_TOUCHPAD_IS_PRESSED_TOOLTIP="",lF.MPYTHON2_TOUCHPAD_IS_PRESSED_MESSAGE0="Touchpad %1 is pressed",lF.MPYTHON2_TOUCHPAD_WAS_PRESSED_HELPURL="",lF.MPYTHON2_TOUCHPAD_WAS_PRESSED_TOOLTIP="",lF.MPYTHON2_TOUCHPAD_WAS_PRESSED_MESSAGE0="Touchpad %1 was pressed",lF.MPYTHON2_TOUCHPAD_GET_PRESSES_HELPURL="",lF.MPYTHON2_TOUCHPAD_GET_PRESSES_TOOLTIP="",lF.MPYTHON2_TOUCHPAD_GET_PRESSES_MESSAGE0="Get number of presses for touchpad %1",lF.MPYTHON2_TOUCHPAD_VALUE_HELPURL="",lF.MPYTHON2_TOUCHPAD_VALUE_TOOLTIP="",lF.MPYTHON2_TOUCHPAD_VALUE_MESSAGE0="Touchpad %1 value",lF.MPYTHON2_TOUCHPAD_EVENT_MESSAGE0="When touchpad %1 is %2",lF.MPYTHON2_TOUCHPAD_EVENT_HELPURL="",lF.MPYTHON2_TOUCHPAD_EVENT_TOOLTIP="",lF.MPYTHON2_TOUCHPAD_EVENT_PRESSED="pressed",lF.MPYTHON2_TOUCHPAD_EVENT_RELEASED="released",lF.MPYTHON2_TOUCHPAD_THRESHOLD_MESSAGE0="Set threshold for touchpad %1 as %2",lF.MPYTHON2_TOUCHPAD_THRESHOLD_HELPURL="",lF.MPYTHON2_TOUCHPAD_THRESHOLD_TOOLTIP="",lF.BLE_UUID_HELPURL="https://mpython-ble.readthedocs.io/zh/master/api/index.html#UUID",lF.BLE_UUID_TOOLTIP="",lF.BLE_SETUP_PERIPHERAL_HELPURL="",lF.BLE_SETUP_PERIPHERAL_TOOLTIP="",lF.BLE_SETUP_PERIPHERAL_MESSAGE0="make BLE Peripheral object with %1 name %2 Service UUID %3",lF.BLE_ADD_CHARACTERISTIC_HELPURL="",lF.BLE_ADD_CHARACTERISTIC_TOOLTIP="",lF.BLE_ADD_CHARACTERISTIC_MESSAGE0="add BLE Characteristic %1 %2 Characteristic UUID %3 Read %4 Write %5 Notity %6",lF.BLE_PERIPHERAL_ADVERTISE_HELPURL="",lF.BLE_PERIPHERAL_ADVERTISE_TOOLTIP="",lF.BLE_PERIPHERAL_ADVERTISE_MESSAGE0="BLE Peripheral %1",lF.BLE_START_BROADCASTING="start broadcasting",lF.BLE_STOP_BROADCASTING="stop broadcasting",lF.BLE_PERIPHERAL_ATTRUBUTE_READ_HELPURL="",lF.BLE_PERIPHERAL_ATTRUBUTE_READ_TOOLTIP="",lF.BLE_PERIPHERAL_ATTRUBUTE_READ_MESSAGE0="read BLE Peripheral Characteristic %1",lF.BLE_PERIPHERAL_ATTRUBUTE_WRITE_HELPURL="",lF.BLE_PERIPHERAL_ATTRUBUTE_WRITE_TOOLTIP="",lF.BLE_PERIPHERAL_ATTRUBUTE_WRITE_MESSAGE0="write BLE Peripheral Characteristic %1 %2 value %3 Notify %4",lF.BLE_PERIPHERAL_DISCONNECT_HELPURL="",lF.BLE_PERIPHERAL_DISCONNECT_TOOLTIP="",lF.BLE_PERIPHERAL_DISCONNECT_MESSAGE0="BLE Peripheral disconnect",lF.BLE_PERIPHERAL_MAC_HELPURL="",lF.BLE_PERIPHERAL_MAC_TOOLTIP="",lF.BLE_PERIPHERAL_MAC_MESSAGE0="BLE Peripheral MAC address",lF.BLE_PERIPHERAL_CONNECTION_CALLBACK_HELPURL="",lF.BLE_PERIPHERAL_CONNECTION_CALLBACK_TOOLTIP="",lF.BLE_PERIPHERAL_CONNECTION_CALLBACK_MESSAGE0="when BLE Peripheral connect to Centeral %1 connect handle %2 address type %3 Centeral MAC %4",lF.BLE_PERIPHERAL_WRITE_CALLBACK_HELPURL="",lF.BLE_PERIPHERAL_WRITE_CALLBACK_TOOLTIP="",lF.BLE_PERIPHERAL_WRITE_CALLBACK_MESSAGE0="when BLE Characteristic is overwritten %1 connect handle %2 attrubute handle %3 written data %4",lF.BLE_SETUP_CENTERAL_HELPURL="",lF.BLE_SETUP_CENTERAL_TOOLTIP="",lF.BLE_SETUP_CENTERAL_MESSAGE0="make BLE Centeral object with name %1",lF.BLE_CENTERAL_CONNECT_HELPURL="",lF.BLE_CENTERAL_CONNECT_TOOLTIP="",lF.BLE_CENTERAL_CONNECT_MESSAGE0="BLE Centeral connect to %1 %2",lF.BLE_CENTERAL_IS_CONNECTED_HELPURL="",lF.BLE_CENTERAL_IS_CONNECTED_TOOLTIP="",lF.BLE_CENTERAL_IS_CONNECTED_MESSAGE0="BLE Centeral is connected ?",lF.BLE_CENTERAL_DEF_CHARACTERISTIC_HELPURL="",lF.BLE_CENTERAL_DEF_CHARACTERISTIC_TOOLTIP="",lF.BLE_CENTERAL_DEF_CHARACTERISTIC_MESSAGE0="set %1 as connected Peripheral Characteristic object %2 Service UUID %3 Characteristic UUID %4",lF.BLE_CENTERAL_CHARACTERISTIC_READ_HELPURL="",lF.BLE_CENTERAL_CHARACTERISTIC_READ_TOOLTIP="",lF.BLE_CENTERAL_CHARACTERISTIC_READ_MESSAGE0="read connected Peripheral Characteristic %1 value",lF.BLE_CENTERAL_CHARACTERISTIC_WRITE_HELPURL="",lF.BLE_CENTERAL_CHARACTERISTIC_WRITE_TOOLTIP="",lF.BLE_CENTERAL_CHARACTERISTIC_WRITE_MESSAGE0="write connected Peripheral Characteristic %1 value as %2",lF.BLE_CENTERAL_NOTIFY_CALLBACK_HELPURL="",lF.BLE_CENTERAL_NOTIFY_CALLBACK_TOOLTIP="",lF.BLE_CENTERAL_NOTIFY_CALLBACK_MESSAGE0="when received Notify data %1 value handle %2 notify data %3",lF.BLE_CENTERAL_CONNECTED_INFO_HELPURL="",lF.BLE_CENTERAL_CONNECTED_INFO_TOOLTIP="",lF.BLE_CENTERAL_CONNECTED_INFO_MESSAGE0="connected Peripheral info %1",lF.BLE_CENTERAL_CLOSE_HELPURL="",lF.BLE_CENTERAL_CLOSE_TOOLTIP="",lF.BLE_CENTERAL_CLOSE_MESSAGE0="BLE Centeral disconnect",lF.BLE_INFO_NAME="name",lF.BLE_INFO_MAC="mac",lF.BLE_INFO_RSSI="rssi",lF.BLE_INFO_ADDRTYPE="addr_type",lF.BLE_INFO_ADVTYPE="adv_type",lF.BLE_INFO_DATA="data(tuple)",lF.BLE_SETUP_UART_HELPURL="",lF.BLE_SETUP_UART_TOOLTIP="",lF.BLE_SETUP_UART_MESSAGE0="make BLE UART slave with name %1",lF.BLE_UART_IS_CONNECTED_HELPURL="",lF.BLE_UART_IS_CONNECTED_TOOLTIP="",lF.BLE_UART_IS_CONNECTED_MESSAGE0="BLE UART is connected ?",lF.BLE_UART_ANY_HELPURL="",lF.BLE_UART_ANY_TOOLTIP="",lF.BLE_UART_ANY_MESSAGE0="BLE UART readable bytes",lF.BLE_UART_IRQ_HELPURL="",lF.BLE_UART_IRQ_TOOLTIP="",lF.BLE_UART_IRQ_MESSAGE0="when BLE UART received data %1 do %2",lF.BLE_UART_READ_HELPURL="",lF.BLE_UART_READ_TOOLTIP="message from UART",lF.BLE_UART_READ_MESSAGE0="received data",lF.BLE_UART_WRITE_HELPURL="",lF.BLE_UART_WRITE_TOOLTIP="",lF.BLE_UART_WRITE_MESSAGE0="BLE UART send %1",lF.BLE_UART_CLOSE_HELPURL="",lF.BLE_UART_CLOSE_TOOLTIP="",lF.BLE_UART_CLOSE_MESSAGE0="BLE UART disconnect",lF.BLE_SETUP_UART_MASTER_HELPURL="",lF.BLE_SETUP_UART_MASTER_TOOLTIP="",lF.BLE_SETUP_UART_MASTER_MESSAGE0="make BLE UART master, connect to %1 %2",lF.BLE_SETUP_HID_HELPURL="",lF.BLE_SETUP_HID_TOOLTIP="",lF.BLE_SETUP_HID_MESSAGE0="make BLE HID %1 object %2 name %3 battery %4",lF.BLE_HID_MOUSE="mouse",lF.BLE_HID_KEYBOARD="keyboard",lF.BLE_HID_CONSUMER="consumer",lF.BLE_HID_ADVERTISE_HELPURL="",lF.BLE_HID_ADVERTISE_TOOLTIP="",lF.BLE_HID_ADVERTISE_MESSAGE0="BLE HID %1",lF.BLE_HID_CONNECT_EVENT_HELPURL="",lF.BLE_HID_CONNECT_EVENT_TOOLTIP="",lF.BLE_HID_CONNECT_EVENT_MESSAGE0="when BLE HID connected",lF.BLE_HID_DISCONNECT_HELPURL="",lF.BLE_HID_DISCONNECT_TOOLTIP="",lF.BLE_HID_DISCONNECT_MESSAGE0="BLE HID disconnect",lF.BLE_HID_BATTERY_LEVEL_HELPURL="",lF.BLE_HID_BATTERY_LEVEL_TOOLTIP="",lF.BLE_HID_BATTERY_LEVEL_MESSAGE0="BLE HID battery level",lF.BLE_HID_MOUSE_BUTTONS_HELPURL="",lF.BLE_HID_MOUSE_BUTTONS_TOOLTIP="",lF.BLE_HID_MOUSE_BUTTONS_MESSAGE0="mouse button %1",lF.BLE_HID_MOUSE_CLICK_HELPURL="",lF.BLE_HID_MOUSE_CLICK_TOOLTIP="",lF.BLE_HID_MOUSE_CLICK_MESSAGE0="BLE HID mouse click %1",lF.BLE_HID_MOUSE_PRESS_HELPURL="",lF.BLE_HID_MOUSE_PRESS_TOOLTIP="",lF.BLE_HID_MOUSE_PRESS_MESSAGE0="BLE HID mouse press %1",lF.BLE_HID_MOUSE_RELEASE_HELPURL="",lF.BLE_HID_MOUSE_RELEASE_TOOLTIP="",lF.BLE_HID_MOUSE_RELEASE_MESSAGE0="BLE HID mouse release %1",lF.BLE_HID_MOUSE_RELEASE_ALL_HELPURL="",lF.BLE_HID_MOUSE_RELEASE_ALL_TOOLTIP="",lF.BLE_HID_MOUSE_RELEASE_ALL_MESSAGE0="BLE HID mouse release all",lF.BLE_HID_MOUSE_MOVE_HELPURL="",lF.BLE_HID_MOUSE_MOVE_TOOLTIP="x, y - cursor movement, range ±127 .\nwheel - wheel movement, range ±127 .",lF.BLE_HID_MOUSE_MOVE_MESSAGE0="BLE HID mouse cursor move %1 x %2 y %3 wheel %4",lF.BLE_HID_KEYBOARD_BUTTONS_HELPURL="",lF.BLE_HID_KEYBOARD_BUTTONS_TOOLTIP="",lF.BLE_HID_KEYBOARD_BUTTONS_MESSAGE0="keyboard button %1",lF.BLE_HID_KEYBOARD_SEND_HELPURL="",lF.BLE_HID_KEYBOARD_SEND_TOOLTIP="",lF.BLE_HID_KEYBOARD_SEND_MESSAGE0="BLE HID keyboard send %1",lF.BLE_HID_KEYBOARD_SEND_MULTI_HELPURL="",lF.BLE_HID_KEYBOARD_SEND_MULTI_TOOLTIP="",lF.BLE_HID_KEYBOARD_SEND_MULTI_MESSAGE0="BLE HID keyboard send multiple %1 %2 %3",lF.BLE_HID_KEYBOARD_PRESS_HELPURL="",lF.BLE_HID_KEYBOARD_PRESS_TOOLTIP="",lF.BLE_HID_KEYBOARD_PRESS_MESSAGE0="BLE HID keyboard press %1",lF.BLE_HID_KEYBOARD_RELEASE_HELPURL="",lF.BLE_HID_KEYBOARD_RELEASE_TOOLTIP="",lF.BLE_HID_KEYBOARD_RELEASE_MESSAGE0="BLE HID keyboard release %1",lF.BLE_HID_KEYBOARD_RELEASE_ALL_HELPURL="",lF.BLE_HID_KEYBOARD_RELEASE_ALL_TOOLTIP="",lF.BLE_HID_KEYBOARD_RELEASE_ALL_MESSAGE0="BLE HID keyboard release all",lF.BLE_HID_CONSUMER_BUTTONS_HELPURL="",lF.BLE_HID_CONSUMER_BUTTONS_TOOLTIP="",lF.BLE_HID_CONSUMER_BUTTONS_MESSAGE0="remote control button %1",lF.BLE_HID_CONSUMER_SEND_HELPURL="",lF.BLE_HID_CONSUMER_SEND_TOOLTIP="",lF.BLE_HID_CONSUMER_SEND_MESSAGE0="BLE HID remote control send %1",lF.BLE_SETUP_IBEACON_HELPURL="",lF.BLE_SETUP_IBEACON_TOOLTIP="",lF.BLE_SETUP_IBEACON_MESSAGE0="make BLE iBeacon object with %1 UUID %2 major %3 minor %4",lF.BLE_IBEACON_ADVERTISE_HELPURL="",lF.BLE_IBEACON_ADVERTISE_TOOLTIP="",lF.BLE_IBEACON_ADVERTISE_MESSAGE0="BLE iBeacon %1",lF.MPYTHON_PARROT_GET_BATTERY_LEVEL_HELPURL="",lF.MPYTHON_PARROT_GET_BATTERY_LEVEL_TOOLTIP="Return power in mV",lF.MPYTHON_PARROT_GET_BATTERY_LEVEL_MESSAGE0="Voltage(mV) of expansion-board",lF.MPYTHON_BLUEBIT_IR_ENCODE_RAW_HELPURL="",lF.MPYTHON_BLUEBIT_IR_ENCODE_RAW_TOOLTIP="Return the encoded infrared pulse data buff",lF.MPYTHON_BLUEBIT_IR_ENCODE_RAW_MESSAGE0="Expansion-board generating RAW coding %1 carry_freq(Hz) %2 len %3 repeat_pos %4 code %5 data %6",lF.MPYTHON_BLUEBIT_IR_ENCODE_NEC_HELPURL="",lF.MPYTHON_BLUEBIT_IR_ENCODE_NEC_TOOLTIP="Return the encoded infrared pulse data buff\nUser code: 0~255\nCommand code: 0~255",lF.MPYTHON_BLUEBIT_IR_ENCODE_NEC_MESSAGE0="Expansion-board generating NEC coding %1 User code %2 Command code %3",lF.MPYTHON_BLUEBIT_IR_SEND_HELPURL="",lF.MPYTHON_BLUEBIT_IR_SEND_TOOLTIP="",lF.MPYTHON_BLUEBIT_IR_SEND_MESSAGE0="Expansion-board sending infrared pulse data %1 %2",lF.MPYTHON_BLUEBIT_IR_SEND_REPEAT_0="send once",lF.MPYTHON_BLUEBIT_IR_SEND_REPEAT_1="keep sending",lF.MPYTHON_BLUEBIT_IR_STOP_SEND_HELPURL="",lF.MPYTHON_BLUEBIT_IR_STOP_SEND_TOOLTIP="",lF.MPYTHON_BLUEBIT_IR_STOP_SEND_MESSAGE0="Expansion-board stop sending infrared pulse data",lF.MPYTHON_BLUEBIT_IR_LEARN_HELPURL="",lF.MPYTHON_BLUEBIT_IR_LEARN_TOOLTIP="The learning result will be returned after 4 seconds.",lF.MPYTHON_BLUEBIT_IR_LEARN_MESSAGE0="Expansion-board do infrared learning",lF.MPYTHON_BLUEBIT_IR_GET_LEARN_STATUS_HELPURL="",lF.MPYTHON_BLUEBIT_IR_GET_LEARN_STATUS_TOOLTIP="",lF.MPYTHON_BLUEBIT_IR_GET_LEARN_STATUS_MESSAGE0="Is there any result for the infrared learning ?",lF.MPYTHON_BLUEBIT_IR_GET_LEARN_DATA_HELPURL="",lF.MPYTHON_BLUEBIT_IR_GET_LEARN_DATA_TOOLTIP='Return the learned "infrared coded data", which must be used after the "learn()" function.',lF.MPYTHON_BLUEBIT_IR_GET_LEARN_DATA_MESSAGE0="Expansion-board learned infrared coding data",lF.MPYTHON_MAIN_HELPURL="",lF.MPYTHON_MAIN_TOOLTIP="This block does not have to be used, it just makes the program structure more regular.",lF.MPYTHON_MAIN_MESSAGE0="Main program",lF.MPYTHON_MLX90615_SET_HELPURL="",lF.MPYTHON_MLX90615_SET_MESSAGE0="MLX90615 set sensor emissivity %1",lF.MPYTHON_MLX90615_SET_TOOLTIP="",lF.MPYTHON_MLX90615_GET_HELPURL="",lF.MPYTHON_MLX90615_GET_MESSAGE0="MLX90615 get sensor emissivity",lF.MPYTHON_MLX90615_GET_TOOLTIP="",lF.MPYTHON_MLX90615_THERMOMETRY_HELPURL="",lF.MPYTHON_MLX90615_THERMOMETRY_MESSAGE0="MLX90615 measured temperature",lF.MPYTHON_MLX90615_THERMOMETRY_TOOLTIP="",lF.MPYTHON_MQ135_INIT_HELPURL="",lF.MPYTHON_MQ135_INIT_MESSAGE0="initialize MQ135 at output pin %1 temperature %2 ℃ humidity%3 %",lF.MPYTHON_MQ135_INIT_TOOLTIP="V(VCC) is connected to the power port of the expansion board, G(GND) is connected to the ground port of the expansion board, and AO is connected to the pin of the expansion board\nMQ135 is used to detect the concentration of carbon dioxide, alcohol, benzene, nitrogen oxides, ammonia and other gases in the air.",lF.MPYTHON_MQ135_OPTIONS_MESSAGE0="MQ135 return %1",lF.MPYTHON_MQ135_OPTIONS_HELPURL="",lF.MPYTHON_MQ135_OPTIONS_TOOLTIP="",lF.MPYTHON_MQ135_GET_RZERO="correction of sensor resistance",lF.MPYTHON_MQ135_GET_CORRECTED_RZERO="calibrate sensor resistance (calibrate temperature and humidity)",lF.MPYTHON_MQ135_GET_PPM="the ppm concentration of carbon dioxide, alcohol, benzene, nitrogen oxides, ammonia and other gases",lF.MPYTHON_MQ135_GET_CORRECTED_PPM="the ppm concentration of carbon dioxide, alcohol, benzene, nitrogen oxides, ammonia and other gases",lF.mpython_gyroscope_get_HELPURL="",lF.mpython_gyroscope_get_MESSAGE0="%1 axis angular velocity",lF.mpython_gyroscope_get_TOOLTIP="Only applicable to the mPython board version above v2.3",lF.MPYTHON_GYROSCOPE_RANGE_16_DPS="±16dps",lF.MPYTHON_GYROSCOPE_RANGE_32_DPS="±32dps",lF.MPYTHON_GYROSCOPE_RANGE_64_DPS="±64dps",lF.MPYTHON_GYROSCOPE_RANGE_128_DPS="±128dps",lF.MPYTHON_GYROSCOPE_RANGE_256_DPS="±256dps",lF.MPYTHON_GYROSCOPE_RANGE_512_DPS="±512dps",lF.MPYTHON_GYROSCOPE_RANGE_1024_DPS="±1024dps",lF.MPYTHON_GYROSCOPE_RANGE_2048_DPS="±2048dps",lF.MPYTHON_GYROSCOPE_SET_RANGE_HELPURL="",lF.MPYTHON_GYROSCOPE_SET_RANGE_TOOLTIP="Default is ±256dps. Only applicable to the mPython board version above v2.3",lF.MPYTHON_GYROSCOPE_SET_RANGE_MESSAGE0="set angular velocity range to %1",lF.MPYTHON_GYROSCOPE_SET_OFFSET_HELPURL="",lF.MPYTHON_GYROSCOPE_SET_OFFSET_TOOLTIP="Only applicable to the mPython board version above v2.3",lF.MPYTHON_GYROSCOPE_SET_OFFSET_MESSAGE0="calibration angular velocity value %1 X axis deviation %2 Y axis deviation %3 Z axis deviation %4";const AF=lF;Object.assign(a_.Variables,L_),Object.assign(a_.Procedures,bi),a_.Python=_O,a_.generator=_O,p_.Profile.default={},Object.assign(p_.Profile,Xg),Object.assign(p_.Profile.default,Xg["ESP32 Generic"]),Object.assign(a_.Lang.ZhHans,RF),Object.assign(a_.Lang.ZhHant,SF),Object.assign(a_.Lang.En,AF),Object.assign(a_.Blocks,t,e,i,T,E,n,o,s,O,I,a,p,M,y,k,V,B,f,w,D,X,v,x,b,Y,H,c,G,g,F,U,O_),Object.assign(a_.Python.forBlock,L,R,r,S,l,A,P,N,d,h,u,m,C,__,o_,n_,J,t_,s_,z,E_,T_,i_,e_,Z,K,W,j,q,$,Q,I_)})(); \ No newline at end of file diff --git a/boards/default/micropython_esp32/styles/main.fc544ac3.css b/boards/default/micropython_esp32/styles/main.f3b76c12.css similarity index 100% rename from boards/default/micropython_esp32/styles/main.fc544ac3.css rename to boards/default/micropython_esp32/styles/main.f3b76c12.css diff --git a/boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/v5xvbx0_7d8E.mix b/boards/default/micropython_esp32c2/examples/MixGo MINI/01-1-快速入门-你好世界.mix similarity index 100% rename from boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/v5xvbx0_7d8E.mix rename to boards/default/micropython_esp32c2/examples/MixGo MINI/01-1-快速入门-你好世界.mix diff --git a/boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/BNH2ldHY7iqn.mix b/boards/default/micropython_esp32c2/examples/MixGo MINI/01-2-快速入门-你好世界2.mix similarity index 100% rename from boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/BNH2ldHY7iqn.mix rename to boards/default/micropython_esp32c2/examples/MixGo MINI/01-2-快速入门-你好世界2.mix diff --git a/boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/Ml5oibxE6oQn.mix b/boards/default/micropython_esp32c2/examples/MixGo MINI/02-1-快速入门-跳动的心.mix similarity index 100% rename from boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/Ml5oibxE6oQn.mix rename to boards/default/micropython_esp32c2/examples/MixGo MINI/02-1-快速入门-跳动的心.mix diff --git a/boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/Bg_jX1muJsL-.mix b/boards/default/micropython_esp32c2/examples/MixGo MINI/02-2-快速入门-为你心动.mix similarity index 100% rename from boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/Bg_jX1muJsL-.mix rename to boards/default/micropython_esp32c2/examples/MixGo MINI/02-2-快速入门-为你心动.mix diff --git a/boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/BMh3Na7bR930.mix b/boards/default/micropython_esp32c2/examples/MixGo MINI/03-1-快速入门-心随我动.mix similarity index 100% rename from boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/BMh3Na7bR930.mix rename to boards/default/micropython_esp32c2/examples/MixGo MINI/03-1-快速入门-心随我动.mix diff --git a/boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/kQ_-UGIApAkQ.mix b/boards/default/micropython_esp32c2/examples/MixGo MINI/03-2-快速入门-心随我动2.mix similarity index 100% rename from boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/kQ_-UGIApAkQ.mix rename to boards/default/micropython_esp32c2/examples/MixGo MINI/03-2-快速入门-心随我动2.mix diff --git a/boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/S11X1zJHzSUE.mix b/boards/default/micropython_esp32c2/examples/MixGo MINI/04-1-快速入门-流动的灯.mix similarity index 100% rename from boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/S11X1zJHzSUE.mix rename to boards/default/micropython_esp32c2/examples/MixGo MINI/04-1-快速入门-流动的灯.mix diff --git a/boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/o7IUGaHP_2m-.mix b/boards/default/micropython_esp32c2/examples/MixGo MINI/04-2-快速入门-流动的灯2.mix similarity index 100% rename from boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/o7IUGaHP_2m-.mix rename to boards/default/micropython_esp32c2/examples/MixGo MINI/04-2-快速入门-流动的灯2.mix diff --git a/boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/kcPg88lLLMaf.mix b/boards/default/micropython_esp32c2/examples/MixGo MINI/05-1-过程控制-双键开关.mix similarity index 100% rename from boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/kcPg88lLLMaf.mix rename to boards/default/micropython_esp32c2/examples/MixGo MINI/05-1-过程控制-双键开关.mix diff --git a/boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/Kr4aE0YXj4Ta.mix b/boards/default/micropython_esp32c2/examples/MixGo MINI/05-2-过程控制-单键开关.mix similarity index 100% rename from boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/Kr4aE0YXj4Ta.mix rename to boards/default/micropython_esp32c2/examples/MixGo MINI/05-2-过程控制-单键开关.mix diff --git a/boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/5Ff-WL15x-zr.mix b/boards/default/micropython_esp32c2/examples/MixGo MINI/05-3-过程控制-IPO概念.mix similarity index 100% rename from boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/5Ff-WL15x-zr.mix rename to boards/default/micropython_esp32c2/examples/MixGo MINI/05-3-过程控制-IPO概念.mix diff --git a/boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/Snul41ZJu3ZF.mix b/boards/default/micropython_esp32c2/examples/MixGo MINI/06-1-过程控制-声音采集.mix similarity index 100% rename from boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/Snul41ZJu3ZF.mix rename to boards/default/micropython_esp32c2/examples/MixGo MINI/06-1-过程控制-声音采集.mix diff --git a/boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/pIL7b5UyioYi.mix b/boards/default/micropython_esp32c2/examples/MixGo MINI/06-2-过程控制-看见声音.mix similarity index 100% rename from boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/pIL7b5UyioYi.mix rename to boards/default/micropython_esp32c2/examples/MixGo MINI/06-2-过程控制-看见声音.mix diff --git a/boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/Gkrj8tilp1cw.mix b/boards/default/micropython_esp32c2/examples/MixGo MINI/07-1-过程控制-光强采集.mix similarity index 100% rename from boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/Gkrj8tilp1cw.mix rename to boards/default/micropython_esp32c2/examples/MixGo MINI/07-1-过程控制-光强采集.mix diff --git a/boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/14ksjIrtCI3x.mix b/boards/default/micropython_esp32c2/examples/MixGo MINI/07-2-过程控制-自动补光.mix similarity index 100% rename from boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/14ksjIrtCI3x.mix rename to boards/default/micropython_esp32c2/examples/MixGo MINI/07-2-过程控制-自动补光.mix diff --git a/boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/R2sW6Uf_pfzs.mix b/boards/default/micropython_esp32c2/examples/MixGo MINI/08-1-过程控制-接近检测.mix similarity index 100% rename from boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/R2sW6Uf_pfzs.mix rename to boards/default/micropython_esp32c2/examples/MixGo MINI/08-1-过程控制-接近检测.mix diff --git a/boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/rlrpbxINNllD.mix b/boards/default/micropython_esp32c2/examples/MixGo MINI/08-2-过程控制-入侵报警.mix similarity index 100% rename from boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/rlrpbxINNllD.mix rename to boards/default/micropython_esp32c2/examples/MixGo MINI/08-2-过程控制-入侵报警.mix diff --git a/boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/HoPx1IXk7y_5.mix b/boards/default/micropython_esp32c2/examples/MixGo MINI/09-1-输入输出-加速度.mix similarity index 100% rename from boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/HoPx1IXk7y_5.mix rename to boards/default/micropython_esp32c2/examples/MixGo MINI/09-1-输入输出-加速度.mix diff --git a/boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/WovoVKt5Xjz9.mix b/boards/default/micropython_esp32c2/examples/MixGo MINI/09-2-输入输出-平衡仪.mix similarity index 100% rename from boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/WovoVKt5Xjz9.mix rename to boards/default/micropython_esp32c2/examples/MixGo MINI/09-2-输入输出-平衡仪.mix diff --git a/boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/4x50SGHLg9XY.mix b/boards/default/micropython_esp32c2/examples/MixGo MINI/10-1-输入输出-地磁强度.mix similarity index 100% rename from boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/4x50SGHLg9XY.mix rename to boards/default/micropython_esp32c2/examples/MixGo MINI/10-1-输入输出-地磁强度.mix diff --git a/boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/QbljH4De2wH0.mix b/boards/default/micropython_esp32c2/examples/MixGo MINI/10-2-输入输出-金属探测.mix similarity index 100% rename from boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/QbljH4De2wH0.mix rename to boards/default/micropython_esp32c2/examples/MixGo MINI/10-2-输入输出-金属探测.mix diff --git a/boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/BD0rIs0go2B9.mix b/boards/default/micropython_esp32c2/examples/MixGo MINI/11-1-输入输出-点阵控制.mix similarity index 100% rename from boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/BD0rIs0go2B9.mix rename to boards/default/micropython_esp32c2/examples/MixGo MINI/11-1-输入输出-点阵控制.mix diff --git a/boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/_I78W4dqP8eb.mix b/boards/default/micropython_esp32c2/examples/MixGo MINI/11-2-输入输出-光标控制.mix similarity index 100% rename from boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/_I78W4dqP8eb.mix rename to boards/default/micropython_esp32c2/examples/MixGo MINI/11-2-输入输出-光标控制.mix diff --git a/boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/os2hauIx3ft4.mix b/boards/default/micropython_esp32c2/examples/MixGo MINI/12-1-输入输出-实时时钟.mix similarity index 100% rename from boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/os2hauIx3ft4.mix rename to boards/default/micropython_esp32c2/examples/MixGo MINI/12-1-输入输出-实时时钟.mix diff --git a/boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/oOZixEdanzVD.mix b/boards/default/micropython_esp32c2/examples/MixGo MINI/12-2-输入输出-实时时钟2.mix similarity index 100% rename from boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/oOZixEdanzVD.mix rename to boards/default/micropython_esp32c2/examples/MixGo MINI/12-2-输入输出-实时时钟2.mix diff --git a/boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/zaRQJyjS471A.mix b/boards/default/micropython_esp32c2/examples/MixGo MINI/13-1-逻辑计算-手速测试.mix similarity index 100% rename from boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/zaRQJyjS471A.mix rename to boards/default/micropython_esp32c2/examples/MixGo MINI/13-1-逻辑计算-手速测试.mix diff --git a/boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/Bngmx4Zuf9yC.mix b/boards/default/micropython_esp32c2/examples/MixGo MINI/13-2-逻辑计算-手速测试2.mix similarity index 100% rename from boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/Bngmx4Zuf9yC.mix rename to boards/default/micropython_esp32c2/examples/MixGo MINI/13-2-逻辑计算-手速测试2.mix diff --git a/boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/axRkYNjiF_-M.mix b/boards/default/micropython_esp32c2/examples/MixGo MINI/14-1-逻辑计算-反应测试.mix similarity index 100% rename from boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/axRkYNjiF_-M.mix rename to boards/default/micropython_esp32c2/examples/MixGo MINI/14-1-逻辑计算-反应测试.mix diff --git a/boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/o_DN1lTF9g1k.mix b/boards/default/micropython_esp32c2/examples/MixGo MINI/14-2-逻辑计算-反应测试2.mix similarity index 100% rename from boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/o_DN1lTF9g1k.mix rename to boards/default/micropython_esp32c2/examples/MixGo MINI/14-2-逻辑计算-反应测试2.mix diff --git a/boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/epskwfXM98hX.mix b/boards/default/micropython_esp32c2/examples/MixGo MINI/15-1-逻辑计算-简单打地鼠.mix similarity index 100% rename from boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/epskwfXM98hX.mix rename to boards/default/micropython_esp32c2/examples/MixGo MINI/15-1-逻辑计算-简单打地鼠.mix diff --git a/boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/FY9RhD-Ad7za.mix b/boards/default/micropython_esp32c2/examples/MixGo MINI/15-2-逻辑计算-计时打地鼠.mix similarity index 100% rename from boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/FY9RhD-Ad7za.mix rename to boards/default/micropython_esp32c2/examples/MixGo MINI/15-2-逻辑计算-计时打地鼠.mix diff --git a/boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/2lW1lsocM3t4.mix b/boards/default/micropython_esp32c2/examples/MixGo MINI/16-1-逻辑计算-开始打地鼠.mix similarity index 100% rename from boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/2lW1lsocM3t4.mix rename to boards/default/micropython_esp32c2/examples/MixGo MINI/16-1-逻辑计算-开始打地鼠.mix diff --git a/boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/glryKf4mqxkC.mix b/boards/default/micropython_esp32c2/examples/MixGo MINI/16-2-逻辑计算-循环打地鼠.mix similarity index 100% rename from boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/glryKf4mqxkC.mix rename to boards/default/micropython_esp32c2/examples/MixGo MINI/16-2-逻辑计算-循环打地鼠.mix diff --git a/boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/DGpAXB9S5clc.mix b/boards/default/micropython_esp32c2/examples/MixGo MINI/17-0-复杂控制-非中断效果.mix similarity index 100% rename from boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/DGpAXB9S5clc.mix rename to boards/default/micropython_esp32c2/examples/MixGo MINI/17-0-复杂控制-非中断效果.mix diff --git a/boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/_U-__vWNOH4O.mix b/boards/default/micropython_esp32c2/examples/MixGo MINI/17-2-复杂控制-单键中断.mix similarity index 100% rename from boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/_U-__vWNOH4O.mix rename to boards/default/micropython_esp32c2/examples/MixGo MINI/17-2-复杂控制-单键中断.mix diff --git a/boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/kesRtD_78pi3.mix b/boards/default/micropython_esp32c2/examples/MixGo MINI/18-1-复杂控制-定时计时.mix similarity index 100% rename from boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/kesRtD_78pi3.mix rename to boards/default/micropython_esp32c2/examples/MixGo MINI/18-1-复杂控制-定时计时.mix diff --git a/boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/QFhv56741Cv4.mix b/boards/default/micropython_esp32c2/examples/MixGo MINI/18-2-复杂控制-循环计时.mix similarity index 100% rename from boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/QFhv56741Cv4.mix rename to boards/default/micropython_esp32c2/examples/MixGo MINI/18-2-复杂控制-循环计时.mix diff --git a/boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/imuyq1__8070.mix b/boards/default/micropython_esp32c2/examples/MixGo MINI/19-1-复杂控制-多线程.mix similarity index 100% rename from boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/imuyq1__8070.mix rename to boards/default/micropython_esp32c2/examples/MixGo MINI/19-1-复杂控制-多线程.mix diff --git a/boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/VOhMnYsLKkaY.mix b/boards/default/micropython_esp32c2/examples/MixGo MINI/19-2-复杂控制-多线程与中断.mix similarity index 100% rename from boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/VOhMnYsLKkaY.mix rename to boards/default/micropython_esp32c2/examples/MixGo MINI/19-2-复杂控制-多线程与中断.mix diff --git a/boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/rYlYB4f8iThF.mix b/boards/default/micropython_esp32c2/examples/MixGo MINI/20-1-复杂控制-异常.mix similarity index 100% rename from boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/rYlYB4f8iThF.mix rename to boards/default/micropython_esp32c2/examples/MixGo MINI/20-1-复杂控制-异常.mix diff --git a/boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/uIroR2GkfeHK.mix b/boards/default/micropython_esp32c2/examples/MixGo MINI/20-2-复杂控制-异常处理.mix similarity index 100% rename from boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/uIroR2GkfeHK.mix rename to boards/default/micropython_esp32c2/examples/MixGo MINI/20-2-复杂控制-异常处理.mix diff --git a/boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/8esCzp8Wx0dF.mix b/boards/default/micropython_esp32c2/examples/MixGo MINI/21-1-射频识别-读取测试(MEG1).mix similarity index 100% rename from boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/8esCzp8Wx0dF.mix rename to boards/default/micropython_esp32c2/examples/MixGo MINI/21-1-射频识别-读取测试(MEG1).mix diff --git a/boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/MsZzCbSOopr1.mix b/boards/default/micropython_esp32c2/examples/MixGo MINI/21-2-射频识别-读取卡号(MEG1).mix similarity index 100% rename from boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/MsZzCbSOopr1.mix rename to boards/default/micropython_esp32c2/examples/MixGo MINI/21-2-射频识别-读取卡号(MEG1).mix diff --git a/boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/Y85kA46EL7TE.mix b/boards/default/micropython_esp32c2/examples/MixGo MINI/22-1-射频识别-写卡测试(MEG1).mix similarity index 100% rename from boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/Y85kA46EL7TE.mix rename to boards/default/micropython_esp32c2/examples/MixGo MINI/22-1-射频识别-写卡测试(MEG1).mix diff --git a/boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/fOTGHqC6FoAl.mix b/boards/default/micropython_esp32c2/examples/MixGo MINI/22-2-射频识别-持续写卡(MEG1).mix similarity index 100% rename from boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/fOTGHqC6FoAl.mix rename to boards/default/micropython_esp32c2/examples/MixGo MINI/22-2-射频识别-持续写卡(MEG1).mix diff --git a/boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/xqAlnAbXFkKR.mix b/boards/default/micropython_esp32c2/examples/MixGo MINI/23-1-蓝牙通讯-主机模式.mix similarity index 100% rename from boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/xqAlnAbXFkKR.mix rename to boards/default/micropython_esp32c2/examples/MixGo MINI/23-1-蓝牙通讯-主机模式.mix diff --git a/boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/h6IjYVQzj5nE.mix b/boards/default/micropython_esp32c2/examples/MixGo MINI/23-1-蓝牙通讯-从机模式.mix similarity index 100% rename from boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/h6IjYVQzj5nE.mix rename to boards/default/micropython_esp32c2/examples/MixGo MINI/23-1-蓝牙通讯-从机模式.mix diff --git a/boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/77KuDaXIwnY9.mix b/boards/default/micropython_esp32c2/examples/MixGo MINI/24-1-无线广播-通讯测试.mix similarity index 100% rename from boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/77KuDaXIwnY9.mix rename to boards/default/micropython_esp32c2/examples/MixGo MINI/24-1-无线广播-通讯测试.mix diff --git a/boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/0ki7HNWvmdvM.mix b/boards/default/micropython_esp32c2/examples/MixGo MINI/24-2-无线广播-防丢检测.mix similarity index 100% rename from boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/0ki7HNWvmdvM.mix rename to boards/default/micropython_esp32c2/examples/MixGo MINI/24-2-无线广播-防丢检测.mix diff --git a/boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/8Rs6yYffazNM.mix b/boards/default/micropython_esp32c2/examples/MixGo MINI/25-1-飞机游戏-显示飞机.mix similarity index 100% rename from boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/8Rs6yYffazNM.mix rename to boards/default/micropython_esp32c2/examples/MixGo MINI/25-1-飞机游戏-显示飞机.mix diff --git a/boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/dYccuxCcJIN_.mix b/boards/default/micropython_esp32c2/examples/MixGo MINI/25-2-飞机游戏-移动飞机.mix similarity index 100% rename from boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/dYccuxCcJIN_.mix rename to boards/default/micropython_esp32c2/examples/MixGo MINI/25-2-飞机游戏-移动飞机.mix diff --git a/boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/1vdw4Ccf4KD3.mix b/boards/default/micropython_esp32c2/examples/MixGo MINI/26-1-飞机游戏-发射子弹.mix similarity index 100% rename from boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/1vdw4Ccf4KD3.mix rename to boards/default/micropython_esp32c2/examples/MixGo MINI/26-1-飞机游戏-发射子弹.mix diff --git a/boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/WVvUwNsaOVIv.mix b/boards/default/micropython_esp32c2/examples/MixGo MINI/26-2-飞机游戏-移动音效.mix similarity index 100% rename from boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/WVvUwNsaOVIv.mix rename to boards/default/micropython_esp32c2/examples/MixGo MINI/26-2-飞机游戏-移动音效.mix diff --git a/boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/EuXNN4sCJMwp.mix b/boards/default/micropython_esp32c2/examples/MixGo MINI/27-1-飞机游戏-显示敌机.mix similarity index 100% rename from boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/EuXNN4sCJMwp.mix rename to boards/default/micropython_esp32c2/examples/MixGo MINI/27-1-飞机游戏-显示敌机.mix diff --git a/boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/-xJn-5ONX3DN.mix b/boards/default/micropython_esp32c2/examples/MixGo MINI/27-2-飞机游戏-消灭敌机.mix similarity index 100% rename from boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/-xJn-5ONX3DN.mix rename to boards/default/micropython_esp32c2/examples/MixGo MINI/27-2-飞机游戏-消灭敌机.mix diff --git a/boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/yV-rOwT8RHF1.mix b/boards/default/micropython_esp32c2/examples/MixGo MINI/28-1-飞机游戏-显示得分.mix similarity index 100% rename from boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/yV-rOwT8RHF1.mix rename to boards/default/micropython_esp32c2/examples/MixGo MINI/28-1-飞机游戏-显示得分.mix diff --git a/boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/LZR-vku3JjdO.mix b/boards/default/micropython_esp32c2/examples/MixGo MINI/28-2-飞机游戏-结束游戏.mix similarity index 100% rename from boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/LZR-vku3JjdO.mix rename to boards/default/micropython_esp32c2/examples/MixGo MINI/28-2-飞机游戏-结束游戏.mix diff --git a/boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/yCYWEKyzY0LC.mix b/boards/default/micropython_esp32c2/examples/MixGo MINI/29-1-物联网-简单数据定时上报.mix similarity index 100% rename from boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/yCYWEKyzY0LC.mix rename to boards/default/micropython_esp32c2/examples/MixGo MINI/29-1-物联网-简单数据定时上报.mix diff --git a/boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/lywJZLOHFjxN.mix b/boards/default/micropython_esp32c2/examples/MixGo MINI/29-2-物联网-复杂数据定时上报.mix similarity index 100% rename from boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/lywJZLOHFjxN.mix rename to boards/default/micropython_esp32c2/examples/MixGo MINI/29-2-物联网-复杂数据定时上报.mix diff --git a/boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/G0e5UjR0ZACo.mix b/boards/default/micropython_esp32c2/examples/MixGo MINI/30-1-物联网-简单数据按需上报.mix similarity index 100% rename from boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/G0e5UjR0ZACo.mix rename to boards/default/micropython_esp32c2/examples/MixGo MINI/30-1-物联网-简单数据按需上报.mix diff --git a/boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/M0c-DIaA1187.mix b/boards/default/micropython_esp32c2/examples/MixGo MINI/30-2-物联网-高级数据按需上报.mix similarity index 100% rename from boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/M0c-DIaA1187.mix rename to boards/default/micropython_esp32c2/examples/MixGo MINI/30-2-物联网-高级数据按需上报.mix diff --git a/boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/aT0CzIUBaNMG.mix b/boards/default/micropython_esp32c2/examples/MixGo MINI/31-1-物联网-单主题数据订阅.mix similarity index 100% rename from boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/aT0CzIUBaNMG.mix rename to boards/default/micropython_esp32c2/examples/MixGo MINI/31-1-物联网-单主题数据订阅.mix diff --git a/boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/vTBqhn3GAMXF.mix b/boards/default/micropython_esp32c2/examples/MixGo MINI/31-1-物联网-单主题数据订阅2.mix similarity index 100% rename from boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/vTBqhn3GAMXF.mix rename to boards/default/micropython_esp32c2/examples/MixGo MINI/31-1-物联网-单主题数据订阅2.mix diff --git a/boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/IDOpl8aXg6JZ.mix b/boards/default/micropython_esp32c2/examples/MixGo MINI/32-1-物联网-多主题数据订.mix similarity index 100% rename from boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/IDOpl8aXg6JZ.mix rename to boards/default/micropython_esp32c2/examples/MixGo MINI/32-1-物联网-多主题数据订.mix diff --git a/boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/mfJCsiOgEuO4.mix b/boards/default/micropython_esp32c2/examples/MixGo MINI/32-2-物联网-多主题数据订2.mix similarity index 100% rename from boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/mfJCsiOgEuO4.mix rename to boards/default/micropython_esp32c2/examples/MixGo MINI/32-2-物联网-多主题数据订2.mix diff --git a/boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/0fM8RZ4TFGYi.mix b/boards/default/micropython_esp32c2/examples/MixGo MINI/33-1-课堂互动-自由签到.mix similarity index 100% rename from boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/0fM8RZ4TFGYi.mix rename to boards/default/micropython_esp32c2/examples/MixGo MINI/33-1-课堂互动-自由签到.mix diff --git a/boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/CPXvIi7vr6Dh.mix b/boards/default/micropython_esp32c2/examples/MixGo MINI/33-2-课堂互动-按需签到.mix similarity index 100% rename from boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/CPXvIi7vr6Dh.mix rename to boards/default/micropython_esp32c2/examples/MixGo MINI/33-2-课堂互动-按需签到.mix diff --git a/boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/97mpvd_UBUs3.mix b/boards/default/micropython_esp32c2/examples/MixGo MINI/34-1-课堂互动-一人抢答.mix similarity index 100% rename from boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/97mpvd_UBUs3.mix rename to boards/default/micropython_esp32c2/examples/MixGo MINI/34-1-课堂互动-一人抢答.mix diff --git a/boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/KRDY3BaMVwGd.mix b/boards/default/micropython_esp32c2/examples/MixGo MINI/34-2-课堂互动-多人抢答.mix similarity index 100% rename from boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/KRDY3BaMVwGd.mix rename to boards/default/micropython_esp32c2/examples/MixGo MINI/34-2-课堂互动-多人抢答.mix diff --git a/boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/UEJbqbuF1bei.mix b/boards/default/micropython_esp32c2/examples/MixGo MINI/35-1-课堂互动-单选答题.mix similarity index 100% rename from boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/UEJbqbuF1bei.mix rename to boards/default/micropython_esp32c2/examples/MixGo MINI/35-1-课堂互动-单选答题.mix diff --git a/boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/vc7gAwdcmd5Y.mix b/boards/default/micropython_esp32c2/examples/MixGo MINI/35-2-课堂互动-多选答题.mix similarity index 100% rename from boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/vc7gAwdcmd5Y.mix rename to boards/default/micropython_esp32c2/examples/MixGo MINI/35-2-课堂互动-多选答题.mix diff --git a/boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/EYcB2laI3Eja.mix b/boards/default/micropython_esp32c2/examples/MixGo MINI/36-1-课堂互动-点名答题.mix similarity index 100% rename from boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/EYcB2laI3Eja.mix rename to boards/default/micropython_esp32c2/examples/MixGo MINI/36-1-课堂互动-点名答题.mix diff --git a/boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/96CcVmmg3sK5.mix b/boards/default/micropython_esp32c2/examples/MixGo MINI/36-2-课堂互动-多人点答.mix similarity index 100% rename from boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/96CcVmmg3sK5.mix rename to boards/default/micropython_esp32c2/examples/MixGo MINI/36-2-课堂互动-多人点答.mix diff --git a/boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/Gv7hKJp2pxKS.mix b/boards/default/micropython_esp32c2/examples/MixGo MINI/37-1-文件操作-列出文件.mix similarity index 100% rename from boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/Gv7hKJp2pxKS.mix rename to boards/default/micropython_esp32c2/examples/MixGo MINI/37-1-文件操作-列出文件.mix diff --git a/boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/SWuLqHpHgbAC.mix b/boards/default/micropython_esp32c2/examples/MixGo MINI/37-2-文件操作-列出文件2.mix similarity index 100% rename from boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/SWuLqHpHgbAC.mix rename to boards/default/micropython_esp32c2/examples/MixGo MINI/37-2-文件操作-列出文件2.mix diff --git a/boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/Ycb6LSHp9PmC.mix b/boards/default/micropython_esp32c2/examples/MixGo MINI/38-1-文件操作-文件读写.mix similarity index 100% rename from boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/Ycb6LSHp9PmC.mix rename to boards/default/micropython_esp32c2/examples/MixGo MINI/38-1-文件操作-文件读写.mix diff --git a/boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/oY1oLiFzQ5nL.mix b/boards/default/micropython_esp32c2/examples/MixGo MINI/38-2-文件操作-文件读写2.mix similarity index 100% rename from boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/oY1oLiFzQ5nL.mix rename to boards/default/micropython_esp32c2/examples/MixGo MINI/38-2-文件操作-文件读写2.mix diff --git a/boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/BtkzuLE4ZYUS.mix b/boards/default/micropython_esp32c2/examples/MixGo MINI/39-1-文件操作-录音采集.mix similarity index 100% rename from boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/BtkzuLE4ZYUS.mix rename to boards/default/micropython_esp32c2/examples/MixGo MINI/39-1-文件操作-录音采集.mix diff --git a/boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/x0BWAoFUZSZX.mix b/boards/default/micropython_esp32c2/examples/MixGo MINI/39-2-文件操作-录音重现.mix similarity index 100% rename from boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/x0BWAoFUZSZX.mix rename to boards/default/micropython_esp32c2/examples/MixGo MINI/39-2-文件操作-录音重现.mix diff --git a/boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/iCvTfaqrqgZT.mix b/boards/default/micropython_esp32c2/examples/MixGo MINI/40-1-文件操作-震动采集.mix similarity index 100% rename from boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/iCvTfaqrqgZT.mix rename to boards/default/micropython_esp32c2/examples/MixGo MINI/40-1-文件操作-震动采集.mix diff --git a/boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/x3i1R-n5AlWE.mix b/boards/default/micropython_esp32c2/examples/MixGo MINI/40-2-文件操作-震动重现.mix similarity index 100% rename from boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/x3i1R-n5AlWE.mix rename to boards/default/micropython_esp32c2/examples/MixGo MINI/40-2-文件操作-震动重现.mix diff --git a/boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/E243OGrdrBjV.mix b/boards/default/micropython_esp32c2/examples/MixGo MINI/41-1-智能小车-前进转弯(MEGO).mix similarity index 100% rename from boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/E243OGrdrBjV.mix rename to boards/default/micropython_esp32c2/examples/MixGo MINI/41-1-智能小车-前进转弯(MEGO).mix diff --git a/boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/HWwIr4ywBI8J.mix b/boards/default/micropython_esp32c2/examples/MixGo MINI/41-2-智能小车-圆圈转弯(MEGO).mix similarity index 100% rename from boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/HWwIr4ywBI8J.mix rename to boards/default/micropython_esp32c2/examples/MixGo MINI/41-2-智能小车-圆圈转弯(MEGO).mix diff --git a/boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/mYGJDtxCqsq8.mix b/boards/default/micropython_esp32c2/examples/MixGo MINI/42-1-智能小车-智能避障(MEGO).mix similarity index 100% rename from boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/mYGJDtxCqsq8.mix rename to boards/default/micropython_esp32c2/examples/MixGo MINI/42-1-智能小车-智能避障(MEGO).mix diff --git a/boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/s_4eEyKVTp3A.mix b/boards/default/micropython_esp32c2/examples/MixGo MINI/42-2-智能小车-智能避障2(MEGO).mix similarity index 100% rename from boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/s_4eEyKVTp3A.mix rename to boards/default/micropython_esp32c2/examples/MixGo MINI/42-2-智能小车-智能避障2(MEGO).mix diff --git a/boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/uoemzausHEpK.mix b/boards/default/micropython_esp32c2/examples/MixGo MINI/43-1-智能小车-遥控小车(MEGO).mix similarity index 100% rename from boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/uoemzausHEpK.mix rename to boards/default/micropython_esp32c2/examples/MixGo MINI/43-1-智能小车-遥控小车(MEGO).mix diff --git a/boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/_MH0Jh-WoGFx.mix b/boards/default/micropython_esp32c2/examples/MixGo MINI/43-2-智能小车-体感遥控(MEGO).mix similarity index 100% rename from boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/_MH0Jh-WoGFx.mix rename to boards/default/micropython_esp32c2/examples/MixGo MINI/43-2-智能小车-体感遥控(MEGO).mix diff --git a/boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/bzQhVR-ziY27.mix b/boards/default/micropython_esp32c2/examples/MixGo MINI/44-1-智能小车-P单巡线(MEGO).mix similarity index 100% rename from boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/bzQhVR-ziY27.mix rename to boards/default/micropython_esp32c2/examples/MixGo MINI/44-1-智能小车-P单巡线(MEGO).mix diff --git a/boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/ywDTIgZw5zz_.mix b/boards/default/micropython_esp32c2/examples/MixGo MINI/44-2-智能小车-P双巡线(MEGO).mix similarity index 100% rename from boards/default/micropython_esp32c2/examples/-FxsJyL8OSfB/ywDTIgZw5zz_.mix rename to boards/default/micropython_esp32c2/examples/MixGo MINI/44-2-智能小车-P双巡线(MEGO).mix diff --git a/boards/default/micropython_esp32c2/examples/map.json b/boards/default/micropython_esp32c2/examples/map.json index af8c7229..63d279c6 100644 --- a/boards/default/micropython_esp32c2/examples/map.json +++ b/boards/default/micropython_esp32c2/examples/map.json @@ -1,358 +1,358 @@ { - "-FxsJyL8OSfB": { - "v5xvbx0_7d8E.mix": { + "MixGo MINI": { + "01-1-快速入门-你好世界.mix": { "__file__": true, "__name__": "01-1-快速入门-你好世界.mix" }, - "BNH2ldHY7iqn.mix": { + "01-2-快速入门-你好世界2.mix": { "__file__": true, "__name__": "01-2-快速入门-你好世界2.mix" }, - "Ml5oibxE6oQn.mix": { + "02-1-快速入门-跳动的心.mix": { "__file__": true, "__name__": "02-1-快速入门-跳动的心.mix" }, - "Bg_jX1muJsL-.mix": { + "02-2-快速入门-为你心动.mix": { "__file__": true, "__name__": "02-2-快速入门-为你心动.mix" }, - "BMh3Na7bR930.mix": { + "03-1-快速入门-心随我动.mix": { "__file__": true, "__name__": "03-1-快速入门-心随我动.mix" }, - "kQ_-UGIApAkQ.mix": { + "03-2-快速入门-心随我动2.mix": { "__file__": true, "__name__": "03-2-快速入门-心随我动2.mix" }, - "S11X1zJHzSUE.mix": { + "04-1-快速入门-流动的灯.mix": { "__file__": true, "__name__": "04-1-快速入门-流动的灯.mix" }, - "o7IUGaHP_2m-.mix": { + "04-2-快速入门-流动的灯2.mix": { "__file__": true, "__name__": "04-2-快速入门-流动的灯2.mix" }, - "kcPg88lLLMaf.mix": { + "05-1-过程控制-双键开关.mix": { "__file__": true, "__name__": "05-1-过程控制-双键开关.mix" }, - "Kr4aE0YXj4Ta.mix": { + "05-2-过程控制-单键开关.mix": { "__file__": true, "__name__": "05-2-过程控制-单键开关.mix" }, - "5Ff-WL15x-zr.mix": { + "05-3-过程控制-IPO概念.mix": { "__file__": true, "__name__": "05-3-过程控制-IPO概念.mix" }, - "Snul41ZJu3ZF.mix": { + "06-1-过程控制-声音采集.mix": { "__file__": true, "__name__": "06-1-过程控制-声音采集.mix" }, - "pIL7b5UyioYi.mix": { + "06-2-过程控制-看见声音.mix": { "__file__": true, "__name__": "06-2-过程控制-看见声音.mix" }, - "Gkrj8tilp1cw.mix": { + "07-1-过程控制-光强采集.mix": { "__file__": true, "__name__": "07-1-过程控制-光强采集.mix" }, - "14ksjIrtCI3x.mix": { + "07-2-过程控制-自动补光.mix": { "__file__": true, "__name__": "07-2-过程控制-自动补光.mix" }, - "R2sW6Uf_pfzs.mix": { + "08-1-过程控制-接近检测.mix": { "__file__": true, "__name__": "08-1-过程控制-接近检测.mix" }, - "rlrpbxINNllD.mix": { + "08-2-过程控制-入侵报警.mix": { "__file__": true, "__name__": "08-2-过程控制-入侵报警.mix" }, - "HoPx1IXk7y_5.mix": { + "09-1-输入输出-加速度.mix": { "__file__": true, "__name__": "09-1-输入输出-加速度.mix" }, - "WovoVKt5Xjz9.mix": { + "09-2-输入输出-平衡仪.mix": { "__file__": true, "__name__": "09-2-输入输出-平衡仪.mix" }, - "4x50SGHLg9XY.mix": { + "10-1-输入输出-地磁强度.mix": { "__file__": true, "__name__": "10-1-输入输出-地磁强度.mix" }, - "QbljH4De2wH0.mix": { + "10-2-输入输出-金属探测.mix": { "__file__": true, "__name__": "10-2-输入输出-金属探测.mix" }, - "BD0rIs0go2B9.mix": { + "11-1-输入输出-点阵控制.mix": { "__file__": true, "__name__": "11-1-输入输出-点阵控制.mix" }, - "_I78W4dqP8eb.mix": { + "11-2-输入输出-光标控制.mix": { "__file__": true, "__name__": "11-2-输入输出-光标控制.mix" }, - "os2hauIx3ft4.mix": { + "12-1-输入输出-实时时钟.mix": { "__file__": true, "__name__": "12-1-输入输出-实时时钟.mix" }, - "oOZixEdanzVD.mix": { + "12-2-输入输出-实时时钟2.mix": { "__file__": true, "__name__": "12-2-输入输出-实时时钟2.mix" }, - "zaRQJyjS471A.mix": { + "13-1-逻辑计算-手速测试.mix": { "__file__": true, "__name__": "13-1-逻辑计算-手速测试.mix" }, - "Bngmx4Zuf9yC.mix": { + "13-2-逻辑计算-手速测试2.mix": { "__file__": true, "__name__": "13-2-逻辑计算-手速测试2.mix" }, - "axRkYNjiF_-M.mix": { + "14-1-逻辑计算-反应测试.mix": { "__file__": true, "__name__": "14-1-逻辑计算-反应测试.mix" }, - "o_DN1lTF9g1k.mix": { + "14-2-逻辑计算-反应测试2.mix": { "__file__": true, "__name__": "14-2-逻辑计算-反应测试2.mix" }, - "epskwfXM98hX.mix": { + "15-1-逻辑计算-简单打地鼠.mix": { "__file__": true, "__name__": "15-1-逻辑计算-简单打地鼠.mix" }, - "FY9RhD-Ad7za.mix": { + "15-2-逻辑计算-计时打地鼠.mix": { "__file__": true, "__name__": "15-2-逻辑计算-计时打地鼠.mix" }, - "2lW1lsocM3t4.mix": { + "16-1-逻辑计算-开始打地鼠.mix": { "__file__": true, "__name__": "16-1-逻辑计算-开始打地鼠.mix" }, - "glryKf4mqxkC.mix": { + "16-2-逻辑计算-循环打地鼠.mix": { "__file__": true, "__name__": "16-2-逻辑计算-循环打地鼠.mix" }, - "DGpAXB9S5clc.mix": { + "17-0-复杂控制-非中断效果.mix": { "__file__": true, "__name__": "17-0-复杂控制-非中断效果.mix" }, - "_U-__vWNOH4O.mix": { + "17-2-复杂控制-单键中断.mix": { "__file__": true, "__name__": "17-2-复杂控制-单键中断.mix" }, - "kesRtD_78pi3.mix": { + "18-1-复杂控制-定时计时.mix": { "__file__": true, "__name__": "18-1-复杂控制-定时计时.mix" }, - "QFhv56741Cv4.mix": { + "18-2-复杂控制-循环计时.mix": { "__file__": true, "__name__": "18-2-复杂控制-循环计时.mix" }, - "imuyq1__8070.mix": { + "19-1-复杂控制-多线程.mix": { "__file__": true, "__name__": "19-1-复杂控制-多线程.mix" }, - "VOhMnYsLKkaY.mix": { + "19-2-复杂控制-多线程与中断.mix": { "__file__": true, "__name__": "19-2-复杂控制-多线程与中断.mix" }, - "rYlYB4f8iThF.mix": { + "20-1-复杂控制-异常.mix": { "__file__": true, "__name__": "20-1-复杂控制-异常.mix" }, - "uIroR2GkfeHK.mix": { + "20-2-复杂控制-异常处理.mix": { "__file__": true, "__name__": "20-2-复杂控制-异常处理.mix" }, - "8esCzp8Wx0dF.mix": { + "21-1-射频识别-读取测试(MEG1).mix": { "__file__": true, "__name__": "21-1-射频识别-读取测试(MEG1).mix" }, - "MsZzCbSOopr1.mix": { + "21-2-射频识别-读取卡号(MEG1).mix": { "__file__": true, "__name__": "21-2-射频识别-读取卡号(MEG1).mix" }, - "Y85kA46EL7TE.mix": { + "22-1-射频识别-写卡测试(MEG1).mix": { "__file__": true, "__name__": "22-1-射频识别-写卡测试(MEG1).mix" }, - "fOTGHqC6FoAl.mix": { + "22-2-射频识别-持续写卡(MEG1).mix": { "__file__": true, "__name__": "22-2-射频识别-持续写卡(MEG1).mix" }, - "xqAlnAbXFkKR.mix": { + "23-1-蓝牙通讯-主机模式.mix": { "__file__": true, "__name__": "23-1-蓝牙通讯-主机模式.mix" }, - "h6IjYVQzj5nE.mix": { + "23-1-蓝牙通讯-从机模式.mix": { "__file__": true, "__name__": "23-1-蓝牙通讯-从机模式.mix" }, - "77KuDaXIwnY9.mix": { + "24-1-无线广播-通讯测试.mix": { "__file__": true, "__name__": "24-1-无线广播-通讯测试.mix" }, - "0ki7HNWvmdvM.mix": { + "24-2-无线广播-防丢检测.mix": { "__file__": true, "__name__": "24-2-无线广播-防丢检测.mix" }, - "8Rs6yYffazNM.mix": { + "25-1-飞机游戏-显示飞机.mix": { "__file__": true, "__name__": "25-1-飞机游戏-显示飞机.mix" }, - "dYccuxCcJIN_.mix": { + "25-2-飞机游戏-移动飞机.mix": { "__file__": true, "__name__": "25-2-飞机游戏-移动飞机.mix" }, - "1vdw4Ccf4KD3.mix": { + "26-1-飞机游戏-发射子弹.mix": { "__file__": true, "__name__": "26-1-飞机游戏-发射子弹.mix" }, - "WVvUwNsaOVIv.mix": { + "26-2-飞机游戏-移动音效.mix": { "__file__": true, "__name__": "26-2-飞机游戏-移动音效.mix" }, - "EuXNN4sCJMwp.mix": { + "27-1-飞机游戏-显示敌机.mix": { "__file__": true, "__name__": "27-1-飞机游戏-显示敌机.mix" }, - "-xJn-5ONX3DN.mix": { + "27-2-飞机游戏-消灭敌机.mix": { "__file__": true, "__name__": "27-2-飞机游戏-消灭敌机.mix" }, - "yV-rOwT8RHF1.mix": { + "28-1-飞机游戏-显示得分.mix": { "__file__": true, "__name__": "28-1-飞机游戏-显示得分.mix" }, - "LZR-vku3JjdO.mix": { + "28-2-飞机游戏-结束游戏.mix": { "__file__": true, "__name__": "28-2-飞机游戏-结束游戏.mix" }, - "yCYWEKyzY0LC.mix": { + "29-1-物联网-简单数据定时上报.mix": { "__file__": true, "__name__": "29-1-物联网-简单数据定时上报.mix" }, - "lywJZLOHFjxN.mix": { + "29-2-物联网-复杂数据定时上报.mix": { "__file__": true, "__name__": "29-2-物联网-复杂数据定时上报.mix" }, - "G0e5UjR0ZACo.mix": { + "30-1-物联网-简单数据按需上报.mix": { "__file__": true, "__name__": "30-1-物联网-简单数据按需上报.mix" }, - "M0c-DIaA1187.mix": { + "30-2-物联网-高级数据按需上报.mix": { "__file__": true, "__name__": "30-2-物联网-高级数据按需上报.mix" }, - "aT0CzIUBaNMG.mix": { + "31-1-物联网-单主题数据订阅.mix": { "__file__": true, "__name__": "31-1-物联网-单主题数据订阅.mix" }, - "vTBqhn3GAMXF.mix": { + "31-1-物联网-单主题数据订阅2.mix": { "__file__": true, "__name__": "31-1-物联网-单主题数据订阅2.mix" }, - "IDOpl8aXg6JZ.mix": { + "32-1-物联网-多主题数据订.mix": { "__file__": true, "__name__": "32-1-物联网-多主题数据订.mix" }, - "mfJCsiOgEuO4.mix": { + "32-2-物联网-多主题数据订2.mix": { "__file__": true, "__name__": "32-2-物联网-多主题数据订2.mix" }, - "0fM8RZ4TFGYi.mix": { + "33-1-课堂互动-自由签到.mix": { "__file__": true, "__name__": "33-1-课堂互动-自由签到.mix" }, - "CPXvIi7vr6Dh.mix": { + "33-2-课堂互动-按需签到.mix": { "__file__": true, "__name__": "33-2-课堂互动-按需签到.mix" }, - "97mpvd_UBUs3.mix": { + "34-1-课堂互动-一人抢答.mix": { "__file__": true, "__name__": "34-1-课堂互动-一人抢答.mix" }, - "KRDY3BaMVwGd.mix": { + "34-2-课堂互动-多人抢答.mix": { "__file__": true, "__name__": "34-2-课堂互动-多人抢答.mix" }, - "UEJbqbuF1bei.mix": { + "35-1-课堂互动-单选答题.mix": { "__file__": true, "__name__": "35-1-课堂互动-单选答题.mix" }, - "vc7gAwdcmd5Y.mix": { + "35-2-课堂互动-多选答题.mix": { "__file__": true, "__name__": "35-2-课堂互动-多选答题.mix" }, - "EYcB2laI3Eja.mix": { + "36-1-课堂互动-点名答题.mix": { "__file__": true, "__name__": "36-1-课堂互动-点名答题.mix" }, - "96CcVmmg3sK5.mix": { + "36-2-课堂互动-多人点答.mix": { "__file__": true, "__name__": "36-2-课堂互动-多人点答.mix" }, - "Gv7hKJp2pxKS.mix": { + "37-1-文件操作-列出文件.mix": { "__file__": true, "__name__": "37-1-文件操作-列出文件.mix" }, - "SWuLqHpHgbAC.mix": { + "37-2-文件操作-列出文件2.mix": { "__file__": true, "__name__": "37-2-文件操作-列出文件2.mix" }, - "Ycb6LSHp9PmC.mix": { + "38-1-文件操作-文件读写.mix": { "__file__": true, "__name__": "38-1-文件操作-文件读写.mix" }, - "oY1oLiFzQ5nL.mix": { + "38-2-文件操作-文件读写2.mix": { "__file__": true, "__name__": "38-2-文件操作-文件读写2.mix" }, - "BtkzuLE4ZYUS.mix": { + "39-1-文件操作-录音采集.mix": { "__file__": true, "__name__": "39-1-文件操作-录音采集.mix" }, - "x0BWAoFUZSZX.mix": { + "39-2-文件操作-录音重现.mix": { "__file__": true, "__name__": "39-2-文件操作-录音重现.mix" }, - "iCvTfaqrqgZT.mix": { + "40-1-文件操作-震动采集.mix": { "__file__": true, "__name__": "40-1-文件操作-震动采集.mix" }, - "x3i1R-n5AlWE.mix": { + "40-2-文件操作-震动重现.mix": { "__file__": true, "__name__": "40-2-文件操作-震动重现.mix" }, - "E243OGrdrBjV.mix": { + "41-1-智能小车-前进转弯(MEGO).mix": { "__file__": true, "__name__": "41-1-智能小车-前进转弯(MEGO).mix" }, - "HWwIr4ywBI8J.mix": { + "41-2-智能小车-圆圈转弯(MEGO).mix": { "__file__": true, "__name__": "41-2-智能小车-圆圈转弯(MEGO).mix" }, - "mYGJDtxCqsq8.mix": { + "42-1-智能小车-智能避障(MEGO).mix": { "__file__": true, "__name__": "42-1-智能小车-智能避障(MEGO).mix" }, - "s_4eEyKVTp3A.mix": { + "42-2-智能小车-智能避障2(MEGO).mix": { "__file__": true, "__name__": "42-2-智能小车-智能避障2(MEGO).mix" }, - "uoemzausHEpK.mix": { + "43-1-智能小车-遥控小车(MEGO).mix": { "__file__": true, "__name__": "43-1-智能小车-遥控小车(MEGO).mix" }, - "_MH0Jh-WoGFx.mix": { + "43-2-智能小车-体感遥控(MEGO).mix": { "__file__": true, "__name__": "43-2-智能小车-体感遥控(MEGO).mix" }, - "bzQhVR-ziY27.mix": { + "44-1-智能小车-P单巡线(MEGO).mix": { "__file__": true, "__name__": "44-1-智能小车-P单巡线(MEGO).mix" }, - "ywDTIgZw5zz_.mix": { + "44-2-智能小车-P双巡线(MEGO).mix": { "__file__": true, "__name__": "44-2-智能小车-P双巡线(MEGO).mix" }, diff --git a/boards/default/micropython_esp32c2/index.xml b/boards/default/micropython_esp32c2/index.xml index a9205713..f7f68301 100644 --- a/boards/default/micropython_esp32c2/index.xml +++ b/boards/default/micropython_esp32c2/index.xml @@ -1 +1 @@ -02000attachInterrupt_funcattachInterrupt_func10,1,2,3051iDIVIDE10Exception as eetestThreadtestThreadWHILETRUEHello Mixly from Thread!ms10timtim1000tim_callbacktim_callback5000200090x151100a10.998124.829971100101010001100501100110000x2x0,1,2,30,1,2,30,1,2,3xMixlyHelloMixly65axMixlyMixly0Mixly02MixlyMixlyHello,mixlyl--mylistHello,mixlymixlymixpyI love mixly!I love mixlyRandom No. is {}int1100input('1+2*3')mylist1,2,3,4,5mylist0mylist02mylistmylistmylist0mylist00mylist00mylist0mylist0mylist0mylistmylistmylistx0,1,2,30,1,2,3mytup1,2,3,4,5mytup0mytup02mytupmytupmytupmytup0mytupmytup1mytup2xmydictmydictkeymydictkey0mydictkey0mydictkeymydictkeymydictkey0mydictmydictmydictmydictxmydict{"name":"Mixly","color":"green"}s11,2,3,4,5s1s1s1s2s1s2s10s1Mixlys1s2xMixlyMixlyMixly,HelloMixlyprompt02MixlyMixly0XFF00FFcodebMixlyMixly1attachInterrupt_func1attachInterrupt_funcattachInterrupt_funcrfid00Mixly0Mixly2022711420452023,1,1,12,0,01802910044044010000412000000000001000100010020000Mixly0MixlyMixly500MixlyMixly500>10.51001001000interrupt_funcinterrupt_functurnsdistance00Mixly0Mixlywifinamewifipassword8080AUTH TOKEN0_value02000notify0Your Target Emailsubjectbodycolor#FF0000wifinamewifipasswordmixio.mixly.cnmixio.mixly.cnA1B2C3mixio.mixly.cnusernamepasswordMyProjecttopicmsgtopicmethodmethodEQmsg1content"long""lat""message"012content"key1""key2""key3"012http://mixio.mixly.org/time.phpmixio.mixly.cnwifinamewifipasswordcsub_cb31444082183.230.40.3914109261n63JySRowo13ZLDBKw6y896E0=MixlyRobotsub_cbEQmsg1ciot_dict"sound"ciot_dictccwifinamewifipasswordclientEnter Your API_KEYEnter Your SECRET_KEYclient1clientS72099北京今天天气如何?wifinamewifipasswordSVa3S0UKHIy9dDArs北京SVa3S0UKHIy9dDArs北京1SVa3S0UKHIy9dDArs北京24ble_cble_pMixlyble_cble_cMixlyble_cble_xble_xble_xMixlyble_xble_xble_methodble_methodEQdataMixlyhandlehandle_methodhandle_methodkey1key2key3keyx02000001000009000,4500,563,5630x1234callbackcmdaddrrawpulsesi2c2221100000i2c00i2c00i2ci2ci2cspi2000004512spi200000buf50spi10spi100xffspibufspibuf0xffspi12345spi12345buf1Mixlyow12owowow12345ow12345owmy_now0my_nowmy_nowmy_nowFFFFFFFFFFFFmixlymy_nowmy_nowcbcbEQmsg1spi10000004512spi8my_lora433.925716my_loramy_loramy_loraMixlyi2c_extend45100000xsensori2c_extendxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorspi10000004512spi8ysensorysensor0ysensor0ysensor0Mixlyysensor0Mixlyysensorysensorysensor39,119.96,31.67ysensorysensorstation45ps2_handle24512ps2_handle50ps2_handleps2_handlews_wr0121ws_wrws_wrws_wr360002zsensorzsensorzsensorzsensor100midi0midi440midi4401000midimidimidi4120midimidirgb04rgb0000rgb000rgb100100i2c_extend45400000Motori2c_extendMotor100Motor1024102402ttsttsttsttstts你好米思齐i2c_extend45400000matrixi2c_extendmatrixmatrixmatrixMixly0matrixMixlymatrixMixly500matrixMixlymatrixMixly500matrixmatrix>matrixmatrix1matrixmatrixmatrix0.5matrixmatrixi2c_extend45100000dispi2c_extenddisp2333dispdisp1i2c_extend45100000lcdi2c_extend0x27lcdMixly00lcdMixly005lcdlcdi2c_extend45100000oledi2c_extend0x3coledoled001oledMixlyoledMixly0010oledMixlyoledMixly0550oledMixlyoledMixly5500oled0020oled005050oled20202015oled1oled00oled00oledspi1000000450spi78tft_st7789135240tft_st7789001#ffffff255,255,0tft_st7789Mixly0050#ffffff255,255,0tft_st7789Mixly0550#ffffff255,255,0tft_st7789Mixly5500#ffffff255,255,0tft_st7789004040#ffffff255,255,0tft_st778912ai_sensorai_sensor98ai_sensor255,255,00,0,255ai_sensor'ni-hao','hong-se','lv-se','lan-se','bai-se','hei-se'0.1ai_sensor1.wav5ai_sensor1.wav100ai_sensorinfoai_sensorqrcodeinfoai_sensorbarcodeinfoai_sensortaginfoai_sensor25002525lineinfoai_sensor35002100circleinfoai_sensor10000rectinfoai_sensorinfoinfoai_sensorcolor_lab101colorsai_sensor'猫','狗','笔记本','笔'mixgo5自模型训练infoai_sensor'猫','狗','笔记本','笔'mixgo自模型识别objectsinfoai_sensor0.1606, 0.3562, 0.4712, 0.9568, 0.9877, 1.9108, 1.8761, 3.5310, 3.4423, 5.6823/sd/masks.kmodel外部模型加载objects12ai_sensorai_sensor98ai_sensor255,255,00,0,255ai_sensor1.wav5ai_sensor1.wav100infoai_sensorlicensePlateinfoai_sensorfaceinfoai_sensor20objectsai_sensorinfoai_sensorqrcodeinfoai_sensorbarcodeinfoai_sensortaginfoai_sensor25002525lineinfoai_sensor35002100circleinfoai_sensor10000rectinfoai_sensorinfoinfoai_sensorcolor_lab101colorsfilename.txtfMixlyfff0fffpathpathfilename.txtsrcname.txtdstname.txtpathff0wifinamewifipasswordwlanwlanwlanwlanwlan127.16.0.801234567wlanwlanwlanwlanwlan127.16.0.81connect_wifiwlanAPwlanTruewlanwlanSmallCabbage1WHILETRUEEQ0wlan0.0.0.0ms1000TRUEss0.0.0.080s192.168.0.180s5ss1024sbMixlyresponses1024sbMixlyresponse127.0.0.180sntp.aliyun.com \ No newline at end of file +02000attachInterrupt_funcattachInterrupt_func10,1,2,3051iDIVIDE10Exception as eetestThreadtestThreadWHILETRUEHello Mixly from Thread!ms10timtim1000tim_callbacktim_callback5000200090x151100a10.998124.829971100101010001100501100110000x2x0,1,2,30,1,2,30,1,2,3xMixlyHelloMixly65axMixlyMixly0Mixly02MixlyMixlyHello,mixlyl--mylistHello,mixlymixlymixpyI love mixly!I love mixlyRandom No. is {}int1100input('1+2*3')mylist1,2,3,4,5mylist0mylist02mylistmylistmylist0mylist00mylist00mylist0mylist0mylist0mylistmylistmylistx0,1,2,30,1,2,3mytup1,2,3,4,5mytup0mytup02mytupmytupmytupmytup0mytupmytup1mytup2xmydictmydictkeymydictkey0mydictkey0mydictkeymydictkeymydictkey0mydictmydictmydictmydictxmydict{"name":"Mixly","color":"green"}s11,2,3,4,5s1s1s1s2s1s2s10s1Mixlys1s2xMixlyMixlyMixly,HelloMixlyprompt02MixlyMixly0XFF00FFcodebMixlyMixly1attachInterrupt_func1attachInterrupt_funcattachInterrupt_funcrfid00Mixly0Mixly2022711420452023,1,1,12,0,01802910044044010000412000000000001000100010020000Mixly0MixlyMixly500MixlyMixly500>10.51001001000interrupt_funcinterrupt_functurnsdistance00Mixly0Mixlywifinamewifipassword8080AUTH TOKEN0_value02000notify0Your Target Emailsubjectbodycolor#FF0000wifinamewifipasswordmixio.mixly.cnmixio.mixly.cnA1B2C3mixio.mixly.cnusernamepasswordMyProjecttopicmsgtopicmethodmethodEQmsg1content"long""lat""message"012content"key1""key2""key3"012http://mixio.mixly.org/time.phpmixio.mixly.cnwifinamewifipasswordcsub_cb31444082183.230.40.3914109261n63JySRowo13ZLDBKw6y896E0=MixlyRobotsub_cbEQmsg1ciot_dict"sound"ciot_dictccwifinamewifipasswordclientEnter Your API_KEYEnter Your SECRET_KEYclient1clientS72099北京今天天气如何?wifinamewifipasswordSVa3S0UKHIy9dDArs北京SVa3S0UKHIy9dDArs北京1SVa3S0UKHIy9dDArs北京24ble_cble_pMixlyble_cble_cMixlyble_cble_xble_xble_xMixlyble_xble_xble_methodble_methodEQdataMixlyhandlehandle_methodhandle_methodkey1key2key3keyx02000001000009000,4500,563,5630x1234callbackcmdaddrrawpulsesi2c2221100000i2c00i2c00i2ci2ci2cspi2000004512spi200000buf50spi10spi100xffspibufspibuf0xffspi12345spi12345buf1Mixlyow12owowow12345ow12345owmy_now0my_nowmy_nowmy_nowFFFFFFFFFFFFmixlymy_nowmy_nowcbcbEQmsg1spi10000004512spi8my_lora433.925716my_loramy_loramy_loraMixlyi2c_extend45100000xsensori2c_extendxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorspi10000004512spi8ysensorysensor0ysensor0ysensor0Mixlyysensor0Mixlyysensorysensorysensor39,119.96,31.67ysensorysensorstation45ps2_handle24512ps2_handle50ps2_handleps2_handlews_wr0121ws_wrws_wrws_wr360002zsensorzsensorzsensorzsensor100midi0midi440midi4401000midimidimidi4120midimidirgb04rgb0000rgb000rgb100100i2c_extend45400000Motori2c_extendMotor100Motor1024102402ttsttsttsttstts你好米思齐i2c_extend45400000matrixi2c_extendmatrixmatrixmatrixMixly0matrixMixlymatrixMixly500matrixMixlymatrixMixly500matrixmatrix>matrixmatrix1matrixmatrixmatrix0.5matrixmatrixi2c_extend45100000dispi2c_extenddisp2333dispdisp1i2c_extend45100000lcdi2c_extend0x27lcdMixly00lcdMixly005lcdlcdi2c_extend45100000oledi2c_extend0x3coledoled001oledMixlyoledMixly0010oledMixlyoledMixly0550oledMixlyoledMixly5500oled0020oled005050oled20202015oled1oled00oled00oledspi1000000450spi78tft_st7789135240tft_st7789001#ffffff255,255,0tft_st7789Mixly0050#ffffff255,255,0tft_st7789Mixly0550#ffffff255,255,0tft_st7789Mixly5500#ffffff255,255,0tft_st7789004040#ffffff255,255,0tft_st778912ai_sensorai_sensor98ai_sensor255,255,00,0,255ai_sensor'ni-hao','hong-se','lv-se','lan-se','bai-se','hei-se'0.1ai_sensor1.wav5ai_sensor1.wav100ai_sensorinfoai_sensorqrcodeinfoai_sensorbarcodeinfoai_sensortaginfoai_sensor25002525lineinfoai_sensor35002100circleinfoai_sensor10000rectinfoai_sensorinfoinfoai_sensorcolor_lab101colorsai_sensor'猫','狗','笔记本','笔'mixgo5自模型训练infoai_sensor'猫','狗','笔记本','笔'mixgo自模型识别objectsinfoai_sensor0.1606, 0.3562, 0.4712, 0.9568, 0.9877, 1.9108, 1.8761, 3.5310, 3.4423, 5.6823/sd/masks.kmodel外部模型加载objects12ai_sensorai_sensor98ai_sensor255,255,00,0,255ai_sensor1.wav5ai_sensor1.wav100infoai_sensorlicensePlateinfoai_sensorfaceinfoai_sensor20objectsai_sensorinfoai_sensorqrcodeinfoai_sensorbarcodeinfoai_sensortaginfoai_sensor25002525lineinfoai_sensor35002100circleinfoai_sensor10000rectinfoai_sensorinfoinfoai_sensorcolor_lab101colorsfilename.txtfMixlyfff0fffpathpathfilename.txtsrcname.txtdstname.txtpathff0wifinamewifipasswordwlanwlanwlanwlanwlan127.16.0.801234567wlanwlanwlanwlanwlan127.16.0.81connect_wifiwlanAPwlanTruewlanwlanSmallCabbage1WHILETRUEEQ0wlan0.0.0.0ms1000TRUEss0.0.0.080s192.168.0.180s5ss1024sbMixlyresponses1024sbMixlyresponse127.0.0.180sntp.aliyun.com \ No newline at end of file diff --git a/boards/default/micropython_esp32c2/styles/main.cdf64bec.css b/boards/default/micropython_esp32c2/styles/main.25d89b66.css similarity index 100% rename from boards/default/micropython_esp32c2/styles/main.cdf64bec.css rename to boards/default/micropython_esp32c2/styles/main.25d89b66.css diff --git a/boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/cwm7i6hsAlP3.mix b/boards/default/micropython_esp32c3/examples/MixGo CC/01-1-快速入门-你好世界.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/cwm7i6hsAlP3.mix rename to boards/default/micropython_esp32c3/examples/MixGo CC/01-1-快速入门-你好世界.mix diff --git a/boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/lQRSrbXYYvEm.mix b/boards/default/micropython_esp32c3/examples/MixGo CC/01-2-快速入门-你好世界2.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/lQRSrbXYYvEm.mix rename to boards/default/micropython_esp32c3/examples/MixGo CC/01-2-快速入门-你好世界2.mix diff --git a/boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/bj1Y8vk4k-Oh.mix b/boards/default/micropython_esp32c3/examples/MixGo CC/02-1-快速入门-跳动的心.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/bj1Y8vk4k-Oh.mix rename to boards/default/micropython_esp32c3/examples/MixGo CC/02-1-快速入门-跳动的心.mix diff --git a/boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/9bXVKEzs9Jhx.mix b/boards/default/micropython_esp32c3/examples/MixGo CC/02-2-快速入门-为你心动.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/9bXVKEzs9Jhx.mix rename to boards/default/micropython_esp32c3/examples/MixGo CC/02-2-快速入门-为你心动.mix diff --git a/boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/tmf2CozYl_FN.mix b/boards/default/micropython_esp32c3/examples/MixGo CC/03-1-快速入门-心随我动.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/tmf2CozYl_FN.mix rename to boards/default/micropython_esp32c3/examples/MixGo CC/03-1-快速入门-心随我动.mix diff --git a/boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/S1g26DNW9muO.mix b/boards/default/micropython_esp32c3/examples/MixGo CC/03-2-快速入门-心随我动2.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/S1g26DNW9muO.mix rename to boards/default/micropython_esp32c3/examples/MixGo CC/03-2-快速入门-心随我动2.mix diff --git a/boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/YrzDcIqSLtyr.mix b/boards/default/micropython_esp32c3/examples/MixGo CC/04-1-快速入门-流动的灯.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/YrzDcIqSLtyr.mix rename to boards/default/micropython_esp32c3/examples/MixGo CC/04-1-快速入门-流动的灯.mix diff --git a/boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/KKWROTxJwwhe.mix b/boards/default/micropython_esp32c3/examples/MixGo CC/04-2-快速入门-流动的灯2.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/KKWROTxJwwhe.mix rename to boards/default/micropython_esp32c3/examples/MixGo CC/04-2-快速入门-流动的灯2.mix diff --git a/boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/jltm62sBZtp8.mix b/boards/default/micropython_esp32c3/examples/MixGo CC/05-1-过程控制-双键开关.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/jltm62sBZtp8.mix rename to boards/default/micropython_esp32c3/examples/MixGo CC/05-1-过程控制-双键开关.mix diff --git a/boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/sahHJ4Yz72Xf.mix b/boards/default/micropython_esp32c3/examples/MixGo CC/05-2-过程控制-单键开关.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/sahHJ4Yz72Xf.mix rename to boards/default/micropython_esp32c3/examples/MixGo CC/05-2-过程控制-单键开关.mix diff --git a/boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/3LXfiOG5fJZY.mix b/boards/default/micropython_esp32c3/examples/MixGo CC/05-3-过程控制-IPO概念.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/3LXfiOG5fJZY.mix rename to boards/default/micropython_esp32c3/examples/MixGo CC/05-3-过程控制-IPO概念.mix diff --git a/boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/m3S_qkesHrfb.mix b/boards/default/micropython_esp32c3/examples/MixGo CC/06-1-过程控制-声音采集.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/m3S_qkesHrfb.mix rename to boards/default/micropython_esp32c3/examples/MixGo CC/06-1-过程控制-声音采集.mix diff --git a/boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/ZpU6LyXvc6_6.mix b/boards/default/micropython_esp32c3/examples/MixGo CC/06-2-过程控制-看见声音.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/ZpU6LyXvc6_6.mix rename to boards/default/micropython_esp32c3/examples/MixGo CC/06-2-过程控制-看见声音.mix diff --git a/boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/b-1WLYwPggUl.mix b/boards/default/micropython_esp32c3/examples/MixGo CC/07-1-过程控制-光强采集.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/b-1WLYwPggUl.mix rename to boards/default/micropython_esp32c3/examples/MixGo CC/07-1-过程控制-光强采集.mix diff --git a/boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/t2nFswXRZdaG.mix b/boards/default/micropython_esp32c3/examples/MixGo CC/07-2-过程控制-自动补光.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/t2nFswXRZdaG.mix rename to boards/default/micropython_esp32c3/examples/MixGo CC/07-2-过程控制-自动补光.mix diff --git a/boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/u1dlumoHEFjq.mix b/boards/default/micropython_esp32c3/examples/MixGo CC/08-1-过程控制-接近检测.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/u1dlumoHEFjq.mix rename to boards/default/micropython_esp32c3/examples/MixGo CC/08-1-过程控制-接近检测.mix diff --git a/boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/29R2V74GpsNX.mix b/boards/default/micropython_esp32c3/examples/MixGo CC/08-2-过程控制-入侵报警.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/29R2V74GpsNX.mix rename to boards/default/micropython_esp32c3/examples/MixGo CC/08-2-过程控制-入侵报警.mix diff --git a/boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/M9j0cJYqpk_d.mix b/boards/default/micropython_esp32c3/examples/MixGo CC/09-1-输入输出-加速度.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/M9j0cJYqpk_d.mix rename to boards/default/micropython_esp32c3/examples/MixGo CC/09-1-输入输出-加速度.mix diff --git a/boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/C-qT6fZ02oZU.mix b/boards/default/micropython_esp32c3/examples/MixGo CC/09-2-输入输出-平衡仪.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/C-qT6fZ02oZU.mix rename to boards/default/micropython_esp32c3/examples/MixGo CC/09-2-输入输出-平衡仪.mix diff --git a/boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/nW_koMxANmY8.mix b/boards/default/micropython_esp32c3/examples/MixGo CC/10-1-输入输出-温湿度.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/nW_koMxANmY8.mix rename to boards/default/micropython_esp32c3/examples/MixGo CC/10-1-输入输出-温湿度.mix diff --git a/boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/jrN6Ig0FGoVO.mix b/boards/default/micropython_esp32c3/examples/MixGo CC/10-2-输入输出-大气压.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/jrN6Ig0FGoVO.mix rename to boards/default/micropython_esp32c3/examples/MixGo CC/10-2-输入输出-大气压.mix diff --git a/boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/SJj8Bp6gLL8g.mix b/boards/default/micropython_esp32c3/examples/MixGo CC/11-1-输入输出-点阵控制.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/SJj8Bp6gLL8g.mix rename to boards/default/micropython_esp32c3/examples/MixGo CC/11-1-输入输出-点阵控制.mix diff --git a/boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/MI2Hnnr3ovVc.mix b/boards/default/micropython_esp32c3/examples/MixGo CC/11-2-输入输出-光标控制.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/MI2Hnnr3ovVc.mix rename to boards/default/micropython_esp32c3/examples/MixGo CC/11-2-输入输出-光标控制.mix diff --git a/boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/YSBs-nhEknKo.mix b/boards/default/micropython_esp32c3/examples/MixGo CC/12-1-输入输出-实时时钟.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/YSBs-nhEknKo.mix rename to boards/default/micropython_esp32c3/examples/MixGo CC/12-1-输入输出-实时时钟.mix diff --git a/boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/xhBJ-oTaR3v3.mix b/boards/default/micropython_esp32c3/examples/MixGo CC/12-2-输入输出-实时时钟2.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/xhBJ-oTaR3v3.mix rename to boards/default/micropython_esp32c3/examples/MixGo CC/12-2-输入输出-实时时钟2.mix diff --git a/boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/-uoQhrB8xqID.mix b/boards/default/micropython_esp32c3/examples/MixGo CC/13-1-逻辑计算-手速测试.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/-uoQhrB8xqID.mix rename to boards/default/micropython_esp32c3/examples/MixGo CC/13-1-逻辑计算-手速测试.mix diff --git a/boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/xx-ouuZjSvOS.mix b/boards/default/micropython_esp32c3/examples/MixGo CC/13-2-逻辑计算-手速测试2.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/xx-ouuZjSvOS.mix rename to boards/default/micropython_esp32c3/examples/MixGo CC/13-2-逻辑计算-手速测试2.mix diff --git a/boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/vhzCw2xG3l9-.mix b/boards/default/micropython_esp32c3/examples/MixGo CC/14-1-逻辑计算-反应测试.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/vhzCw2xG3l9-.mix rename to boards/default/micropython_esp32c3/examples/MixGo CC/14-1-逻辑计算-反应测试.mix diff --git a/boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/Rm7lcIiRVGlj.mix b/boards/default/micropython_esp32c3/examples/MixGo CC/14-2-逻辑计算-反应测试2.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/Rm7lcIiRVGlj.mix rename to boards/default/micropython_esp32c3/examples/MixGo CC/14-2-逻辑计算-反应测试2.mix diff --git a/boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/aCdhiAwjvd6n.mix b/boards/default/micropython_esp32c3/examples/MixGo CC/15-1-逻辑计算-简单打地鼠.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/aCdhiAwjvd6n.mix rename to boards/default/micropython_esp32c3/examples/MixGo CC/15-1-逻辑计算-简单打地鼠.mix diff --git a/boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/2VIBG-DEtFuf.mix b/boards/default/micropython_esp32c3/examples/MixGo CC/15-2-逻辑计算-计时打地鼠.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/2VIBG-DEtFuf.mix rename to boards/default/micropython_esp32c3/examples/MixGo CC/15-2-逻辑计算-计时打地鼠.mix diff --git a/boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/L8xvIiPciC1t.mix b/boards/default/micropython_esp32c3/examples/MixGo CC/16-1-逻辑计算-开始打地鼠.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/L8xvIiPciC1t.mix rename to boards/default/micropython_esp32c3/examples/MixGo CC/16-1-逻辑计算-开始打地鼠.mix diff --git a/boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/fFxyBFTS7BLn.mix b/boards/default/micropython_esp32c3/examples/MixGo CC/16-2-逻辑计算-循环打地鼠.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/fFxyBFTS7BLn.mix rename to boards/default/micropython_esp32c3/examples/MixGo CC/16-2-逻辑计算-循环打地鼠.mix diff --git a/boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/b8b-BP6wzcFN.mix b/boards/default/micropython_esp32c3/examples/MixGo CC/17-0-复杂控制-非中断效果.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/b8b-BP6wzcFN.mix rename to boards/default/micropython_esp32c3/examples/MixGo CC/17-0-复杂控制-非中断效果.mix diff --git a/boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/Lx81wGw3Z7Jh.mix b/boards/default/micropython_esp32c3/examples/MixGo CC/17-1-复杂控制-双键中断.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/Lx81wGw3Z7Jh.mix rename to boards/default/micropython_esp32c3/examples/MixGo CC/17-1-复杂控制-双键中断.mix diff --git a/boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/HD2JsKuDy5KC.mix b/boards/default/micropython_esp32c3/examples/MixGo CC/17-2-复杂控制-单键中断.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/HD2JsKuDy5KC.mix rename to boards/default/micropython_esp32c3/examples/MixGo CC/17-2-复杂控制-单键中断.mix diff --git a/boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/SAt354m5iWRE.mix b/boards/default/micropython_esp32c3/examples/MixGo CC/18-1-复杂控制-定时计时.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/SAt354m5iWRE.mix rename to boards/default/micropython_esp32c3/examples/MixGo CC/18-1-复杂控制-定时计时.mix diff --git a/boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/i3eoqrtLGtlJ.mix b/boards/default/micropython_esp32c3/examples/MixGo CC/18-2-复杂控制-循环计时.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/i3eoqrtLGtlJ.mix rename to boards/default/micropython_esp32c3/examples/MixGo CC/18-2-复杂控制-循环计时.mix diff --git a/boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/xiJmR6nRc2fu.mix b/boards/default/micropython_esp32c3/examples/MixGo CC/19-1-复杂控制-多线程.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/xiJmR6nRc2fu.mix rename to boards/default/micropython_esp32c3/examples/MixGo CC/19-1-复杂控制-多线程.mix diff --git a/boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/47ZsBNmRMj3p.mix b/boards/default/micropython_esp32c3/examples/MixGo CC/19-2-复杂控制-多线程与中断.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/47ZsBNmRMj3p.mix rename to boards/default/micropython_esp32c3/examples/MixGo CC/19-2-复杂控制-多线程与中断.mix diff --git a/boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/aByMfkp8SOx2.mix b/boards/default/micropython_esp32c3/examples/MixGo CC/20-1-复杂控制-异常.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/aByMfkp8SOx2.mix rename to boards/default/micropython_esp32c3/examples/MixGo CC/20-1-复杂控制-异常.mix diff --git a/boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/lQnfJ7ASWqZP.mix b/boards/default/micropython_esp32c3/examples/MixGo CC/20-2-复杂控制-异常处理.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/lQnfJ7ASWqZP.mix rename to boards/default/micropython_esp32c3/examples/MixGo CC/20-2-复杂控制-异常处理.mix diff --git a/boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/QHY9D736eXEg.mix b/boards/default/micropython_esp32c3/examples/MixGo CC/21-1-射频识别-读取测试.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/QHY9D736eXEg.mix rename to boards/default/micropython_esp32c3/examples/MixGo CC/21-1-射频识别-读取测试.mix diff --git a/boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/v7GsSxvkKHcD.mix b/boards/default/micropython_esp32c3/examples/MixGo CC/21-2-射频识别-读取卡号.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/v7GsSxvkKHcD.mix rename to boards/default/micropython_esp32c3/examples/MixGo CC/21-2-射频识别-读取卡号.mix diff --git a/boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/rtNnMobWEUPI.mix b/boards/default/micropython_esp32c3/examples/MixGo CC/22-1-射频识别-写卡测试.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/rtNnMobWEUPI.mix rename to boards/default/micropython_esp32c3/examples/MixGo CC/22-1-射频识别-写卡测试.mix diff --git a/boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/QTRh6ZFju3f7.mix b/boards/default/micropython_esp32c3/examples/MixGo CC/22-2-射频识别-持续写卡.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/QTRh6ZFju3f7.mix rename to boards/default/micropython_esp32c3/examples/MixGo CC/22-2-射频识别-持续写卡.mix diff --git a/boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/816Aq2ngF982.mix b/boards/default/micropython_esp32c3/examples/MixGo CC/23-1-蓝牙通讯-主机模式.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/816Aq2ngF982.mix rename to boards/default/micropython_esp32c3/examples/MixGo CC/23-1-蓝牙通讯-主机模式.mix diff --git a/boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/jUM3ojDC2k8a.mix b/boards/default/micropython_esp32c3/examples/MixGo CC/23-1-蓝牙通讯-从机模式.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/jUM3ojDC2k8a.mix rename to boards/default/micropython_esp32c3/examples/MixGo CC/23-1-蓝牙通讯-从机模式.mix diff --git a/boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/dIMx2UhIYy67.mix b/boards/default/micropython_esp32c3/examples/MixGo CC/24-1-无线广播-通讯测试.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/dIMx2UhIYy67.mix rename to boards/default/micropython_esp32c3/examples/MixGo CC/24-1-无线广播-通讯测试.mix diff --git a/boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/F2fwFYrTZFZR.mix b/boards/default/micropython_esp32c3/examples/MixGo CC/24-2-无线广播-防丢检测.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/F2fwFYrTZFZR.mix rename to boards/default/micropython_esp32c3/examples/MixGo CC/24-2-无线广播-防丢检测.mix diff --git a/boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/xrn0Atbp2tXE.mix b/boards/default/micropython_esp32c3/examples/MixGo CC/25-1-飞机游戏-显示飞机.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/xrn0Atbp2tXE.mix rename to boards/default/micropython_esp32c3/examples/MixGo CC/25-1-飞机游戏-显示飞机.mix diff --git a/boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/lEwcsS6dzs__.mix b/boards/default/micropython_esp32c3/examples/MixGo CC/25-2-飞机游戏-移动飞机.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/lEwcsS6dzs__.mix rename to boards/default/micropython_esp32c3/examples/MixGo CC/25-2-飞机游戏-移动飞机.mix diff --git a/boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/VHsxkGG_mde4.mix b/boards/default/micropython_esp32c3/examples/MixGo CC/26-1-飞机游戏-发射子弹.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/VHsxkGG_mde4.mix rename to boards/default/micropython_esp32c3/examples/MixGo CC/26-1-飞机游戏-发射子弹.mix diff --git a/boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/4kQUHz8cH0m5.mix b/boards/default/micropython_esp32c3/examples/MixGo CC/26-2-飞机游戏-移动音效.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/4kQUHz8cH0m5.mix rename to boards/default/micropython_esp32c3/examples/MixGo CC/26-2-飞机游戏-移动音效.mix diff --git a/boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/pNT7q9FxV_bv.mix b/boards/default/micropython_esp32c3/examples/MixGo CC/27-1-飞机游戏-显示敌机.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/pNT7q9FxV_bv.mix rename to boards/default/micropython_esp32c3/examples/MixGo CC/27-1-飞机游戏-显示敌机.mix diff --git a/boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/oJCThQYrEbaX.mix b/boards/default/micropython_esp32c3/examples/MixGo CC/27-2-飞机游戏-消灭敌机.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/oJCThQYrEbaX.mix rename to boards/default/micropython_esp32c3/examples/MixGo CC/27-2-飞机游戏-消灭敌机.mix diff --git a/boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/hPdTgE5edaSf.mix b/boards/default/micropython_esp32c3/examples/MixGo CC/28-1-飞机游戏-显示得分.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/hPdTgE5edaSf.mix rename to boards/default/micropython_esp32c3/examples/MixGo CC/28-1-飞机游戏-显示得分.mix diff --git a/boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/c_3rztjiR0y4.mix b/boards/default/micropython_esp32c3/examples/MixGo CC/28-2-飞机游戏-结束游戏.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/c_3rztjiR0y4.mix rename to boards/default/micropython_esp32c3/examples/MixGo CC/28-2-飞机游戏-结束游戏.mix diff --git a/boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/Fx-iDmtzfoJS.mix b/boards/default/micropython_esp32c3/examples/MixGo CC/29-1-物联网-简单数据定时上报.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/Fx-iDmtzfoJS.mix rename to boards/default/micropython_esp32c3/examples/MixGo CC/29-1-物联网-简单数据定时上报.mix diff --git a/boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/7Yp5XG1hDpT2.mix b/boards/default/micropython_esp32c3/examples/MixGo CC/29-2-物联网-复杂数据定时上报.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/7Yp5XG1hDpT2.mix rename to boards/default/micropython_esp32c3/examples/MixGo CC/29-2-物联网-复杂数据定时上报.mix diff --git a/boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/6qfCTYRdBHeX.mix b/boards/default/micropython_esp32c3/examples/MixGo CC/30-1-物联网-简单数据按需上报.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/6qfCTYRdBHeX.mix rename to boards/default/micropython_esp32c3/examples/MixGo CC/30-1-物联网-简单数据按需上报.mix diff --git a/boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/yFHaWkAJkSPJ.mix b/boards/default/micropython_esp32c3/examples/MixGo CC/30-2-物联网-高级数据按需上报.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/yFHaWkAJkSPJ.mix rename to boards/default/micropython_esp32c3/examples/MixGo CC/30-2-物联网-高级数据按需上报.mix diff --git a/boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/FYx5o2zoc8Wx.mix b/boards/default/micropython_esp32c3/examples/MixGo CC/31-1-物联网-单主题数据订阅.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/FYx5o2zoc8Wx.mix rename to boards/default/micropython_esp32c3/examples/MixGo CC/31-1-物联网-单主题数据订阅.mix diff --git a/boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/yGBfUioCXDeX.mix b/boards/default/micropython_esp32c3/examples/MixGo CC/31-1-物联网-单主题数据订阅2.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/yGBfUioCXDeX.mix rename to boards/default/micropython_esp32c3/examples/MixGo CC/31-1-物联网-单主题数据订阅2.mix diff --git a/boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/gDPgd5Wp4j6G.mix b/boards/default/micropython_esp32c3/examples/MixGo CC/32-1-物联网-多主题数据订.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/gDPgd5Wp4j6G.mix rename to boards/default/micropython_esp32c3/examples/MixGo CC/32-1-物联网-多主题数据订.mix diff --git a/boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/eIEJPAGjiBQJ.mix b/boards/default/micropython_esp32c3/examples/MixGo CC/32-2-物联网-多主题数据订2.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/eIEJPAGjiBQJ.mix rename to boards/default/micropython_esp32c3/examples/MixGo CC/32-2-物联网-多主题数据订2.mix diff --git a/boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/AL9u16qgPStW.mix b/boards/default/micropython_esp32c3/examples/MixGo CC/33-1-课堂互动-自由签到.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/AL9u16qgPStW.mix rename to boards/default/micropython_esp32c3/examples/MixGo CC/33-1-课堂互动-自由签到.mix diff --git a/boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/KOU17E-hTq1v.mix b/boards/default/micropython_esp32c3/examples/MixGo CC/33-2-课堂互动-按需签到.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/KOU17E-hTq1v.mix rename to boards/default/micropython_esp32c3/examples/MixGo CC/33-2-课堂互动-按需签到.mix diff --git a/boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/AMPzHuPagwwB.mix b/boards/default/micropython_esp32c3/examples/MixGo CC/34-1-课堂互动-一人抢答.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/AMPzHuPagwwB.mix rename to boards/default/micropython_esp32c3/examples/MixGo CC/34-1-课堂互动-一人抢答.mix diff --git a/boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/yzppbh-KbqDl.mix b/boards/default/micropython_esp32c3/examples/MixGo CC/34-2-课堂互动-多人抢答.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/yzppbh-KbqDl.mix rename to boards/default/micropython_esp32c3/examples/MixGo CC/34-2-课堂互动-多人抢答.mix diff --git a/boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/TujAYJLyVvsO.mix b/boards/default/micropython_esp32c3/examples/MixGo CC/35-1-课堂互动-单选答题.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/TujAYJLyVvsO.mix rename to boards/default/micropython_esp32c3/examples/MixGo CC/35-1-课堂互动-单选答题.mix diff --git a/boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/ua3RFTTcI5O_.mix b/boards/default/micropython_esp32c3/examples/MixGo CC/35-2-课堂互动-多选答题.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/ua3RFTTcI5O_.mix rename to boards/default/micropython_esp32c3/examples/MixGo CC/35-2-课堂互动-多选答题.mix diff --git a/boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/9LB-41zf1BY3.mix b/boards/default/micropython_esp32c3/examples/MixGo CC/36-1-课堂互动-点名答题.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/9LB-41zf1BY3.mix rename to boards/default/micropython_esp32c3/examples/MixGo CC/36-1-课堂互动-点名答题.mix diff --git a/boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/T4Tyb8x0Yccb.mix b/boards/default/micropython_esp32c3/examples/MixGo CC/36-2-课堂互动-多人点答.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/T4Tyb8x0Yccb.mix rename to boards/default/micropython_esp32c3/examples/MixGo CC/36-2-课堂互动-多人点答.mix diff --git a/boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/I-YC9CBEqlmH.mix b/boards/default/micropython_esp32c3/examples/MixGo CC/37-1-文件操作-列出文件.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/I-YC9CBEqlmH.mix rename to boards/default/micropython_esp32c3/examples/MixGo CC/37-1-文件操作-列出文件.mix diff --git a/boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/uZiJz9zx9v3k.mix b/boards/default/micropython_esp32c3/examples/MixGo CC/37-2-文件操作-列出文件2.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/uZiJz9zx9v3k.mix rename to boards/default/micropython_esp32c3/examples/MixGo CC/37-2-文件操作-列出文件2.mix diff --git a/boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/Bc0R4zqZpGF5.mix b/boards/default/micropython_esp32c3/examples/MixGo CC/38-1-文件操作-文件读写.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/Bc0R4zqZpGF5.mix rename to boards/default/micropython_esp32c3/examples/MixGo CC/38-1-文件操作-文件读写.mix diff --git a/boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/CvGBJ7fkiauq.mix b/boards/default/micropython_esp32c3/examples/MixGo CC/38-2-文件操作-文件读写2.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/CvGBJ7fkiauq.mix rename to boards/default/micropython_esp32c3/examples/MixGo CC/38-2-文件操作-文件读写2.mix diff --git a/boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/a7FZD1CFY0Qn.mix b/boards/default/micropython_esp32c3/examples/MixGo CC/39-1-文件操作-录音采集.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/a7FZD1CFY0Qn.mix rename to boards/default/micropython_esp32c3/examples/MixGo CC/39-1-文件操作-录音采集.mix diff --git a/boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/OxVHP5kF8Cpf.mix b/boards/default/micropython_esp32c3/examples/MixGo CC/39-2-文件操作-录音重现.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/OxVHP5kF8Cpf.mix rename to boards/default/micropython_esp32c3/examples/MixGo CC/39-2-文件操作-录音重现.mix diff --git a/boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/TY9QmEmiRzaP.mix b/boards/default/micropython_esp32c3/examples/MixGo CC/40-1-文件操作-震动采集.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/TY9QmEmiRzaP.mix rename to boards/default/micropython_esp32c3/examples/MixGo CC/40-1-文件操作-震动采集.mix diff --git a/boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/XDTx5dX4GUuL.mix b/boards/default/micropython_esp32c3/examples/MixGo CC/40-2-文件操作-震动重现.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/XDTx5dX4GUuL.mix rename to boards/default/micropython_esp32c3/examples/MixGo CC/40-2-文件操作-震动重现.mix diff --git a/boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/gulPPrxNEb5Y.mix b/boards/default/micropython_esp32c3/examples/MixGo CC/41-1-智能小车-前进转弯(MEGO).mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/gulPPrxNEb5Y.mix rename to boards/default/micropython_esp32c3/examples/MixGo CC/41-1-智能小车-前进转弯(MEGO).mix diff --git a/boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/esHlIqwvGYAQ.mix b/boards/default/micropython_esp32c3/examples/MixGo CC/41-2-智能小车-圆圈转弯(MEGO).mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/esHlIqwvGYAQ.mix rename to boards/default/micropython_esp32c3/examples/MixGo CC/41-2-智能小车-圆圈转弯(MEGO).mix diff --git a/boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/t-Abbo-VifVC.mix b/boards/default/micropython_esp32c3/examples/MixGo CC/42-1-智能小车-智能避障(MEGO).mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/t-Abbo-VifVC.mix rename to boards/default/micropython_esp32c3/examples/MixGo CC/42-1-智能小车-智能避障(MEGO).mix diff --git a/boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/muObLV9PSwro.mix b/boards/default/micropython_esp32c3/examples/MixGo CC/42-2-智能小车-智能避障2(MEGO).mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/muObLV9PSwro.mix rename to boards/default/micropython_esp32c3/examples/MixGo CC/42-2-智能小车-智能避障2(MEGO).mix diff --git a/boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/4H0N0n3C-Ykv.mix b/boards/default/micropython_esp32c3/examples/MixGo CC/43-1-智能小车-遥控小车(MEGO).mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/4H0N0n3C-Ykv.mix rename to boards/default/micropython_esp32c3/examples/MixGo CC/43-1-智能小车-遥控小车(MEGO).mix diff --git a/boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/m4p27kg2YgMQ.mix b/boards/default/micropython_esp32c3/examples/MixGo CC/43-2-智能小车-体感遥控(MEGO).mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/m4p27kg2YgMQ.mix rename to boards/default/micropython_esp32c3/examples/MixGo CC/43-2-智能小车-体感遥控(MEGO).mix diff --git a/boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/vluFMCOC1R_Y.mix b/boards/default/micropython_esp32c3/examples/MixGo CC/44-1-智能小车-P单巡线(MEGO).mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/vluFMCOC1R_Y.mix rename to boards/default/micropython_esp32c3/examples/MixGo CC/44-1-智能小车-P单巡线(MEGO).mix diff --git a/boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/T-a8E012uvsw.mix b/boards/default/micropython_esp32c3/examples/MixGo CC/44-2-智能小车-P双巡线(MEGO).mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/3xtn-eVfIEev/T-a8E012uvsw.mix rename to boards/default/micropython_esp32c3/examples/MixGo CC/44-2-智能小车-P双巡线(MEGO).mix diff --git a/boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/JuxAfLycf4XM.mix b/boards/default/micropython_esp32c3/examples/MixGo ME/01-1-快速入门-你好世界.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/JuxAfLycf4XM.mix rename to boards/default/micropython_esp32c3/examples/MixGo ME/01-1-快速入门-你好世界.mix diff --git a/boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/ZOHJC11soikB.mix b/boards/default/micropython_esp32c3/examples/MixGo ME/01-2-快速入门-你好世界2.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/ZOHJC11soikB.mix rename to boards/default/micropython_esp32c3/examples/MixGo ME/01-2-快速入门-你好世界2.mix diff --git a/boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/GIjCNWASNJYH.mix b/boards/default/micropython_esp32c3/examples/MixGo ME/02-1-快速入门-跳动的心.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/GIjCNWASNJYH.mix rename to boards/default/micropython_esp32c3/examples/MixGo ME/02-1-快速入门-跳动的心.mix diff --git a/boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/8AE2FaILJGuY.mix b/boards/default/micropython_esp32c3/examples/MixGo ME/02-2-快速入门-为你心动.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/8AE2FaILJGuY.mix rename to boards/default/micropython_esp32c3/examples/MixGo ME/02-2-快速入门-为你心动.mix diff --git a/boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/ZZgTWb2G5nD5.mix b/boards/default/micropython_esp32c3/examples/MixGo ME/03-1-快速入门-心随我动.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/ZZgTWb2G5nD5.mix rename to boards/default/micropython_esp32c3/examples/MixGo ME/03-1-快速入门-心随我动.mix diff --git a/boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/BrBf2v4UBxfx.mix b/boards/default/micropython_esp32c3/examples/MixGo ME/03-2-快速入门-心随我动2.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/BrBf2v4UBxfx.mix rename to boards/default/micropython_esp32c3/examples/MixGo ME/03-2-快速入门-心随我动2.mix diff --git a/boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/eAujaOKbiNUU.mix b/boards/default/micropython_esp32c3/examples/MixGo ME/04-1-快速入门-流动的灯.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/eAujaOKbiNUU.mix rename to boards/default/micropython_esp32c3/examples/MixGo ME/04-1-快速入门-流动的灯.mix diff --git a/boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/WGREBp0lD_Oi.mix b/boards/default/micropython_esp32c3/examples/MixGo ME/04-2-快速入门-流动的灯2.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/WGREBp0lD_Oi.mix rename to boards/default/micropython_esp32c3/examples/MixGo ME/04-2-快速入门-流动的灯2.mix diff --git a/boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/WYlQFyAx8cZL.mix b/boards/default/micropython_esp32c3/examples/MixGo ME/05-1-过程控制-双键开关.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/WYlQFyAx8cZL.mix rename to boards/default/micropython_esp32c3/examples/MixGo ME/05-1-过程控制-双键开关.mix diff --git a/boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/RExfgUNdSL5T.mix b/boards/default/micropython_esp32c3/examples/MixGo ME/05-2-过程控制-单键开关.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/RExfgUNdSL5T.mix rename to boards/default/micropython_esp32c3/examples/MixGo ME/05-2-过程控制-单键开关.mix diff --git a/boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/Iru0tabUxyVA.mix b/boards/default/micropython_esp32c3/examples/MixGo ME/05-3-过程控制-IPO概念.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/Iru0tabUxyVA.mix rename to boards/default/micropython_esp32c3/examples/MixGo ME/05-3-过程控制-IPO概念.mix diff --git a/boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/nMbZUc2N_MFf.mix b/boards/default/micropython_esp32c3/examples/MixGo ME/06-1-过程控制-声音采集.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/nMbZUc2N_MFf.mix rename to boards/default/micropython_esp32c3/examples/MixGo ME/06-1-过程控制-声音采集.mix diff --git a/boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/aqQwDJ5rvyMR.mix b/boards/default/micropython_esp32c3/examples/MixGo ME/06-2-过程控制-看见声音.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/aqQwDJ5rvyMR.mix rename to boards/default/micropython_esp32c3/examples/MixGo ME/06-2-过程控制-看见声音.mix diff --git a/boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/e36oJbb9-jr4.mix b/boards/default/micropython_esp32c3/examples/MixGo ME/07-1-过程控制-光强采集.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/e36oJbb9-jr4.mix rename to boards/default/micropython_esp32c3/examples/MixGo ME/07-1-过程控制-光强采集.mix diff --git a/boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/2cNr1Z-ObB3K.mix b/boards/default/micropython_esp32c3/examples/MixGo ME/07-2-过程控制-自动补光.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/2cNr1Z-ObB3K.mix rename to boards/default/micropython_esp32c3/examples/MixGo ME/07-2-过程控制-自动补光.mix diff --git a/boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/xuMF8pgEDvsm.mix b/boards/default/micropython_esp32c3/examples/MixGo ME/08-1-过程控制-接近检测.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/xuMF8pgEDvsm.mix rename to boards/default/micropython_esp32c3/examples/MixGo ME/08-1-过程控制-接近检测.mix diff --git a/boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/xL-O-lwqfd17.mix b/boards/default/micropython_esp32c3/examples/MixGo ME/08-2-过程控制-入侵报警.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/xL-O-lwqfd17.mix rename to boards/default/micropython_esp32c3/examples/MixGo ME/08-2-过程控制-入侵报警.mix diff --git a/boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/ePoAHlKNkdUQ.mix b/boards/default/micropython_esp32c3/examples/MixGo ME/09-1-输入输出-加速度.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/ePoAHlKNkdUQ.mix rename to boards/default/micropython_esp32c3/examples/MixGo ME/09-1-输入输出-加速度.mix diff --git a/boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/IXFFTvJ3cEHa.mix b/boards/default/micropython_esp32c3/examples/MixGo ME/09-2-输入输出-平衡仪.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/IXFFTvJ3cEHa.mix rename to boards/default/micropython_esp32c3/examples/MixGo ME/09-2-输入输出-平衡仪.mix diff --git a/boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/G8mA6hp9mNPj.mix b/boards/default/micropython_esp32c3/examples/MixGo ME/10-1-输入输出-地磁强度.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/G8mA6hp9mNPj.mix rename to boards/default/micropython_esp32c3/examples/MixGo ME/10-1-输入输出-地磁强度.mix diff --git a/boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/bF9yMhmriYUW.mix b/boards/default/micropython_esp32c3/examples/MixGo ME/10-2-输入输出-金属探测.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/bF9yMhmriYUW.mix rename to boards/default/micropython_esp32c3/examples/MixGo ME/10-2-输入输出-金属探测.mix diff --git a/boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/bQ6rQdy51030.mix b/boards/default/micropython_esp32c3/examples/MixGo ME/11-1-输入输出-点阵控制.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/bQ6rQdy51030.mix rename to boards/default/micropython_esp32c3/examples/MixGo ME/11-1-输入输出-点阵控制.mix diff --git a/boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/20GkZUZNaMxl.mix b/boards/default/micropython_esp32c3/examples/MixGo ME/11-2-输入输出-光标控制.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/20GkZUZNaMxl.mix rename to boards/default/micropython_esp32c3/examples/MixGo ME/11-2-输入输出-光标控制.mix diff --git a/boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/SP9CBOn0MRHT.mix b/boards/default/micropython_esp32c3/examples/MixGo ME/12-1-输入输出-实时时钟.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/SP9CBOn0MRHT.mix rename to boards/default/micropython_esp32c3/examples/MixGo ME/12-1-输入输出-实时时钟.mix diff --git a/boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/dx_Gq8Hj81EB.mix b/boards/default/micropython_esp32c3/examples/MixGo ME/12-2-输入输出-实时时钟2.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/dx_Gq8Hj81EB.mix rename to boards/default/micropython_esp32c3/examples/MixGo ME/12-2-输入输出-实时时钟2.mix diff --git a/boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/4-F9vgJ_Rcq-.mix b/boards/default/micropython_esp32c3/examples/MixGo ME/13-1-逻辑计算-手速测试.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/4-F9vgJ_Rcq-.mix rename to boards/default/micropython_esp32c3/examples/MixGo ME/13-1-逻辑计算-手速测试.mix diff --git a/boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/0jz4RUTD9J3B.mix b/boards/default/micropython_esp32c3/examples/MixGo ME/13-2-逻辑计算-手速测试2.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/0jz4RUTD9J3B.mix rename to boards/default/micropython_esp32c3/examples/MixGo ME/13-2-逻辑计算-手速测试2.mix diff --git a/boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/NhjMkAwsLjVl.mix b/boards/default/micropython_esp32c3/examples/MixGo ME/14-1-逻辑计算-反应测试.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/NhjMkAwsLjVl.mix rename to boards/default/micropython_esp32c3/examples/MixGo ME/14-1-逻辑计算-反应测试.mix diff --git a/boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/gqux4ECn-mto.mix b/boards/default/micropython_esp32c3/examples/MixGo ME/14-2-逻辑计算-反应测试2.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/gqux4ECn-mto.mix rename to boards/default/micropython_esp32c3/examples/MixGo ME/14-2-逻辑计算-反应测试2.mix diff --git a/boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/VLVIlccU7Dsr.mix b/boards/default/micropython_esp32c3/examples/MixGo ME/15-1-逻辑计算-简单打地鼠.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/VLVIlccU7Dsr.mix rename to boards/default/micropython_esp32c3/examples/MixGo ME/15-1-逻辑计算-简单打地鼠.mix diff --git a/boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/AbKS6SqIZNM0.mix b/boards/default/micropython_esp32c3/examples/MixGo ME/15-2-逻辑计算-计时打地鼠.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/AbKS6SqIZNM0.mix rename to boards/default/micropython_esp32c3/examples/MixGo ME/15-2-逻辑计算-计时打地鼠.mix diff --git a/boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/CyzQsleYzPiw.mix b/boards/default/micropython_esp32c3/examples/MixGo ME/16-1-逻辑计算-开始打地鼠.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/CyzQsleYzPiw.mix rename to boards/default/micropython_esp32c3/examples/MixGo ME/16-1-逻辑计算-开始打地鼠.mix diff --git a/boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/lSyDuvyYQ9MS.mix b/boards/default/micropython_esp32c3/examples/MixGo ME/16-2-逻辑计算-循环打地鼠.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/lSyDuvyYQ9MS.mix rename to boards/default/micropython_esp32c3/examples/MixGo ME/16-2-逻辑计算-循环打地鼠.mix diff --git a/boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/BwALJYMkYTgD.mix b/boards/default/micropython_esp32c3/examples/MixGo ME/17-0-复杂控制-非中断效果.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/BwALJYMkYTgD.mix rename to boards/default/micropython_esp32c3/examples/MixGo ME/17-0-复杂控制-非中断效果.mix diff --git a/boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/HcikkM8lXYNB.mix b/boards/default/micropython_esp32c3/examples/MixGo ME/17-2-复杂控制-单键中断.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/HcikkM8lXYNB.mix rename to boards/default/micropython_esp32c3/examples/MixGo ME/17-2-复杂控制-单键中断.mix diff --git a/boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/Ek_TBvqkCoeF.mix b/boards/default/micropython_esp32c3/examples/MixGo ME/18-1-复杂控制-定时计时.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/Ek_TBvqkCoeF.mix rename to boards/default/micropython_esp32c3/examples/MixGo ME/18-1-复杂控制-定时计时.mix diff --git a/boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/NgBAbVnM8tsA.mix b/boards/default/micropython_esp32c3/examples/MixGo ME/18-2-复杂控制-循环计时.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/NgBAbVnM8tsA.mix rename to boards/default/micropython_esp32c3/examples/MixGo ME/18-2-复杂控制-循环计时.mix diff --git a/boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/RyUFym9fDskL.mix b/boards/default/micropython_esp32c3/examples/MixGo ME/19-1-复杂控制-多线程.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/RyUFym9fDskL.mix rename to boards/default/micropython_esp32c3/examples/MixGo ME/19-1-复杂控制-多线程.mix diff --git a/boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/xSm5j10RjLy4.mix b/boards/default/micropython_esp32c3/examples/MixGo ME/19-2-复杂控制-多线程与中断.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/xSm5j10RjLy4.mix rename to boards/default/micropython_esp32c3/examples/MixGo ME/19-2-复杂控制-多线程与中断.mix diff --git a/boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/rOISlIounrSj.mix b/boards/default/micropython_esp32c3/examples/MixGo ME/20-1-复杂控制-异常.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/rOISlIounrSj.mix rename to boards/default/micropython_esp32c3/examples/MixGo ME/20-1-复杂控制-异常.mix diff --git a/boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/YtFuA4Q0FPc-.mix b/boards/default/micropython_esp32c3/examples/MixGo ME/20-2-复杂控制-异常处理.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/YtFuA4Q0FPc-.mix rename to boards/default/micropython_esp32c3/examples/MixGo ME/20-2-复杂控制-异常处理.mix diff --git a/boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/MSFROSxWiyfP.mix b/boards/default/micropython_esp32c3/examples/MixGo ME/21-1-射频识别-读取测试(MEG1).mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/MSFROSxWiyfP.mix rename to boards/default/micropython_esp32c3/examples/MixGo ME/21-1-射频识别-读取测试(MEG1).mix diff --git a/boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/acv4vztvxe31.mix b/boards/default/micropython_esp32c3/examples/MixGo ME/21-2-射频识别-读取卡号(MEG1).mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/acv4vztvxe31.mix rename to boards/default/micropython_esp32c3/examples/MixGo ME/21-2-射频识别-读取卡号(MEG1).mix diff --git a/boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/Qwa5Wq4_BtcF.mix b/boards/default/micropython_esp32c3/examples/MixGo ME/22-1-射频识别-写卡测试(MEG1).mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/Qwa5Wq4_BtcF.mix rename to boards/default/micropython_esp32c3/examples/MixGo ME/22-1-射频识别-写卡测试(MEG1).mix diff --git a/boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/hR9Os1HLu0NN.mix b/boards/default/micropython_esp32c3/examples/MixGo ME/22-2-射频识别-持续写卡(MEG1).mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/hR9Os1HLu0NN.mix rename to boards/default/micropython_esp32c3/examples/MixGo ME/22-2-射频识别-持续写卡(MEG1).mix diff --git a/boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/dFwtc5evqVnK.mix b/boards/default/micropython_esp32c3/examples/MixGo ME/23-1-蓝牙通讯-主机模式.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/dFwtc5evqVnK.mix rename to boards/default/micropython_esp32c3/examples/MixGo ME/23-1-蓝牙通讯-主机模式.mix diff --git a/boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/XTbEdueEetoV.mix b/boards/default/micropython_esp32c3/examples/MixGo ME/23-1-蓝牙通讯-从机模式.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/XTbEdueEetoV.mix rename to boards/default/micropython_esp32c3/examples/MixGo ME/23-1-蓝牙通讯-从机模式.mix diff --git a/boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/ygF272fmeQ9Q.mix b/boards/default/micropython_esp32c3/examples/MixGo ME/24-1-无线广播-通讯测试.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/ygF272fmeQ9Q.mix rename to boards/default/micropython_esp32c3/examples/MixGo ME/24-1-无线广播-通讯测试.mix diff --git a/boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/O1EI4zTz7-32.mix b/boards/default/micropython_esp32c3/examples/MixGo ME/24-2-无线广播-防丢检测.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/O1EI4zTz7-32.mix rename to boards/default/micropython_esp32c3/examples/MixGo ME/24-2-无线广播-防丢检测.mix diff --git a/boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/6v3IjA6yrbzK.mix b/boards/default/micropython_esp32c3/examples/MixGo ME/25-1-飞机游戏-显示飞机.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/6v3IjA6yrbzK.mix rename to boards/default/micropython_esp32c3/examples/MixGo ME/25-1-飞机游戏-显示飞机.mix diff --git a/boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/yo52SfDx2Zcl.mix b/boards/default/micropython_esp32c3/examples/MixGo ME/25-2-飞机游戏-移动飞机.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/yo52SfDx2Zcl.mix rename to boards/default/micropython_esp32c3/examples/MixGo ME/25-2-飞机游戏-移动飞机.mix diff --git a/boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/bk0YRrO0uW4J.mix b/boards/default/micropython_esp32c3/examples/MixGo ME/26-1-飞机游戏-发射子弹.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/bk0YRrO0uW4J.mix rename to boards/default/micropython_esp32c3/examples/MixGo ME/26-1-飞机游戏-发射子弹.mix diff --git a/boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/x_COPBhpu0eG.mix b/boards/default/micropython_esp32c3/examples/MixGo ME/26-2-飞机游戏-移动音效.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/x_COPBhpu0eG.mix rename to boards/default/micropython_esp32c3/examples/MixGo ME/26-2-飞机游戏-移动音效.mix diff --git a/boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/6W6ha0br_xGt.mix b/boards/default/micropython_esp32c3/examples/MixGo ME/27-1-飞机游戏-显示敌机.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/6W6ha0br_xGt.mix rename to boards/default/micropython_esp32c3/examples/MixGo ME/27-1-飞机游戏-显示敌机.mix diff --git a/boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/YwZJEA0XTnfg.mix b/boards/default/micropython_esp32c3/examples/MixGo ME/27-2-飞机游戏-消灭敌机.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/YwZJEA0XTnfg.mix rename to boards/default/micropython_esp32c3/examples/MixGo ME/27-2-飞机游戏-消灭敌机.mix diff --git a/boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/aHzC0WyuN18P.mix b/boards/default/micropython_esp32c3/examples/MixGo ME/28-1-飞机游戏-显示得分.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/aHzC0WyuN18P.mix rename to boards/default/micropython_esp32c3/examples/MixGo ME/28-1-飞机游戏-显示得分.mix diff --git a/boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/bscUBuAQmNoX.mix b/boards/default/micropython_esp32c3/examples/MixGo ME/28-2-飞机游戏-结束游戏.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/bscUBuAQmNoX.mix rename to boards/default/micropython_esp32c3/examples/MixGo ME/28-2-飞机游戏-结束游戏.mix diff --git a/boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/3fq4QDwX_Cza.mix b/boards/default/micropython_esp32c3/examples/MixGo ME/29-1-物联网-简单数据定时上报.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/3fq4QDwX_Cza.mix rename to boards/default/micropython_esp32c3/examples/MixGo ME/29-1-物联网-简单数据定时上报.mix diff --git a/boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/xDj4udwpodWl.mix b/boards/default/micropython_esp32c3/examples/MixGo ME/29-2-物联网-复杂数据定时上报.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/xDj4udwpodWl.mix rename to boards/default/micropython_esp32c3/examples/MixGo ME/29-2-物联网-复杂数据定时上报.mix diff --git a/boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/2dK-f3oliXG5.mix b/boards/default/micropython_esp32c3/examples/MixGo ME/30-1-物联网-简单数据按需上报.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/2dK-f3oliXG5.mix rename to boards/default/micropython_esp32c3/examples/MixGo ME/30-1-物联网-简单数据按需上报.mix diff --git a/boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/v6q60HQQXbKP.mix b/boards/default/micropython_esp32c3/examples/MixGo ME/30-2-物联网-高级数据按需上报.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/v6q60HQQXbKP.mix rename to boards/default/micropython_esp32c3/examples/MixGo ME/30-2-物联网-高级数据按需上报.mix diff --git a/boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/cEVEK-PvCGYW.mix b/boards/default/micropython_esp32c3/examples/MixGo ME/31-1-物联网-单主题数据订阅.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/cEVEK-PvCGYW.mix rename to boards/default/micropython_esp32c3/examples/MixGo ME/31-1-物联网-单主题数据订阅.mix diff --git a/boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/4HhGE6AkvHCy.mix b/boards/default/micropython_esp32c3/examples/MixGo ME/31-1-物联网-单主题数据订阅2.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/4HhGE6AkvHCy.mix rename to boards/default/micropython_esp32c3/examples/MixGo ME/31-1-物联网-单主题数据订阅2.mix diff --git a/boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/99Yv_eSC0vyO.mix b/boards/default/micropython_esp32c3/examples/MixGo ME/32-1-物联网-多主题数据订.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/99Yv_eSC0vyO.mix rename to boards/default/micropython_esp32c3/examples/MixGo ME/32-1-物联网-多主题数据订.mix diff --git a/boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/Zhd2Dw13zffr.mix b/boards/default/micropython_esp32c3/examples/MixGo ME/32-2-物联网-多主题数据订2.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/Zhd2Dw13zffr.mix rename to boards/default/micropython_esp32c3/examples/MixGo ME/32-2-物联网-多主题数据订2.mix diff --git a/boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/doV9jZB6RkEa.mix b/boards/default/micropython_esp32c3/examples/MixGo ME/33-1-课堂互动-自由签到.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/doV9jZB6RkEa.mix rename to boards/default/micropython_esp32c3/examples/MixGo ME/33-1-课堂互动-自由签到.mix diff --git a/boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/m78gq17R2AHH.mix b/boards/default/micropython_esp32c3/examples/MixGo ME/33-2-课堂互动-按需签到.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/m78gq17R2AHH.mix rename to boards/default/micropython_esp32c3/examples/MixGo ME/33-2-课堂互动-按需签到.mix diff --git a/boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/l2l_cOpx8ApQ.mix b/boards/default/micropython_esp32c3/examples/MixGo ME/34-1-课堂互动-一人抢答.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/l2l_cOpx8ApQ.mix rename to boards/default/micropython_esp32c3/examples/MixGo ME/34-1-课堂互动-一人抢答.mix diff --git a/boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/naMxZcgk2Bbf.mix b/boards/default/micropython_esp32c3/examples/MixGo ME/34-2-课堂互动-多人抢答.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/naMxZcgk2Bbf.mix rename to boards/default/micropython_esp32c3/examples/MixGo ME/34-2-课堂互动-多人抢答.mix diff --git a/boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/W1uMzDTU0NZ-.mix b/boards/default/micropython_esp32c3/examples/MixGo ME/35-1-课堂互动-单选答题.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/W1uMzDTU0NZ-.mix rename to boards/default/micropython_esp32c3/examples/MixGo ME/35-1-课堂互动-单选答题.mix diff --git a/boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/sZiKMkm5va8d.mix b/boards/default/micropython_esp32c3/examples/MixGo ME/35-2-课堂互动-多选答题.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/sZiKMkm5va8d.mix rename to boards/default/micropython_esp32c3/examples/MixGo ME/35-2-课堂互动-多选答题.mix diff --git a/boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/7UmViJx9QkeR.mix b/boards/default/micropython_esp32c3/examples/MixGo ME/36-1-课堂互动-点名答题.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/7UmViJx9QkeR.mix rename to boards/default/micropython_esp32c3/examples/MixGo ME/36-1-课堂互动-点名答题.mix diff --git a/boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/9G6o8PZjF8RH.mix b/boards/default/micropython_esp32c3/examples/MixGo ME/36-2-课堂互动-多人点答.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/9G6o8PZjF8RH.mix rename to boards/default/micropython_esp32c3/examples/MixGo ME/36-2-课堂互动-多人点答.mix diff --git a/boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/VF7Y8AvVconj.mix b/boards/default/micropython_esp32c3/examples/MixGo ME/37-1-文件操作-列出文件.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/VF7Y8AvVconj.mix rename to boards/default/micropython_esp32c3/examples/MixGo ME/37-1-文件操作-列出文件.mix diff --git a/boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/nMliuWN1zdEq.mix b/boards/default/micropython_esp32c3/examples/MixGo ME/37-2-文件操作-列出文件2.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/nMliuWN1zdEq.mix rename to boards/default/micropython_esp32c3/examples/MixGo ME/37-2-文件操作-列出文件2.mix diff --git a/boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/hv3imnzFunSZ.mix b/boards/default/micropython_esp32c3/examples/MixGo ME/38-1-文件操作-文件读写.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/hv3imnzFunSZ.mix rename to boards/default/micropython_esp32c3/examples/MixGo ME/38-1-文件操作-文件读写.mix diff --git a/boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/xQmVvnnfc2Mo.mix b/boards/default/micropython_esp32c3/examples/MixGo ME/38-2-文件操作-文件读写2.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/xQmVvnnfc2Mo.mix rename to boards/default/micropython_esp32c3/examples/MixGo ME/38-2-文件操作-文件读写2.mix diff --git a/boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/4ENRzu9PAb0A.mix b/boards/default/micropython_esp32c3/examples/MixGo ME/39-1-文件操作-录音采集.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/4ENRzu9PAb0A.mix rename to boards/default/micropython_esp32c3/examples/MixGo ME/39-1-文件操作-录音采集.mix diff --git a/boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/sYXD1yYH-dQf.mix b/boards/default/micropython_esp32c3/examples/MixGo ME/39-2-文件操作-录音重现.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/sYXD1yYH-dQf.mix rename to boards/default/micropython_esp32c3/examples/MixGo ME/39-2-文件操作-录音重现.mix diff --git a/boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/qP8ezACznzXd.mix b/boards/default/micropython_esp32c3/examples/MixGo ME/40-1-文件操作-震动采集.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/qP8ezACznzXd.mix rename to boards/default/micropython_esp32c3/examples/MixGo ME/40-1-文件操作-震动采集.mix diff --git a/boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/mnbAzPMKLgvJ.mix b/boards/default/micropython_esp32c3/examples/MixGo ME/40-2-文件操作-震动重现.mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/mnbAzPMKLgvJ.mix rename to boards/default/micropython_esp32c3/examples/MixGo ME/40-2-文件操作-震动重现.mix diff --git a/boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/_DjMEoL7OaDA.mix b/boards/default/micropython_esp32c3/examples/MixGo ME/41-1-智能小车-前进转弯(MEGO).mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/_DjMEoL7OaDA.mix rename to boards/default/micropython_esp32c3/examples/MixGo ME/41-1-智能小车-前进转弯(MEGO).mix diff --git a/boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/MsEEyshYwYhZ.mix b/boards/default/micropython_esp32c3/examples/MixGo ME/41-2-智能小车-圆圈转弯(MEGO).mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/MsEEyshYwYhZ.mix rename to boards/default/micropython_esp32c3/examples/MixGo ME/41-2-智能小车-圆圈转弯(MEGO).mix diff --git a/boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/RyCuBZU-qpgC.mix b/boards/default/micropython_esp32c3/examples/MixGo ME/42-1-智能小车-智能避障(MEGO).mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/RyCuBZU-qpgC.mix rename to boards/default/micropython_esp32c3/examples/MixGo ME/42-1-智能小车-智能避障(MEGO).mix diff --git a/boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/8fIzKKdZWA_1.mix b/boards/default/micropython_esp32c3/examples/MixGo ME/42-2-智能小车-智能避障2(MEGO).mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/8fIzKKdZWA_1.mix rename to boards/default/micropython_esp32c3/examples/MixGo ME/42-2-智能小车-智能避障2(MEGO).mix diff --git a/boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/eYnZLunMtPN9.mix b/boards/default/micropython_esp32c3/examples/MixGo ME/43-1-智能小车-遥控小车(MEGO).mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/eYnZLunMtPN9.mix rename to boards/default/micropython_esp32c3/examples/MixGo ME/43-1-智能小车-遥控小车(MEGO).mix diff --git a/boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/6rx-15SWmGOv.mix b/boards/default/micropython_esp32c3/examples/MixGo ME/43-2-智能小车-体感遥控(MEGO).mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/6rx-15SWmGOv.mix rename to boards/default/micropython_esp32c3/examples/MixGo ME/43-2-智能小车-体感遥控(MEGO).mix diff --git a/boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/m_LeL5WcSQa7.mix b/boards/default/micropython_esp32c3/examples/MixGo ME/44-1-智能小车-P单巡线(MEGO).mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/m_LeL5WcSQa7.mix rename to boards/default/micropython_esp32c3/examples/MixGo ME/44-1-智能小车-P单巡线(MEGO).mix diff --git a/boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/b7tqJ1xsjSa7.mix b/boards/default/micropython_esp32c3/examples/MixGo ME/44-2-智能小车-P双巡线(MEGO).mix similarity index 100% rename from boards/default/micropython_esp32c3/examples/pM1GyYPLf4md/b7tqJ1xsjSa7.mix rename to boards/default/micropython_esp32c3/examples/MixGo ME/44-2-智能小车-P双巡线(MEGO).mix diff --git a/boards/default/micropython_esp32c3/examples/map.json b/boards/default/micropython_esp32c3/examples/map.json index f4551df2..e20ec670 100644 --- a/boards/default/micropython_esp32c3/examples/map.json +++ b/boards/default/micropython_esp32c3/examples/map.json @@ -1,726 +1,726 @@ { - "3xtn-eVfIEev": { - "gulPPrxNEb5Y.mix": { + "MixGo CC": { + "01-1-快速入门-你好世界.mix": { "__file__": true, - "__name__": "-_NIU9G4pzdg.mix" + "__name__": "01-1-快速入门-你好世界.mix" }, - "aByMfkp8SOx2.mix": { + "01-2-快速入门-你好世界2.mix": { "__file__": true, - "__name__": "0huLIQ7ZPTEE.mix" + "__name__": "01-2-快速入门-你好世界2.mix" }, - "816Aq2ngF982.mix": { + "02-1-快速入门-跳动的心.mix": { "__file__": true, - "__name__": "0Mm6fzRxcJKB.mix" + "__name__": "02-1-快速入门-跳动的心.mix" }, - "9bXVKEzs9Jhx.mix": { + "02-2-快速入门-为你心动.mix": { "__file__": true, - "__name__": "0NGYXNM9zIrl.mix" + "__name__": "02-2-快速入门-为你心动.mix" }, - "T-a8E012uvsw.mix": { + "03-1-快速入门-心随我动.mix": { "__file__": true, - "__name__": "1guSWho28WQa.mix" + "__name__": "03-1-快速入门-心随我动.mix" }, - "QHY9D736eXEg.mix": { + "03-2-快速入门-心随我动2.mix": { "__file__": true, - "__name__": "1L8kS5jUtbvd.mix" + "__name__": "03-2-快速入门-心随我动2.mix" }, - "yFHaWkAJkSPJ.mix": { + "04-1-快速入门-流动的灯.mix": { "__file__": true, - "__name__": "1RrnhIwvrYhn.mix" + "__name__": "04-1-快速入门-流动的灯.mix" }, - "xrn0Atbp2tXE.mix": { + "04-2-快速入门-流动的灯2.mix": { "__file__": true, - "__name__": "1vCsWQIzbbcd.mix" + "__name__": "04-2-快速入门-流动的灯2.mix" }, - "Fx-iDmtzfoJS.mix": { + "05-1-过程控制-双键开关.mix": { "__file__": true, - "__name__": "3ES__f-2K_16.mix" + "__name__": "05-1-过程控制-双键开关.mix" }, - "XDTx5dX4GUuL.mix": { + "05-2-过程控制-单键开关.mix": { "__file__": true, - "__name__": "3U1AYGRyA2V_.mix" + "__name__": "05-2-过程控制-单键开关.mix" }, - "rtNnMobWEUPI.mix": { + "05-3-过程控制-IPO概念.mix": { "__file__": true, - "__name__": "3wwqwfrwV0cN.mix" + "__name__": "05-3-过程控制-IPO概念.mix" }, - "xiJmR6nRc2fu.mix": { + "06-1-过程控制-声音采集.mix": { "__file__": true, - "__name__": "4tJjMQfThLu1.mix" + "__name__": "06-1-过程控制-声音采集.mix" }, - "muObLV9PSwro.mix": { + "06-2-过程控制-看见声音.mix": { "__file__": true, - "__name__": "5d4kwhwQzEL1.mix" + "__name__": "06-2-过程控制-看见声音.mix" }, - "aCdhiAwjvd6n.mix": { + "07-1-过程控制-光强采集.mix": { "__file__": true, - "__name__": "5N_9dPuI37rq.mix" + "__name__": "07-1-过程控制-光强采集.mix" }, - "VHsxkGG_mde4.mix": { + "07-2-过程控制-自动补光.mix": { "__file__": true, - "__name__": "5ZoHVYVZqI7Y.mix" + "__name__": "07-2-过程控制-自动补光.mix" }, - "m3S_qkesHrfb.mix": { + "08-1-过程控制-接近检测.mix": { "__file__": true, - "__name__": "6TFLN-N0TnRF.mix" + "__name__": "08-1-过程控制-接近检测.mix" }, - "Bc0R4zqZpGF5.mix": { + "08-2-过程控制-入侵报警.mix": { "__file__": true, - "__name__": "7skiUzv9g47f.mix" + "__name__": "08-2-过程控制-入侵报警.mix" }, - "QTRh6ZFju3f7.mix": { + "09-1-输入输出-加速度.mix": { "__file__": true, - "__name__": "8aPzJedKSVep.mix" + "__name__": "09-1-输入输出-加速度.mix" }, - "ZpU6LyXvc6_6.mix": { + "09-2-输入输出-平衡仪.mix": { "__file__": true, - "__name__": "8Czv4QYG2zZj.mix" + "__name__": "09-2-输入输出-平衡仪.mix" }, - "YSBs-nhEknKo.mix": { + "10-1-输入输出-温湿度.mix": { "__file__": true, - "__name__": "8qwFNrzqPB-q.mix" + "__name__": "10-1-输入输出-温湿度.mix" }, - "KKWROTxJwwhe.mix": { + "10-2-输入输出-大气压.mix": { "__file__": true, - "__name__": "9sW23oVLmvRd.mix" + "__name__": "10-2-输入输出-大气压.mix" }, - "7Yp5XG1hDpT2.mix": { + "11-1-输入输出-点阵控制.mix": { "__file__": true, - "__name__": "aRbVp-CddbHJ.mix" + "__name__": "11-1-输入输出-点阵控制.mix" }, - "nW_koMxANmY8.mix": { + "11-2-输入输出-光标控制.mix": { "__file__": true, - "__name__": "ArYB4ecda0V8.mix" + "__name__": "11-2-输入输出-光标控制.mix" }, - "AMPzHuPagwwB.mix": { + "12-1-输入输出-实时时钟.mix": { "__file__": true, - "__name__": "aSRZtXd4fQTK.mix" + "__name__": "12-1-输入输出-实时时钟.mix" }, - "jltm62sBZtp8.mix": { + "12-2-输入输出-实时时钟2.mix": { "__file__": true, - "__name__": "AvAAx7AlO4P6.mix" + "__name__": "12-2-输入输出-实时时钟2.mix" }, - "29R2V74GpsNX.mix": { + "13-1-逻辑计算-手速测试.mix": { "__file__": true, - "__name__": "bLYF8lktBpVe.mix" + "__name__": "13-1-逻辑计算-手速测试.mix" }, - "ua3RFTTcI5O_.mix": { + "13-2-逻辑计算-手速测试2.mix": { "__file__": true, - "__name__": "BMD3aBJRUcti.mix" + "__name__": "13-2-逻辑计算-手速测试2.mix" }, - "S1g26DNW9muO.mix": { + "14-1-逻辑计算-反应测试.mix": { "__file__": true, - "__name__": "B_zgfqNBgsbH.mix" + "__name__": "14-1-逻辑计算-反应测试.mix" }, - "eIEJPAGjiBQJ.mix": { + "14-2-逻辑计算-反应测试2.mix": { "__file__": true, - "__name__": "CcWLS8rD4Fiv.mix" + "__name__": "14-2-逻辑计算-反应测试2.mix" }, - "jrN6Ig0FGoVO.mix": { + "15-1-逻辑计算-简单打地鼠.mix": { "__file__": true, - "__name__": "dkCRqNhdBvRT.mix" + "__name__": "15-1-逻辑计算-简单打地鼠.mix" }, - "MI2Hnnr3ovVc.mix": { + "15-2-逻辑计算-计时打地鼠.mix": { "__file__": true, - "__name__": "dLfuHfZKb39e.mix" + "__name__": "15-2-逻辑计算-计时打地鼠.mix" }, - "FYx5o2zoc8Wx.mix": { + "16-1-逻辑计算-开始打地鼠.mix": { "__file__": true, - "__name__": "dpB6i4b9_dSE.mix" + "__name__": "16-1-逻辑计算-开始打地鼠.mix" }, - "fFxyBFTS7BLn.mix": { + "16-2-逻辑计算-循环打地鼠.mix": { "__file__": true, - "__name__": "duUNtYSp5Bfw.mix" + "__name__": "16-2-逻辑计算-循环打地鼠.mix" }, - "3LXfiOG5fJZY.mix": { + "17-0-复杂控制-非中断效果.mix": { "__file__": true, - "__name__": "DxW87CUCtY-5.mix" + "__name__": "17-0-复杂控制-非中断效果.mix" }, - "-uoQhrB8xqID.mix": { + "17-1-复杂控制-双键中断.mix": { "__file__": true, - "__name__": "eVMuTU8aSDvA.mix" + "__name__": "17-1-复杂控制-双键中断.mix" }, - "b-1WLYwPggUl.mix": { + "17-2-复杂控制-单键中断.mix": { "__file__": true, - "__name__": "EW0Fv7WaaRJ_.mix" + "__name__": "17-2-复杂控制-单键中断.mix" }, - "yzppbh-KbqDl.mix": { + "18-1-复杂控制-定时计时.mix": { "__file__": true, - "__name__": "exO1dzYogAqS.mix" + "__name__": "18-1-复杂控制-定时计时.mix" }, - "t2nFswXRZdaG.mix": { + "18-2-复杂控制-循环计时.mix": { "__file__": true, - "__name__": "Fb3uaEbqFpJ6.mix" + "__name__": "18-2-复杂控制-循环计时.mix" }, - "2VIBG-DEtFuf.mix": { + "19-1-复杂控制-多线程.mix": { "__file__": true, - "__name__": "fltM51fZScQU.mix" + "__name__": "19-1-复杂控制-多线程.mix" }, - "6qfCTYRdBHeX.mix": { + "19-2-复杂控制-多线程与中断.mix": { "__file__": true, - "__name__": "Gbk-CdkiNNTC.mix" + "__name__": "19-2-复杂控制-多线程与中断.mix" }, - "I-YC9CBEqlmH.mix": { + "20-1-复杂控制-异常.mix": { "__file__": true, - "__name__": "GTwGjoaSP4Qd.mix" + "__name__": "20-1-复杂控制-异常.mix" }, - "vhzCw2xG3l9-.mix": { + "20-2-复杂控制-异常处理.mix": { "__file__": true, - "__name__": "hD2JQo_BSDWH.mix" + "__name__": "20-2-复杂控制-异常处理.mix" }, - "L8xvIiPciC1t.mix": { + "21-1-射频识别-读取测试.mix": { "__file__": true, - "__name__": "HgisKV-N_Sc7.mix" + "__name__": "21-1-射频识别-读取测试.mix" }, - "KOU17E-hTq1v.mix": { + "21-2-射频识别-读取卡号.mix": { "__file__": true, - "__name__": "hktMJz2Eqg-B.mix" + "__name__": "21-2-射频识别-读取卡号.mix" }, - "HD2JsKuDy5KC.mix": { + "22-1-射频识别-写卡测试.mix": { "__file__": true, - "__name__": "hvZjQumGc1FZ.mix" + "__name__": "22-1-射频识别-写卡测试.mix" }, - "4H0N0n3C-Ykv.mix": { + "22-2-射频识别-持续写卡.mix": { "__file__": true, - "__name__": "i16jCGRHlinK.mix" + "__name__": "22-2-射频识别-持续写卡.mix" }, - "a7FZD1CFY0Qn.mix": { + "23-1-蓝牙通讯-主机模式.mix": { "__file__": true, - "__name__": "ifhZspeHTee4.mix" + "__name__": "23-1-蓝牙通讯-主机模式.mix" }, - "c_3rztjiR0y4.mix": { + "23-1-蓝牙通讯-从机模式.mix": { "__file__": true, - "__name__": "Im3NcJWUy__z.mix" + "__name__": "23-1-蓝牙通讯-从机模式.mix" }, - "bj1Y8vk4k-Oh.mix": { + "24-1-无线广播-通讯测试.mix": { "__file__": true, - "__name__": "isFYIaOhUQ_T.mix" + "__name__": "24-1-无线广播-通讯测试.mix" }, - "TY9QmEmiRzaP.mix": { + "24-2-无线广播-防丢检测.mix": { "__file__": true, - "__name__": "IU04oChvR7y_.mix" + "__name__": "24-2-无线广播-防丢检测.mix" }, - "Lx81wGw3Z7Jh.mix": { + "25-1-飞机游戏-显示飞机.mix": { "__file__": true, - "__name__": "j3fDyX4Ud2NS.mix" + "__name__": "25-1-飞机游戏-显示飞机.mix" }, - "b8b-BP6wzcFN.mix": { + "25-2-飞机游戏-移动飞机.mix": { "__file__": true, - "__name__": "Jf8ecj157fd7.mix" + "__name__": "25-2-飞机游戏-移动飞机.mix" }, - "cwm7i6hsAlP3.mix": { + "26-1-飞机游戏-发射子弹.mix": { "__file__": true, - "__name__": "kkf8NW5wJel_.mix" + "__name__": "26-1-飞机游戏-发射子弹.mix" }, - "M9j0cJYqpk_d.mix": { + "26-2-飞机游戏-移动音效.mix": { "__file__": true, - "__name__": "KVLdCnOM5Le5.mix" + "__name__": "26-2-飞机游戏-移动音效.mix" }, - "t-Abbo-VifVC.mix": { + "27-1-飞机游戏-显示敌机.mix": { "__file__": true, - "__name__": "LDwA6pilpmYA.mix" + "__name__": "27-1-飞机游戏-显示敌机.mix" }, - "i3eoqrtLGtlJ.mix": { + "27-2-飞机游戏-消灭敌机.mix": { "__file__": true, - "__name__": "lk0hw1ECr5cQ.mix" + "__name__": "27-2-飞机游戏-消灭敌机.mix" }, - "Rm7lcIiRVGlj.mix": { + "28-1-飞机游戏-显示得分.mix": { "__file__": true, - "__name__": "n-QAWBr8nfe-.mix" + "__name__": "28-1-飞机游戏-显示得分.mix" }, - "jUM3ojDC2k8a.mix": { + "28-2-飞机游戏-结束游戏.mix": { "__file__": true, - "__name__": "NAub834ThJ-2.mix" + "__name__": "28-2-飞机游戏-结束游戏.mix" }, - "xhBJ-oTaR3v3.mix": { + "29-1-物联网-简单数据定时上报.mix": { "__file__": true, - "__name__": "nCn43wF_Dmdl.mix" + "__name__": "29-1-物联网-简单数据定时上报.mix" }, - "YrzDcIqSLtyr.mix": { + "29-2-物联网-复杂数据定时上报.mix": { "__file__": true, - "__name__": "NJ9YiC-QH636.mix" + "__name__": "29-2-物联网-复杂数据定时上报.mix" }, - "lQRSrbXYYvEm.mix": { + "30-1-物联网-简单数据按需上报.mix": { "__file__": true, - "__name__": "nYgYCDOr-WsW.mix" + "__name__": "30-1-物联网-简单数据按需上报.mix" }, - "esHlIqwvGYAQ.mix": { + "30-2-物联网-高级数据按需上报.mix": { "__file__": true, - "__name__": "oUGnnIDb5znS.mix" + "__name__": "30-2-物联网-高级数据按需上报.mix" }, - "pNT7q9FxV_bv.mix": { + "31-1-物联网-单主题数据订阅.mix": { "__file__": true, - "__name__": "oWbU-q_wzCfD.mix" + "__name__": "31-1-物联网-单主题数据订阅.mix" }, - "sahHJ4Yz72Xf.mix": { + "31-1-物联网-单主题数据订阅2.mix": { "__file__": true, - "__name__": "p7zVWSnDXadq.mix" + "__name__": "31-1-物联网-单主题数据订阅2.mix" }, - "TujAYJLyVvsO.mix": { + "32-1-物联网-多主题数据订.mix": { "__file__": true, - "__name__": "P8vlsM0I71lR.mix" + "__name__": "32-1-物联网-多主题数据订.mix" }, - "yGBfUioCXDeX.mix": { + "32-2-物联网-多主题数据订2.mix": { "__file__": true, - "__name__": "pgjYJEjZI2xX.mix" + "__name__": "32-2-物联网-多主题数据订2.mix" }, - "SJj8Bp6gLL8g.mix": { + "33-1-课堂互动-自由签到.mix": { "__file__": true, - "__name__": "QcLtm7f4tXeE.mix" + "__name__": "33-1-课堂互动-自由签到.mix" }, - "9LB-41zf1BY3.mix": { + "33-2-课堂互动-按需签到.mix": { "__file__": true, - "__name__": "R7-KxIv2xL3i.mix" + "__name__": "33-2-课堂互动-按需签到.mix" }, - "lQnfJ7ASWqZP.mix": { + "34-1-课堂互动-一人抢答.mix": { "__file__": true, - "__name__": "ssTd2prNAn2F.mix" + "__name__": "34-1-课堂互动-一人抢答.mix" }, - "tmf2CozYl_FN.mix": { + "34-2-课堂互动-多人抢答.mix": { "__file__": true, - "__name__": "sTRY8QumQMma.mix" + "__name__": "34-2-课堂互动-多人抢答.mix" }, - "gDPgd5Wp4j6G.mix": { + "35-1-课堂互动-单选答题.mix": { "__file__": true, - "__name__": "sUvHoOnCZHWi.mix" + "__name__": "35-1-课堂互动-单选答题.mix" }, - "v7GsSxvkKHcD.mix": { + "35-2-课堂互动-多选答题.mix": { "__file__": true, - "__name__": "tKLnjuhKMcud.mix" + "__name__": "35-2-课堂互动-多选答题.mix" }, - "4kQUHz8cH0m5.mix": { + "36-1-课堂互动-点名答题.mix": { "__file__": true, - "__name__": "tUE8QZQezqFd.mix" + "__name__": "36-1-课堂互动-点名答题.mix" }, - "oJCThQYrEbaX.mix": { + "36-2-课堂互动-多人点答.mix": { "__file__": true, - "__name__": "UaTZdzfncen1.mix" + "__name__": "36-2-课堂互动-多人点答.mix" }, - "hPdTgE5edaSf.mix": { + "37-1-文件操作-列出文件.mix": { "__file__": true, - "__name__": "uRZqPpygf6mA.mix" + "__name__": "37-1-文件操作-列出文件.mix" }, - "SAt354m5iWRE.mix": { + "37-2-文件操作-列出文件2.mix": { "__file__": true, - "__name__": "v75rZHGfMS_I.mix" + "__name__": "37-2-文件操作-列出文件2.mix" }, - "xx-ouuZjSvOS.mix": { + "38-1-文件操作-文件读写.mix": { "__file__": true, - "__name__": "Va-mT9vkJ6Vv.mix" + "__name__": "38-1-文件操作-文件读写.mix" }, - "dIMx2UhIYy67.mix": { + "38-2-文件操作-文件读写2.mix": { "__file__": true, - "__name__": "W2pIAKU5Ztrz.mix" + "__name__": "38-2-文件操作-文件读写2.mix" }, - "CvGBJ7fkiauq.mix": { + "39-1-文件操作-录音采集.mix": { "__file__": true, - "__name__": "WC0hOVfZuPvE.mix" + "__name__": "39-1-文件操作-录音采集.mix" }, - "u1dlumoHEFjq.mix": { + "39-2-文件操作-录音重现.mix": { "__file__": true, - "__name__": "WhkH7wUyvr1c.mix" + "__name__": "39-2-文件操作-录音重现.mix" }, - "m4p27kg2YgMQ.mix": { + "40-1-文件操作-震动采集.mix": { "__file__": true, - "__name__": "wQCIc1AJJprs.mix" + "__name__": "40-1-文件操作-震动采集.mix" }, - "lEwcsS6dzs__.mix": { + "40-2-文件操作-震动重现.mix": { "__file__": true, - "__name__": "WtxMy5LI4l3A.mix" + "__name__": "40-2-文件操作-震动重现.mix" }, - "AL9u16qgPStW.mix": { + "41-1-智能小车-前进转弯(MEGO).mix": { "__file__": true, - "__name__": "WXt6o0f3KxZR.mix" + "__name__": "41-1-智能小车-前进转弯(MEGO).mix" }, - "47ZsBNmRMj3p.mix": { + "41-2-智能小车-圆圈转弯(MEGO).mix": { "__file__": true, - "__name__": "X6r1OmEoO2tL.mix" + "__name__": "41-2-智能小车-圆圈转弯(MEGO).mix" }, - "uZiJz9zx9v3k.mix": { + "42-1-智能小车-智能避障(MEGO).mix": { "__file__": true, - "__name__": "xl1mClWb68o7.mix" + "__name__": "42-1-智能小车-智能避障(MEGO).mix" }, - "T4Tyb8x0Yccb.mix": { + "42-2-智能小车-智能避障2(MEGO).mix": { "__file__": true, - "__name__": "XWYmr6dRRrij.mix" + "__name__": "42-2-智能小车-智能避障2(MEGO).mix" }, - "C-qT6fZ02oZU.mix": { + "43-1-智能小车-遥控小车(MEGO).mix": { "__file__": true, - "__name__": "YsNlbTnwPj1a.mix" + "__name__": "43-1-智能小车-遥控小车(MEGO).mix" }, - "OxVHP5kF8Cpf.mix": { + "43-2-智能小车-体感遥控(MEGO).mix": { "__file__": true, - "__name__": "z1kKFVq1uHOk.mix" + "__name__": "43-2-智能小车-体感遥控(MEGO).mix" }, - "vluFMCOC1R_Y.mix": { + "44-1-智能小车-P单巡线(MEGO).mix": { "__file__": true, - "__name__": "ZCaSYsgl7Jpg.mix" + "__name__": "44-1-智能小车-P单巡线(MEGO).mix" }, - "F2fwFYrTZFZR.mix": { + "44-2-智能小车-P双巡线(MEGO).mix": { "__file__": true, - "__name__": "_v2fnOcmx_uM.mix" + "__name__": "44-2-智能小车-P双巡线(MEGO).mix" }, "__file__": false, - "__name__": "c76NauxsM1V0" + "__name__": "MixGo CC" }, - "pM1GyYPLf4md": { - "sYXD1yYH-dQf.mix": { + "MixGo ME": { + "01-1-快速入门-你好世界.mix": { "__file__": true, - "__name__": "-LCW2CHGDN1K.mix" + "__name__": "01-1-快速入门-你好世界.mix" }, - "AbKS6SqIZNM0.mix": { + "01-2-快速入门-你好世界2.mix": { "__file__": true, - "__name__": "0FSkHK8kqsiC.mix" + "__name__": "01-2-快速入门-你好世界2.mix" }, - "NhjMkAwsLjVl.mix": { + "02-1-快速入门-跳动的心.mix": { "__file__": true, - "__name__": "0wkR7Z4YlO82.mix" + "__name__": "02-1-快速入门-跳动的心.mix" }, - "hv3imnzFunSZ.mix": { + "02-2-快速入门-为你心动.mix": { "__file__": true, - "__name__": "1PahPfusoXif.mix" + "__name__": "02-2-快速入门-为你心动.mix" }, - "RyCuBZU-qpgC.mix": { + "03-1-快速入门-心随我动.mix": { "__file__": true, - "__name__": "3-hVT-R9eZ-v.mix" + "__name__": "03-1-快速入门-心随我动.mix" }, - "doV9jZB6RkEa.mix": { + "03-2-快速入门-心随我动2.mix": { "__file__": true, - "__name__": "37LSqAxZCKkD.mix" + "__name__": "03-2-快速入门-心随我动2.mix" }, - "e36oJbb9-jr4.mix": { + "04-1-快速入门-流动的灯.mix": { "__file__": true, - "__name__": "6ImAC8Kpyerr.mix" + "__name__": "04-1-快速入门-流动的灯.mix" }, - "8AE2FaILJGuY.mix": { + "04-2-快速入门-流动的灯2.mix": { "__file__": true, - "__name__": "6tKsB4Jaqg1M.mix" + "__name__": "04-2-快速入门-流动的灯2.mix" }, - "v6q60HQQXbKP.mix": { + "05-1-过程控制-双键开关.mix": { "__file__": true, - "__name__": "7l_KQ3rfrvdS.mix" + "__name__": "05-1-过程控制-双键开关.mix" }, - "m78gq17R2AHH.mix": { + "05-2-过程控制-单键开关.mix": { "__file__": true, - "__name__": "7SiDSZ165zqK.mix" + "__name__": "05-2-过程控制-单键开关.mix" }, - "Iru0tabUxyVA.mix": { + "05-3-过程控制-IPO概念.mix": { "__file__": true, - "__name__": "7Y2bjnLtKzWI.mix" + "__name__": "05-3-过程控制-IPO概念.mix" }, - "xDj4udwpodWl.mix": { + "06-1-过程控制-声音采集.mix": { "__file__": true, - "__name__": "8I7qwkoR3Tqn.mix" + "__name__": "06-1-过程控制-声音采集.mix" }, - "bscUBuAQmNoX.mix": { + "06-2-过程控制-看见声音.mix": { "__file__": true, - "__name__": "8NrKkfLrlhTM.mix" + "__name__": "06-2-过程控制-看见声音.mix" }, - "3fq4QDwX_Cza.mix": { + "07-1-过程控制-光强采集.mix": { "__file__": true, - "__name__": "8WLC2kxfZTjC.mix" + "__name__": "07-1-过程控制-光强采集.mix" }, - "Ek_TBvqkCoeF.mix": { + "07-2-过程控制-自动补光.mix": { "__file__": true, - "__name__": "9-ga6brYdkRV.mix" + "__name__": "07-2-过程控制-自动补光.mix" }, - "HcikkM8lXYNB.mix": { + "08-1-过程控制-接近检测.mix": { "__file__": true, - "__name__": "9E4L0HaMTb1f.mix" + "__name__": "08-1-过程控制-接近检测.mix" }, - "l2l_cOpx8ApQ.mix": { + "08-2-过程控制-入侵报警.mix": { "__file__": true, - "__name__": "9p9-U-8z6K5L.mix" + "__name__": "08-2-过程控制-入侵报警.mix" }, - "MSFROSxWiyfP.mix": { + "09-1-输入输出-加速度.mix": { "__file__": true, - "__name__": "a9tGQNqboJo2.mix" + "__name__": "09-1-输入输出-加速度.mix" }, - "hR9Os1HLu0NN.mix": { + "09-2-输入输出-平衡仪.mix": { "__file__": true, - "__name__": "aD52yNluI-As.mix" + "__name__": "09-2-输入输出-平衡仪.mix" }, - "6v3IjA6yrbzK.mix": { + "10-1-输入输出-地磁强度.mix": { "__file__": true, - "__name__": "B9YtUH7uN8DD.mix" + "__name__": "10-1-输入输出-地磁强度.mix" }, - "IXFFTvJ3cEHa.mix": { + "10-2-输入输出-金属探测.mix": { "__file__": true, - "__name__": "bYjSpGsXYVsI.mix" + "__name__": "10-2-输入输出-金属探测.mix" }, - "yo52SfDx2Zcl.mix": { + "11-1-输入输出-点阵控制.mix": { "__file__": true, - "__name__": "CduIjV1ibmap.mix" + "__name__": "11-1-输入输出-点阵控制.mix" }, - "Zhd2Dw13zffr.mix": { + "11-2-输入输出-光标控制.mix": { "__file__": true, - "__name__": "CVQKIE9UwOHj.mix" + "__name__": "11-2-输入输出-光标控制.mix" }, - "YtFuA4Q0FPc-.mix": { + "12-1-输入输出-实时时钟.mix": { "__file__": true, - "__name__": "D7Vsr4AI1eWr.mix" + "__name__": "12-1-输入输出-实时时钟.mix" }, - "VF7Y8AvVconj.mix": { + "12-2-输入输出-实时时钟2.mix": { "__file__": true, - "__name__": "Dh69GNajAJ8n.mix" + "__name__": "12-2-输入输出-实时时钟2.mix" }, - "20GkZUZNaMxl.mix": { + "13-1-逻辑计算-手速测试.mix": { "__file__": true, - "__name__": "dtHMtj_1YbEv.mix" + "__name__": "13-1-逻辑计算-手速测试.mix" }, - "4-F9vgJ_Rcq-.mix": { + "13-2-逻辑计算-手速测试2.mix": { "__file__": true, - "__name__": "ELFpIgiMLWiN.mix" + "__name__": "13-2-逻辑计算-手速测试2.mix" }, - "xQmVvnnfc2Mo.mix": { + "14-1-逻辑计算-反应测试.mix": { "__file__": true, - "__name__": "epo9IR39hh3d.mix" + "__name__": "14-1-逻辑计算-反应测试.mix" }, - "bF9yMhmriYUW.mix": { + "14-2-逻辑计算-反应测试2.mix": { "__file__": true, - "__name__": "eVdvn-lXRTYE.mix" + "__name__": "14-2-逻辑计算-反应测试2.mix" }, - "JuxAfLycf4XM.mix": { + "15-1-逻辑计算-简单打地鼠.mix": { "__file__": true, - "__name__": "ezhtn_l8_sFo.mix" + "__name__": "15-1-逻辑计算-简单打地鼠.mix" }, - "CyzQsleYzPiw.mix": { + "15-2-逻辑计算-计时打地鼠.mix": { "__file__": true, - "__name__": "F_BjhEVHc5ig.mix" + "__name__": "15-2-逻辑计算-计时打地鼠.mix" }, - "aqQwDJ5rvyMR.mix": { + "16-1-逻辑计算-开始打地鼠.mix": { "__file__": true, - "__name__": "gNeRAR86JJUE.mix" + "__name__": "16-1-逻辑计算-开始打地鼠.mix" }, - "dFwtc5evqVnK.mix": { + "16-2-逻辑计算-循环打地鼠.mix": { "__file__": true, - "__name__": "Gq_e_A7eXFtl.mix" + "__name__": "16-2-逻辑计算-循环打地鼠.mix" }, - "ZOHJC11soikB.mix": { + "17-0-复杂控制-非中断效果.mix": { "__file__": true, - "__name__": "GYK0oR_j2flg.mix" + "__name__": "17-0-复杂控制-非中断效果.mix" }, - "bk0YRrO0uW4J.mix": { + "17-2-复杂控制-单键中断.mix": { "__file__": true, - "__name__": "iBlZOoy5nBzY.mix" + "__name__": "17-2-复杂控制-单键中断.mix" }, - "6W6ha0br_xGt.mix": { + "18-1-复杂控制-定时计时.mix": { "__file__": true, - "__name__": "iwASDXi8eN8_.mix" + "__name__": "18-1-复杂控制-定时计时.mix" }, - "MsEEyshYwYhZ.mix": { + "18-2-复杂控制-循环计时.mix": { "__file__": true, - "__name__": "i__NuM8rFjpy.mix" + "__name__": "18-2-复杂控制-循环计时.mix" }, - "nMbZUc2N_MFf.mix": { + "19-1-复杂控制-多线程.mix": { "__file__": true, - "__name__": "Jap5DxZV6ffH.mix" + "__name__": "19-1-复杂控制-多线程.mix" }, - "xSm5j10RjLy4.mix": { + "19-2-复杂控制-多线程与中断.mix": { "__file__": true, - "__name__": "jwv7tmXG7vUx.mix" + "__name__": "19-2-复杂控制-多线程与中断.mix" }, - "7UmViJx9QkeR.mix": { + "20-1-复杂控制-异常.mix": { "__file__": true, - "__name__": "kcZIySDUhjYX.mix" + "__name__": "20-1-复杂控制-异常.mix" }, - "WGREBp0lD_Oi.mix": { + "20-2-复杂控制-异常处理.mix": { "__file__": true, - "__name__": "kKQUWi7kEF0d.mix" + "__name__": "20-2-复杂控制-异常处理.mix" }, - "x_COPBhpu0eG.mix": { + "21-1-射频识别-读取测试(MEG1).mix": { "__file__": true, - "__name__": "l23ngw-OXTmh.mix" + "__name__": "21-1-射频识别-读取测试(MEG1).mix" }, - "bQ6rQdy51030.mix": { + "21-2-射频识别-读取卡号(MEG1).mix": { "__file__": true, - "__name__": "L7CzdGk9yd0v.mix" + "__name__": "21-2-射频识别-读取卡号(MEG1).mix" }, - "sZiKMkm5va8d.mix": { + "22-1-射频识别-写卡测试(MEG1).mix": { "__file__": true, - "__name__": "liuepSbBCtj6.mix" + "__name__": "22-1-射频识别-写卡测试(MEG1).mix" }, - "b7tqJ1xsjSa7.mix": { + "22-2-射频识别-持续写卡(MEG1).mix": { "__file__": true, - "__name__": "LxFXEmMU-GOl.mix" + "__name__": "22-2-射频识别-持续写卡(MEG1).mix" }, - "acv4vztvxe31.mix": { + "23-1-蓝牙通讯-主机模式.mix": { "__file__": true, - "__name__": "n3jfQQCnVwjy.mix" + "__name__": "23-1-蓝牙通讯-主机模式.mix" }, - "ePoAHlKNkdUQ.mix": { + "23-1-蓝牙通讯-从机模式.mix": { "__file__": true, - "__name__": "n9dhX7EhIv2t.mix" + "__name__": "23-1-蓝牙通讯-从机模式.mix" }, - "qP8ezACznzXd.mix": { + "24-1-无线广播-通讯测试.mix": { "__file__": true, - "__name__": "NkFMz29k5x8m.mix" + "__name__": "24-1-无线广播-通讯测试.mix" }, - "4ENRzu9PAb0A.mix": { + "24-2-无线广播-防丢检测.mix": { "__file__": true, - "__name__": "NlusaFT5YadJ.mix" + "__name__": "24-2-无线广播-防丢检测.mix" }, - "ZZgTWb2G5nD5.mix": { + "25-1-飞机游戏-显示飞机.mix": { "__file__": true, - "__name__": "o4Q1g9oCnJBs.mix" + "__name__": "25-1-飞机游戏-显示飞机.mix" }, - "xuMF8pgEDvsm.mix": { + "25-2-飞机游戏-移动飞机.mix": { "__file__": true, - "__name__": "OH3Q7Do2-SCE.mix" + "__name__": "25-2-飞机游戏-移动飞机.mix" }, - "4HhGE6AkvHCy.mix": { + "26-1-飞机游戏-发射子弹.mix": { "__file__": true, - "__name__": "Ord2iKQi09on.mix" + "__name__": "26-1-飞机游戏-发射子弹.mix" }, - "xL-O-lwqfd17.mix": { + "26-2-飞机游戏-移动音效.mix": { "__file__": true, - "__name__": "Ow_kFjn0FvEE.mix" + "__name__": "26-2-飞机游戏-移动音效.mix" }, - "lSyDuvyYQ9MS.mix": { + "27-1-飞机游戏-显示敌机.mix": { "__file__": true, - "__name__": "p-rPrR7D2rZk.mix" + "__name__": "27-1-飞机游戏-显示敌机.mix" }, - "W1uMzDTU0NZ-.mix": { + "27-2-飞机游戏-消灭敌机.mix": { "__file__": true, - "__name__": "Pah8ffHGuPyG.mix" + "__name__": "27-2-飞机游戏-消灭敌机.mix" }, - "RyUFym9fDskL.mix": { + "28-1-飞机游戏-显示得分.mix": { "__file__": true, - "__name__": "PavVs9_ubum1.mix" + "__name__": "28-1-飞机游戏-显示得分.mix" }, - "VLVIlccU7Dsr.mix": { + "28-2-飞机游戏-结束游戏.mix": { "__file__": true, - "__name__": "PIlyYWp0OXVU.mix" + "__name__": "28-2-飞机游戏-结束游戏.mix" }, - "naMxZcgk2Bbf.mix": { + "29-1-物联网-简单数据定时上报.mix": { "__file__": true, - "__name__": "QPQTNNqpA6A0.mix" + "__name__": "29-1-物联网-简单数据定时上报.mix" }, - "dx_Gq8Hj81EB.mix": { + "29-2-物联网-复杂数据定时上报.mix": { "__file__": true, - "__name__": "rBXtlPnATm7y.mix" + "__name__": "29-2-物联网-复杂数据定时上报.mix" }, - "eAujaOKbiNUU.mix": { + "30-1-物联网-简单数据按需上报.mix": { "__file__": true, - "__name__": "rgE-DJrq8DzU.mix" + "__name__": "30-1-物联网-简单数据按需上报.mix" }, - "ygF272fmeQ9Q.mix": { + "30-2-物联网-高级数据按需上报.mix": { "__file__": true, - "__name__": "RjUiMCZbVOVV.mix" + "__name__": "30-2-物联网-高级数据按需上报.mix" }, - "m_LeL5WcSQa7.mix": { + "31-1-物联网-单主题数据订阅.mix": { "__file__": true, - "__name__": "SGcFUOeqzxOb.mix" + "__name__": "31-1-物联网-单主题数据订阅.mix" }, - "RExfgUNdSL5T.mix": { + "31-1-物联网-单主题数据订阅2.mix": { "__file__": true, - "__name__": "TEIBXelHzkLs.mix" + "__name__": "31-1-物联网-单主题数据订阅2.mix" }, - "rOISlIounrSj.mix": { + "32-1-物联网-多主题数据订.mix": { "__file__": true, - "__name__": "TuS-aKOlTZlp.mix" + "__name__": "32-1-物联网-多主题数据订.mix" }, - "9G6o8PZjF8RH.mix": { + "32-2-物联网-多主题数据订2.mix": { "__file__": true, - "__name__": "TxiuK1gFPpS8.mix" + "__name__": "32-2-物联网-多主题数据订2.mix" }, - "YwZJEA0XTnfg.mix": { + "33-1-课堂互动-自由签到.mix": { "__file__": true, - "__name__": "u-KASmMBgyHq.mix" + "__name__": "33-1-课堂互动-自由签到.mix" }, - "aHzC0WyuN18P.mix": { + "33-2-课堂互动-按需签到.mix": { "__file__": true, - "__name__": "u3zwspmmMqX8.mix" + "__name__": "33-2-课堂互动-按需签到.mix" }, - "cEVEK-PvCGYW.mix": { + "34-1-课堂互动-一人抢答.mix": { "__file__": true, - "__name__": "UJL_2LyZjEBC.mix" + "__name__": "34-1-课堂互动-一人抢答.mix" }, - "BwALJYMkYTgD.mix": { + "34-2-课堂互动-多人抢答.mix": { "__file__": true, - "__name__": "v8mg37-wD8re.mix" + "__name__": "34-2-课堂互动-多人抢答.mix" }, - "2dK-f3oliXG5.mix": { + "35-1-课堂互动-单选答题.mix": { "__file__": true, - "__name__": "vk5ImUtIlPaC.mix" + "__name__": "35-1-课堂互动-单选答题.mix" }, - "O1EI4zTz7-32.mix": { + "35-2-课堂互动-多选答题.mix": { "__file__": true, - "__name__": "VRbFeTv3XQMJ.mix" + "__name__": "35-2-课堂互动-多选答题.mix" }, - "6rx-15SWmGOv.mix": { + "36-1-课堂互动-点名答题.mix": { "__file__": true, - "__name__": "VyZy1HRirych.mix" + "__name__": "36-1-课堂互动-点名答题.mix" }, - "WYlQFyAx8cZL.mix": { + "36-2-课堂互动-多人点答.mix": { "__file__": true, - "__name__": "WFFhh53I8k49.mix" + "__name__": "36-2-课堂互动-多人点答.mix" }, - "XTbEdueEetoV.mix": { + "37-1-文件操作-列出文件.mix": { "__file__": true, - "__name__": "WVuGriaXoWCD.mix" + "__name__": "37-1-文件操作-列出文件.mix" }, - "gqux4ECn-mto.mix": { + "37-2-文件操作-列出文件2.mix": { "__file__": true, - "__name__": "x2utSm0eekH5.mix" + "__name__": "37-2-文件操作-列出文件2.mix" }, - "eYnZLunMtPN9.mix": { + "38-1-文件操作-文件读写.mix": { "__file__": true, - "__name__": "xfBiBiG6ZUpx.mix" + "__name__": "38-1-文件操作-文件读写.mix" }, - "2cNr1Z-ObB3K.mix": { + "38-2-文件操作-文件读写2.mix": { "__file__": true, - "__name__": "XjSg1-bRdzpy.mix" + "__name__": "38-2-文件操作-文件读写2.mix" }, - "BrBf2v4UBxfx.mix": { + "39-1-文件操作-录音采集.mix": { "__file__": true, - "__name__": "Xq_8Okcs1Vsn.mix" + "__name__": "39-1-文件操作-录音采集.mix" }, - "0jz4RUTD9J3B.mix": { + "39-2-文件操作-录音重现.mix": { "__file__": true, - "__name__": "XUmaZAJ95EJ5.mix" + "__name__": "39-2-文件操作-录音重现.mix" }, - "99Yv_eSC0vyO.mix": { + "40-1-文件操作-震动采集.mix": { "__file__": true, - "__name__": "Y1PiphW2TPaU.mix" + "__name__": "40-1-文件操作-震动采集.mix" }, - "SP9CBOn0MRHT.mix": { + "40-2-文件操作-震动重现.mix": { "__file__": true, - "__name__": "YE0eDCL2_UL8.mix" + "__name__": "40-2-文件操作-震动重现.mix" }, - "Qwa5Wq4_BtcF.mix": { + "41-1-智能小车-前进转弯(MEGO).mix": { "__file__": true, - "__name__": "Z0RlHXUqng_C.mix" + "__name__": "41-1-智能小车-前进转弯(MEGO).mix" }, - "_DjMEoL7OaDA.mix": { + "41-2-智能小车-圆圈转弯(MEGO).mix": { "__file__": true, - "__name__": "ZaZVgDp039Uy.mix" + "__name__": "41-2-智能小车-圆圈转弯(MEGO).mix" }, - "G8mA6hp9mNPj.mix": { + "42-1-智能小车-智能避障(MEGO).mix": { "__file__": true, - "__name__": "ZD21bemh6E5u.mix" + "__name__": "42-1-智能小车-智能避障(MEGO).mix" }, - "nMliuWN1zdEq.mix": { + "42-2-智能小车-智能避障2(MEGO).mix": { "__file__": true, - "__name__": "zi8VHFWnI-bC.mix" + "__name__": "42-2-智能小车-智能避障2(MEGO).mix" }, - "8fIzKKdZWA_1.mix": { + "43-1-智能小车-遥控小车(MEGO).mix": { "__file__": true, - "__name__": "_bEUNARwYRUk.mix" + "__name__": "43-1-智能小车-遥控小车(MEGO).mix" }, - "GIjCNWASNJYH.mix": { + "43-2-智能小车-体感遥控(MEGO).mix": { "__file__": true, - "__name__": "_hNil4XlkaoK.mix" + "__name__": "43-2-智能小车-体感遥控(MEGO).mix" }, - "NgBAbVnM8tsA.mix": { + "44-1-智能小车-P单巡线(MEGO).mix": { "__file__": true, - "__name__": "_lg7ctiT5utW.mix" + "__name__": "44-1-智能小车-P单巡线(MEGO).mix" }, - "mnbAzPMKLgvJ.mix": { + "44-2-智能小车-P双巡线(MEGO).mix": { "__file__": true, - "__name__": "_splM9gqF4Wg.mix" + "__name__": "44-2-智能小车-P双巡线(MEGO).mix" }, "__file__": false, - "__name__": "s6iggQC5nGH3" + "__name__": "MixGo ME" } } diff --git a/boards/default/micropython_esp32c3/index.xml b/boards/default/micropython_esp32c3/index.xml index 7c632d45..559dd06f 100644 --- a/boards/default/micropython_esp32c3/index.xml +++ b/boards/default/micropython_esp32c3/index.xml @@ -1 +1 @@ -02000attachInterrupt_funcattachInterrupt_func10,1,2,3051iDIVIDE10Exception as eetestThreadtestThreadWHILETRUEHello Mixly from Thread!ms10timtim1000tim_callbacktim_callback5000200090x151100a10.998124.829971100101010001100501100110000x2x0,1,2,30,1,2,30,1,2,3xMixlyHelloMixly65axMixlyMixly0Mixly02MixlyMixlyHello,mixlyl--mylistHello,mixlymixlymixpyI love mixly!I love mixlyRandom No. is {}int1100input('1+2*3')mylist1,2,3,4,5mylist0mylist02mylistmylistmylist0mylist00mylist00mylist0mylist0mylist0mylistmylistmylistx0,1,2,30,1,2,3mytup1,2,3,4,5mytup0mytup02mytupmytupmytupmytup0mytupmytup1mytup2xmydictmydictkeymydictkey0mydictkey0mydictkeymydictkeymydictkey0mydictmydictmydictmydictxmydict{"name":"Mixly","color":"green"}s11,2,3,4,5s1s1s1s2s1s2s10s1Mixlys1s2xMixlyMixlyMixly,HelloMixlyprompt02MixlyMixly0XFF00FFcodebMixlyMixly1attachInterrupt_func1attachInterrupt_funcattachInterrupt_funcrfid00Mixly0Mixly2022711420452023,1,1,12,0,018029100100100440440100004120000000000010001000Mixly0MixlyMixly500MixlyMixly500>10.51001001000interrupt_funcinterrupt_functurnsdistance00Mixly0Mixlywifinamewifipassword8080AUTH TOKEN0_value02000notify0Your Target Emailsubjectbodycolor#FF0000wifinamewifipasswordmixio.mixly.cnmixio.mixly.cnA1B2C3mixio.mixly.cnusernamepasswordMyProjecttopicmsgtopicmethodmethodEQmsg1content"long""lat""message"012content"key1""key2""key3"012http://mixio.mixly.org/time.phpmixio.mixly.cnwifinamewifipasswordcsub_cb31444082183.230.40.3914109261n63JySRowo13ZLDBKw6y896E0=MixlyRobotsub_cbEQmsg1ciot_dict"sound"ciot_dictccwifinamewifipasswordclientEnter Your API_KEYEnter Your SECRET_KEYclient1clientS72099北京今天天气如何?wifinamewifipasswordSVa3S0UKHIy9dDArs北京SVa3S0UKHIy9dDArs北京1SVa3S0UKHIy9dDArs北京24ble_cble_pMixlyble_cble_cMixlyble_cble_xble_xble_xMixlyble_xble_xble_methodble_methodEQdataMixlyhandlehandle_methodhandle_methodkey1key2key3keyx02000001000009000,4500,563,5630x1234callbackcmdaddrrawpulsesi2c2221100000i2c00i2c00i2ci2ci2cspi2000004512spi200000buf50spi10spi100xffspibufspibuf0xffspi12345spi12345buf1Mixlyow12owowow12345ow12345owmy_now0my_nowmy_nowmy_nowFFFFFFFFFFFFmixlymy_nowmy_nowcbcbEQmsg1spi10000004512spi8my_lora433.925716my_loramy_loramy_loraMixlyi2c_extend45100000xsensori2c_extendxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorspi10000004512spi8ysensorysensor0ysensor0ysensor0Mixlyysensor0Mixlyysensorysensorysensor39,119.96,31.67ysensorysensorstation45ps2_handle24512ps2_handle50ps2_handleps2_handlews_wr0121ws_wrws_wrws_wr360002zsensorzsensorzsensorzsensor100midi0midi440midi4401000midimidimidi4120midimidirgb04rgb0000rgb000rgb100100i2c_extend45400000Motori2c_extendMotor100Motor1024102402ttsttsttsttstts你好米思齐i2c_extend45400000matrixi2c_extendmatrixmatrixmatrixMixly0matrixMixlymatrixMixly500matrixMixlymatrixMixly500matrixmatrix>matrixmatrix1matrixmatrixmatrix0.5matrixmatrixi2c_extend45100000dispi2c_extenddisp2333dispdisp1i2c_extend45100000lcdi2c_extend0x27lcdMixly00lcdMixly005lcdlcdi2c_extend45100000oledi2c_extend0x3coledoled001oledMixlyoledMixly0010oledMixlyoledMixly0550oledMixlyoledMixly5500oled0020oled005050oled20202015oled1oled00oled00oledspi1000000450spi78tft_st7789135240tft_st7789001#ffffff255,255,0tft_st7789Mixly0050#ffffff255,255,0tft_st7789Mixly0550#ffffff255,255,0tft_st7789Mixly5500#ffffff255,255,0tft_st7789004040#ffffff255,255,0tft_st778912ai_sensorai_sensor98ai_sensor255,255,00,0,255ai_sensor'ni-hao','hong-se','lv-se','lan-se','bai-se','hei-se'0.1ai_sensor1.wav5ai_sensor1.wav100ai_sensorinfoai_sensorqrcodeinfoai_sensorbarcodeinfoai_sensortaginfoai_sensor25002525lineinfoai_sensor35002100circleinfoai_sensor10000rectinfoai_sensorinfoinfoai_sensorcolor_lab101colorsai_sensor'猫','狗','笔记本','笔'mixgo5自模型训练infoai_sensor'猫','狗','笔记本','笔'mixgo自模型识别objectsinfoai_sensor0.1606, 0.3562, 0.4712, 0.9568, 0.9877, 1.9108, 1.8761, 3.5310, 3.4423, 5.6823/sd/masks.kmodel外部模型加载objects12ai_sensorai_sensor98ai_sensor255,255,00,0,255ai_sensor1.wav5ai_sensor1.wav100infoai_sensorlicensePlateinfoai_sensorfaceinfoai_sensor20objectsai_sensorinfoai_sensorqrcodeinfoai_sensorbarcodeinfoai_sensortaginfoai_sensor25002525lineinfoai_sensor35002100circleinfoai_sensor10000rectinfoai_sensorinfoinfoai_sensorcolor_lab101colorsfilename.txtfMixlyfff0fffpathpathfilename.txtsrcname.txtdstname.txtpathff0wifinamewifipasswordwlanwlanwlanwlanwlan127.16.0.801234567wlanwlanwlanwlanwlan127.16.0.81connect_wifiwlanAPwlanTruewlanwlanSmallCabbage1WHILETRUEEQ0wlan0.0.0.0ms1000TRUEss0.0.0.080s192.168.0.180s5ss1024sbMixlyresponses1024sbMixlyresponse127.0.0.180sntp.aliyun.com \ No newline at end of file +02000attachInterrupt_funcattachInterrupt_func10,1,2,3051iDIVIDE10Exception as eetestThreadtestThreadWHILETRUEHello Mixly from Thread!ms10timtim1000tim_callbacktim_callback5000200090x151100a10.998124.829971100101010001100501100110000x2x0,1,2,30,1,2,30,1,2,3xMixlyHelloMixly65axMixlyMixly0Mixly02MixlyMixlyHello,mixlyl--mylistHello,mixlymixlymixpyI love mixly!I love mixlyRandom No. is {}int1100input('1+2*3')mylist1,2,3,4,5mylist0mylist02mylistmylistmylist0mylist00mylist00mylist0mylist0mylist0mylistmylistmylistx0,1,2,30,1,2,3mytup1,2,3,4,5mytup0mytup02mytupmytupmytupmytup0mytupmytup1mytup2xmydictmydictkeymydictkey0mydictkey0mydictkeymydictkeymydictkey0mydictmydictmydictmydictxmydict{"name":"Mixly","color":"green"}s11,2,3,4,5s1s1s1s2s1s2s10s1Mixlys1s2xMixlyMixlyMixly,HelloMixlyprompt02MixlyMixly0XFF00FFcodebMixlyMixly1attachInterrupt_func1attachInterrupt_funcattachInterrupt_funcrfid00Mixly0Mixly2022711420452023,1,1,12,0,018029100100100440440100004120000000000010001000Mixly0MixlyMixly500MixlyMixly500>10.51001001000interrupt_funcinterrupt_functurnsdistance00Mixly0Mixlywifinamewifipassword8080AUTH TOKEN0_value02000notify0Your Target Emailsubjectbodycolor#FF0000wifinamewifipasswordmixio.mixly.cnmixio.mixly.cnA1B2C3mixio.mixly.cnusernamepasswordMyProjecttopicmsgtopicmethodmethodEQmsg1content"long""lat""message"012content"key1""key2""key3"012http://mixio.mixly.org/time.phpmixio.mixly.cnwifinamewifipasswordcsub_cb31444082183.230.40.3914109261n63JySRowo13ZLDBKw6y896E0=MixlyRobotsub_cbEQmsg1ciot_dict"sound"ciot_dictccwifinamewifipasswordclientEnter Your API_KEYEnter Your SECRET_KEYclient1clientS72099北京今天天气如何?wifinamewifipasswordSVa3S0UKHIy9dDArs北京SVa3S0UKHIy9dDArs北京1SVa3S0UKHIy9dDArs北京24ble_cble_pMixlyble_cble_cMixlyble_cble_xble_xble_xMixlyble_xble_xble_methodble_methodEQdataMixlyhandlehandle_methodhandle_methodkey1key2key3keyx02000001000009000,4500,563,5630x1234callbackcmdaddrrawpulsesi2c2221100000i2c00i2c00i2ci2ci2cspi2000004512spi200000buf50spi10spi100xffspibufspibuf0xffspi12345spi12345buf1Mixlyow12owowow12345ow12345owmy_now0my_nowmy_nowmy_nowFFFFFFFFFFFFmixlymy_nowmy_nowcbcbEQmsg1spi10000004512spi8my_lora433.925716my_loramy_loramy_loraMixlyi2c_extend45100000xsensori2c_extendxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorspi10000004512spi8ysensorysensor0ysensor0ysensor0Mixlyysensor0Mixlyysensorysensorysensor39,119.96,31.67ysensorysensorstation45ps2_handle24512ps2_handle50ps2_handleps2_handlews_wr0121ws_wrws_wrws_wr360002zsensorzsensorzsensorzsensor100midi0midi440midi4401000midimidimidi4120midimidirgb04rgb0000rgb000rgb100100i2c_extend45400000Motori2c_extendMotor100Motor1024102402ttsttsttsttstts你好米思齐i2c_extend45400000matrixi2c_extendmatrixmatrixmatrixMixly0matrixMixlymatrixMixly500matrixMixlymatrixMixly500matrixmatrix>matrixmatrix1matrixmatrixmatrix0.5matrixmatrixi2c_extend45100000dispi2c_extenddisp2333dispdisp1i2c_extend45100000lcdi2c_extend0x27lcdMixly00lcdMixly005lcdlcdi2c_extend45100000oledi2c_extend0x3coledoled001oledMixlyoledMixly0010oledMixlyoledMixly0550oledMixlyoledMixly5500oled0020oled005050oled20202015oled1oled00oled00oledspi1000000450spi78tft_st7789135240tft_st7789001#ffffff255,255,0tft_st7789Mixly0050#ffffff255,255,0tft_st7789Mixly0550#ffffff255,255,0tft_st7789Mixly5500#ffffff255,255,0tft_st7789004040#ffffff255,255,0tft_st778912ai_sensorai_sensor98ai_sensor255,255,00,0,255ai_sensor'ni-hao','hong-se','lv-se','lan-se','bai-se','hei-se'0.1ai_sensor1.wav5ai_sensor1.wav100ai_sensorinfoai_sensorqrcodeinfoai_sensorbarcodeinfoai_sensortaginfoai_sensor25002525lineinfoai_sensor35002100circleinfoai_sensor10000rectinfoai_sensorinfoinfoai_sensorcolor_lab101colorsai_sensor'猫','狗','笔记本','笔'mixgo5自模型训练infoai_sensor'猫','狗','笔记本','笔'mixgo自模型识别objectsinfoai_sensor0.1606, 0.3562, 0.4712, 0.9568, 0.9877, 1.9108, 1.8761, 3.5310, 3.4423, 5.6823/sd/masks.kmodel外部模型加载objects12ai_sensorai_sensor98ai_sensor255,255,00,0,255ai_sensor1.wav5ai_sensor1.wav100infoai_sensorlicensePlateinfoai_sensorfaceinfoai_sensor20objectsai_sensorinfoai_sensorqrcodeinfoai_sensorbarcodeinfoai_sensortaginfoai_sensor25002525lineinfoai_sensor35002100circleinfoai_sensor10000rectinfoai_sensorinfoinfoai_sensorcolor_lab101colorsfilename.txtfMixlyfff0fffpathpathfilename.txtsrcname.txtdstname.txtpathff0wifinamewifipasswordwlanwlanwlanwlanwlan127.16.0.801234567wlanwlanwlanwlanwlan127.16.0.81connect_wifiwlanAPwlanTruewlanwlanSmallCabbage1WHILETRUEEQ0wlan0.0.0.0ms1000TRUEss0.0.0.080s192.168.0.180s5ss1024sbMixlyresponses1024sbMixlyresponse127.0.0.180sntp.aliyun.com \ No newline at end of file diff --git a/boards/default/micropython_esp32c3/main.bundle.js b/boards/default/micropython_esp32c3/main.bundle.js index 2d018ede..adfab009 100644 --- a/boards/default/micropython_esp32c3/main.bundle.js +++ b/boards/default/micropython_esp32c3/main.bundle.js @@ -18,4 +18,4 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -class ct{constructor(t,e){if(this.variablePrefix_=e||"",this.reservedDict_=Object.create(null),t)for(var i=t.split(","),n=0;n0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?i[s]=e.getInputTargetBlock("IF"+s).previousConnection:i[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?n[s]=e.getInputTargetBlock("DO"+s).previousConnection:n[s]=null,this.removeInput("DO"+s);this.elseifCount_=parseInt(t.getAttribute("elseif"),10),this.elseCount_=parseInt(t.getAttribute("else"),10);for(s=1;s<=this.elseifCount_;s++)this.appendValueInput("IF"+s).setCheck([Boolean,Number]).appendField(mt.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+s).appendField(mt.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(mt.Msg.CONTROLS_IF_MSG_ELSE);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"IF"+s);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_if_if");e.initSvg();for(var i=e.getInput("STACK").connection,n=1;n<=this.elseifCount_;n++){var s=t.newBlock("controls_if_elseif");s.initSvg(),i.connect(s.previousConnection),i=s.nextConnection}if(this.elseCount_){var o=t.newBlock("controls_if_else");o.initSvg(),i.connect(o.previousConnection)}return e},compose:function(t){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var e=this.elseifCount_;e>0;e--)this.removeInput("IF"+e),this.removeInput("DO"+e);this.elseifCount_=0;for(var i=t.getInputTargetBlock("STACK"),n=[null],s=[null],o=null;i;){switch(i.type){case"controls_if_elseif":this.elseifCount_++,n.push(i.valueConnection_),s.push(i.statementConnection_);break;case"controls_if_else":this.elseCount_++,o=i.statementConnection_;break;default:throw Error("Unknown block type: "+i.type)}i=i.nextConnection&&i.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(n,s,o)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),i=1;e;){switch(e.type){case"controls_if_elseif":var n=this.getInput("IF"+i),s=this.getInput("DO"+i);e.valueConnection_=n&&n.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,i++;break;case"controls_if_else":s=this.getInput("ELSE");e.statementConnection_=s&&s.connection.targetConnection;break;default:throw"Unknown block type."}e=e.nextConnection&&e.nextConnection.targetBlock()}},rebuildShape_:function(){var t=[null],e=[null],i=null;this.getInput("ELSE")&&(i=this.getInput("ELSE").connection.targetConnection);for(var n=1;this.getInput("IF"+n);){var s=this.getInput("IF"+n),o=this.getInput("DO"+n);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(o.connection.targetConnection),n++}this.updateShape_(),this.reconnectChildBlocks_(t,e,i)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var t=1;this.getInput("IF"+t);)this.removeInput("IF"+t),this.removeInput("DO"+t),t++;for(t=1;t<=this.elseifCount_;t++)this.appendValueInput("IF"+t).setCheck([Number,Boolean]).appendField(mt.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+t).appendField(mt.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(mt.Msg.CONTROLS_IF_MSG_ELSE)},reconnectChildBlocks_:function(t,e,i){for(var n=1;n<=this.elseifCount_;n++)t[n]&&t[n].reconnect(this,"IF"+n),e[n]&&e[n].reconnect(this,"DO"+n);i&&i.reconnect(this,"ELSE")}},bt={init:function(){this.setColour(Ft),this.appendValueInput("FROM").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.PYTHON_RANGE).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.PYTHON_RANGE_STEP),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},yt={init:function(){this.setColour(Ft),this.appendValueInput("LIST").setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.CONTROLS_FOREACH_INPUT),this.appendValueInput("VAR").appendField(mt.Msg.CONTROLS_FOREACH_INPUT_ITEM),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip((function(){return mt.Msg.CONTROLS_FOR_TOOLTIP.replace("“%1”","")}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Vt={init:function(){this.setColour(Ft),this.appendValueInput("BOOL").setCheck([Boolean,Number]).appendField(mt.Msg.MIXLY_MICROBIT_JS_CURRENT).appendField(new mt.FieldDropdown(this.OPERATORS),"MODE"),this.appendStatementInput("DO").appendField(mt.Msg.LANG_CONTROLS_WHILEUNTIL_TITLE_REPEAT+mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return{WHILE:mt.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_WHILE,UNTIL:mt.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL}[e]}))}},Bt={init:function(){this.setColour(Ft),this.appendDummyInput().appendField(mt.Msg.MIXLY_PYTHON_TRY),this.appendStatementInput("try"),this.appendValueInput("IF1").appendField(mt.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO1").appendField(""),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new mt.icons.MutatorIcon(["controls_except","controls_finally"],this)),this.setTooltip(mt.Msg.MIXLY_MIXPY_CONTROL_TRY_TOOLTIP),this.elseifCount_=1,this.elseCount_=0},mutationToDom:function(){if(!this.elseifCount_&&!this.elseCount_)return null;var t=document.createElement("mutation");return this.elseifCount_&&t.setAttribute("elseif",this.elseifCount_),this.elseCount_&&t.setAttribute("else",1),t},domToMutation:function(t){var e=this,i=[],n=[];this.elseCount_&&this.removeInput("ELSE");for(var s=this.elseifCount_;s>0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?i[s]=e.getInputTargetBlock("IF"+s).previousConnection:i[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?n[s]=e.getInputTargetBlock("DO"+s).previousConnection:n[s]=null,this.removeInput("DO"+s);this.elseifCount_=parseInt(t.getAttribute("elseif"),10),this.elseCount_=parseInt(t.getAttribute("else"),10);for(s=1;s<=this.elseifCount_;s++)this.appendValueInput("IF"+s).setCheck([Boolean,Number]).appendField(mt.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+s).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(mt.Msg.MIXLY_PYTHON_FINALLY);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"IF"+s);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_try");e.initSvg();for(var i=e.getInput("STACK").connection,n=1;n<=this.elseifCount_;n++){var s=t.newBlock("controls_except");s.initSvg(),i.connect(s.previousConnection),i=s.nextConnection}if(this.elseCount_){var o=t.newBlock("controls_finally");o.initSvg(),i.connect(o.previousConnection)}return e},compose:function(t){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var e=this.elseifCount_;e>0;e--)this.removeInput("IF"+e),this.removeInput("DO"+e);this.elseifCount_=0;for(var i=t.getInputTargetBlock("STACK"),n=[null],s=[null],o=null;i;){switch(i.type){case"controls_except":this.elseifCount_++,n.push(i.valueConnection_),s.push(i.statementConnection_);break;case"controls_finally":this.elseCount_++,o=i.statementConnection_;break;default:throw Error("Unknown block type: "+i.type)}i=i.nextConnection&&i.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(n,s,o)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),i=1;e;){switch(e.type){case"controls_except":var n=this.getInput("IF"+i),s=this.getInput("DO"+i);e.valueConnection_=n&&n.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,i++;break;case"controls_finally":s=this.getInput("ELSE");e.statementConnection_=s&&s.connection.targetConnection;break;default:throw"Unknown block type."}e=e.nextConnection&&e.nextConnection.targetBlock()}},rebuildShape_:function(){var t=[null],e=[null],i=null;this.getInput("ELSE")&&(i=this.getInput("ELSE").connection.targetConnection);for(var n=1;this.getInput("IF"+n);){var s=this.getInput("IF"+n),o=this.getInput("DO"+n);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(o.connection.targetConnection),n++}this.updateShape_(),this.reconnectChildBlocks_(t,e,i)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var t=1;this.getInput("IF"+t);)this.removeInput("IF"+t),this.removeInput("DO"+t),t++;for(t=1;t<=this.elseifCount_;t++)this.appendValueInput("IF"+t).setCheck([Number,Boolean]).appendField(mt.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+t).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(mt.Msg.MIXLY_PYTHON_FINALLY)},reconnectChildBlocks_:function(t,e,i){for(var n=1;n<=this.elseifCount_;n++)t[n]&&t[n].reconnect(this,"IF"+n),e[n]&&e[n].reconnect(this,"DO"+n);i&&i.reconnect(this,"ELSE")}},Gt={init:function(){this.setColour(Ft);var t=new mt.FieldDropdown(this.OPERATORS);this.appendDummyInput().appendField(t,"FLOW").appendField(mt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_INPUT_OFLOOP),this.setPreviousStatement(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_CONTROLS_FLOW_STATEMENTS_TOOLTIP);var e=this;this.setTooltip((function(){var t=e.getFieldValue("FLOW");return{BREAK:mt.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK,CONTINUE:mt.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE}[t]}))},onchange:function(){if(this.workspace){var t=!1,e=this;do{if("controls_repeat"==e.type||"controls_for"==e.type||"controls_forEach"==e.type||"controls_repeat_ext"==e.type||"controls_whileUntil"==e.type||"do_while"==e.type){t=!0;break}e=e.getSurroundParent()}while(e);t?this.setWarningText(null):this.setWarningText(mt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_WARNING)}}},Ut={init:function(){this.setColour(Ft),this.appendDummyInput().appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new mt.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return mt.Msg.CONTROLS_FOR_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},wt={init:function(){this.setColour(Ft),this.appendDummyInput().appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new mt.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return mt.Msg.MIXLY_PYTHON_CONTROLS_FOR_RANGE_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}};Vt.OPERATORS=[[mt.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"WHILE"],[mt.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"UNTIL"]],Gt.OPERATORS=[[mt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK,"BREAK"],[mt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE,"CONTINUE"]];const kt={init:function(){this.setColour(Ft),this.appendDummyInput().appendField(mt.Msg.CONTROLS_IF_IF_TITLE_IF),this.appendStatementInput("STACK"),this.setTooltip(mt.Msg.CONTROLS_IF_IF_TOOLTIP),this.contextMenu=!1}},Ht={init:function(){this.setColour(Ft),this.appendDummyInput().appendField(mt.Msg.CONTROLS_IF_ELSEIF_TITLE_ELSEIF),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.CONTROLS_IF_ELSEIF_TOOLTIP),this.contextMenu=!1}},Wt={init:function(){this.setColour(Ft),this.appendDummyInput().appendField(mt.Msg.CONTROLS_IF_ELSE_TITLE_ELSE),this.setPreviousStatement(!0),this.setTooltip(mt.Msg.CONTROLS_IF_ELSE_TOOLTIP),this.contextMenu=!1}},Kt={init:function(){this.setColour(Ft),this.appendDummyInput().appendField("try"),this.appendStatementInput("STACK"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.contextMenu=!1}},Jt={init:function(){this.setColour(Ft),this.appendDummyInput().appendField(mt.Msg.MIXLY_PYTHON_EXCEPT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.contextMenu=!1,this.setTooltip(mt.Msg.MIXLY_MIXPY_CONTROL_EXCEPT_TOOLTIP)}},Qt={init:function(){this.setColour(Ft),this.appendDummyInput().appendField(mt.Msg.MIXLY_PYTHON_FINALLY),this.setPreviousStatement(!0),this.contextMenu=!1,this.setTooltip(mt.Msg.MIXLY_MIXPY_CONTROL_FINALLY_TOOLTIP)}},zt={init:function(){this.jsonInit({message0:mt.Msg.CONTROLS_REPEAT_TITLE,args0:[{type:"input_value",name:"TIMES"}],previousStatement:null,nextStatement:null,colour:Ft,tooltip:mt.Msg.CONTROLS_REPEAT_TOOLTIP,helpUrl:mt.Msg.CONTROLS_REPEAT_HELPURL}),this.appendStatementInput("DO")}},qt={init:function(){this.setColour(Ft),this.appendValueInput("BOOL").appendField("lambda"),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_STAT),this.setOutput(!0)}},jt={init:function(){this.setColour(Ft),this.appendDummyInput().appendField(mt.Msg.MIXLY_PYTHON_PASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_CONTROLS_PASS_TOOLTIP)}},Zt={init:function(){this.setColour(Ft),this.appendDummyInput().appendField(mt.Msg.MIXLY_PYTHON_CONTROLS_THREAD_START),this.appendValueInput("callback").appendField(mt.Msg.MIXLY_PYTHON_CONTROLS_THREAD_USE),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_CONTROLS_THREAD_TOOLTIP)}},$t={init:function(){this.appendDummyInput().appendField(mt.Msg.CONTROLS_REPEAT_TITLE_REPEAT+mt.Msg.MIXLY_DO),this.appendStatementInput("input_data").setCheck(null),this.appendValueInput("select_data").setCheck(null).appendField(mt.Msg.CONTROLS_OPERATOR_UNTIL).appendField(new mt.FieldDropdown([[mt.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"true"],[mt.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"false"]]),"type"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Ft),this.setTooltip("do-while loop"),this.setHelpUrl("")}},te={init:function(){this.setColour(Ft),this.appendDummyInput().appendField(mt.Msg.MIXLY_OP_GARBAGE_COLLECT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},ee={init:function(){this.setColour(Ft),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_MEM_ALLOC),this.setOutput(!0)}},ie={init:function(){this.setColour(Ft),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_MEM_FREE),this.setOutput(!0)}},ne=230;mt.FieldTextInput.math_number_validator=function(t){return String(t)},mt.FieldTextInput.math_number_validator_include_blank=function(t){if(""===t)return"";return/^-?(0X|0x|0O|0o|0B|0b)?[a-fA-F0-9]{1,}(\.[a-fA-F0-9]+)?$/.test(t)?String(t):null};const se={init:function(){this.setColour(ne),this.appendDummyInput().appendField(new mt.FieldTextInput("0",mt.FieldTextInput.math_number_validator),"NUM"),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MATH_NUMBER_TOOLTIP)}},oe={init:function(){this.setColour(ne);this.appendDummyInput("").appendField(mt.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new mt.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:mt.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_TOOLTIP,e:mt.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_TOOLTIP}[e]}))}},_e={init:function(){this.setColour(ne);this.appendDummyInput("").appendField(mt.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new mt.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:mt.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_MP_TOOLTIP,e:mt.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_MP_TOOLTIP}[e]}))}},ae={init:function(){this.setColour(ne),this.setOutput(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new mt.FieldDropdown([["+","ADD"],["-","MINUS"],["×","MULTIPLY"],["÷","DIVIDE"],["%","QUYU"],["//","ZHENGCHU"],["**","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:mt.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:mt.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:mt.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:mt.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:mt.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:mt.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:mt.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},pe={init:function(){this.setColour(ne),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new mt.FieldDropdown([["+=","ADD"],["-=","MINUS"],["×=","MULTIPLY"],["÷=","DIVIDE"],["%=","QUYU"],["//=","ZHENGCHU"],["**=","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:mt.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:mt.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:mt.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:mt.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:mt.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:mt.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:mt.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},ue={init:function(){this.setColour(ne),this.setOutput(!0,Number),this.appendValueInput("A").setCheck(Number),this.appendValueInput("B").setCheck(Number).appendField(new mt.FieldDropdown([["&","&"],["|","|"],[">>",">>"],["<<","<<"]]),"OP"),this.setInputsInline(!0),this.setTooltip("位运算")}},re={init:function(){this.setColour(ne),this.setOutput(!0,Number),this.appendValueInput("NUM").setCheck(Number).appendField(new mt.FieldDropdown([["sin","SIN"],["cos","COS"],["tan","TAN"],["asin","ASIN"],["acos","ACOS"],["atan","ATAN"],["-","-"],["ln","LN"],["log10","LOG10"],["e^","EXP"],["10^","POW10"]]),"OP");var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{SIN:mt.Msg.MATH_TRIG_TOOLTIP_SIN,COS:mt.Msg.MATH_TRIG_TOOLTIP_COS,TAN:mt.Msg.MATH_TRIG_TOOLTIP_TAN,ASIN:mt.Msg.MATH_TRIG_TOOLTIP_ASIN,ACOS:mt.Msg.MATH_TRIG_TOOLTIP_ACOS,ATAN:mt.Msg.MATH_TRIG_TOOLTIP_ATAN,LN:mt.Msg.MATH_SINGLE_TOOLTIP_LN}[e]}))}},le={init:function(){var t=[[mt.Msg.MATH_BIN,"bin"],[mt.Msg.MATH_OCT,"oct"],[mt.Msg.MATH_HEX,"hex"]];this.setColour(ne),this.setOutput(!0,String),this.appendValueInput("NUM").setCheck(Number).appendField(new mt.FieldDropdown(t),"OP");var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{bin:mt.Msg.MATH_DEC_TOOLTIP_BIN,oct:mt.Msg.MATH_DEC_TOOLTIP_OCT,hex:mt.Msg.MATH_DEC_TOOLTIP_HEX}[t]}))}},de={init:function(){var t=[[mt.Msg.LANG_MATH_TO_ROUND,"round"],[mt.Msg.LANG_MATH_TO_CEIL,"ceil"],[mt.Msg.LANG_MATH_TO_FLOOR,"floor"],[mt.Msg.MATH_ABS,"fabs"],[mt.Msg.MATH_SQRT,"sqrt"]];this.setColour(ne),this.appendValueInput("A").setCheck(Number).appendField(new mt.FieldDropdown(t),"OP"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{sqrt:mt.Msg.MATH_SINGLE_TOOLTIP_ROOT,fabs:mt.Msg.MATH_SINGLE_TOOLTIP_ABS,sq:mt.Msg.MATH_SINGLE_TOOLTIP_SQ,round:mt.Msg.MATH_SINGLE_TOOLTIP_ROUND,ceil:mt.Msg.MATH_SINGLE_TOOLTIP_CEIL,floor:mt.Msg.MATH_SINGLE_TOOLTIP_FLOOR}[t]}))}},Ie={init:function(){var t=[[mt.Msg.MIXLY_MAX,"max"],[mt.Msg.MIXLY_MIN,"min"]];this.setColour(ne),this.appendValueInput("A").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(new mt.FieldDropdown(t),"OP").appendField("("),this.appendValueInput("B").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(","),this.appendDummyInput("").setAlign(mt.inputs.Align.RIGHT).appendField(")"),this.setInputsInline(!0),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{max:mt.Msg.MIXLY_TOOLTIP_MATH_MAX,min:mt.Msg.MIXLY_TOOLTIP_MATH_MIN}[t]}))}},Te={init:function(){var t=[[mt.Msg.MATH_TWO,"two"],[mt.Msg.MATH_EIGHT,"eight"],[mt.Msg.MATH_TEN,"ten"],[mt.Msg.MATH_SIXTEEN,"sixteen"]];this.setColour(ne),this.appendDummyInput("").appendField(mt.Msg.MATH_BA),this.appendValueInput("NUM").appendField(new mt.FieldDropdown(t),"OP").appendField(mt.Msg.MATH_JinZhi).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.MATH_ZHW).appendField(new mt.FieldDropdown(t),"OP2").appendField(mt.Msg.MATH_JinZhi),this.setFieldValue("ten","OP2"),this.setOutput(!0),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP"),i={two:mt.Msg.MATH_Before_two,eight:mt.Msg.MATH_Before_eight,ten:mt.Msg.MATH_Before_ten,sixteen:mt.Msg.MATH_Before_sixteen},n=e.getFieldValue("OP2"),s={two:mt.Msg.MATH_Behind_two,eight:mt.Msg.MATH_Behind_eight,ten:mt.Msg.MATH_Behind_ten,sixteen:mt.Msg.MATH_Behind_sixteen};return i[t]+s[n]}))}},he={init:function(){var t=[[mt.Msg.LANG_MATH_INT,"int"],[mt.Msg.LANG_MATH_FLOAT,"float"]];this.setColour(ne),this.setOutput(!0,Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_RANDOM).appendField(new mt.FieldDropdown(t),"TYPE"),this.appendValueInput("FROM").setCheck(Number).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LANG_MATH_RANDOM_INT_INPUT_TO),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TYPE"),i={int:mt.Msg.LANG_MATH_INT,float:mt.Msg.LANG_MATH_FLOAT_RANDOM};return mt.Msg.MATH_RANDOM_INT_TOOLTIP+i[t]}))}},Me={init:function(){this.setColour(ne),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number).appendField(mt.Msg.LANG_MATH_CONSTRAIN_INPUT_CONSTRAIN),this.appendValueInput("LOW").setCheck(Number).appendField(mt.Msg.LANG_MATH_CONSTRAIN_INPUT_LOW),this.appendValueInput("HIGH").setCheck(Number).appendField(mt.Msg.LANG_MATH_CONSTRAIN_INPUT_HIGH),this.setInputsInline(!0),this.setTooltip(mt.Msg.MATH_CONSTRAIN_TOOLTIP)}},me={init:function(){this.setColour(ne),this.appendValueInput("NUM",Number).appendField(mt.Msg.MIXLY_MAP).setCheck(Number),this.appendValueInput("fromLow",Number).appendField(mt.Msg.MIXLY_MAP_FROM).setCheck(Number),this.appendValueInput("fromHigh",Number).appendField(",").setCheck(Number),this.appendValueInput("toLow",Number).appendField(mt.Msg.MIXLY_MAP_TO).setCheck(Number),this.appendValueInput("toHigh",Number).appendField(",").setCheck(Number),this.appendDummyInput("").appendField("]"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_MATH_MAP)}},Oe={init:function(){this.setColour(ne),this.appendDummyInput().appendField(new mt.FieldTextInput("0",mt.FieldTextInput.math_number_validator_include_blank),"NUM"),this.setOutput(!0),this.setTooltip(mt.Msg.MATH_NUMBER_TOOLTIP)}},Ee={init:function(){this.setColour(ne),this.appendValueInput("NUM").setCheck(Number).appendField(mt.Msg.LANG_MATH_RANDOM_SEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_MATH_RANDOM_SEED)}},Re={init:function(){this.setColour(ne),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number),this.appendValueInput("VAR").setCheck(Number).appendField(mt.Msg.MATH_ROUND).appendField(mt.Msg.TEXT_KEEP),this.appendDummyInput().appendField(mt.Msg.TEXT_DECIMAL),this.setInputsInline(!0),this.setTooltip(mt.Msg.MATH_ROUND_NEW_TOOLTIP)}},ce={init:function(){var t=[[mt.Msg.MIXLY_TO_INT,"int"],[mt.Msg.MIXLY_TO_FLOAT,"float"],[mt.Msg.MIXLY_TO_BITES,"b"]];this.setColour(ne),this.appendValueInput("VAR").appendField(new mt.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:mt.Msg.MIXLY_PYTHON_TOOLTIP_TOINT,float:mt.Msg.MIXLY_PYTHON_TOOLTIP_TOFLOAT,b:mt.Msg.MIXLY_TOOLTIP_TEXT_TOBYTE}[t]}))}},ge={init:function(){var t=[[mt.Msg.MIXLY_TO_INT,"int"],[mt.Msg.MIXLY_TO_FLOAT,"float"]];this.setColour(ne),this.appendValueInput("VAR").appendField(new mt.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:mt.Msg.MIXLY_TOOLTIP_TEXT_TOINT,float:mt.Msg.MIXLY_TOOLTIP_TEXT_TOFLOAT}[t]}))}},Ce=me,Se=160,Ae={init:function(){this.setColour(Se),this.appendDummyInput().appendField(this.newQuote_(!0)).appendField(new mt.FieldTextInput(""),"TEXT").appendField(this.newQuote_(!1)),this.setOutput(!0,String),this.setTooltip(mt.Msg.TEXT_TEXT_TOOLTIP)},newQuote_:function(t){if(t==this.RTL)var e="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAKCAQAAAAqJXdxAAAAqUlEQVQI1z3KvUpCcRiA8ef9E4JNHhI0aFEacm1o0BsI0Slx8wa8gLauoDnoBhq7DcfWhggONDmJJgqCPA7neJ7p934EOOKOnM8Q7PDElo/4x4lFb2DmuUjcUzS3URnGib9qaPNbuXvBO3sGPHJDRG6fGVdMSeWDP2q99FQdFrz26Gu5Tq7dFMzUvbXy8KXeAj57cOklgA+u1B5AoslLtGIHQMaCVnwDnADZIFIrXsoXrgAAAABJRU5ErkJggg==";else e="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAKCAQAAAAqJXdxAAAAn0lEQVQI1z3OMa5BURSF4f/cQhAKjUQhuQmFNwGJEUi0RKN5rU7FHKhpjEH3TEMtkdBSCY1EIv8r7nFX9e29V7EBAOvu7RPjwmWGH/VuF8CyN9/OAdvqIXYLvtRaNjx9mMTDyo+NjAN1HNcl9ZQ5oQMM3dgDUqDo1l8DzvwmtZN7mnD+PkmLa+4mhrxVA9fRowBWmVBhFy5gYEjKMfz9AylsaRRgGzvZAAAAAElFTkSuQmCC";return new mt.FieldImage(e,12,12,'"')}},Le={init:function(){this.setColour(Se),this.appendDummyInput().appendField(this.newQuote_(!0)).appendField(new mt.FieldMultilineInput("Hello\nMixly"),"VALUE").appendField(this.newQuote_(!1)),this.setOutput(!0,String),this.setTooltip(mt.Msg.TEXT_LINES_TOOLTIP)},newQuote_:function(t){if(t==this.RTL)var e="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAKCAQAAAAqJXdxAAAAqUlEQVQI1z3KvUpCcRiA8ef9E4JNHhI0aFEacm1o0BsI0Slx8wa8gLauoDnoBhq7DcfWhggONDmJJgqCPA7neJ7p934EOOKOnM8Q7PDElo/4x4lFb2DmuUjcUzS3URnGib9qaPNbuXvBO3sGPHJDRG6fGVdMSeWDP2q99FQdFrz26Gu5Tq7dFMzUvbXy8KXeAj57cOklgA+u1B5AoslLtGIHQMaCVnwDnADZIFIrXsoXrgAAAABJRU5ErkJggg==";else e="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAKCAQAAAAqJXdxAAAAn0lEQVQI1z3OMa5BURSF4f/cQhAKjUQhuQmFNwGJEUi0RKN5rU7FHKhpjEH3TEMtkdBSCY1EIv8r7nFX9e29V7EBAOvu7RPjwmWGH/VuF8CyN9/OAdvqIXYLvtRaNjx9mMTDyo+NjAN1HNcl9ZQ5oQMM3dgDUqDo1l8DzvwmtZN7mnD+PkmLa+4mhrxVA9fRowBWmVBhFy5gYEjKMfz9AylsaRRgGzvZAAAAAElFTkSuQmCC";return new mt.FieldImage(e,12,12,'"')}};mt.FieldTextInput.char_validator=function(t){if(t.length>1&&"\\"===t.charAt(0)){var e=t.charAt(1);if("0"===e||"b"===e||"f"===e||"n"===e||"r"===e||"t"===e||"\\"===e||"'"===e)return String(t).substring(0,2);if("x"===e&&"0"===t.charAt(2)&&"B"===t.charAt(3))return String(t).substring(0,4)}return String(t).substring(0,1)};const Ne={init:function(){this.setColour(Se),this.appendDummyInput().appendField(this.newQuote_(!0)).appendField(new mt.FieldTextInput("",mt.FieldTextInput.char_validator),"TEXT").appendField(this.newQuote_(!1)),this.setOutput(!0,Number),this.setTooltip(mt.Msg.TEXT_CHAR_TOOLTIP)},newQuote_:function(t){if(1==t)var e="../../media/quote2.png";else e="../../media/quote3.png";return new mt.FieldImage(e,7,12,'"')}},De={init:function(){this.setColour(Se),this.appendValueInput("A").setCheck([String,Number]),this.appendValueInput("B").setCheck([String,Number]).appendField(mt.Msg.MIXLY_TEXT_JOIN),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_TEXT_JOIN)}},fe={init:function(){this.setColour(Se),this.appendValueInput("VAR").setCheck(Number).appendField(mt.Msg.MIXLY_TOCHAR),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_TEXT_TOCHAR)}},Fe={init:function(){this.setColour(Se),this.appendValueInput("VAR").setCheck(String).appendField(mt.Msg.MIXLY_TOASCII),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_TEXT_TOASCII)}},Pe={init:function(){this.setColour(Se),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_TOSTRING),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_PYTHON_TOOLTIP_TOTEXT)}},ve={init:function(){this.setColour(Se),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_LENGTH),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_TEXT_LENGTH)}},Ye={init:function(){this.WHERE_OPTIONS=[[mt.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[mt.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[mt.Msg.TEXT_GET_INDEX_RANDOM+1+mt.Msg.TEXT_CHARAT2,"RANDOM"]],this.setHelpUrl(mt.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(Se),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number),this.appendDummyInput().appendField(mt.Msg.LISTS_GET_INDEX_GET,"MODE"),mt.Msg.LISTS_GET_INDEX_TAIL&&this.appendDummyInput("TAIL").appendField(mt.Msg.LISTS_GET_INDEX_TAIL),this.setInputsInline(!0),this.setOutput(!0),this.updateAt_(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=t.getFieldValue("WHERE"),n="";switch(e+" "+i){case"GET FROM_START":case"GET FROM_END":n=mt.Msg.LISTS_GET_INDEX_TOOLTIP_GET_FROM;break;case"GET RANDOM":n=mt.Msg.LISTS_GET_INDEX_TOOLTIP_GET_RANDOM;break;case"GET_REMOVE FROM_START":case"GET_REMOVE FROM_END":n=mt.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM;break;case"GET_REMOVE RANDOM":n=mt.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM}return"FROM_START"!=i&&"FROM_END"!=i||(n+=" "+mt.Msg.LISTS_INDEX_FROM_START_TOOLTIP.replace("%1",mt.Msg.ONE_BASED_INDEXING?"#1":"#0")),n}));var e=this;this.setTooltip((function(){var t=e.getFieldValue("WHERE"),i={FROM_START:mt.Msg.LISTS_GET_INDEX_FROM_START,FROM_END:mt.Msg.LISTS_GET_INDEX_FROM_END,RANDOM:mt.Msg.TEXT_GET_INDEX_RANDOM};return mt.Msg.PROCEDURES_DEFRETURN_RETURN+mt.Msg.MIXLY_MICROBIT_TYPE_STRING+i[t]+"n"+mt.Msg.TEXT_CHARAT2}))},mutationToDom:function(){var t=document.createElement("mutation");t.setAttribute("statement",!this.outputConnection);var e=this.getInput("AT").type==mt.INPUT_VALUE;return t.setAttribute("at",e),t},domToMutation:function(t){var e="true"==t.getAttribute("statement");this.updateStatement_(e),t="false"!=t.getAttribute("at"),this.updateAt_(t)},updateStatement_:function(t){t!=!this.outputConnection&&(this.unplug(!0,!0),t?(this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)):(this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)))},updateAt_:function(t){this.removeInput("AT"),this.removeInput("ORDINAL",!0),t?(this.appendValueInput("AT").setCheck(Number),mt.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL").appendField(mt.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT");var e=new mt.FieldDropdown(this.WHERE_OPTIONS,(function(e){var i="FROM_START"==e||"FROM_END"==e;if(i!=t){var n=this.sourceBlock_;return n.updateAt_(i),n.setFieldValue(e,"WHERE"),null}}));this.getInput("AT").appendField(e,"WHERE"),mt.Msg.LISTS_GET_INDEX_TAIL&&this.moveInputBefore("TAIL",null)}},xe={init:function(){this.setHelpUrl(mt.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(Se),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number).appendField(mt.Msg.LISTS_GET_INDEX_GET+" "+mt.Msg.LISTS_GET_INDEX_FROM_START),this.appendDummyInput().appendField(mt.Msg.TEXT_CHARAT2),this.setOutput(!0),this.setTooltip(mt.Msg.PROCEDURES_DEFRETURN_RETURN+mt.Msg.MIXLY_MICROBIT_TYPE_STRING+mt.Msg.LISTS_GET_INDEX_FROM_START+"n"+mt.Msg.TEXT_CHARAT2)}},Xe={init:function(){this.setHelpUrl(mt.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(Se),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput().appendField(mt.Msg.TEXT_RANDOM_CHAR),this.setOutput(!0),this.setTooltip(mt.Msg.TEXT_RANDOM_CHAR_TOOLTIP)}},be={init:function(){this.WHERE_OPTIONS_1=[[mt.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[mt.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[mt.Msg.LISTS_GET_SUBLIST_START_FIRST,"FIRST"]],this.WHERE_OPTIONS_2=[[mt.Msg.LISTS_GET_SUBLIST_END_FROM_START,"FROM_START"],[mt.Msg.LISTS_GET_SUBLIST_END_FROM_END,"FROM_END"],[mt.Msg.LISTS_GET_SUBLIST_END_LAST,"LAST"]],this.setHelpUrl(mt.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(Se),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput("AT1"),this.appendDummyInput("AT2"),this.setInputsInline(!0),this.setOutput(!0,"List"),this.updateAt_(1,!0),this.updateAt_(2,!0),this.setTooltip(mt.Msg._GET_TEXT_SUBLIST_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT1").type==mt.INPUT_VALUE;t.setAttribute("at1",e);var i=this.getInput("AT2").type==mt.INPUT_VALUE;return t.setAttribute("at2",i),t},domToMutation:function(t){var e="true"==t.getAttribute("at1"),i="true"==t.getAttribute("at2");this.updateAt_(1,e),this.updateAt_(2,i)},updateAt_:function(t,e){this.removeInput("AT"+t),this.removeInput("ORDINAL"+t,!0),e?(this.appendValueInput("AT"+t).setCheck(Number),mt.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL"+t).appendField(mt.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT"+t);var i=new mt.FieldDropdown(this["WHERE_OPTIONS_"+t],(function(i){var n="FROM_START"==i||"FROM_END"==i;if(n!=e){var s=this.sourceBlock_;return s.updateAt_(t,n),s.setFieldValue(i,"WHERE"+t),null}}));this.getInput("AT"+t).appendField(i,"WHERE"+t),1==t&&(this.moveInputBefore("AT1","AT2"),this.getInput("ORDINAL1")&&this.moveInputBefore("ORDINAL1","AT2"))}},ye={init:function(){this.setHelpUrl(mt.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(Se),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT1").appendField(mt.Msg.LISTS_GET_INDEX_GET+" "+mt.Msg.LISTS_GET_INDEX_FROM_START),this.appendValueInput("AT2").appendField(mt.Msg.LISTS_GET_SUBLIST_END_FROM_START),this.appendDummyInput().appendField(mt.Msg.TEXT_CHARAT2),this.setInputsInline(!0),this.setOutput(!0,["List",String]),this.setTooltip(mt.Msg._GET_TEXT_SUBLIST_TOOLTIP)}},Ve={init:function(){var t=[[mt.Msg.MIXLY_EQUALS,"==="],[mt.Msg.MIXLY_STARTSWITH,"startswith"],[mt.Msg.MIXLY_ENDSWITH,"endswith"]];this.setColour(Se),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(new mt.FieldDropdown(t),"DOWHAT").setCheck(String),this.setOutput(!0,[Boolean,Number]),this.setInputsInline(!0)}},Be={init:function(){this.setColour(Se),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(mt.Msg.MIXLY_COMPARETO).setCheck(String),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_COMPARETO_HELP)}},Ge={init:function(){var t=[[mt.Msg.TEXT_UPPER,"upper"],[mt.Msg.TEXT_TITLE,"title"],[mt.Msg.TEXT_CAPITALIZE,"capitalize"],[mt.Msg.TEXT_SWAPCASE,"swapcase"],[mt.Msg.TEXT_LOWER,"lower"]];this.setColour(Se),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new mt.FieldDropdown(t),"CAPITAL").setCheck(String),this.setOutput(!0,String);var e=this;this.setTooltip((function(){var t=e.getFieldValue("CAPITAL");return{upper:mt.Msg.MIXLY_MIXPY_TEXT_UPPER_TOOLTIP,title:mt.Msg.MIXLY_MIXPY_TEXT_TITLE_TOOLTIP,swapcase:mt.Msg.MIXLY_MIXPY_TEXT_SWAPCASE_TOOLTIP,capitalize:mt.Msg.MIXLY_MIXPY_TEXT_CAPITALIZE_TOOLTIP,lower:mt.Msg.MIXLY_MIXPY_TEXT_LOWER_TOOLTIP}[t]}))}},Ue={init:function(){var t=[[mt.Msg.TEXT_LJUST,"ljust"],[mt.Msg.TEXT_CENTER,"center"],[mt.Msg.TEXT_RJUST,"rjust"]];this.setColour(Se),this.appendValueInput("VAR").appendField(new mt.FieldDropdown(t),"CENTER").setCheck(String),this.appendValueInput("WID").appendField(mt.Msg.MIXLY_WIDTH).setCheck(Number),this.appendValueInput("Symbol").appendField(mt.Msg.MIXLY_RECT_Fill).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_MIXPY_TEXT_CENTER_TOOLTIP)}},we={init:function(){this.setColour(Se),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).setCheck(String),this.appendValueInput("STR").appendField(mt.Msg.MIXLY_MID+mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER).setCheck(String),this.appendDummyInput().appendField(mt.Msg.MIXLY_LIST_INDEX),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_MIXPY_TEXT_FIND_TOOLTIP)}},ke={init:function(){this.setColour(Se),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_USE_STR).setCheck(String),this.appendValueInput("LIST").appendField(mt.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_SEQ).setCheck("List","Tuple","Set","Dict"),this.appendDummyInput().appendField(mt.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_GET_STR),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_TOOLTIP)}},He={init:function(){this.setColour(Se),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("STR1").appendField(mt.Msg.MIXLY_MIXPY_REPLACE).setCheck(String),this.appendValueInput("STR2").appendField(mt.Msg.LISTS_SET_INDEX_INPUT_TO).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_MIXPY_TEXT_REPLACE_TOOLTIP)}},We={init:function(){this.setColour(Se),this.appendValueInput("VAR"),this.appendValueInput("VAL").appendField(mt.Msg.LIST_SPLIT_AS),this.appendDummyInput("").appendField(mt.Msg.LIST_SPLIT),this.setOutput(!0,"List"),this.setTooltip(mt.Msg.MIXLY_MIXPY_TEXT_SPLIT_TOOLTIP),this.setInputsInline(!0)}},Ke={init:function(){var t=[[mt.Msg.TEXT_TRIM_BOTH,"strip"],[mt.Msg.TEXT_TRIM_LEFT,"lstrip"],[mt.Msg.TEXT_TRIM_RIGHT,"rstrip"]];this.setColour(Se),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(mt.Msg.TEXT_STRIM),this.appendDummyInput("").appendField(new mt.FieldDropdown(t),"TOWHAT"),this.appendDummyInput("").appendField(mt.Msg.TEXT_BLANK),this.setOutput(!0,String),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{strip:mt.Msg.TEXT_TRIM_BOTH_TOOLTIP,lstrip:mt.Msg.TEXT_TRIM_LEFT_TOOLTIP,rstrip:mt.Msg.TEXT_TRIM_RIGHT_TOOLTIP}[t]}))}},Je={init:function(){this.setColour(Se),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROPYTHON_FORMAT),this.appendDummyInput("").appendField(new mt.FieldTextInput("str"),"VAR"),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new mt.icons.MutatorIcon(["text_create_with_item"],this)),this.setOutput(!0),this.setTooltip(mt.Msg.MIXLY_MIXPY_TEXT_FORMAT_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("text_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},ki={init:function(){this.setColour(Ui),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(mt.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},Hi={init:function(){this.setColour(Ui),this.appendDummyInput().appendField(mt.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},Wi={init:function(){this.setColour(Ui),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.DICT_KEYS),this.setTooltip(mt.Msg.DICTS_KEYS_TOOLTIP),this.setOutput(!0,"List")}},Ki={init:function(){this.setColour(Ui),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(mt.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(mt.Msg.DICTS_ADD_VALUE),this.setOutput(!0),this.setTooltip(mt.Msg.DICTS_GET_TOOLTIP)}},Ji={init:function(){this.setColour(Ui),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(mt.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(mt.Msg.DICTS_ADD_VALUE),this.appendValueInput("VAR").appendField(mt.Msg.DICTS_DEFAULT_VALUE),this.setOutput(!0),this.setTooltip(mt.Msg.DICTS_GET_DEFAULT_TOOLTIP)}},Qi={init:function(){this.setColour(Ui),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(mt.Msg.DICTS_ADD),this.appendDummyInput(),this.appendValueInput("VAR").appendField(mt.Msg.DICTS_ADD_VALUE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.DICTS_ADD_OR_CHANGE_TOOLTIP)}},zi={init:function(){this.setColour(Ui),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(mt.Msg.DICTS_DELETE_IN),this.appendDummyInput("").appendField(mt.Msg.DICTS_DELETE_VALUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.DICTS_DELETE_TOOLTIP)}},qi={init:function(){this.setColour(Ui),this.appendValueInput("DICT2").setCheck("Dict").appendField(mt.Msg.MAKE_DICT),this.appendValueInput("DICT").setCheck("Dict").appendField(mt.Msg.DICT_UPDATE),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MID),this.setTooltip(mt.Msg.DICTS_UPDATE_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},ji={init:function(){this.setColour(Ui),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.DICT_CLEAR),this.setTooltip(mt.Msg.DICTS_CLEAR_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Zi={init:function(){this.setColour(Ui),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.DICT_ITEMS),this.setTooltip(mt.Msg.DICTS_ITEMS_TOOLTIP),this.setOutput(!0,"List")}},$i={init:function(){this.setColour(Ui),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.DICT_VALUES),this.setTooltip(mt.Msg.DICTS_VALUES_TOOLTIP),this.setOutput(!0,"List")}},tn={init:function(){this.setColour(Ui),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_LENGTH),this.setTooltip(mt.Msg.DICT_LENGTH_TOOLTIP),this.setOutput(!0,Number)}},en={init:function(){this.setColour(Ui),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.DICT_DELDICT),this.setTooltip(mt.Msg.DICTS_DEL_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},nn={init:function(){this.MODE=[[mt.Msg.DICTS_ADD_OR_CHANGE,"INSERT"],[mt.Msg.MIXLY_MICROBIT_JS_DELETE_VAR,"DELETE"]],this.setHelpUrl(mt.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(Ui),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("AT2"),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).appendField(mt.Msg.DICTS_ADD_VALUE),this.updateAt_(!0),this.setInputsInline(!0),this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e="";switch(t.getFieldValue("WHERE")){case"INSERT":e=mt.Msg.DICTS_ADD_TOOLTIP;break;case"DELETE":e=mt.Msg.DICTS_DELETE_TOOLTIP}return e}))},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT2").type==mt.INPUT_VALUE;return t.setAttribute("at2",e),t},domToMutation:function(t){var e="true"==t.getAttribute("at2");this.updateAt_(e)},updateAt_:function(t){this.removeInput("AT2"),this.removeInput("ORDINAL",!0),t?this.appendValueInput("AT2").setCheck(Number):this.appendDummyInput("AT2");var e=new mt.FieldDropdown(this.MODE,(function(e){var i="INSERT"==e;if(i!=t){var n=this.sourceBlock_;return n.updateAt_(i),n.setFieldValue(e,"WHERE"),null}}));this.getInput("AT2").appendField(e,"WHERE")}},sn={init:function(){this.setColour(Ui),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.blockpy_DICT_POP),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(mt.Msg.DICTS_ADD_VALUE),this.setTooltip(mt.Msg.DICT_POP_TOOLTIP),this.setInputsInline(!0),this.setOutput(!0)}},on={init:function(){this.setColour(Ui),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(mt.Msg.DICTS_SET_DEFAULT),this.appendDummyInput("").appendField(mt.Msg.DICTS_DEFAULT_VALUE),this.appendValueInput("VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.DICTS_SETDEFAULT_TOOLTIP)}},_n={init:function(){this.setColour(Ui),this.appendDummyInput("").appendField(new mt.FieldLabel(mt.Msg.MIXLY_MICROBIT_TYPE_DICT),"TIP").appendField(" "),this.itemCount_=3,this.updateShape_(),this.setOutput(!0,"Dict"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setMutator(new mt.icons.MutatorIcon(["dicts_create_with_item"],this)),this.setTooltip(mt.Msg.DICTS_CREATE_WITH_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("dicts_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},an={init:function(){this.setColour(Ui),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_TODICT),this.setOutput(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_TOOLTIP_TODICT)}},pn={init:function(){this.setColour(Ui),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_TO_JSON),this.setTooltip(mt.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0,Number)}},un={init:function(){this.setColour(Ui),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_CONVERT_TO_JSON),this.setTooltip(mt.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0,Number)}},rn=210,ln={init:function(){var t=mt.RTL?[["=","EQ"],["≠","NEQ"],[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["=","EQ"],["≠","NEQ"],["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(rn),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new mt.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{EQ:mt.Msg.LOGIC_COMPARE_TOOLTIP_EQ,NEQ:mt.Msg.LOGIC_COMPARE_TOOLTIP_NEQ,LT:mt.Msg.LOGIC_COMPARE_TOOLTIP_LT,LTE:mt.Msg.LOGIC_COMPARE_TOOLTIP_LTE,GT:mt.Msg.LOGIC_COMPARE_TOOLTIP_GT,GTE:mt.Msg.LOGIC_COMPARE_TOOLTIP_GTE}[t]})),this.prevBlocks_=[null,null]}},dn={init:function(){var t=mt.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]],e=mt.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(rn),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new mt.FieldDropdown(t),"OP1"),this.appendValueInput("C").appendField(new mt.FieldDropdown(e),"OP2"),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_LOGIC_COMPARE_CONTINOUS_TOOLTIP)}},In={init:function(){var t=[[mt.Msg.LOGIC_OPERATION_AND,"AND"],[mt.Msg.LOGIC_OPERATION_OR,"OR"],[mt.Msg.LOGIC_OPERATION_NOR,"NOR"],[mt.Msg.LOGIC_OPERATION_XOR,"XOR"]];this.setColour(rn),this.setOutput(!0,Boolean),this.appendValueInput("A").setCheck([Boolean,Number]),this.appendValueInput("B").setCheck([Boolean,Number]).appendField(new mt.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{AND:mt.Msg.LOGIC_OPERATION_TOOLTIP_AND,OR:mt.Msg.LOGIC_OPERATION_TOOLTIP_OR,NOR:mt.Msg.LOGIC_OPERATION_TOOLTIP_NOR,XOR:mt.Msg.LOGIC_OPERATION_TOOLTIP_XOR}[t]}))}},Tn={init:function(){this.setColour(rn),this.setOutput(!0,Boolean),this.appendValueInput("BOOL").setCheck([Number,Boolean]).appendField(mt.Msg.LOGIC_NEGATE_TITLE),this.setTooltip(mt.Msg.LOGIC_NEGATE_TOOLTIP)}},hn={init:function(){var t=[[mt.Msg.LOGIC_BOOLEAN_TRUE,"TRUE"],[mt.Msg.LOGIC_BOOLEAN_FALSE,"FALSE"]];this.setColour(rn),this.setOutput(!0,Boolean),this.appendDummyInput().appendField(new mt.FieldDropdown(t),"BOOL"),this.setTooltip(mt.Msg.LOGIC_BOOLEAN_TOOLTIP)}},Mn={init:function(){this.setColour(rn),this.setOutput(!0),this.appendDummyInput().appendField(mt.Msg.LOGIC_NULL),this.setTooltip(mt.Msg.LOGIC_NULL_TOOLTIP)}},mn={init:function(){this.setColour(rn),this.appendValueInput("A"),this.appendValueInput("B").appendField(mt.Msg.LOGIC_TERNARY_IF_TRUE),this.appendValueInput("C").appendField(mt.Msg.LOGIC_TERNARY_IF_FALSE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_LOGIT_TRUEORFALSE)}},On={init:function(){var t=[[mt.Msg.TEXT_APPEND_TO,"in"],[mt.Msg.MIXLY_PYTHON_LOGIC_IS_NOT_IN,"not in"]];this.setColour(rn),this.appendValueInput("A"),this.appendValueInput("B").setCheck([String,"List"]).appendField(new mt.FieldDropdown(t),"BOOL"),this.appendDummyInput("").appendField(mt.Msg.MICROBIT_LOGIC_IS_IN),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(mt.Msg.IN)}},En={init:function(){var t=[[mt.Msg.MIXLY_PYTHON_LOGIC_IS,"is"],[mt.Msg.MIXLY_PYTHON_LOGIC_IS_NOT,"is not"]];this.setColour(rn),this.appendValueInput("A"),this.appendValueInput("B").appendField(new mt.FieldDropdown(t),"BOOL"),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_LOGIC_IS_TOOLTIP)}},Rn={init:function(){this.setColour(rn),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_TOBOOL),this.setOutput(!0,Boolean),this.setTooltip(mt.Msg.MIXLY_PYTHON_TOOLTIP_TOBOOL)}},cn={init:function(){this.setColour(0),this.appendValueInput("fn").setCheck(String).appendField(mt.Msg.MIXLY_PYTHON_STORAGE_OPEN_FILE_WITH_OS+"(For Windows)"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},gn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendValueInput("FILE").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_AS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=mt.Msg.MIXLY_USE,n=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,o=mt.Msg.MIXLY_BELONG;return i+{r:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+o+n+s}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Cn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=mt.Msg.MIXLY_USE,n=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,o=mt.Msg.MIXLY_BELONG,_=mt.Msg.PY_STORAGE_FILE_OBJECT;return i+{r:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+o+n+s+_}))}},Sn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE);this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendDummyInput().appendField(mt.Msg.MIXPY_TEXT_ENCODE).appendField(new mt.FieldDropdown([["ANSI","ANSI"],["gbk","gbk"],["utf-8","utf-8"]]),"CODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=mt.Msg.MIXLY_USE,n=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,o=mt.Msg.MIXLY_BELONG,_=mt.Msg.PY_STORAGE_FILE_OBJECT;return i+{r:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+o+n+s+_}))}},An={init:function(){this.setColour(0),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendValueInput("FILE").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE+mt.Msg.MIXLY_MICROBIT_TYPE_STRING+mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE)}},Ln={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL,"read"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE,"readline"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES,"readlines"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String)}},Nn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,"read"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,"readline"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE,"readlines"]]),"MODE"),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE,n=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER;return i+{read:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,readline:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,readlines:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE}[e]+"x"+n}))}},Dn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.setNextStatement(!0),this.appendValueInput("SIZE").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(mt.Msg.MICROBIT_PYTHON_TYPE)}},fn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(mt.Msg.HTML_FILE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT1)}},Fn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILENAME),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILENAME)}},Pn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE)}},vn={init:function(){this.setColour(0),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES)}};mt.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE;const Yn={init:function(){this.setColour(0),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE,"remove"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_DIRS,"removedirs"]]),"MODE"),this.appendValueInput("FILE").setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE)}},xn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE+mt.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE)}},Xn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_RETURN_FILE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_PRESENT_LOCATION),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_TELL)}},bn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,"start"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,"current"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END,"end"]]),"MODE"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION+mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION,n=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER,s=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET;return i+" "+{start:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,current:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,end:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END}[e]+s+"x"+n}))}},yn={init:function(){this.setColour(0),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR)}},Vn={init:function(){this.setColour(0),this.appendValueInput("PATH").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_SET),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,"mkdir"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MAKEDIRS,"makedirs"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return mt.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH+"x"+mt.Msg.MIXLY_ESP32_SET+{mkdir:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,makedirs:mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},Bn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME),this.appendValueInput("NEWFILE").setCheck(String).appendField(mt.Msg.MIXLY_AS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME)}},Gn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR)}},Un={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.HTML_FILE,"isfile"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_DIR,"isdir"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean);let t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return mt.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH+"x"+mt.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT+{isfile:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,isdir:mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},wn={init:function(){this.setColour(0),this.appendValueInput("SPISUB").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(mt.Msg.MIXLY_SD_CARD),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},kn={init:function(){this.setColour(0),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_SD_CARD),this.appendValueInput("DIR").setCheck(String).appendField(mt.Msg.MIXLY_SDCARD_MOUNT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip()}},Hn={};Hn.NAME_TYPE=mt.PROCEDURE_CATEGORY_NAME,Hn.allProcedures=function(t){for(var e=t.getAllBlocks(!1),i=[],n=[],s=0;s"),this.appendValueInput("style").appendField(mt.Msg.MIXLY_AIP_ATTR).setAlign(mt.inputs.Align.RIGHT),this.appendStatementInput("DO").appendField(""),this.setInputsInline(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Bs={init:function(){this.setColour(Ys),this.appendDummyInput().appendField(mt.Msg.HTML_STYLE),this.appendStatementInput("STYLE"),this.setOutput(!0)}},Gs={init:function(){this.setColour(Ys),this.appendDummyInput().appendField(mt.Msg.HTML_FORM_CONTENT).appendField(new mt.FieldDropdown([[mt.Msg.HTML_TEXT,"text"],[mt.Msg.HTML_EMAIL,"email"],[mt.Msg.HTML_NUMBER,"number"],[mt.Msg.HTML_PASSWORD,"password"],[mt.Msg.HTML_CHECKBOX,"checkbox"],[mt.Msg.HTML_RADIOBUTTON,"radiobutton"],[mt.Msg.HTML_BUTTON,"button"],[mt.Msg.HTML_COLOUR,"colour"],[mt.Msg.HTML_DATE,"date"],[mt.Msg.HTML_LOCALTIME,"local time"],[mt.Msg.HTML_FILE,"file"],[mt.Msg.HTML_HIDDEN,"hidden"],[mt.Msg.HTML_IMAGE,"image"],[mt.Msg.HTML_MONTH,"month"],[mt.Msg.HTML_RANGE,"range"],[mt.Msg.HTML_RESET,"reset"],[mt.Msg.HTML_SEARCH,"search"],[mt.Msg.HTML_SUBMIT,"submit"],[mt.Msg.HTML_TELEPHONENUMBER,"telephone number"],[mt.Msg.HTML_TIME,"time"],[mt.Msg.HTML_URL,"url"],[mt.Msg.HTML_WEEK,"week"]]),"LEVEL"),this.appendDummyInput().appendField(mt.Msg.HTML_NAME).appendField(new mt.FieldTextInput("car"),"NAME"),this.appendDummyInput().appendField(mt.Msg.HTML_VALUE).appendField(new mt.FieldTextInput("go"),"VALUE"),this.appendValueInput("style").appendField(mt.Msg.MIXLY_AIP_ATTR).setAlign(mt.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Us={init:function(){this.setColour(Ys),this.appendDummyInput().appendField(new mt.FieldTextInput("property"),"KEY").appendField(":").appendField(new mt.FieldTextInput("value"),"VALUE"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},ws={init:function(){this.setColour(Ys),this.appendDummyInput().appendField(new mt.FieldTextInput("property"),"KEY").appendField(":").appendField(new mt.FieldColour("#ff0000"),"RGB_LED_COLOR"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},ks={init:function(){this.setColour(Ys),this.appendDummyInput().appendField(mt.Msg.HTML_TEXT).appendField(new mt.FieldTextInput("text"),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Hs=160,Ws={init:function(){this.setColour(Hs),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Tabular Abstraction:"),this.appendDummyInput().appendField(new mt.FieldTable(""),"TEXT")}},Ks={init:function(){this.setColour(Hs),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Code Block:"),this.appendDummyInput().appendField(new mt.FieldMultilineInput(""),"TEXT")}},Js={init:function(){this.setColour(Hs),this.appendDummyInput().appendField("Code Expression:"),this.appendDummyInput().appendField(new mt.FieldMultilineInput(""),"TEXT"),this.setOutput(!0)}},Qs={init:function(){this.setColour(Hs),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("VALUE").appendField(""),this.setInputsInline(!1)}},zs={init:function(){this.setColour(Hs),this.appendDummyInput().appendTitle("Comment:").appendTitle(new mt.FieldTextInput(""),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("This comment will be ignored by Python")}},qs={init:function(){this.setColour(Hs),this.appendValueInput("VALUE").appendField(mt.Msg.TYPE_CHECK),this.setInputsInline(!1),this.setOutput(!0,"Type")}},js={init:function(){this.setColour(Hs),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new mt.icons.MutatorIcon(["text_print_multiple_item"],this)),this.setTooltip(mt.Msg.TEXT_PRINT_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=mt.Block.obtain(t,"text_print_multiple_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n= stop:"," yield start"," start -= abs(step)"])};if(t=function(t,e,i){return"("+t+" <= "+e+") and "+p()+"("+t+", "+e+", "+i+") or "+u()+"("+t+", "+e+", "+i+")"},mt.isNumber(n)&&mt.isNumber(s)&&mt.isNumber(o))n=parseFloat(n),s=parseFloat(s),o=Math.abs(parseFloat(o)),0==n%1&&0==s%1&&0==o%1?(n<=s?(s++,t=0==n&&1==o?s:n+", "+s,1!=o&&(t+=", "+o)):t=n+", "+--s+", -"+o,t="range("+t+")"):(t=n",GTE:">="};const xa=function(t,e){var i=this.getFieldValue("OP"),n="&&"==i?e.ORDER_LOGICAL_AND:e.ORDER_LOGICAL_OR,s=e.valueToCode(this,"A",n)||"False",o=e.valueToCode(this,"B",n)||"False";if("AND"==i)var _=s+" and "+o;else if("OR"==i)_=s+" or "+o;else if("NOR"==i)_="not("+s+"^"+o+")";else _=s+"^"+o;return[_,n]},Xa=function(t,e){var i=e.ORDER_UNARY_PREFIX;return["not "+(e.valueToCode(this,"BOOL",i)||"False"),i]},ba=function(t,e){return["TRUE"==this.getFieldValue("BOOL")?"True":"False",e.ORDER_ATOMIC]},ya=function(t,e){return["None",e.ORDER_ATOMIC]},Va=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"False";return["("+(e.valueToCode(this,"B",e.ORDER_ATOMIC)||"False")+" if "+i+" else "+(e.valueToCode(this,"C",e.ORDER_ATOMIC)||"False")+")",e.ORDER_ATOMIC]},Ba=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",n=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[i+" "+this.getFieldValue("BOOL")+" "+n,e.ORDER_ATOMIC]},Ga=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",n=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[i+" "+this.getFieldValue("BOOL")+" "+n,e.ORDER_ATOMIC]},Ua=function(t,e){return["bool("+(e.valueToCode(this,"VAR",e.ORDER_ATOMIC)||"0")+")",e.ORDER_ATOMIC]},wa=function(t,e){return e.definitions_.import_os="import os","os.startfile("+e.valueToCode(this,"fn",e.ORDER_ATOMIC)+")\n"},ka=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+" = open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')\n"},Ha=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')",e.ORDER_ATOMIC]},Wa=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"', encoding=\""+this.getFieldValue("CODE")+'")',e.ORDER_ATOMIC]},Ka=function(t,e){var i=e.valueToCode(this,"data",e.ORDER_ATOMIC);return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".write("+i+")\n"},Ja=function(t,e){var i=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+i+"()",e.ORDER_ATOMIC]},Qa=function(t,e){var i=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+i+"("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},za=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".readline("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},qa=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".writable()",e.ORDER_ATOMIC]},ja=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".name()",e.ORDER_ATOMIC]},Za=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".close()\n"},$a=function(t,e){e.definitions_.import_os="import os";return["os.listdir()",e.ORDER_ATOMIC]},tp=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},ep=function(t,e){return e.definitions_.import_os="import os",["os.path.getsize("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},ip=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".tell()",e.ORDER_ATOMIC]},np=function(t,e){var i=this.getFieldValue("MODE"),n=0;return n="start"==i?0:"current"==i?1:2,e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".seek("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+","+n+")\n"},sp=function(t,e){return e.definitions_.import_os="import os","os.chdir("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},op=function(t,e){e.definitions_.import_os="import os";return["os.getcwd()",e.ORDER_ATOMIC]},_p=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"PATH",e.ORDER_ATOMIC)+")\n"},ap=function(t,e){return e.definitions_.import_os="import os","os.rename("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+","+e.valueToCode(this,"NEWFILE",e.ORDER_ATOMIC)+")\n"},pp=function(t,e){e.definitions_.import_os="import os";var i=e.valueToCode(this,"FILE",e.ORDER_ATOMIC);return["os."+this.getFieldValue("MODE")+"("+i+")",e.ORDER_ATOMIC]},up=function(t,e){return e.definitions_.import_os="import os",e.definitions_.import_sdcard="import sdcard",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+" = sdcard.SDCard("+e.valueToCode(this,"SPISUB",e.ORDER_ATOMIC)+","+e.valueToCode(this,"PINSUB",e.ORDER_ATOMIC)+")\n"},rp=function(t,e){return e.definitions_.import_os="import os",e.definitions_.import_sdcard="import sdcard","os.mount("+e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+","+e.valueToCode(this,"DIR",e.ORDER_ATOMIC)+")\n"},lp=function(t,e){var i=e.variableDB_.getName(this.getFieldValue("NAME"),mt.Procedures.NAME_TYPE),n=e.statementToCode(this,"STACK")||" pass\n";e.INFINITE_LOOP_TRAP&&(n=e.INFINITE_LOOP_TRAP.replace(/%1/g,"'"+this.id+"'")+n);var s=e.valueToCode(this,"RETURN",e.ORDER_NONE)||"";s&&(s=" return "+s+"\n");for(var o=[],_=0;_\n\n\n\t\n"+e.statementToCode(this,"HEAD")+"\n\n"+e.statementToCode(this,"BODY")+"\n\n'''",e.ORDER_ATOMIC]},Wp=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");return"\n"+i+"\n"},Kp=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");if("head"==n)var s="<"+n+'>\n\t\n'+i+"\n";else s="<"+n+">\n"+i+"\n";return s},Jp=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");return"<"+n+">\n"+i+"\n"},Qp=function(t,e){var i=e.statementToCode(this,"DO"),n=e.valueToCode(this,"style"),s=this.getFieldValue("LEVEL");return"<"+s+" "+n+" >\n"+i+"\n"},zp=function(t,e){return['style="'+e.statementToCode(this,"STYLE")+'"',e.ORDER_ATOMIC]},qp=function(t,e){return'"},jp=function(){return this.getFieldValue("KEY")+":"+this.getFieldValue("VALUE")+";"},Zp=function(){return this.getFieldValue("TEXT")+"\n"},$p=function(t){return t.getFieldValue("TEXT")+"\n"},tu=function(t,e){return[t.getFieldValue("TEXT"),e.ORDER_ATOMIC]},eu=function(t,e){return(e.valueToCode(t,"VALUE",e.ORDER_ATOMIC)||"")+"\n"},iu=function(){return""},nu=function(t,e){return["type("+(e.valueToCode(t,"VALUE",e.ORDER_MEMBER)||"___")+")",e.ORDER_ATOMIC]},su=function(t,e){for(var i=t.getFieldValue("NAME"),n=t.hasReturn_,s=new Array(t.itemCount_),o=0;o0?e.join("\n")+"\n"+n.join("\n")+"\n"+s.join("")+"\n"+t+"while True:\n"+o.join("")+_.join("\n"):e.join("\n")+"\n"+n.join("\n")+"\n"+s.join("")+"\n"+t+_.join("\n")},_u.scrubNakedValue=function(t){return t+"\n"},_u.quote_=function(t){var e="'";return-1!==(t=t.replace(/\\/g,"\\\\").replace(/\n/g,"\\\n")).indexOf("'")&&(-1===t.indexOf('"')?e='"':t=t.replace(/'/g,"\\'")),e+t+e},_u.multiline_quote_=function(t){return"'''"+(t=t.replace(/'''/g,"\\'\\'\\'"))+"'''"},_u.scrub_=function(t,e,i){var n="";if(!t.outputConnection||!t.outputConnection.targetConnection){(o=t.getCommentText())&&(o=mt.utils.string.wrap(o,_u.COMMENT_WRAP-3),n+=_u.prefixLines(o+"\n","# "));for(var s=0;s0?"int("+a+" + "+s+")":s<0?"int("+a+" - "+-s+")":"int("+a+")",n&&(a="-"+a)),a};const au="#74A55B",pu={init:function(){this.setColour(au),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MIDI),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_SETUP).setCheck("var"),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_RGB_PIN_COUNT)}},uu={init:function(){this.setColour(au),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(mt.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},ru={init:function(){this.setColour(au),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(mt.Msg.MIXLY_FREQUENCY),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_DURATION),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE2)}},lu={init:function(){this.setColour(au),this.appendValueInput("SUB"),this.appendValueInput("LIST").appendField(mt.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS)}},du={init:function(){this.setColour(au),this.appendValueInput("SUB"),this.appendValueInput("TICKS").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_SET_TEMPO).appendField(mt.Msg.MICROBIT_ACTUATOR_ticks),this.appendValueInput("BPM").setCheck(Number).appendField(mt.Msg.MIXLY_SPEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_SET_TEMPO)}},Iu={init:function(){this.setColour(au),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Get_current_tempo),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_GET_TEMPO)}},Tu={init:function(){this.setColour(au),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Reset_music),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_RESET)}},hu={init:function(){this.setColour(au),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Mu={init:function(){this.setColour(au),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING).appendField(mt.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_EXTERN_LED_SETONOFF)}},mu={init:function(){this.setColour(au),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(mt.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_EXTERN_LED_GETONOFF)}},Ou={init:function(){this.setColour(au),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(mt.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_EXTERN_LED_GETONOFF)}},Eu={init:function(){this.setColour(au),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING).appendField(mt.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_EXTERN_LED_SETBRIGHT)}},Ru={init:function(){this.setColour(au),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.MIXLY_SERVO),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},cu={init:function(){this.setColour(au),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_SERVO).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("DEGREE",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_DEGREE_0_180),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SERVO_MOVE)}},gu={init:function(){this.setColour(au),this.appendValueInput("VAR").appendField("360°"+mt.Msg.MIXLY_SERVO),this.appendValueInput("SPEED",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SETTING+mt.Msg.blockpy_turtle_rotate+mt.Msg.MIXLY_SPEED+" (-10~10)"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SERVO_360_TOOLTIP)}},Cu={init:function(){this.setColour(au),this.appendValueInput("PIN",Number).appendField("180°"+mt.Msg.MIXLY_SERVO).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SERVO_MOVE)}},Su={init:function(){this.setColour(au),this.appendValueInput("PIN",Number).appendField("360°"+mt.Msg.MIXLY_SERVO).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SERVO_SPEED_TOOLIPS)}},Au={init:function(){this.setColour(au),this.appendValueInput("PIN",Number).appendField("180°"+mt.Msg.MIXLY_SERVO).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setOutput(!0,Number),this.setInputsInline(!0)}},Lu={init:function(){this.setColour(au),this.appendValueInput("PIN",Number).appendField("360°"+mt.Msg.MIXLY_SERVO).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},Nu={init:function(){this.setColour(au),this.appendValueInput("SUB").appendField("初始化").setCheck("var"),this.appendDummyInput().appendField("电机驱动"),this.appendDummyInput().appendField("地址").appendField(new mt.FieldDropdown([["A","ms32006.ADDRESS_A"],["B","ms32006.ADDRESS_B"]]),"mode"),this.appendValueInput("SUB1").setCheck("var").setAlign(mt.inputs.Align.RIGHT).appendField("通信"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("初始化MS32006电机驱动,使用I2C通信")}},Du={init:function(){this.setColour(au),this.appendValueInput("SUB").appendField("直流电机").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Direction).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"ms32006.MOT_CW"],[mt.Msg.ANTI_CLOCKWISE,"ms32006.MOT_CCW"],[mt.Msg.MOTOR_N,"ms32006.MOT_N"],[mt.Msg.MOTOR_P,"ms32006.MOT_P"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEPPER_SET_SPEED),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("设置直流电机的状态及转速(0-100)")}},fu={init:function(){this.setColour(au),this.appendValueInput("SUB").appendField("步进电机").setCheck("var"),this.appendDummyInput().appendField("选择").appendField(new mt.FieldDropdown([["A","ms32006.MOT_A"],["B","ms32006.MOT_B"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Direction).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"ms32006.MOT_CW"],[mt.Msg.ANTI_CLOCKWISE,"ms32006.MOT_CCW"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField("转速"),this.appendValueInput("steps").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField("步数"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("设置步进电机的状态、转速、步数(0-2047)")}},Fu={init:function(){this.setColour(au),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_SETUP).setCheck("var"),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PIN),this.appendValueInput("LEDCOUNT").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_COUNT),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_RGB_PIN_COUNT)}},Pu={init:function(){this.setColour(au),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("_LED_").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MP)}},vu={init:function(){this.setColour(au),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},Yu={init:function(){this.setColour(au),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_RGB_WRITE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_WRI)}},xu={init:function(){this.setColour(au),this.appendDummyInput("").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"uart").appendField(new mt.FieldDropdown([["uart1","uart1"],["uart2","uart2"]]),"key"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.LISTS_SET_INDEX_INPUT_TO+"SYN6288"+mt.Msg.MIXLY_AipSpeech_synthesis),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setFieldValue("LTR308","key")}},Xu={init:function(){this.setColour(au),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("VOICE").setCheck(Number).appendField(mt.Msg.MIXLY_SET_VOLUME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_SET_VOLUME_TOOLTIP)}},bu={init:function(){this.setColour(au),this.appendValueInput("SUB").appendField("SYN6288"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_VOLUME),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_SET_VOLUME_TOOLTIP)}},yu={init:function(){this.setColour(au),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("VOICE").setCheck(Number).appendField(mt.Msg.MIXLY_PLAY_HINTS),this.appendDummyInput().appendField(mt.Msg.MIXLY_PROGRAM_BLOCK).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"mode"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_PLAY_HINTS_TOOLTIP)}},Vu={init:function(){this.setColour(au),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_AipSpeech_synthesis),this.appendValueInput("VOICE").setCheck(Number).appendField(mt.Msg.MIXLY_BACKGROUND_MUSIC),this.appendDummyInput().appendField(mt.Msg.MIXLY_PROGRAM_BLOCK).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"mode"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_PLAY_TTS_TOOLTIP)}},Bu={init:function(){this.setColour(au),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.extern_addr),"PIN"),this.setOutput(!0,Number)}},Gu={init:function(){this.setColour(au),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_MOTOR).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_MOTOR_EXTERN_TOOLTIP)}},Uu={init:function(){this.setColour(au),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_MOTOR).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},wu={init:function(){this.setColour(au),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_TRAFFIC_LIGHT).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LISTS_SET_INDEX_SET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_Turn_off_display,"0"],[mt.Msg.MIXLY_TRAFFIC_LIGHT_RED_ON,"1"],[mt.Msg.MIXLY_TRAFFIC_LIGHT_RED_BLINK,"2"],[mt.Msg.MIXLY_TRAFFIC_LIGHT_YELLOW_ON,"3"],[mt.Msg.MIXLY_TRAFFIC_LIGHT_YELLOW_BLINK,"4"],[mt.Msg.MIXLY_TRAFFIC_LIGHT_GREEN_ON,"5"],[mt.Msg.MIXLY_TRAFFIC_LIGHT_GREEN_BLINK,"6"]]),"light"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},ku={init:function(){this.setColour(au),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN).appendField(new mt.FieldDropdown([[mt.Msg.COLOUR_RGB_WHITE,"W"],[mt.Msg.COLOUR_RGB_RED,"R"],[mt.Msg.COLOUR_RGB_YELLOW,"Y"],[mt.Msg.COLOUR_RGB_GREEN,"G"],[mt.Msg.COLOUR_RGB_BLUE,"B"]]),"color").appendField("LED").appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendValueInput("value").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.BRIGHTNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Hu={init:function(){this.setColour(au),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN).appendField(new mt.FieldDropdown([[mt.Msg.COLOUR_RGB_WHITE,"W"],[mt.Msg.COLOUR_RGB_RED,"R"],[mt.Msg.COLOUR_RGB_YELLOW,"Y"],[mt.Msg.COLOUR_RGB_GREEN,"G"],[mt.Msg.COLOUR_RGB_BLUE,"B"]]),"color").appendField("LED").appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.BRIGHTNESS),this.setOutput(!0,Number),this.setInputsInline(!0)}},Wu={init:function(){this.setColour(au),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"[0]"],[mt.Msg.MIXLY_SPEED,"[1]"],[mt.Msg.MATH_SINGLE_OP_ABSOLUTE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"[2]"],[mt.Msg.MIXLY_RELATIVE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"[3]"],[mt.Msg.MIXLY_MIXBOT_SERVO_BLOCK_OR_NOT,"[4]"],[mt.Msg.MIXLY_MIXBOT_SERVO_FINISH_OR_NOT,"[5]"],[mt.Msg.MIXLY_ALL,""]]),"status"),this.setOutput(!0,Number),this.setInputsInline(!0)}},Ku={init:function(){this.setColour(au),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_SERVO_SET_STOP_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_KEEP,"0"],[mt.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_COAST,"1"],[mt.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_BRAKE,"2"]]),"status"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Ju={init:function(){this.setColour(au),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_STOP),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Qu={init:function(){this.setColour(au),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.MATH_SINGLE_OP_ABSOLUTE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+mt.Msg.MSG.run).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MODE).setAlign(mt.inputs.Align.RIGHT).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_SPEED+mt.Msg.MIXLY_MODE,"0"],[mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER+mt.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField("%"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_SERVO_TURN_DIRECTION).setAlign(mt.inputs.Align.RIGHT).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"0"],[mt.Msg.MIXLY_MIXBOT_SERVO_NEAREST_PATH,"1"],[mt.Msg.ANTI_CLOCKWISE,"2"]]),"direction"),this.appendValueInput("angle").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_DISPLAY_MATRIX_ROTATE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_SERVO_ABSOLUTE_ANGLE_TOOLTIP)}},zu={init:function(){this.setColour(au),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.MIXLY_RELATIVE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+mt.Msg.MSG.run).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_SERVO_RELATIVE_ORIGIN_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},qu={init:function(){this.setColour(au),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.MIXLY_RELATIVE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+mt.Msg.MSG.run).appendField("("+mt.Msg.MIXLY_MIXBOT_SERVO_LIKE_ENCODING_MOTOR+")").appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MODE).setAlign(mt.inputs.Align.RIGHT).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_SPEED+mt.Msg.MIXLY_MODE,"0"],[mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER+mt.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField("%"),this.appendValueInput("angle").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_DISPLAY_MATRIX_ROTATE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_SERVO_RELATIVE_ANGLE_TOOLTIP)}},ju={init:function(){this.setColour(au),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.MIXLY_RELATIVE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+mt.Msg.MSG.run).appendField("("+mt.Msg.MIXLY_MIXBOT_SERVO_LIKE_ORDINARY_MOTOR+")").appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MODE).setAlign(mt.inputs.Align.RIGHT).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_SPEED+mt.Msg.MIXLY_MODE,"0"],[mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER+mt.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField("%"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_SERVO_TURN_DIRECTION).setAlign(mt.inputs.Align.RIGHT).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"0"],[mt.Msg.ANTI_CLOCKWISE,"2"]]),"direction"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Zu={init:function(){this.setColour(au),this.appendDummyInput().appendField(mt.Msg.MIXBOT).appendField(mt.Msg.ME_GO_MOTOR_EXTERN).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MOTOR,"ext_motor"],[mt.Msg.MIXLY_TRAFFIC_LIGHT,"ext_traffic"],[mt.Msg.COLOUR_RGB_WHITE+"LED","W_LED"],[mt.Msg.COLOUR_RGB_RED+"LED","R_LED"],[mt.Msg.COLOUR_RGB_YELLOW+"LED","Y_LED"],[mt.Msg.COLOUR_RGB_GREEN+"LED","G_LED"],[mt.Msg.COLOUR_RGB_BLUE+"LED","B_LED"],[mt.Msg.MIXLY_SERVO_MOTOR,"ext_servo"]]),"name"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_EXTERN_GET_ADDR),this.setOutput(!0),this.setInputsInline(!0)}},$u={init:function(){this.setColour(au),this.appendDummyInput().appendField(mt.Msg.MIXBOT).appendField(mt.Msg.ME_GO_MOTOR_EXTERN).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MOTOR,"ext_motor"],[mt.Msg.MIXLY_TRAFFIC_LIGHT,"ext_traffic"],[mt.Msg.COLOUR_RGB_WHITE+"LED","W_LED"],[mt.Msg.COLOUR_RGB_RED+"LED","R_LED"],[mt.Msg.COLOUR_RGB_YELLOW+"LED","Y_LED"],[mt.Msg.COLOUR_RGB_GREEN+"LED","G_LED"],[mt.Msg.COLOUR_RGB_BLUE+"LED","B_LED"],[mt.Msg.MIXLY_SERVO_MOTOR,"ext_servo"]]),"name"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_EXTERN_SET_ADDR),this.appendValueInput("old").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE),this.appendValueInput("new").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_UPDATE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},tr="#6C9858",er={init:function(){this.setColour(tr),this.appendDummyInput("").appendField(new mt.FieldDropdown([["L1","1"],["L2","2"]]),"op"),this.setOutput(!0)}},ir={init:function(){this.setColour(tr),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_ESP32_ON,"1"],[mt.Msg.MIXLY_ESP32_OFF,"0"],[mt.Msg.MIXLY_ESP32_TOGGLE,"-1"]]),"flag"),this.setOutput(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW)}},nr={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(mt.Msg.MIXLY_BUILDIN_LED),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_SETONOFF)}},sr={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("led").appendField(mt.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput().appendField(mt.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},or={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("led").appendField(mt.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput().appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},_r={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(mt.Msg.MIXLY_BUILDIN_LED),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_SETTING+mt.Msg.MIXLY_BUILDIN_LED+mt.Msg.MIXLY_BRIGHTNESS+"(0-100%)")}},ar={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(mt.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput("").appendField(mt.Msg.MIXLY_LCD_SETCOLOR).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LIGHT_OFF,"0"],[mt.Msg.MIXLY_LIGHT_RED,"1"],[mt.Msg.MIXLY_LIGHT_GREEN,"2"],[mt.Msg.MIXLY_LIGHT_BLUE,"3"],[mt.Msg.MIXLY_LIGHT_YELLOW,"4"],[mt.Msg.MIXLY_LIGHT_CYAN,"5"],[mt.Msg.MIXLY_LIGHT_PURPLE,"6"],[mt.Msg.MIXLY_LIGHT_WHITE,"7"]]),"colorvalue"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip()}},pr={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING).appendField(mt.Msg.MIXLY_BUILDIN_LED).appendField(new mt.FieldDropdown([[mt.Msg.COLOUR_RGB_RED,"r"],[mt.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_SETONOFF)}},ur={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(mt.Msg.MIXLY_BUILDIN_LED).appendField(new mt.FieldDropdown([[mt.Msg.COLOUR_RGB_RED,"r"],[mt.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendDummyInput().appendField(mt.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},rr={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(mt.Msg.MIXLY_BUILDIN_LED).appendField(new mt.FieldDropdown([[mt.Msg.COLOUR_RGB_RED,"r"],[mt.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendDummyInput().appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},lr={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING).appendField(mt.Msg.MIXLY_BUILDIN_LED).appendField(new mt.FieldDropdown([[mt.Msg.COLOUR_RGB_RED,"r"],[mt.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_SETTING+mt.Msg.MIXLY_BUILDIN_LED+mt.Msg.MIXLY_BRIGHTNESS+"(0-10)")}},dr={init:function(){this.setColour(tr),this.appendDummyInput("").appendField(new mt.FieldDropdown([["L1","20"],["L2","21"]]),"op"),this.setOutput(!0)}},Ir={init:function(){this.setColour(tr),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("_LED_").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);switch(Ot.Boards.getSelectedBoardKey()){case"micropython:esp32c3:mixgo_cc":case"micropython:esp32s2:mixgo_ce":this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOCC);break;case"micropython:esp32c3:mixgo_me":default:this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOME);break;case"micropython:esp32:mPython":this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MPYTHON)}}},Tr={init:function(){this.setColour(tr),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},hr={init:function(){this.setColour(tr),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RAINBOW),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_DURATION).appendField(mt.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},Mr={init:function(){this.setColour(tr),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(mt.Msg.MIXLY_CHASE),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.PYTHON_RANGE_STEP).appendField(mt.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},mr={init:function(){this.setColour(tr),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_RGB_WRITE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_WRI)}},Or={init:function(){this.setColour(tr),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("_LED_").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);switch(Ot.Boards.getSelectedBoardKey()){case"micropython:esp32c3:mixgocc":this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOCC);break;case"micropython:esp32c3:mixgome":default:this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOME);break;case"micropython:esp32:mPython":this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MPYTHON)}}},Er={init:function(){this.setColour(tr),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},Rr={init:function(){this.setColour(tr),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(mt.Msg.MIXLY_CHASE),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.PYTHON_RANGE_STEP).appendField(mt.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},cr={init:function(){this.setColour(tr),this.appendValueInput("TICKS").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_SET_TEMPO).appendField(mt.Msg.MICROBIT_ACTUATOR_ticks),this.appendValueInput("BPM").setCheck(Number).appendField(mt.Msg.MIXLY_SPEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_SET_TEMPO)}},gr={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Get_current_tempo),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_GET_TEMPO)}},Cr={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Reset_music),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_RESET)}},Sr={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(mt.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},Ar={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(mt.Msg.MIXLY_FREQUENCY),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_DURATION),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE2)}},Lr={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Nr={init:function(){this.setColour(tr),this.appendValueInput("LIST").appendField(mt.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS)}},Dr={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MOTOR_DC).appendField(new mt.FieldDropdown([["1","1"],["2","2"],["3","3"]]),"wheel"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Direction).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"CW"],[mt.Msg.ANTI_CLOCKWISE,"CCW"],[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},fr={init:function(){this.setColour(tr),this.appendDummyInput().appendField("MixGo Car").appendField(new mt.FieldDropdown([[mt.Msg.blockpy_forward,"F"],[mt.Msg.blockpy_backward,"B"],[mt.Msg.blockpy_left,"L"],[mt.Msg.blockpy_right,"R"]]),"VAR"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Fr={init:function(){this.setColour(tr),this.appendDummyInput("").appendField("MixGo Car").appendField(new mt.FieldDropdown([[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"VAR"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},Pr={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MOTOR_DC).appendField(new mt.FieldDropdown([[mt.Msg.MIXLYCAR_WHEEL_LEFT,"L"],[mt.Msg.MIXLYCAR_WHEEL_RIGHT,"R"]]),"wheel"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Direction).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"CW"],[mt.Msg.ANTI_CLOCKWISE,"CCW"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},vr={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MOTOR_DC).appendField(new mt.FieldDropdown([[mt.Msg.MIXLYCAR_WHEEL_LEFT,"L"],[mt.Msg.MIXLYCAR_WHEEL_RIGHT,"R"]]),"wheel"),this.appendDummyInput().appendField(mt.Msg.MIXLY_STOP).appendField(new mt.FieldDropdown([[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"direction"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Yr={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_MOTOR_STATUS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_MOTOR_STATUS_TOOLTIP)}},xr={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MIXBOT).appendField(new mt.FieldDropdown([[mt.Msg.blockpy_forward,"F"],[mt.Msg.blockpy_backward,"B"],[mt.Msg.blockpy_left,"L"],[mt.Msg.blockpy_right,"R"]]),"VAR"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"PWR"],[mt.Msg.MIXLY_SPEED,"SPEED"],[mt.Msg.MIXLY_MIXBOT_MOTOR_TURNS,"TURNS"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_MOVE_TOOLTIP)}},Xr={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MIXBOT).appendField(new mt.FieldDropdown([[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"VAR"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},br={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MIXBOT).appendField(mt.Msg.MIXLY_MOTOR).appendField(new mt.FieldDropdown([[mt.Msg.TEXT_TRIM_LEFT,"1"],[mt.Msg.TEXT_TRIM_RIGHT,"2"],[mt.Msg.TEXT_TRIM_BOTH,"0"]]),"wheel"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"PWR"],[mt.Msg.MIXLY_SPEED,"SPEED"],[mt.Msg.MIXLY_MIXBOT_MOTOR_TURNS,"TURNS"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_MOVE_TOOLTIP)}},yr={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_BUZZER),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_ON,"0"],[mt.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_OFF,"1"]]),"on_off"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Vr={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.BITBOT).appendField(new mt.FieldDropdown([[mt.Msg.blockpy_forward,"F"],[mt.Msg.blockpy_backward,"B"],[mt.Msg.blockpy_left,"L"],[mt.Msg.blockpy_right,"R"]]),"VAR"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Br={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.BITBOT).appendField(new mt.FieldDropdown([[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"VAR"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Gr={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.BITBOT).appendField(mt.Msg.MIXLY_MOTOR).appendField(new mt.FieldDropdown([[mt.Msg.TEXT_TRIM_LEFT,"0"],[mt.Msg.TEXT_TRIM_RIGHT,"1"]]),"wheel"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Direction).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"CW"],[mt.Msg.ANTI_CLOCKWISE,"CCW"],[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Ur={init:function(){this.setColour(tr),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_MIXBOT_SOUND_SET_LOUDNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_SETONOFF)}},wr={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_SOUND_LOUDNESS+"(%)"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},kr={init:function(){this.setColour(tr),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_SETTING+mt.Msg.MIXLY_MIXBOT_BUZZER+mt.Msg.MIXLY_MP3_VOL),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_SETONOFF)}},Hr={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_MIXBOT_BUZZER+mt.Msg.MIXLY_MP3_VOL+"(%)"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},Wr={init:function(){this.setColour(tr),this.appendValueInput("PATH").appendField(mt.Msg.MIXLY_RECORD_AUDIO).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.appendValueInput("TIME").setCheck(Number).appendField(mt.Msg.MIXLY_GET_PRESSES_TIME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Kr={init:function(){this.setColour(tr),this.appendValueInput("PATH").appendField(mt.Msg.MIXLY_PLAY_AUDIO).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Jr={init:function(){this.setColour(tr),this.appendValueInput("PATH").appendField(mt.Msg.MIXLY_PLAY_ONLINE_AUDIO).appendField("URL"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Qr={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(mt.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},zr={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},qr={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.LISTS_SET_INDEX_SET+mt.Msg.ME_GO_MOTOR_EXTERN).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([["1","1"],["2","2"]]),"index"),this.appendValueInput("duty").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.blynk_IOT_IR_POWER+mt.Msg.MIXLY_PINMODEOUT),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip()}},jr={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.ME_GO_MOTOR_EXTERN).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([["1","1"],["2","2"]]),"index"),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.blynk_IOT_IR_POWER+mt.Msg.MIXLY_PINMODEOUT+mt.Msg.MIXLY_DUTY_RATIO),this.setOutput(!0,Number),this.setInputsInline(!0)}},Zr={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.LISTS_SET_INDEX_SET+mt.Msg.ME_GO_MOTOR_EXTERN).appendField(mt.Msg.MIXLY_ALL+mt.Msg.PIN_NUMBERING),this.appendValueInput("duty").setCheck(Number).setAlign(mt.ALIGN_RIGHT).appendField(mt.Msg.blynk_IOT_IR_POWER+mt.Msg.MIXLY_PINMODEOUT+mt.Msg.MIXLY_FREQUENCY),this.appendDummyInput().appendField("Hz"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_MOTOR_EXTERN_TOOLTIP)}},$r="#90A244",tl={init:function(){this.setColour($r),this.appendDummyInput("").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"uart").appendField(new mt.FieldDropdown([["uart1","uart1"],["uart2","uart2"]]),"key"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.LISTS_SET_INDEX_INPUT_TO+"MixGo AI"+mt.Msg.MSG.catSensor),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},el={init:function(){this.setColour($r),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_QR_CODE+mt.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ALL_CODE_ANALYSIS),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.OLED_STRING,"info1"],[mt.Msg.MIXLY_POSITION_XY+"-xywh","rect"],["x"+mt.Msg.MIXLY_POSITION_XY,"rect[0]"],["y"+mt.Msg.MIXLY_POSITION_XY,"rect[1]"],["w"+mt.Msg.MIXLY_POSITION_XY,"rect[2]"],["h"+mt.Msg.MIXLY_POSITION_XY,"rect[3]"],[mt.Msg.MICROPYTHON_HUSKYLENS_X_CENTERED+mt.Msg.MIXLY_POSITION_XY,"xc"],[mt.Msg.MICROPYTHON_HUSKYLENS_Y_CENTERED+mt.Msg.MIXLY_POSITION_XY,"yc"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_QR_CODE_TOOLTIP)}},il={init:function(){this.setColour($r),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_QR_CODE+mt.Msg.MIXPY_OBJECT,"qrcode"],[mt.Msg.MIXLY_BAR_CODE+mt.Msg.MIXPY_OBJECT,"barcode"],[mt.Msg.MIXLY_TAG+mt.Msg.MIXPY_OBJECT,"apriltag"]]),"TYPE"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ANALYSIS_RESULT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip()}},nl={init:function(){this.setColour($r),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.MIXLY_QR_CODE_RECOGNTITION),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.PROCEDURES_DEFRETURN_RETURN+"[qrcode]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_QR_CODE_RECOGNTITION_TOOLTIP)}},sl={init:function(){this.setColour($r),this.appendValueInput("SUB"),this.appendValueInput("RX").appendField(mt.Msg.MIXLY_SETTING+mt.Msg.MIXLY_ETHERNET_CLINET_PORT).appendField("RX#").setCheck(Number).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("TX").appendField("TX#").setCheck(Number).setAlign(mt.inputs.Align.RIGHT),this.appendDummyInput().appendField(mt.Msg.SOFT_RESET+mt.Msg.MIXLY_ESP32_RGB_WRITE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"mode"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_CONFIG_TOOLTIP)}},ol={init:function(){this.setColour($r),this.appendValueInput("SUB"),this.appendValueInput("led1").appendField(mt.Msg.MIXLY_SETTING).appendField("RGB1").setCheck(Number).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("led2").appendField("RGB2").setCheck(Number).setAlign(mt.inputs.Align.RIGHT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_CONFIG_TOOLTIP)}},_l={init:function(){this.setColour($r),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_BAR_CODE+mt.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ALL_CODE_ANALYSIS),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.OLED_STRING,"info1"],[mt.Msg.MIXLY_POSITION_XY+"-xywh","rect"],["x"+mt.Msg.MIXLY_POSITION_XY,"rect[0]"],["y"+mt.Msg.MIXLY_POSITION_XY,"rect[1]"],["w"+mt.Msg.MIXLY_POSITION_XY,"rect[2]"],["h"+mt.Msg.MIXLY_POSITION_XY,"rect[3]"],[mt.Msg.MICROPYTHON_HUSKYLENS_X_CENTERED+mt.Msg.MIXLY_POSITION_XY,"xc"],[mt.Msg.MICROPYTHON_HUSKYLENS_Y_CENTERED+mt.Msg.MIXLY_POSITION_XY,"yc"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_BAR_CODE_TOOLTIP)}},al={init:function(){this.setColour($r),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.MIXLY_BAR_CODE_RECOGNTITION),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.PROCEDURES_DEFRETURN_RETURN+"[barcode]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_BAR_CODE_RECOGNTITION_TOOLTIP)}},pl={init:function(){this.setColour($r),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_TAG+mt.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ALL_CODE_ANALYSIS),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.OLED_STRING,"info1"],[mt.Msg.blockpy_turtle_rotate+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"info2"],[mt.Msg.MIXLY_POSITION_XY+"-xywh","rect"],["x"+mt.Msg.MIXLY_POSITION_XY,"rect[0]"],["y"+mt.Msg.MIXLY_POSITION_XY,"rect[1]"],["w"+mt.Msg.MIXLY_POSITION_XY,"rect[2]"],["h"+mt.Msg.MIXLY_POSITION_XY,"rect[3]"],[mt.Msg.MICROPYTHON_HUSKYLENS_X_CENTERED+mt.Msg.MIXLY_POSITION_XY,"xc"],[mt.Msg.MICROPYTHON_HUSKYLENS_Y_CENTERED+mt.Msg.MIXLY_POSITION_XY,"yc"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_TAG_TOOLTIP)}},ul={init:function(){this.setColour($r),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.MIXLY_TAG_RECOGNTITION),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.PROCEDURES_DEFRETURN_RETURN+"[tag]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_TAG_RECOGNTITION_TOOLTIP)}},rl={init:function(){this.setColour($r),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_LINE+mt.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ALL_CODE_ANALYSIS),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LINE_ANGLE,"info1"],[mt.Msg.MIXLY_POSITION_XY+"-x1x2y1y2","rect"],["x1"+mt.Msg.MIXLY_POSITION_XY,"rect[0]"],["x2"+mt.Msg.MIXLY_POSITION_XY,"rect[1]"],["y1"+mt.Msg.MIXLY_POSITION_XY,"rect[2]"],["y2"+mt.Msg.MIXLY_POSITION_XY,"rect[3]"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_LINE_TOOLTIP)}},ll={init:function(){this.setColour($r),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.MIXLY_LINE_RECOGNTITION),this.appendValueInput("VAR1").appendField(mt.Msg.MIXLY_ESP32_THRESHOLD).setCheck(Number).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("VAR2").appendField(mt.Msg.MIXLY_LINE_RECOGNTITION_ANGLE).setCheck(Number).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("VAR3").appendField(mt.Msg.MIXLY_LINE_RECOGNTITION_SLOPE).setCheck(Number).setAlign(mt.inputs.Align.RIGHT),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.PROCEDURES_DEFRETURN_RETURN+"[line]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_LINE_RECOGNTITION_TOOLTIP)}},dl={init:function(){this.setColour($r),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_CIRCLE+mt.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ALL_CODE_ANALYSIS),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_CIRCLE_AREA,"info1"],[mt.Msg.MIXLY_POSITION_XY+"-xywh","rect"],["x"+mt.Msg.MIXLY_POSITION_XY,"rect[0]"],["y"+mt.Msg.MIXLY_POSITION_XY,"rect[1]"],["w"+mt.Msg.MIXLY_POSITION_XY,"rect[2]"],["h"+mt.Msg.MIXLY_POSITION_XY,"rect[3]"],[mt.Msg.MICROPYTHON_HUSKYLENS_X_CENTERED+mt.Msg.MIXLY_POSITION_XY,"xc"],[mt.Msg.MICROPYTHON_HUSKYLENS_Y_CENTERED+mt.Msg.MIXLY_POSITION_XY,"yc"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_CIRCLE_TOOLTIP)}},Il={init:function(){this.setColour($r),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.MIXLY_CIRCLE_RECOGNTITION),this.appendValueInput("VAR1").appendField(mt.Msg.MIXLY_ESP32_THRESHOLD).setCheck(Number).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("VAR2").appendField(mt.Msg.MIXLY_CIRCLE_RECOGNTITION_MIN).setCheck(Number).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("VAR3").appendField(mt.Msg.MIXLY_CIRCLE_RECOGNTITION_MAX).setCheck(Number).setAlign(mt.inputs.Align.RIGHT),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.PROCEDURES_DEFRETURN_RETURN+"[circle]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_CIRCLE_RECOGNTITION_TOOLTIP)}},Tl={init:function(){this.setColour($r),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_RECT+mt.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ALL_CODE_ANALYSIS),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_CIRCLE_AREA,"info1"],[mt.Msg.MIXLY_POSITION_XY+"-xywh","rect"],["x"+mt.Msg.MIXLY_POSITION_XY,"rect[0]"],["y"+mt.Msg.MIXLY_POSITION_XY,"rect[1]"],["w"+mt.Msg.MIXLY_POSITION_XY,"rect[2]"],["h"+mt.Msg.MIXLY_POSITION_XY,"rect[3]"],[mt.Msg.MICROPYTHON_HUSKYLENS_X_CENTERED+mt.Msg.MIXLY_POSITION_XY,"xc"],[mt.Msg.MICROPYTHON_HUSKYLENS_Y_CENTERED+mt.Msg.MIXLY_POSITION_XY,"yc"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_RECT_TOOLTIP)}},hl={init:function(){this.setColour($r),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.MIXLY_RECT_RECOGNTITION),this.appendValueInput("VAR1").appendField(mt.Msg.MIXLY_ESP32_THRESHOLD).setCheck(Number).setAlign(mt.inputs.Align.RIGHT),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.PROCEDURES_DEFRETURN_RETURN+"[rect]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_COLOR_RECOGNTITION_TOOLTIP)}},Ml={init:function(){this.setColour($r),this.appendValueInput("VAR").appendField(mt.Msg.HTML_COLOUR+mt.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_COLOR_ANALYSIS),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([["RGB"+mt.Msg.HTML_COLOUR,"[0]"],["LAB"+mt.Msg.MIXLY_COLOR_LAB,"[1]"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_COLOR_TOOLTIP)}},ml={init:function(){this.setColour($r),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.MIXLY_COLOR_RECOGNTITION),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.PROCEDURES_DEFRETURN_RETURN+"color"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_COLOR_RECOGNTITION_TOOLTIP)}},Ol={init:function(){this.setColour($r),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_COLOR_CHASE+mt.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_COLOR_CHASE_ANALYSIS),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_CIRCLE_AREA,"info1"],[mt.Msg.MIXLY_POSITION_XY+"-xywh","rect"],["x"+mt.Msg.MIXLY_POSITION_XY,"rect[0]"],["y"+mt.Msg.MIXLY_POSITION_XY,"rect[1]"],["w"+mt.Msg.MIXLY_POSITION_XY,"rect[2]"],["h"+mt.Msg.MIXLY_POSITION_XY,"rect[3]"],[mt.Msg.MICROPYTHON_HUSKYLENS_X_CENTERED+mt.Msg.MIXLY_POSITION_XY,"xc"],[mt.Msg.MICROPYTHON_HUSKYLENS_Y_CENTERED+mt.Msg.MIXLY_POSITION_XY,"yc"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_CIRCLE_TOOLTIP)}},El={init:function(){this.setColour($r),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.MIXLY_COLOR_CHASE),this.appendValueInput("VAR1").appendField("LAB"+mt.Msg.MIXLY_COLOR_LAB).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("VAR2").appendField(mt.Msg.MIXLY_ESP32_THRESHOLD).setCheck(Number).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("VAR3").appendField(mt.Msg.MIXLY_COLOR_CHASE_MERGE).setCheck(Number).setAlign(mt.inputs.Align.RIGHT),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.PROCEDURES_DEFRETURN_RETURN+"[colors]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_CIRCLE_RECOGNTITION_TOOLTIP)}},Rl={init:function(){this.setColour($r),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.MIXLY_LOCAL_TRAIN),this.appendValueInput("VAR1").appendField(mt.Msg.MIXLY_OBJECT_LIST).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("VAR2").appendField(mt.Msg.MICROPYTHON_HUSKYLENS_SAVE_AS+mt.Msg.MIXLY_MODEL_NAME).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("VAR3").appendField(mt.Msg.MIXLY_TRAIN_TIME).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("VAR4").appendField(mt.Msg.MIXLY_AipNlp_Topic_Title).setAlign(mt.inputs.Align.RIGHT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_LOCAL_TRAIN_TOOLTIP)}},cl={init:function(){this.setColour($r),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.MIXLY_LOCAL_CLASS),this.appendValueInput("VAR1").appendField(mt.Msg.MIXLY_OBJECT_LIST).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("VAR2").appendField(mt.Msg.MIXLY_MODEL_NAME).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("VAR4").appendField(mt.Msg.MIXLY_AipNlp_Topic_Title).setAlign(mt.inputs.Align.RIGHT),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.PROCEDURES_DEFRETURN_RETURN+"[objects]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_MODEL_NAME_TOOLTIP)}},gl={init:function(){this.setColour($r),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_LOCAL_CLASS+mt.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_COLOR_CHASE_ANALYSIS),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([["ID","info1"],[mt.Msg.MIXLY_CONFIDENCE_DEGREE,"info2"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_LOCAL_CLASS_TOOLTIP)}},Cl={init:function(){this.setColour($r),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MUSIC_RECORD),this.appendValueInput("VAR1").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("VAR2").appendField(mt.Msg.MIXPY_AI_AUDIO_TIME).setAlign(mt.inputs.Align.RIGHT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_MUSIC_RECORD_TOOLTIP)}},Sl={init:function(){this.setColour($r),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MUSIC_PLAY),this.appendValueInput("VAR1").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("VAR2").appendField(mt.Msg.MIXLY_MP3_VOL).setAlign(mt.inputs.Align.RIGHT),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Al={init:function(){this.setColour($r),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.MIXLY_YOLO_RECOGNIZE),this.appendValueInput("VAR1").appendField(mt.Msg.MIXLY_ANCHOR).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("VAR2").appendField(mt.Msg.MIXLY_MODEL_PATH).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("VAR4").appendField(mt.Msg.MIXLY_AipNlp_Topic_Title).setAlign(mt.inputs.Align.RIGHT),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.PROCEDURES_DEFRETURN_RETURN+"[objects]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_YOLO_RECOGNIZE_TOOLTIP)}},Ll={init:function(){this.setColour($r),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_YOLO_RECOGNIZE+mt.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_COLOR_CHASE_ANALYSIS),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([["ID","info1"],[mt.Msg.MIXLY_CONFIDENCE_DEGREE,"info2"],[mt.Msg.MIXLY_POSITION_XY+"-xywh","rect"],["x"+mt.Msg.MIXLY_POSITION_XY,"rect[0]"],["y"+mt.Msg.MIXLY_POSITION_XY,"rect[1]"],["w"+mt.Msg.MIXLY_POSITION_XY,"rect[2]"],["h"+mt.Msg.MIXLY_POSITION_XY,"rect[3]"],[mt.Msg.MICROPYTHON_HUSKYLENS_X_CENTERED+mt.Msg.MIXLY_POSITION_XY,"xc"],[mt.Msg.MICROPYTHON_HUSKYLENS_Y_CENTERED+mt.Msg.MIXLY_POSITION_XY,"yc"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_YOLO_RECOGNIZE_RESULT_TOOLTIP)}},Nl={init:function(){this.setColour($r),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.MIXLY_AipSpeech_asr),this.appendValueInput("VAR1").appendField(mt.Msg.MIXLY_AI_SENSOR_ASR_RECOGNISE_CORPUS).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("VAR2").appendField(mt.Msg.MIXLY_ESP32_THRESHOLD).setAlign(mt.inputs.Align.RIGHT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_ASR_RECOGNISE_TOOLTIP)}},Dl={init:function(){this.setColour($r),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_LICENSEPLATE+mt.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ALL_CODE_ANALYSIS),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([["ID","info1"],[mt.Msg.MIXLY_POSITION_XY+"-xywh","rect"],["x"+mt.Msg.MIXLY_POSITION_XY,"rect[0]"],["y"+mt.Msg.MIXLY_POSITION_XY,"rect[1]"],["w"+mt.Msg.MIXLY_POSITION_XY,"rect[2]"],["h"+mt.Msg.MIXLY_POSITION_XY,"rect[3]"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_LICENSEPLATE_TOOLTIP)}},fl={init:function(){this.setColour($r),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.MIXLY_AipOcr_licensePlate),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.PROCEDURES_DEFRETURN_RETURN+"[licensePlate]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_LICENSEPLATE_RECOGNTITION_TOOLTIP)}},Fl={init:function(){this.setColour($r),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_FACE+mt.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ALL_CODE_ANALYSIS),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([["ID","info1"],[mt.Msg.MIXLY_CONFIDENCE_DEGREE,"info2"],[mt.Msg.MIXLY_POSITION_XY+"-xywh","rect"],["x"+mt.Msg.MIXLY_POSITION_XY,"rect[0]"],["y"+mt.Msg.MIXLY_POSITION_XY,"rect[1]"],["w"+mt.Msg.MIXLY_POSITION_XY,"rect[2]"],["h"+mt.Msg.MIXLY_POSITION_XY,"rect[3]"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_FACE_TOOLTIP)}},Pl={init:function(){this.setColour($r),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.MIXLY_AipFace),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.PROCEDURES_DEFRETURN_RETURN+"[face]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_BAR_FACE_CLASSIFIER_TOOLTIP)}},vl={init:function(){this.setColour($r),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_20OBJECTS+mt.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ALL_CODE_ANALYSIS),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([["ID","info1"],[mt.Msg.MIXLY_CONFIDENCE_DEGREE,"info2"],[mt.Msg.MIXLY_POSITION_XY+"-xywh","rect"],["x"+mt.Msg.MIXLY_POSITION_XY,"rect[0]"],["y"+mt.Msg.MIXLY_POSITION_XY,"rect[1]"],["w"+mt.Msg.MIXLY_POSITION_XY,"rect[2]"],["h"+mt.Msg.MIXLY_POSITION_XY,"rect[3]"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_20OBJECTS_TOOLTIP)}},Yl={init:function(){this.setColour($r),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.MIXLY_FIND_20OBJECTS),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.PROCEDURES_DEFRETURN_RETURN+"[20objects]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_BAR_FIND_20OBJECTS_TOOLTIP)}},xl={init:function(){this.setColour(205),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_AipSpeech_asr,"ASR"],[mt.Msg.MIXLY_AI_UNIT,"UNIT"]]),"CTYPE"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_Client).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("API_KEY").appendField("API_KEY").setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("SECRET_KEY").appendField("SECRET_KEY").setAlign(mt.inputs.Align.RIGHT),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Xl={init:function(){this.setColour(205),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_AI_UNIT).appendField(mt.Msg.MIXLY_Client).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("ID").appendField("ID").setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("STR").appendField(mt.Msg.OLED_STRING).setAlign(mt.inputs.Align.RIGHT),this.setInputsInline(!0),this.setOutput(!0)}},bl={init:function(){this.setColour(205),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_AipSpeech_asr).appendField(mt.Msg.MIXLY_Client).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("FILE").appendField(mt.Msg.MIXPY_AI_AUDIO_TIME).setAlign(mt.inputs.Align.RIGHT),this.appendDummyInput("").appendField(mt.Msg.MIXLY_LANGUAGE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_AI_LANGUAGE_CHINESE,"1537"],[mt.Msg.MIXLY_AI_LANGUAGE_ENGLISH,"1737"],[mt.Msg.MIXLY_AI_LANGUAGE_CANTONESE,"1637"]]),"LANGUAGE"),this.setInputsInline(!0),this.setOutput(!0)}},yl="#2FAD7A",Vl={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:yl,helpUrl:mt.Msg.MPYTHON_BLYNK_TERMINAL_WIDGET_VPIN_HELPURL,tooltip:mt.Msg.MPYTHON_BLYNK_TERMINAL_WIDGET_VPIN_TOOLTIP,message0:mt.Msg.MPYTHON_BLYNK_TERMINAL_WIDGET_VPIN_MESSAGE0,args0:[{check:Number,type:"input_value",name:"virtual_pin"}]})}},Bl={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:yl,helpUrl:mt.Msg.MPYTHON_BLYNK_SYNC_VIRTUAL_HELPURL,tooltip:mt.Msg.MPYTHON_BLYNK_SYNC_VIRTUAL_TOOLTIP,message0:mt.Msg.MPYTHON_BLYNK_SYNC_VIRTUAL_MESSAGE0,args0:[{check:Number,type:"input_value",name:"virtual_pin"}]})}},Gl={init:function(){this.jsonInit({inputsInline:!0,colour:yl,helpUrl:mt.Msg.MPYTHON_BLYNK_ON_DISCONNECTED_HELPURL,tooltip:mt.Msg.MPYTHON_BLYNK_ON_DISCONNECTED_TOOLTIP,message0:mt.Msg.MPYTHON_BLYNK_ON_DISCONNECTED_MESSAGE0}),this.appendStatementInput("DO").appendField(mt.CONTROLS_REPEAT_INPUT_DO)}},Ul={init:function(){this.jsonInit({inputsInline:!0,colour:yl,helpUrl:mt.Msg.MPYTHON_BLYNK_ON_CONNECTED_HELPURL,tooltip:mt.Msg.MPYTHON_BLYNK_ON_CONNECTED_TOOLTIP,message0:mt.Msg.MPYTHON_BLYNK_ON_CONNECTED_MESSAGE0}),this.appendStatementInput("DO").appendField(mt.CONTROLS_REPEAT_INPUT_DO)}},wl={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:yl,helpUrl:mt.Msg.MPYTHON_BLYNKTIMER_RUN_HELPURL,tooltip:mt.Msg.MPYTHON_BLYNKTIMER_RUN_TOOLTIP,message0:mt.Msg.MPYTHON_BLYNKTIMER_RUN_MESSAGE0})}},kl={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:yl,helpUrl:mt.Msg.MPYTHON_BLYNK_RUN_HELPURL,tooltip:mt.Msg.MPYTHON_BLYNK_RUN_TOOLTIP,message0:mt.Msg.MPYTHON_BLYNK_RUN_MESSAGE0})}},Hl={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:yl,helpUrl:mt.Msg.MPYTHON_BLYNK_APP_NOTIFY_HELPURL,tooltip:mt.Msg.MPYTHON_BLYNK_APP_NOTIFY_TOOLTIP,message0:mt.Msg.MPYTHON_BLYNK_APP_NOTIFY_MESSAGE0,args0:[{check:String,type:"input_value",name:"notification"}]})}},Wl={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:yl,helpUrl:mt.Msg.MPYTHON_BLYNK_STOP_TIMERS_HELPURL,tooltip:mt.Msg.MPYTHON_BLYNKTIMER_TOOLTIP,message0:mt.Msg.MPYTHON_BLYNK_STOP_TIMERS_MESSAGE0,args0:[{check:Number,type:"input_value",name:"timer_num"}]})}},Kl={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:yl,helpUrl:mt.Msg.MPYTHON_BLYNK_SET_PROPERTY_HELPURL,tooltip:mt.Msg.MPYTHON_BLYNK_SET_PROPERTY_TOOLTIP,message0:mt.Msg.MPYTHON_BLYNK_SET_PROPERTY_MESSAGE0,args0:[{check:String,type:"input_value",name:"attribute_name"},{type:"input_value",name:"attribute_value"}]})}},Jl={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:yl,helpUrl:mt.Msg.MPYTHON_BLYNK_EMAIL_HELPURL,tooltip:mt.Msg.MPYTHON_BLYNK_EMAIL_TOOLTIP,message0:mt.Msg.MPYTHON_BLYNK_EMAIL_MESSAGE0,args0:[{check:String,type:"input_value",name:"TargetEmail"},{check:String,type:"input_value",name:"subject"},{check:String,type:"input_value",name:"body"}]})}},Ql={init:function(){this.jsonInit({inputsInline:!0,output:null,colour:yl,helpUrl:mt.Msg.MPYTHON_BLYNK_GET_TIMERS_HELPURL,tooltip:mt.Msg.MPYTHON_BLYNK_GET_TIMERS_TOOLTIP,message0:mt.Msg.MPYTHON_BLYNK_GET_TIMERS_MESSAGE0})}},zl={init:function(){this.jsonInit({message0:mt.Msg.MPYTHON_BLYNKTIMER_MESSAGE0,colour:yl,helpUrl:mt.Msg.MPYTHON_BLYNKTIMER_HELPURL,tooltip:mt.Msg.MPYTHON_BLYNKTIMER_TOOLTIP,args0:[{check:Number,type:"input_value",name:"Num"},{options:[[mt.Msg.MIXLY_PYTHON_PERIODIC,"False"],[mt.Msg.MIXLY_PYTHON_ONE_SHOT,"True"]],type:"field_dropdown",name:"Timer_mode"},{check:Number,type:"input_value",name:"period"}]}),this.appendStatementInput("DO").appendField(mt.CONTROLS_REPEAT_INPUT_DO)}},ql={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:yl,helpUrl:mt.Msg.MPYTHON_BLYNK_SENSOR_DATA_TO_APP_HELPURL,tooltip:mt.Msg.MPYTHON_BLYNK_SENSOR_DATA_TO_APP_TOOLTIP,message0:mt.Msg.MPYTHON_BLYNK_SENSOR_DATA_TO_APP_MESSAGE0,args0:[{type:"input_value",name:"sensor_data"},{check:Number,type:"input_value",name:"virtual_pin"}]})}},jl={init:function(){this.jsonInit({inputsInline:!0,colour:yl,helpUrl:mt.Msg.MPYTHON_BLYNK_APP_DATA_HELPURL,tooltip:mt.Msg.MPYTHON_BLYNK_SENSOR_DATA_TO_APP_TOOLTIP,message0:mt.Msg.MPYTHON_BLYNK_APP_DATA_MESSAGE0,args0:[{check:Number,type:"input_value",name:"virtual_pin"},{type:"input_value",name:"virtual_pin_val"}]}),this.appendStatementInput("DO").appendField(mt.CONTROLS_REPEAT_INPUT_DO)}},Zl={init:function(){this.jsonInit({nextStatement:null,previousStatement:null,colour:yl,helpUrl:mt.Msg.MPYTHON_BLYNK_SETUP_HELPURL,tooltip:mt.Msg.MPYTHON_BLYNK_SETUP_TOOLTIP,message0:mt.Msg.MPYTHON_BLYNK_SETUP_MESSAGE0,args0:[{type:"input_dummy"},{check:String,type:"input_value",name:"server"},{check:Number,type:"input_value",name:"port"},{check:String,type:"input_value",name:"auth"}]})}},$l={init:function(){this.setColour(40),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP+" CC_G1"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{temperature:mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,relative_humidity:mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},td={init:function(){this.setColour(40),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GET_BATTERY),this.setOutput(!0,Number),this.setInputsInline(!0)}},ed={init:function(){this.setColour(40),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_JOYSTICK).appendField(new mt.FieldDropdown([["x","[0]"],["y","[1]"],["(x,y)",""]]),"VAR"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_DATA),this.setOutput(!0,Number),this.setInputsInline(!0)}},id={init:function(){this.setColour(40),this.appendDummyInput().appendField(mt.Msg.MIXLY_BUTTON).appendField(new mt.FieldDropdown([["A","0"],["B","1"],["C","2"],["D","3"],["POWER","4"],["SELECT","5"]]),"VAR"),this.appendDummyInput("").appendField(mt.Msg.WHETHER_IS_PRESSED),this.setOutput(!0,Number),this.setInputsInline(!0)}},nd={init:function(){this.setColour(40),this.appendDummyInput("").appendField(mt.Msg.MIXLY_HANDLE_SHUTDOWN),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},sd=100,od={init:function(){this.setColour(sd),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXGO_LEFT_FRONT+mt.Msg.COLOUR_RGB_GREEN+mt.Msg.MIXLY_EXTERN_LED,"GLED[0]"],[mt.Msg.MIXGO_RIGHT_FRONT+mt.Msg.COLOUR_RGB_GREEN+mt.Msg.MIXLY_EXTERN_LED,"GLED[1]"],[mt.Msg.MIXGO_LEFT_BACK+mt.Msg.COLOUR_RGB_GREEN+mt.Msg.MIXLY_EXTERN_LED,"GLED[3]"],[mt.Msg.MIXGO_RIGHT_BACK+mt.Msg.COLOUR_RGB_GREEN+mt.Msg.MIXLY_EXTERN_LED,"GLED[2]"],[mt.Msg.MIXGO_LEFT_FRONT+mt.Msg.COLOUR_RGB_RED+mt.Msg.MIXLY_EXTERN_LED,"RLED[0]"],[mt.Msg.MIXGO_RIGHT_FRONT+mt.Msg.COLOUR_RGB_RED+mt.Msg.MIXLY_EXTERN_LED,"RLED[1]"],[mt.Msg.MIXGO_LEFT_BACK+mt.Msg.COLOUR_RGB_RED+mt.Msg.MIXLY_EXTERN_LED,"RLED[3]"],[mt.Msg.MIXGO_RIGHT_BACK+mt.Msg.COLOUR_RGB_RED+mt.Msg.MIXLY_EXTERN_LED,"RLED[2]"],[mt.Msg.ME_GO_LIGHT_HEADLIGHT,"WLED"]]),"op"),this.setOutput(!0)}},_d={init:function(){this.setColour(sd),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField("ME GO"),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_SETONOFF)}},ad={init:function(){this.setColour(sd),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("led").appendField("ME GO"),this.appendDummyInput().appendField(mt.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},pd={init:function(){this.setColour(sd),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("led").appendField("ME GO"),this.appendDummyInput().appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},ud={init:function(){this.setColour(sd),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField("ME GO"),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_SETTING+mt.Msg.MIXLY_BUILDIN_LED+mt.Msg.MIXLY_BRIGHTNESS+"(0-10)")}},rd={init:function(){this.setColour(sd),this.appendDummyInput().appendField("ME GO").appendField(new mt.FieldDropdown([[mt.Msg.blockpy_forward,"F"],[mt.Msg.blockpy_backward,"B"],[mt.Msg.blockpy_left,"L"],[mt.Msg.blockpy_right,"R"]]),"VAR"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},ld={init:function(){this.setColour(sd),this.appendDummyInput().appendField("ME GO").appendField(new mt.FieldDropdown([[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"VAR"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},dd={init:function(){this.setColour(sd),this.appendDummyInput().appendField("ME GO").appendField(mt.Msg.MOTOR_DC).appendField(new mt.FieldDropdown([[mt.Msg.MIXLYCAR_WHEEL_LEFT,"0"],[mt.Msg.MIXLYCAR_WHEEL_RIGHT,"1"],[mt.Msg.ME_GO_MOTOR_EXTERN,"2"]]),"wheel"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Direction).appendField(new mt.FieldDropdown([[mt.Msg.ROTATION_FORWARD,"CW"],[mt.Msg.ROTATION_BACKWARD,"CCW"],[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Id={init:function(){this.setColour(sd),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_INTERRUPT).appendField(mt.Msg.ME_GO_HALL_SENSOR),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.TEXT_TRIM_LEFT,"A"],[mt.Msg.TEXT_TRIM_RIGHT,"B"]]),"mode"),this.appendValueInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Td={init:function(){this.setColour(sd),this.appendDummyInput("").appendField(mt.Msg.ME_GO_HALL_SENSOR),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.TEXT_TRIM_LEFT,"A"],[mt.Msg.TEXT_TRIM_RIGHT,"B"]]),"mode"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP),this.appendDummyInput("").appendField(new mt.FieldDropdown([["turns","turns"],["distance","distance"],["turns,distance","all"]]),"args"),this.appendValueInput("num").setCheck(Number),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},hd={init:function(){this.setColour(sd),this.appendDummyInput("").appendField(mt.Msg.ME_GO_HALL_SENSOR),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.TEXT_TRIM_LEFT,"A"],[mt.Msg.TEXT_TRIM_RIGHT,"B"]]),"mode"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput("").appendField(new mt.FieldDropdown([["turns","turns"],["distance","distance"],["speed","speed"]]),"args"),this.setOutput(!0),this.setInputsInline(!0)}},Md={init:function(){this.setColour(sd),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new mt.FieldDropdown([[mt.Msg.TEXT_TRIM_LEFT,"[0]"],[mt.Msg.MIXGO_LEFT_MID,"[1]"],[mt.Msg.MIXGO_RIGHT_MID,"[2]"],[mt.Msg.TEXT_TRIM_RIGHT,"[3]"],[mt.Msg.MIXLY_ALL,""]]),"key").appendField(mt.Msg.MIXGO_LINE_SENSOR_VAL),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip((function(){return mt.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP+mt.Msg.MIXLY_ESP32_NEAR}))}},md={init:function(){this.setColour(sd),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXGO_LEFT_FRONT,"[0]"],[mt.Msg.MIXGO_RIGHT_FRONT,"[1]"],[mt.Msg.MIXGO_LEFT_BACK,"[3]"],[mt.Msg.MIXGO_RIGHT_BACK,"[2]"],[mt.Msg.MIXLY_ALL,""]]),"key").appendField(mt.Msg.MIXGO_PROXIMITY_SENSOR),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip((function(){return mt.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP+mt.Msg.MIXLY_ESP32_NEAR}))}},Od={init:function(){this.setColour(sd),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXGO_CAR_SENSOR_ONBOARD_CHANGE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_ME_GO_CAR_SENSOR_ONBOARD_AUTO_CHANGE,"AS"],[mt.Msg.MIXLY_MIXGO_CAR_USE_LINE_ONLY,"LP"],[mt.Msg.MIXLY_MIXGO_CAR_USE_PROXIMITY_ONLY,"OA"],[mt.Msg.MIXLY_ME_GO_CAR_LIGHT_SEEKING_ONLY,"LS"],[mt.Msg.ME_GO_SENSOR_MODE_OFF,"CL"]]),"key"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Ed={init:function(){this.setColour(sd),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GET_GESTURE).appendField(new mt.FieldDropdown([[mt.Msg.ME_GO_PITCH,"[0]"],[mt.Msg.ME_GO_ROLL,"[1]"],[mt.Msg.ME_GO_PITCH+", "+mt.Msg.ME_GO_ROLL,""]]),"angle"),this.appendDummyInput(""),this.setOutput(!0,Number),this.setInputsInline(!0)}},Rd={init:function(){this.setColour(sd),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new mt.FieldDropdown([[mt.Msg.TEXT_TRIM_LEFT,"[0]"],[mt.Msg.MIXGO_LEFT_MID,"[1]"],[mt.Msg.MIXGO_RIGHT_MID,"[2]"],[mt.Msg.TEXT_TRIM_RIGHT,"[3]"],[mt.Msg.MIXLY_ALL,""]]),"key").appendField(mt.Msg.MIXLY_ME_GO_CAR_LIGHT_SEEKING_SENSOR),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip((function(){return mt.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP+mt.Msg.MIXLY_ME_GO_CAR_LIGHT_SEEKING_SENSOR}))}},cd=140,gd={init:function(){this.setColour(cd),this.appendDummyInput().appendField(mt.Msg.MIXLY_LED_ON_BOARD+"I2C"),this.setOutput(!0),this.setInputsInline(!0)}},Cd={init:function(){this.setColour(cd),this.appendDummyInput().appendField(mt.Msg.MIXLY_LED_ON_BOARD+"SPI"),this.setOutput(!0),this.setInputsInline(!0)}},Sd={init:function(){this.setColour(cd),this.appendValueInput("SUB").appendField("I2C "+mt.Msg.MIXLY_SETUP).setCheck("var"),this.appendValueInput("TX",Number).appendField("SCL").setCheck(Number).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("RX",Number).appendField("SDA").setCheck(Number).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("freq").setCheck(Number).appendField(mt.Msg.MIXLY_FREQUENCY).setAlign(mt.inputs.Align.RIGHT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_I2C_INIT)}},Ad={init:function(){this.setColour(cd),this.appendValueInput("VAR").appendField("I2C").setCheck("var"),this.appendValueInput("address").setCheck(Number).appendField(mt.Msg.MIXLY_ESP32_RNUMBER),this.appendValueInput("data").setCheck(Number).appendField(mt.Msg.LANG_MATH_BYTE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_JS_I2C_READ)}},Ld={init:function(){this.setColour(cd),this.appendValueInput("VAR").appendField("I2C").setCheck("var"),this.appendValueInput("address").setCheck(Number).appendField(mt.Msg.MIXLY_ESP32_WNUMBER),this.appendValueInput("data").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_I2C_VALUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_JS_I2C_WRITE)}},Nd={init:function(){this.setColour(cd),this.appendValueInput("VAR").appendField("I2C").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_I2C_SCAN1+mt.Msg.MIXLY_ESP32_I2C_SCAN2),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_I2C_SCAN)}},Dd={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField(mt.Msg.MIXLY_ESP32_SPI_INIT),this.appendValueInput("freq").setCheck(Number).appendField(mt.Msg.MIXLY_SERIAL_BEGIN),this.appendValueInput("sck").setCheck(Number).appendField("SCK"),this.appendValueInput("mosi").setCheck(Number).appendField("MOSI"),this.appendValueInput("miso").setCheck(Number).appendField("MISO"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SPI_INIT_TOOLTIP)}},fd={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField("SPI"),this.appendValueInput("data").setCheck(Number).appendField(mt.Msg.MIXLY_SETTING+mt.Msg.MIXLY_SERIAL_BEGIN),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SPI_SET)}},Fd={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField("SPI"),this.appendValueInput("data").setCheck(Number).appendField(mt.Msg.MIXLY_ESP32_SET+mt.Msg.MIXLY_ESP32_SPI_BUFFER),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SPI_BUFFER_SET)}},Pd={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField("SPI"),this.appendValueInput("data").setCheck(Number).appendField(mt.Msg.MIXLY_SERIAL_READ),this.appendDummyInput("").appendField(mt.Msg.MIXLY_4DIGITDISPLAY_NOMBER2+mt.Msg.LANG_MATH_BYTE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SPI_READ)}},vd={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField("SPI"),this.appendValueInput("data").setCheck(Number).appendField(mt.Msg.MIXLY_SERIAL_READ),this.appendDummyInput("").appendField(mt.Msg.MIXLY_4DIGITDISPLAY_NOMBER2+mt.Msg.LANG_MATH_BYTE+" "+mt.Msg.MIXLY_ESP32_SPI_OUTPUT),this.appendValueInput("val").setCheck(Number),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SPI_READ_OUTPUT)}},Yd={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField("SPI"),this.appendValueInput("data").setCheck("var").appendField(mt.Msg.MIXLY_SERIAL_READ+mt.Msg.MIXLY_ESP32_SPI_BUFFER),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SPI_READINTO)}},xd={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField("SPI"),this.appendValueInput("data").setCheck("var").appendField(mt.Msg.MIXLY_SERIAL_READ+mt.Msg.MIXLY_ESP32_SPI_BUFFER),this.appendValueInput("val").setCheck(Number).appendField(mt.Msg.MIXLY_ESP32_SPI_OUTPUT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SPI_READINTO_OUTPUT)}},Xd={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField("SPI"),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_ESP32_WRITE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SPI_WRITE)}},bd={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField("SPI"),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_ESP32_WRITE),this.appendValueInput("val").setCheck("var").appendField(mt.Msg.MIXLY_ESP32_BUFFER_READ),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SPI_WRITE_READINTO)}},yd={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField("I2C"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_READ),this.setOutput(!0,Number)}},Vd={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField("I2C"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_READ+mt.Msg.MIXLY_ESP32_SUCCESS),this.setOutput(!0,Boolean),this.setTooltip(mt.Msg.MIXLY_ESP32_I2C_AVAILABLE)}},Bd={init:function(){this.setColour(cd),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_I2C_SLAVE_ONRECEIVE).setCheck(Number),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Gd={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField("OneWire "+mt.Msg.MIXLY_SETUP),this.appendValueInput("BUS").setCheck(Number).appendField(mt.Msg.MIXLY_PIN),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_OW_INIT)}},Ud={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField("OneWire"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_ONEWIRE_SCAN),this.setOutput(!0,"List"),this.setTooltip(mt.Msg.MIXLY_ESP32_OW_SCAN)}},wd={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField("OneWire"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_ONEWIRE_READ),this.setOutput(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_OW_READ)}},kd={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField("OneWire"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_WRITE).appendField(new mt.FieldDropdown([[mt.Msg.LANG_MATH_STRING,"write"],[mt.Msg.LANG_MATH_BYTE,"writebyte"]]),"op"),this.appendValueInput("byte").setCheck([Number,String]),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_OW_WRITE)}},Hd={init:function(){this.setColour(cd),this.appendValueInput("VAR").appendField("OneWire").setCheck("var"),this.appendValueInput("byte").setCheck(String).appendField(mt.Msg.LISTS_SET_INDEX_SET).appendField("ROM"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_OW_SELECT)}},Wd={init:function(){this.setColour(cd),this.appendValueInput("VAR").appendField("OneWire").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.blockpy_turtle_reset),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_OW_RESET)}},Kd={init:function(){this.setColour(cd),this.appendValueInput("PIN").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.MIXLY_IR_RECEIVE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_TYPE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_IR_INPUT1,"8"],[mt.Msg.MIXLY_IR_INPUT2,"16"],[mt.Msg.MIXLY_IR_INPUT3,"0"],[mt.Msg.MIXLY_TR_SEND_RC,"RC5"]]),"type"),this.appendValueInput("SUB").appendField(mt.Msg.CONTROLS_REPEAT_INPUT_DO+mt.Msg.MIXLY_ESP32_ONENET_SUB),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Jd={init:function(){this.setColour(cd),this.appendDummyInput().appendField(mt.Msg.MIXlY_RECV_FUN),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_IR_CMD_CODE,"0"],[mt.Msg.MIXLY_IR_ADDR_CODE,"1"],[mt.Msg.MIXLY_IR_RAW_CODE,"2"],[mt.Msg.MIXLY_IR_PULSE,"3"]]),"index"),this.setOutput(!0),this.setInputsInline(!0)}},Qd={init:function(){this.setColour(cd),this.appendDummyInput().appendField(mt.Msg.MIXlY_RECV_FUN).appendField(new mt.FieldDropdown([[mt.Msg.MILY_PAUSE,"True"],[mt.Msg.MIXLY_RECOVER,"False"]]),"en"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},zd={init:function(){this.setColour(cd),this.appendDummyInput().appendField(mt.Msg.MIXlY_RECV_FUN),this.appendDummyInput().appendField(mt.Msg.MIXLY_IR_WHETHER_RECV),this.setOutput(!0),this.setInputsInline(!0)}},qd={init:function(){this.setColour(cd),this.appendValueInput("time").appendField(mt.Msg.MIXlY_RECV_FUN).appendField(mt.Msg.MIXLY_IR_TIMEOUT),this.appendDummyInput().appendField(mt.Msg.MIXLY_MILLISECOND),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},jd={init:function(){this.setColour(cd),this.appendValueInput("PIN").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.MIXLY_IR_SEND).appendField(mt.Msg.MIXLY_PIN),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_TYPE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_IR_SEND_samsung1,"False"],[mt.Msg.MIXLY_IR_SEND_samsung2,"True"],[mt.Msg.MIXLY_TR_SEND_RC,"RC5"]]),"type").appendField(mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER),this.appendValueInput("power"),this.appendDummyInput().appendField(mt.Msg.MATH_QUYU_SYMBOL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Zd={init:function(){this.setColour(cd),this.appendDummyInput().appendField(mt.Msg.MIXLY_IR_SEND),this.appendValueInput("cmd").appendField(mt.Msg.MIXLY_IR_CMD_CODE),this.appendValueInput("addr").appendField(mt.Msg.MIXLY_IR_ADDR_CODE),this.appendValueInput("toggle").appendField(mt.Msg.MIXLY_CONTROL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_TRANSMIT_CONVEN_DATA)}},$d={init:function(){this.setColour(cd),this.appendDummyInput().appendField(mt.Msg.MIXLY_IR_SEND),this.appendValueInput("LIST").appendField(mt.Msg.MIXLY_IR_PULSE).setAlign(mt.inputs.Align.RIGHT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},tI={init:function(){this.setColour(cd),this.appendDummyInput().appendField(mt.Msg.MIXLY_IR_SEND),this.appendValueInput("raw").appendField(mt.Msg.MIXLY_IR_RAW_CODE).setAlign(mt.inputs.Align.RIGHT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},eI={init:function(){this.setColour(cd),this.appendDummyInput().appendField(mt.Msg.MIXLY_IR_TRANSMIT_DONE),this.setOutput(!0),this.setInputsInline(!0)}},iI={init:function(){this.setColour(cd),this.appendValueInput("VAR").appendField(mt.Msg.MSG.catBLE).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MSG.catEthernet_init+mt.Msg.MIXLY_MICROBIT_PY_STORAGE_AS+mt.Msg.MSG.catBLE_UART),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},nI={init:function(){this.setColour(cd),this.appendValueInput("VAR").appendField(mt.Msg.MSG.catBLE).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MSG.catEthernet_init+mt.Msg.MIXLY_MICROBIT_PY_STORAGE_AS+mt.Msg.MSG.catBLE_HID),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.HTML_NAME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},sI={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_ONEWIRE_SCAN+mt.Msg.MSG.catBLE),this.setOutput(!0),this.setInputsInline(!0)}},oI={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXGO_ESPNOW_MAC),this.setOutput(!0),this.setInputsInline(!0)}},_I={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_TEXT_JOIN+mt.Msg.MSG.catBLE).appendField(new mt.FieldDropdown([[mt.Msg.HTML_NAME,"name"],[mt.Msg.MIXLY_ETHERNET_MAC_ADDRESS,"mac"]]),"mode"),this.appendValueInput("data").setCheck(String),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},aI={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_DISCONNECT_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},pI={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MSG.catBLE+mt.Msg.MIXLY_SEND_DATA),this.appendValueInput("data").appendField(mt.Msg.HTML_BODY),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},uI={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MSG.catBLE+mt.Msg.MIXLY_EMQX_IS_CONNECT),this.setOutput(!0),this.setInputsInline(!0)}},rI={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var"),this.appendValueInput("METHOD").appendField(mt.Msg.MIXLY_MIXGO_ESPNOW_RECV).appendField(mt.Msg.CONTROLS_REPEAT_INPUT_DO+mt.Msg.MIXLY_ESP32_ONENET_SUB),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},lI={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXGO_ESPNOW_RECV),this.setOutput(!0),this.setInputsInline(!0)}},dI={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField(mt.Msg.MIXLY_BLE_HANDLE),this.appendValueInput("METHOD").appendField(mt.Msg.MIXLY_MIXGO_ESPNOW_RECV).appendField(mt.Msg.CONTROLS_REPEAT_INPUT_DO+mt.Msg.MIXLY_ESP32_ONENET_SUB),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},II={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField("ESPnow "+mt.Msg.MIXLY_SETUP),this.appendValueInput("CHNL").setCheck(Number).appendField(mt.Msg.MIXLY_MP_ESPNOW_CHANNEL),this.appendDummyInput("").appendField(mt.Msg.MIXLY_TX_POWER).appendField(new mt.FieldDropdown([["20","20"],["18","18"],["16","16"],["15","15"],["14","14"],["13","13"],["11","11"],["8","8"],["7","7"],["5","5"],["2","2"]]),"op"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},TI={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField("ESPnow "+mt.Msg.MIXLY_SETUP),this.appendValueInput("CHNL").setCheck(Number).appendField(mt.Msg.MIXLY_MP_ESPNOW_CHANNEL),this.appendValueInput("DB").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER),this.appendDummyInput().appendField("db"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MP_ESPNOW_INIT_TOOLTIP)}},hI={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField("ESPnow "),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXGO_ESPNOW_MAC),this.setOutput(!0),this.setInputsInline(!0)}},MI={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField("ESPnow "),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXGO_ESPNOW_INFO),this.setOutput(!0),this.setInputsInline(!0)}},mI={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField("ESPnow "),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXGO_ESPNOW_RECV),this.appendDummyInput().appendField(new mt.FieldDropdown([["("+mt.Msg.MIXLY_ETHERNET_MAC_ADDRESS+", "+mt.Msg.OLED_STRING+")",""],[mt.Msg.MIXLY_ETHERNET_MAC_ADDRESS,"[0]"],[mt.Msg.OLED_STRING,"[1]"]]),"mode"),this.setOutput(!0),this.setInputsInline(!0)}},OI={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField("ESPnow "),this.appendValueInput("mac").appendField(mt.Msg.MIXLY_MIXGO_ESPNOW_SEND_MAC),this.appendValueInput("content").appendField(mt.Msg.MIXLY_MIXGO_ESPNOW_SEND),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXGO_ESPNOW_SEND_TOOLTIP)}},EI={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField("ESPnow "),this.appendValueInput("METHOD").appendField(mt.Msg.MIXLY_EMQX_SET_METHOD),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},RI={init:function(){this.setColour(cd),this.appendDummyInput().appendField(mt.Msg.MIXLY_MP_ESPNOW_RADIO_INIT),this.appendValueInput("CHNL").setCheck(Number),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},cI={init:function(){this.setColour(cd),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING+mt.Msg.MIXLY_MP_ESPNOW_RADIO+mt.Msg.MIXLY_TX_POWER).appendField(new mt.FieldDropdown([["20","20"],["18","18"],["16","16"],["15","15"],["14","14"],["13","13"],["11","11"],["8","8"],["7","7"],["5","5"],["2","2"]]),"op"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},gI={init:function(){this.setColour(cd),this.appendDummyInput().appendField(mt.Msg.MIXLY_MP_ESPNOW_RADIO_INIT),this.appendValueInput("CHNL").setCheck(Number),this.appendValueInput("DB").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER),this.appendDummyInput().appendField("db"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MP_ESPNOW_RADIO_INIT_TOOLTIP)}},CI={init:function(){this.setColour(cd),this.appendDummyInput().appendField(mt.Msg.MIXLY_MP_ESPNOW_RADIO),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_ON,"True"],[mt.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_OFF,"False"]]),"on_off"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},SI={init:function(){this.setColour(cd),this.appendDummyInput().appendField(mt.Msg.MIXLY_MP_ESPNOW_RADIO).appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.appendValueInput("send").setCheck(String),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXGO_ESPNOW_SEND_TOOLTIP)}},AI={init:function(){this.setColour(cd),this.appendDummyInput().appendField(mt.Msg.MIXLY_MP_ESPNOW_RADIO).appendField(mt.Msg.MIXLY_MIXGO_ESPNOW_RECV),this.setOutput(!0),this.setInputsInline(!0)}},LI={init:function(){this.setColour(cd),this.appendDummyInput().appendField(mt.Msg.MIXLY_MP_ESPNOW_RADIO_RECEIVED_MSG),this.setOutput(!0),this.setInputsInline(!0)}},NI={init:function(){this.setColour(cd),this.appendDummyInput().appendField(mt.Msg.MIXLY_MP_ESPNOW_RADIO_MSG_RECEIVED),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!1),this.setNextStatement(!1)}},DI={init:function(){this.setColour(cd),this.appendDummyInput().appendField(mt.Msg.MIXLY_MP_ESPNOW_RADIO_MSG_RECEIVED_CERTAIN).appendField('"').appendField(new mt.FieldTextInput("on"),"msg").appendField('"'),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!1),this.setNextStatement(!1)}},fI={init:function(){this.setColour(cd),this.appendDummyInput().appendField(mt.Msg.MIXLY_MP_ESPNOW_RADIO_MSG_RECEIVED),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!1),this.setNextStatement(!1)}},FI={init:function(){this.setColour(cd),this.appendDummyInput().appendField(mt.Msg.MIXLY_MP_ESPNOW_RADIO_MSG_RECEIVED_CERTAIN).appendField('"').appendField(new mt.FieldTextInput("on"),"msg").appendField('"'),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!1),this.setNextStatement(!1)}},PI={init:function(){this.setColour(cd),this.appendValueInput("SUB").appendField("Lora"+mt.Msg.MIXLY_SETUP).setCheck("var"),this.appendValueInput("SPISUB").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("frequency").appendField(mt.Msg.MIXLY_FREQUENCY),this.appendValueInput("rate").appendField(mt.Msg.MIXLY_CODE_RATE),this.appendValueInput("factor").appendField(mt.Msg.MIXLY_SPREADING_FACTOR),this.appendValueInput("power").appendField(mt.Msg.MIXLY_TX_POWER),this.appendDummyInput().appendField(mt.Msg.MIXLY_SIGNAL_BANDWIDTH).appendField(new mt.FieldDropdown([["7800","7800"],["10400","10400"],["15600","15600"],["20800","20800"],["31250","31250"],["41700","41700"],["62500","62500"],["125000","125000"],["250000","250000"],["500000","500000"]]),"bandwidth"),this.setFieldValue("125000","bandwidth"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_LORA_INIT_TOOLTIP)}},vI={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField("Lora "),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_PACKAGE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_SIGNAL_STRENGTH,"packet_rssi"],[mt.Msg.MIXLY_SIGNAL_NOISE_RATE,"packet_snr"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},YI={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField("Lora "),this.appendDummyInput().appendField(mt.Msg.MIXLY_SEND_DATA),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},xI={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField("Lora "),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXGO_ESPNOW_RECV),this.setOutput(!0,String),this.setInputsInline(!0)}},XI={init:function(){this.setColour(cd),this.appendValueInput("DOMAIN").appendField(mt.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(mt.Msg.blockpy_REQUESTS_GET).appendField(new mt.FieldTextInput("response"),"VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.blockpy_REQUESTS_GET_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},bI={init:function(){this.appendValueInput("VAL");var t=[[mt.Msg.blockpy_REQUESTS_GET_ATTR_HEADER,"headers"],[mt.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE,"status_code"],[mt.Msg.blockpy_REQUESTS_GET_ATTR_TEXT,"text"],[mt.Msg.blockpy_REQUESTS_GET_ATTR_COOKIES,"cookies"],[mt.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT,"content"]];this.setColour(cd),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_GET).appendField(new mt.FieldDropdown(t),"ATTR"),this.setInputsInline(!0),this.setOutput(!0,String);var e=this;this.setTooltip((function(){var t=e.getFieldValue("DIR");return{clear:mt.Msg.MIXLY_TOOLTIP_TURTEL_CLEAR,reset:mt.Msg.MIXLY_TOOLTIP_TURTEL_RESET,home:mt.Msg.MIXLY_TOOLTIP_TURTEL_HOME}[t]}))}},yI={init:function(){this.appendValueInput("VAR").appendField(mt.Msg.DISPLAY_IMAGE_LET2).setCheck(String);this.setColour(cd),this.appendDummyInput("").appendField(mt.Msg.blockpy_CONDUCT).appendField(new mt.FieldDropdown([["get","get"],["post","post"],["put","put"],["delete","delete"],["head","head"],["option","option"]]),"DIR"),this.appendDummyInput("").appendField(mt.Msg.blockpy_REQUESTS),this.setOutput(!0),this.setInputsInline(!0)}},VI=Sd,BI=Ad,GI=Ld,UI=Nd,wI=Dd,kI=fd,HI=Fd,WI=Pd,KI=vd,JI=Yd,QI=xd,zI=Xd,qI=bd,jI=yd,ZI=Vd,$I=120;({init:function(){this.setColour($I),this.appendValueInput("BOOL").setCheck([Boolean,Number]).appendField(mt.Msg.LANG_CONTROLS_WHILEUNTIL_TITLE_REPEAT).appendField(new mt.FieldDropdown(this.OPERATORS),"MODE"),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return{WHILE:mt.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_WHILE,UNTIL:mt.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL}[e]}))}}).OPERATORS=[[mt.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"WHILE"],[mt.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"UNTIL"]];({init:function(){this.setColour($I);var t=new mt.FieldDropdown(this.OPERATORS);this.appendDummyInput().appendField(t,"FLOW").appendField(mt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_INPUT_OFLOOP),this.setPreviousStatement(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("FLOW");return{BREAK:mt.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK,CONTINUE:mt.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE}[t]}))},onchange:function(){if(this.workspace){var t=!1,e=this;do{if("controls_repeat"==e.type||"controls_for"==e.type||"controls_forEach"==e.type||"controls_repeat_ext"==e.type||"controls_whileUntil"==e.type){t=!0;break}e=e.getSurroundParent()}while(e);t?this.setWarningText(null):this.setWarningText(mt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_WARNING)}}}).OPERATORS=[[mt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK,"BREAK"],[mt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE,"CONTINUE"]];const tT="5BA5A5",eT={init:function(){this.setColour(tT),this.appendValueInput("I2CSUB").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new mt.FieldDropdown([["32x12 Matrix","32x12 Matrix"],["16x8 Matrix","16x8 Matrix"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},iT={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(tT),this.appendValueInput("data").setCheck([String,"esp32_image","List","Tuple"]).appendField(mt.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.OLED_BITMAP_OR_STRING)}},nT={init:function(){this.setColour(tT),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.OLED_DRAWSTR),this.appendValueInput("space").setCheck(Number).appendField(mt.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendDummyInput("").appendField(mt.Msg.TEXT_CENTER).appendField(new mt.FieldDropdown([[mt.Msg.MICROPYTHON_DISPLAY_YES,"True"],[mt.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"center"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY)}},sT={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(tT),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},oT={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(tT),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.appendValueInput("space").setCheck(Number).appendField(mt.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SCROLL_IMAGE_OR_STRING_DELAY)}},_T={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(tT),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},aT={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(tT),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},pT={init:function(){var t=[[mt.Msg.MIXLY_UP,"shift_up"],[mt.Msg.MIXLY_DOWN,"shift_down"],[mt.Msg.MIXLY_LEFT,"shift_left"],[mt.Msg.MIXLY_RIGHT,"shift_right"]];this.appendValueInput("SUB").setCheck("var"),this.setColour(tT),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.appendDummyInput("").appendField(mt.Msg.DISPLAY_IMAGE_LET),this.appendDummyInput("").appendField(mt.Msg.DISPLAY_IMAGE_LET2).appendField(new mt.FieldDropdown(t),"OP"),this.appendValueInput("val").appendField(mt.Msg.DISPLAY_IMAGE_SHIFT).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.DISPLAY_IMAGE_UNIT);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP"),i=mt.Msg.DISPLAY_IMAGE_LET,n=mt.Msg.DISPLAY_IMAGE_LET2,s=mt.Msg.DISPLAY_IMAGE_LET3;return i+n+{up:mt.Msg.MIXLY_UP,down:mt.Msg.MIXLY_DOWN,left:mt.Msg.MIXLY_LEFT,right:mt.Msg.MIXLY_RIGHT}[t]+s}))}},uT={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(tT),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_GET_POINT),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_ESP32_JS_MONITOR_BRIGHTNESS)}},rT={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(tT),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_SET_BRIGHTNESS).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendValueInput("STAT").setCheck([Number,Boolean]),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL)}},lT={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(tT),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS)}},dT={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(tT),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS+" 0.0-1.0")}},IT={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(tT),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Clear_display),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Clear_display)}},TT={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(tT),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Built_in_image1).appendField(new mt.FieldDropdown([["HEART","HEART"],["HEART_SMALL","HEART_SMALL"],["HAPPY","HAPPY"],["SAD","SAD"],["SMILE","SMILE"],["SILLY","SILLY"],["FABULOUS","FABULOUS"],["SURPRISED","SURPRISED"],["ASLEEP","ASLEEP"],["ANGRY","ANGRY"],["CONFUSED","CONFUSED"],["NO","NO"],["YES","YES"]]),"image"),this.setOutput(!0,"esp32_image"),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Clear_display)}},hT={init:function(){var t=[[mt.Msg.MICROBIT_DISPLAY_UNION,"add"],[mt.Msg.MICROBIT_DISPLAY_MINUS,"sub"]];this.appendValueInput("SUB").setCheck("var"),this.setColour(tT),this.setOutput(!0,"esp32_image"),this.appendValueInput("A").appendField(mt.Msg.MICROBIT_DISPLAY_MERGE_SHAPE),this.appendValueInput("B").appendField(new mt.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{"+":mt.Msg.MIXLY_MICROBIT_image_add,"-":mt.Msg.MIXLY_MICROBIT_image_reduce}[t]}))}},MT={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(tT),this.appendValueInput("A").setCheck("esp32_image").appendField(mt.Msg.MIXLY_MICROBIT_Invert_image1),this.setInputsInline(!0),this.setOutput(!0,"esp32_image")}},mT={init:function(){this.setColour(tT),this.appendValueInput("I2CSUB").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendValueInput("row").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.LISTS_SET_INDEX_INPUT_TO+"OLED").setCheck(Number),this.appendValueInput("column").appendField("X").setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip()}},OT={init:function(){this.appendValueInput("VAR").appendField(mt.Msg.OLED).setCheck("var"),this.appendValueInput("Text_line1","String").setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.OLEDDISPLAY+mt.Msg.line1),this.appendValueInput("Text_line2","String").setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.line2),this.appendValueInput("Text_line3","String").setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.line3),this.appendValueInput("Text_line4","String").setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.line4),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(tT),this.setTooltip(mt.Msg.MIXLY_DF_LCD+mt.Msg.OLEDDISPLAY+mt.Msg.MIXLY_MICROBIT_TYPE_STRING)}},ET={init:function(){var t=[[mt.Msg.MIXLY_HEIGHT,"height"],[mt.Msg.MIXLY_WIDTH,"width"]];this.setColour(tT),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+mt.Msg.MIXLY_MICROBIT_IMAGE),this.appendValueInput("VAR").setCheck("esp32_image"),this.appendDummyInput("").appendField(new mt.FieldDropdown(t),"OP"),this.setInputsInline(!0),this.setOutput(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+mt.Msg.MIXLY_MICROBIT_IMAGE+{height:mt.Msg.MIXLY_HEIGHT,width:mt.Msg.MIXLY_WIDTH}[t]}))}},RT={init:function(){var t=[[mt.Msg.MIXLY_4DIGITDISPLAY_ON,"1"],[mt.Msg.MIXLY_4DIGITDISPLAY_OFF,"0"]];this.setColour(tT),this.appendValueInput("VAR").appendField(mt.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RECT).appendField(new mt.FieldDropdown(t),"OP"),this.jsonInit({message0:mt.Msg.MIXLY_MICROBIT_SHOW_RECT,args0:[{check:Number,type:"input_value",name:"x"},{check:Number,type:"input_value",name:"y"},{check:Number,type:"input_value",name:"width"},{check:Number,type:"input_value",name:"height"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"fill"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_OLED_RECT)}},cT={init:function(){this.setColour(tT),this.appendValueInput("VAR").appendField(mt.Msg.OLED).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_DISPLAY_DRAW).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_DISPLAY_RLINE,"hline"],[mt.Msg.MIXLY_DISPLAY_VLINE,"vline"]]),"direction"),this.jsonInit({message0:mt.Msg.MIXLY_MICROBIT_SHOW_LINE,args0:[{check:Number,type:"input_value",name:"x"},{check:Number,type:"input_value",name:"y"},{check:Number,type:"input_value",name:"length"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_OLED_LINE)}},gT={init:function(){this.setColour(tT),this.appendValueInput("VAR").appendField(mt.Msg.OLED).setCheck("var"),this.jsonInit({message0:mt.Msg.MIXLY_MICROBIT_SHOW_LINE_ARBITRARILY,args0:[{check:Number,type:"input_value",name:"x1"},{check:Number,type:"input_value",name:"y1"},{check:Number,type:"input_value",name:"x2"},{check:Number,type:"input_value",name:"y2"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_OLED_LINE_ARBIT)}},CT={init:function(){this.setColour(tT),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_MONITOR_GET_SCREEN_IMAGE),this.setInputsInline(!0),this.setOutput(!0,"esp32_image"),this.setTooltip(mt.Msg.MIXLY_ESP32_MONITOR_GET_SCREEN_IMAGE_TOOLTIP)}},ST={init:function(){this.setColour(tT),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_SET_BLINK_RATE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_JS_MONITOR_SET_BLINK_RATE)}},AT={init:function(){this.setColour(tT),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("_LED_").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_NUM),this.appendDummyInput("").appendField(mt.Msg.LISTS_SET_INDEX_SET+mt.Msg.MIXLY_MICROBIT_PY_STORAGE_AS).appendField(new mt.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),"FIELDNAME"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B)}},LT={init:function(){this.setColour(tT),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_ESP32_ON,"ON"],[mt.Msg.MIXLY_ESP32_OFF,"OFF"]]),"ONOFF"),this.setOutput(!0,Boolean),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW)}},NT={init:function(){this.setColour(tT),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LCD_STAT_CLEAR,"0"],[mt.Msg.MIXLY_HANDBIT_DISLPAY_OLED_FILL,"1"]]),"key"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i={0:mt.Msg.MIXLY_LCD_STAT_CLEAR,1:mt.Msg.MIXLY_HANDBIT_DISLPAY_OLED_FILL};return mt.Msg.MIXLY_DF_LCD+i[e]}))}},DT={init:function(){this.setColour(tT),this.setOutput(!0,"Tuple"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_DISPLAY_ANIMATE).appendField(new mt.FieldDropdown([["ALL_CLOCKS","ALL_CLOCKS"],["ALL_ARROWS","ALL_ARROWS"]]),"ANIMATION")}},fT={init:function(){var t=[[mt.Msg.MIXLY_4DIGITDISPLAY_ON,"1"],[mt.Msg.MIXLY_4DIGITDISPLAY_OFF,"0"]];this.setColour(tT),this.appendValueInput("VAR").appendField(mt.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MIXPY_TURTLE_DRAW_CIRCLE).appendField(new mt.FieldDropdown(t),"OP"),this.jsonInit({message0:mt.Msg.MIXLY_HANBIT_SHOW_CIRCLE,args0:[{check:Number,type:"input_value",name:"x"},{check:Number,type:"input_value",name:"y"},{check:Number,type:"input_value",name:"r"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"fill"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_MIXPY_TURTLE_DRAW_CIRCLE)}},FT={init:function(){var t=[[mt.Msg.MIXLY_4DIGITDISPLAY_ON,"1"],[mt.Msg.MIXLY_4DIGITDISPLAY_OFF,"0"]];this.setColour(tT),this.appendValueInput("VAR").appendField(mt.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_DISPLAY_DRAW+mt.Msg.MIXLY_HANBIT_DRAW_TRIANGLE).appendField(new mt.FieldDropdown(t),"OP"),this.jsonInit({message0:mt.Msg.MIXLY_HANBIT_SHOW_triangle,args0:[{check:Number,type:"input_value",name:"x0"},{check:Number,type:"input_value",name:"y0"},{check:Number,type:"input_value",name:"x1"},{check:Number,type:"input_value",name:"y1"},{check:Number,type:"input_value",name:"x2"},{check:Number,type:"input_value",name:"y2"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"fill"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_DISPLAY_DRAW+mt.Msg.MIXLY_HANBIT_DRAW_TRIANGLE)}},PT={init:function(){this.setColour("#555555"),this.appendDummyInput("").appendField(mt.Msg.MIXGO_ONBOARDDISPLAY_HELP),this.setInputsInline(!0),this.setTooltip("")}},vT={init:function(){this.setColour(tT),this.appendValueInput("VAR").appendField(mt.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.OLED_BITMAP),this.appendValueInput("START_X",Number).appendField(mt.Msg.OLED_START_X).setCheck(Number),this.appendValueInput("START_Y",Number).appendField(mt.Msg.OLED_START_Y).setCheck(Number),this.appendValueInput("bitmap_name",String).appendField(mt.Msg.OLED_BITMAP_NAME),this.appendValueInput("WIDTH",Number).appendField(mt.Msg.MIXLY_WIDTH).setCheck(Number),this.appendValueInput("HEIGHT",Number).appendField(mt.Msg.MIXLY_HEIGHT).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.OLED_SHOW_BMP_TOOLTIP)}},YT={init:function(){this.setColour(tT),this.appendValueInput("VAR").appendField(mt.Msg.OLED),this.appendDummyInput("").appendField(mt.Msg.OLED_DRAWPIXEL),this.appendValueInput("POS_X").appendField(mt.Msg.OLED_POSX),this.appendValueInput("POS_Y").appendField(mt.Msg.OLED_POSY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.OLED_DRAW_PIXE_TOOLTIP)}},xT={init:function(){this.setColour(tT),this.appendValueInput("I2CSUB").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new mt.FieldDropdown([["TM1650","TM1650"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return mt.Msg.MIXLY_ESP32_SENSOR_USE_I2C_TOOLTIP+{TM1650:"TM1650"}[e]}))}},XT={init:function(){this.setColour(tT),this.appendDummyInput().appendField(mt.Msg.MIXLY_4DIGITDISPLAY).appendField(new mt.FieldDropdown([["TM1650","tm1650"]]),"TYPE"),this.appendValueInput("VAR"),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_ON,"on"],[mt.Msg.MIXLY_OFF,"off"],[mt.Msg.MIXLY_LCD_STAT_CLEAR,"clear"]]),"STAT"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_4digitdisplay_power)}},bT={init:function(){this.setColour(tT),this.appendDummyInput().appendField(mt.Msg.MIXLY_4DIGITDISPLAY).appendField(new mt.FieldDropdown([["TM1650","tm1650"]]),"TYPE"),this.appendValueInput("VAR"),this.appendValueInput("VALUE").setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SHOW_NUMBER),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},yT={init:function(){this.setColour(tT),this.appendDummyInput().appendField(mt.Msg.MIXLY_4DIGITDISPLAY).appendField(new mt.FieldDropdown([["TM1650","tm1650"]]),"TYPE"),this.appendValueInput("VAR"),this.appendValueInput("NO").appendField(mt.Msg.MIXLY_4DIGITDISPLAY_NOMBER1),this.appendValueInput("STAT").appendField(mt.Msg.MIXLY_4DIGITDISPLAY_NOMBER2+mt.Msg.MIXLY_4DIGITDISPLAY_DOT),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_4digitdisplay_showDot)}},VT={init:function(){this.setColour(tT),this.appendDummyInput().appendField(mt.Msg.MIXLY_4DIGITDISPLAY).appendField(new mt.FieldDropdown([["TM1650","tm1650"]]),"TYPE"),this.appendValueInput("VAR"),this.appendValueInput("VALUE").setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SET_BRIGHTNESS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_4DIGITDISPLAY_4DIGITDISPLAY_BRIGHTNESS_TOOLTIP)}},BT={init:function(){this.setColour(tT),this.appendValueInput("SPISUB").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINDC").appendField("DC"),this.appendValueInput("PINCS").appendField("CS"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.LISTS_SET_INDEX_INPUT_TO+mt.Msg.MSG.catTFT),this.appendValueInput("WIDTH").appendField(mt.Msg.MIXLY_WIDTH).setCheck(Number),this.appendValueInput("HEIGHT").appendField(mt.Msg.MIXLY_HEIGHT).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.blockpy_turtle_rotate).appendField(new mt.FieldDropdown([[mt.Msg.MICROPYTHON_DISPLAY_NO,"0"],[mt.Msg.ANTI_CLOCKWISE+"90°","1"],[mt.Msg.ANTI_CLOCKWISE+"180°","2"],[mt.Msg.ANTI_CLOCKWISE+"270°","3"]]),"rotate"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},GT={init:function(){this.setColour(tT),this.appendValueInput("SUB").appendField(mt.Msg.MSG.catTFT),this.appendValueInput("data").appendField(mt.Msg.OLED_BITMAP),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_NUMBER),this.appendValueInput("VAR").appendField(mt.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.OLED_BITMAP_OR_STRING)}},UT={init:function(){this.setColour(tT);let t=new mt.FieldColour("#f00",null,{colourOptions:["#f00","#000"],columns:2});this.appendDummyInput("").setAlign(mt.inputs.Align.RIGHT).appendField(t,"COLOR"),this.setInputsInline(!0),this.setOutput(!0,String)}},wT={init:function(){this.setColour(tT),this.appendValueInput("SUB").appendField(mt.Msg.MSG.catTFT),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.OLED_DRAWSTR),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(mt.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendDummyInput("").appendField(mt.Msg.TEXT_CENTER).appendField(new mt.FieldDropdown([[mt.Msg.MICROPYTHON_DISPLAY_YES,"True"],[mt.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"center"),this.appendValueInput("VAR").appendField(mt.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY)}},kT={init:function(){this.setColour(tT),this.appendValueInput("SUB").appendField(mt.Msg.MSG.catTFT),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(mt.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.appendValueInput("VAR").appendField(mt.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SCROLL_IMAGE_OR_STRING_DELAY)}},HT={init:function(){this.setColour(tT),this.appendValueInput("SUB").appendField(mt.Msg.MSG.catTFT),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.appendValueInput("VAR").appendField(mt.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},WT={init:function(){this.setColour(tT),this.appendValueInput("SUB").setCheck("var").appendField(mt.Msg.MSG.catTFT),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LCD_STAT_CLEAR,"BLACK"],[mt.Msg.MIXLY_HANDBIT_DISLPAY_OLED_FILL,"WHITE"]]),"key"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i={0:mt.Msg.MIXLY_LCD_STAT_CLEAR,1:mt.Msg.MIXLY_HANDBIT_DISLPAY_OLED_FILL};return mt.Msg.MIXLY_DF_LCD+i[e]}))}},KT={init:function(){this.setColour(tT),this.appendValueInput("SUB").appendField(mt.Msg.MSG.catTFT).setCheck("var"),this.jsonInit({message0:mt.Msg.MIXLY_MICROBIT_SHOW_LINE_ARBITRARILY,args0:[{check:Number,type:"input_value",name:"x1"},{check:Number,type:"input_value",name:"y1"},{check:Number,type:"input_value",name:"x2"},{check:Number,type:"input_value",name:"y2"}]}),this.appendValueInput("VAR").appendField(mt.Msg.HTML_COLOUR),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_OLED_LINE_ARBIT)}},JT={init:function(){this.setColour(tT),this.appendValueInput("I2CSUB").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new mt.FieldDropdown([["LCD1602","16"],["LCD2004","20"]]),"key"),this.appendValueInput("ADDR").setCheck(Number).appendField(mt.Msg.MQTT_SERVER_ADD),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return mt.Msg.MIXLY_SETUP+{16:"LCD1602",20:"LCD2004"}[e]}))}},QT={init:function(){this.setColour(tT),this.appendValueInput("SUB").appendField(mt.Msg.MSG.catLCD),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.OLED_DRAWSTR),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.array2_cols),this.appendValueInput("y").setCheck(Number).appendField(mt.Msg.array2_rows),this.appendDummyInput("").appendField(mt.Msg.TEXT_CENTER).appendField(new mt.FieldDropdown([[mt.Msg.MICROPYTHON_DISPLAY_YES,"True"],[mt.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"center"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY)}},zT={init:function(){this.setColour(tT),this.appendValueInput("SUB").appendField(mt.Msg.MSG.catLCD),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_SERIAL_PRINT+mt.Msg.OLED_DRAWSTR),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.array2_cols),this.appendValueInput("y").setCheck(Number).appendField(mt.Msg.array2_rows),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},qT={init:function(){this.setColour(tT),this.appendValueInput("SUB").setCheck("var").appendField(mt.Msg.MSG.catLCD),this.appendDummyInput().appendField(mt.Msg.TFT_Brightness).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_Turn_on_display,"1"],[mt.Msg.MIXLY_MICROBIT_Turn_off_display,"0"]]),"key"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i={1:mt.Msg.MIXLY_MICROBIT_Turn_on_display,0:mt.Msg.MIXLY_MICROBIT_Turn_off_display};return mt.Msg.MSG.catLCD+mt.Msg.TFT_Brightness+i[e]}))}},jT={init:function(){this.appendValueInput("SUB").setCheck("var").appendField(mt.Msg.MSG.catLCD),this.setColour(tT),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Clear_display),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Clear_display)}},ZT={init:function(){this.setColour(tT),this.appendValueInput("I2CSUB").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.LISTS_SET_INDEX_INPUT_TO+"oled128x64"),this.appendValueInput("ADDR").setCheck(Number).appendField(mt.Msg.MQTT_SERVER_ADD),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return mt.Msg.MIXLY_SETUP+{16:"LCD1602",20:"LCD2004"}[e]}))}},$T={init:function(){this.setColour(tT),this.appendValueInput("SUB").setCheck("var").appendField(mt.Msg.MSG.catOLED),this.appendValueInput("data").appendField(mt.Msg.OLED_BITMAP),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.OLED_BITMAP_OR_STRING)}},th={init:function(){this.setColour(tT),this.appendValueInput("SUB").setCheck("var").appendField(mt.Msg.MSG.catOLED),this.appendValueInput("data").appendField(mt.Msg.OLED_BITMAP),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_NUMBER),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.OLED_BITMAP_OR_STRING)}},eh={init:function(){this.setColour(tT),this.appendValueInput("SUB").setCheck("var").appendField(mt.Msg.MSG.catOLED),this.appendValueInput("data").setCheck([String,"esp32_image","List","Tuple"]).appendField(mt.Msg.OLED_DRAWSTR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.OLED_BITMAP_OR_STRING)}},ih={init:function(){this.setColour(tT),this.appendValueInput("SUB").setCheck("var").appendField(mt.Msg.MSG.catOLED),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.OLED_DRAWSTR),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(mt.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendDummyInput("").appendField(mt.Msg.TEXT_CENTER).appendField(new mt.FieldDropdown([[mt.Msg.MICROPYTHON_DISPLAY_YES,"True"],[mt.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"center"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY)}},nh={init:function(){this.setColour(tT),this.appendValueInput("SUB").setCheck("var").appendField(mt.Msg.MSG.catOLED),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},sh={init:function(){this.setColour(tT),this.appendValueInput("SUB").setCheck("var").appendField(mt.Msg.MSG.catOLED),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(mt.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SCROLL_IMAGE_OR_STRING_DELAY)}},oh={init:function(){this.setColour(tT),this.appendValueInput("SUB").setCheck("var").appendField(mt.Msg.MSG.catOLED),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},_h={init:function(){this.setColour(tT),this.appendValueInput("SUB").setCheck("var").appendField(mt.Msg.MSG.catOLED),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},ah={init:function(){var t=[[mt.Msg.MIXLY_UP,"shift_up"],[mt.Msg.MIXLY_DOWN,"shift_down"],[mt.Msg.MIXLY_LEFT,"shift_left"],[mt.Msg.MIXLY_RIGHT,"shift_right"]];this.setColour(tT),this.appendValueInput("SUB").setCheck("var").appendField(mt.Msg.MSG.catOLED),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.appendDummyInput("").appendField(mt.Msg.DISPLAY_IMAGE_LET),this.appendDummyInput("").appendField(mt.Msg.DISPLAY_IMAGE_LET2).appendField(new mt.FieldDropdown(t),"OP"),this.appendValueInput("val").appendField(mt.Msg.DISPLAY_IMAGE_SHIFT).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.DISPLAY_IMAGE_UNIT);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP"),i=mt.Msg.DISPLAY_IMAGE_LET,n=mt.Msg.DISPLAY_IMAGE_LET2,s=mt.Msg.DISPLAY_IMAGE_LET3;return i+n+{up:mt.Msg.MIXLY_UP,down:mt.Msg.MIXLY_DOWN,left:mt.Msg.MIXLY_LEFT,right:mt.Msg.MIXLY_RIGHT}[t]+s}))}},ph={init:function(){this.setColour(tT),this.appendValueInput("SUB").setCheck("var").appendField(mt.Msg.MSG.catOLED),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_GET_POINT),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_ESP32_JS_MONITOR_BRIGHTNESS)}},uh={init:function(){this.setColour(tT),this.appendValueInput("SUB").setCheck("var").appendField(mt.Msg.MSG.catOLED),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_SET_BRIGHTNESS).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendValueInput("STAT").setCheck([Number,Boolean]),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL)}},rh={init:function(){this.setColour(tT),this.appendValueInput("SUB").setCheck("var").appendField(mt.Msg.MSG.catOLED),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Clear_display),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Clear_display)}},lh={init:function(){this.jsonInit({colour:tT,args0:[{name:"SUB",type:"input_value"},{name:"state",options:[[mt.Msg.MPYTHON_DISPLAY_MODE_1,"1"],[mt.Msg.MPYTHON_DISPLAY_MODE_0,"0"]],type:"field_dropdown"},{name:"shape",options:[[mt.Msg.MPYTHON_DISPLAY_HOLLOW,"rect"],[mt.Msg.MPYTHON_DISPLAY_SOLID,"fill_rect"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"w",type:"input_value"},{name:"h",type:"input_value"}],inputsInline:!0,helpUrl:mt.Msg.mpython_HELPURL,tooltip:mt.Msg.MPYTHON_DISPLAY_SHAPE_RECT_TOOLTIP,message0:mt.Msg.MPYTHON_DISPLAY_SHAPE_RECT_MESSAGE1,nextStatement:null,previousStatement:null})}},dh={init:function(){this.jsonInit({colour:tT,args0:[{name:"SUB",type:"input_value"},{name:"state",options:[[mt.Msg.MPYTHON_DISPLAY_MODE_1,"1"],[mt.Msg.MPYTHON_DISPLAY_MODE_0,"0"]],type:"field_dropdown"},{name:"dir_h_v",options:[[mt.Msg.mpython_vertical,"0"],[mt.Msg.mpython_horizontal,"1"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"length",type:"input_value"}],inputsInline:!0,helpUrl:mt.Msg.mpython_HELPURL,tooltip:mt.Msg.MPYTHON_DISPLAY_HVLINE_TOOLTIP,message0:mt.Msg.MPYTHON_DISPLAY_HVLINE_MESSAGE1,nextStatement:null,previousStatement:null})}},Ih={init:function(){this.jsonInit({colour:tT,args0:[{name:"SUB",type:"input_value"},{name:"state",options:[[mt.Msg.mpython_display_hline_1,"1"],[mt.Msg.mpython_display_hline_0,"0"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x1",type:"input_value"},{name:"y1",type:"input_value"},{name:"x2",type:"input_value"},{name:"y2",type:"input_value"}],inputsInline:!0,helpUrl:mt.Msg.mpython_HELPURL,tooltip:mt.Msg.mpython_display_line_TOOLTIP,message0:mt.Msg.mpython_display_line_MESSAGE1,nextStatement:null,previousStatement:null})}},Th="#569A98",hh={init:function(){this.setColour(Th),this.appendValueInput("data").setCheck([String,"esp32_image","List","Tuple"]).appendField(mt.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),"micropython:esp32:mixbot"==Ot.Boards.getSelectedBoardKey()&&this.setTooltip(mt.Msg.MIXLY_MIXBOT_SHOW_SCROLL_STRING_TOOLTIP)}},Mh={init:function(){this.setColour(Th),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.OLED_DRAWSTR),this.appendValueInput("space").setCheck(Number).appendField(mt.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendDummyInput("").appendField(mt.Msg.TEXT_CENTER).appendField(new mt.FieldDropdown([[mt.Msg.MICROPYTHON_DISPLAY_YES,"True"],[mt.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"center"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},mh={init:function(){this.setColour(Th),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Oh={init:function(){this.setColour(Th),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.appendValueInput("space").setCheck(Number).appendField(mt.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Eh={init:function(){this.setColour(Th),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Rh={init:function(){this.setColour(Th),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},ch={init:function(){this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<12;t++){let e=this.appendDummyInput();for(let i=0;i<32;i++)e.appendField(new mt.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.setOutput(!0),this.setColour(Th),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Create_image1)}},gh={init:function(){this.jsonInit({colour:Th,args0:[{name:"image",options:[["HEART","HEART"],["HEART_SMALL","HEART_SMALL"],["HAPPY","HAPPY"],["SAD","SAD"],["SMILE","SMILE"],["SILLY","SILLY"],["FABULOUS","FABULOUS"],["SURPRISED","SURPRISED"],["ASLEEP","ASLEEP"],["ANGRY","ANGRY"],["CONFUSED","CONFUSED"],["NO","NO"],["YES","YES"]],type:"field_dropdown"}],output:["esp32_image","List"],helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/image.html#attributes",tooltip:mt.Msg.MIXLY_MICROBIT_Built_in_image1,message0:mt.Msg.MIXLY_MICROBIT_Built_in_image})}},Ch={init:function(){this.jsonInit({colour:Th,args0:[{name:"image",options:[["HEART","HEART"],["HEART_SMALL","HEART_SMALL"],["HAPPY","HAPPY"],["SAD","SAD"],["SMILE","SMILE"],["SILLY","SILLY"],["FABULOUS","FABULOUS"],["SURPRISED","SURPRISED"],["ASLEEP","ASLEEP"],["ANGRY","ANGRY"],["CONFUSED","CONFUSED"],["NO","NO"],["YES","YES"],["LEFT_ARROW","LEFT_ARROW"],["RIGHT_ARROW","RIGHT_ARROW"],["DRESS","DRESS"],["TRANSFORMERS","TRANSFORMERS"],["SCISSORS","SCISSORS"],["EXIT","EXIT"],["TREE","TREE"],["PACMAN","PACMAN"],["TARGET","TARGET"],["TSHIRT","TSHIRT"],["ROLLERSKATE","ROLLERSKATE"],["DUCK","DUCK"],["HOUSE","HOUSE"],["TORTOISE","TORTOISE"],["BUTTERFLY","BUTTERFLY"],["STICKFIGURE","STICKFIGURE"],["GHOST","GHOST"],["PITCHFORK","PITCHFORK"],["MUSIC_QUAVERS","MUSIC_QUAVERS"],["MUSIC_QUAVER","MUSIC_QUAVER"],["MUSIC_CROTCHET","MUSIC_CROTCHET"],["COW","COW"],["RABBIT","RABBIT"],["SQUARE_SMALL","SQUARE_SMALL"],["SQUARE","SQUARE"],["DIAMOND_SMALL","DIAMOND_SMALL"],["DIAMOND","DIAMOND"],["CHESSBOARD","CHESSBOARD"],["TRIANGLE_LEFT","TRIANGLE_LEFT"],["TRIANGLE","TRIANGLE"],["SNAKE","SNAKE"],["UMBRELLA","UMBRELLA"],["SKULL","SKULL"],["GIRAFFE","GIRAFFE"],["SWORD","SWORD"]],type:"field_dropdown"}],output:["esp32_image","List"],helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/image.html#attributes",tooltip:mt.Msg.MIXLY_MICROBIT_Built_in_image1,message0:mt.Msg.MIXLY_MICROBIT_Built_in_image})}},Sh={init:function(){var t=[[mt.Msg.MICROBIT_DISPLAY_UNION,"add"],[mt.Msg.MICROBIT_DISPLAY_MINUS,"sub"]];this.setColour(Th),this.setOutput(!0,"esp32_image"),this.appendValueInput("A").appendField(mt.Msg.MICROBIT_DISPLAY_MERGE_SHAPE),this.appendValueInput("B").appendField(new mt.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{"+":mt.Msg.MIXLY_MICROBIT_image_add,"-":mt.Msg.MIXLY_MICROBIT_image_reduce}[t]}))}},Ah={init:function(){this.setColour(Th),this.appendValueInput("A").setCheck("esp32_image").appendField(mt.Msg.MIXLY_MICROBIT_Invert_image1),this.setInputsInline(!0),this.setOutput(!0,"esp32_image")}},Lh={init:function(){var t=[[mt.Msg.MIXLY_UP,"shift_up"],[mt.Msg.MIXLY_DOWN,"shift_down"],[mt.Msg.MIXLY_LEFT,"shift_left"],[mt.Msg.MIXLY_RIGHT,"shift_right"]];this.setColour(Th),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.appendDummyInput("").appendField(mt.Msg.DISPLAY_IMAGE_LET),this.appendDummyInput("").appendField(mt.Msg.DISPLAY_IMAGE_LET2).appendField(new mt.FieldDropdown(t),"OP"),this.appendValueInput("val").appendField(mt.Msg.DISPLAY_IMAGE_SHIFT).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.DISPLAY_IMAGE_UNIT);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP"),i=mt.Msg.DISPLAY_IMAGE_LET,n=mt.Msg.DISPLAY_IMAGE_LET2,s=mt.Msg.DISPLAY_IMAGE_LET3;return i+n+{shift_up:mt.Msg.MIXLY_UP,shift_down:mt.Msg.MIXLY_DOWN,shift_left:mt.Msg.MIXLY_LEFT,shift_right:mt.Msg.MIXLY_RIGHT}[t]+s}))}},Nh={init:function(){this.setColour(Th),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_GET_POINT),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_ESP32_JS_MONITOR_BRIGHTNESS)}},Dh={init:function(){this.setColour(Th),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_SET_BRIGHTNESS).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendValueInput("STAT").setCheck([Number,Boolean]),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL)}},fh={init:function(){this.setColour(Th),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS)}},Fh={init:function(){this.setColour(Th),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS+" 0.0-1.0")}},Ph={init:function(){this.setColour(Th),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Clear_display),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Clear_display)}},vh={init:function(){this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<5;t++){let e=this.appendDummyInput();for(let i=0;i<8;i++)e.appendField(new mt.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.setOutput(!0),this.setColour(Th),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Create_image1)}},Yh={init:function(){this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<8;t++){let e=this.appendDummyInput();for(let i=0;i<12;i++)e.appendField(new mt.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.setOutput(!0),this.setColour(Th),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Create_image1)}},xh={init:function(){this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<8;t++){let e=this.appendDummyInput();for(let i=0;i<16;i++)e.appendField(new mt.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.setOutput(!0,"esp32_image"),this.setColour(Th),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Create_image1)}},Xh={init:function(){var t=[["4x5"+mt.Msg.MIXGO_ME_DISPLAY_HORIZONTAL,"'4x5'"],["5x5"+mt.Msg.MIXGO_ME_DISPLAY_HORIZONTAL,"'5x5'"],["5x8"+mt.Msg.MIXGO_ME_DISPLAY_VERTICAL,"'5x8'"]];this.setColour(Th),this.appendDummyInput().appendField(mt.Msg.OLED_SET_FONT).appendField(new mt.FieldDropdown(t),"OP"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},bh={init:function(){this.setColour(Th),this.appendValueInput("data").appendField(mt.Msg.OLED_BITMAP),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.OLED_BITMAP_OR_STRING)}},yh={init:function(){this.setColour(Th),this.appendValueInput("data").appendField(mt.Msg.OLED_BITMAP),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_NUMBER),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.OLED_BITMAP_OR_STRING)}},Vh={init:function(){this.setColour(Th),this.appendValueInput("data").setCheck([String,"esp32_image","List","Tuple"]).appendField(mt.Msg.OLED_DRAWSTR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.OLED_BITMAP_OR_STRING)}},Bh={init:function(){this.setColour(Th),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.OLED_DRAWSTR),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(mt.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendDummyInput("").appendField(mt.Msg.TEXT_CENTER).appendField(new mt.FieldDropdown([[mt.Msg.MICROPYTHON_DISPLAY_YES,"True"],[mt.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"center"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY)}},Gh={init:function(){this.setColour(Th),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(mt.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SCROLL_IMAGE_OR_STRING_DELAY)}},Uh={init:function(){this.setColour(Th),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},wh={init:function(){this.setColour(Th),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_SET_BRIGHTNESS).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendValueInput("STAT").setCheck([Number,Boolean]),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL)}},kh={init:function(){this.jsonInit({colour:Th,args0:[{name:"state",options:[[mt.Msg.MPYTHON_DISPLAY_MODE_1,"1"],[mt.Msg.MPYTHON_DISPLAY_MODE_0,"0"]],type:"field_dropdown"},{name:"shape",options:[[mt.Msg.MPYTHON_DISPLAY_HOLLOW,"rect"],[mt.Msg.MPYTHON_DISPLAY_SOLID,"fill_rect"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"w",type:"input_value"},{name:"h",type:"input_value"}],inputsInline:!0,helpUrl:mt.Msg.mpython_HELPURL,tooltip:mt.Msg.MPYTHON_DISPLAY_SHAPE_RECT_TOOLTIP,message0:mt.Msg.MPYTHON_DISPLAY_SHAPE_RECT_MESSAGE0,nextStatement:null,previousStatement:null})}},Hh={init:function(){this.jsonInit({colour:Th,args0:[{name:"state",options:[[mt.Msg.MPYTHON_DISPLAY_MODE_1,"1"],[mt.Msg.MPYTHON_DISPLAY_MODE_0,"0"]],type:"field_dropdown"},{name:"dir_h_v",options:[[mt.Msg.mpython_vertical,"0"],[mt.Msg.mpython_horizontal,"1"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"length",type:"input_value"}],inputsInline:!0,helpUrl:mt.Msg.mpython_HELPURL,tooltip:mt.Msg.MPYTHON_DISPLAY_HVLINE_TOOLTIP,message0:mt.Msg.MPYTHON_DISPLAY_HVLINE_MESSAGE0,nextStatement:null,previousStatement:null})}},Wh={init:function(){this.jsonInit({colour:Th,args0:[{name:"state",options:[[mt.Msg.mpython_display_hline_1,"1"],[mt.Msg.mpython_display_hline_0,"0"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x1",type:"input_value"},{name:"y1",type:"input_value"},{name:"x2",type:"input_value"},{name:"y2",type:"input_value"}],inputsInline:!0,helpUrl:mt.Msg.mpython_HELPURL,tooltip:mt.Msg.mpython_display_line_TOOLTIP,message0:mt.Msg.mpython_display_line_MESSAGE0,nextStatement:null,previousStatement:null})}},Kh={init:function(){this.jsonInit({colour:Th,args0:[{type:"field_label",name:"size_image",text:mt.Msg.MIXLY_MICROBIT_Built_in_image1},{name:"path",options:[["Heart","Heart"],["Angry","Angry"],["Bored","Bored"],["Confused","Confused"],["Happy","Happy"],["Paper","Paper"],["Rock","Rock"],["Sad","Sad"],["Scissors","Scissors"],["Silly","Silly"],["Sleep","Sleep"],["Small_heart","Small_heart"],["Small_paper","Small_paper"],["Small_rock","Small_rock"],["Small_scissors","Small_scissors"],["Smile","Smile"],["Surprise","Surprise"],["Wonderful","Wonderful"],["Eyes_Angry","Eyes_Angry"],["Awake","Awake"],["Black_eye","Black_eye"],["Bottom_left","Bottom_left"],["Bottom_right","Bottom_right"],["Crazy_1","Crazy_1"],["Crazy_2","Crazy_2"],["Disappointed","Disappointed"],["Dizzy","Dizzy"],["Down","Down"],["Evil","Evil"],["Hurt","Hurt"],["Knocked_out","Knocked_out"],["Love","Love"],["Middle_left","Middle_left"],["Middle_right","Middle_right"],["Neutral","Neutral"],["Nuclear","Nuclear"],["Pinch_left","Pinch_left"],["Pinch_middle","Pinch_middle"],["Pinch_right","Pinch_right"],["Tear","Tear"],["Tired_left","Tired_left"],["Tired_middle","Tired_middle"],["Tired_right","Tired_right"],["Toxic","Toxic"],["Up","Up"],["Winking","Winking"],["Accept","Accept"],["Backward","Backward"],["Decline","Decline"],["Forward","Forward"],["Left","Left"],["No_go","No_go"],["Question_mark","Question_mark"],["Right","Right"],["Stop_1","Stop_1"],["Stop_2","Stop_2"],["Thumbs_down","Thumbs_down"],["Thumbs_up","Thumbs_up"],["Warning","Warning"],["Bomb","Bomb"],["Boom","Boom"],["Fire","Fire"],["Flowers","Flowers"],["Forest","Forest"],["Lightning","Lightning"],["Light_off","Light_off"],["Light_on","Light_on"],["Night","Night"],["Pirate","Pirate"],["Snow","Snow"],["Target","Target"],["Bar_0","Bar_0"],["Bar_1","Bar_1"],["Bar_2","Bar_2"],["Bar_3","Bar_3"],["Bar_4","Bar_4"],["Dial_0","Dial_0"],["Dial_1","Dial_1"],["Dial_2","Dial_2"],["Dial_3","Dial_3"],["Dial_4","Dial_4"],["Dots_0","Dots_0"],["Dots_1","Dots_1"],["Dots_2","Dots_2"],["Dots_3","Dots_3"],["Hourglass_0","Hourglass_0"],["Hourglass_1","Hourglass_1"],["Hourglass_2","Hourglass_2"],["Timer_0","Timer_0"],["Timer_1","Timer_1"],["Timer_2","Timer_2"],["Timer_3","Timer_3"],["Timer_4","Timer_4"],["Water_level_0","Water_level_0"],["Water_level_1","Water_level_1"],["Water_level_2","Water_level_2"],["Water_level_3","Water_level_3"]],type:"field_dropdown"}],output:"String",helpUrl:"",tooltip:"",message0:"%1 %2"})}},Jh={init:function(){this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<5;t++){let e=this.appendDummyInput();for(let i=0;i<5;i++)e.appendField(new mt.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.setOutput(!0),this.setColour(Th),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Create_image1)}},Qh={init:function(){this.setColour(Th),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS)}},zh={init:function(){this.setColour(Th),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_AMBIENTBRIGHT),this.setInputsInline(!0),this.setOutput(!0,Number)}},qh={init:function(){this.setColour(Th),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS+" 0.0-1.0")}},jh={init:function(){var t=[[mt.Msg.mixpy_PL_PIE_SHADOW_N,"0"],[mt.Msg.CLOCKWISE+"90"+mt.Msg.blockpy_setheading_degree,"1"],[mt.Msg.CLOCKWISE+"180"+mt.Msg.blockpy_setheading_degree,"2"],[mt.Msg.CLOCKWISE+"270"+mt.Msg.blockpy_setheading_degree,"3"]];this.setColour(Th),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_SCREEN_ROTATE).appendField(new mt.FieldDropdown(t),"OP"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Zh={init:function(){this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<12;t++){let e=this.appendDummyInput();for(let i=0;i<12;i++)e.appendField(new mt.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.setOutput(!0),this.setColour(Th),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Create_image1)}},$h={init:function(){this.setColour(Th),this.appendValueInput("data").appendField(mt.Msg.OLED_BITMAP),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.OLED_BITMAP_OR_STRING)}},tM={init:function(){this.setColour(Th),this.appendValueInput("data").appendField(mt.Msg.OLED_BITMAP),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_NUMBER),this.appendValueInput("VAR").appendField(mt.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.OLED_BITMAP_OR_STRING)}},eM={init:function(){this.setColour(Th),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.OLED_DRAWSTR),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(mt.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendDummyInput("").appendField(mt.Msg.TEXT_CENTER).appendField(new mt.FieldDropdown([[mt.Msg.MICROPYTHON_DISPLAY_YES,"True"],[mt.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"center"),this.appendValueInput("VAR").appendField(mt.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY)}},iM={init:function(){this.setColour(Th),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},nM={init:function(){this.setColour(Th),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(mt.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.appendValueInput("VAR").appendField(mt.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SCROLL_IMAGE_OR_STRING_DELAY)}},sM={init:function(){this.setColour(Th),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},oM={init:function(){this.setColour(Th),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.appendValueInput("VAR").appendField(mt.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},_M={init:function(){this.jsonInit({colour:Th,args0:[{name:"shape",options:[[mt.Msg.MPYTHON_DISPLAY_HOLLOW,"rect"],[mt.Msg.MPYTHON_DISPLAY_SOLID,"fill_rect"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"w",type:"input_value"},{name:"h",type:"input_value"},{name:"VAR",type:"input_value"}],inputsInline:!0,helpUrl:mt.Msg.mpython_HELPURL,tooltip:mt.Msg.MPYTHON_DISPLAY_SHAPE_RECT_TOOLTIP,message0:mt.Msg.ONBOARD_TFT_DISPLAY_SHAPE_RECT_MESSAGE0,nextStatement:null,previousStatement:null})}},aM={init:function(){this.jsonInit({colour:Th,args0:[{name:"dir_h_v",options:[[mt.Msg.mpython_vertical,"0"],[mt.Msg.mpython_horizontal,"1"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"length",type:"input_value"},{name:"VAR",type:"input_value"}],inputsInline:!0,helpUrl:mt.Msg.mpython_HELPURL,tooltip:mt.Msg.MPYTHON_DISPLAY_HVLINE_TOOLTIP,message0:mt.Msg.ONBOARD_TFT_DISPLAY_HVLINE_MESSAGE0,nextStatement:null,previousStatement:null})}},pM={init:function(){this.jsonInit({colour:Th,args0:[{type:"input_dummy"},{name:"x1",type:"input_value"},{name:"y1",type:"input_value"},{name:"x2",type:"input_value"},{name:"y2",type:"input_value"},{name:"VAR",type:"input_value"}],inputsInline:!0,helpUrl:mt.Msg.mpython_HELPURL,tooltip:mt.Msg.mpython_display_line_TOOLTIP,message0:mt.Msg.mpython_display_line_MESSAGE0,nextStatement:null,previousStatement:null})}},uM={init:function(){var t=[[mt.Msg.MIXLY_UP,"shift_up"],[mt.Msg.MIXLY_DOWN,"shift_down"],[mt.Msg.MIXLY_LEFT,"shift_left"],[mt.Msg.MIXLY_RIGHT,"shift_right"]];this.setColour(Th),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.appendDummyInput("").appendField(mt.Msg.DISPLAY_IMAGE_LET),this.appendDummyInput("").appendField(mt.Msg.DISPLAY_IMAGE_LET2).appendField(new mt.FieldDropdown(t),"OP"),this.appendValueInput("val").appendField(mt.Msg.DISPLAY_IMAGE_SHIFT).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.DISPLAY_IMAGE_UNIT);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP"),i=mt.Msg.DISPLAY_IMAGE_LET,n=mt.Msg.DISPLAY_IMAGE_LET2,s=mt.Msg.DISPLAY_IMAGE_LET3;return i+n+{up:mt.Msg.MIXLY_UP,down:mt.Msg.MIXLY_DOWN,left:mt.Msg.MIXLY_LEFT,right:mt.Msg.MIXLY_RIGHT}[t]+s}))}},rM={init:function(){this.setColour(Th),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendDummyInput().appendField(mt.Msg.HTML_COLOUR),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_ESP32_JS_MONITOR_BRIGHTNESS)}},lM={init:function(){this.setColour(Th),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.MIXLY_LCD_SETCOLOR).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendValueInput("VAR").appendField(mt.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL)}},dM={init:function(){this.setColour(Th),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Clear_display),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Clear_display)}},IM={init:function(){this.setColour(Th),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS)}},TM={init:function(){this.setColour(Th),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS+" 0.0-1.0")}},hM={init:function(){this.setColour(Th),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_SCREEN_FILL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},MM={init:function(){this.setColour(Th),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_INIT_CLOCK),this.appendDummyInput().appendField(mt.Msg.MIXLY_CENTER_POS),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.OLED_CIRCLE_RADIUS),this.appendValueInput("VAR").appendField(mt.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},mM={init:function(){this.setColour(Th),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.GET_RTCTIME),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},OM={init:function(){this.setColour(Th),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.SET_TIME),this.appendValueInput("h").setCheck(Number).appendField(mt.Msg.MIXLY_HOUR),this.appendValueInput("m").setCheck(Number).appendField(mt.Msg.MIXLY_MINUTE),this.appendValueInput("s").setCheck(Number).appendField(mt.Msg.MIXLY_SECOND),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},EM={init:function(){this.setColour(Th),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.DRAW_CLOCK),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},RM={init:function(){this.setColour(Th),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.CLEAR_CLOCK),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_STM32_TFT_BACKGROUND_COLOR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},cM={init:function(){this.jsonInit({colour:Th,args0:[{name:"shape",options:[[mt.Msg.MPYTHON_DISPLAY_HOLLOW,"False"],[mt.Msg.MPYTHON_DISPLAY_SOLID,"True"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"r",type:"input_value"},{name:"VAR",type:"input_value"}],inputsInline:!0,helpUrl:mt.Msg.mpython_HELPURL,message0:mt.Msg.ONBOARD_TFT_DISPLAY_SHAPE_CIRCLE_MESSAGE0,nextStatement:null,previousStatement:null})}},gM="#777777",CM={init:function(){this.setColour(gM),this.appendDummyInput("").appendField("from ").appendField(new mt.FieldTextInput("ESP32"),"path").appendField(" import ").appendField(new mt.FieldTextInput("*"),"module"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},SM={init:function(){this.setColour(gM),this.appendDummyInput("").appendField("import ").appendField(new mt.FieldTextInput("module"),"module"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},AM={init:function(){this.setColour(gM),this.appendDummyInput("").appendField(new mt.FieldTextInput("my_function"),"NAME"),this.itemCount_=1,this.arguments_=["x"],this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new mt.icons.MutatorIcon(["factory_create_with_item"],this))},mutationToDom:function(){var t=document.createElement("mutation");t.setAttribute("items",this.itemCount_);for(var e=0;ee?t[e]:'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},dm={init:function(){this.setColour(om),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(mt.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},Im={init:function(){this.setColour(om),this.appendDummyInput().appendField(mt.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},Tm={init:function(){this.setColour(om),this.appendDummyInput().appendField(mt.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},hm={init:function(){this.setColour(om),this.appendDummyInput().appendField(mt.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").setCheck(String).appendField(mt.Msg.MIXLY_EMQX_SERVER).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("USERNAME").setCheck(String).appendField(mt.Msg.MIXLY_WIFI_USERNAME).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("PASSWORD").setCheck(String).appendField(mt.Msg.MIXLY_IOT_PASSWORD).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("PROJECT").setCheck(String).appendField(mt.Msg.MIXLY_EMQX_PROJECT).setAlign(mt.inputs.Align.RIGHT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Mm={init:function(){this.setColour(om),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(mt.Msg.MIXLY_EMQX_PUBLISH_NEW).appendField(mt.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MSG").appendField(mt.Msg.HTML_BODY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_IOT_EMQX_PUBLISH_TOOLTIP)}},mm={init:function(){this.setColour(om),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(mt.Msg.MIXLY_EMQX_SUBSCRIBE+mt.Msg.MIXLY_MICROBIT_MSG).appendField(mt.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("METHOD").appendField(mt.Msg.MIXLY_EMQX_SET_METHOD),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_IOT_EMQX_SUBSCRIBE_TOOLTIP)}},Om={init:function(){this.setColour(om),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_DISCONNECT_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Em={init:function(){this.setColour(om),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(mt.Msg.MIXLY_EMQX_CONNECT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Rm={init:function(){this.setColour(om),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_CHECK_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},cm={init:function(){this.setColour(om),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROPYTHON_FORMAT).appendField(mt.Msg.MQTT_Topic),this.setInputsInline(!0),this.setOutput(!0)}},gm={init:function(){this.setColour(om),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROPYTHON_FORMAT).appendField(mt.Msg.MIXLY_EMQX_PUBLISH_MSG),this.setInputsInline(!0),this.setOutput(!0)}},Cm={init:function(){this.setColour(om),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_ESP32_IOT_MAP_FORMATING),this.setOutput(!0)}},Sm={init:function(){this.setColour(om),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_MICROPYTHON_FORMAT+"(Json)"),this.setOutput(!0)}},Am={init:function(){this.setColour(om),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(mt.Msg.MIXLY_EMQX_PING),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_IOT_EMQX_PING_TOOLTIP)}},Lm={init:function(){this.setColour(om),this.appendDummyInput().appendField("MixIO").appendField(mt.Msg.MIXLY_GET_NTP),this.appendValueInput("addr").appendField(mt.Msg.blynk_SERVER_ADD),this.setInputsInline(!0),this.setOutput(!0)}},Nm={init:function(){this.setColour(om),this.appendDummyInput().appendField(mt.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").appendField(mt.Msg.MIXLY_EMQX_SERVER).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("KEY").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+mt.Msg.MIXLY_MIXIO_SHARE_KEY).setAlign(mt.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Dm={init:function(){this.setColour(om),this.appendDummyInput().appendField(mt.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").appendField(mt.Msg.MIXLY_EMQX_SERVER).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("KEY").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"Mixly Key").setAlign(mt.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},fm={init:function(){this.VISITOR_ID=Ot.Config.BOARD.visitorId.str32.substring(0,8).toUpperCase(),this.setColour(om),this.appendDummyInput("").appendField(new mt.FieldTextInput(this.visitorId),"VISITOR_ID"),this.setOutput(!0,null)},onchange:function(){const t=this.getFieldValue("VISITOR_ID");this.VISITOR_ID!==t&&this.setFieldValue(this.VISITOR_ID,"VISITOR_ID")}},Fm={init:function(){this.setColour(om),this.appendDummyInput().appendField("MixIO").appendField(mt.Msg.MSG.catEthernet_clinet),this.setOutput(!0),this.setInputsInline(!0)}},Pm={init:function(){this.setColour(om),this.appendDummyInput().appendField("HTTP"+mt.Msg.MIXLY_Client),this.appendValueInput("addr").appendField(mt.Msg.DISPLAY_IMAGE_LET2),this.appendDummyInput().appendField(mt.Msg.MIXLY_REQUESTS_GET).appendField(mt.Msg.MIXLY_GET_CURRENT_TIME).appendField(mt.Msg.MIXLY_OPEN_DEBUG).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},vm={init:function(){this.setColour(om),this.appendDummyInput().appendField("HTTP"+mt.Msg.MIXLY_Client).appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_REQUESTS_LEN,"client_len"],[mt.Msg.MIXLY_REQUESTS_GET_LEN,"server_len"],[mt.Msg.MIXLY_REQUESTS_MESSAGE,"text"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},Ym={init:function(){this.setColour(om),this.appendDummyInput().appendField("MQTT"+mt.Msg.MIXLY_Client),this.appendValueInput("addr").appendField(mt.Msg.MIXLY_CONNECTTO),this.appendDummyInput().appendField(mt.Msg.MIXLY_INIT_SUBSCRIBE).appendField(mt.Msg.MQTT_Topic).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GET_CURRENT_TIME,""]]),"key").appendField(mt.Msg.MIXLY_OPEN_DEBUG).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"key2"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},xm={init:function(){this.setColour(om),this.appendDummyInput().appendField("MQTT"+mt.Msg.MIXLY_Client).appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_REQUESTS_LEN,"client_len"],[mt.Msg.MIXLY_REQUESTS_GET_LEN,"server_len"],[mt.Msg.MIXLY_REQUESTS_MESSAGE,"time_msg()"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},Xm=_m,bm=am,ym=pm,Vm=um,Bm=lm,Gm=225,Um={init:function(){this.setColour(Gm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_NETWORK_INIT),this.appendDummyInput().appendField(mt.Msg.MIXLY_NETWORK_MODE).appendField(new mt.FieldDropdown([["STA","STA"],["AP","AP"]]),"mode"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_INIT_TOOLTIP)}},wm={init:function(){this.setColour(Gm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_NETWORK_WIFI_OPEN,"True"],[mt.Msg.MIXLY_NETWORK_WIFI_CLOSE,"False"]]),"op"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_NETWORK_WIFI_FLAG),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("op"),i=mt.Msg.MIXLY_ESP32_NETWORK_OPEN_TOOLTIP;return{True:mt.Msg.MIXLY_NETWORK_WIFI_OPEN,False:mt.Msg.MIXLY_NETWORK_WIFI_CLOSE}[e]+i}))}},km={init:function(){this.setColour(Gm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_NETWORK_WIFI_IS_ACTIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_NETWORK_WIFI_IS_ACTIVE)}},Hm={init:function(){this.setColour(Gm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_NETWORK_WIFI_SCAN),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip((function(){return mt.Msg.MIXLY_ESP32_NETWORK_SCAN_TOOLTIP+{0:"ssid",1:"bssid",2:"channel",3:"RSSI",4:"authmode",5:"hidden",all:mt.Msg.MIXLY_NETWORK_WIFI_SCAN_ATTRIBUTE}.all}))}},Wm={init:function(){this.setColour(Gm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_NETWORK_CONNECT),this.appendValueInput("id").setCheck(String).appendField(mt.Msg.HTML_NAME),this.appendValueInput("password").setCheck(String).appendField(mt.Msg.HTML_PASSWORD),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_CONNECT_TOOLTIP)}},Km={init:function(){this.setColour(Gm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_NETWORK_WIFI_CONNECT),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SYMBOL_QUESTION),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_WIFI_CONNECT_TOOLTIP)}},Jm={init:function(){this.setColour(Gm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_NETWORK_GET_WIFI),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_ESP32_NETWORK_IP,"0"],[mt.Msg.MIXLY_ESP32_NETWORK_MASK,"1"],[mt.Msg.MIXLY_ESP32_NETWORK_GATEWAY,"2"],["DNS","3"]]),"mode"),this.setOutput(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("mode");return mt.Msg.MIXLY_ESP32_NETWORK_GET_WIFI_TOOLTIP+{0:mt.Msg.MIXLY_ESP32_NETWORK_IP,1:mt.Msg.MIXLY_ESP32_NETWORK_MASK,2:mt.Msg.MIXLY_ESP32_NETWORK_GATEWAY,3:"DNS"}[e]}))}},Qm={init:function(){this.setColour(Gm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_NETWORK_STOP_CONNECT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_STOP_TOOLTIP)}},zm={init:function(){this.setColour(Gm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_NETWORK_GET_WIFI),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_NETWORK_WIFI_ESSID,"essid"],[mt.Msg.MIXLY_NETWORK_WIFI_CHANNEL,"channel"]]),"op"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_GET_WIFI_TOOLTIP)}},qm={init:function(){this.setColour(Gm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.LISTS_SET_INDEX_SET),this.appendValueInput("essid").setCheck(String).appendField(mt.Msg.MIXLY_NETWORK_WIFI_ESSID),this.appendValueInput("channel").setCheck(Number).appendField(mt.Msg.MIXLY_NETWORK_WIFI_CHANNEL),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_AP_CONNECT_TOOLTIP)}},jm={init:function(){this.setColour(Gm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_NETWORK_SERVER1),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_NETWORK_SERVER2),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_CLOSE_TOOLTIP)}},Zm={init:function(){this.setColour(Gm),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_INIT).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_TYPE).appendField(new mt.FieldDropdown([["TCP","TCP"],["UDP","UDP"]]),"mode"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("mode");return mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_INIT_TOOLTIP+{TCP:"TCP",UDP:"UDP"}[e]}))}},$m={init:function(){this.setColour(Gm),this.appendValueInput("VAR").setCheck("var").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_LET_SOCKET),this.appendValueInput("address").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_BIND_TO_ADDRESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_BIND_TOOLTIP)}},tO={init:function(){this.setColour(Gm),this.appendValueInput("VAR").setCheck("var").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_LET_SOCKET),this.appendValueInput("address").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_CONNECT_TO_ADDRESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_CONNECT_TOOLTIP)}},eO={init:function(){this.setColour(Gm),this.appendValueInput("VAR").setCheck("var"),this.appendValueInput("queue").setCheck(Number).appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_LISTEN).appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_QUEUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_LISTEN_TOOLTIP)}},iO={init:function(){this.setColour(Gm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_ACCEPT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_ACCEPT_TOOLTIP)}},nO={init:function(){this.setColour(Gm),this.appendValueInput("VAR").setCheck("var").appendField("TCP"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_RECEIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_RECEIVE_TOOLTIP)}},sO={init:function(){this.setColour(Gm),this.appendValueInput("VAR").setCheck("var").appendField("TCP"),this.appendValueInput("content").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_SEND_TOOLTIP)}},oO={init:function(){this.setColour(Gm),this.appendValueInput("VAR").setCheck("var").appendField("UDP"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_RECEIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_RECEIVE_FROM_TOOLTIP)}},_O={init:function(){this.setColour(Gm),this.appendValueInput("VAR").setCheck("var").appendField("UDP"),this.appendValueInput("content").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.appendValueInput("address").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_TO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_SEND_TO_TOOLTIP)}},aO={init:function(){this.setColour(Gm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_CLOSE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_CLOSE_TOOLTIP)}},pO={init:function(){this.setColour(Gm),this.appendValueInput("DOMAIN").appendField(mt.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(mt.Msg.blockpy_REQUESTS_GET).appendField(new mt.FieldTextInput("response"),"VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.blockpy_REQUESTS_GET_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},uO={init:function(){this.appendValueInput("VAL");var t=[[mt.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE,"status_code"],[mt.Msg.blockpy_REQUESTS_GET_ATTR_TEXT,"text"],[mt.Msg.blockpy_REQUESTS_GET_ATTR_COOKIES,"cookies"],[mt.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT,"content"]];this.setColour(Gm),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_GET).appendField(new mt.FieldDropdown(t),"ATTR"),this.setInputsInline(!0),this.setOutput(!0,String);var e=this;this.setTooltip((function(){var t=e.getFieldValue("DIR");return{clear:mt.Msg.MIXLY_TOOLTIP_TURTEL_CLEAR,reset:mt.Msg.MIXLY_TOOLTIP_TURTEL_RESET,home:mt.Msg.MIXLY_TOOLTIP_TURTEL_HOME}[t]}))}},rO={init:function(){this.appendValueInput("VAR").appendField(mt.Msg.DISPLAY_IMAGE_LET2).setCheck(String);this.setColour(Gm),this.appendDummyInput("").appendField(mt.Msg.blockpy_CONDUCT).appendField(new mt.FieldDropdown([["post","post"],["put","put"],["delete","delete"],["head","head"],["option","option"]]),"DIR"),this.appendDummyInput("").appendField(mt.Msg.blockpy_REQUESTS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{forward:mt.Msg.MIXLY_TOOLTIP_TURTEL_FORWARD,backward:mt.Msg.MIXLY_TOOLTIP_TURTEL_BACKWARD}[e]}))}},lO={init:function(){this.setColour(Gm),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GET_NTP+"(NTP)"),this.appendValueInput("data").appendField(mt.Msg.blynk_SERVER_ADD),this.setOutput(!0,"Tuple"),this.setInputsInline(!0)}},dO={init:function(){this.setColour(Gm),this.appendDummyInput("").appendField(new mt.FieldDropdown([["ntp.aliyun.com","ntp.aliyun.com"],["ntp1.aliyun.com","ntp1.aliyun.com"],["ntp2.aliyun.com","ntp2.aliyun.com"],["ntp3.aliyun.com","ntp3.aliyun.com"],["ntp4.aliyun.com","ntp4.aliyun.com"],["ntp5.aliyun.com","ntp5.aliyun.com"],["ntp6.aliyun.com","ntp6.aliyun.com"],["ntp7.aliyun.com","ntp7.aliyun.com"],["time1.cloud.tencent.com","time1.cloud.tencent.com"],["time2.cloud.tencent.com","time2.cloud.tencent.com"],["time3.cloud.tencent.com","time3.cloud.tencent.com"],["time4.cloud.tencent.com","time4.cloud.tencent.com"],["time5.cloud.tencent.com","time5.cloud.tencent.com"]]),"op"),this.setOutput(!0)}},IO="#A58C5B",TO={init:function(){this.setColour(IO),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_BUTTON).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_IS_PRESSED),this.appendValueInput("STAT").appendField(mt.Msg.MIXLY_ELECLEVEL),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_SENOR_IS_PRESSED)}},hO={init:function(){this.setColour(IO),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_BUTTON).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_WAS_PRESSED),this.appendValueInput("STAT").appendField(mt.Msg.MIXLY_ELECLEVEL),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_SENOR_WAS_PRESSED)}},MO={init:function(){this.setColour(IO),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_BUTTON).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_PRESSES),this.appendValueInput("VAR").setCheck(Number).appendField(mt.Msg.MIXLY_GET_PRESSES_TIME),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.PROCEDURES_DEFRETURN_RETURN+mt.Msg.MIXLY_BUTTON+mt.Msg.MIXLY_GET_PRESSES)}},mO={init:function(){this.setColour(IO),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_BUTTON).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_RISING,"machine.Pin.IRQ_RISING"],[mt.Msg.MIXLY_FALLING,"machine.Pin.IRQ_FALLING"],[mt.Msg.MIXLY_CHANGE,"(machine.Pin.IRQ_RISING | machine.Pin.IRQ_FALLING)"]]),"mode"),this.appendValueInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_INOUT_ATTACHINTERRUPT)}},OO={init:function(){this.setColour(IO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_shake,"shake"],[mt.Msg.MIXLY_UP,"up"],[mt.Msg.MIXLY_DOWN,"down"],[mt.Msg.MIXLY_LEFT,"left"],[mt.Msg.MIXLY_RIGHT,"right"],[mt.Msg.MIXLY_MICROBIT_face_up,"face up"],[mt.Msg.MIXLY_MICROBIT_face_down,"face down"],[mt.Msg.MIXLY_MICROBIT_freefall,"freefall"],["3g","3g"],["6g","6g"],["8g","8g"]]),"gesture"),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("gesture"),i=mt.Msg.MIXLY_MICROBIT_JS_CURRENT,n=mt.Msg.MSG.catSensor,s=mt.Msg.MIXLY_MICROBIT_JS_STATE,o=mt.Msg.MIXLY_MICROBIT_PERFORMANCE;return i+n+s+{shake:mt.Msg.MIXLY_MICROBIT_shake,up:mt.Msg.MIXLY_UP,down:mt.Msg.MIXLY_DOWN,left:mt.Msg.MIXLY_LEFT,right:mt.Msg.MIXLY_RIGHT,"face up":mt.Msg.MIXLY_MICROBIT_face_up,"face down":mt.Msg.MIXLY_MICROBIT_face_down,freefall:mt.Msg.MIXLY_MICROBIT_freefall,"3g":"3g","6g":"6g","8g":"8g"}[e]+o}))}},EO={init:function(){this.setColour(IO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_ADXL345).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION).appendField(new mt.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=mt.Msg.MIXLY_MICROBIT_Direction,s=mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION1;return i+{x:"x",y:"y",z:"z","(x,y,z)":mt.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},RO={init:function(){this.setColour(IO),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_LIGHT_LEVEL),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SENSOR_LIGHT_LEVEL_TOOLTIP)}},cO={init:function(){var t=[[mt.Msg.MIXLY_GETTEMPERATUE,"temperature"],[mt.Msg.MIXLY_GETHUMIDITY,"humidity"]];this.setColour(IO),this.appendValueInput("PIN",Number).appendField(new mt.FieldDropdown([["DHT11","DHT11"],["DHT22","DHT22"]]),"TYPE").appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(new mt.FieldDropdown(t),"WHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("WHAT");return{temperature:mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_TEM,relative_humidity:mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_HUM,tempandhum:mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_TEM_HUM}[t]}))}},gO={init:function(){this.setColour(IO),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_EXTERN_LIGHT),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_EXTERN_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.ESP32_SENSOR_NIXGO_LIGHT_TOOLTIP)}},CO={init:function(){this.setColour(IO),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_EXTERN_SOUND),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_EXTERN_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.ESP32_SENSOR_NIXGO_SOUND_TOOLTIP)}},SO={init:function(){this.setColour(IO),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new mt.FieldDropdown([[mt.Msg.TEXT_TRIM_LEFT,"left"],[mt.Msg.TEXT_TRIM_RIGHT,"right"]]),"direction").appendField(mt.Msg.MIXLY_ESP32_NEAR),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("direction"),i=mt.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP,n=mt.Msg.MIXLY_ESP32_NEAR;return i+{left:mt.Msg.TEXT_TRIM_LEFT,right:mt.Msg.TEXT_TRIM_RIGHT}[e]+n}))}},AO={init:function(){this.setColour(IO),this.appendValueInput("SUB").appendField("BMP280").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETTEMPERATUE,"get_BMP_temperature()"],[mt.Msg.MIXLY_GETPRESSURE,"get_BMP_pressure()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{"get_BMP_temperature()":mt.Msg.MIXLY_MICROBIT_SENSOR_BMP_temperature_TOOLTIP,"get_BMP_pressure()":mt.Msg.MIXLY_MICROBIT_SENSOR_BMP_press_TOOLTIP}[e]}))}},LO={init:function(){this.setColour(IO),this.appendValueInput("SUB").appendField("SHT20").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETTEMPERATUE,"get_SHT_temperature()"],[mt.Msg.MIXLY_GETHUMIDITY,"get_SHT_relative_humidity()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{"get_SHT_temperature()":mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,"get_SHT_relative_humidity()":mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},NO={init:function(){this.setColour(IO),this.appendValueInput("PIN",Number).appendField("DS18x20 "+mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GETTEMPERATUE),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_MICROBIT_SENSOR_DS18X20_TOOLTIP)}},DO={init:function(){this.setColour(IO),this.appendDummyInput("").appendField("LM35"+mt.Msg.MIXLY_TEMP),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GETTEMPERATUE),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_LM35)}},fO={init:function(){this.setColour(IO),this.appendValueInput("I2CSUB").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new mt.FieldDropdown([["MPU9250","MPU9250"],["BMP280","BMP280"],["SHT20","SHT20"],["ADXL345","ADXL345"],["LTR308","LTR308"],["LTR381RGB","LTR381RGB"],["HP203X","HP203X"],["SHTC3","SHTC3"],["AHT21","AHT21"],["VL53L0X","VL53L0X"],["QMC5883L","QMC5883L"],["MAX30102","MAX30102"],["APDS9960","APDS9960"],["RFID","RFID"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setFieldValue("LTR308","key")}},FO={init:function(){this.setColour(IO),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_MAX30102+" MAX30102"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_ESP32_MAX30102_IR,"[0]"],[mt.Msg.MIXLY_ESP32_MAX30102_RED,"[1]"],[mt.Msg.MIXLY_ESP32_MAX30102_IR+","+mt.Msg.MIXLY_ESP32_MAX30102_RED,""]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},PO={init:function(){this.setColour(IO),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_APDS9960+" APDS9960"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_ESP32_APDS9960_COLOR,"color"],[mt.Msg.MIXLY_ESP32_APDS9960_GESTURE,"gesture"],[mt.Msg.MIXLY_ESP32_APDS9960_APPROACH,"proximity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},vO={init:function(){this.setColour(IO),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_EXTERN_LIGHT+" LTR308"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_LIGHT_INTENSITY),this.setOutput(!0,Number),this.setInputsInline(!0)}},YO={init:function(){this.setColour(IO),this.appendValueInput("SUB").appendField(mt.Msg.HTML_COLOUR+mt.Msg.MSG.catSensor+" LTR381RGB").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GET+mt.Msg.HTML_COLOUR,"[2]"],[mt.Msg.MIXLY_GET+mt.Msg.MIXLY_IR_STRENGTH,"[1]"],[mt.Msg.MIXLY_GET+mt.Msg.MIXLY_LIGHT_STRENGTH,"[0]"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},xO={init:function(){this.setColour(IO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_EXTERN_LIGHTUV+" LTR390UV").setCheck("var"),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GET_ENV_LIGHT,"E"],[mt.Msg.MIXLY_GET_ULTRAVIOLET,"U"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},XO={init:function(){this.setColour(IO),this.appendDummyInput().appendField(mt.Msg.MIXLY_LASER_RANGE+" VL53L0X"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_DISTANCE+"(mm)"),this.setOutput(!0,Number),this.setInputsInline(!0)}},bO={init:function(){this.setColour(IO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_TEM_HUM+" SHTC3").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETTEMPERATUE,"temperature"],[mt.Msg.MIXLY_GETHUMIDITY,"humidity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{temperature:mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,humidity:mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},yO={init:function(){this.setColour(IO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_TEM_HUM+" AHT21").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETTEMPERATUE,"temperature"],[mt.Msg.MIXLY_GETHUMIDITY,"humidity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{temperature:mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,relative_humidity:mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},VO={init:function(){this.setColour(IO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_Altitude+mt.Msg.MSG.catSensor+" HP203X").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETPRESSURE,"pressure()"],[mt.Msg.MIXLY_GETTEMPERATUE,"temperature()"],[mt.Msg.MIXLY_GET_ALTITUDE,"altitude()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},BO={init:function(){this.setColour(IO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MIXGOPE_FIELD+mt.Msg.MSG.catSensor+" QMC5883L").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"get_bearing()"],[mt.Msg.MIXLY_TEMPERATURE,"get_temp()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},GO={init:function(){this.setColour(IO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_shake,"shake"],[mt.Msg.MIXLY_UP,"up"],[mt.Msg.MIXLY_DOWN,"down"],[mt.Msg.MIXLY_LEFT,"left"],[mt.Msg.MIXLY_RIGHT,"right"],[mt.Msg.MIXLY_MICROBIT_face_up,"face up"],[mt.Msg.MIXLY_MICROBIT_face_down,"face down"]]),"gesture"),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("gesture"),i=mt.Msg.MIXLY_MICROBIT_JS_CURRENT,n=mt.Msg.MSG.catSensor,s=mt.Msg.MIXLY_MICROBIT_JS_STATE,o=mt.Msg.MIXLY_MICROBIT_PERFORMANCE;return i+n+s+{shake:mt.Msg.MIXLY_MICROBIT_shake,up:mt.Msg.MIXLY_UP,down:mt.Msg.MIXLY_DOWN,left:mt.Msg.MIXLY_LEFT,right:mt.Msg.MIXLY_RIGHT,"face up":mt.Msg.MIXLY_MICROBIT_face_up,"face down":mt.Msg.MIXLY_MICROBIT_face_down}[e]+o}))}},UO={init:function(){this.setColour(IO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION).appendField(new mt.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=mt.Msg.MIXLY_MICROBIT_Direction,s=mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION1;return i+{x:"x",y:"y",z:"z","(x,y,z)":mt.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},wO={init:function(){this.setColour(IO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_GET+mt.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH).appendField(new mt.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=mt.Msg.MIXLY_MICROBIT_Direction,s=mt.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH;return i+{x:"x",y:"y",z:"z","(x,y,z)":mt.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},kO={init:function(){this.setColour(IO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+mt.Msg.MIXLY_ESP32_SENOR_GYRO).appendField(new mt.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=mt.Msg.MIXLY_MICROBIT_Direction,s=mt.Msg.MIXLY_ESP32_SENOR_GYRO;return i+{x:"x",y:"y",z:"z","(x,y,z)":mt.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},HO={init:function(){this.setColour(IO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS)}},WO={init:function(){this.setColour(IO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GETTEMPERATUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_GETTEMPERATUE)}},KO={init:function(){this.setColour(IO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_GET_COMPASS).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH,"strength"],[mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"heading"]]),"compass"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("compass");return mt.Msg.MIXLY_MICROBIT_JS_GET_COMPASS+{strength:mt.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH,heading:mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE}[e]}))}},JO={init:function(){this.setColour(IO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Reset_COMPASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Reset_COMPASS)}},QO={init:function(){this.setColour(IO),this.appendValueInput("SPISUB").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new mt.FieldDropdown([["RFID","RFID"],["WS-LoRa","Weather"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setFieldValue("RFID","key")}},zO={init:function(){this.setColour(IO),this.appendDummyInput().appendField("RFID"+mt.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(mt.Msg.MIXLY_LIST_INDEX),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_RFID_READ_CARD_UID,"id"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL,"content"],[mt.Msg.MIXLY_ALL,"ALL"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},qO={init:function(){this.setColour(IO),this.appendDummyInput().appendField("RFID"+mt.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RFID_READ_CARD_UID),this.setOutput(!0,Number),this.setInputsInline(!0)}},jO={init:function(){this.setColour(IO),this.appendDummyInput().appendField("RFID"+mt.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(mt.Msg.MIXLY_LIST_INDEX),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL),this.setOutput(!0,"Tuple"),this.setInputsInline(!0)}},ZO={init:function(){this.setColour(IO),this.appendDummyInput().appendField(mt.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(mt.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(mt.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},$O={init:function(){this.setColour(IO),this.appendDummyInput().appendField(mt.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(mt.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(mt.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.appendDummyInput().appendField(mt.Msg.RETURN_SUCCESS_OR_NOT),this.setInputsInline(!0),this.setOutput(!0,Boolean)}},tE={init:function(){this.setColour(IO),this.appendDummyInput().appendField("RFID"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_RFID_SCAN_OK,"0"],[mt.Msg.MIXLY_RFID_SCAN_NOTAGERR,"1"],[mt.Msg.MIXLY_RFID_SCAN_ERROR,"2"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},eE={init:function(){this.setColour(IO),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_GET).appendField(new mt.FieldDropdown([["全部(元组)","data()[0]"],["全部(json)","data()[1]"],["全部(json,附带位置信息)","data()[2]"],["编号","data()[0][0]"],["电量","data()[0][1]"],["风速","data()[0][2]"],["阵风","data()[0][3]"],["风向","data()[0][4]"],["雨量","data()[0][5]"],["温度","data()[0][6]"],["湿度","data()[0][7]"],["光照","data()[0][8]"],["紫外线","data()[0][9]"],["大气压","data()[0][10]"],["信号强度","data()[0][11]"],["信噪比","data()[0][12]"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip("返回气象数据元组 data= (设备id,电池状态,风速m/s,阵风m/s,风向°,雨量mm,温度℃,湿度%,光照Lux,UVI,大气压Pa,信号强度dB,信噪比dB)")}},iE={init:function(){this.setColour(IO),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SERIAL_AVAILABLE),this.setOutput(!0,Number),this.setInputsInline(!0)}},nE={init:function(){this.setColour(IO),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendValueInput("BASE").appendField("以主题"),this.appendDummyInput("").appendField("串口发送至MixIO"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},sE={init:function(){this.setColour(IO),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.itemCount_=2,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new mt.icons.MutatorIcon(["weather_set_label_item"],this)),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip()},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("weather_set_label_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n>6),i.push(128|63&o)):(2048<=o&&o<=55295||57344<=o&&o<=65535)&&(n+=3,i.push(224|15&o>>12),i.push(128|63&o>>6),i.push(128|63&o))}for(s=0;s>8,255&n].concat(i)}(t,!0),i="",n=0;n=0?"0x700000":["mixgo_zero"].indexOf(n)>=0?"0xE00000":"0x3A0000","32x12 Matrix"==_?(e.definitions_.import_matrix32x12="import matrix32x12",i=s+" = matrix32x12.Matrix("+o+",font_address="+a+")\n"):"16x8 Matrix"==_&&(e.definitions_.import_matrix16x8="import matrix16x8",i=s+" = matrix16x8.Matrix("+o+")\n"),i},xL=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},XL=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",space = "+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+",center = "+this.getFieldValue("center")+")\n"},bL=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},yL=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",delay = "+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},VL=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},BL=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",speed ="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+",space = "+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+")\n"},GL=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".fill(0)\n"+i+".show()\n"},UL=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("OP")+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")\n"},wL=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+"))",e.ORDER_ATOMIC]},kL=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".pixel(int("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+"), int("+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+"), "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"+i+".show()\n"},HL=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".get_brightness()",e.ORDER_ATOMIC]},WL=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".set_brightness("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+")\n"},KL=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("image"),e.ORDER_ATOMIC]},JL=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".map_"+t.getFieldValue("OP")+"("+e.valueToCode(t,"A",e.ORDER_ATOMIC)+","+e.valueToCode(t,"B",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},QL=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".map_invert("+e.valueToCode(t,"A",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},zL=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC);return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+" = ssd1306.SSD1306_I2C("+e.valueToCode(this,"row",e.ORDER_ATOMIC)+","+e.valueToCode(this,"column",e.ORDER_ATOMIC)+","+i+")\n"},qL=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_str("+(e.valueToCode(this,"Text_line1",e.ORDER_ASSIGNMENT)||"''")+","+(e.valueToCode(this,"Text_line2",e.ORDER_ASSIGNMENT)||"''")+","+(e.valueToCode(this,"Text_line3",e.ORDER_ASSIGNMENT)||"''")+","+(e.valueToCode(this,"Text_line4",e.ORDER_ASSIGNMENT)||"''")+")\n"},jL=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_line("+e.valueToCode(this,"x1",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"y1",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"x2",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"y2",e.ORDER_ATOMIC)+", 1)\n"},ZL=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),o=e.valueToCode(this,"width",e.ORDER_ATOMIC),_=e.valueToCode(this,"height",e.ORDER_ATOMIC),a="TRUE"==this.getFieldValue("fill")?"True":"False",p=this.getFieldValue("OP");switch(a){case"True":return i+".show_fill_rect("+n+", "+s+", "+o+", "+_+","+p+")\n";case"False":return i+".show_rect("+n+", "+s+", "+o+", "+_+","+p+")\n"}},$L=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),o=e.valueToCode(this,"length",e.ORDER_ATOMIC);return i+".show_"+this.getFieldValue("direction")+"("+n+", "+s+", "+o+", 1)\n"},tN=function(t,e){return["ON"==this.getFieldValue("ONOFF")?"1":"0",e.ORDER_ATOMIC]},eN=function(t,e){e.definitions_.import_matrix="import matrix";var i=t.getFieldValue("OP");return[e.valueToCode(t,"img",e.ORDER_ATOMIC)+".shift_"+i+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},iN=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return e.definitions_.import_ssd1306="import ssd1306",e.definitions_.import_machine="import machine",i+".show_fill("+this.getFieldValue("key")+")\n"},nN=function(t,e){return["matrix.Image."+this.getFieldValue("ANIMATION"),e.ORDER_ATOMIC]},sN=function(t,e){var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),o=e.valueToCode(this,"r",e.ORDER_ATOMIC),_="TRUE"==this.getFieldValue("fill")?"True":"False",a=this.getFieldValue("OP");switch(_){case"True":return i+".show_fill_circle("+n+", "+s+", "+o+", "+a+")\n";case"False":return i+".show_circle("+n+", "+s+", "+o+", "+a+")\n"}},oN=function(t,e){var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var n=e.valueToCode(this,"x0",e.ORDER_ATOMIC),s=e.valueToCode(this,"y0",e.ORDER_ATOMIC),o=e.valueToCode(this,"x1",e.ORDER_ATOMIC),_=e.valueToCode(this,"y1",e.ORDER_ATOMIC),a=e.valueToCode(this,"x2",e.ORDER_ATOMIC),p=e.valueToCode(this,"y2",e.ORDER_ATOMIC),u="TRUE"==this.getFieldValue("fill")?"True":"False",r=this.getFieldValue("OP");switch(u){case"True":return i+".show_fill_triangle("+n+", "+s+", "+o+", "+_+", "+a+", "+p+", "+r+")\n";case"False":return i+".show_triangle("+n+", "+s+", "+o+", "+_+", "+a+", "+p+", "+r+")\n"}},_N=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_bitmap("+e.valueToCode(this,"START_X",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"START_Y",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"bitmap_name",e.ORDER_ATOMIC)+","+e.valueToCode(this,"WIDTH",e.ORDER_ATOMIC)+","+e.valueToCode(this,"HEIGHT",e.ORDER_ATOMIC)+")\n"},aN=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_pixel("+e.valueToCode(this,"POS_X",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"POS_Y",e.ORDER_ATOMIC)+")\n"},pN=function(t,e){var i,n=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),s=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),o=this.getFieldValue("key");return"TM1650"==o?(e.definitions_.import_tm1650="import tm1650",i=n+" = tm1650."+o+"("+s+")\n"):"TM1637"==o&&(e.definitions_.import_tm1637="import tm1637",i=n+" = tm1637."+o+"("+s+")\n"),i},uN=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+"."+this.getFieldValue("STAT")+"()\n"},rN=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".shownum("+e.valueToCode(this,"VALUE",e.ORDER_ATOMIC)+")\n"},lN=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".showDP("+e.valueToCode(this,"NO",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"},dN=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".intensity("+e.valueToCode(this,"VALUE",e.ORDER_ATOMIC)+")\n"},IN=function(t,e){e.definitions_.import_st7789="import st7789";var i=Ot.Boards.getSelectedBoardKey().split(":")[2],n="";n=["mpython","mixgo_pe","mixgo_nova"].indexOf(i)>=0?"0x700000":["mixgo_zero"].indexOf(i)>=0?"0xE00000":"0x3A0000";var s=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),o=e.valueToCode(this,"SPISUB",e.ORDER_ATOMIC),_=e.valueToCode(this,"PINCS",e.ORDER_ATOMIC),a=e.valueToCode(this,"PINDC",e.ORDER_ATOMIC);return s+" = st7789.ST7789("+o+","+e.valueToCode(this,"WIDTH",e.ORDER_ATOMIC)+","+e.valueToCode(this,"HEIGHT",e.ORDER_ATOMIC)+",dc_pin="+a+",cs_pin="+_+",rotation="+this.getFieldValue("rotate")+",font_address="+n+")\n"},TN=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==a.slice(0,2))var p=i+".image("+n+",x = "+s+",y = "+o+",size = "+_+",color="+a+")\n";else{const t=a.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");p=i+".image("+n+",x = "+s+",y = "+o+",size = "+_+",color=0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return p},hN=function(t,e){var i="0x"+this.getFieldValue("COLOR").slice(1);return["0x"+((16252928&i)>>8|(64512&i)>>5|(255&i)>>3).toString(16),e.ORDER_ATOMIC]},MN=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),u=this.getFieldValue("center");if("0x"==p.slice(0,2))var r=i+".shows("+n+",x = "+s+",y = "+o+",size = "+_+",space = "+a+",center = "+u+",color="+p+")\n";else{const t=p.match(/\d+/g);var l="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");r=i+".shows("+n+",x = "+s+",y = "+o+",size = "+_+",space = "+a+",center = "+u+",color=0x"+((16252928&l)>>8|(64512&l)>>5|(255&l)>>3).toString(16)+")\n"}return r},mN=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==_.slice(0,2))var a=i+".frame("+n+",size = "+s+",delay = "+o+",color="+_+")\n";else{const t=_.match(/\d+/g);var p="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a=i+".frame("+n+",size = "+s+",delay = "+o+",color=0x"+((16252928&p)>>8|(64512&p)>>5|(255&p)>>3).toString(16)+")\n"}return a},ON=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var u=i+".scroll("+n+",y = "+s+",size = "+o+",speed ="+_+",space = "+a+",color="+p+")\n";else{const t=p.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u=i+".scroll("+n+",y = "+s+",size = "+o+",speed ="+_+",space = "+a+",color=0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\n"}return u},EN=function(t,e){return e.definitions_.import_st7789="import st7789",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".fill(st7789."+this.getFieldValue("key")+")\n"},RN=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"x1",e.ORDER_ATOMIC),s=e.valueToCode(this,"y1",e.ORDER_ATOMIC),o=e.valueToCode(this,"x2",e.ORDER_ATOMIC),_=e.valueToCode(this,"y2",e.ORDER_ATOMIC),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==a.slice(0,2))var p=i+".line("+n+", "+s+", "+o+", "+_+", color="+a+")\n";else{const t=a.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");p=i+".line("+n+", "+s+", "+o+", "+_+", color=0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return p},cN=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),s=this.getFieldValue("key"),o=e.valueToCode(this,"ADDR",e.ORDER_ATOMIC);return e.definitions_.import_i2clcd="import i2clcd",i+" = i2clcd.LCD("+n+",lcd_width="+s+",i2c_addr="+o+")\n"},gN=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",column = "+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+",line = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",center = "+this.getFieldValue("center")+")\n"},CN=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".print("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",column = "+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+",line = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",delay="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},SN=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".backlight("+this.getFieldValue("key")+")\n"},AN=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".clear()\n"},LN=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),s=e.valueToCode(this,"ADDR",e.ORDER_ATOMIC),o=Ot.Boards.getSelectedBoardKey().split(":")[2],_="";return _=["mpython","mixgo_pe","mixgo_nova"].indexOf(o)>=0?"0x700000":["mixgo_zero"].indexOf(o)>=0?"0xE00000":"0x3A0000",e.definitions_.import_oled128x64="import oled128x64",i+" = oled128x64.OLED("+n+",address="+s+",font_address="+_+")\n"},NN=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".image("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},DN=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".image("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",x = "+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+",y = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",size = "+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+")\n"},fN=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},FN=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",x = "+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+",y = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",size = "+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+",space = "+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+",center = "+this.getFieldValue("center")+")\n"},PN=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},vN=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",size = "+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+",delay = "+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},YN=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},xN=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",y = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",size = "+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+",speed ="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+",space = "+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+")\n"},XN=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".fill(0)\n"+i+".show()\n"},bN=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("OP")+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")\n"},yN=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+"))",e.ORDER_ATOMIC]},VN=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".pixel(int("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+"), int("+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+"), "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"+i+".show()\n"},BN=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),o=e.valueToCode(t,"w",e.ORDER_ATOMIC),_=e.valueToCode(t,"h",e.ORDER_ATOMIC),a=t.getFieldValue("state");return i+"."+t.getFieldValue("shape")+"("+n+", "+s+", "+o+", "+_+", "+a+")\n"+i+".show()\n"},GN=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),o=e.valueToCode(t,"length",e.ORDER_ATOMIC),_=t.getFieldValue("state");return i+"."+("0"==t.getFieldValue("dir_h_v")?"v":"h")+"line("+n+", "+s+", "+o+", "+_+")\n"+i+".show()\n"},UN=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".line("+e.valueToCode(t,"x1",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"y1",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"x2",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"y2",e.ORDER_ATOMIC)+", "+t.getFieldValue("state")+")\n"+i+".show()\n"},wN=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix","onboard_matrix.shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},kN=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),o=this.getFieldValue("center");return"mixgo_zero"==i||"mixgo_nova"==i?(e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft","onboard_tft.shows("+n+",space = "+s+",center = "+o+")\n"):(e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix","onboard_matrix.shows("+n+",space = "+s+",center = "+o+")\n")},HN=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];if("mpython"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var n="onboard_oled.frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";n="onboard_matrix.frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}return n},WN=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix","onboard_matrix.frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",delay = "+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},KN=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];if("mpython"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var n="onboard_oled.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";n="onboard_matrix.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}return n},JN=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix","onboard_matrix.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",speed ="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+",space = "+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+")\n"},QN=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix",["onboard_matrix."+t.getFieldValue("image"),e.ORDER_ATOMIC]},zN=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix",["onboard_matrix."+t.getFieldValue("image"),e.ORDER_ATOMIC]},qN=function(t,e){var i={"#000000":"0","#ff0000":"1"};function n(t){let e="";if(t.length%2==1&&(t="0"+t),t.length<8){let e=8-t.length;for(let i=1;i<=e;i++)t="0"+t}for(let i=1;i<=t.length;i++)i%2==0&&i!==t.length?e=e+t[i-1]+",0x":e+=t[i-1];return"0x"+e}let s=[];for(let e=0;e<12;e++){let o="",_=0,a=0;for(let n=0;n<32;n++)n<8?a=7-n:n<16?a=23-n:n<24?a=39-n:n<32&&(a=55-n),_+=Number(i[t.getFieldValue(e+"-"+n)])*Math.pow(2,31-a);o+=n(_.toString(16)),s.unshift(o)}let o=[];for(let t=0;t>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return p},DD=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),p=this.getFieldValue("center"),u=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==u.slice(0,2))var r="onboard_tft.shows("+n+",x = "+s+",y = "+o+",size = "+_+",space = "+a+",center = "+p+",color="+u+")\n";else{const t=u.match(/\d+/g);var l="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");r="onboard_tft.shows("+n+",x = "+s+",y = "+o+",size = "+_+",space = "+a+",center = "+p+",color=0x"+((16252928&l)>>8|(64512&l)>>5|(255&l)>>3).toString(16)+")\n"}return r},fD=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_tft","onboard_tft.frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",color=0xffff)\n"},FD=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==_.slice(0,2))var a="onboard_tft.frame("+n+",size = "+s+",delay = "+o+",color="+_+")\n";else{const t=_.match(/\d+/g);var p="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a="onboard_tft.frame("+n+",size = "+s+",delay = "+o+",color=0x"+((16252928&p)>>8|(64512&p)>>5|(255&p)>>3).toString(16)+")\n"}return a},PD=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_tft","onboard_tft.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",color=0xffff)\n"},vD=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var u="onboard_tft.scroll("+n+",y = "+s+",size = "+o+",speed ="+_+",space = "+a+",color="+p+")\n";else{const t=p.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u="onboard_tft.scroll("+n+",y = "+s+",size = "+o+",speed ="+_+",space = "+a+",color=0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\n"}return u},YD=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),o=e.valueToCode(t,"w",e.ORDER_ATOMIC),_=e.valueToCode(t,"h",e.ORDER_ATOMIC),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),p=t.getFieldValue("shape");if("0x"==a.slice(0,2))var u="onboard_tft."+p+"("+n+", "+s+", "+o+", "+_+", "+a+")\nonboard_tft.show()\n";else{const t=a.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u="onboard_tft."+p+"("+n+", "+s+", "+o+", "+_+", 0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\nonboard_tft.show()\n"}return u},xD=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),o=e.valueToCode(t,"length",e.ORDER_ATOMIC),_=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),a=t.getFieldValue("dir_h_v");if("0x"==_.slice(0,2))var p="onboard_tft."+("0"==a?"v":"h")+"line("+n+", "+s+", "+o+", "+_+")\nonboard_tft.show()\n";else{const t=_.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");p="onboard_tft."+("0"==a?"v":"h")+"line("+n+", "+s+", "+o+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\nonboard_tft.show()\n"}return p},XD=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x1",e.ORDER_ATOMIC),s=e.valueToCode(t,"y1",e.ORDER_ATOMIC),o=e.valueToCode(t,"x2",e.ORDER_ATOMIC),_=e.valueToCode(t,"y2",e.ORDER_ATOMIC),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==a.slice(0,2))var p="onboard_tft.line("+n+", "+s+", "+o+", "+_+", "+a+")\nonboard_tft.show()\n";else{const t=a.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");p="onboard_tft.line("+n+", "+s+", "+o+", "+_+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\nonboard_tft.show()\n"}return p},bD=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";return"onboard_tft.fill(0)\nonboard_tft.show()\n"},yD=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft","onboard_tft."+t.getFieldValue("OP")+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")\n"},VD=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft",["hex(onboard_tft.pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+")))",e.ORDER_ATOMIC]},BD=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==o.slice(0,2))var _="onboard_tft.pixel(int("+n+"), int("+s+"), "+o+")\nonboard_tft.show()\n";else{const t=o.match(/\d+/g);var a="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");_="onboard_tft.pixel(int("+n+"), int("+s+"), 0x"+((16252928&a)>>8|(64512&a)>>5|(255&a)>>3).toString(16)+")\nonboard_tft.show()\n"}return _},GD=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";return["onboard_tft.get_brightness()",e.ORDER_ATOMIC]},UD=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft","onboard_tft.set_brightness("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+")\n"},wD=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"VAR",e.ORDER_ASSIGNMENT);if("0x"==n.slice(0,2))var s="onboard_tft.fill("+n+")\nonboard_tft.show()\n";else{const t=n.match(/\d+/g);var o="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");s="onboard_tft.fill(0x"+((16252928&o)>>8|(64512&o)>>5|(255&o)>>3).toString(16)+")\nonboard_tft.show()\n"}return s},kD=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock";var n=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==a.slice(0,2))var p=_+"=Clock("+n+","+s+","+o+","+a+")\n";else{const t=a.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");p=_+"=Clock("+n+","+s+","+o+",0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return p},HD=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".set_rtctime()\n"},WD=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".set_time("+e.valueToCode(this,"h",e.ORDER_ASSIGNMENT)+","+e.valueToCode(this,"m",e.ORDER_ASSIGNMENT)+","+e.valueToCode(this,"s",e.ORDER_ASSIGNMENT)+")\n"},KD=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".draw_clock()\n"},JD=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock";var n=e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==s.slice(0,2))var o=n+".clear("+s+")\n";else{const t=s.match(/\d+/g);var _="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");o=n+".clear(0x"+((16252928&_)>>8|(64512&_)>>5|(255&_)>>3).toString(16)+")\n"}return o},QD=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),o=e.valueToCode(t,"r",e.ORDER_ATOMIC),_=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),a=t.getFieldValue("shape");if("0x"==_.slice(0,2))var p="onboard_tft.ellipse("+n+", "+s+", "+o+", "+o+", "+_+","+a+")\nonboard_tft.show()\n";else{const t=_.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");p="onboard_tft.ellipse("+n+", "+s+", "+o+", "+o+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+","+a+")\nonboard_tft.show()\n"}return p},zD=function(t,e){var i=this.getFieldValue("path"),n=this.getFieldValue("module");return e.definitions_["import_"+i+"_"+n]="from "+i+" import "+n,""},qD=function(t,e){var i=this.getFieldValue("module");return e.definitions_["import_"+i]="import "+i,""},jD=function(t,e){for(var i=this.getFieldValue("NAME"),n=new Array(this.itemCount_),s=0;s {\n"+e.statementToCode(this,"do")+"})\n"},GY=function(){return"control.reset()\n"},UY=function(t,e){return"control.waitMicros("+(e.valueToCode(this,"data",e.ORDER_ATOMIC)||Ot.Profile.default.serial)+")\n"},wY=function(t,e){return"control.raiseEvent("+(e.valueToCode(this,"system_event_bus_source",e.ORDER_ATOMIC)||Ot.Profile.default.serial)+", "+(e.valueToCode(this,"system_event_bus_value",e.ORDER_ATOMIC)||Ot.Profile.default.serial)+")\n"},kY=function(t,e){return"control.onEvent("+(e.valueToCode(this,"system_event_bus_source",e.ORDER_ATOMIC)||Ot.Profile.default.serial)+", "+(e.valueToCode(this,"system_event_bus_value",e.ORDER_ATOMIC)||Ot.Profile.default.serial)+", () => {\n"+e.statementToCode(this,"do")+")\n"},HY=function(t,e){return["control.eventTimestamp()",e.ORDER_ATOMIC]},WY=function(t,e){return["control.eventValue()",e.ORDER_ATOMIC]},KY=function(t,e){return[this.getFieldValue("key"),e.ORDER_ATOMIC]},JY=function(t,e){return[this.getFieldValue("key"),e.ORDER_ATOMIC]},QY=function(t,e){return["control.deviceName()",e.ORDER_ATOMIC]},zY=function(t,e){return["control.deviceSerialNumber()",e.ORDER_ATOMIC]},qY=function(t,e){return"panic("+(e.valueToCode(this,"STATUS_CODE",e.ORDER_ATOMIC)||"1000")+")\n"},jY=function(t,e){switch(e.definitions_.import_time="import time",this.getFieldValue("Time")){case"ms":return["time.ticks_ms()",e.ORDER_ATOMIC];case"us":return["time.ticks_us()",e.ORDER_ATOMIC]}},ZY=function(){return"while True:\n pass\n"},$Y=function(t,e){return e.definitions_.import_mixgo="import mixgo","reset()\n"},tx=function(t,e){return e.definitions_.import_os="import os","os.uname()"},ex=function(t,e){e.definitions_.import_time="import time";var i=e.valueToCode(this,"DELAY_TIME",e.ORDER_ATOMIC)||"1000";switch(this.getFieldValue("Time")){case"s":return"time.sleep("+i+")\n";case"ms":return"time.sleep_ms("+i+")\n";case"us":return"time.sleep_us("+i+")\n"}},ix=function(t,e){e.definitions_.import_time="import time";var i=e.valueToCode(this,"DELAY_TIME",e.ORDER_ATOMIC)||"1000";switch(this.getFieldValue("Time")){case"s":return"time.sleep("+i+")\n";case"ms":return"time.sleep_ms("+i+")\n";case"us":return"time.sleep_us("+i+")\n"}},nx=function(t,e){return e.definitions_.import_mixgo="import mixgo",(e.valueToCode(this,"VAR",e.ORDER_NONE)||"None")+".init(period = "+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+", mode = Timer."+(e.valueToCode(this,"mode",e.ORDER_NONE)||"None")+", callback = "+(e.valueToCode(this,"callback",e.ORDER_NONE)||"None")+")\n"},sx=function(t,e){return e.definitions_.import_machine="import machine",(e.valueToCode(this,"VAR",e.ORDER_NONE)||"None")+".init(period = "+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+", mode = machine.Timer."+this.getFieldValue("mode")+", callback = "+(e.valueToCode(this,"callback",e.ORDER_NONE)||"None")+")\n"},ox=function(t,e){return e.definitions_.import_time="import time",["time.ticks_diff("+(e.valueToCode(this,"END",e.ORDER_NONE)||"0")+", "+(e.valueToCode(this,"START",e.ORDER_NONE)||"0")+")",e.ORDER_ATOMIC]},_x=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return e.definitions_.import_machine="import machine",i+" = machine.Timer(0)\n"},ax=function(t,e){return e.definitions_.import_machine="import machine","wdt = machine.WDT(timeout= "+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+")\n"},px=function(t,e){e.definitions_.import_machine="import machine";return"wdt.feed()\n"},ux=function(t,e){e.definitions_.import_machine="import machine";return"machine.reset()\n"},rx=function(t,e){e.definitions_.import_bitbot_onboard_bot51="from bitbot import onboard_bot51";return"onboard_bot51.shutdown()\n"},lx=_x,dx=sx,Ix=ox,Tx=ex,hx=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api."+this.getFieldValue("mode")+"("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+","+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Mx=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api."+this.getFieldValue("mode")+"("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+","+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+","+e.valueToCode(this,"day",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},mx=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api.weather_hourly("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+","+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+","+e.valueToCode(this,"hour",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Ox={};Ox["MixGo CC"]={description:"MicroPython[ESP32C3 MixGo CC]",digital_pin:Ot.Profile.generate(["0-11","18-21"]),input_pin:Ot.Profile.generate(["0-11","18-21"]),output_pin:Ot.Profile.generate(["0-11","18-21"]),pwm_input:Ot.Profile.generate(["0-11","18-21"],"pwm","pwm"),analog_input:Ot.Profile.generate(["0-5"],"adc","adc"),pwm_output:Ot.Profile.generate(["0-11","18-21"],"pwm","pwm"),analog_output:Ot.Profile.generate(["0-5"],"adc","adc"),espnow_channel:Ot.Profile.generate(["1-13"]),haskylens_model:Ot.Profile.generate(["0-4"]),digital:Ot.Profile.generate(["0-11","18-21"],"pin","pin"),pwm_pin:Ot.Profile.generate(["0-11","18-21"]),pwm:Ot.Profile.generate(["0-11","18-21"],"pwm","pwm"),analog_pin:Ot.Profile.generate(["0-5"]),analog:Ot.Profile.generate(["0-5"],"adc","adc"),button:[["B1","B1key"],["B2","B2key"],["A1","A1key"],["A2","A2key"],["A3","A3key"],["A4","A4key"]],buttonB:[["B1","B1key"],["B2","B2key"]],axis:Ot.Profile.generate(["0-4"]),exlcdh:Ot.Profile.generate(["0-31"]),exlcdv:Ot.Profile.generate(["0-11"]),brightness:Ot.Profile.generate(["0-9"]),tts_voice:Ot.Profile.generate(["0-16"]),tts_builtin_music:Ot.Profile.generate(["0-47"]),tts_bgmusic:Ot.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["SILLY","onboard_matrix.SILLY"],["FABULOUS","onboard_matrix.FABULOUS"],["SURPRISED","onboard_matrix.SURPRISED"],["ASLEEP","onboard_matrix.ASLEEP"],["ANGRY","onboard_matrix.ANGRY"],["CONFUSED","onboard_matrix.CONFUSED"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"],["LEFT_ARROW","onboard_matrix.LEFT_ARROW"],["RIGHT_ARROW","onboard_matrix.RIGHT_ARROW"],["DRESS","onboard_matrix.DRESS"],["TRANSFORMERS","onboard_matrix.TRANSFORMERS"],["SCISSORS","onboard_matrix.SCISSORS"],["EXIT","onboard_matrix.EXIT"],["TREE","onboard_matrix.TREE"],["PACMAN","onboard_matrix.PACMAN"],["TARGET","onboard_matrix.TARGET"],["TSHIRT","onboard_matrix.TSHIRT"],["ROLLERSKATE","onboard_matrix.ROLLERSKATE"],["DUCK","onboard_matrix.DUCK"],["HOUSE","onboard_matrix.HOUSE"],["TORTOISE","onboard_matrix.TORTOISE"],["BUTTERFLY","onboard_matrix.BUTTERFLY"],["STICKFIGURE","onboard_matrix.STICKFIGURE"],["GHOST","onboard_matrix.GHOST"],["PITCHFORK","onboard_matrix.PITCHFORK"],["MUSIC_QUAVERS","onboard_matrix.MUSIC_QUAVERS"],["MUSIC_QUAVER","onboard_matrix.MUSIC_QUAVER"],["MUSIC_CROTCHET","onboard_matrix.MUSIC_CROTCHET"],["COW","onboard_matrix.COW"],["RABBIT","onboard_matrix.RABBIT"],["SQUARE_SMALL","onboard_matrix.SQUARE_SMALL"],["SQUARE","onboard_matrix.SQUARE"],["DIAMOND_SMALL","onboard_matrix.DIAMOND_SMALL"],["DIAMOND","onboard_matrix.DIAMOND"],["CHESSBOARD","onboard_matrix.CHESSBOARD"],["TRIANGLE_LEFT","onboard_matrix.TRIANGLE_LEFT"],["TRIANGLE","onboard_matrix.TRIANGLE"],["SNAKE","onboard_matrix.SNAKE"],["UMBRELLA","onboard_matrix.UMBRELLA"],["SKULL","onboard_matrix.SKULL"],["GIRAFFE","onboard_matrix.GIRAFFE"],["SWORD","onboard_matrix.SWORD"]],builtinimg_extern:[["HEART","matrix32x12.Matrix.HEART"],["HEART_SMALL","matrix32x12.Matrix.HEART_SMALL"],["HAPPY","matrix32x12.Matrix.HAPPY"],["SAD","matrix32x12.Matrix.SAD"],["SMILE","matrix32x12.Matrix.SMILE"],["SILLY","matrix32x12.Matrix.SILLY"],["FABULOUS","matrix32x12.Matrix.FABULOUS"],["SURPRISED","matrix32x12.Matrix.SURPRISED"],["ASLEEP","matrix32x12.Matrix.ASLEEP"],["ANGRY","matrix32x12.Matrix.ANGRY"],["CONFUSED","matrix32x12.Matrix.CONFUSED"],["NO","matrix32x12.Matrix.NO"],["YES","matrix32x12.Matrix.YES"],["LEFT_ARROW","matrix32x12.Matrix.LEFT_ARROW"],["RIGHT_ARROW","matrix32x12.Matrix.RIGHT_ARROW"],["DRESS","matrix32x12.Matrix.DRESS"],["TRANSFORMERS","matrix32x12.Matrix.TRANSFORMERS"],["SCISSORS","matrix32x12.Matrix.SCISSORS"],["EXIT","matrix32x12.Matrix.EXIT"],["TREE","matrix32x12.Matrix.TREE"],["PACMAN","matrix32x12.Matrix.PACMAN"],["TARGET","matrix32x12.Matrix.TARGET"],["TSHIRT","matrix32x12.Matrix.TSHIRT"],["ROLLERSKATE","matrix32x12.Matrix.ROLLERSKATE"],["DUCK","matrix32x12.Matrix.DUCK"],["HOUSE","matrix32x12.Matrix.HOUSE"],["TORTOISE","matrix32x12.Matrix.TORTOISE"],["BUTTERFLY","matrix32x12.Matrix.BUTTERFLY"],["STICKFIGURE","matrix32x12.Matrix.STICKFIGURE"],["GHOST","matrix32x12.Matrix.GHOST"],["PITCHFORK","matrix32x12.Matrix.PITCHFORK"],["onboard_music_QUAVERS","matrix32x12.Matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","matrix32x12.Matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","matrix32x12.Matrix.onboard_music_CROTCHET"],["COW","matrix32x12.Matrix.COW"],["RABBIT","matrix32x12.Matrix.RABBIT"],["SQUARE_SMALL","matrix32x12.Matrix.SQUARE_SMALL"],["SQUARE","matrix32x12.Matrix.SQUARE"],["DIAMOND_SMALL","matrix32x12.Matrix.DIAMOND_SMALL"],["DIAMOND","matrix32x12.Matrix.DIAMOND"],["CHESSBOARD","matrix32x12.Matrix.CHESSBOARD"],["TRIANGLE_LEFT","matrix32x12.Matrix.TRIANGLE_LEFT"],["TRIANGLE","matrix32x12.Matrix.TRIANGLE"],["SNAKE","matrix32x12.Matrix.SNAKE"],["UMBRELLA","matrix32x12.Matrix.UMBRELLA"],["SKULL","matrix32x12.Matrix.SKULL"],["GIRAFFE","matrix32x12.Matrix.GIRAFFE"],["SWORD","matrix32x12.Matrix.SWORD"]],imglist:[["ALL_CLOCKS","matrix.Image.ALL_CLOCKS"],["ALL_ARROWS","matrix.Image.ALL_ARROWS"]],playlist:[["DADADADUM","onboard_music.DADADADUM"],["ENTERTAINER","onboard_music.ENTERTAINER"],["PRELUDE","onboard_music.PRELUDE"],["ODE","onboard_music.ODE"],["NYAN","onboard_music.NYAN"],["RINGTONE","onboard_music.RINGTONE"],["FUNK","onboard_music.FUNK"],["BLUES","onboard_music.BLUES"],["BIRTHDAY","onboard_music.BIRTHDAY"],["WEDDING","onboard_music.WEDDING"],["FUNERAL","onboard_music.FUNERAL"],["PUNCHLINE","onboard_music.PUNCHLINE"],["PYTHON","onboard_music.PYTHON"],["BADDY","onboard_music.BADDY"],["CHASE","onboard_music.CHASE"],["BA_DING","onboard_music.BA_DING"],["WAWAWAWAA","onboard_music.WAWAWAWAA"],["JUMP_UP","onboard_music.JUMP_UP"],["JUMP_DOWN","onboard_music.JUMP_DOWN"],["POWER_UP","onboard_music.POWER_UP"],["POWER_DOWN","onboard_music.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],tone_notes:[["NOTE_C3","131"],["NOTE_D3","147"],["NOTE_E3","165"],["NOTE_F3","175"],["NOTE_G3","196"],["NOTE_A3","220"],["NOTE_B3","247"],["NOTE_C4","262"],["NOTE_D4","294"],["NOTE_E4","330"],["NOTE_F4","349"],["NOTE_G4","392"],["NOTE_A4","440"],["NOTE_B4","494"],["NOTE_C5","523"],["NOTE_D5","587"],["NOTE_E5","659"],["NOTE_F5","698"],["NOTE_G5","784"],["NOTE_A5","880"],["NOTE_B5","988"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"]]},Ox["MixGo ME"]={description:"MicroPython[ESP32C3 MixGo ME]",digital_pin:Ot.Profile.generate(["0-11","18-21"]),input_pin:Ot.Profile.generate(["0-11","18-21"]),output_pin:Ot.Profile.generate(["0-11","18-21"]),pwm_input:Ot.Profile.generate(["0-11","18-21"],"pwm","pwm"),analog_input:Ot.Profile.generate(["0-5"],"adc","adc"),pwm_output:Ot.Profile.generate(["0-11","18-21"],"pwm","pwm"),analog_output:Ot.Profile.generate(["0-5"],"adc","adc"),espnow_channel:Ot.Profile.generate(["1-13"]),haskylens_model:Ot.Profile.generate(["0-4"]),digital:Ot.Profile.generate(["0-11","18-21"],"pin","pin"),pwm_pin:Ot.Profile.generate(["0-11","18-21"]),pwm:Ot.Profile.generate(["0-11","18-21"],"pwm","pwm"),analog_pin:Ot.Profile.generate(["0-5"]),analog:Ot.Profile.generate(["0-5"],"adc","adc"),button:[["B1","B1key"],["B2","B2key"],["A1","A1key"],["A2","A2key"],["A3","A3key"],["A4","A4key"]],buttonB:[["B1","B1key"],["B2","B2key"]],axis:Ot.Profile.generate(["0-4"]),exlcdh:Ot.Profile.generate(["0-7"]),exlcdv:Ot.Profile.generate(["0-4"]),brightness:Ot.Profile.generate(["0-9"]),tts_voice:Ot.Profile.generate(["0-16"]),tts_builtin_music:Ot.Profile.generate(["0-47"]),tts_bgmusic:Ot.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["SILLY","onboard_matrix.SILLY"],["FABULOUS","onboard_matrix.FABULOUS"],["SURPRISED","onboard_matrix.SURPRISED"],["ASLEEP","onboard_matrix.ASLEEP"],["ANGRY","onboard_matrix.ANGRY"],["CONFUSED","onboard_matrix.CONFUSED"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"],["LEFT_ARROW","onboard_matrix.LEFT_ARROW"],["RIGHT_ARROW","onboard_matrix.RIGHT_ARROW"],["DRESS","onboard_matrix.DRESS"],["TRANSFORMERS","onboard_matrix.TRANSFORMERS"],["SCISSORS","onboard_matrix.SCISSORS"],["EXIT","onboard_matrix.EXIT"],["TREE","onboard_matrix.TREE"],["PACMAN","onboard_matrix.PACMAN"],["TARGET","onboard_matrix.TARGET"],["TSHIRT","onboard_matrix.TSHIRT"],["ROLLERSKATE","onboard_matrix.ROLLERSKATE"],["DUCK","onboard_matrix.DUCK"],["HOUSE","onboard_matrix.HOUSE"],["TORTOISE","onboard_matrix.TORTOISE"],["BUTTERFLY","onboard_matrix.BUTTERFLY"],["STICKFIGURE","onboard_matrix.STICKFIGURE"],["GHOST","onboard_matrix.GHOST"],["PITCHFORK","onboard_matrix.PITCHFORK"],["MUSIC_QUAVERS","onboard_matrix.MUSIC_QUAVERS"],["MUSIC_QUAVER","onboard_matrix.MUSIC_QUAVER"],["MUSIC_CROTCHET","onboard_matrix.MUSIC_CROTCHET"],["COW","onboard_matrix.COW"],["RABBIT","onboard_matrix.RABBIT"],["SQUARE_SMALL","onboard_matrix.SQUARE_SMALL"],["SQUARE","onboard_matrix.SQUARE"],["DIAMOND_SMALL","onboard_matrix.DIAMOND_SMALL"],["DIAMOND","onboard_matrix.DIAMOND"],["CHESSBOARD","onboard_matrix.CHESSBOARD"],["TRIANGLE_LEFT","onboard_matrix.TRIANGLE_LEFT"],["TRIANGLE","onboard_matrix.TRIANGLE"],["SNAKE","onboard_matrix.SNAKE"],["UMBRELLA","onboard_matrix.UMBRELLA"],["SKULL","onboard_matrix.SKULL"],["GIRAFFE","onboard_matrix.GIRAFFE"],["SWORD","onboard_matrix.SWORD"]],builtinimg_extern:[["HEART","matrix32x12.Matrix.HEART"],["HEART_SMALL","matrix32x12.Matrix.HEART_SMALL"],["HAPPY","matrix32x12.Matrix.HAPPY"],["SAD","matrix32x12.Matrix.SAD"],["SMILE","matrix32x12.Matrix.SMILE"],["SILLY","matrix32x12.Matrix.SILLY"],["FABULOUS","matrix32x12.Matrix.FABULOUS"],["SURPRISED","matrix32x12.Matrix.SURPRISED"],["ASLEEP","matrix32x12.Matrix.ASLEEP"],["ANGRY","matrix32x12.Matrix.ANGRY"],["CONFUSED","matrix32x12.Matrix.CONFUSED"],["NO","matrix32x12.Matrix.NO"],["YES","matrix32x12.Matrix.YES"],["LEFT_ARROW","matrix32x12.Matrix.LEFT_ARROW"],["RIGHT_ARROW","matrix32x12.Matrix.RIGHT_ARROW"],["DRESS","matrix32x12.Matrix.DRESS"],["TRANSFORMERS","matrix32x12.Matrix.TRANSFORMERS"],["SCISSORS","matrix32x12.Matrix.SCISSORS"],["EXIT","matrix32x12.Matrix.EXIT"],["TREE","matrix32x12.Matrix.TREE"],["PACMAN","matrix32x12.Matrix.PACMAN"],["TARGET","matrix32x12.Matrix.TARGET"],["TSHIRT","matrix32x12.Matrix.TSHIRT"],["ROLLERSKATE","matrix32x12.Matrix.ROLLERSKATE"],["DUCK","matrix32x12.Matrix.DUCK"],["HOUSE","matrix32x12.Matrix.HOUSE"],["TORTOISE","matrix32x12.Matrix.TORTOISE"],["BUTTERFLY","matrix32x12.Matrix.BUTTERFLY"],["STICKFIGURE","matrix32x12.Matrix.STICKFIGURE"],["GHOST","matrix32x12.Matrix.GHOST"],["PITCHFORK","matrix32x12.Matrix.PITCHFORK"],["onboard_music_QUAVERS","matrix32x12.Matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","matrix32x12.Matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","matrix32x12.Matrix.onboard_music_CROTCHET"],["COW","matrix32x12.Matrix.COW"],["RABBIT","matrix32x12.Matrix.RABBIT"],["SQUARE_SMALL","matrix32x12.Matrix.SQUARE_SMALL"],["SQUARE","matrix32x12.Matrix.SQUARE"],["DIAMOND_SMALL","matrix32x12.Matrix.DIAMOND_SMALL"],["DIAMOND","matrix32x12.Matrix.DIAMOND"],["CHESSBOARD","matrix32x12.Matrix.CHESSBOARD"],["TRIANGLE_LEFT","matrix32x12.Matrix.TRIANGLE_LEFT"],["TRIANGLE","matrix32x12.Matrix.TRIANGLE"],["SNAKE","matrix32x12.Matrix.SNAKE"],["UMBRELLA","matrix32x12.Matrix.UMBRELLA"],["SKULL","matrix32x12.Matrix.SKULL"],["GIRAFFE","matrix32x12.Matrix.GIRAFFE"],["SWORD","matrix32x12.Matrix.SWORD"]],imglist:[["ALL_CLOCKS","matrix.Image.ALL_CLOCKS"],["ALL_ARROWS","matrix.Image.ALL_ARROWS"]],playlist:[["DADADADUM","onboard_music.DADADADUM"],["ENTERTAINER","onboard_music.ENTERTAINER"],["PRELUDE","onboard_music.PRELUDE"],["ODE","onboard_music.ODE"],["NYAN","onboard_music.NYAN"],["RINGTONE","onboard_music.RINGTONE"],["FUNK","onboard_music.FUNK"],["BLUES","onboard_music.BLUES"],["BIRTHDAY","onboard_music.BIRTHDAY"],["WEDDING","onboard_music.WEDDING"],["FUNERAL","onboard_music.FUNERAL"],["PUNCHLINE","onboard_music.PUNCHLINE"],["PYTHON","onboard_music.PYTHON"],["BADDY","onboard_music.BADDY"],["CHASE","onboard_music.CHASE"],["BA_DING","onboard_music.BA_DING"],["WAWAWAWAA","onboard_music.WAWAWAWAA"],["JUMP_UP","onboard_music.JUMP_UP"],["JUMP_DOWN","onboard_music.JUMP_DOWN"],["POWER_UP","onboard_music.POWER_UP"],["POWER_DOWN","onboard_music.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],tone_notes:[["NOTE_C3","131"],["NOTE_D3","147"],["NOTE_E3","165"],["NOTE_F3","175"],["NOTE_G3","196"],["NOTE_A3","220"],["NOTE_B3","247"],["NOTE_C4","262"],["NOTE_D4","294"],["NOTE_E4","330"],["NOTE_F4","349"],["NOTE_G4","392"],["NOTE_A4","440"],["NOTE_B4","494"],["NOTE_C5","523"],["NOTE_D5","587"],["NOTE_E5","659"],["NOTE_F5","698"],["NOTE_G5","784"],["NOTE_A5","880"],["NOTE_B5","988"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"]]},Ox["MixGo Car 4.2"]={description:"MicroPython[ESP32]",digital_pin:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"],["10","10"],["20","20"],["21","21"]],digital:[["pin0","pin0"],["pin1","pin1"],["pin2","pin2"],["pin3","pin3"],["pin4","pin4"],["pin5","pin5"],["pin6","pin6"],["pin7","pin7"],["pin8","pin8"],["pin9","pin9"],["pin10","pin10"],["pin20","pin20"],["pin21","pin21"]],pwm_pin:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"],["10","10"],["20","20"],["21","21"]],pwm:[["pwm0","pwm0"],["pwm1","pwm1"],["pwm2","pwm2"],["pwm3","pwm3"],["pwm4","pwm4"],["pwm5","pwm5"],["pwm6","pwm6"],["pwm7","pwm7"],["pwm8","pwm8"],["pwm9","pwm9"],["pwm10","pwm10"],["pwm20","pwm20"],["pwm21","pwm21"]],espnow_channel:[["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"],["10","10"],["11","11"],["12","12"],["13","13"]],i2c_A_pin:[["6","6"],["9","9"]],i2c_B_pin:[["7","7"],["10","10"]],spi_A_pin:[["6","6"],["9","9"]],spi_B_pin:[["7","7"],["10","10"]],spi_C_pin:[["9","9"],["20","20"]],spi_D_pin:[["10","10"],["21","21"]],analog_pin:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"]],analog:[["adc0","adc0"],["adc1","adc1"],["adc2","adc2"],["adc3","adc3"],["adc4","adc4"]],dac_pin:[["25","25"],["26","26"]],dac:[["dac25","dac25"],["dac26","dac26"]],touch:[["tc0","tc0"],["tc2","tc2"],["tc4","tc4"],["tc12","tc12"],["tc13","tc13"],["tc14","tc14"],["tc15","tc15"],["tc27","tc27"],["tc32","tc32"],["tc33","tc33"]],touch_pin:[["0","0"],["2","2"],["4","4"],["12","12"],["13","13"],["14","14"],["15","15"],["27","27"],["32","32"],["33","33"]],button:[["A","button_a"],["B","button_b"]],buttonB:[["B","button_b"]],axis:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"]],exlcdh:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"],["10","10"],["11","11"],["12","12"],["13","13"],["14","14"],["15","15"],["16","16"],["17","17"],["18","18"],["19","19"],["20","20"],["21","21"],["22","22"],["23","23"],["24","24"],["25","25"],["26","26"],["27","27"],["28","28"],["29","29"],["30","30"],["31","31"]],exlcdv:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"],["10","10"],["11","11"]],brightness:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"]],builtinimg:[["HEART","matrix.Image.HEART"],["HEART_SMALL","matrix.Image.HEART_SMALL"],["HAPPY","matrix.Image.HAPPY"],["SAD","matrix.Image.SAD"],["SMILE","matrix.Image.SMILE"],["SILLY","matrix.Image.SILLY"],["FABULOUS","matrix.Image.FABULOUS"],["SURPRISED","matrix.Image.SURPRISED"],["ASLEEP","matrix.Image.ASLEEP"],["ANGRY","matrix.Image.ANGRY"],["CONFUSED","matrix.Image.CONFUSED"],["NO","matrix.Image.NO"],["YES","matrix.Image.YES"],["LEFT_ARROW","matrix.Image.LEFT_ARROW"],["RIGHT_ARROW","matrix.Image.RIGHT_ARROW"],["DRESS","matrix.Image.DRESS"],["TRANSFORMERS","matrix.Image.TRANSFORMERS"],["SCISSORS","matrix.Image.SCISSORS"],["EXIT","matrix.Image.EXIT"],["TREE","matrix.Image.TREE"],["PACMAN","matrix.Image.PACMAN"],["TARGET","matrix.Image.TARGET"],["TSHIRT","matrix.Image.TSHIRT"],["ROLLERSKATE","matrix.Image.ROLLERSKATE"],["DUCK","matrix.Image.DUCK"],["HOUSE","matrix.Image.HOUSE"],["TORTOISE","matrix.Image.TORTOISE"],["BUTTERFLY","matrix.Image.BUTTERFLY"],["STICKFIGURE","matrix.Image.STICKFIGURE"],["GHOST","matrix.Image.GHOST"],["PITCHFORK","matrix.Image.PITCHFORK"],["MUSIC_QUAVERS","matrix.Image.MUSIC_QUAVERS"],["MUSIC_QUAVER","matrix.Image.MUSIC_QUAVER"],["MUSIC_CROTCHET","matrix.Image.MUSIC_CROTCHET"],["COW","matrix.Image.COW"],["RABBIT","matrix.Image.RABBIT"],["SQUARE_SMALL","matrix.Image.SQUARE_SMALL"],["SQUARE","matrix.Image.SQUARE"],["DIAMOND_SMALL","matrix.Image.DIAMOND_SMALL"],["DIAMOND","matrix.Image.DIAMOND"],["CHESSBOARD","matrix.Image.CHESSBOARD"],["TRIANGLE_LEFT","matrix.Image.TRIANGLE_LEFT"],["TRIANGLE","matrix.Image.TRIANGLE"],["SNAKE","matrix.Image.SNAKE"],["UMBRELLA","matrix.Image.UMBRELLA"],["SKULL","matrix.Image.SKULL"],["GIRAFFE","matrix.Image.GIRAFFE"],["SWORD","matrix.Image.SWORD"]],imglist:[["ALL_CLOCKS","matrix.Image.ALL_CLOCKS"],["ALL_ARROWS","matrix.Image.ALL_ARROWS"]],playlist:[["DADADADUM","music.DADADADUM"],["ENTERTAINER","music.ENTERTAINER"],["PRELUDE","music.PRELUDE"],["ODE","music.ODE"],["NYAN","music.NYAN"],["RINGTONE","music.RINGTONE"],["FUNK","music.FUNK"],["BLUES","music.BLUES"],["BIRTHDAY","music.BIRTHDAY"],["WEDDING","music.WEDDING"],["FUNERAL","music.FUNERAL"],["PUNCHLINE","music.PUNCHLINE"],["PYTHON","music.PYTHON"],["BADDY","music.BADDY"],["CHASE","music.CHASE"],["BA_DING","music.BA_DING"],["WAWAWAWAA","music.WAWAWAWAA"],["JUMP_UP","music.JUMP_UP"],["JUMP_DOWN","music.JUMP_DOWN"],["POWER_UP","music.POWER_UP"],["POWER_DOWN","music.POWER_DOWN"]],tone_notes:[["NOTE_C3","131"],["NOTE_D3","147"],["NOTE_E3","165"],["NOTE_F3","175"],["NOTE_G3","196"],["NOTE_A3","220"],["NOTE_B3","247"],["NOTE_C4","262"],["NOTE_D4","294"],["NOTE_E4","330"],["NOTE_F4","349"],["NOTE_G4","392"],["NOTE_A4","440"],["NOTE_B4","494"],["NOTE_C5","523"],["NOTE_D5","587"],["NOTE_E5","659"],["NOTE_F5","698"],["NOTE_G5","784"],["NOTE_A5","880"],["NOTE_B5","988"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"]]},Ox["ESP32C3 Generic"]={description:"MicroPython[ESP32C3 MixGo CC]",digital_pin:Ot.Profile.generate(["0-11","18-21"]),input_pin:Ot.Profile.generate(["0-11","18-21"]),output_pin:Ot.Profile.generate(["0-11","18-21"]),pwm_input:Ot.Profile.generate(["0-11","18-21"],"pwm","pwm"),analog_input:Ot.Profile.generate(["0-5"],"adc","adc"),pwm_output:Ot.Profile.generate(["0-11","18-21"],"pwm","pwm"),analog_output:Ot.Profile.generate(["0-5"],"adc","adc"),espnow_channel:Ot.Profile.generate(["1-13"]),haskylens_model:Ot.Profile.generate(["0-4"]),digital:Ot.Profile.generate(["0-11","18-21"],"pin","pin"),pwm_pin:Ot.Profile.generate(["0-11","18-21"]),pwm:Ot.Profile.generate(["0-11","18-21"],"pwm","pwm"),analog_pin:Ot.Profile.generate(["0-5"]),analog:Ot.Profile.generate(["0-5"],"adc","adc"),button:[["B1","B1key"],["B2","B2key"],["A1","A1key"],["A2","A2key"],["A3","A3key"],["A4","A4key"]],buttonB:[["B1","B1key"],["B2","B2key"]],axis:Ot.Profile.generate(["0-4"]),exlcdh:Ot.Profile.generate(["0-31"]),exlcdv:Ot.Profile.generate(["0-11"]),brightness:Ot.Profile.generate(["0-9"]),tts_voice:Ot.Profile.generate(["0-16"]),tts_builtin_music:Ot.Profile.generate(["0-47"]),tts_bgmusic:Ot.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["SILLY","onboard_matrix.SILLY"],["FABULOUS","onboard_matrix.FABULOUS"],["SURPRISED","onboard_matrix.SURPRISED"],["ASLEEP","onboard_matrix.ASLEEP"],["ANGRY","onboard_matrix.ANGRY"],["CONFUSED","onboard_matrix.CONFUSED"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"]],builtinimg_extern:[["HEART","matrix32x12.Matrix.HEART"],["HEART_SMALL","matrix32x12.Matrix.HEART_SMALL"],["HAPPY","matrix32x12.Matrix.HAPPY"],["SAD","matrix32x12.Matrix.SAD"],["SMILE","matrix32x12.Matrix.SMILE"],["SILLY","matrix32x12.Matrix.SILLY"],["FABULOUS","matrix32x12.Matrix.FABULOUS"],["SURPRISED","matrix32x12.Matrix.SURPRISED"],["ASLEEP","matrix32x12.Matrix.ASLEEP"],["ANGRY","matrix32x12.Matrix.ANGRY"],["CONFUSED","matrix32x12.Matrix.CONFUSED"],["NO","matrix32x12.Matrix.NO"],["YES","matrix32x12.Matrix.YES"],["LEFT_ARROW","matrix32x12.Matrix.LEFT_ARROW"],["RIGHT_ARROW","matrix32x12.Matrix.RIGHT_ARROW"],["DRESS","matrix32x12.Matrix.DRESS"],["TRANSFORMERS","matrix32x12.Matrix.TRANSFORMERS"],["SCISSORS","matrix32x12.Matrix.SCISSORS"],["EXIT","matrix32x12.Matrix.EXIT"],["TREE","matrix32x12.Matrix.TREE"],["PACMAN","matrix32x12.Matrix.PACMAN"],["TARGET","matrix32x12.Matrix.TARGET"],["TSHIRT","matrix32x12.Matrix.TSHIRT"],["ROLLERSKATE","matrix32x12.Matrix.ROLLERSKATE"],["DUCK","matrix32x12.Matrix.DUCK"],["HOUSE","matrix32x12.Matrix.HOUSE"],["TORTOISE","matrix32x12.Matrix.TORTOISE"],["BUTTERFLY","matrix32x12.Matrix.BUTTERFLY"],["STICKFIGURE","matrix32x12.Matrix.STICKFIGURE"],["GHOST","matrix32x12.Matrix.GHOST"],["PITCHFORK","matrix32x12.Matrix.PITCHFORK"],["onboard_music_QUAVERS","matrix32x12.Matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","matrix32x12.Matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","matrix32x12.Matrix.onboard_music_CROTCHET"],["COW","matrix32x12.Matrix.COW"],["RABBIT","matrix32x12.Matrix.RABBIT"],["SQUARE_SMALL","matrix32x12.Matrix.SQUARE_SMALL"],["SQUARE","matrix32x12.Matrix.SQUARE"],["DIAMOND_SMALL","matrix32x12.Matrix.DIAMOND_SMALL"],["DIAMOND","matrix32x12.Matrix.DIAMOND"],["CHESSBOARD","matrix32x12.Matrix.CHESSBOARD"],["TRIANGLE_LEFT","matrix32x12.Matrix.TRIANGLE_LEFT"],["TRIANGLE","matrix32x12.Matrix.TRIANGLE"],["SNAKE","matrix32x12.Matrix.SNAKE"],["UMBRELLA","matrix32x12.Matrix.UMBRELLA"],["SKULL","matrix32x12.Matrix.SKULL"],["GIRAFFE","matrix32x12.Matrix.GIRAFFE"],["SWORD","matrix32x12.Matrix.SWORD"]],imglist:[["ALL_CLOCKS","matrix.Image.ALL_CLOCKS"],["ALL_ARROWS","matrix.Image.ALL_ARROWS"]],playlist:[["DADADADUM","onboard_music.DADADADUM"],["ENTERTAINER","onboard_music.ENTERTAINER"],["PRELUDE","onboard_music.PRELUDE"],["ODE","onboard_music.ODE"],["NYAN","onboard_music.NYAN"],["RINGTONE","onboard_music.RINGTONE"],["FUNK","onboard_music.FUNK"],["BLUES","onboard_music.BLUES"],["BIRTHDAY","onboard_music.BIRTHDAY"],["WEDDING","onboard_music.WEDDING"],["FUNERAL","onboard_music.FUNERAL"],["PUNCHLINE","onboard_music.PUNCHLINE"],["PYTHON","onboard_music.PYTHON"],["BADDY","onboard_music.BADDY"],["CHASE","onboard_music.CHASE"],["BA_DING","onboard_music.BA_DING"],["WAWAWAWAA","onboard_music.WAWAWAWAA"],["JUMP_UP","onboard_music.JUMP_UP"],["JUMP_DOWN","onboard_music.JUMP_DOWN"],["POWER_UP","onboard_music.POWER_UP"],["POWER_DOWN","onboard_music.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],tone_notes:[["NOTE_C3","131"],["NOTE_D3","147"],["NOTE_E3","165"],["NOTE_F3","175"],["NOTE_G3","196"],["NOTE_A3","220"],["NOTE_B3","247"],["NOTE_C4","262"],["NOTE_D4","294"],["NOTE_E4","330"],["NOTE_F4","349"],["NOTE_G4","392"],["NOTE_A4","440"],["NOTE_B4","494"],["NOTE_C5","523"],["NOTE_D5","587"],["NOTE_E5","659"],["NOTE_F5","698"],["NOTE_G5","784"],["NOTE_A5","880"],["NOTE_B5","988"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"]]};const Ex=Ox,Rx=20,cx={init:function(){this.setColour(Rx),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_HIGH,"HIGH"],[mt.Msg.MIXLY_LOW,"LOW"]]),"BOOL"),this.setOutput(!0,Boolean),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_HIGHLOW_TOOLTIP)}},gx={init:function(){this.setColour(Rx),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_Digital_PINMODEOUT).setCheck(Number),this.appendValueInput("STAT").appendField(mt.Msg.MIXLY_STAT).setCheck([Number,Boolean]),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_DIGITAL_WRITE_TOOLTIP)}},Cx={init:function(){this.setColour(Rx),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(mt.Msg.MIXLY_Digital_PINMODEIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_MACHINE_VALUE),this.setInputsInline(!0),this.setOutput(!0,[Boolean,Number]),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_DIGITAL_READ_TOOLTIP)}},Sx={init:function(){this.setColour(Rx),this.appendValueInput("PIN",Number).appendField("PWM"+mt.Msg.MIXLY_Analog_PINMODEOUT).setCheck(Number),this.appendValueInput("NUM",Number).appendField(mt.Msg.MIXLY_VALUE2).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_PWM_ANALOG_WRITE_TOOLTIP)}},Ax={init:function(){this.setColour(Rx),this.appendValueInput("PIN",Number).appendField("DAC"+mt.Msg.MIXLY_Analog_PINMODEOUT).setCheck(Number),this.appendValueInput("NUM",Number).appendField(mt.Msg.MIXLY_VALUE2).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_ANALOG_WRITE_TOOLTIP)}},Lx={init:function(){this.setColour(Rx),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_Analog_PINMODEOUT).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_PERIOD_MIL).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_mSecond,"period"],[mt.Msg.MIXLY_uSecond,"period_microseconds"]]),"key"),this.appendValueInput("NUM",Number).appendField(mt.Msg.MIXLY_STAT).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_ANALOG_WRITE_SET_TOOLTIP)}},Nx={init:function(){this.setColour(Rx),this.appendValueInput("PIN",Number).appendField("PWM"+mt.Msg.MIXLY_Analog_PINMODEOUT).setCheck(Number),this.appendValueInput("NUM",Number).appendField(mt.Msg.MIXLY_FREQUENCY+mt.Msg.MIXLY_STAT).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_PWM_ANALOG_WRITE_SET_FREQ_TOOLTIP)}},Dx={init:function(){this.setColour(Rx),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(mt.Msg.MIXLY_Analog_PINMODEIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_MACHINE_VALUE),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_ANALOG_READ_TOOLTIP)}},fx={init:function(){this.setColour(Rx),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_Analog_PINMODEIN).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_REF_VOLTAGE+mt.Msg.MIXLY_STAT).appendField(new mt.FieldDropdown([["3.3V","machine.ADC.ATTN_11DB"],["2.2V","machine.ADC.ATTN_6DB"],["1.5V","machine.ADC.ATTN_2_5DB"],["1.2V","machine.ADC.ATTN_0DB"]]),"atten"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_ANALOG_ATTEN_TOOLTIP)}},Fx={init:function(){this.setColour(Rx),this.appendValueInput("pin").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(mt.Msg.MIXLY_ESP32_TOUCH_SENSOR),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_MACHINE_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_PIN_PRESSED_TOOLTIP)}},Px={init:function(){this.setColour(20),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_ATTACHINTERRUPT_PIN).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_RISING,"machine.Pin.IRQ_RISING"],[mt.Msg.MIXLY_FALLING,"machine.Pin.IRQ_FALLING"],[mt.Msg.MIXLY_CHANGE,"(machine.Pin.IRQ_RISING | machine.Pin.IRQ_FALLING)"]]),"mode"),this.appendValueInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_PIN_ATTACHINTERRUPT_TOOLTIP)}},vx={init:function(){this.setColour(20),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETUP).appendField(new mt.FieldTextInput("pin#"),"PIN_OBJ"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROPYTHON_AS).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_Digital_PINMODEOUT,"machine.Pin.OUT"],[mt.Msg.MIXLY_Digital_PINMODEIN,"machine.Pin.IN"],[mt.Msg.MIXLY_PINMODEPULLUP,"machine.Pin.IN, machine.Pin.PULL_UP"],[mt.Msg.MIXLY_PINMODEPULLDOWN,"machine.Pin.IN, machine.Pin.PULL_DOWN"]]),"MODE"),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_DIGITAL_INIT_TOOLTIP)},getVars:function(){return["pin#"==this.getFieldValue("PIN_OBJ")?null:this.getFieldValue("PIN_OBJ")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("PIN_OBJ"))&&this.setTitleValue(e,"PIN_OBJ")}},Yx={init:function(){this.setColour(Rx),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP).appendField(new mt.FieldTextInput("pwm#"),"PIN_OBJ").appendField(mt.Msg.MIXLY_MICROPYTHON_AS),this.appendDummyInput("").appendField("PWM"+mt.Msg.MIXLY_Analog_PINMODEOUT),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_PWM_ANALOG_WRITE_INIT_TOOLTIP)},getVars:function(){return["pwm#"==this.getFieldValue("PIN_OBJ")?null:this.getFieldValue("PIN_OBJ")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("PIN_OBJ"))&&this.setTitleValue(e,"PIN_OBJ")}},xx={init:function(){this.setColour(Rx),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP).appendField(new mt.FieldTextInput("dac#"),"PIN_OBJ").appendField(mt.Msg.MIXLY_MICROPYTHON_AS),this.appendDummyInput("").appendField("DAC"+mt.Msg.MIXLY_Analog_PINMODEOUT),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_ANALOG_WRITE_INIT_TOOLTIP)},getVars:function(){return["dac#"==this.getFieldValue("PIN_OBJ")?null:this.getFieldValue("PIN_OBJ")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("PIN_OBJ"))&&this.setTitleValue(e,"PIN_OBJ")}},Xx={init:function(){this.setColour(Rx),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP).appendField(new mt.FieldTextInput("adc#"),"PIN_OBJ").appendField(mt.Msg.MIXLY_MICROPYTHON_AS),this.appendDummyInput("").appendField(mt.Msg.MIXLY_Analog_PINMODEIN),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_ANALOG_READ_INIT_TOOLTIP)},getVars:function(){return["adc#"==this.getFieldValue("PIN_OBJ")?null:this.getFieldValue("PIN_OBJ")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("PIN_OBJ"))&&this.setTitleValue(e,"PIN_OBJ")}},bx={init:function(){this.setColour(Rx),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP).appendField(new mt.FieldTextInput("tc#"),"PIN_OBJ").appendField(mt.Msg.MIXLY_MICROPYTHON_AS),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_TOUCH_SENSOR),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_PIN_PRESSED_INIT_TOOLTIP)},getVars:function(){return["tc#"==this.getFieldValue("PIN_OBJ")?null:this.getFieldValue("PIN_OBJ")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("PIN_OBJ"))&&this.setTitleValue(e,"PIN_OBJ")}},yx=vx,Vx=Nx,Bx=bx,Gx=Fx,Ux=Px,wx=40,kx={init:function(){if("mixgo_me"==Ot.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(wx),this.appendDummyInput("").appendField(t).appendField(mt.Msg.MIXLY_TEM_HUM+" AHT21").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETTEMPERATUE,"temperature"],[mt.Msg.MIXLY_GETHUMIDITY,"humidity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("key");return{temperature:mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,relative_humidity:mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[t]}))}},Hx={init:function(){if("mixgo_me"==Ot.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(wx),this.appendDummyInput("").appendField(t).appendField(mt.Msg.MIXLY_Altitude+mt.Msg.MSG.catSensor+" HP203X").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETPRESSURE,"pressure()"],[mt.Msg.MIXLY_GETTEMPERATUE,"temperature()"],[mt.Msg.MIXLY_GET_ALTITUDE,"altitude()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},Wx={init:function(){if("mixgo_me"==Ot.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(wx),this.appendDummyInput().appendField(t).appendField(mt.Msg.MIXLY_MIXGO_NOVA_POTENTIAL_NUM),this.setOutput(!0,Number),this.setInputsInline(!0)}},Kx={init:function(){if("mixgo_me"==Ot.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(wx),this.appendDummyInput().appendField(t).appendField("RFID"+mt.Msg.MIXLY_RFID_READ_CARD),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RFID_READ_CARD_UID),this.setOutput(!0,Number),this.setInputsInline(!0)}},Jx={init:function(){if("mixgo_me"==Ot.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(wx),this.appendDummyInput().appendField(t).appendField("RFID"+mt.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SECTOR").appendField(mt.Msg.MIXLY_LIST_INDEX),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL),this.setOutput(!0,Number),this.setInputsInline(!0)}},Qx={init:function(){if("mixgo_me"==Ot.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(wx),this.appendDummyInput().appendField(t).appendField(mt.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SECTOR").appendField(mt.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(mt.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},zx={init:function(){if("mixgo_me"==Ot.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(wx),this.appendDummyInput().appendField(t).appendField(mt.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SECTOR").appendField(mt.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(mt.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.appendDummyInput().appendField(mt.Msg.RETURN_SUCCESS_OR_NOT),this.setInputsInline(!0),this.setOutput(!0)}},qx={init:function(){if("mixgo_me"==Ot.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(wx),this.appendDummyInput().appendField(t).appendField("RFID"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_RFID_SCAN_OK,"0"],[mt.Msg.MIXLY_RFID_SCAN_NOTAGERR,"1"],[mt.Msg.MIXLY_RFID_SCAN_ERROR,"2"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},jx=230,Zx={init:function(){this.setColour(jx),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.digital),"PIN"),this.setOutput(!0)}},$x={init:function(){this.setColour(jx),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.digital_pin),"PIN"),this.setOutput(!0,Number)}},tX={init:function(){this.setColour(jx),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.input_pin),"PIN"),this.setOutput(!0,Number)}},eX={init:function(){this.setColour(jx),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.output_pin),"PIN"),this.setOutput(!0,Number)}},iX={init:function(){this.setColour(jx),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.espnow_channel),"PIN"),this.setOutput(!0,Number)}},nX={init:function(){this.setColour(jx),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.haskylens_model),"PIN"),this.setOutput(!0,Number)}},sX={init:function(){this.setColour(jx),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.pwm_input),"PIN"),this.setOutput(!0)}},oX={init:function(){this.setColour(jx),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.analog_input),"PIN"),this.setOutput(!0)}},_X={init:function(){this.setColour(jx),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.pwm_output),"PIN"),this.setOutput(!0)}},aX={init:function(){this.setColour(jx),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.analog_output),"PIN"),this.setOutput(!0)}},pX={init:function(){this.setColour(jx),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.i2c_A_pin),"PIN"),this.setOutput(!0,Number)}},uX={init:function(){this.setColour(jx),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.i2c_B_pin),"PIN"),this.setOutput(!0,Number)}},rX={init:function(){this.setColour(jx),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.spi_A_pin),"PIN"),this.setOutput(!0,Number)}},lX={init:function(){this.setColour(jx),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.spi_B_pin),"PIN"),this.setOutput(!0,Number)}},dX={init:function(){this.setColour(jx),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.spi_C_pin),"PIN"),this.setOutput(!0,Number)}},IX={init:function(){this.setColour(jx),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.spi_D_pin),"PIN"),this.setOutput(!0,Number)}},TX={init:function(){this.setColour(jx),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.analog),"PIN"),this.setOutput(!0)}},hX={init:function(){this.setColour(jx),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.analog_pin),"PIN"),this.setOutput(!0,Number)}},MX={init:function(){this.setColour(jx),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.dac),"PIN"),this.setOutput(!0)}},mX={init:function(){this.setColour(jx),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.dac_pin),"PIN"),this.setOutput(!0,Number)}},OX={init:function(){this.setColour(jx),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.button),"PIN"),this.setOutput(!0,Number)}},EX={init:function(){this.setColour(jx),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.buttonB),"PIN"),this.setOutput(!0,Number)}},RX={init:function(){this.setColour(jx),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.pwm),"PIN"),this.setOutput(!0)}},cX={init:function(){this.setColour(jx),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.pwm_pin),"PIN"),this.setOutput(!0,Number)}},gX={init:function(){this.setColour(jx),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.touch_pin),"PIN"),this.setOutput(!0,Number)}},CX={init:function(){this.setColour(jx),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.touch),"PIN"),this.setOutput(!0)}},SX={init:function(){this.setColour(jx),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.serial_pin),"PIN"),this.setOutput(!0,Number)}},AX={init:function(){this.setColour(jx),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.builtinimg),"PIN"),this.setOutput(!0,"esp32_image")}},LX={init:function(){this.setColour(jx),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.builtinimg_extern),"PIN"),this.setOutput(!0,"esp32_image")}},NX={init:function(){this.setColour(jx),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.imglist),"PIN"),this.setOutput(!0)}},DX={init:function(){this.setColour(jx),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.playlist),"PIN"),this.setOutput(!0)}},fX={init:function(){this.setColour(jx),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.playlist_extern),"PIN"),this.setOutput(!0)}},FX={init:function(){this.setColour(jx),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.exlcdh),"PIN"),this.setOutput(!0,Number)}},PX={init:function(){this.setColour(jx),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.exlcdv),"PIN"),this.setOutput(!0,Number)}},vX={init:function(){this.setColour(jx),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.axis),"PIN"),this.setOutput(!0,Number)}},YX={init:function(){this.setColour(jx),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.brightness),"PIN"),this.setOutput(!0,Number)}},xX={init:function(){this.setColour(jx),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.tts_voice),"PIN"),this.setOutput(!0,Number)}},XX={init:function(){this.setColour(jx),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.tts_builtin_music),"PIN"),this.setOutput(!0,Number)}},bX={init:function(){this.setColour(jx),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.tts_bgmusic),"PIN"),this.setOutput(!0,Number)}},yX={init:function(){this.setColour(jx),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.tone_notes),"PIN"),this.setOutput(!0,Number)}},VX={init:function(){this.setColour(jx),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.radio_power),"PIN"),this.setOutput(!0,Number)}},BX={init:function(){this.setColour(jx),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.radio_datarate),"PIN"),this.setOutput(!0,Number)}},GX={init:function(){this.setColour(jx),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.one_more),"PIN"),this.setOutput(!0)}},UX={init:function(){this.setColour(jx),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.digital_dot),"PIN"),this.setOutput(!0,Number)}},wX=function(t,e){return["HIGH"==this.getFieldValue("BOOL")?"1":"0",e.ORDER_ATOMIC]},kX=function(t,e){e.definitions_.import_machine="import machine";var i="";return i+=e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".value("+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"},HX=function(t,e){e.definitions_.import_machine="import machine";return[e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".value()",e.ORDER_ATOMIC]},WX=function(t,e){return e.definitions_.import_machine="import machine",e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".duty("+e.valueToCode(this,"NUM",e.ORDER_ATOMIC)+")\n"},KX=function(t,e){return e.definitions_.import_machine="import machine",e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".write("+e.valueToCode(this,"NUM",e.ORDER_ATOMIC)+")\n"},JX=function(t,e){e.definitions_.import_machine="import machine";var i=e.valueToCode(this,"PIN",e.ORDER_ATOMIC),n=e.valueToCode(this,"NUM",e.ORDER_ATOMIC);return i+".set_analog_"+this.getFieldValue("key")+"("+n+")\n"},QX=function(t,e){return e.definitions_.import_machine="import machine",e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".freq("+e.valueToCode(this,"NUM",e.ORDER_ATOMIC)+")\n"},zX=function(t,e){return e.definitions_.import_machine="import machine",[e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".read()",e.ORDER_ATOMIC]},qX=function(t,e){return e.definitions_.import_machine="import machine",[e.valueToCode(this,"pin",e.ORDER_ATOMIC)+".read()",e.ORDER_ATOMIC]},jX=function(t,e){e.definitions_.import_machine="import machine";var i=e.valueToCode(this,"PIN",e.ORDER_ATOMIC),n=this.getFieldValue("mode");return"machine.Pin("+i+").irq(handler = "+e.valueToCode(this,"DO",e.ORDER_ATOMIC)+", trigger = "+n+")\n"},ZX=function(t,e){e.definitions_.import_machine="import machine";var i=this.getFieldValue("PIN_OBJ")||"pin#",n=e.valueToCode(this,"PIN",e.ORDER_ATOMIC),s=this.getFieldValue("MODE");return("pin#"==i?"pin"+n:e.variableDB_.getName(i,mt.Variables.NAME_TYPE))+" = machine.Pin("+n+", "+s+")\n"},$X=function(t,e){e.definitions_.import_machine="import machine";var i=this.getFieldValue("PIN_OBJ")||"pwm#",n=e.valueToCode(this,"PIN",e.ORDER_ATOMIC);return("pwm#"==i?"pwm"+n:e.variableDB_.getName(i,mt.Variables.NAME_TYPE))+" = machine.PWM(machine.Pin("+n+"))\n"},tb=function(t,e){e.definitions_.import_machine="import machine";var i=this.getFieldValue("PIN_OBJ")||"dac#",n=e.valueToCode(this,"PIN",e.ORDER_ATOMIC);return("dac#"==i?"dac"+n:e.variableDB_.getName(i,mt.Variables.NAME_TYPE))+" = machine.DAC(machine.Pin("+n+"))\n"},eb=function(t,e){e.definitions_.import_machine="import machine";var i=this.getFieldValue("PIN_OBJ")||"adc#",n=e.valueToCode(this,"PIN",e.ORDER_ATOMIC);return("adc#"==i?"adc"+n:e.variableDB_.getName(i,mt.Variables.NAME_TYPE))+" = machine.ADC(machine.Pin("+n+"))\n"},ib=function(t,e){return e.definitions_.import_machine="import machine",e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".atten("+this.getFieldValue("atten")+")\n"},nb=function(t,e){e.definitions_.import_machine="import machine";var i=this.getFieldValue("PIN_OBJ")||"tc#",n=e.valueToCode(this,"PIN",e.ORDER_ATOMIC);return("tc#"==i?"tc"+n:e.variableDB_.getName(i,mt.Variables.NAME_TYPE))+" = machine.TouchPad(machine.Pin("+n+"))\n"},sb=function(t,e){var i=this.getFieldValue("key");return e.definitions_.import_me_g1="import me_g1",["me_g1.ext_ahtx0."+i+"()",e.ORDER_ATOMIC]},ob=function(t,e){var i=this.getFieldValue("key");return e.definitions_.import_me_g1="import me_g1",["me_g1.ext_hp203x."+i,e.ORDER_ATOMIC]},_b=function(t,e){e.definitions_.import_me_g1="import me_g1";return["me_g1.varistor()",e.ORDER_ATOMIC]},ab=function(t,e){e.definitions_.import_me_g1="import me_g1";return['me_g1.ext_rc522.read_card(0, x="id")',e.ORDER_ATOMIC]},pb=function(t,e){var i=e.valueToCode(this,"SECTOR",e.ORDER_ATOMIC);return e.definitions_.import_me_g1="import me_g1",["me_g1.ext_rc522.read_card("+i+")",e.ORDER_ATOMIC]},ub=function(t,e){var i=e.valueToCode(this,"SECTOR",e.ORDER_ATOMIC),n=e.valueToCode(this,"CONTENT",e.ORDER_ATOMIC);return e.definitions_.import_me_g1="import me_g1","me_g1.ext_rc522.write_card("+n+","+i+")\n"},rb=function(t,e){var i=e.valueToCode(this,"SECTOR",e.ORDER_ATOMIC),n=e.valueToCode(this,"CONTENT",e.ORDER_ATOMIC);return e.definitions_.import_me_g1="import me_g1",["me_g1.ext_rc522.write_card("+n+","+i+")",e.ORDER_ATOMIC]},lb=function(t,e){var i=this.getFieldValue("key");return e.definitions_.import_me_g1="import me_g1",["me_g1.ext_rc522.scan_card()=="+i,e.ORDER_ATOMIC]},db=function(t,e){return[this.getFieldValue("PIN"),e.ORDER_ATOMIC]},Ib=db,Tb=db,hb=db,Mb=db,mb=db,Ob=db,Eb=db,Rb=db,cb=db,gb=db,Cb=db,Sb=db,Ab=db,Lb=db,Nb=db,Db=db,fb=db,Fb=db,Pb=db,vb=db,Yb=db,xb=db,Xb=db,bb=db,yb=db,Vb=db,Bb=db,Gb=db,Ub=db,wb=db,kb=db,Hb=db,Wb=db,Kb=db,Jb=db,Qb=db,zb=db,qb=db,jb=db,Zb=db,$b=db,ty=db,ey=db,iy=db;Object.assign(mt.Variables,Rt),Object.assign(mt.Procedures,Wn),mt.Python=_u,mt.generator=_u,Ot.Profile.default={},Object.assign(Ot.Profile,Ex),Object.assign(Ot.Profile.default,Ex["MixGo CC"]),Object.assign(mt.Blocks,e,i,n,s,o,_,a,p,u,r,l,d,I,V,H,k,x,B,W,f,w,U,G,F,D,N,b,X,y,P,v,Y,lt,dt,It),Object.assign(mt.Python.forBlock,T,h,M,m,O,E,R,c,g,C,S,A,L,nt,ut,pt,$,st,rt,Q,at,_t,ot,z,J,K,et,tt,it,q,j,Z,Tt,ht,Mt)})(); \ No newline at end of file +class ct{constructor(t,e){if(this.variablePrefix_=e||"",this.reservedDict_=Object.create(null),t)for(var i=t.split(","),n=0;n0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?i[s]=e.getInputTargetBlock("IF"+s).previousConnection:i[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?n[s]=e.getInputTargetBlock("DO"+s).previousConnection:n[s]=null,this.removeInput("DO"+s);this.elseifCount_=parseInt(t.getAttribute("elseif"),10),this.elseCount_=parseInt(t.getAttribute("else"),10);for(s=1;s<=this.elseifCount_;s++)this.appendValueInput("IF"+s).setCheck([Boolean,Number]).appendField(mt.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+s).appendField(mt.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(mt.Msg.CONTROLS_IF_MSG_ELSE);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"IF"+s);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_if_if");e.initSvg();for(var i=e.getInput("STACK").connection,n=1;n<=this.elseifCount_;n++){var s=t.newBlock("controls_if_elseif");s.initSvg(),i.connect(s.previousConnection),i=s.nextConnection}if(this.elseCount_){var o=t.newBlock("controls_if_else");o.initSvg(),i.connect(o.previousConnection)}return e},compose:function(t){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var e=this.elseifCount_;e>0;e--)this.removeInput("IF"+e),this.removeInput("DO"+e);this.elseifCount_=0;for(var i=t.getInputTargetBlock("STACK"),n=[null],s=[null],o=null;i;){switch(i.type){case"controls_if_elseif":this.elseifCount_++,n.push(i.valueConnection_),s.push(i.statementConnection_);break;case"controls_if_else":this.elseCount_++,o=i.statementConnection_;break;default:throw Error("Unknown block type: "+i.type)}i=i.nextConnection&&i.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(n,s,o)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),i=1;e;){switch(e.type){case"controls_if_elseif":var n=this.getInput("IF"+i),s=this.getInput("DO"+i);e.valueConnection_=n&&n.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,i++;break;case"controls_if_else":s=this.getInput("ELSE");e.statementConnection_=s&&s.connection.targetConnection;break;default:throw"Unknown block type."}e=e.nextConnection&&e.nextConnection.targetBlock()}},rebuildShape_:function(){var t=[null],e=[null],i=null;this.getInput("ELSE")&&(i=this.getInput("ELSE").connection.targetConnection);for(var n=1;this.getInput("IF"+n);){var s=this.getInput("IF"+n),o=this.getInput("DO"+n);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(o.connection.targetConnection),n++}this.updateShape_(),this.reconnectChildBlocks_(t,e,i)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var t=1;this.getInput("IF"+t);)this.removeInput("IF"+t),this.removeInput("DO"+t),t++;for(t=1;t<=this.elseifCount_;t++)this.appendValueInput("IF"+t).setCheck([Number,Boolean]).appendField(mt.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+t).appendField(mt.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(mt.Msg.CONTROLS_IF_MSG_ELSE)},reconnectChildBlocks_:function(t,e,i){for(var n=1;n<=this.elseifCount_;n++)t[n]&&t[n].reconnect(this,"IF"+n),e[n]&&e[n].reconnect(this,"DO"+n);i&&i.reconnect(this,"ELSE")}},bt={init:function(){this.setColour(Ft),this.appendValueInput("FROM").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.PYTHON_RANGE).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.PYTHON_RANGE_STEP),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},yt={init:function(){this.setColour(Ft),this.appendValueInput("LIST").setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.CONTROLS_FOREACH_INPUT),this.appendValueInput("VAR").appendField(mt.Msg.CONTROLS_FOREACH_INPUT_ITEM),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip((function(){return mt.Msg.CONTROLS_FOR_TOOLTIP.replace("“%1”","")}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Vt={init:function(){this.setColour(Ft),this.appendValueInput("BOOL").setCheck([Boolean,Number]).appendField(mt.Msg.MIXLY_MICROBIT_JS_CURRENT).appendField(new mt.FieldDropdown(this.OPERATORS),"MODE"),this.appendStatementInput("DO").appendField(mt.Msg.LANG_CONTROLS_WHILEUNTIL_TITLE_REPEAT+mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return{WHILE:mt.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_WHILE,UNTIL:mt.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL}[e]}))}},Bt={init:function(){this.setColour(Ft),this.appendDummyInput().appendField(mt.Msg.MIXLY_PYTHON_TRY),this.appendStatementInput("try"),this.appendValueInput("IF1").appendField(mt.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO1").appendField(""),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new mt.icons.MutatorIcon(["controls_except","controls_finally"],this)),this.setTooltip(mt.Msg.MIXLY_MIXPY_CONTROL_TRY_TOOLTIP),this.elseifCount_=1,this.elseCount_=0},mutationToDom:function(){if(!this.elseifCount_&&!this.elseCount_)return null;var t=document.createElement("mutation");return this.elseifCount_&&t.setAttribute("elseif",this.elseifCount_),this.elseCount_&&t.setAttribute("else",1),t},domToMutation:function(t){var e=this,i=[],n=[];this.elseCount_&&this.removeInput("ELSE");for(var s=this.elseifCount_;s>0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?i[s]=e.getInputTargetBlock("IF"+s).previousConnection:i[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?n[s]=e.getInputTargetBlock("DO"+s).previousConnection:n[s]=null,this.removeInput("DO"+s);this.elseifCount_=parseInt(t.getAttribute("elseif"),10),this.elseCount_=parseInt(t.getAttribute("else"),10);for(s=1;s<=this.elseifCount_;s++)this.appendValueInput("IF"+s).setCheck([Boolean,Number]).appendField(mt.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+s).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(mt.Msg.MIXLY_PYTHON_FINALLY);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"IF"+s);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_try");e.initSvg();for(var i=e.getInput("STACK").connection,n=1;n<=this.elseifCount_;n++){var s=t.newBlock("controls_except");s.initSvg(),i.connect(s.previousConnection),i=s.nextConnection}if(this.elseCount_){var o=t.newBlock("controls_finally");o.initSvg(),i.connect(o.previousConnection)}return e},compose:function(t){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var e=this.elseifCount_;e>0;e--)this.removeInput("IF"+e),this.removeInput("DO"+e);this.elseifCount_=0;for(var i=t.getInputTargetBlock("STACK"),n=[null],s=[null],o=null;i;){switch(i.type){case"controls_except":this.elseifCount_++,n.push(i.valueConnection_),s.push(i.statementConnection_);break;case"controls_finally":this.elseCount_++,o=i.statementConnection_;break;default:throw Error("Unknown block type: "+i.type)}i=i.nextConnection&&i.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(n,s,o)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),i=1;e;){switch(e.type){case"controls_except":var n=this.getInput("IF"+i),s=this.getInput("DO"+i);e.valueConnection_=n&&n.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,i++;break;case"controls_finally":s=this.getInput("ELSE");e.statementConnection_=s&&s.connection.targetConnection;break;default:throw"Unknown block type."}e=e.nextConnection&&e.nextConnection.targetBlock()}},rebuildShape_:function(){var t=[null],e=[null],i=null;this.getInput("ELSE")&&(i=this.getInput("ELSE").connection.targetConnection);for(var n=1;this.getInput("IF"+n);){var s=this.getInput("IF"+n),o=this.getInput("DO"+n);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(o.connection.targetConnection),n++}this.updateShape_(),this.reconnectChildBlocks_(t,e,i)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var t=1;this.getInput("IF"+t);)this.removeInput("IF"+t),this.removeInput("DO"+t),t++;for(t=1;t<=this.elseifCount_;t++)this.appendValueInput("IF"+t).setCheck([Number,Boolean]).appendField(mt.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+t).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(mt.Msg.MIXLY_PYTHON_FINALLY)},reconnectChildBlocks_:function(t,e,i){for(var n=1;n<=this.elseifCount_;n++)t[n]&&t[n].reconnect(this,"IF"+n),e[n]&&e[n].reconnect(this,"DO"+n);i&&i.reconnect(this,"ELSE")}},Gt={init:function(){this.setColour(Ft);var t=new mt.FieldDropdown(this.OPERATORS);this.appendDummyInput().appendField(t,"FLOW").appendField(mt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_INPUT_OFLOOP),this.setPreviousStatement(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_CONTROLS_FLOW_STATEMENTS_TOOLTIP);var e=this;this.setTooltip((function(){var t=e.getFieldValue("FLOW");return{BREAK:mt.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK,CONTINUE:mt.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE}[t]}))},onchange:function(){if(this.workspace){var t=!1,e=this;do{if("controls_repeat"==e.type||"controls_for"==e.type||"controls_forEach"==e.type||"controls_repeat_ext"==e.type||"controls_whileUntil"==e.type||"do_while"==e.type){t=!0;break}e=e.getSurroundParent()}while(e);t?this.setWarningText(null):this.setWarningText(mt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_WARNING)}}},Ut={init:function(){this.setColour(Ft),this.appendDummyInput().appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new mt.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return mt.Msg.CONTROLS_FOR_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},wt={init:function(){this.setColour(Ft),this.appendDummyInput().appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new mt.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return mt.Msg.MIXLY_PYTHON_CONTROLS_FOR_RANGE_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}};Vt.OPERATORS=[[mt.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"WHILE"],[mt.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"UNTIL"]],Gt.OPERATORS=[[mt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK,"BREAK"],[mt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE,"CONTINUE"]];const kt={init:function(){this.setColour(Ft),this.appendDummyInput().appendField(mt.Msg.CONTROLS_IF_IF_TITLE_IF),this.appendStatementInput("STACK"),this.setTooltip(mt.Msg.CONTROLS_IF_IF_TOOLTIP),this.contextMenu=!1}},Ht={init:function(){this.setColour(Ft),this.appendDummyInput().appendField(mt.Msg.CONTROLS_IF_ELSEIF_TITLE_ELSEIF),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.CONTROLS_IF_ELSEIF_TOOLTIP),this.contextMenu=!1}},Wt={init:function(){this.setColour(Ft),this.appendDummyInput().appendField(mt.Msg.CONTROLS_IF_ELSE_TITLE_ELSE),this.setPreviousStatement(!0),this.setTooltip(mt.Msg.CONTROLS_IF_ELSE_TOOLTIP),this.contextMenu=!1}},Kt={init:function(){this.setColour(Ft),this.appendDummyInput().appendField("try"),this.appendStatementInput("STACK"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.contextMenu=!1}},Jt={init:function(){this.setColour(Ft),this.appendDummyInput().appendField(mt.Msg.MIXLY_PYTHON_EXCEPT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.contextMenu=!1,this.setTooltip(mt.Msg.MIXLY_MIXPY_CONTROL_EXCEPT_TOOLTIP)}},Qt={init:function(){this.setColour(Ft),this.appendDummyInput().appendField(mt.Msg.MIXLY_PYTHON_FINALLY),this.setPreviousStatement(!0),this.contextMenu=!1,this.setTooltip(mt.Msg.MIXLY_MIXPY_CONTROL_FINALLY_TOOLTIP)}},zt={init:function(){this.jsonInit({message0:mt.Msg.CONTROLS_REPEAT_TITLE,args0:[{type:"input_value",name:"TIMES"}],previousStatement:null,nextStatement:null,colour:Ft,tooltip:mt.Msg.CONTROLS_REPEAT_TOOLTIP,helpUrl:mt.Msg.CONTROLS_REPEAT_HELPURL}),this.appendStatementInput("DO")}},qt={init:function(){this.setColour(Ft),this.appendValueInput("BOOL").appendField("lambda"),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_STAT),this.setOutput(!0)}},jt={init:function(){this.setColour(Ft),this.appendDummyInput().appendField(mt.Msg.MIXLY_PYTHON_PASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_CONTROLS_PASS_TOOLTIP)}},Zt={init:function(){this.setColour(Ft),this.appendDummyInput().appendField(mt.Msg.MIXLY_PYTHON_CONTROLS_THREAD_START),this.appendValueInput("callback").appendField(mt.Msg.MIXLY_PYTHON_CONTROLS_THREAD_USE),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_CONTROLS_THREAD_TOOLTIP)}},$t={init:function(){this.appendDummyInput().appendField(mt.Msg.CONTROLS_REPEAT_TITLE_REPEAT+mt.Msg.MIXLY_DO),this.appendStatementInput("input_data").setCheck(null),this.appendValueInput("select_data").setCheck(null).appendField(mt.Msg.CONTROLS_OPERATOR_UNTIL).appendField(new mt.FieldDropdown([[mt.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"true"],[mt.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"false"]]),"type"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Ft),this.setTooltip("do-while loop"),this.setHelpUrl("")}},te={init:function(){this.setColour(Ft),this.appendDummyInput().appendField(mt.Msg.MIXLY_OP_GARBAGE_COLLECT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},ee={init:function(){this.setColour(Ft),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_MEM_ALLOC),this.setOutput(!0)}},ie={init:function(){this.setColour(Ft),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_MEM_FREE),this.setOutput(!0)}},ne=230;mt.FieldTextInput.math_number_validator=function(t){return String(t)},mt.FieldTextInput.math_number_validator_include_blank=function(t){if(""===t)return"";return/^-?(0X|0x|0O|0o|0B|0b)?[a-fA-F0-9]{1,}(\.[a-fA-F0-9]+)?$/.test(t)?String(t):null};const se={init:function(){this.setColour(ne),this.appendDummyInput().appendField(new mt.FieldTextInput("0",mt.FieldTextInput.math_number_validator),"NUM"),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MATH_NUMBER_TOOLTIP)}},oe={init:function(){this.setColour(ne);this.appendDummyInput("").appendField(mt.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new mt.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:mt.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_TOOLTIP,e:mt.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_TOOLTIP}[e]}))}},_e={init:function(){this.setColour(ne);this.appendDummyInput("").appendField(mt.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new mt.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:mt.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_MP_TOOLTIP,e:mt.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_MP_TOOLTIP}[e]}))}},ae={init:function(){this.setColour(ne),this.setOutput(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new mt.FieldDropdown([["+","ADD"],["-","MINUS"],["×","MULTIPLY"],["÷","DIVIDE"],["%","QUYU"],["//","ZHENGCHU"],["**","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:mt.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:mt.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:mt.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:mt.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:mt.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:mt.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:mt.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},pe={init:function(){this.setColour(ne),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new mt.FieldDropdown([["+=","ADD"],["-=","MINUS"],["×=","MULTIPLY"],["÷=","DIVIDE"],["%=","QUYU"],["//=","ZHENGCHU"],["**=","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:mt.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:mt.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:mt.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:mt.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:mt.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:mt.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:mt.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},ue={init:function(){this.setColour(ne),this.setOutput(!0,Number),this.appendValueInput("A").setCheck(Number),this.appendValueInput("B").setCheck(Number).appendField(new mt.FieldDropdown([["&","&"],["|","|"],[">>",">>"],["<<","<<"]]),"OP"),this.setInputsInline(!0),this.setTooltip("位运算")}},re={init:function(){this.setColour(ne),this.setOutput(!0,Number),this.appendValueInput("NUM").setCheck(Number).appendField(new mt.FieldDropdown([["sin","SIN"],["cos","COS"],["tan","TAN"],["asin","ASIN"],["acos","ACOS"],["atan","ATAN"],["-","-"],["ln","LN"],["log10","LOG10"],["e^","EXP"],["10^","POW10"]]),"OP");var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{SIN:mt.Msg.MATH_TRIG_TOOLTIP_SIN,COS:mt.Msg.MATH_TRIG_TOOLTIP_COS,TAN:mt.Msg.MATH_TRIG_TOOLTIP_TAN,ASIN:mt.Msg.MATH_TRIG_TOOLTIP_ASIN,ACOS:mt.Msg.MATH_TRIG_TOOLTIP_ACOS,ATAN:mt.Msg.MATH_TRIG_TOOLTIP_ATAN,LN:mt.Msg.MATH_SINGLE_TOOLTIP_LN}[e]}))}},le={init:function(){var t=[[mt.Msg.MATH_BIN,"bin"],[mt.Msg.MATH_OCT,"oct"],[mt.Msg.MATH_HEX,"hex"]];this.setColour(ne),this.setOutput(!0,String),this.appendValueInput("NUM").setCheck(Number).appendField(new mt.FieldDropdown(t),"OP");var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{bin:mt.Msg.MATH_DEC_TOOLTIP_BIN,oct:mt.Msg.MATH_DEC_TOOLTIP_OCT,hex:mt.Msg.MATH_DEC_TOOLTIP_HEX}[t]}))}},de={init:function(){var t=[[mt.Msg.LANG_MATH_TO_ROUND,"round"],[mt.Msg.LANG_MATH_TO_CEIL,"ceil"],[mt.Msg.LANG_MATH_TO_FLOOR,"floor"],[mt.Msg.MATH_ABS,"fabs"],[mt.Msg.MATH_SQRT,"sqrt"]];this.setColour(ne),this.appendValueInput("A").setCheck(Number).appendField(new mt.FieldDropdown(t),"OP"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{sqrt:mt.Msg.MATH_SINGLE_TOOLTIP_ROOT,fabs:mt.Msg.MATH_SINGLE_TOOLTIP_ABS,sq:mt.Msg.MATH_SINGLE_TOOLTIP_SQ,round:mt.Msg.MATH_SINGLE_TOOLTIP_ROUND,ceil:mt.Msg.MATH_SINGLE_TOOLTIP_CEIL,floor:mt.Msg.MATH_SINGLE_TOOLTIP_FLOOR}[t]}))}},Ie={init:function(){var t=[[mt.Msg.MIXLY_MAX,"max"],[mt.Msg.MIXLY_MIN,"min"]];this.setColour(ne),this.appendValueInput("A").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(new mt.FieldDropdown(t),"OP").appendField("("),this.appendValueInput("B").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(","),this.appendDummyInput("").setAlign(mt.inputs.Align.RIGHT).appendField(")"),this.setInputsInline(!0),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{max:mt.Msg.MIXLY_TOOLTIP_MATH_MAX,min:mt.Msg.MIXLY_TOOLTIP_MATH_MIN}[t]}))}},Te={init:function(){var t=[[mt.Msg.MATH_TWO,"two"],[mt.Msg.MATH_EIGHT,"eight"],[mt.Msg.MATH_TEN,"ten"],[mt.Msg.MATH_SIXTEEN,"sixteen"]];this.setColour(ne),this.appendDummyInput("").appendField(mt.Msg.MATH_BA),this.appendValueInput("NUM").appendField(new mt.FieldDropdown(t),"OP").appendField(mt.Msg.MATH_JinZhi).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.MATH_ZHW).appendField(new mt.FieldDropdown(t),"OP2").appendField(mt.Msg.MATH_JinZhi),this.setFieldValue("ten","OP2"),this.setOutput(!0),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP"),i={two:mt.Msg.MATH_Before_two,eight:mt.Msg.MATH_Before_eight,ten:mt.Msg.MATH_Before_ten,sixteen:mt.Msg.MATH_Before_sixteen},n=e.getFieldValue("OP2"),s={two:mt.Msg.MATH_Behind_two,eight:mt.Msg.MATH_Behind_eight,ten:mt.Msg.MATH_Behind_ten,sixteen:mt.Msg.MATH_Behind_sixteen};return i[t]+s[n]}))}},he={init:function(){var t=[[mt.Msg.LANG_MATH_INT,"int"],[mt.Msg.LANG_MATH_FLOAT,"float"]];this.setColour(ne),this.setOutput(!0,Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_RANDOM).appendField(new mt.FieldDropdown(t),"TYPE"),this.appendValueInput("FROM").setCheck(Number).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LANG_MATH_RANDOM_INT_INPUT_TO),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TYPE"),i={int:mt.Msg.LANG_MATH_INT,float:mt.Msg.LANG_MATH_FLOAT_RANDOM};return mt.Msg.MATH_RANDOM_INT_TOOLTIP+i[t]}))}},Me={init:function(){this.setColour(ne),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number).appendField(mt.Msg.LANG_MATH_CONSTRAIN_INPUT_CONSTRAIN),this.appendValueInput("LOW").setCheck(Number).appendField(mt.Msg.LANG_MATH_CONSTRAIN_INPUT_LOW),this.appendValueInput("HIGH").setCheck(Number).appendField(mt.Msg.LANG_MATH_CONSTRAIN_INPUT_HIGH),this.setInputsInline(!0),this.setTooltip(mt.Msg.MATH_CONSTRAIN_TOOLTIP)}},me={init:function(){this.setColour(ne),this.appendValueInput("NUM",Number).appendField(mt.Msg.MIXLY_MAP).setCheck(Number),this.appendValueInput("fromLow",Number).appendField(mt.Msg.MIXLY_MAP_FROM).setCheck(Number),this.appendValueInput("fromHigh",Number).appendField(",").setCheck(Number),this.appendValueInput("toLow",Number).appendField(mt.Msg.MIXLY_MAP_TO).setCheck(Number),this.appendValueInput("toHigh",Number).appendField(",").setCheck(Number),this.appendDummyInput("").appendField("]"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_MATH_MAP)}},Oe={init:function(){this.setColour(ne),this.appendDummyInput().appendField(new mt.FieldTextInput("0",mt.FieldTextInput.math_number_validator_include_blank),"NUM"),this.setOutput(!0),this.setTooltip(mt.Msg.MATH_NUMBER_TOOLTIP)}},Ee={init:function(){this.setColour(ne),this.appendValueInput("NUM").setCheck(Number).appendField(mt.Msg.LANG_MATH_RANDOM_SEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_MATH_RANDOM_SEED)}},Re={init:function(){this.setColour(ne),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number),this.appendValueInput("VAR").setCheck(Number).appendField(mt.Msg.MATH_ROUND).appendField(mt.Msg.TEXT_KEEP),this.appendDummyInput().appendField(mt.Msg.TEXT_DECIMAL),this.setInputsInline(!0),this.setTooltip(mt.Msg.MATH_ROUND_NEW_TOOLTIP)}},ce={init:function(){var t=[[mt.Msg.MIXLY_TO_INT,"int"],[mt.Msg.MIXLY_TO_FLOAT,"float"],[mt.Msg.MIXLY_TO_BITES,"b"]];this.setColour(ne),this.appendValueInput("VAR").appendField(new mt.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:mt.Msg.MIXLY_PYTHON_TOOLTIP_TOINT,float:mt.Msg.MIXLY_PYTHON_TOOLTIP_TOFLOAT,b:mt.Msg.MIXLY_TOOLTIP_TEXT_TOBYTE}[t]}))}},ge={init:function(){var t=[[mt.Msg.MIXLY_TO_INT,"int"],[mt.Msg.MIXLY_TO_FLOAT,"float"]];this.setColour(ne),this.appendValueInput("VAR").appendField(new mt.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:mt.Msg.MIXLY_TOOLTIP_TEXT_TOINT,float:mt.Msg.MIXLY_TOOLTIP_TEXT_TOFLOAT}[t]}))}},Ce=me,Se=160,Ae={init:function(){this.setColour(Se),this.appendDummyInput().appendField(this.newQuote_(!0)).appendField(new mt.FieldTextInput(""),"TEXT").appendField(this.newQuote_(!1)),this.setOutput(!0,String),this.setTooltip(mt.Msg.TEXT_TEXT_TOOLTIP)},newQuote_:function(t){if(t==this.RTL)var e="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAKCAQAAAAqJXdxAAAAqUlEQVQI1z3KvUpCcRiA8ef9E4JNHhI0aFEacm1o0BsI0Slx8wa8gLauoDnoBhq7DcfWhggONDmJJgqCPA7neJ7p934EOOKOnM8Q7PDElo/4x4lFb2DmuUjcUzS3URnGib9qaPNbuXvBO3sGPHJDRG6fGVdMSeWDP2q99FQdFrz26Gu5Tq7dFMzUvbXy8KXeAj57cOklgA+u1B5AoslLtGIHQMaCVnwDnADZIFIrXsoXrgAAAABJRU5ErkJggg==";else e="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAKCAQAAAAqJXdxAAAAn0lEQVQI1z3OMa5BURSF4f/cQhAKjUQhuQmFNwGJEUi0RKN5rU7FHKhpjEH3TEMtkdBSCY1EIv8r7nFX9e29V7EBAOvu7RPjwmWGH/VuF8CyN9/OAdvqIXYLvtRaNjx9mMTDyo+NjAN1HNcl9ZQ5oQMM3dgDUqDo1l8DzvwmtZN7mnD+PkmLa+4mhrxVA9fRowBWmVBhFy5gYEjKMfz9AylsaRRgGzvZAAAAAElFTkSuQmCC";return new mt.FieldImage(e,12,12,'"')}},Le={init:function(){this.setColour(Se),this.appendDummyInput().appendField(this.newQuote_(!0)).appendField(new mt.FieldMultilineInput("Hello\nMixly"),"VALUE").appendField(this.newQuote_(!1)),this.setOutput(!0,String),this.setTooltip(mt.Msg.TEXT_LINES_TOOLTIP)},newQuote_:function(t){if(t==this.RTL)var e="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAKCAQAAAAqJXdxAAAAqUlEQVQI1z3KvUpCcRiA8ef9E4JNHhI0aFEacm1o0BsI0Slx8wa8gLauoDnoBhq7DcfWhggONDmJJgqCPA7neJ7p934EOOKOnM8Q7PDElo/4x4lFb2DmuUjcUzS3URnGib9qaPNbuXvBO3sGPHJDRG6fGVdMSeWDP2q99FQdFrz26Gu5Tq7dFMzUvbXy8KXeAj57cOklgA+u1B5AoslLtGIHQMaCVnwDnADZIFIrXsoXrgAAAABJRU5ErkJggg==";else e="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAKCAQAAAAqJXdxAAAAn0lEQVQI1z3OMa5BURSF4f/cQhAKjUQhuQmFNwGJEUi0RKN5rU7FHKhpjEH3TEMtkdBSCY1EIv8r7nFX9e29V7EBAOvu7RPjwmWGH/VuF8CyN9/OAdvqIXYLvtRaNjx9mMTDyo+NjAN1HNcl9ZQ5oQMM3dgDUqDo1l8DzvwmtZN7mnD+PkmLa+4mhrxVA9fRowBWmVBhFy5gYEjKMfz9AylsaRRgGzvZAAAAAElFTkSuQmCC";return new mt.FieldImage(e,12,12,'"')}};mt.FieldTextInput.char_validator=function(t){if(t.length>1&&"\\"===t.charAt(0)){var e=t.charAt(1);if("0"===e||"b"===e||"f"===e||"n"===e||"r"===e||"t"===e||"\\"===e||"'"===e)return String(t).substring(0,2);if("x"===e&&"0"===t.charAt(2)&&"B"===t.charAt(3))return String(t).substring(0,4)}return String(t).substring(0,1)};const Ne={init:function(){this.setColour(Se),this.appendDummyInput().appendField(this.newQuote_(!0)).appendField(new mt.FieldTextInput("",mt.FieldTextInput.char_validator),"TEXT").appendField(this.newQuote_(!1)),this.setOutput(!0,Number),this.setTooltip(mt.Msg.TEXT_CHAR_TOOLTIP)},newQuote_:function(t){if(1==t)var e="../../media/quote2.png";else e="../../media/quote3.png";return new mt.FieldImage(e,7,12,'"')}},De={init:function(){this.setColour(Se),this.appendValueInput("A").setCheck([String,Number]),this.appendValueInput("B").setCheck([String,Number]).appendField(mt.Msg.MIXLY_TEXT_JOIN),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_TEXT_JOIN)}},fe={init:function(){this.setColour(Se),this.appendValueInput("VAR").setCheck(Number).appendField(mt.Msg.MIXLY_TOCHAR),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_TEXT_TOCHAR)}},Fe={init:function(){this.setColour(Se),this.appendValueInput("VAR").setCheck(String).appendField(mt.Msg.MIXLY_TOASCII),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_TEXT_TOASCII)}},Pe={init:function(){this.setColour(Se),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_TOSTRING),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_PYTHON_TOOLTIP_TOTEXT)}},ve={init:function(){this.setColour(Se),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_LENGTH),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_TEXT_LENGTH)}},Ye={init:function(){this.WHERE_OPTIONS=[[mt.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[mt.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[mt.Msg.TEXT_GET_INDEX_RANDOM+1+mt.Msg.TEXT_CHARAT2,"RANDOM"]],this.setHelpUrl(mt.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(Se),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number),this.appendDummyInput().appendField(mt.Msg.LISTS_GET_INDEX_GET,"MODE"),mt.Msg.LISTS_GET_INDEX_TAIL&&this.appendDummyInput("TAIL").appendField(mt.Msg.LISTS_GET_INDEX_TAIL),this.setInputsInline(!0),this.setOutput(!0),this.updateAt_(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=t.getFieldValue("WHERE"),n="";switch(e+" "+i){case"GET FROM_START":case"GET FROM_END":n=mt.Msg.LISTS_GET_INDEX_TOOLTIP_GET_FROM;break;case"GET RANDOM":n=mt.Msg.LISTS_GET_INDEX_TOOLTIP_GET_RANDOM;break;case"GET_REMOVE FROM_START":case"GET_REMOVE FROM_END":n=mt.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM;break;case"GET_REMOVE RANDOM":n=mt.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM}return"FROM_START"!=i&&"FROM_END"!=i||(n+=" "+mt.Msg.LISTS_INDEX_FROM_START_TOOLTIP.replace("%1",mt.Msg.ONE_BASED_INDEXING?"#1":"#0")),n}));var e=this;this.setTooltip((function(){var t=e.getFieldValue("WHERE"),i={FROM_START:mt.Msg.LISTS_GET_INDEX_FROM_START,FROM_END:mt.Msg.LISTS_GET_INDEX_FROM_END,RANDOM:mt.Msg.TEXT_GET_INDEX_RANDOM};return mt.Msg.PROCEDURES_DEFRETURN_RETURN+mt.Msg.MIXLY_MICROBIT_TYPE_STRING+i[t]+"n"+mt.Msg.TEXT_CHARAT2}))},mutationToDom:function(){var t=document.createElement("mutation");t.setAttribute("statement",!this.outputConnection);var e=this.getInput("AT").type==mt.INPUT_VALUE;return t.setAttribute("at",e),t},domToMutation:function(t){var e="true"==t.getAttribute("statement");this.updateStatement_(e),t="false"!=t.getAttribute("at"),this.updateAt_(t)},updateStatement_:function(t){t!=!this.outputConnection&&(this.unplug(!0,!0),t?(this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)):(this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)))},updateAt_:function(t){this.removeInput("AT"),this.removeInput("ORDINAL",!0),t?(this.appendValueInput("AT").setCheck(Number),mt.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL").appendField(mt.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT");var e=new mt.FieldDropdown(this.WHERE_OPTIONS,(function(e){var i="FROM_START"==e||"FROM_END"==e;if(i!=t){var n=this.sourceBlock_;return n.updateAt_(i),n.setFieldValue(e,"WHERE"),null}}));this.getInput("AT").appendField(e,"WHERE"),mt.Msg.LISTS_GET_INDEX_TAIL&&this.moveInputBefore("TAIL",null)}},xe={init:function(){this.setHelpUrl(mt.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(Se),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number).appendField(mt.Msg.LISTS_GET_INDEX_GET+" "+mt.Msg.LISTS_GET_INDEX_FROM_START),this.appendDummyInput().appendField(mt.Msg.TEXT_CHARAT2),this.setOutput(!0),this.setTooltip(mt.Msg.PROCEDURES_DEFRETURN_RETURN+mt.Msg.MIXLY_MICROBIT_TYPE_STRING+mt.Msg.LISTS_GET_INDEX_FROM_START+"n"+mt.Msg.TEXT_CHARAT2)}},Xe={init:function(){this.setHelpUrl(mt.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(Se),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput().appendField(mt.Msg.TEXT_RANDOM_CHAR),this.setOutput(!0),this.setTooltip(mt.Msg.TEXT_RANDOM_CHAR_TOOLTIP)}},be={init:function(){this.WHERE_OPTIONS_1=[[mt.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[mt.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[mt.Msg.LISTS_GET_SUBLIST_START_FIRST,"FIRST"]],this.WHERE_OPTIONS_2=[[mt.Msg.LISTS_GET_SUBLIST_END_FROM_START,"FROM_START"],[mt.Msg.LISTS_GET_SUBLIST_END_FROM_END,"FROM_END"],[mt.Msg.LISTS_GET_SUBLIST_END_LAST,"LAST"]],this.setHelpUrl(mt.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(Se),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput("AT1"),this.appendDummyInput("AT2"),this.setInputsInline(!0),this.setOutput(!0,"List"),this.updateAt_(1,!0),this.updateAt_(2,!0),this.setTooltip(mt.Msg._GET_TEXT_SUBLIST_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT1").type==mt.INPUT_VALUE;t.setAttribute("at1",e);var i=this.getInput("AT2").type==mt.INPUT_VALUE;return t.setAttribute("at2",i),t},domToMutation:function(t){var e="true"==t.getAttribute("at1"),i="true"==t.getAttribute("at2");this.updateAt_(1,e),this.updateAt_(2,i)},updateAt_:function(t,e){this.removeInput("AT"+t),this.removeInput("ORDINAL"+t,!0),e?(this.appendValueInput("AT"+t).setCheck(Number),mt.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL"+t).appendField(mt.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT"+t);var i=new mt.FieldDropdown(this["WHERE_OPTIONS_"+t],(function(i){var n="FROM_START"==i||"FROM_END"==i;if(n!=e){var s=this.sourceBlock_;return s.updateAt_(t,n),s.setFieldValue(i,"WHERE"+t),null}}));this.getInput("AT"+t).appendField(i,"WHERE"+t),1==t&&(this.moveInputBefore("AT1","AT2"),this.getInput("ORDINAL1")&&this.moveInputBefore("ORDINAL1","AT2"))}},ye={init:function(){this.setHelpUrl(mt.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(Se),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT1").appendField(mt.Msg.LISTS_GET_INDEX_GET+" "+mt.Msg.LISTS_GET_INDEX_FROM_START),this.appendValueInput("AT2").appendField(mt.Msg.LISTS_GET_SUBLIST_END_FROM_START),this.appendDummyInput().appendField(mt.Msg.TEXT_CHARAT2),this.setInputsInline(!0),this.setOutput(!0,["List",String]),this.setTooltip(mt.Msg._GET_TEXT_SUBLIST_TOOLTIP)}},Ve={init:function(){var t=[[mt.Msg.MIXLY_EQUALS,"==="],[mt.Msg.MIXLY_STARTSWITH,"startswith"],[mt.Msg.MIXLY_ENDSWITH,"endswith"]];this.setColour(Se),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(new mt.FieldDropdown(t),"DOWHAT").setCheck(String),this.setOutput(!0,[Boolean,Number]),this.setInputsInline(!0)}},Be={init:function(){this.setColour(Se),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(mt.Msg.MIXLY_COMPARETO).setCheck(String),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_COMPARETO_HELP)}},Ge={init:function(){var t=[[mt.Msg.TEXT_UPPER,"upper"],[mt.Msg.TEXT_TITLE,"title"],[mt.Msg.TEXT_CAPITALIZE,"capitalize"],[mt.Msg.TEXT_SWAPCASE,"swapcase"],[mt.Msg.TEXT_LOWER,"lower"]];this.setColour(Se),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new mt.FieldDropdown(t),"CAPITAL").setCheck(String),this.setOutput(!0,String);var e=this;this.setTooltip((function(){var t=e.getFieldValue("CAPITAL");return{upper:mt.Msg.MIXLY_MIXPY_TEXT_UPPER_TOOLTIP,title:mt.Msg.MIXLY_MIXPY_TEXT_TITLE_TOOLTIP,swapcase:mt.Msg.MIXLY_MIXPY_TEXT_SWAPCASE_TOOLTIP,capitalize:mt.Msg.MIXLY_MIXPY_TEXT_CAPITALIZE_TOOLTIP,lower:mt.Msg.MIXLY_MIXPY_TEXT_LOWER_TOOLTIP}[t]}))}},Ue={init:function(){var t=[[mt.Msg.TEXT_LJUST,"ljust"],[mt.Msg.TEXT_CENTER,"center"],[mt.Msg.TEXT_RJUST,"rjust"]];this.setColour(Se),this.appendValueInput("VAR").appendField(new mt.FieldDropdown(t),"CENTER").setCheck(String),this.appendValueInput("WID").appendField(mt.Msg.MIXLY_WIDTH).setCheck(Number),this.appendValueInput("Symbol").appendField(mt.Msg.MIXLY_RECT_Fill).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_MIXPY_TEXT_CENTER_TOOLTIP)}},we={init:function(){this.setColour(Se),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).setCheck(String),this.appendValueInput("STR").appendField(mt.Msg.MIXLY_MID+mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER).setCheck(String),this.appendDummyInput().appendField(mt.Msg.MIXLY_LIST_INDEX),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_MIXPY_TEXT_FIND_TOOLTIP)}},ke={init:function(){this.setColour(Se),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_USE_STR).setCheck(String),this.appendValueInput("LIST").appendField(mt.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_SEQ).setCheck("List","Tuple","Set","Dict"),this.appendDummyInput().appendField(mt.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_GET_STR),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_TOOLTIP)}},He={init:function(){this.setColour(Se),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("STR1").appendField(mt.Msg.MIXLY_MIXPY_REPLACE).setCheck(String),this.appendValueInput("STR2").appendField(mt.Msg.LISTS_SET_INDEX_INPUT_TO).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_MIXPY_TEXT_REPLACE_TOOLTIP)}},We={init:function(){this.setColour(Se),this.appendValueInput("VAR"),this.appendValueInput("VAL").appendField(mt.Msg.LIST_SPLIT_AS),this.appendDummyInput("").appendField(mt.Msg.LIST_SPLIT),this.setOutput(!0,"List"),this.setTooltip(mt.Msg.MIXLY_MIXPY_TEXT_SPLIT_TOOLTIP),this.setInputsInline(!0)}},Ke={init:function(){var t=[[mt.Msg.TEXT_TRIM_BOTH,"strip"],[mt.Msg.TEXT_TRIM_LEFT,"lstrip"],[mt.Msg.TEXT_TRIM_RIGHT,"rstrip"]];this.setColour(Se),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(mt.Msg.TEXT_STRIM),this.appendDummyInput("").appendField(new mt.FieldDropdown(t),"TOWHAT"),this.appendDummyInput("").appendField(mt.Msg.TEXT_BLANK),this.setOutput(!0,String),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{strip:mt.Msg.TEXT_TRIM_BOTH_TOOLTIP,lstrip:mt.Msg.TEXT_TRIM_LEFT_TOOLTIP,rstrip:mt.Msg.TEXT_TRIM_RIGHT_TOOLTIP}[t]}))}},Je={init:function(){this.setColour(Se),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROPYTHON_FORMAT),this.appendDummyInput("").appendField(new mt.FieldTextInput("str"),"VAR"),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new mt.icons.MutatorIcon(["text_create_with_item"],this)),this.setOutput(!0),this.setTooltip(mt.Msg.MIXLY_MIXPY_TEXT_FORMAT_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("text_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},ki={init:function(){this.setColour(Ui),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(mt.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},Hi={init:function(){this.setColour(Ui),this.appendDummyInput().appendField(mt.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},Wi={init:function(){this.setColour(Ui),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.DICT_KEYS),this.setTooltip(mt.Msg.DICTS_KEYS_TOOLTIP),this.setOutput(!0,"List")}},Ki={init:function(){this.setColour(Ui),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(mt.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(mt.Msg.DICTS_ADD_VALUE),this.setOutput(!0),this.setTooltip(mt.Msg.DICTS_GET_TOOLTIP)}},Ji={init:function(){this.setColour(Ui),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(mt.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(mt.Msg.DICTS_ADD_VALUE),this.appendValueInput("VAR").appendField(mt.Msg.DICTS_DEFAULT_VALUE),this.setOutput(!0),this.setTooltip(mt.Msg.DICTS_GET_DEFAULT_TOOLTIP)}},Qi={init:function(){this.setColour(Ui),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(mt.Msg.DICTS_ADD),this.appendDummyInput(),this.appendValueInput("VAR").appendField(mt.Msg.DICTS_ADD_VALUE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.DICTS_ADD_OR_CHANGE_TOOLTIP)}},zi={init:function(){this.setColour(Ui),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(mt.Msg.DICTS_DELETE_IN),this.appendDummyInput("").appendField(mt.Msg.DICTS_DELETE_VALUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.DICTS_DELETE_TOOLTIP)}},qi={init:function(){this.setColour(Ui),this.appendValueInput("DICT2").setCheck("Dict").appendField(mt.Msg.MAKE_DICT),this.appendValueInput("DICT").setCheck("Dict").appendField(mt.Msg.DICT_UPDATE),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MID),this.setTooltip(mt.Msg.DICTS_UPDATE_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},ji={init:function(){this.setColour(Ui),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.DICT_CLEAR),this.setTooltip(mt.Msg.DICTS_CLEAR_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Zi={init:function(){this.setColour(Ui),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.DICT_ITEMS),this.setTooltip(mt.Msg.DICTS_ITEMS_TOOLTIP),this.setOutput(!0,"List")}},$i={init:function(){this.setColour(Ui),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.DICT_VALUES),this.setTooltip(mt.Msg.DICTS_VALUES_TOOLTIP),this.setOutput(!0,"List")}},tn={init:function(){this.setColour(Ui),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_LENGTH),this.setTooltip(mt.Msg.DICT_LENGTH_TOOLTIP),this.setOutput(!0,Number)}},en={init:function(){this.setColour(Ui),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.DICT_DELDICT),this.setTooltip(mt.Msg.DICTS_DEL_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},nn={init:function(){this.MODE=[[mt.Msg.DICTS_ADD_OR_CHANGE,"INSERT"],[mt.Msg.MIXLY_MICROBIT_JS_DELETE_VAR,"DELETE"]],this.setHelpUrl(mt.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(Ui),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("AT2"),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).appendField(mt.Msg.DICTS_ADD_VALUE),this.updateAt_(!0),this.setInputsInline(!0),this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e="";switch(t.getFieldValue("WHERE")){case"INSERT":e=mt.Msg.DICTS_ADD_TOOLTIP;break;case"DELETE":e=mt.Msg.DICTS_DELETE_TOOLTIP}return e}))},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT2").type==mt.INPUT_VALUE;return t.setAttribute("at2",e),t},domToMutation:function(t){var e="true"==t.getAttribute("at2");this.updateAt_(e)},updateAt_:function(t){this.removeInput("AT2"),this.removeInput("ORDINAL",!0),t?this.appendValueInput("AT2").setCheck(Number):this.appendDummyInput("AT2");var e=new mt.FieldDropdown(this.MODE,(function(e){var i="INSERT"==e;if(i!=t){var n=this.sourceBlock_;return n.updateAt_(i),n.setFieldValue(e,"WHERE"),null}}));this.getInput("AT2").appendField(e,"WHERE")}},sn={init:function(){this.setColour(Ui),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.blockpy_DICT_POP),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(mt.Msg.DICTS_ADD_VALUE),this.setTooltip(mt.Msg.DICT_POP_TOOLTIP),this.setInputsInline(!0),this.setOutput(!0)}},on={init:function(){this.setColour(Ui),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(mt.Msg.DICTS_SET_DEFAULT),this.appendDummyInput("").appendField(mt.Msg.DICTS_DEFAULT_VALUE),this.appendValueInput("VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.DICTS_SETDEFAULT_TOOLTIP)}},_n={init:function(){this.setColour(Ui),this.appendDummyInput("").appendField(new mt.FieldLabel(mt.Msg.MIXLY_MICROBIT_TYPE_DICT),"TIP").appendField(" "),this.itemCount_=3,this.updateShape_(),this.setOutput(!0,"Dict"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setMutator(new mt.icons.MutatorIcon(["dicts_create_with_item"],this)),this.setTooltip(mt.Msg.DICTS_CREATE_WITH_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("dicts_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},an={init:function(){this.setColour(Ui),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_TODICT),this.setOutput(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_TOOLTIP_TODICT)}},pn={init:function(){this.setColour(Ui),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_TO_JSON),this.setTooltip(mt.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0,Number)}},un={init:function(){this.setColour(Ui),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_CONVERT_TO_JSON),this.setTooltip(mt.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0,Number)}},rn=210,ln={init:function(){var t=mt.RTL?[["=","EQ"],["≠","NEQ"],[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["=","EQ"],["≠","NEQ"],["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(rn),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new mt.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{EQ:mt.Msg.LOGIC_COMPARE_TOOLTIP_EQ,NEQ:mt.Msg.LOGIC_COMPARE_TOOLTIP_NEQ,LT:mt.Msg.LOGIC_COMPARE_TOOLTIP_LT,LTE:mt.Msg.LOGIC_COMPARE_TOOLTIP_LTE,GT:mt.Msg.LOGIC_COMPARE_TOOLTIP_GT,GTE:mt.Msg.LOGIC_COMPARE_TOOLTIP_GTE}[t]})),this.prevBlocks_=[null,null]}},dn={init:function(){var t=mt.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]],e=mt.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(rn),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new mt.FieldDropdown(t),"OP1"),this.appendValueInput("C").appendField(new mt.FieldDropdown(e),"OP2"),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_LOGIC_COMPARE_CONTINOUS_TOOLTIP)}},In={init:function(){var t=[[mt.Msg.LOGIC_OPERATION_AND,"AND"],[mt.Msg.LOGIC_OPERATION_OR,"OR"],[mt.Msg.LOGIC_OPERATION_NOR,"NOR"],[mt.Msg.LOGIC_OPERATION_XOR,"XOR"]];this.setColour(rn),this.setOutput(!0,Boolean),this.appendValueInput("A").setCheck([Boolean,Number]),this.appendValueInput("B").setCheck([Boolean,Number]).appendField(new mt.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{AND:mt.Msg.LOGIC_OPERATION_TOOLTIP_AND,OR:mt.Msg.LOGIC_OPERATION_TOOLTIP_OR,NOR:mt.Msg.LOGIC_OPERATION_TOOLTIP_NOR,XOR:mt.Msg.LOGIC_OPERATION_TOOLTIP_XOR}[t]}))}},Tn={init:function(){this.setColour(rn),this.setOutput(!0,Boolean),this.appendValueInput("BOOL").setCheck([Number,Boolean]).appendField(mt.Msg.LOGIC_NEGATE_TITLE),this.setTooltip(mt.Msg.LOGIC_NEGATE_TOOLTIP)}},hn={init:function(){var t=[[mt.Msg.LOGIC_BOOLEAN_TRUE,"TRUE"],[mt.Msg.LOGIC_BOOLEAN_FALSE,"FALSE"]];this.setColour(rn),this.setOutput(!0,Boolean),this.appendDummyInput().appendField(new mt.FieldDropdown(t),"BOOL"),this.setTooltip(mt.Msg.LOGIC_BOOLEAN_TOOLTIP)}},Mn={init:function(){this.setColour(rn),this.setOutput(!0),this.appendDummyInput().appendField(mt.Msg.LOGIC_NULL),this.setTooltip(mt.Msg.LOGIC_NULL_TOOLTIP)}},mn={init:function(){this.setColour(rn),this.appendValueInput("A"),this.appendValueInput("B").appendField(mt.Msg.LOGIC_TERNARY_IF_TRUE),this.appendValueInput("C").appendField(mt.Msg.LOGIC_TERNARY_IF_FALSE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_LOGIT_TRUEORFALSE)}},On={init:function(){var t=[[mt.Msg.TEXT_APPEND_TO,"in"],[mt.Msg.MIXLY_PYTHON_LOGIC_IS_NOT_IN,"not in"]];this.setColour(rn),this.appendValueInput("A"),this.appendValueInput("B").setCheck([String,"List"]).appendField(new mt.FieldDropdown(t),"BOOL"),this.appendDummyInput("").appendField(mt.Msg.MICROBIT_LOGIC_IS_IN),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(mt.Msg.IN)}},En={init:function(){var t=[[mt.Msg.MIXLY_PYTHON_LOGIC_IS,"is"],[mt.Msg.MIXLY_PYTHON_LOGIC_IS_NOT,"is not"]];this.setColour(rn),this.appendValueInput("A"),this.appendValueInput("B").appendField(new mt.FieldDropdown(t),"BOOL"),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_LOGIC_IS_TOOLTIP)}},Rn={init:function(){this.setColour(rn),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_TOBOOL),this.setOutput(!0,Boolean),this.setTooltip(mt.Msg.MIXLY_PYTHON_TOOLTIP_TOBOOL)}},cn={init:function(){this.setColour(0),this.appendValueInput("fn").setCheck(String).appendField(mt.Msg.MIXLY_PYTHON_STORAGE_OPEN_FILE_WITH_OS+"(For Windows)"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},gn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendValueInput("FILE").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_AS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=mt.Msg.MIXLY_USE,n=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,o=mt.Msg.MIXLY_BELONG;return i+{r:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+o+n+s}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Cn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=mt.Msg.MIXLY_USE,n=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,o=mt.Msg.MIXLY_BELONG,_=mt.Msg.PY_STORAGE_FILE_OBJECT;return i+{r:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+o+n+s+_}))}},Sn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE);this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendDummyInput().appendField(mt.Msg.MIXPY_TEXT_ENCODE).appendField(new mt.FieldDropdown([["ANSI","ANSI"],["gbk","gbk"],["utf-8","utf-8"]]),"CODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=mt.Msg.MIXLY_USE,n=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,o=mt.Msg.MIXLY_BELONG,_=mt.Msg.PY_STORAGE_FILE_OBJECT;return i+{r:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+o+n+s+_}))}},An={init:function(){this.setColour(0),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendValueInput("FILE").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE+mt.Msg.MIXLY_MICROBIT_TYPE_STRING+mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE)}},Ln={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL,"read"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE,"readline"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES,"readlines"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String)}},Nn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,"read"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,"readline"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE,"readlines"]]),"MODE"),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE,n=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER;return i+{read:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,readline:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,readlines:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE}[e]+"x"+n}))}},Dn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.setNextStatement(!0),this.appendValueInput("SIZE").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(mt.Msg.MICROBIT_PYTHON_TYPE)}},fn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(mt.Msg.HTML_FILE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT1)}},Fn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILENAME),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILENAME)}},Pn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE)}},vn={init:function(){this.setColour(0),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES)}};mt.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE;const Yn={init:function(){this.setColour(0),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE,"remove"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_DIRS,"removedirs"]]),"MODE"),this.appendValueInput("FILE").setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE)}},xn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE+mt.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE)}},Xn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_RETURN_FILE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_PRESENT_LOCATION),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_TELL)}},bn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,"start"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,"current"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END,"end"]]),"MODE"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION+mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION,n=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER,s=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET;return i+" "+{start:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,current:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,end:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END}[e]+s+"x"+n}))}},yn={init:function(){this.setColour(0),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR)}},Vn={init:function(){this.setColour(0),this.appendValueInput("PATH").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_SET),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,"mkdir"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MAKEDIRS,"makedirs"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return mt.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH+"x"+mt.Msg.MIXLY_ESP32_SET+{mkdir:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,makedirs:mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},Bn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME),this.appendValueInput("NEWFILE").setCheck(String).appendField(mt.Msg.MIXLY_AS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME)}},Gn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR)}},Un={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.HTML_FILE,"isfile"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_DIR,"isdir"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean);let t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return mt.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH+"x"+mt.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT+{isfile:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,isdir:mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},wn={init:function(){this.setColour(0),this.appendValueInput("SPISUB").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(mt.Msg.MIXLY_SD_CARD),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},kn={init:function(){this.setColour(0),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_SD_CARD),this.appendValueInput("DIR").setCheck(String).appendField(mt.Msg.MIXLY_SDCARD_MOUNT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip()}},Hn={};Hn.NAME_TYPE=mt.PROCEDURE_CATEGORY_NAME,Hn.allProcedures=function(t){for(var e=t.getAllBlocks(!1),i=[],n=[],s=0;s"),this.appendValueInput("style").appendField(mt.Msg.MIXLY_AIP_ATTR).setAlign(mt.inputs.Align.RIGHT),this.appendStatementInput("DO").appendField(""),this.setInputsInline(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Bs={init:function(){this.setColour(Ys),this.appendDummyInput().appendField(mt.Msg.HTML_STYLE),this.appendStatementInput("STYLE"),this.setOutput(!0)}},Gs={init:function(){this.setColour(Ys),this.appendDummyInput().appendField(mt.Msg.HTML_FORM_CONTENT).appendField(new mt.FieldDropdown([[mt.Msg.HTML_TEXT,"text"],[mt.Msg.HTML_EMAIL,"email"],[mt.Msg.HTML_NUMBER,"number"],[mt.Msg.HTML_PASSWORD,"password"],[mt.Msg.HTML_CHECKBOX,"checkbox"],[mt.Msg.HTML_RADIOBUTTON,"radiobutton"],[mt.Msg.HTML_BUTTON,"button"],[mt.Msg.HTML_COLOUR,"colour"],[mt.Msg.HTML_DATE,"date"],[mt.Msg.HTML_LOCALTIME,"local time"],[mt.Msg.HTML_FILE,"file"],[mt.Msg.HTML_HIDDEN,"hidden"],[mt.Msg.HTML_IMAGE,"image"],[mt.Msg.HTML_MONTH,"month"],[mt.Msg.HTML_RANGE,"range"],[mt.Msg.HTML_RESET,"reset"],[mt.Msg.HTML_SEARCH,"search"],[mt.Msg.HTML_SUBMIT,"submit"],[mt.Msg.HTML_TELEPHONENUMBER,"telephone number"],[mt.Msg.HTML_TIME,"time"],[mt.Msg.HTML_URL,"url"],[mt.Msg.HTML_WEEK,"week"]]),"LEVEL"),this.appendDummyInput().appendField(mt.Msg.HTML_NAME).appendField(new mt.FieldTextInput("car"),"NAME"),this.appendDummyInput().appendField(mt.Msg.HTML_VALUE).appendField(new mt.FieldTextInput("go"),"VALUE"),this.appendValueInput("style").appendField(mt.Msg.MIXLY_AIP_ATTR).setAlign(mt.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Us={init:function(){this.setColour(Ys),this.appendDummyInput().appendField(new mt.FieldTextInput("property"),"KEY").appendField(":").appendField(new mt.FieldTextInput("value"),"VALUE"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},ws={init:function(){this.setColour(Ys),this.appendDummyInput().appendField(new mt.FieldTextInput("property"),"KEY").appendField(":").appendField(new mt.FieldColour("#ff0000"),"RGB_LED_COLOR"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},ks={init:function(){this.setColour(Ys),this.appendDummyInput().appendField(mt.Msg.HTML_TEXT).appendField(new mt.FieldTextInput("text"),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Hs=160,Ws={init:function(){this.setColour(Hs),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Tabular Abstraction:"),this.appendDummyInput().appendField(new mt.FieldTable(""),"TEXT")}},Ks={init:function(){this.setColour(Hs),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Code Block:"),this.appendDummyInput().appendField(new mt.FieldMultilineInput(""),"TEXT")}},Js={init:function(){this.setColour(Hs),this.appendDummyInput().appendField("Code Expression:"),this.appendDummyInput().appendField(new mt.FieldMultilineInput(""),"TEXT"),this.setOutput(!0)}},Qs={init:function(){this.setColour(Hs),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("VALUE").appendField(""),this.setInputsInline(!1)}},zs={init:function(){this.setColour(Hs),this.appendDummyInput().appendTitle("Comment:").appendTitle(new mt.FieldTextInput(""),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("This comment will be ignored by Python")}},qs={init:function(){this.setColour(Hs),this.appendValueInput("VALUE").appendField(mt.Msg.TYPE_CHECK),this.setInputsInline(!1),this.setOutput(!0,"Type")}},js={init:function(){this.setColour(Hs),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new mt.icons.MutatorIcon(["text_print_multiple_item"],this)),this.setTooltip(mt.Msg.TEXT_PRINT_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=mt.Block.obtain(t,"text_print_multiple_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n= stop:"," yield start"," start -= abs(step)"])};if(t=function(t,e,i){return"("+t+" <= "+e+") and "+p()+"("+t+", "+e+", "+i+") or "+u()+"("+t+", "+e+", "+i+")"},mt.isNumber(n)&&mt.isNumber(s)&&mt.isNumber(o))n=parseFloat(n),s=parseFloat(s),o=Math.abs(parseFloat(o)),0==n%1&&0==s%1&&0==o%1?(n<=s?(s++,t=0==n&&1==o?s:n+", "+s,1!=o&&(t+=", "+o)):t=n+", "+--s+", -"+o,t="range("+t+")"):(t=n",GTE:">="};const xa=function(t,e){var i=this.getFieldValue("OP"),n="&&"==i?e.ORDER_LOGICAL_AND:e.ORDER_LOGICAL_OR,s=e.valueToCode(this,"A",n)||"False",o=e.valueToCode(this,"B",n)||"False";if("AND"==i)var _=s+" and "+o;else if("OR"==i)_=s+" or "+o;else if("NOR"==i)_="not("+s+"^"+o+")";else _=s+"^"+o;return[_,n]},Xa=function(t,e){var i=e.ORDER_UNARY_PREFIX;return["not "+(e.valueToCode(this,"BOOL",i)||"False"),i]},ba=function(t,e){return["TRUE"==this.getFieldValue("BOOL")?"True":"False",e.ORDER_ATOMIC]},ya=function(t,e){return["None",e.ORDER_ATOMIC]},Va=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"False";return["("+(e.valueToCode(this,"B",e.ORDER_ATOMIC)||"False")+" if "+i+" else "+(e.valueToCode(this,"C",e.ORDER_ATOMIC)||"False")+")",e.ORDER_ATOMIC]},Ba=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",n=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[i+" "+this.getFieldValue("BOOL")+" "+n,e.ORDER_ATOMIC]},Ga=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",n=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[i+" "+this.getFieldValue("BOOL")+" "+n,e.ORDER_ATOMIC]},Ua=function(t,e){return["bool("+(e.valueToCode(this,"VAR",e.ORDER_ATOMIC)||"0")+")",e.ORDER_ATOMIC]},wa=function(t,e){return e.definitions_.import_os="import os","os.startfile("+e.valueToCode(this,"fn",e.ORDER_ATOMIC)+")\n"},ka=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+" = open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')\n"},Ha=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')",e.ORDER_ATOMIC]},Wa=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"', encoding=\""+this.getFieldValue("CODE")+'")',e.ORDER_ATOMIC]},Ka=function(t,e){var i=e.valueToCode(this,"data",e.ORDER_ATOMIC);return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".write("+i+")\n"},Ja=function(t,e){var i=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+i+"()",e.ORDER_ATOMIC]},Qa=function(t,e){var i=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+i+"("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},za=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".readline("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},qa=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".writable()",e.ORDER_ATOMIC]},ja=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".name()",e.ORDER_ATOMIC]},Za=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".close()\n"},$a=function(t,e){e.definitions_.import_os="import os";return["os.listdir()",e.ORDER_ATOMIC]},tp=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},ep=function(t,e){return e.definitions_.import_os="import os",["os.path.getsize("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},ip=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".tell()",e.ORDER_ATOMIC]},np=function(t,e){var i=this.getFieldValue("MODE"),n=0;return n="start"==i?0:"current"==i?1:2,e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".seek("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+","+n+")\n"},sp=function(t,e){return e.definitions_.import_os="import os","os.chdir("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},op=function(t,e){e.definitions_.import_os="import os";return["os.getcwd()",e.ORDER_ATOMIC]},_p=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"PATH",e.ORDER_ATOMIC)+")\n"},ap=function(t,e){return e.definitions_.import_os="import os","os.rename("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+","+e.valueToCode(this,"NEWFILE",e.ORDER_ATOMIC)+")\n"},pp=function(t,e){e.definitions_.import_os="import os";var i=e.valueToCode(this,"FILE",e.ORDER_ATOMIC);return["os."+this.getFieldValue("MODE")+"("+i+")",e.ORDER_ATOMIC]},up=function(t,e){return e.definitions_.import_os="import os",e.definitions_.import_sdcard="import sdcard",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+" = sdcard.SDCard("+e.valueToCode(this,"SPISUB",e.ORDER_ATOMIC)+","+e.valueToCode(this,"PINSUB",e.ORDER_ATOMIC)+")\n"},rp=function(t,e){return e.definitions_.import_os="import os",e.definitions_.import_sdcard="import sdcard","os.mount("+e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+","+e.valueToCode(this,"DIR",e.ORDER_ATOMIC)+")\n"},lp=function(t,e){var i=e.variableDB_.getName(this.getFieldValue("NAME"),mt.Procedures.NAME_TYPE),n=e.statementToCode(this,"STACK")||" pass\n";e.INFINITE_LOOP_TRAP&&(n=e.INFINITE_LOOP_TRAP.replace(/%1/g,"'"+this.id+"'")+n);var s=e.valueToCode(this,"RETURN",e.ORDER_NONE)||"";s&&(s=" return "+s+"\n");for(var o=[],_=0;_\n\n\n\t\n"+e.statementToCode(this,"HEAD")+"\n\n"+e.statementToCode(this,"BODY")+"\n\n'''",e.ORDER_ATOMIC]},Wp=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");return"\n"+i+"\n"},Kp=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");if("head"==n)var s="<"+n+'>\n\t\n'+i+"\n";else s="<"+n+">\n"+i+"\n";return s},Jp=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");return"<"+n+">\n"+i+"\n"},Qp=function(t,e){var i=e.statementToCode(this,"DO"),n=e.valueToCode(this,"style"),s=this.getFieldValue("LEVEL");return"<"+s+" "+n+" >\n"+i+"\n"},zp=function(t,e){return['style="'+e.statementToCode(this,"STYLE")+'"',e.ORDER_ATOMIC]},qp=function(t,e){return'"},jp=function(){return this.getFieldValue("KEY")+":"+this.getFieldValue("VALUE")+";"},Zp=function(){return this.getFieldValue("TEXT")+"\n"},$p=function(t){return t.getFieldValue("TEXT")+"\n"},tu=function(t,e){return[t.getFieldValue("TEXT"),e.ORDER_ATOMIC]},eu=function(t,e){return(e.valueToCode(t,"VALUE",e.ORDER_ATOMIC)||"")+"\n"},iu=function(){return""},nu=function(t,e){return["type("+(e.valueToCode(t,"VALUE",e.ORDER_MEMBER)||"___")+")",e.ORDER_ATOMIC]},su=function(t,e){for(var i=t.getFieldValue("NAME"),n=t.hasReturn_,s=new Array(t.itemCount_),o=0;o0?e.join("\n")+"\n"+n.join("\n")+"\n"+s.join("")+"\n"+t+"while True:\n"+o.join("")+_.join("\n"):e.join("\n")+"\n"+n.join("\n")+"\n"+s.join("")+"\n"+t+_.join("\n")},_u.scrubNakedValue=function(t){return t+"\n"},_u.quote_=function(t){var e="'";return-1!==(t=t.replace(/\\/g,"\\\\").replace(/\n/g,"\\\n")).indexOf("'")&&(-1===t.indexOf('"')?e='"':t=t.replace(/'/g,"\\'")),e+t+e},_u.multiline_quote_=function(t){return"'''"+(t=t.replace(/'''/g,"\\'\\'\\'"))+"'''"},_u.scrub_=function(t,e,i){var n="";if(!t.outputConnection||!t.outputConnection.targetConnection){(o=t.getCommentText())&&(o=mt.utils.string.wrap(o,_u.COMMENT_WRAP-3),n+=_u.prefixLines(o+"\n","# "));for(var s=0;s0?"int("+a+" + "+s+")":s<0?"int("+a+" - "+-s+")":"int("+a+")",n&&(a="-"+a)),a};const au="#74A55B",pu={init:function(){this.setColour(au),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MIDI),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_SETUP).setCheck("var"),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_RGB_PIN_COUNT)}},uu={init:function(){this.setColour(au),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(mt.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},ru={init:function(){this.setColour(au),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(mt.Msg.MIXLY_FREQUENCY),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_DURATION),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE2)}},lu={init:function(){this.setColour(au),this.appendValueInput("SUB"),this.appendValueInput("LIST").appendField(mt.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS)}},du={init:function(){this.setColour(au),this.appendValueInput("SUB"),this.appendValueInput("TICKS").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_SET_TEMPO).appendField(mt.Msg.MICROBIT_ACTUATOR_ticks),this.appendValueInput("BPM").setCheck(Number).appendField(mt.Msg.MIXLY_SPEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_SET_TEMPO)}},Iu={init:function(){this.setColour(au),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Get_current_tempo),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_GET_TEMPO)}},Tu={init:function(){this.setColour(au),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Reset_music),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_RESET)}},hu={init:function(){this.setColour(au),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Mu={init:function(){this.setColour(au),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING).appendField(mt.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_EXTERN_LED_SETONOFF)}},mu={init:function(){this.setColour(au),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(mt.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_EXTERN_LED_GETONOFF)}},Ou={init:function(){this.setColour(au),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(mt.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_EXTERN_LED_GETONOFF)}},Eu={init:function(){this.setColour(au),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING).appendField(mt.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_EXTERN_LED_SETBRIGHT)}},Ru={init:function(){this.setColour(au),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.MIXLY_SERVO),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},cu={init:function(){this.setColour(au),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_SERVO).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("DEGREE",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_DEGREE_0_180),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SERVO_MOVE)}},gu={init:function(){this.setColour(au),this.appendValueInput("VAR").appendField("360°"+mt.Msg.MIXLY_SERVO),this.appendValueInput("SPEED",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SETTING+mt.Msg.blockpy_turtle_rotate+mt.Msg.MIXLY_SPEED+" (-10~10)"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SERVO_360_TOOLTIP)}},Cu={init:function(){this.setColour(au),this.appendValueInput("PIN",Number).appendField("180°"+mt.Msg.MIXLY_SERVO).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SERVO_MOVE)}},Su={init:function(){this.setColour(au),this.appendValueInput("PIN",Number).appendField("360°"+mt.Msg.MIXLY_SERVO).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SERVO_SPEED_TOOLIPS)}},Au={init:function(){this.setColour(au),this.appendValueInput("PIN",Number).appendField("180°"+mt.Msg.MIXLY_SERVO).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setOutput(!0,Number),this.setInputsInline(!0)}},Lu={init:function(){this.setColour(au),this.appendValueInput("PIN",Number).appendField("360°"+mt.Msg.MIXLY_SERVO).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},Nu={init:function(){this.setColour(au),this.appendValueInput("SUB").appendField("初始化").setCheck("var"),this.appendDummyInput().appendField("电机驱动"),this.appendDummyInput().appendField("地址").appendField(new mt.FieldDropdown([["A","ms32006.ADDRESS_A"],["B","ms32006.ADDRESS_B"]]),"mode"),this.appendValueInput("SUB1").setCheck("var").setAlign(mt.inputs.Align.RIGHT).appendField("通信"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("初始化MS32006电机驱动,使用I2C通信")}},Du={init:function(){this.setColour(au),this.appendValueInput("SUB").appendField("直流电机").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Direction).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"ms32006.MOT_CW"],[mt.Msg.ANTI_CLOCKWISE,"ms32006.MOT_CCW"],[mt.Msg.MOTOR_N,"ms32006.MOT_N"],[mt.Msg.MOTOR_P,"ms32006.MOT_P"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEPPER_SET_SPEED),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("设置直流电机的状态及转速(0-100)")}},fu={init:function(){this.setColour(au),this.appendValueInput("SUB").appendField("步进电机").setCheck("var"),this.appendDummyInput().appendField("选择").appendField(new mt.FieldDropdown([["A","ms32006.MOT_A"],["B","ms32006.MOT_B"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Direction).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"ms32006.MOT_CW"],[mt.Msg.ANTI_CLOCKWISE,"ms32006.MOT_CCW"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField("转速"),this.appendValueInput("steps").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField("步数"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("设置步进电机的状态、转速、步数(0-2047)")}},Fu={init:function(){this.setColour(au),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_SETUP).setCheck("var"),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PIN),this.appendValueInput("LEDCOUNT").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_COUNT),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_RGB_PIN_COUNT)}},Pu={init:function(){this.setColour(au),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("_LED_").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MP)}},vu={init:function(){this.setColour(au),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},Yu={init:function(){this.setColour(au),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_RGB_WRITE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_WRI)}},xu={init:function(){this.setColour(au),this.appendDummyInput("").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"uart").appendField(new mt.FieldDropdown([["uart1","uart1"],["uart2","uart2"]]),"key"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.LISTS_SET_INDEX_INPUT_TO+"SYN6288"+mt.Msg.MIXLY_AipSpeech_synthesis),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setFieldValue("LTR308","key")}},Xu={init:function(){this.setColour(au),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("VOICE").setCheck(Number).appendField(mt.Msg.MIXLY_SET_VOLUME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_SET_VOLUME_TOOLTIP)}},bu={init:function(){this.setColour(au),this.appendValueInput("SUB").appendField("SYN6288"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_VOLUME),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_SET_VOLUME_TOOLTIP)}},yu={init:function(){this.setColour(au),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("VOICE").setCheck(Number).appendField(mt.Msg.MIXLY_PLAY_HINTS),this.appendDummyInput().appendField(mt.Msg.MIXLY_PROGRAM_BLOCK).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"mode"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_PLAY_HINTS_TOOLTIP)}},Vu={init:function(){this.setColour(au),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_AipSpeech_synthesis),this.appendValueInput("VOICE").setCheck(Number).appendField(mt.Msg.MIXLY_BACKGROUND_MUSIC),this.appendDummyInput().appendField(mt.Msg.MIXLY_PROGRAM_BLOCK).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"mode"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_PLAY_TTS_TOOLTIP)}},Bu={init:function(){this.setColour(au),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.extern_addr),"PIN"),this.setOutput(!0,Number)}},Gu={init:function(){this.setColour(au),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_MOTOR).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_MOTOR_EXTERN_TOOLTIP)}},Uu={init:function(){this.setColour(au),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_MOTOR).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},wu={init:function(){this.setColour(au),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_TRAFFIC_LIGHT).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LISTS_SET_INDEX_SET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_Turn_off_display,"0"],[mt.Msg.MIXLY_TRAFFIC_LIGHT_RED_ON,"1"],[mt.Msg.MIXLY_TRAFFIC_LIGHT_RED_BLINK,"2"],[mt.Msg.MIXLY_TRAFFIC_LIGHT_YELLOW_ON,"3"],[mt.Msg.MIXLY_TRAFFIC_LIGHT_YELLOW_BLINK,"4"],[mt.Msg.MIXLY_TRAFFIC_LIGHT_GREEN_ON,"5"],[mt.Msg.MIXLY_TRAFFIC_LIGHT_GREEN_BLINK,"6"]]),"light"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},ku={init:function(){this.setColour(au),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN).appendField(new mt.FieldDropdown([[mt.Msg.COLOUR_RGB_WHITE,"W"],[mt.Msg.COLOUR_RGB_RED,"R"],[mt.Msg.COLOUR_RGB_YELLOW,"Y"],[mt.Msg.COLOUR_RGB_GREEN,"G"],[mt.Msg.COLOUR_RGB_BLUE,"B"]]),"color").appendField("LED").appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendValueInput("value").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.BRIGHTNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Hu={init:function(){this.setColour(au),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN).appendField(new mt.FieldDropdown([[mt.Msg.COLOUR_RGB_WHITE,"W"],[mt.Msg.COLOUR_RGB_RED,"R"],[mt.Msg.COLOUR_RGB_YELLOW,"Y"],[mt.Msg.COLOUR_RGB_GREEN,"G"],[mt.Msg.COLOUR_RGB_BLUE,"B"]]),"color").appendField("LED").appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.BRIGHTNESS),this.setOutput(!0,Number),this.setInputsInline(!0)}},Wu={init:function(){this.setColour(au),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"[0]"],[mt.Msg.MIXLY_SPEED,"[1]"],[mt.Msg.MATH_SINGLE_OP_ABSOLUTE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"[2]"],[mt.Msg.MIXLY_RELATIVE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"[3]"],[mt.Msg.MIXLY_MIXBOT_SERVO_BLOCK_OR_NOT,"[4]"],[mt.Msg.MIXLY_MIXBOT_SERVO_FINISH_OR_NOT,"[5]"],[mt.Msg.MIXLY_ALL,""]]),"status"),this.setOutput(!0,Number),this.setInputsInline(!0)}},Ku={init:function(){this.setColour(au),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_SERVO_SET_STOP_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_KEEP,"0"],[mt.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_COAST,"1"],[mt.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_BRAKE,"2"]]),"status"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Ju={init:function(){this.setColour(au),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_STOP),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Qu={init:function(){this.setColour(au),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.MATH_SINGLE_OP_ABSOLUTE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+mt.Msg.MSG.run).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MODE).setAlign(mt.inputs.Align.RIGHT).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_SPEED+mt.Msg.MIXLY_MODE,"0"],[mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER+mt.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField("%"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_SERVO_TURN_DIRECTION).setAlign(mt.inputs.Align.RIGHT).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"0"],[mt.Msg.MIXLY_MIXBOT_SERVO_NEAREST_PATH,"1"],[mt.Msg.ANTI_CLOCKWISE,"2"]]),"direction"),this.appendValueInput("angle").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_DISPLAY_MATRIX_ROTATE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_SERVO_ABSOLUTE_ANGLE_TOOLTIP)}},zu={init:function(){this.setColour(au),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.MIXLY_RELATIVE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+mt.Msg.MSG.run).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_SERVO_RELATIVE_ORIGIN_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},qu={init:function(){this.setColour(au),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.MIXLY_RELATIVE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+mt.Msg.MSG.run).appendField("("+mt.Msg.MIXLY_MIXBOT_SERVO_LIKE_ENCODING_MOTOR+")").appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MODE).setAlign(mt.inputs.Align.RIGHT).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_SPEED+mt.Msg.MIXLY_MODE,"0"],[mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER+mt.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField("%"),this.appendValueInput("angle").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_DISPLAY_MATRIX_ROTATE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_SERVO_RELATIVE_ANGLE_TOOLTIP)}},ju={init:function(){this.setColour(au),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.MIXLY_RELATIVE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+mt.Msg.MSG.run).appendField("("+mt.Msg.MIXLY_MIXBOT_SERVO_LIKE_ORDINARY_MOTOR+")").appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MODE).setAlign(mt.inputs.Align.RIGHT).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_SPEED+mt.Msg.MIXLY_MODE,"0"],[mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER+mt.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField("%"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_SERVO_TURN_DIRECTION).setAlign(mt.inputs.Align.RIGHT).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"0"],[mt.Msg.ANTI_CLOCKWISE,"2"]]),"direction"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Zu={init:function(){this.setColour(au),this.appendDummyInput().appendField(mt.Msg.MIXBOT).appendField(mt.Msg.ME_GO_MOTOR_EXTERN).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MOTOR,"ext_motor"],[mt.Msg.MIXLY_TRAFFIC_LIGHT,"ext_traffic"],[mt.Msg.COLOUR_RGB_WHITE+"LED","W_LED"],[mt.Msg.COLOUR_RGB_RED+"LED","R_LED"],[mt.Msg.COLOUR_RGB_YELLOW+"LED","Y_LED"],[mt.Msg.COLOUR_RGB_GREEN+"LED","G_LED"],[mt.Msg.COLOUR_RGB_BLUE+"LED","B_LED"],[mt.Msg.MIXLY_SERVO_MOTOR,"ext_servo"]]),"name"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_EXTERN_GET_ADDR),this.setOutput(!0),this.setInputsInline(!0)}},$u={init:function(){this.setColour(au),this.appendDummyInput().appendField(mt.Msg.MIXBOT).appendField(mt.Msg.ME_GO_MOTOR_EXTERN).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MOTOR,"ext_motor"],[mt.Msg.MIXLY_TRAFFIC_LIGHT,"ext_traffic"],[mt.Msg.COLOUR_RGB_WHITE+"LED","W_LED"],[mt.Msg.COLOUR_RGB_RED+"LED","R_LED"],[mt.Msg.COLOUR_RGB_YELLOW+"LED","Y_LED"],[mt.Msg.COLOUR_RGB_GREEN+"LED","G_LED"],[mt.Msg.COLOUR_RGB_BLUE+"LED","B_LED"],[mt.Msg.MIXLY_SERVO_MOTOR,"ext_servo"]]),"name"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_EXTERN_SET_ADDR),this.appendValueInput("old").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE),this.appendValueInput("new").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_UPDATE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},tr="#6C9858",er={init:function(){this.setColour(tr),this.appendDummyInput("").appendField(new mt.FieldDropdown([["L1","1"],["L2","2"]]),"op"),this.setOutput(!0)}},ir={init:function(){this.setColour(tr),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_ESP32_ON,"1"],[mt.Msg.MIXLY_ESP32_OFF,"0"],[mt.Msg.MIXLY_ESP32_TOGGLE,"-1"]]),"flag"),this.setOutput(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW)}},nr={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(mt.Msg.MIXLY_BUILDIN_LED),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_SETONOFF)}},sr={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("led").appendField(mt.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput().appendField(mt.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},or={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("led").appendField(mt.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput().appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},_r={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(mt.Msg.MIXLY_BUILDIN_LED),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_SETTING+mt.Msg.MIXLY_BUILDIN_LED+mt.Msg.MIXLY_BRIGHTNESS+"(0-100%)")}},ar={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(mt.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput("").appendField(mt.Msg.MIXLY_LCD_SETCOLOR).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LIGHT_OFF,"0"],[mt.Msg.MIXLY_LIGHT_RED,"1"],[mt.Msg.MIXLY_LIGHT_GREEN,"2"],[mt.Msg.MIXLY_LIGHT_BLUE,"3"],[mt.Msg.MIXLY_LIGHT_YELLOW,"4"],[mt.Msg.MIXLY_LIGHT_CYAN,"5"],[mt.Msg.MIXLY_LIGHT_PURPLE,"6"],[mt.Msg.MIXLY_LIGHT_WHITE,"7"]]),"colorvalue"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip()}},pr={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING).appendField(mt.Msg.MIXLY_BUILDIN_LED).appendField(new mt.FieldDropdown([[mt.Msg.COLOUR_RGB_RED,"r"],[mt.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_SETONOFF)}},ur={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(mt.Msg.MIXLY_BUILDIN_LED).appendField(new mt.FieldDropdown([[mt.Msg.COLOUR_RGB_RED,"r"],[mt.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendDummyInput().appendField(mt.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},rr={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(mt.Msg.MIXLY_BUILDIN_LED).appendField(new mt.FieldDropdown([[mt.Msg.COLOUR_RGB_RED,"r"],[mt.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendDummyInput().appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},lr={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING).appendField(mt.Msg.MIXLY_BUILDIN_LED).appendField(new mt.FieldDropdown([[mt.Msg.COLOUR_RGB_RED,"r"],[mt.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_SETTING+mt.Msg.MIXLY_BUILDIN_LED+mt.Msg.MIXLY_BRIGHTNESS+"(0-10)")}},dr={init:function(){this.setColour(tr),this.appendDummyInput("").appendField(new mt.FieldDropdown([["L1","20"],["L2","21"]]),"op"),this.setOutput(!0)}},Ir={init:function(){this.setColour(tr),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("_LED_").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);switch(Ot.Boards.getSelectedBoardKey()){case"micropython:esp32c3:mixgo_cc":case"micropython:esp32s2:mixgo_ce":this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOCC);break;case"micropython:esp32c3:mixgo_me":default:this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOME);break;case"micropython:esp32:mPython":this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MPYTHON)}}},Tr={init:function(){this.setColour(tr),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},hr={init:function(){this.setColour(tr),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RAINBOW),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_DURATION).appendField(mt.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},Mr={init:function(){this.setColour(tr),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(mt.Msg.MIXLY_CHASE),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.PYTHON_RANGE_STEP).appendField(mt.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},mr={init:function(){this.setColour(tr),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_RGB_WRITE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_WRI)}},Or={init:function(){this.setColour(tr),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("_LED_").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);switch(Ot.Boards.getSelectedBoardKey()){case"micropython:esp32c3:mixgocc":this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOCC);break;case"micropython:esp32c3:mixgome":default:this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOME);break;case"micropython:esp32:mPython":this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MPYTHON)}}},Er={init:function(){this.setColour(tr),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},Rr={init:function(){this.setColour(tr),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(mt.Msg.MIXLY_CHASE),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.PYTHON_RANGE_STEP).appendField(mt.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},cr={init:function(){this.setColour(tr),this.appendValueInput("TICKS").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_SET_TEMPO).appendField(mt.Msg.MICROBIT_ACTUATOR_ticks),this.appendValueInput("BPM").setCheck(Number).appendField(mt.Msg.MIXLY_SPEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_SET_TEMPO)}},gr={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Get_current_tempo),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_GET_TEMPO)}},Cr={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Reset_music),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_RESET)}},Sr={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(mt.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},Ar={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(mt.Msg.MIXLY_FREQUENCY),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_DURATION),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE2)}},Lr={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Nr={init:function(){this.setColour(tr),this.appendValueInput("LIST").appendField(mt.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS)}},Dr={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MOTOR_DC).appendField(new mt.FieldDropdown([["1","1"],["2","2"],["3","3"]]),"wheel"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Direction).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"CW"],[mt.Msg.ANTI_CLOCKWISE,"CCW"],[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},fr={init:function(){this.setColour(tr),this.appendDummyInput().appendField("MixGo Car").appendField(new mt.FieldDropdown([[mt.Msg.blockpy_forward,"F"],[mt.Msg.blockpy_backward,"B"],[mt.Msg.blockpy_left,"L"],[mt.Msg.blockpy_right,"R"]]),"VAR"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Fr={init:function(){this.setColour(tr),this.appendDummyInput("").appendField("MixGo Car").appendField(new mt.FieldDropdown([[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"VAR"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},Pr={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MOTOR_DC).appendField(new mt.FieldDropdown([[mt.Msg.MIXLYCAR_WHEEL_LEFT,"L"],[mt.Msg.MIXLYCAR_WHEEL_RIGHT,"R"]]),"wheel"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Direction).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"CW"],[mt.Msg.ANTI_CLOCKWISE,"CCW"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},vr={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MOTOR_DC).appendField(new mt.FieldDropdown([[mt.Msg.MIXLYCAR_WHEEL_LEFT,"L"],[mt.Msg.MIXLYCAR_WHEEL_RIGHT,"R"]]),"wheel"),this.appendDummyInput().appendField(mt.Msg.MIXLY_STOP).appendField(new mt.FieldDropdown([[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"direction"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Yr={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_MOTOR_STATUS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_MOTOR_STATUS_TOOLTIP)}},xr={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MIXBOT).appendField(new mt.FieldDropdown([[mt.Msg.blockpy_forward,"F"],[mt.Msg.blockpy_backward,"B"],[mt.Msg.blockpy_left,"L"],[mt.Msg.blockpy_right,"R"]]),"VAR"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"PWR"],[mt.Msg.MIXLY_SPEED,"SPEED"],[mt.Msg.MIXLY_MIXBOT_MOTOR_TURNS,"TURNS"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_MOVE_TOOLTIP)}},Xr={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MIXBOT).appendField(new mt.FieldDropdown([[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"VAR"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},br={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MIXBOT).appendField(mt.Msg.MIXLY_MOTOR).appendField(new mt.FieldDropdown([[mt.Msg.TEXT_TRIM_LEFT,"1"],[mt.Msg.TEXT_TRIM_RIGHT,"2"],[mt.Msg.TEXT_TRIM_BOTH,"0"]]),"wheel"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"PWR"],[mt.Msg.MIXLY_SPEED,"SPEED"],[mt.Msg.MIXLY_MIXBOT_MOTOR_TURNS,"TURNS"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_MOVE_TOOLTIP)}},yr={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_BUZZER),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_ON,"0"],[mt.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_OFF,"1"]]),"on_off"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Vr={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.BITBOT).appendField(new mt.FieldDropdown([[mt.Msg.blockpy_forward,"F"],[mt.Msg.blockpy_backward,"B"],[mt.Msg.blockpy_left,"L"],[mt.Msg.blockpy_right,"R"]]),"VAR"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Br={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.BITBOT).appendField(new mt.FieldDropdown([[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"VAR"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Gr={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.BITBOT).appendField(mt.Msg.MIXLY_MOTOR).appendField(new mt.FieldDropdown([[mt.Msg.TEXT_TRIM_LEFT,"0"],[mt.Msg.TEXT_TRIM_RIGHT,"1"]]),"wheel"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Direction).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"CW"],[mt.Msg.ANTI_CLOCKWISE,"CCW"],[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Ur={init:function(){this.setColour(tr),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_MIXBOT_SOUND_SET_LOUDNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_SETONOFF)}},wr={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_SOUND_LOUDNESS+"(%)"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},kr={init:function(){this.setColour(tr),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_SETTING+mt.Msg.MIXLY_MIXBOT_BUZZER+mt.Msg.MIXLY_MP3_VOL),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_SETONOFF)}},Hr={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_MIXBOT_BUZZER+mt.Msg.MIXLY_MP3_VOL+"(%)"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},Wr={init:function(){this.setColour(tr),this.appendValueInput("PATH").appendField(mt.Msg.MIXLY_RECORD_AUDIO).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.appendValueInput("TIME").setCheck(Number).appendField(mt.Msg.MIXLY_GET_PRESSES_TIME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Kr={init:function(){this.setColour(tr),this.appendValueInput("PATH").appendField(mt.Msg.MIXLY_PLAY_AUDIO).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Jr={init:function(){this.setColour(tr),this.appendValueInput("PATH").appendField(mt.Msg.MIXLY_PLAY_ONLINE_AUDIO).appendField("URL"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Qr={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(mt.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},zr={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},qr={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.LISTS_SET_INDEX_SET+mt.Msg.ME_GO_MOTOR_EXTERN).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([["1","1"],["2","2"]]),"index"),this.appendValueInput("duty").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.blynk_IOT_IR_POWER+mt.Msg.MIXLY_PINMODEOUT),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip()}},jr={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.ME_GO_MOTOR_EXTERN).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([["1","1"],["2","2"]]),"index"),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.blynk_IOT_IR_POWER+mt.Msg.MIXLY_PINMODEOUT+mt.Msg.MIXLY_DUTY_RATIO),this.setOutput(!0,Number),this.setInputsInline(!0)}},Zr={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.LISTS_SET_INDEX_SET+mt.Msg.ME_GO_MOTOR_EXTERN).appendField(mt.Msg.MIXLY_ALL+mt.Msg.PIN_NUMBERING),this.appendValueInput("duty").setCheck(Number).setAlign(mt.ALIGN_RIGHT).appendField(mt.Msg.blynk_IOT_IR_POWER+mt.Msg.MIXLY_PINMODEOUT+mt.Msg.MIXLY_FREQUENCY),this.appendDummyInput().appendField("Hz"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_MOTOR_EXTERN_TOOLTIP)}},$r="#90A244",tl={init:function(){this.setColour($r),this.appendDummyInput("").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"uart").appendField(new mt.FieldDropdown([["uart1","uart1"],["uart2","uart2"]]),"key"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.LISTS_SET_INDEX_INPUT_TO+"MixGo AI"+mt.Msg.MSG.catSensor),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},el={init:function(){this.setColour($r),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_QR_CODE+mt.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ALL_CODE_ANALYSIS),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.OLED_STRING,"info1"],[mt.Msg.MIXLY_POSITION_XY+"-xywh","rect"],["x"+mt.Msg.MIXLY_POSITION_XY,"rect[0]"],["y"+mt.Msg.MIXLY_POSITION_XY,"rect[1]"],["w"+mt.Msg.MIXLY_POSITION_XY,"rect[2]"],["h"+mt.Msg.MIXLY_POSITION_XY,"rect[3]"],[mt.Msg.MICROPYTHON_HUSKYLENS_X_CENTERED+mt.Msg.MIXLY_POSITION_XY,"xc"],[mt.Msg.MICROPYTHON_HUSKYLENS_Y_CENTERED+mt.Msg.MIXLY_POSITION_XY,"yc"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_QR_CODE_TOOLTIP)}},il={init:function(){this.setColour($r),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_QR_CODE+mt.Msg.MIXPY_OBJECT,"qrcode"],[mt.Msg.MIXLY_BAR_CODE+mt.Msg.MIXPY_OBJECT,"barcode"],[mt.Msg.MIXLY_TAG+mt.Msg.MIXPY_OBJECT,"apriltag"]]),"TYPE"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ANALYSIS_RESULT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip()}},nl={init:function(){this.setColour($r),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.MIXLY_QR_CODE_RECOGNTITION),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.PROCEDURES_DEFRETURN_RETURN+"[qrcode]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_QR_CODE_RECOGNTITION_TOOLTIP)}},sl={init:function(){this.setColour($r),this.appendValueInput("SUB"),this.appendValueInput("RX").appendField(mt.Msg.MIXLY_SETTING+mt.Msg.MIXLY_ETHERNET_CLINET_PORT).appendField("RX#").setCheck(Number).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("TX").appendField("TX#").setCheck(Number).setAlign(mt.inputs.Align.RIGHT),this.appendDummyInput().appendField(mt.Msg.SOFT_RESET+mt.Msg.MIXLY_ESP32_RGB_WRITE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"mode"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_CONFIG_TOOLTIP)}},ol={init:function(){this.setColour($r),this.appendValueInput("SUB"),this.appendValueInput("led1").appendField(mt.Msg.MIXLY_SETTING).appendField("RGB1").setCheck(Number).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("led2").appendField("RGB2").setCheck(Number).setAlign(mt.inputs.Align.RIGHT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_CONFIG_TOOLTIP)}},_l={init:function(){this.setColour($r),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_BAR_CODE+mt.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ALL_CODE_ANALYSIS),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.OLED_STRING,"info1"],[mt.Msg.MIXLY_POSITION_XY+"-xywh","rect"],["x"+mt.Msg.MIXLY_POSITION_XY,"rect[0]"],["y"+mt.Msg.MIXLY_POSITION_XY,"rect[1]"],["w"+mt.Msg.MIXLY_POSITION_XY,"rect[2]"],["h"+mt.Msg.MIXLY_POSITION_XY,"rect[3]"],[mt.Msg.MICROPYTHON_HUSKYLENS_X_CENTERED+mt.Msg.MIXLY_POSITION_XY,"xc"],[mt.Msg.MICROPYTHON_HUSKYLENS_Y_CENTERED+mt.Msg.MIXLY_POSITION_XY,"yc"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_BAR_CODE_TOOLTIP)}},al={init:function(){this.setColour($r),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.MIXLY_BAR_CODE_RECOGNTITION),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.PROCEDURES_DEFRETURN_RETURN+"[barcode]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_BAR_CODE_RECOGNTITION_TOOLTIP)}},pl={init:function(){this.setColour($r),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_TAG+mt.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ALL_CODE_ANALYSIS),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.OLED_STRING,"info1"],[mt.Msg.blockpy_turtle_rotate+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"info2"],[mt.Msg.MIXLY_POSITION_XY+"-xywh","rect"],["x"+mt.Msg.MIXLY_POSITION_XY,"rect[0]"],["y"+mt.Msg.MIXLY_POSITION_XY,"rect[1]"],["w"+mt.Msg.MIXLY_POSITION_XY,"rect[2]"],["h"+mt.Msg.MIXLY_POSITION_XY,"rect[3]"],[mt.Msg.MICROPYTHON_HUSKYLENS_X_CENTERED+mt.Msg.MIXLY_POSITION_XY,"xc"],[mt.Msg.MICROPYTHON_HUSKYLENS_Y_CENTERED+mt.Msg.MIXLY_POSITION_XY,"yc"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_TAG_TOOLTIP)}},ul={init:function(){this.setColour($r),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.MIXLY_TAG_RECOGNTITION),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.PROCEDURES_DEFRETURN_RETURN+"[tag]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_TAG_RECOGNTITION_TOOLTIP)}},rl={init:function(){this.setColour($r),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_LINE+mt.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ALL_CODE_ANALYSIS),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LINE_ANGLE,"info1"],[mt.Msg.MIXLY_POSITION_XY+"-x1x2y1y2","rect"],["x1"+mt.Msg.MIXLY_POSITION_XY,"rect[0]"],["x2"+mt.Msg.MIXLY_POSITION_XY,"rect[1]"],["y1"+mt.Msg.MIXLY_POSITION_XY,"rect[2]"],["y2"+mt.Msg.MIXLY_POSITION_XY,"rect[3]"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_LINE_TOOLTIP)}},ll={init:function(){this.setColour($r),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.MIXLY_LINE_RECOGNTITION),this.appendValueInput("VAR1").appendField(mt.Msg.MIXLY_ESP32_THRESHOLD).setCheck(Number).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("VAR2").appendField(mt.Msg.MIXLY_LINE_RECOGNTITION_ANGLE).setCheck(Number).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("VAR3").appendField(mt.Msg.MIXLY_LINE_RECOGNTITION_SLOPE).setCheck(Number).setAlign(mt.inputs.Align.RIGHT),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.PROCEDURES_DEFRETURN_RETURN+"[line]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_LINE_RECOGNTITION_TOOLTIP)}},dl={init:function(){this.setColour($r),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_CIRCLE+mt.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ALL_CODE_ANALYSIS),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_CIRCLE_AREA,"info1"],[mt.Msg.MIXLY_POSITION_XY+"-xywh","rect"],["x"+mt.Msg.MIXLY_POSITION_XY,"rect[0]"],["y"+mt.Msg.MIXLY_POSITION_XY,"rect[1]"],["w"+mt.Msg.MIXLY_POSITION_XY,"rect[2]"],["h"+mt.Msg.MIXLY_POSITION_XY,"rect[3]"],[mt.Msg.MICROPYTHON_HUSKYLENS_X_CENTERED+mt.Msg.MIXLY_POSITION_XY,"xc"],[mt.Msg.MICROPYTHON_HUSKYLENS_Y_CENTERED+mt.Msg.MIXLY_POSITION_XY,"yc"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_CIRCLE_TOOLTIP)}},Il={init:function(){this.setColour($r),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.MIXLY_CIRCLE_RECOGNTITION),this.appendValueInput("VAR1").appendField(mt.Msg.MIXLY_ESP32_THRESHOLD).setCheck(Number).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("VAR2").appendField(mt.Msg.MIXLY_CIRCLE_RECOGNTITION_MIN).setCheck(Number).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("VAR3").appendField(mt.Msg.MIXLY_CIRCLE_RECOGNTITION_MAX).setCheck(Number).setAlign(mt.inputs.Align.RIGHT),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.PROCEDURES_DEFRETURN_RETURN+"[circle]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_CIRCLE_RECOGNTITION_TOOLTIP)}},Tl={init:function(){this.setColour($r),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_RECT+mt.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ALL_CODE_ANALYSIS),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_CIRCLE_AREA,"info1"],[mt.Msg.MIXLY_POSITION_XY+"-xywh","rect"],["x"+mt.Msg.MIXLY_POSITION_XY,"rect[0]"],["y"+mt.Msg.MIXLY_POSITION_XY,"rect[1]"],["w"+mt.Msg.MIXLY_POSITION_XY,"rect[2]"],["h"+mt.Msg.MIXLY_POSITION_XY,"rect[3]"],[mt.Msg.MICROPYTHON_HUSKYLENS_X_CENTERED+mt.Msg.MIXLY_POSITION_XY,"xc"],[mt.Msg.MICROPYTHON_HUSKYLENS_Y_CENTERED+mt.Msg.MIXLY_POSITION_XY,"yc"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_RECT_TOOLTIP)}},hl={init:function(){this.setColour($r),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.MIXLY_RECT_RECOGNTITION),this.appendValueInput("VAR1").appendField(mt.Msg.MIXLY_ESP32_THRESHOLD).setCheck(Number).setAlign(mt.inputs.Align.RIGHT),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.PROCEDURES_DEFRETURN_RETURN+"[rect]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_COLOR_RECOGNTITION_TOOLTIP)}},Ml={init:function(){this.setColour($r),this.appendValueInput("VAR").appendField(mt.Msg.HTML_COLOUR+mt.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_COLOR_ANALYSIS),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([["RGB"+mt.Msg.HTML_COLOUR,"[0]"],["LAB"+mt.Msg.MIXLY_COLOR_LAB,"[1]"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_COLOR_TOOLTIP)}},ml={init:function(){this.setColour($r),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.MIXLY_COLOR_RECOGNTITION),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.PROCEDURES_DEFRETURN_RETURN+"color"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_COLOR_RECOGNTITION_TOOLTIP)}},Ol={init:function(){this.setColour($r),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_COLOR_CHASE+mt.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_COLOR_CHASE_ANALYSIS),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_CIRCLE_AREA,"info1"],[mt.Msg.MIXLY_POSITION_XY+"-xywh","rect"],["x"+mt.Msg.MIXLY_POSITION_XY,"rect[0]"],["y"+mt.Msg.MIXLY_POSITION_XY,"rect[1]"],["w"+mt.Msg.MIXLY_POSITION_XY,"rect[2]"],["h"+mt.Msg.MIXLY_POSITION_XY,"rect[3]"],[mt.Msg.MICROPYTHON_HUSKYLENS_X_CENTERED+mt.Msg.MIXLY_POSITION_XY,"xc"],[mt.Msg.MICROPYTHON_HUSKYLENS_Y_CENTERED+mt.Msg.MIXLY_POSITION_XY,"yc"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_CIRCLE_TOOLTIP)}},El={init:function(){this.setColour($r),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.MIXLY_COLOR_CHASE),this.appendValueInput("VAR1").appendField("LAB"+mt.Msg.MIXLY_COLOR_LAB).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("VAR2").appendField(mt.Msg.MIXLY_ESP32_THRESHOLD).setCheck(Number).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("VAR3").appendField(mt.Msg.MIXLY_COLOR_CHASE_MERGE).setCheck(Number).setAlign(mt.inputs.Align.RIGHT),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.PROCEDURES_DEFRETURN_RETURN+"[colors]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_CIRCLE_RECOGNTITION_TOOLTIP)}},Rl={init:function(){this.setColour($r),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.MIXLY_LOCAL_TRAIN),this.appendValueInput("VAR1").appendField(mt.Msg.MIXLY_OBJECT_LIST).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("VAR2").appendField(mt.Msg.MICROPYTHON_HUSKYLENS_SAVE_AS+mt.Msg.MIXLY_MODEL_NAME).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("VAR3").appendField(mt.Msg.MIXLY_TRAIN_TIME).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("VAR4").appendField(mt.Msg.MIXLY_AipNlp_Topic_Title).setAlign(mt.inputs.Align.RIGHT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_LOCAL_TRAIN_TOOLTIP)}},cl={init:function(){this.setColour($r),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.MIXLY_LOCAL_CLASS),this.appendValueInput("VAR1").appendField(mt.Msg.MIXLY_OBJECT_LIST).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("VAR2").appendField(mt.Msg.MIXLY_MODEL_NAME).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("VAR4").appendField(mt.Msg.MIXLY_AipNlp_Topic_Title).setAlign(mt.inputs.Align.RIGHT),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.PROCEDURES_DEFRETURN_RETURN+"[objects]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_MODEL_NAME_TOOLTIP)}},gl={init:function(){this.setColour($r),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_LOCAL_CLASS+mt.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_COLOR_CHASE_ANALYSIS),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([["ID","info1"],[mt.Msg.MIXLY_CONFIDENCE_DEGREE,"info2"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_LOCAL_CLASS_TOOLTIP)}},Cl={init:function(){this.setColour($r),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MUSIC_RECORD),this.appendValueInput("VAR1").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("VAR2").appendField(mt.Msg.MIXPY_AI_AUDIO_TIME).setAlign(mt.inputs.Align.RIGHT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_MUSIC_RECORD_TOOLTIP)}},Sl={init:function(){this.setColour($r),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MUSIC_PLAY),this.appendValueInput("VAR1").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("VAR2").appendField(mt.Msg.MIXLY_MP3_VOL).setAlign(mt.inputs.Align.RIGHT),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Al={init:function(){this.setColour($r),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.MIXLY_YOLO_RECOGNIZE),this.appendValueInput("VAR1").appendField(mt.Msg.MIXLY_ANCHOR).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("VAR2").appendField(mt.Msg.MIXLY_MODEL_PATH).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("VAR4").appendField(mt.Msg.MIXLY_AipNlp_Topic_Title).setAlign(mt.inputs.Align.RIGHT),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.PROCEDURES_DEFRETURN_RETURN+"[objects]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_YOLO_RECOGNIZE_TOOLTIP)}},Ll={init:function(){this.setColour($r),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_YOLO_RECOGNIZE+mt.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_COLOR_CHASE_ANALYSIS),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([["ID","info1"],[mt.Msg.MIXLY_CONFIDENCE_DEGREE,"info2"],[mt.Msg.MIXLY_POSITION_XY+"-xywh","rect"],["x"+mt.Msg.MIXLY_POSITION_XY,"rect[0]"],["y"+mt.Msg.MIXLY_POSITION_XY,"rect[1]"],["w"+mt.Msg.MIXLY_POSITION_XY,"rect[2]"],["h"+mt.Msg.MIXLY_POSITION_XY,"rect[3]"],[mt.Msg.MICROPYTHON_HUSKYLENS_X_CENTERED+mt.Msg.MIXLY_POSITION_XY,"xc"],[mt.Msg.MICROPYTHON_HUSKYLENS_Y_CENTERED+mt.Msg.MIXLY_POSITION_XY,"yc"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_YOLO_RECOGNIZE_RESULT_TOOLTIP)}},Nl={init:function(){this.setColour($r),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.MIXLY_AipSpeech_asr),this.appendValueInput("VAR1").appendField(mt.Msg.MIXLY_AI_SENSOR_ASR_RECOGNISE_CORPUS).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("VAR2").appendField(mt.Msg.MIXLY_ESP32_THRESHOLD).setAlign(mt.inputs.Align.RIGHT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_ASR_RECOGNISE_TOOLTIP)}},Dl={init:function(){this.setColour($r),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_LICENSEPLATE+mt.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ALL_CODE_ANALYSIS),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([["ID","info1"],[mt.Msg.MIXLY_POSITION_XY+"-xywh","rect"],["x"+mt.Msg.MIXLY_POSITION_XY,"rect[0]"],["y"+mt.Msg.MIXLY_POSITION_XY,"rect[1]"],["w"+mt.Msg.MIXLY_POSITION_XY,"rect[2]"],["h"+mt.Msg.MIXLY_POSITION_XY,"rect[3]"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_LICENSEPLATE_TOOLTIP)}},fl={init:function(){this.setColour($r),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.MIXLY_AipOcr_licensePlate),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.PROCEDURES_DEFRETURN_RETURN+"[licensePlate]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_LICENSEPLATE_RECOGNTITION_TOOLTIP)}},Fl={init:function(){this.setColour($r),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_FACE+mt.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ALL_CODE_ANALYSIS),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([["ID","info1"],[mt.Msg.MIXLY_CONFIDENCE_DEGREE,"info2"],[mt.Msg.MIXLY_POSITION_XY+"-xywh","rect"],["x"+mt.Msg.MIXLY_POSITION_XY,"rect[0]"],["y"+mt.Msg.MIXLY_POSITION_XY,"rect[1]"],["w"+mt.Msg.MIXLY_POSITION_XY,"rect[2]"],["h"+mt.Msg.MIXLY_POSITION_XY,"rect[3]"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_FACE_TOOLTIP)}},Pl={init:function(){this.setColour($r),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.MIXLY_AipFace),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.PROCEDURES_DEFRETURN_RETURN+"[face]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_BAR_FACE_CLASSIFIER_TOOLTIP)}},vl={init:function(){this.setColour($r),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_20OBJECTS+mt.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ALL_CODE_ANALYSIS),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([["ID","info1"],[mt.Msg.MIXLY_CONFIDENCE_DEGREE,"info2"],[mt.Msg.MIXLY_POSITION_XY+"-xywh","rect"],["x"+mt.Msg.MIXLY_POSITION_XY,"rect[0]"],["y"+mt.Msg.MIXLY_POSITION_XY,"rect[1]"],["w"+mt.Msg.MIXLY_POSITION_XY,"rect[2]"],["h"+mt.Msg.MIXLY_POSITION_XY,"rect[3]"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_20OBJECTS_TOOLTIP)}},Yl={init:function(){this.setColour($r),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.MIXLY_FIND_20OBJECTS),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.PROCEDURES_DEFRETURN_RETURN+"[20objects]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_BAR_FIND_20OBJECTS_TOOLTIP)}},xl={init:function(){this.setColour(205),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_AipSpeech_asr,"ASR"],[mt.Msg.MIXLY_AI_UNIT,"UNIT"]]),"CTYPE"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_Client).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("API_KEY").appendField("API_KEY").setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("SECRET_KEY").appendField("SECRET_KEY").setAlign(mt.inputs.Align.RIGHT),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Xl={init:function(){this.setColour(205),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_AI_UNIT).appendField(mt.Msg.MIXLY_Client).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("ID").appendField("ID").setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("STR").appendField(mt.Msg.OLED_STRING).setAlign(mt.inputs.Align.RIGHT),this.setInputsInline(!0),this.setOutput(!0)}},bl={init:function(){this.setColour(205),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_AipSpeech_asr).appendField(mt.Msg.MIXLY_Client).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("FILE").appendField(mt.Msg.MIXPY_AI_AUDIO_TIME).setAlign(mt.inputs.Align.RIGHT),this.appendDummyInput("").appendField(mt.Msg.MIXLY_LANGUAGE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_AI_LANGUAGE_CHINESE,"1537"],[mt.Msg.MIXLY_AI_LANGUAGE_ENGLISH,"1737"],[mt.Msg.MIXLY_AI_LANGUAGE_CANTONESE,"1637"]]),"LANGUAGE"),this.setInputsInline(!0),this.setOutput(!0)}},yl="#2FAD7A",Vl={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:yl,helpUrl:mt.Msg.MPYTHON_BLYNK_TERMINAL_WIDGET_VPIN_HELPURL,tooltip:mt.Msg.MPYTHON_BLYNK_TERMINAL_WIDGET_VPIN_TOOLTIP,message0:mt.Msg.MPYTHON_BLYNK_TERMINAL_WIDGET_VPIN_MESSAGE0,args0:[{check:Number,type:"input_value",name:"virtual_pin"}]})}},Bl={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:yl,helpUrl:mt.Msg.MPYTHON_BLYNK_SYNC_VIRTUAL_HELPURL,tooltip:mt.Msg.MPYTHON_BLYNK_SYNC_VIRTUAL_TOOLTIP,message0:mt.Msg.MPYTHON_BLYNK_SYNC_VIRTUAL_MESSAGE0,args0:[{check:Number,type:"input_value",name:"virtual_pin"}]})}},Gl={init:function(){this.jsonInit({inputsInline:!0,colour:yl,helpUrl:mt.Msg.MPYTHON_BLYNK_ON_DISCONNECTED_HELPURL,tooltip:mt.Msg.MPYTHON_BLYNK_ON_DISCONNECTED_TOOLTIP,message0:mt.Msg.MPYTHON_BLYNK_ON_DISCONNECTED_MESSAGE0}),this.appendStatementInput("DO").appendField(mt.CONTROLS_REPEAT_INPUT_DO)}},Ul={init:function(){this.jsonInit({inputsInline:!0,colour:yl,helpUrl:mt.Msg.MPYTHON_BLYNK_ON_CONNECTED_HELPURL,tooltip:mt.Msg.MPYTHON_BLYNK_ON_CONNECTED_TOOLTIP,message0:mt.Msg.MPYTHON_BLYNK_ON_CONNECTED_MESSAGE0}),this.appendStatementInput("DO").appendField(mt.CONTROLS_REPEAT_INPUT_DO)}},wl={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:yl,helpUrl:mt.Msg.MPYTHON_BLYNKTIMER_RUN_HELPURL,tooltip:mt.Msg.MPYTHON_BLYNKTIMER_RUN_TOOLTIP,message0:mt.Msg.MPYTHON_BLYNKTIMER_RUN_MESSAGE0})}},kl={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:yl,helpUrl:mt.Msg.MPYTHON_BLYNK_RUN_HELPURL,tooltip:mt.Msg.MPYTHON_BLYNK_RUN_TOOLTIP,message0:mt.Msg.MPYTHON_BLYNK_RUN_MESSAGE0})}},Hl={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:yl,helpUrl:mt.Msg.MPYTHON_BLYNK_APP_NOTIFY_HELPURL,tooltip:mt.Msg.MPYTHON_BLYNK_APP_NOTIFY_TOOLTIP,message0:mt.Msg.MPYTHON_BLYNK_APP_NOTIFY_MESSAGE0,args0:[{check:String,type:"input_value",name:"notification"}]})}},Wl={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:yl,helpUrl:mt.Msg.MPYTHON_BLYNK_STOP_TIMERS_HELPURL,tooltip:mt.Msg.MPYTHON_BLYNKTIMER_TOOLTIP,message0:mt.Msg.MPYTHON_BLYNK_STOP_TIMERS_MESSAGE0,args0:[{check:Number,type:"input_value",name:"timer_num"}]})}},Kl={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:yl,helpUrl:mt.Msg.MPYTHON_BLYNK_SET_PROPERTY_HELPURL,tooltip:mt.Msg.MPYTHON_BLYNK_SET_PROPERTY_TOOLTIP,message0:mt.Msg.MPYTHON_BLYNK_SET_PROPERTY_MESSAGE0,args0:[{check:String,type:"input_value",name:"attribute_name"},{type:"input_value",name:"attribute_value"}]})}},Jl={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:yl,helpUrl:mt.Msg.MPYTHON_BLYNK_EMAIL_HELPURL,tooltip:mt.Msg.MPYTHON_BLYNK_EMAIL_TOOLTIP,message0:mt.Msg.MPYTHON_BLYNK_EMAIL_MESSAGE0,args0:[{check:String,type:"input_value",name:"TargetEmail"},{check:String,type:"input_value",name:"subject"},{check:String,type:"input_value",name:"body"}]})}},Ql={init:function(){this.jsonInit({inputsInline:!0,output:null,colour:yl,helpUrl:mt.Msg.MPYTHON_BLYNK_GET_TIMERS_HELPURL,tooltip:mt.Msg.MPYTHON_BLYNK_GET_TIMERS_TOOLTIP,message0:mt.Msg.MPYTHON_BLYNK_GET_TIMERS_MESSAGE0})}},zl={init:function(){this.jsonInit({message0:mt.Msg.MPYTHON_BLYNKTIMER_MESSAGE0,colour:yl,helpUrl:mt.Msg.MPYTHON_BLYNKTIMER_HELPURL,tooltip:mt.Msg.MPYTHON_BLYNKTIMER_TOOLTIP,args0:[{check:Number,type:"input_value",name:"Num"},{options:[[mt.Msg.MIXLY_PYTHON_PERIODIC,"False"],[mt.Msg.MIXLY_PYTHON_ONE_SHOT,"True"]],type:"field_dropdown",name:"Timer_mode"},{check:Number,type:"input_value",name:"period"}]}),this.appendStatementInput("DO").appendField(mt.CONTROLS_REPEAT_INPUT_DO)}},ql={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:yl,helpUrl:mt.Msg.MPYTHON_BLYNK_SENSOR_DATA_TO_APP_HELPURL,tooltip:mt.Msg.MPYTHON_BLYNK_SENSOR_DATA_TO_APP_TOOLTIP,message0:mt.Msg.MPYTHON_BLYNK_SENSOR_DATA_TO_APP_MESSAGE0,args0:[{type:"input_value",name:"sensor_data"},{check:Number,type:"input_value",name:"virtual_pin"}]})}},jl={init:function(){this.jsonInit({inputsInline:!0,colour:yl,helpUrl:mt.Msg.MPYTHON_BLYNK_APP_DATA_HELPURL,tooltip:mt.Msg.MPYTHON_BLYNK_SENSOR_DATA_TO_APP_TOOLTIP,message0:mt.Msg.MPYTHON_BLYNK_APP_DATA_MESSAGE0,args0:[{check:Number,type:"input_value",name:"virtual_pin"},{type:"input_value",name:"virtual_pin_val"}]}),this.appendStatementInput("DO").appendField(mt.CONTROLS_REPEAT_INPUT_DO)}},Zl={init:function(){this.jsonInit({nextStatement:null,previousStatement:null,colour:yl,helpUrl:mt.Msg.MPYTHON_BLYNK_SETUP_HELPURL,tooltip:mt.Msg.MPYTHON_BLYNK_SETUP_TOOLTIP,message0:mt.Msg.MPYTHON_BLYNK_SETUP_MESSAGE0,args0:[{type:"input_dummy"},{check:String,type:"input_value",name:"server"},{check:Number,type:"input_value",name:"port"},{check:String,type:"input_value",name:"auth"}]})}},$l={init:function(){this.setColour(40),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP+" CC_G1"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{temperature:mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,relative_humidity:mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},td={init:function(){this.setColour(40),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GET_BATTERY),this.setOutput(!0,Number),this.setInputsInline(!0)}},ed={init:function(){this.setColour(40),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_JOYSTICK).appendField(new mt.FieldDropdown([["x","[0]"],["y","[1]"],["(x,y)",""]]),"VAR"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_DATA),this.setOutput(!0,Number),this.setInputsInline(!0)}},id={init:function(){this.setColour(40),this.appendDummyInput().appendField(mt.Msg.MIXLY_BUTTON).appendField(new mt.FieldDropdown([["A","0"],["B","1"],["C","2"],["D","3"],["POWER","4"],["SELECT","5"]]),"VAR"),this.appendDummyInput("").appendField(mt.Msg.WHETHER_IS_PRESSED),this.setOutput(!0,Number),this.setInputsInline(!0)}},nd={init:function(){this.setColour(40),this.appendDummyInput("").appendField(mt.Msg.MIXLY_HANDLE_SHUTDOWN),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},sd=100,od={init:function(){this.setColour(sd),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXGO_LEFT_FRONT+mt.Msg.COLOUR_RGB_GREEN+mt.Msg.MIXLY_EXTERN_LED,"GLED[0]"],[mt.Msg.MIXGO_RIGHT_FRONT+mt.Msg.COLOUR_RGB_GREEN+mt.Msg.MIXLY_EXTERN_LED,"GLED[1]"],[mt.Msg.MIXGO_LEFT_BACK+mt.Msg.COLOUR_RGB_GREEN+mt.Msg.MIXLY_EXTERN_LED,"GLED[3]"],[mt.Msg.MIXGO_RIGHT_BACK+mt.Msg.COLOUR_RGB_GREEN+mt.Msg.MIXLY_EXTERN_LED,"GLED[2]"],[mt.Msg.MIXGO_LEFT_FRONT+mt.Msg.COLOUR_RGB_RED+mt.Msg.MIXLY_EXTERN_LED,"RLED[0]"],[mt.Msg.MIXGO_RIGHT_FRONT+mt.Msg.COLOUR_RGB_RED+mt.Msg.MIXLY_EXTERN_LED,"RLED[1]"],[mt.Msg.MIXGO_LEFT_BACK+mt.Msg.COLOUR_RGB_RED+mt.Msg.MIXLY_EXTERN_LED,"RLED[3]"],[mt.Msg.MIXGO_RIGHT_BACK+mt.Msg.COLOUR_RGB_RED+mt.Msg.MIXLY_EXTERN_LED,"RLED[2]"],[mt.Msg.ME_GO_LIGHT_HEADLIGHT,"WLED"]]),"op"),this.setOutput(!0)}},_d={init:function(){this.setColour(sd),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField("ME GO"),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_SETONOFF)}},ad={init:function(){this.setColour(sd),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("led").appendField("ME GO"),this.appendDummyInput().appendField(mt.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},pd={init:function(){this.setColour(sd),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("led").appendField("ME GO"),this.appendDummyInput().appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},ud={init:function(){this.setColour(sd),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField("ME GO"),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_SETTING+mt.Msg.MIXLY_BUILDIN_LED+mt.Msg.MIXLY_BRIGHTNESS+"(0-10)")}},rd={init:function(){this.setColour(sd),this.appendDummyInput().appendField("ME GO").appendField(new mt.FieldDropdown([[mt.Msg.blockpy_forward,"F"],[mt.Msg.blockpy_backward,"B"],[mt.Msg.blockpy_left,"L"],[mt.Msg.blockpy_right,"R"]]),"VAR"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},ld={init:function(){this.setColour(sd),this.appendDummyInput().appendField("ME GO").appendField(new mt.FieldDropdown([[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"VAR"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},dd={init:function(){this.setColour(sd),this.appendDummyInput().appendField("ME GO").appendField(mt.Msg.MOTOR_DC).appendField(new mt.FieldDropdown([[mt.Msg.MIXLYCAR_WHEEL_LEFT,"0"],[mt.Msg.MIXLYCAR_WHEEL_RIGHT,"1"],[mt.Msg.ME_GO_MOTOR_EXTERN,"2"]]),"wheel"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Direction).appendField(new mt.FieldDropdown([[mt.Msg.ROTATION_FORWARD,"CW"],[mt.Msg.ROTATION_BACKWARD,"CCW"],[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Id={init:function(){this.setColour(sd),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_INTERRUPT).appendField(mt.Msg.ME_GO_HALL_SENSOR),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.TEXT_TRIM_LEFT,"A"],[mt.Msg.TEXT_TRIM_RIGHT,"B"]]),"mode"),this.appendValueInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Td={init:function(){this.setColour(sd),this.appendDummyInput("").appendField(mt.Msg.ME_GO_HALL_SENSOR),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.TEXT_TRIM_LEFT,"A"],[mt.Msg.TEXT_TRIM_RIGHT,"B"]]),"mode"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP),this.appendDummyInput("").appendField(new mt.FieldDropdown([["turns","turns"],["distance","distance"],["turns,distance","all"]]),"args"),this.appendValueInput("num").setCheck(Number),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},hd={init:function(){this.setColour(sd),this.appendDummyInput("").appendField(mt.Msg.ME_GO_HALL_SENSOR),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.TEXT_TRIM_LEFT,"A"],[mt.Msg.TEXT_TRIM_RIGHT,"B"]]),"mode"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput("").appendField(new mt.FieldDropdown([["turns","turns"],["distance","distance"],["speed","speed"]]),"args"),this.setOutput(!0),this.setInputsInline(!0)}},Md={init:function(){this.setColour(sd),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new mt.FieldDropdown([[mt.Msg.TEXT_TRIM_LEFT,"[0]"],[mt.Msg.MIXGO_LEFT_MID,"[1]"],[mt.Msg.MIXGO_RIGHT_MID,"[2]"],[mt.Msg.TEXT_TRIM_RIGHT,"[3]"],[mt.Msg.MIXLY_ALL,""]]),"key").appendField(mt.Msg.MIXGO_LINE_SENSOR_VAL),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip((function(){return mt.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP+mt.Msg.MIXLY_ESP32_NEAR}))}},md={init:function(){this.setColour(sd),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXGO_LEFT_FRONT,"[0]"],[mt.Msg.MIXGO_RIGHT_FRONT,"[1]"],[mt.Msg.MIXGO_LEFT_BACK,"[3]"],[mt.Msg.MIXGO_RIGHT_BACK,"[2]"],[mt.Msg.MIXLY_ALL,""]]),"key").appendField(mt.Msg.MIXGO_PROXIMITY_SENSOR),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip((function(){return mt.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP+mt.Msg.MIXLY_ESP32_NEAR}))}},Od={init:function(){this.setColour(sd),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXGO_CAR_SENSOR_ONBOARD_CHANGE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_ME_GO_CAR_SENSOR_ONBOARD_AUTO_CHANGE,"AS"],[mt.Msg.MIXLY_MIXGO_CAR_USE_LINE_ONLY,"LP"],[mt.Msg.MIXLY_MIXGO_CAR_USE_PROXIMITY_ONLY,"OA"],[mt.Msg.MIXLY_ME_GO_CAR_LIGHT_SEEKING_ONLY,"LS"],[mt.Msg.ME_GO_SENSOR_MODE_OFF,"CL"]]),"key"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Ed={init:function(){this.setColour(sd),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GET_GESTURE).appendField(new mt.FieldDropdown([[mt.Msg.ME_GO_PITCH,"[0]"],[mt.Msg.ME_GO_ROLL,"[1]"],[mt.Msg.ME_GO_PITCH+", "+mt.Msg.ME_GO_ROLL,""]]),"angle"),this.appendDummyInput(""),this.setOutput(!0,Number),this.setInputsInline(!0)}},Rd={init:function(){this.setColour(sd),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new mt.FieldDropdown([[mt.Msg.TEXT_TRIM_LEFT,"[0]"],[mt.Msg.MIXGO_LEFT_MID,"[1]"],[mt.Msg.MIXGO_RIGHT_MID,"[2]"],[mt.Msg.TEXT_TRIM_RIGHT,"[3]"],[mt.Msg.MIXLY_ALL,""]]),"key").appendField(mt.Msg.MIXLY_ME_GO_CAR_LIGHT_SEEKING_SENSOR),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip((function(){return mt.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP+mt.Msg.MIXLY_ME_GO_CAR_LIGHT_SEEKING_SENSOR}))}},cd=140,gd={init:function(){this.setColour(cd),this.appendDummyInput().appendField(mt.Msg.MIXLY_LED_ON_BOARD+"I2C"),this.setOutput(!0),this.setInputsInline(!0)}},Cd={init:function(){this.setColour(cd),this.appendDummyInput().appendField(mt.Msg.MIXLY_LED_ON_BOARD+"SPI"),this.setOutput(!0),this.setInputsInline(!0)}},Sd={init:function(){this.setColour(cd),this.appendValueInput("SUB").appendField("I2C "+mt.Msg.MIXLY_SETUP).setCheck("var"),this.appendValueInput("TX",Number).appendField("SCL").setCheck(Number).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("RX",Number).appendField("SDA").setCheck(Number).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("freq").setCheck(Number).appendField(mt.Msg.MIXLY_FREQUENCY).setAlign(mt.inputs.Align.RIGHT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_I2C_INIT)}},Ad={init:function(){this.setColour(cd),this.appendValueInput("VAR").appendField("I2C").setCheck("var"),this.appendValueInput("address").setCheck(Number).appendField(mt.Msg.MIXLY_ESP32_RNUMBER),this.appendValueInput("data").setCheck(Number).appendField(mt.Msg.LANG_MATH_BYTE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_JS_I2C_READ)}},Ld={init:function(){this.setColour(cd),this.appendValueInput("VAR").appendField("I2C").setCheck("var"),this.appendValueInput("address").setCheck(Number).appendField(mt.Msg.MIXLY_ESP32_WNUMBER),this.appendValueInput("data").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_I2C_VALUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_JS_I2C_WRITE)}},Nd={init:function(){this.setColour(cd),this.appendValueInput("VAR").appendField("I2C").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_I2C_SCAN1+mt.Msg.MIXLY_ESP32_I2C_SCAN2),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_I2C_SCAN)}},Dd={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField(mt.Msg.MIXLY_ESP32_SPI_INIT),this.appendValueInput("freq").setCheck(Number).appendField(mt.Msg.MIXLY_SERIAL_BEGIN),this.appendValueInput("sck").setCheck(Number).appendField("SCK"),this.appendValueInput("mosi").setCheck(Number).appendField("MOSI"),this.appendValueInput("miso").setCheck(Number).appendField("MISO"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SPI_INIT_TOOLTIP)}},fd={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField("SPI"),this.appendValueInput("data").setCheck(Number).appendField(mt.Msg.MIXLY_SETTING+mt.Msg.MIXLY_SERIAL_BEGIN),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SPI_SET)}},Fd={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField("SPI"),this.appendValueInput("data").setCheck(Number).appendField(mt.Msg.MIXLY_ESP32_SET+mt.Msg.MIXLY_ESP32_SPI_BUFFER),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SPI_BUFFER_SET)}},Pd={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField("SPI"),this.appendValueInput("data").setCheck(Number).appendField(mt.Msg.MIXLY_SERIAL_READ),this.appendDummyInput("").appendField(mt.Msg.MIXLY_4DIGITDISPLAY_NOMBER2+mt.Msg.LANG_MATH_BYTE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SPI_READ)}},vd={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField("SPI"),this.appendValueInput("data").setCheck(Number).appendField(mt.Msg.MIXLY_SERIAL_READ),this.appendDummyInput("").appendField(mt.Msg.MIXLY_4DIGITDISPLAY_NOMBER2+mt.Msg.LANG_MATH_BYTE+" "+mt.Msg.MIXLY_ESP32_SPI_OUTPUT),this.appendValueInput("val").setCheck(Number),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SPI_READ_OUTPUT)}},Yd={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField("SPI"),this.appendValueInput("data").setCheck("var").appendField(mt.Msg.MIXLY_SERIAL_READ+mt.Msg.MIXLY_ESP32_SPI_BUFFER),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SPI_READINTO)}},xd={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField("SPI"),this.appendValueInput("data").setCheck("var").appendField(mt.Msg.MIXLY_SERIAL_READ+mt.Msg.MIXLY_ESP32_SPI_BUFFER),this.appendValueInput("val").setCheck(Number).appendField(mt.Msg.MIXLY_ESP32_SPI_OUTPUT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SPI_READINTO_OUTPUT)}},Xd={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField("SPI"),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_ESP32_WRITE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SPI_WRITE)}},bd={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField("SPI"),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_ESP32_WRITE),this.appendValueInput("val").setCheck("var").appendField(mt.Msg.MIXLY_ESP32_BUFFER_READ),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SPI_WRITE_READINTO)}},yd={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField("I2C"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_READ),this.setOutput(!0,Number)}},Vd={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField("I2C"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_READ+mt.Msg.MIXLY_ESP32_SUCCESS),this.setOutput(!0,Boolean),this.setTooltip(mt.Msg.MIXLY_ESP32_I2C_AVAILABLE)}},Bd={init:function(){this.setColour(cd),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_I2C_SLAVE_ONRECEIVE).setCheck(Number),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Gd={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField("OneWire "+mt.Msg.MIXLY_SETUP),this.appendValueInput("BUS").setCheck(Number).appendField(mt.Msg.MIXLY_PIN),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_OW_INIT)}},Ud={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField("OneWire"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_ONEWIRE_SCAN),this.setOutput(!0,"List"),this.setTooltip(mt.Msg.MIXLY_ESP32_OW_SCAN)}},wd={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField("OneWire"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_ONEWIRE_READ),this.setOutput(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_OW_READ)}},kd={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField("OneWire"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_WRITE).appendField(new mt.FieldDropdown([[mt.Msg.LANG_MATH_STRING,"write"],[mt.Msg.LANG_MATH_BYTE,"writebyte"]]),"op"),this.appendValueInput("byte").setCheck([Number,String]),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_OW_WRITE)}},Hd={init:function(){this.setColour(cd),this.appendValueInput("VAR").appendField("OneWire").setCheck("var"),this.appendValueInput("byte").setCheck(String).appendField(mt.Msg.LISTS_SET_INDEX_SET).appendField("ROM"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_OW_SELECT)}},Wd={init:function(){this.setColour(cd),this.appendValueInput("VAR").appendField("OneWire").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.blockpy_turtle_reset),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_OW_RESET)}},Kd={init:function(){this.setColour(cd),this.appendValueInput("PIN").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.MIXLY_IR_RECEIVE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_TYPE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_IR_INPUT1,"8"],[mt.Msg.MIXLY_IR_INPUT2,"16"],[mt.Msg.MIXLY_IR_INPUT3,"0"],[mt.Msg.MIXLY_TR_SEND_RC,"RC5"]]),"type"),this.appendValueInput("SUB").appendField(mt.Msg.CONTROLS_REPEAT_INPUT_DO+mt.Msg.MIXLY_ESP32_ONENET_SUB),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Jd={init:function(){this.setColour(cd),this.appendDummyInput().appendField(mt.Msg.MIXlY_RECV_FUN),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_IR_CMD_CODE,"0"],[mt.Msg.MIXLY_IR_ADDR_CODE,"1"],[mt.Msg.MIXLY_IR_RAW_CODE,"2"],[mt.Msg.MIXLY_IR_PULSE,"3"]]),"index"),this.setOutput(!0),this.setInputsInline(!0)}},Qd={init:function(){this.setColour(cd),this.appendDummyInput().appendField(mt.Msg.MIXlY_RECV_FUN).appendField(new mt.FieldDropdown([[mt.Msg.MILY_PAUSE,"True"],[mt.Msg.MIXLY_RECOVER,"False"]]),"en"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},zd={init:function(){this.setColour(cd),this.appendDummyInput().appendField(mt.Msg.MIXlY_RECV_FUN),this.appendDummyInput().appendField(mt.Msg.MIXLY_IR_WHETHER_RECV),this.setOutput(!0),this.setInputsInline(!0)}},qd={init:function(){this.setColour(cd),this.appendValueInput("time").appendField(mt.Msg.MIXlY_RECV_FUN).appendField(mt.Msg.MIXLY_IR_TIMEOUT),this.appendDummyInput().appendField(mt.Msg.MIXLY_MILLISECOND),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},jd={init:function(){this.setColour(cd),this.appendValueInput("PIN").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.MIXLY_IR_SEND).appendField(mt.Msg.MIXLY_PIN),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_TYPE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_IR_SEND_samsung1,"False"],[mt.Msg.MIXLY_IR_SEND_samsung2,"True"],[mt.Msg.MIXLY_TR_SEND_RC,"RC5"]]),"type").appendField(mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER),this.appendValueInput("power"),this.appendDummyInput().appendField(mt.Msg.MATH_QUYU_SYMBOL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Zd={init:function(){this.setColour(cd),this.appendDummyInput().appendField(mt.Msg.MIXLY_IR_SEND),this.appendValueInput("cmd").appendField(mt.Msg.MIXLY_IR_CMD_CODE),this.appendValueInput("addr").appendField(mt.Msg.MIXLY_IR_ADDR_CODE),this.appendValueInput("toggle").appendField(mt.Msg.MIXLY_CONTROL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_TRANSMIT_CONVEN_DATA)}},$d={init:function(){this.setColour(cd),this.appendDummyInput().appendField(mt.Msg.MIXLY_IR_SEND),this.appendValueInput("LIST").appendField(mt.Msg.MIXLY_IR_PULSE).setAlign(mt.inputs.Align.RIGHT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},tI={init:function(){this.setColour(cd),this.appendDummyInput().appendField(mt.Msg.MIXLY_IR_SEND),this.appendValueInput("raw").appendField(mt.Msg.MIXLY_IR_RAW_CODE).setAlign(mt.inputs.Align.RIGHT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},eI={init:function(){this.setColour(cd),this.appendDummyInput().appendField(mt.Msg.MIXLY_IR_TRANSMIT_DONE),this.setOutput(!0),this.setInputsInline(!0)}},iI={init:function(){this.setColour(cd),this.appendValueInput("VAR").appendField(mt.Msg.MSG.catBLE).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MSG.catEthernet_init+mt.Msg.MIXLY_MICROBIT_PY_STORAGE_AS+mt.Msg.MSG.catBLE_UART),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},nI={init:function(){this.setColour(cd),this.appendValueInput("VAR").appendField(mt.Msg.MSG.catBLE).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MSG.catEthernet_init+mt.Msg.MIXLY_MICROBIT_PY_STORAGE_AS+mt.Msg.MSG.catBLE_HID),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.HTML_NAME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},sI={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_ONEWIRE_SCAN+mt.Msg.MSG.catBLE),this.setOutput(!0),this.setInputsInline(!0)}},oI={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXGO_ESPNOW_MAC),this.setOutput(!0),this.setInputsInline(!0)}},_I={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_TEXT_JOIN+mt.Msg.MSG.catBLE).appendField(new mt.FieldDropdown([[mt.Msg.HTML_NAME,"name"],[mt.Msg.MIXLY_ETHERNET_MAC_ADDRESS,"mac"]]),"mode"),this.appendValueInput("data").setCheck(String),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},aI={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_DISCONNECT_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},pI={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MSG.catBLE+mt.Msg.MIXLY_SEND_DATA),this.appendValueInput("data").appendField(mt.Msg.HTML_BODY),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},uI={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MSG.catBLE+mt.Msg.MIXLY_EMQX_IS_CONNECT),this.setOutput(!0),this.setInputsInline(!0)}},rI={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var"),this.appendValueInput("METHOD").appendField(mt.Msg.MIXLY_MIXGO_ESPNOW_RECV).appendField(mt.Msg.CONTROLS_REPEAT_INPUT_DO+mt.Msg.MIXLY_ESP32_ONENET_SUB),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},lI={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXGO_ESPNOW_RECV),this.setOutput(!0),this.setInputsInline(!0)}},dI={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField(mt.Msg.MIXLY_BLE_HANDLE),this.appendValueInput("METHOD").appendField(mt.Msg.MIXLY_MIXGO_ESPNOW_RECV).appendField(mt.Msg.CONTROLS_REPEAT_INPUT_DO+mt.Msg.MIXLY_ESP32_ONENET_SUB),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},II={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField("ESPnow "+mt.Msg.MIXLY_SETUP),this.appendValueInput("CHNL").setCheck(Number).appendField(mt.Msg.MIXLY_MP_ESPNOW_CHANNEL),this.appendDummyInput("").appendField(mt.Msg.MIXLY_TX_POWER).appendField(new mt.FieldDropdown([["20","20"],["18","18"],["16","16"],["15","15"],["14","14"],["13","13"],["11","11"],["8","8"],["7","7"],["5","5"],["2","2"]]),"op"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},TI={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField("ESPnow "+mt.Msg.MIXLY_SETUP),this.appendValueInput("CHNL").setCheck(Number).appendField(mt.Msg.MIXLY_MP_ESPNOW_CHANNEL),this.appendValueInput("DB").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER),this.appendDummyInput().appendField("db"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MP_ESPNOW_INIT_TOOLTIP)}},hI={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField("ESPnow "),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXGO_ESPNOW_MAC),this.setOutput(!0),this.setInputsInline(!0)}},MI={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField("ESPnow "),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXGO_ESPNOW_INFO),this.setOutput(!0),this.setInputsInline(!0)}},mI={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField("ESPnow "),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXGO_ESPNOW_RECV),this.appendDummyInput().appendField(new mt.FieldDropdown([["("+mt.Msg.MIXLY_ETHERNET_MAC_ADDRESS+", "+mt.Msg.OLED_STRING+")",""],[mt.Msg.MIXLY_ETHERNET_MAC_ADDRESS,"[0]"],[mt.Msg.OLED_STRING,"[1]"]]),"mode"),this.setOutput(!0),this.setInputsInline(!0)}},OI={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField("ESPnow "),this.appendValueInput("mac").appendField(mt.Msg.MIXLY_MIXGO_ESPNOW_SEND_MAC),this.appendValueInput("content").appendField(mt.Msg.MIXLY_MIXGO_ESPNOW_SEND),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXGO_ESPNOW_SEND_TOOLTIP)}},EI={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField("ESPnow "),this.appendValueInput("METHOD").appendField(mt.Msg.MIXLY_EMQX_SET_METHOD),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},RI={init:function(){this.setColour(cd),this.appendDummyInput().appendField(mt.Msg.MIXLY_MP_ESPNOW_RADIO_INIT),this.appendValueInput("CHNL").setCheck(Number),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},cI={init:function(){this.setColour(cd),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING+mt.Msg.MIXLY_MP_ESPNOW_RADIO+mt.Msg.MIXLY_TX_POWER).appendField(new mt.FieldDropdown([["20","20"],["18","18"],["16","16"],["15","15"],["14","14"],["13","13"],["11","11"],["8","8"],["7","7"],["5","5"],["2","2"]]),"op"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},gI={init:function(){this.setColour(cd),this.appendDummyInput().appendField(mt.Msg.MIXLY_MP_ESPNOW_RADIO_INIT),this.appendValueInput("CHNL").setCheck(Number),this.appendValueInput("DB").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER),this.appendDummyInput().appendField("db"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MP_ESPNOW_RADIO_INIT_TOOLTIP)}},CI={init:function(){this.setColour(cd),this.appendDummyInput().appendField(mt.Msg.MIXLY_MP_ESPNOW_RADIO),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_ON,"True"],[mt.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_OFF,"False"]]),"on_off"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},SI={init:function(){this.setColour(cd),this.appendDummyInput().appendField(mt.Msg.MIXLY_MP_ESPNOW_RADIO).appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.appendValueInput("send").setCheck(String),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXGO_ESPNOW_SEND_TOOLTIP)}},AI={init:function(){this.setColour(cd),this.appendDummyInput().appendField(mt.Msg.MIXLY_MP_ESPNOW_RADIO).appendField(mt.Msg.MIXLY_MIXGO_ESPNOW_RECV),this.setOutput(!0),this.setInputsInline(!0)}},LI={init:function(){this.setColour(cd),this.appendDummyInput().appendField(mt.Msg.MIXLY_MP_ESPNOW_RADIO_RECEIVED_MSG),this.setOutput(!0),this.setInputsInline(!0)}},NI={init:function(){this.setColour(cd),this.appendDummyInput().appendField(mt.Msg.MIXLY_MP_ESPNOW_RADIO_MSG_RECEIVED),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!1),this.setNextStatement(!1)}},DI={init:function(){this.setColour(cd),this.appendDummyInput().appendField(mt.Msg.MIXLY_MP_ESPNOW_RADIO_MSG_RECEIVED_CERTAIN).appendField('"').appendField(new mt.FieldTextInput("on"),"msg").appendField('"'),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!1),this.setNextStatement(!1)}},fI={init:function(){this.setColour(cd),this.appendDummyInput().appendField(mt.Msg.MIXLY_MP_ESPNOW_RADIO_MSG_RECEIVED),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!1),this.setNextStatement(!1)}},FI={init:function(){this.setColour(cd),this.appendDummyInput().appendField(mt.Msg.MIXLY_MP_ESPNOW_RADIO_MSG_RECEIVED_CERTAIN).appendField('"').appendField(new mt.FieldTextInput("on"),"msg").appendField('"'),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!1),this.setNextStatement(!1)}},PI={init:function(){this.setColour(cd),this.appendValueInput("SUB").appendField("Lora"+mt.Msg.MIXLY_SETUP).setCheck("var"),this.appendValueInput("SPISUB").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("frequency").appendField(mt.Msg.MIXLY_FREQUENCY),this.appendValueInput("rate").appendField(mt.Msg.MIXLY_CODE_RATE),this.appendValueInput("factor").appendField(mt.Msg.MIXLY_SPREADING_FACTOR),this.appendValueInput("power").appendField(mt.Msg.MIXLY_TX_POWER),this.appendDummyInput().appendField(mt.Msg.MIXLY_SIGNAL_BANDWIDTH).appendField(new mt.FieldDropdown([["7800","7800"],["10400","10400"],["15600","15600"],["20800","20800"],["31250","31250"],["41700","41700"],["62500","62500"],["125000","125000"],["250000","250000"],["500000","500000"]]),"bandwidth"),this.setFieldValue("125000","bandwidth"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_LORA_INIT_TOOLTIP)}},vI={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField("Lora "),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_PACKAGE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_SIGNAL_STRENGTH,"packet_rssi"],[mt.Msg.MIXLY_SIGNAL_NOISE_RATE,"packet_snr"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},YI={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField("Lora "),this.appendDummyInput().appendField(mt.Msg.MIXLY_SEND_DATA),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},xI={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField("Lora "),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXGO_ESPNOW_RECV),this.setOutput(!0,String),this.setInputsInline(!0)}},XI={init:function(){this.setColour(cd),this.appendValueInput("DOMAIN").appendField(mt.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(mt.Msg.blockpy_REQUESTS_GET).appendField(new mt.FieldTextInput("response"),"VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.blockpy_REQUESTS_GET_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},bI={init:function(){this.appendValueInput("VAL");var t=[[mt.Msg.blockpy_REQUESTS_GET_ATTR_HEADER,"headers"],[mt.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE,"status_code"],[mt.Msg.blockpy_REQUESTS_GET_ATTR_TEXT,"text"],[mt.Msg.blockpy_REQUESTS_GET_ATTR_COOKIES,"cookies"],[mt.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT,"content"]];this.setColour(cd),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_GET).appendField(new mt.FieldDropdown(t),"ATTR"),this.setInputsInline(!0),this.setOutput(!0,String);var e=this;this.setTooltip((function(){var t=e.getFieldValue("DIR");return{clear:mt.Msg.MIXLY_TOOLTIP_TURTEL_CLEAR,reset:mt.Msg.MIXLY_TOOLTIP_TURTEL_RESET,home:mt.Msg.MIXLY_TOOLTIP_TURTEL_HOME}[t]}))}},yI={init:function(){this.appendValueInput("VAR").appendField(mt.Msg.DISPLAY_IMAGE_LET2).setCheck(String);this.setColour(cd),this.appendDummyInput("").appendField(mt.Msg.blockpy_CONDUCT).appendField(new mt.FieldDropdown([["get","get"],["post","post"],["put","put"],["delete","delete"],["head","head"],["option","option"]]),"DIR"),this.appendDummyInput("").appendField(mt.Msg.blockpy_REQUESTS),this.setOutput(!0),this.setInputsInline(!0)}},VI=Sd,BI=Ad,GI=Ld,UI=Nd,wI=Dd,kI=fd,HI=Fd,WI=Pd,KI=vd,JI=Yd,QI=xd,zI=Xd,qI=bd,jI=yd,ZI=Vd,$I=120;({init:function(){this.setColour($I),this.appendValueInput("BOOL").setCheck([Boolean,Number]).appendField(mt.Msg.LANG_CONTROLS_WHILEUNTIL_TITLE_REPEAT).appendField(new mt.FieldDropdown(this.OPERATORS),"MODE"),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return{WHILE:mt.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_WHILE,UNTIL:mt.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL}[e]}))}}).OPERATORS=[[mt.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"WHILE"],[mt.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"UNTIL"]];({init:function(){this.setColour($I);var t=new mt.FieldDropdown(this.OPERATORS);this.appendDummyInput().appendField(t,"FLOW").appendField(mt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_INPUT_OFLOOP),this.setPreviousStatement(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("FLOW");return{BREAK:mt.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK,CONTINUE:mt.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE}[t]}))},onchange:function(){if(this.workspace){var t=!1,e=this;do{if("controls_repeat"==e.type||"controls_for"==e.type||"controls_forEach"==e.type||"controls_repeat_ext"==e.type||"controls_whileUntil"==e.type){t=!0;break}e=e.getSurroundParent()}while(e);t?this.setWarningText(null):this.setWarningText(mt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_WARNING)}}}).OPERATORS=[[mt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK,"BREAK"],[mt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE,"CONTINUE"]];const tT="5BA5A5",eT={init:function(){this.setColour(tT),this.appendValueInput("I2CSUB").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new mt.FieldDropdown([["32x12 Matrix","32x12 Matrix"],["16x8 Matrix","16x8 Matrix"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},iT={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(tT),this.appendValueInput("data").setCheck([String,"esp32_image","List","Tuple"]).appendField(mt.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.OLED_BITMAP_OR_STRING)}},nT={init:function(){this.setColour(tT),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.OLED_DRAWSTR),this.appendValueInput("space").setCheck(Number).appendField(mt.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendDummyInput("").appendField(mt.Msg.TEXT_CENTER).appendField(new mt.FieldDropdown([[mt.Msg.MICROPYTHON_DISPLAY_YES,"True"],[mt.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"center"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY)}},sT={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(tT),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},oT={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(tT),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.appendValueInput("space").setCheck(Number).appendField(mt.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SCROLL_IMAGE_OR_STRING_DELAY)}},_T={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(tT),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},aT={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(tT),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},pT={init:function(){var t=[[mt.Msg.MIXLY_UP,"shift_up"],[mt.Msg.MIXLY_DOWN,"shift_down"],[mt.Msg.MIXLY_LEFT,"shift_left"],[mt.Msg.MIXLY_RIGHT,"shift_right"]];this.appendValueInput("SUB").setCheck("var"),this.setColour(tT),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.appendDummyInput("").appendField(mt.Msg.DISPLAY_IMAGE_LET),this.appendDummyInput("").appendField(mt.Msg.DISPLAY_IMAGE_LET2).appendField(new mt.FieldDropdown(t),"OP"),this.appendValueInput("val").appendField(mt.Msg.DISPLAY_IMAGE_SHIFT).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.DISPLAY_IMAGE_UNIT);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP"),i=mt.Msg.DISPLAY_IMAGE_LET,n=mt.Msg.DISPLAY_IMAGE_LET2,s=mt.Msg.DISPLAY_IMAGE_LET3;return i+n+{up:mt.Msg.MIXLY_UP,down:mt.Msg.MIXLY_DOWN,left:mt.Msg.MIXLY_LEFT,right:mt.Msg.MIXLY_RIGHT}[t]+s}))}},uT={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(tT),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_GET_POINT),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_ESP32_JS_MONITOR_BRIGHTNESS)}},rT={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(tT),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_SET_BRIGHTNESS).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendValueInput("STAT").setCheck([Number,Boolean]),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL)}},lT={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(tT),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS)}},dT={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(tT),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS+" 0.0-1.0")}},IT={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(tT),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Clear_display),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Clear_display)}},TT={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(tT),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Built_in_image1).appendField(new mt.FieldDropdown([["HEART","HEART"],["HEART_SMALL","HEART_SMALL"],["HAPPY","HAPPY"],["SAD","SAD"],["SMILE","SMILE"],["SILLY","SILLY"],["FABULOUS","FABULOUS"],["SURPRISED","SURPRISED"],["ASLEEP","ASLEEP"],["ANGRY","ANGRY"],["CONFUSED","CONFUSED"],["NO","NO"],["YES","YES"]]),"image"),this.setOutput(!0,"esp32_image"),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Clear_display)}},hT={init:function(){var t=[[mt.Msg.MICROBIT_DISPLAY_UNION,"add"],[mt.Msg.MICROBIT_DISPLAY_MINUS,"sub"]];this.appendValueInput("SUB").setCheck("var"),this.setColour(tT),this.setOutput(!0,"esp32_image"),this.appendValueInput("A").appendField(mt.Msg.MICROBIT_DISPLAY_MERGE_SHAPE),this.appendValueInput("B").appendField(new mt.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{"+":mt.Msg.MIXLY_MICROBIT_image_add,"-":mt.Msg.MIXLY_MICROBIT_image_reduce}[t]}))}},MT={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(tT),this.appendValueInput("A").setCheck("esp32_image").appendField(mt.Msg.MIXLY_MICROBIT_Invert_image1),this.setInputsInline(!0),this.setOutput(!0,"esp32_image")}},mT={init:function(){this.setColour(tT),this.appendValueInput("I2CSUB").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendValueInput("row").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.LISTS_SET_INDEX_INPUT_TO+"OLED").setCheck(Number),this.appendValueInput("column").appendField("X").setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip()}},OT={init:function(){this.appendValueInput("VAR").appendField(mt.Msg.OLED).setCheck("var"),this.appendValueInput("Text_line1","String").setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.OLEDDISPLAY+mt.Msg.line1),this.appendValueInput("Text_line2","String").setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.line2),this.appendValueInput("Text_line3","String").setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.line3),this.appendValueInput("Text_line4","String").setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.line4),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(tT),this.setTooltip(mt.Msg.MIXLY_DF_LCD+mt.Msg.OLEDDISPLAY+mt.Msg.MIXLY_MICROBIT_TYPE_STRING)}},ET={init:function(){var t=[[mt.Msg.MIXLY_HEIGHT,"height"],[mt.Msg.MIXLY_WIDTH,"width"]];this.setColour(tT),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+mt.Msg.MIXLY_MICROBIT_IMAGE),this.appendValueInput("VAR").setCheck("esp32_image"),this.appendDummyInput("").appendField(new mt.FieldDropdown(t),"OP"),this.setInputsInline(!0),this.setOutput(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+mt.Msg.MIXLY_MICROBIT_IMAGE+{height:mt.Msg.MIXLY_HEIGHT,width:mt.Msg.MIXLY_WIDTH}[t]}))}},RT={init:function(){var t=[[mt.Msg.MIXLY_4DIGITDISPLAY_ON,"1"],[mt.Msg.MIXLY_4DIGITDISPLAY_OFF,"0"]];this.setColour(tT),this.appendValueInput("VAR").appendField(mt.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RECT).appendField(new mt.FieldDropdown(t),"OP"),this.jsonInit({message0:mt.Msg.MIXLY_MICROBIT_SHOW_RECT,args0:[{check:Number,type:"input_value",name:"x"},{check:Number,type:"input_value",name:"y"},{check:Number,type:"input_value",name:"width"},{check:Number,type:"input_value",name:"height"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"fill"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_OLED_RECT)}},cT={init:function(){this.setColour(tT),this.appendValueInput("VAR").appendField(mt.Msg.OLED).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_DISPLAY_DRAW).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_DISPLAY_RLINE,"hline"],[mt.Msg.MIXLY_DISPLAY_VLINE,"vline"]]),"direction"),this.jsonInit({message0:mt.Msg.MIXLY_MICROBIT_SHOW_LINE,args0:[{check:Number,type:"input_value",name:"x"},{check:Number,type:"input_value",name:"y"},{check:Number,type:"input_value",name:"length"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_OLED_LINE)}},gT={init:function(){this.setColour(tT),this.appendValueInput("VAR").appendField(mt.Msg.OLED).setCheck("var"),this.jsonInit({message0:mt.Msg.MIXLY_MICROBIT_SHOW_LINE_ARBITRARILY,args0:[{check:Number,type:"input_value",name:"x1"},{check:Number,type:"input_value",name:"y1"},{check:Number,type:"input_value",name:"x2"},{check:Number,type:"input_value",name:"y2"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_OLED_LINE_ARBIT)}},CT={init:function(){this.setColour(tT),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_MONITOR_GET_SCREEN_IMAGE),this.setInputsInline(!0),this.setOutput(!0,"esp32_image"),this.setTooltip(mt.Msg.MIXLY_ESP32_MONITOR_GET_SCREEN_IMAGE_TOOLTIP)}},ST={init:function(){this.setColour(tT),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_SET_BLINK_RATE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_JS_MONITOR_SET_BLINK_RATE)}},AT={init:function(){this.setColour(tT),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("_LED_").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_NUM),this.appendDummyInput("").appendField(mt.Msg.LISTS_SET_INDEX_SET+mt.Msg.MIXLY_MICROBIT_PY_STORAGE_AS).appendField(new mt.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),"FIELDNAME"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B)}},LT={init:function(){this.setColour(tT),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_ESP32_ON,"ON"],[mt.Msg.MIXLY_ESP32_OFF,"OFF"]]),"ONOFF"),this.setOutput(!0,Boolean),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW)}},NT={init:function(){this.setColour(tT),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LCD_STAT_CLEAR,"0"],[mt.Msg.MIXLY_HANDBIT_DISLPAY_OLED_FILL,"1"]]),"key"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i={0:mt.Msg.MIXLY_LCD_STAT_CLEAR,1:mt.Msg.MIXLY_HANDBIT_DISLPAY_OLED_FILL};return mt.Msg.MIXLY_DF_LCD+i[e]}))}},DT={init:function(){this.setColour(tT),this.setOutput(!0,"Tuple"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_DISPLAY_ANIMATE).appendField(new mt.FieldDropdown([["ALL_CLOCKS","ALL_CLOCKS"],["ALL_ARROWS","ALL_ARROWS"]]),"ANIMATION")}},fT={init:function(){var t=[[mt.Msg.MIXLY_4DIGITDISPLAY_ON,"1"],[mt.Msg.MIXLY_4DIGITDISPLAY_OFF,"0"]];this.setColour(tT),this.appendValueInput("VAR").appendField(mt.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MIXPY_TURTLE_DRAW_CIRCLE).appendField(new mt.FieldDropdown(t),"OP"),this.jsonInit({message0:mt.Msg.MIXLY_HANBIT_SHOW_CIRCLE,args0:[{check:Number,type:"input_value",name:"x"},{check:Number,type:"input_value",name:"y"},{check:Number,type:"input_value",name:"r"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"fill"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_MIXPY_TURTLE_DRAW_CIRCLE)}},FT={init:function(){var t=[[mt.Msg.MIXLY_4DIGITDISPLAY_ON,"1"],[mt.Msg.MIXLY_4DIGITDISPLAY_OFF,"0"]];this.setColour(tT),this.appendValueInput("VAR").appendField(mt.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_DISPLAY_DRAW+mt.Msg.MIXLY_HANBIT_DRAW_TRIANGLE).appendField(new mt.FieldDropdown(t),"OP"),this.jsonInit({message0:mt.Msg.MIXLY_HANBIT_SHOW_triangle,args0:[{check:Number,type:"input_value",name:"x0"},{check:Number,type:"input_value",name:"y0"},{check:Number,type:"input_value",name:"x1"},{check:Number,type:"input_value",name:"y1"},{check:Number,type:"input_value",name:"x2"},{check:Number,type:"input_value",name:"y2"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"fill"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_DISPLAY_DRAW+mt.Msg.MIXLY_HANBIT_DRAW_TRIANGLE)}},PT={init:function(){this.setColour("#555555"),this.appendDummyInput("").appendField(mt.Msg.MIXGO_ONBOARDDISPLAY_HELP),this.setInputsInline(!0),this.setTooltip("")}},vT={init:function(){this.setColour(tT),this.appendValueInput("VAR").appendField(mt.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.OLED_BITMAP),this.appendValueInput("START_X",Number).appendField(mt.Msg.OLED_START_X).setCheck(Number),this.appendValueInput("START_Y",Number).appendField(mt.Msg.OLED_START_Y).setCheck(Number),this.appendValueInput("bitmap_name",String).appendField(mt.Msg.OLED_BITMAP_NAME),this.appendValueInput("WIDTH",Number).appendField(mt.Msg.MIXLY_WIDTH).setCheck(Number),this.appendValueInput("HEIGHT",Number).appendField(mt.Msg.MIXLY_HEIGHT).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.OLED_SHOW_BMP_TOOLTIP)}},YT={init:function(){this.setColour(tT),this.appendValueInput("VAR").appendField(mt.Msg.OLED),this.appendDummyInput("").appendField(mt.Msg.OLED_DRAWPIXEL),this.appendValueInput("POS_X").appendField(mt.Msg.OLED_POSX),this.appendValueInput("POS_Y").appendField(mt.Msg.OLED_POSY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.OLED_DRAW_PIXE_TOOLTIP)}},xT={init:function(){this.setColour(tT),this.appendValueInput("I2CSUB").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new mt.FieldDropdown([["TM1650","TM1650"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return mt.Msg.MIXLY_ESP32_SENSOR_USE_I2C_TOOLTIP+{TM1650:"TM1650"}[e]}))}},XT={init:function(){this.setColour(tT),this.appendDummyInput().appendField(mt.Msg.MIXLY_4DIGITDISPLAY).appendField(new mt.FieldDropdown([["TM1650","tm1650"]]),"TYPE"),this.appendValueInput("VAR"),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_ON,"on"],[mt.Msg.MIXLY_OFF,"off"],[mt.Msg.MIXLY_LCD_STAT_CLEAR,"clear"]]),"STAT"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_4digitdisplay_power)}},bT={init:function(){this.setColour(tT),this.appendDummyInput().appendField(mt.Msg.MIXLY_4DIGITDISPLAY).appendField(new mt.FieldDropdown([["TM1650","tm1650"]]),"TYPE"),this.appendValueInput("VAR"),this.appendValueInput("VALUE").setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SHOW_NUMBER),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},yT={init:function(){this.setColour(tT),this.appendDummyInput().appendField(mt.Msg.MIXLY_4DIGITDISPLAY).appendField(new mt.FieldDropdown([["TM1650","tm1650"]]),"TYPE"),this.appendValueInput("VAR"),this.appendValueInput("NO").appendField(mt.Msg.MIXLY_4DIGITDISPLAY_NOMBER1),this.appendValueInput("STAT").appendField(mt.Msg.MIXLY_4DIGITDISPLAY_NOMBER2+mt.Msg.MIXLY_4DIGITDISPLAY_DOT),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_4digitdisplay_showDot)}},VT={init:function(){this.setColour(tT),this.appendDummyInput().appendField(mt.Msg.MIXLY_4DIGITDISPLAY).appendField(new mt.FieldDropdown([["TM1650","tm1650"]]),"TYPE"),this.appendValueInput("VAR"),this.appendValueInput("VALUE").setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SET_BRIGHTNESS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_4DIGITDISPLAY_4DIGITDISPLAY_BRIGHTNESS_TOOLTIP)}},BT={init:function(){this.setColour(tT),this.appendValueInput("SPISUB").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINDC").appendField("DC"),this.appendValueInput("PINCS").appendField("CS"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.LISTS_SET_INDEX_INPUT_TO+mt.Msg.MSG.catTFT),this.appendValueInput("WIDTH").appendField(mt.Msg.MIXLY_WIDTH).setCheck(Number),this.appendValueInput("HEIGHT").appendField(mt.Msg.MIXLY_HEIGHT).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.blockpy_turtle_rotate).appendField(new mt.FieldDropdown([[mt.Msg.MICROPYTHON_DISPLAY_NO,"0"],[mt.Msg.ANTI_CLOCKWISE+"90°","1"],[mt.Msg.ANTI_CLOCKWISE+"180°","2"],[mt.Msg.ANTI_CLOCKWISE+"270°","3"]]),"rotate"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},GT={init:function(){this.setColour(tT),this.appendValueInput("SUB").appendField(mt.Msg.MSG.catTFT),this.appendValueInput("data").appendField(mt.Msg.OLED_BITMAP),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_NUMBER),this.appendValueInput("VAR").appendField(mt.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.OLED_BITMAP_OR_STRING)}},UT={init:function(){this.setColour(tT);let t=new mt.FieldColour("#f00",null,{colourOptions:["#f00","#000"],columns:2});this.appendDummyInput("").setAlign(mt.inputs.Align.RIGHT).appendField(t,"COLOR"),this.setInputsInline(!0),this.setOutput(!0,String)}},wT={init:function(){this.setColour(tT),this.appendValueInput("SUB").appendField(mt.Msg.MSG.catTFT),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.OLED_DRAWSTR),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(mt.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendDummyInput("").appendField(mt.Msg.TEXT_CENTER).appendField(new mt.FieldDropdown([[mt.Msg.MICROPYTHON_DISPLAY_YES,"True"],[mt.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"center"),this.appendValueInput("VAR").appendField(mt.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY)}},kT={init:function(){this.setColour(tT),this.appendValueInput("SUB").appendField(mt.Msg.MSG.catTFT),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(mt.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.appendValueInput("VAR").appendField(mt.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SCROLL_IMAGE_OR_STRING_DELAY)}},HT={init:function(){this.setColour(tT),this.appendValueInput("SUB").appendField(mt.Msg.MSG.catTFT),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.appendValueInput("VAR").appendField(mt.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},WT={init:function(){this.setColour(tT),this.appendValueInput("SUB").setCheck("var").appendField(mt.Msg.MSG.catTFT),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LCD_STAT_CLEAR,"BLACK"],[mt.Msg.MIXLY_HANDBIT_DISLPAY_OLED_FILL,"WHITE"]]),"key"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i={0:mt.Msg.MIXLY_LCD_STAT_CLEAR,1:mt.Msg.MIXLY_HANDBIT_DISLPAY_OLED_FILL};return mt.Msg.MIXLY_DF_LCD+i[e]}))}},KT={init:function(){this.setColour(tT),this.appendValueInput("SUB").appendField(mt.Msg.MSG.catTFT).setCheck("var"),this.jsonInit({message0:mt.Msg.MIXLY_MICROBIT_SHOW_LINE_ARBITRARILY,args0:[{check:Number,type:"input_value",name:"x1"},{check:Number,type:"input_value",name:"y1"},{check:Number,type:"input_value",name:"x2"},{check:Number,type:"input_value",name:"y2"}]}),this.appendValueInput("VAR").appendField(mt.Msg.HTML_COLOUR),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_OLED_LINE_ARBIT)}},JT={init:function(){this.setColour(tT),this.appendValueInput("I2CSUB").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new mt.FieldDropdown([["LCD1602","16"],["LCD2004","20"]]),"key"),this.appendValueInput("ADDR").setCheck(Number).appendField(mt.Msg.MQTT_SERVER_ADD),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return mt.Msg.MIXLY_SETUP+{16:"LCD1602",20:"LCD2004"}[e]}))}},QT={init:function(){this.setColour(tT),this.appendValueInput("SUB").appendField(mt.Msg.MSG.catLCD),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.OLED_DRAWSTR),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.array2_cols),this.appendValueInput("y").setCheck(Number).appendField(mt.Msg.array2_rows),this.appendDummyInput("").appendField(mt.Msg.TEXT_CENTER).appendField(new mt.FieldDropdown([[mt.Msg.MICROPYTHON_DISPLAY_YES,"True"],[mt.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"center"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY)}},zT={init:function(){this.setColour(tT),this.appendValueInput("SUB").appendField(mt.Msg.MSG.catLCD),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_SERIAL_PRINT+mt.Msg.OLED_DRAWSTR),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.array2_cols),this.appendValueInput("y").setCheck(Number).appendField(mt.Msg.array2_rows),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},qT={init:function(){this.setColour(tT),this.appendValueInput("SUB").setCheck("var").appendField(mt.Msg.MSG.catLCD),this.appendDummyInput().appendField(mt.Msg.TFT_Brightness).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_Turn_on_display,"1"],[mt.Msg.MIXLY_MICROBIT_Turn_off_display,"0"]]),"key"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i={1:mt.Msg.MIXLY_MICROBIT_Turn_on_display,0:mt.Msg.MIXLY_MICROBIT_Turn_off_display};return mt.Msg.MSG.catLCD+mt.Msg.TFT_Brightness+i[e]}))}},jT={init:function(){this.appendValueInput("SUB").setCheck("var").appendField(mt.Msg.MSG.catLCD),this.setColour(tT),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Clear_display),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Clear_display)}},ZT={init:function(){this.setColour(tT),this.appendValueInput("I2CSUB").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.LISTS_SET_INDEX_INPUT_TO+"oled128x64"),this.appendValueInput("ADDR").setCheck(Number).appendField(mt.Msg.MQTT_SERVER_ADD),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return mt.Msg.MIXLY_SETUP+{16:"LCD1602",20:"LCD2004"}[e]}))}},$T={init:function(){this.setColour(tT),this.appendValueInput("SUB").setCheck("var").appendField(mt.Msg.MSG.catOLED),this.appendValueInput("data").appendField(mt.Msg.OLED_BITMAP),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.OLED_BITMAP_OR_STRING)}},th={init:function(){this.setColour(tT),this.appendValueInput("SUB").setCheck("var").appendField(mt.Msg.MSG.catOLED),this.appendValueInput("data").appendField(mt.Msg.OLED_BITMAP),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_NUMBER),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.OLED_BITMAP_OR_STRING)}},eh={init:function(){this.setColour(tT),this.appendValueInput("SUB").setCheck("var").appendField(mt.Msg.MSG.catOLED),this.appendValueInput("data").setCheck([String,"esp32_image","List","Tuple"]).appendField(mt.Msg.OLED_DRAWSTR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.OLED_BITMAP_OR_STRING)}},ih={init:function(){this.setColour(tT),this.appendValueInput("SUB").setCheck("var").appendField(mt.Msg.MSG.catOLED),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.OLED_DRAWSTR),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(mt.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendDummyInput("").appendField(mt.Msg.TEXT_CENTER).appendField(new mt.FieldDropdown([[mt.Msg.MICROPYTHON_DISPLAY_YES,"True"],[mt.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"center"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY)}},nh={init:function(){this.setColour(tT),this.appendValueInput("SUB").setCheck("var").appendField(mt.Msg.MSG.catOLED),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},sh={init:function(){this.setColour(tT),this.appendValueInput("SUB").setCheck("var").appendField(mt.Msg.MSG.catOLED),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(mt.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SCROLL_IMAGE_OR_STRING_DELAY)}},oh={init:function(){this.setColour(tT),this.appendValueInput("SUB").setCheck("var").appendField(mt.Msg.MSG.catOLED),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},_h={init:function(){this.setColour(tT),this.appendValueInput("SUB").setCheck("var").appendField(mt.Msg.MSG.catOLED),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},ah={init:function(){var t=[[mt.Msg.MIXLY_UP,"shift_up"],[mt.Msg.MIXLY_DOWN,"shift_down"],[mt.Msg.MIXLY_LEFT,"shift_left"],[mt.Msg.MIXLY_RIGHT,"shift_right"]];this.setColour(tT),this.appendValueInput("SUB").setCheck("var").appendField(mt.Msg.MSG.catOLED),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.appendDummyInput("").appendField(mt.Msg.DISPLAY_IMAGE_LET),this.appendDummyInput("").appendField(mt.Msg.DISPLAY_IMAGE_LET2).appendField(new mt.FieldDropdown(t),"OP"),this.appendValueInput("val").appendField(mt.Msg.DISPLAY_IMAGE_SHIFT).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.DISPLAY_IMAGE_UNIT);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP"),i=mt.Msg.DISPLAY_IMAGE_LET,n=mt.Msg.DISPLAY_IMAGE_LET2,s=mt.Msg.DISPLAY_IMAGE_LET3;return i+n+{up:mt.Msg.MIXLY_UP,down:mt.Msg.MIXLY_DOWN,left:mt.Msg.MIXLY_LEFT,right:mt.Msg.MIXLY_RIGHT}[t]+s}))}},ph={init:function(){this.setColour(tT),this.appendValueInput("SUB").setCheck("var").appendField(mt.Msg.MSG.catOLED),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_GET_POINT),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_ESP32_JS_MONITOR_BRIGHTNESS)}},uh={init:function(){this.setColour(tT),this.appendValueInput("SUB").setCheck("var").appendField(mt.Msg.MSG.catOLED),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_SET_BRIGHTNESS).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendValueInput("STAT").setCheck([Number,Boolean]),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL)}},rh={init:function(){this.setColour(tT),this.appendValueInput("SUB").setCheck("var").appendField(mt.Msg.MSG.catOLED),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Clear_display),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Clear_display)}},lh={init:function(){this.jsonInit({colour:tT,args0:[{name:"SUB",type:"input_value"},{name:"state",options:[[mt.Msg.MPYTHON_DISPLAY_MODE_1,"1"],[mt.Msg.MPYTHON_DISPLAY_MODE_0,"0"]],type:"field_dropdown"},{name:"shape",options:[[mt.Msg.MPYTHON_DISPLAY_HOLLOW,"rect"],[mt.Msg.MPYTHON_DISPLAY_SOLID,"fill_rect"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"w",type:"input_value"},{name:"h",type:"input_value"}],inputsInline:!0,helpUrl:mt.Msg.mpython_HELPURL,tooltip:mt.Msg.MPYTHON_DISPLAY_SHAPE_RECT_TOOLTIP,message0:mt.Msg.MPYTHON_DISPLAY_SHAPE_RECT_MESSAGE1,nextStatement:null,previousStatement:null})}},dh={init:function(){this.jsonInit({colour:tT,args0:[{name:"SUB",type:"input_value"},{name:"state",options:[[mt.Msg.MPYTHON_DISPLAY_MODE_1,"1"],[mt.Msg.MPYTHON_DISPLAY_MODE_0,"0"]],type:"field_dropdown"},{name:"dir_h_v",options:[[mt.Msg.mpython_vertical,"0"],[mt.Msg.mpython_horizontal,"1"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"length",type:"input_value"}],inputsInline:!0,helpUrl:mt.Msg.mpython_HELPURL,tooltip:mt.Msg.MPYTHON_DISPLAY_HVLINE_TOOLTIP,message0:mt.Msg.MPYTHON_DISPLAY_HVLINE_MESSAGE1,nextStatement:null,previousStatement:null})}},Ih={init:function(){this.jsonInit({colour:tT,args0:[{name:"SUB",type:"input_value"},{name:"state",options:[[mt.Msg.mpython_display_hline_1,"1"],[mt.Msg.mpython_display_hline_0,"0"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x1",type:"input_value"},{name:"y1",type:"input_value"},{name:"x2",type:"input_value"},{name:"y2",type:"input_value"}],inputsInline:!0,helpUrl:mt.Msg.mpython_HELPURL,tooltip:mt.Msg.mpython_display_line_TOOLTIP,message0:mt.Msg.mpython_display_line_MESSAGE1,nextStatement:null,previousStatement:null})}},Th="#569A98",hh={init:function(){this.setColour(Th),this.appendValueInput("data").setCheck([String,"esp32_image","List","Tuple"]).appendField(mt.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),"micropython:esp32:mixbot"==Ot.Boards.getSelectedBoardKey()&&this.setTooltip(mt.Msg.MIXLY_MIXBOT_SHOW_SCROLL_STRING_TOOLTIP)}},Mh={init:function(){this.setColour(Th),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.OLED_DRAWSTR),this.appendValueInput("space").setCheck(Number).appendField(mt.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendDummyInput("").appendField(mt.Msg.TEXT_CENTER).appendField(new mt.FieldDropdown([[mt.Msg.MICROPYTHON_DISPLAY_YES,"True"],[mt.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"center"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},mh={init:function(){this.setColour(Th),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Oh={init:function(){this.setColour(Th),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.appendValueInput("space").setCheck(Number).appendField(mt.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Eh={init:function(){this.setColour(Th),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Rh={init:function(){this.setColour(Th),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},ch={init:function(){this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<12;t++){let e=this.appendDummyInput();for(let i=0;i<32;i++)e.appendField(new mt.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.setOutput(!0),this.setColour(Th),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Create_image1)}},gh={init:function(){this.jsonInit({colour:Th,args0:[{name:"image",options:[["HEART","HEART"],["HEART_SMALL","HEART_SMALL"],["HAPPY","HAPPY"],["SAD","SAD"],["SMILE","SMILE"],["SILLY","SILLY"],["FABULOUS","FABULOUS"],["SURPRISED","SURPRISED"],["ASLEEP","ASLEEP"],["ANGRY","ANGRY"],["CONFUSED","CONFUSED"],["NO","NO"],["YES","YES"]],type:"field_dropdown"}],output:["esp32_image","List"],helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/image.html#attributes",tooltip:mt.Msg.MIXLY_MICROBIT_Built_in_image1,message0:mt.Msg.MIXLY_MICROBIT_Built_in_image})}},Ch={init:function(){this.jsonInit({colour:Th,args0:[{name:"image",options:[["HEART","HEART"],["HEART_SMALL","HEART_SMALL"],["HAPPY","HAPPY"],["SAD","SAD"],["SMILE","SMILE"],["SILLY","SILLY"],["FABULOUS","FABULOUS"],["SURPRISED","SURPRISED"],["ASLEEP","ASLEEP"],["ANGRY","ANGRY"],["CONFUSED","CONFUSED"],["NO","NO"],["YES","YES"],["LEFT_ARROW","LEFT_ARROW"],["RIGHT_ARROW","RIGHT_ARROW"],["DRESS","DRESS"],["TRANSFORMERS","TRANSFORMERS"],["SCISSORS","SCISSORS"],["EXIT","EXIT"],["TREE","TREE"],["PACMAN","PACMAN"],["TARGET","TARGET"],["TSHIRT","TSHIRT"],["ROLLERSKATE","ROLLERSKATE"],["DUCK","DUCK"],["HOUSE","HOUSE"],["TORTOISE","TORTOISE"],["BUTTERFLY","BUTTERFLY"],["STICKFIGURE","STICKFIGURE"],["GHOST","GHOST"],["PITCHFORK","PITCHFORK"],["MUSIC_QUAVERS","MUSIC_QUAVERS"],["MUSIC_QUAVER","MUSIC_QUAVER"],["MUSIC_CROTCHET","MUSIC_CROTCHET"],["COW","COW"],["RABBIT","RABBIT"],["SQUARE_SMALL","SQUARE_SMALL"],["SQUARE","SQUARE"],["DIAMOND_SMALL","DIAMOND_SMALL"],["DIAMOND","DIAMOND"],["CHESSBOARD","CHESSBOARD"],["TRIANGLE_LEFT","TRIANGLE_LEFT"],["TRIANGLE","TRIANGLE"],["SNAKE","SNAKE"],["UMBRELLA","UMBRELLA"],["SKULL","SKULL"],["GIRAFFE","GIRAFFE"],["SWORD","SWORD"]],type:"field_dropdown"}],output:["esp32_image","List"],helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/image.html#attributes",tooltip:mt.Msg.MIXLY_MICROBIT_Built_in_image1,message0:mt.Msg.MIXLY_MICROBIT_Built_in_image})}},Sh={init:function(){var t=[[mt.Msg.MICROBIT_DISPLAY_UNION,"add"],[mt.Msg.MICROBIT_DISPLAY_MINUS,"sub"]];this.setColour(Th),this.setOutput(!0,"esp32_image"),this.appendValueInput("A").appendField(mt.Msg.MICROBIT_DISPLAY_MERGE_SHAPE),this.appendValueInput("B").appendField(new mt.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{"+":mt.Msg.MIXLY_MICROBIT_image_add,"-":mt.Msg.MIXLY_MICROBIT_image_reduce}[t]}))}},Ah={init:function(){this.setColour(Th),this.appendValueInput("A").setCheck("esp32_image").appendField(mt.Msg.MIXLY_MICROBIT_Invert_image1),this.setInputsInline(!0),this.setOutput(!0,"esp32_image")}},Lh={init:function(){var t=[[mt.Msg.MIXLY_UP,"shift_up"],[mt.Msg.MIXLY_DOWN,"shift_down"],[mt.Msg.MIXLY_LEFT,"shift_left"],[mt.Msg.MIXLY_RIGHT,"shift_right"]];this.setColour(Th),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.appendDummyInput("").appendField(mt.Msg.DISPLAY_IMAGE_LET),this.appendDummyInput("").appendField(mt.Msg.DISPLAY_IMAGE_LET2).appendField(new mt.FieldDropdown(t),"OP"),this.appendValueInput("val").appendField(mt.Msg.DISPLAY_IMAGE_SHIFT).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.DISPLAY_IMAGE_UNIT);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP"),i=mt.Msg.DISPLAY_IMAGE_LET,n=mt.Msg.DISPLAY_IMAGE_LET2,s=mt.Msg.DISPLAY_IMAGE_LET3;return i+n+{shift_up:mt.Msg.MIXLY_UP,shift_down:mt.Msg.MIXLY_DOWN,shift_left:mt.Msg.MIXLY_LEFT,shift_right:mt.Msg.MIXLY_RIGHT}[t]+s}))}},Nh={init:function(){this.setColour(Th),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_GET_POINT),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_ESP32_JS_MONITOR_BRIGHTNESS)}},Dh={init:function(){this.setColour(Th),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_SET_BRIGHTNESS).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendValueInput("STAT").setCheck([Number,Boolean]),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL)}},fh={init:function(){this.setColour(Th),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS)}},Fh={init:function(){this.setColour(Th),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS+" 0.0-1.0")}},Ph={init:function(){this.setColour(Th),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Clear_display),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Clear_display)}},vh={init:function(){this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<5;t++){let e=this.appendDummyInput();for(let i=0;i<8;i++)e.appendField(new mt.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.setOutput(!0),this.setColour(Th),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Create_image1)}},Yh={init:function(){this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<8;t++){let e=this.appendDummyInput();for(let i=0;i<12;i++)e.appendField(new mt.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.setOutput(!0),this.setColour(Th),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Create_image1)}},xh={init:function(){this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<8;t++){let e=this.appendDummyInput();for(let i=0;i<16;i++)e.appendField(new mt.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.setOutput(!0,"esp32_image"),this.setColour(Th),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Create_image1)}},Xh={init:function(){var t=[["4x5"+mt.Msg.MIXGO_ME_DISPLAY_HORIZONTAL,"'4x5'"],["5x5"+mt.Msg.MIXGO_ME_DISPLAY_HORIZONTAL,"'5x5'"],["5x8"+mt.Msg.MIXGO_ME_DISPLAY_VERTICAL,"'5x8'"]];this.setColour(Th),this.appendDummyInput().appendField(mt.Msg.OLED_SET_FONT).appendField(new mt.FieldDropdown(t),"OP"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},bh={init:function(){this.setColour(Th),this.appendValueInput("data").appendField(mt.Msg.OLED_BITMAP),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.OLED_BITMAP_OR_STRING)}},yh={init:function(){this.setColour(Th),this.appendValueInput("data").appendField(mt.Msg.OLED_BITMAP),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_NUMBER),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.OLED_BITMAP_OR_STRING)}},Vh={init:function(){this.setColour(Th),this.appendValueInput("data").setCheck([String,"esp32_image","List","Tuple"]).appendField(mt.Msg.OLED_DRAWSTR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.OLED_BITMAP_OR_STRING)}},Bh={init:function(){this.setColour(Th),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.OLED_DRAWSTR),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(mt.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendDummyInput("").appendField(mt.Msg.TEXT_CENTER).appendField(new mt.FieldDropdown([[mt.Msg.MICROPYTHON_DISPLAY_YES,"True"],[mt.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"center"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY)}},Gh={init:function(){this.setColour(Th),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(mt.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SCROLL_IMAGE_OR_STRING_DELAY)}},Uh={init:function(){this.setColour(Th),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},wh={init:function(){this.setColour(Th),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_SET_BRIGHTNESS).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendValueInput("STAT").setCheck([Number,Boolean]),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL)}},kh={init:function(){this.jsonInit({colour:Th,args0:[{name:"state",options:[[mt.Msg.MPYTHON_DISPLAY_MODE_1,"1"],[mt.Msg.MPYTHON_DISPLAY_MODE_0,"0"]],type:"field_dropdown"},{name:"shape",options:[[mt.Msg.MPYTHON_DISPLAY_HOLLOW,"rect"],[mt.Msg.MPYTHON_DISPLAY_SOLID,"fill_rect"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"w",type:"input_value"},{name:"h",type:"input_value"}],inputsInline:!0,helpUrl:mt.Msg.mpython_HELPURL,tooltip:mt.Msg.MPYTHON_DISPLAY_SHAPE_RECT_TOOLTIP,message0:mt.Msg.MPYTHON_DISPLAY_SHAPE_RECT_MESSAGE0,nextStatement:null,previousStatement:null})}},Hh={init:function(){this.jsonInit({colour:Th,args0:[{name:"state",options:[[mt.Msg.MPYTHON_DISPLAY_MODE_1,"1"],[mt.Msg.MPYTHON_DISPLAY_MODE_0,"0"]],type:"field_dropdown"},{name:"dir_h_v",options:[[mt.Msg.mpython_vertical,"0"],[mt.Msg.mpython_horizontal,"1"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"length",type:"input_value"}],inputsInline:!0,helpUrl:mt.Msg.mpython_HELPURL,tooltip:mt.Msg.MPYTHON_DISPLAY_HVLINE_TOOLTIP,message0:mt.Msg.MPYTHON_DISPLAY_HVLINE_MESSAGE0,nextStatement:null,previousStatement:null})}},Wh={init:function(){this.jsonInit({colour:Th,args0:[{name:"state",options:[[mt.Msg.mpython_display_hline_1,"1"],[mt.Msg.mpython_display_hline_0,"0"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x1",type:"input_value"},{name:"y1",type:"input_value"},{name:"x2",type:"input_value"},{name:"y2",type:"input_value"}],inputsInline:!0,helpUrl:mt.Msg.mpython_HELPURL,tooltip:mt.Msg.mpython_display_line_TOOLTIP,message0:mt.Msg.mpython_display_line_MESSAGE0,nextStatement:null,previousStatement:null})}},Kh={init:function(){this.jsonInit({colour:Th,args0:[{type:"field_label",name:"size_image",text:mt.Msg.MIXLY_MICROBIT_Built_in_image1},{name:"path",options:[["Heart","Heart"],["Angry","Angry"],["Bored","Bored"],["Confused","Confused"],["Happy","Happy"],["Paper","Paper"],["Rock","Rock"],["Sad","Sad"],["Scissors","Scissors"],["Silly","Silly"],["Sleep","Sleep"],["Small_heart","Small_heart"],["Small_paper","Small_paper"],["Small_rock","Small_rock"],["Small_scissors","Small_scissors"],["Smile","Smile"],["Surprise","Surprise"],["Wonderful","Wonderful"],["Eyes_Angry","Eyes_Angry"],["Awake","Awake"],["Black_eye","Black_eye"],["Bottom_left","Bottom_left"],["Bottom_right","Bottom_right"],["Crazy_1","Crazy_1"],["Crazy_2","Crazy_2"],["Disappointed","Disappointed"],["Dizzy","Dizzy"],["Down","Down"],["Evil","Evil"],["Hurt","Hurt"],["Knocked_out","Knocked_out"],["Love","Love"],["Middle_left","Middle_left"],["Middle_right","Middle_right"],["Neutral","Neutral"],["Nuclear","Nuclear"],["Pinch_left","Pinch_left"],["Pinch_middle","Pinch_middle"],["Pinch_right","Pinch_right"],["Tear","Tear"],["Tired_left","Tired_left"],["Tired_middle","Tired_middle"],["Tired_right","Tired_right"],["Toxic","Toxic"],["Up","Up"],["Winking","Winking"],["Accept","Accept"],["Backward","Backward"],["Decline","Decline"],["Forward","Forward"],["Left","Left"],["No_go","No_go"],["Question_mark","Question_mark"],["Right","Right"],["Stop_1","Stop_1"],["Stop_2","Stop_2"],["Thumbs_down","Thumbs_down"],["Thumbs_up","Thumbs_up"],["Warning","Warning"],["Bomb","Bomb"],["Boom","Boom"],["Fire","Fire"],["Flowers","Flowers"],["Forest","Forest"],["Lightning","Lightning"],["Light_off","Light_off"],["Light_on","Light_on"],["Night","Night"],["Pirate","Pirate"],["Snow","Snow"],["Target","Target"],["Bar_0","Bar_0"],["Bar_1","Bar_1"],["Bar_2","Bar_2"],["Bar_3","Bar_3"],["Bar_4","Bar_4"],["Dial_0","Dial_0"],["Dial_1","Dial_1"],["Dial_2","Dial_2"],["Dial_3","Dial_3"],["Dial_4","Dial_4"],["Dots_0","Dots_0"],["Dots_1","Dots_1"],["Dots_2","Dots_2"],["Dots_3","Dots_3"],["Hourglass_0","Hourglass_0"],["Hourglass_1","Hourglass_1"],["Hourglass_2","Hourglass_2"],["Timer_0","Timer_0"],["Timer_1","Timer_1"],["Timer_2","Timer_2"],["Timer_3","Timer_3"],["Timer_4","Timer_4"],["Water_level_0","Water_level_0"],["Water_level_1","Water_level_1"],["Water_level_2","Water_level_2"],["Water_level_3","Water_level_3"]],type:"field_dropdown"}],output:"String",helpUrl:"",tooltip:"",message0:"%1 %2"})}},Jh={init:function(){this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<5;t++){let e=this.appendDummyInput();for(let i=0;i<5;i++)e.appendField(new mt.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.setOutput(!0),this.setColour(Th),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Create_image1)}},Qh={init:function(){this.setColour(Th),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS)}},zh={init:function(){this.setColour(Th),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_AMBIENTBRIGHT),this.setInputsInline(!0),this.setOutput(!0,Number)}},qh={init:function(){this.setColour(Th),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS+" 0.0-1.0")}},jh={init:function(){var t=[[mt.Msg.mixpy_PL_PIE_SHADOW_N,"0"],[mt.Msg.CLOCKWISE+"90"+mt.Msg.blockpy_setheading_degree,"1"],[mt.Msg.CLOCKWISE+"180"+mt.Msg.blockpy_setheading_degree,"2"],[mt.Msg.CLOCKWISE+"270"+mt.Msg.blockpy_setheading_degree,"3"]];this.setColour(Th),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_SCREEN_ROTATE).appendField(new mt.FieldDropdown(t),"OP"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Zh={init:function(){this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<12;t++){let e=this.appendDummyInput();for(let i=0;i<12;i++)e.appendField(new mt.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.setOutput(!0),this.setColour(Th),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Create_image1)}},$h={init:function(){this.setColour(Th),this.appendValueInput("data").appendField(mt.Msg.OLED_BITMAP),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.OLED_BITMAP_OR_STRING)}},tM={init:function(){this.setColour(Th),this.appendValueInput("data").appendField(mt.Msg.OLED_BITMAP),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_NUMBER),this.appendValueInput("VAR").appendField(mt.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.OLED_BITMAP_OR_STRING)}},eM={init:function(){this.setColour(Th),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.OLED_DRAWSTR),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(mt.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendDummyInput("").appendField(mt.Msg.TEXT_CENTER).appendField(new mt.FieldDropdown([[mt.Msg.MICROPYTHON_DISPLAY_YES,"True"],[mt.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"center"),this.appendValueInput("VAR").appendField(mt.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY)}},iM={init:function(){this.setColour(Th),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},nM={init:function(){this.setColour(Th),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(mt.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.appendValueInput("VAR").appendField(mt.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SCROLL_IMAGE_OR_STRING_DELAY)}},sM={init:function(){this.setColour(Th),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},oM={init:function(){this.setColour(Th),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.appendValueInput("VAR").appendField(mt.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},_M={init:function(){this.jsonInit({colour:Th,args0:[{name:"shape",options:[[mt.Msg.MPYTHON_DISPLAY_HOLLOW,"rect"],[mt.Msg.MPYTHON_DISPLAY_SOLID,"fill_rect"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"w",type:"input_value"},{name:"h",type:"input_value"},{name:"VAR",type:"input_value"}],inputsInline:!0,helpUrl:mt.Msg.mpython_HELPURL,tooltip:mt.Msg.MPYTHON_DISPLAY_SHAPE_RECT_TOOLTIP,message0:mt.Msg.ONBOARD_TFT_DISPLAY_SHAPE_RECT_MESSAGE0,nextStatement:null,previousStatement:null})}},aM={init:function(){this.jsonInit({colour:Th,args0:[{name:"dir_h_v",options:[[mt.Msg.mpython_vertical,"0"],[mt.Msg.mpython_horizontal,"1"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"length",type:"input_value"},{name:"VAR",type:"input_value"}],inputsInline:!0,helpUrl:mt.Msg.mpython_HELPURL,tooltip:mt.Msg.MPYTHON_DISPLAY_HVLINE_TOOLTIP,message0:mt.Msg.ONBOARD_TFT_DISPLAY_HVLINE_MESSAGE0,nextStatement:null,previousStatement:null})}},pM={init:function(){this.jsonInit({colour:Th,args0:[{type:"input_dummy"},{name:"x1",type:"input_value"},{name:"y1",type:"input_value"},{name:"x2",type:"input_value"},{name:"y2",type:"input_value"},{name:"VAR",type:"input_value"}],inputsInline:!0,helpUrl:mt.Msg.mpython_HELPURL,tooltip:mt.Msg.mpython_display_line_TOOLTIP,message0:mt.Msg.mpython_display_line_MESSAGE0,nextStatement:null,previousStatement:null})}},uM={init:function(){var t=[[mt.Msg.MIXLY_UP,"shift_up"],[mt.Msg.MIXLY_DOWN,"shift_down"],[mt.Msg.MIXLY_LEFT,"shift_left"],[mt.Msg.MIXLY_RIGHT,"shift_right"]];this.setColour(Th),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.appendDummyInput("").appendField(mt.Msg.DISPLAY_IMAGE_LET),this.appendDummyInput("").appendField(mt.Msg.DISPLAY_IMAGE_LET2).appendField(new mt.FieldDropdown(t),"OP"),this.appendValueInput("val").appendField(mt.Msg.DISPLAY_IMAGE_SHIFT).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.DISPLAY_IMAGE_UNIT);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP"),i=mt.Msg.DISPLAY_IMAGE_LET,n=mt.Msg.DISPLAY_IMAGE_LET2,s=mt.Msg.DISPLAY_IMAGE_LET3;return i+n+{up:mt.Msg.MIXLY_UP,down:mt.Msg.MIXLY_DOWN,left:mt.Msg.MIXLY_LEFT,right:mt.Msg.MIXLY_RIGHT}[t]+s}))}},rM={init:function(){this.setColour(Th),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendDummyInput().appendField(mt.Msg.HTML_COLOUR),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_ESP32_JS_MONITOR_BRIGHTNESS)}},lM={init:function(){this.setColour(Th),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.MIXLY_LCD_SETCOLOR).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendValueInput("VAR").appendField(mt.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL)}},dM={init:function(){this.setColour(Th),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Clear_display),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Clear_display)}},IM={init:function(){this.setColour(Th),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS)}},TM={init:function(){this.setColour(Th),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS+" 0.0-1.0")}},hM={init:function(){this.setColour(Th),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_SCREEN_FILL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},MM={init:function(){this.setColour(Th),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_INIT_CLOCK),this.appendDummyInput().appendField(mt.Msg.MIXLY_CENTER_POS),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.OLED_CIRCLE_RADIUS),this.appendValueInput("VAR").appendField(mt.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},mM={init:function(){this.setColour(Th),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.GET_RTCTIME),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},OM={init:function(){this.setColour(Th),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.SET_TIME),this.appendValueInput("h").setCheck(Number).appendField(mt.Msg.MIXLY_HOUR),this.appendValueInput("m").setCheck(Number).appendField(mt.Msg.MIXLY_MINUTE),this.appendValueInput("s").setCheck(Number).appendField(mt.Msg.MIXLY_SECOND),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},EM={init:function(){this.setColour(Th),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.DRAW_CLOCK),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},RM={init:function(){this.setColour(Th),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.CLEAR_CLOCK),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_STM32_TFT_BACKGROUND_COLOR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},cM={init:function(){this.jsonInit({colour:Th,args0:[{name:"shape",options:[[mt.Msg.MPYTHON_DISPLAY_HOLLOW,"False"],[mt.Msg.MPYTHON_DISPLAY_SOLID,"True"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"r",type:"input_value"},{name:"VAR",type:"input_value"}],inputsInline:!0,helpUrl:mt.Msg.mpython_HELPURL,message0:mt.Msg.ONBOARD_TFT_DISPLAY_SHAPE_CIRCLE_MESSAGE0,nextStatement:null,previousStatement:null})}},gM="#777777",CM={init:function(){this.setColour(gM),this.appendDummyInput("").appendField("from ").appendField(new mt.FieldTextInput("ESP32"),"path").appendField(" import ").appendField(new mt.FieldTextInput("*"),"module"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},SM={init:function(){this.setColour(gM),this.appendDummyInput("").appendField("import ").appendField(new mt.FieldTextInput("module"),"module"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},AM={init:function(){this.setColour(gM),this.appendDummyInput("").appendField(new mt.FieldTextInput("my_function"),"NAME"),this.itemCount_=1,this.arguments_=["x"],this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new mt.icons.MutatorIcon(["factory_create_with_item"],this))},mutationToDom:function(){var t=document.createElement("mutation");t.setAttribute("items",this.itemCount_);for(var e=0;ee?t[e]:'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},dm={init:function(){this.setColour(om),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(mt.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},Im={init:function(){this.setColour(om),this.appendDummyInput().appendField(mt.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},Tm={init:function(){this.setColour(om),this.appendDummyInput().appendField(mt.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},hm={init:function(){this.setColour(om),this.appendDummyInput().appendField(mt.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").setCheck(String).appendField(mt.Msg.MIXLY_EMQX_SERVER).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("USERNAME").setCheck(String).appendField(mt.Msg.MIXLY_WIFI_USERNAME).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("PASSWORD").setCheck(String).appendField(mt.Msg.MIXLY_IOT_PASSWORD).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("PROJECT").setCheck(String).appendField(mt.Msg.MIXLY_EMQX_PROJECT).setAlign(mt.inputs.Align.RIGHT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Mm={init:function(){this.setColour(om),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(mt.Msg.MIXLY_EMQX_PUBLISH_NEW).appendField(mt.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MSG").appendField(mt.Msg.HTML_BODY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_IOT_EMQX_PUBLISH_TOOLTIP)}},mm={init:function(){this.setColour(om),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(mt.Msg.MIXLY_EMQX_SUBSCRIBE+mt.Msg.MIXLY_MICROBIT_MSG).appendField(mt.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("METHOD").appendField(mt.Msg.MIXLY_EMQX_SET_METHOD),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_IOT_EMQX_SUBSCRIBE_TOOLTIP)}},Om={init:function(){this.setColour(om),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_DISCONNECT_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Em={init:function(){this.setColour(om),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(mt.Msg.MIXLY_EMQX_CONNECT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Rm={init:function(){this.setColour(om),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_CHECK_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},cm={init:function(){this.setColour(om),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROPYTHON_FORMAT).appendField(mt.Msg.MQTT_Topic),this.setInputsInline(!0),this.setOutput(!0)}},gm={init:function(){this.setColour(om),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROPYTHON_FORMAT).appendField(mt.Msg.MIXLY_EMQX_PUBLISH_MSG),this.setInputsInline(!0),this.setOutput(!0)}},Cm={init:function(){this.setColour(om),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_ESP32_IOT_MAP_FORMATING),this.setOutput(!0)}},Sm={init:function(){this.setColour(om),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_MICROPYTHON_FORMAT+"(Json)"),this.setOutput(!0)}},Am={init:function(){this.setColour(om),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(mt.Msg.MIXLY_EMQX_PING),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_IOT_EMQX_PING_TOOLTIP)}},Lm={init:function(){this.setColour(om),this.appendDummyInput().appendField("MixIO").appendField(mt.Msg.MIXLY_GET_NTP),this.appendValueInput("addr").appendField(mt.Msg.blynk_SERVER_ADD),this.setInputsInline(!0),this.setOutput(!0)}},Nm={init:function(){this.setColour(om),this.appendDummyInput().appendField(mt.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").appendField(mt.Msg.MIXLY_EMQX_SERVER).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("KEY").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+mt.Msg.MIXLY_MIXIO_SHARE_KEY).setAlign(mt.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Dm={init:function(){this.setColour(om),this.appendDummyInput().appendField(mt.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").appendField(mt.Msg.MIXLY_EMQX_SERVER).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("KEY").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"Mixly Key").setAlign(mt.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},fm={init:function(){this.VISITOR_ID=Ot.Config.BOARD.visitorId.str32.substring(0,8).toUpperCase(),this.setColour(om),this.appendDummyInput("").appendField(new mt.FieldTextInput(this.visitorId),"VISITOR_ID"),this.setOutput(!0,null)},onchange:function(){const t=this.getFieldValue("VISITOR_ID");this.VISITOR_ID!==t&&this.setFieldValue(this.VISITOR_ID,"VISITOR_ID")}},Fm={init:function(){this.setColour(om),this.appendDummyInput().appendField("MixIO").appendField(mt.Msg.MSG.catEthernet_clinet),this.setOutput(!0),this.setInputsInline(!0)}},Pm={init:function(){this.setColour(om),this.appendDummyInput().appendField("HTTP"+mt.Msg.MIXLY_Client),this.appendValueInput("addr").appendField(mt.Msg.DISPLAY_IMAGE_LET2),this.appendDummyInput().appendField(mt.Msg.MIXLY_REQUESTS_GET).appendField(mt.Msg.MIXLY_GET_CURRENT_TIME).appendField(mt.Msg.MIXLY_OPEN_DEBUG).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},vm={init:function(){this.setColour(om),this.appendDummyInput().appendField("HTTP"+mt.Msg.MIXLY_Client).appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_REQUESTS_LEN,"client_len"],[mt.Msg.MIXLY_REQUESTS_GET_LEN,"server_len"],[mt.Msg.MIXLY_REQUESTS_MESSAGE,"text"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},Ym={init:function(){this.setColour(om),this.appendDummyInput().appendField("MQTT"+mt.Msg.MIXLY_Client),this.appendValueInput("addr").appendField(mt.Msg.MIXLY_CONNECTTO),this.appendDummyInput().appendField(mt.Msg.MIXLY_INIT_SUBSCRIBE).appendField(mt.Msg.MQTT_Topic).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GET_CURRENT_TIME,""]]),"key").appendField(mt.Msg.MIXLY_OPEN_DEBUG).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"key2"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},xm={init:function(){this.setColour(om),this.appendDummyInput().appendField("MQTT"+mt.Msg.MIXLY_Client).appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_REQUESTS_LEN,"client_len"],[mt.Msg.MIXLY_REQUESTS_GET_LEN,"server_len"],[mt.Msg.MIXLY_REQUESTS_MESSAGE,"time_msg()"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},Xm=_m,bm=am,ym=pm,Vm=um,Bm=lm,Gm=225,Um={init:function(){this.setColour(Gm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_NETWORK_INIT),this.appendDummyInput().appendField(mt.Msg.MIXLY_NETWORK_MODE).appendField(new mt.FieldDropdown([["STA","STA"],["AP","AP"]]),"mode"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_INIT_TOOLTIP)}},wm={init:function(){this.setColour(Gm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_NETWORK_WIFI_OPEN,"True"],[mt.Msg.MIXLY_NETWORK_WIFI_CLOSE,"False"]]),"op"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_NETWORK_WIFI_FLAG),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("op"),i=mt.Msg.MIXLY_ESP32_NETWORK_OPEN_TOOLTIP;return{True:mt.Msg.MIXLY_NETWORK_WIFI_OPEN,False:mt.Msg.MIXLY_NETWORK_WIFI_CLOSE}[e]+i}))}},km={init:function(){this.setColour(Gm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_NETWORK_WIFI_IS_ACTIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_NETWORK_WIFI_IS_ACTIVE)}},Hm={init:function(){this.setColour(Gm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_NETWORK_WIFI_SCAN),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip((function(){return mt.Msg.MIXLY_ESP32_NETWORK_SCAN_TOOLTIP+{0:"ssid",1:"bssid",2:"channel",3:"RSSI",4:"authmode",5:"hidden",all:mt.Msg.MIXLY_NETWORK_WIFI_SCAN_ATTRIBUTE}.all}))}},Wm={init:function(){this.setColour(Gm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_NETWORK_CONNECT),this.appendValueInput("id").setCheck(String).appendField(mt.Msg.HTML_NAME),this.appendValueInput("password").setCheck(String).appendField(mt.Msg.HTML_PASSWORD),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_CONNECT_TOOLTIP)}},Km={init:function(){this.setColour(Gm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_NETWORK_WIFI_CONNECT),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SYMBOL_QUESTION),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_WIFI_CONNECT_TOOLTIP)}},Jm={init:function(){this.setColour(Gm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_NETWORK_GET_WIFI),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_ESP32_NETWORK_IP,"0"],[mt.Msg.MIXLY_ESP32_NETWORK_MASK,"1"],[mt.Msg.MIXLY_ESP32_NETWORK_GATEWAY,"2"],["DNS","3"]]),"mode"),this.setOutput(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("mode");return mt.Msg.MIXLY_ESP32_NETWORK_GET_WIFI_TOOLTIP+{0:mt.Msg.MIXLY_ESP32_NETWORK_IP,1:mt.Msg.MIXLY_ESP32_NETWORK_MASK,2:mt.Msg.MIXLY_ESP32_NETWORK_GATEWAY,3:"DNS"}[e]}))}},Qm={init:function(){this.setColour(Gm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_NETWORK_STOP_CONNECT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_STOP_TOOLTIP)}},zm={init:function(){this.setColour(Gm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_NETWORK_GET_WIFI),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_NETWORK_WIFI_ESSID,"essid"],[mt.Msg.MIXLY_NETWORK_WIFI_CHANNEL,"channel"]]),"op"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_GET_WIFI_TOOLTIP)}},qm={init:function(){this.setColour(Gm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.LISTS_SET_INDEX_SET),this.appendValueInput("essid").setCheck(String).appendField(mt.Msg.MIXLY_NETWORK_WIFI_ESSID),this.appendValueInput("channel").setCheck(Number).appendField(mt.Msg.MIXLY_NETWORK_WIFI_CHANNEL),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_AP_CONNECT_TOOLTIP)}},jm={init:function(){this.setColour(Gm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_NETWORK_SERVER1),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_NETWORK_SERVER2),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_CLOSE_TOOLTIP)}},Zm={init:function(){this.setColour(Gm),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_INIT).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_TYPE).appendField(new mt.FieldDropdown([["TCP","TCP"],["UDP","UDP"]]),"mode"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("mode");return mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_INIT_TOOLTIP+{TCP:"TCP",UDP:"UDP"}[e]}))}},$m={init:function(){this.setColour(Gm),this.appendValueInput("VAR").setCheck("var").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_LET_SOCKET),this.appendValueInput("address").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_BIND_TO_ADDRESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_BIND_TOOLTIP)}},tO={init:function(){this.setColour(Gm),this.appendValueInput("VAR").setCheck("var").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_LET_SOCKET),this.appendValueInput("address").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_CONNECT_TO_ADDRESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_CONNECT_TOOLTIP)}},eO={init:function(){this.setColour(Gm),this.appendValueInput("VAR").setCheck("var"),this.appendValueInput("queue").setCheck(Number).appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_LISTEN).appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_QUEUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_LISTEN_TOOLTIP)}},iO={init:function(){this.setColour(Gm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_ACCEPT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_ACCEPT_TOOLTIP)}},nO={init:function(){this.setColour(Gm),this.appendValueInput("VAR").setCheck("var").appendField("TCP"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_RECEIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_RECEIVE_TOOLTIP)}},sO={init:function(){this.setColour(Gm),this.appendValueInput("VAR").setCheck("var").appendField("TCP"),this.appendValueInput("content").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_SEND_TOOLTIP)}},oO={init:function(){this.setColour(Gm),this.appendValueInput("VAR").setCheck("var").appendField("UDP"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_RECEIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_RECEIVE_FROM_TOOLTIP)}},_O={init:function(){this.setColour(Gm),this.appendValueInput("VAR").setCheck("var").appendField("UDP"),this.appendValueInput("content").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.appendValueInput("address").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_TO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_SEND_TO_TOOLTIP)}},aO={init:function(){this.setColour(Gm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_CLOSE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_CLOSE_TOOLTIP)}},pO={init:function(){this.setColour(Gm),this.appendValueInput("DOMAIN").appendField(mt.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(mt.Msg.blockpy_REQUESTS_GET).appendField(new mt.FieldTextInput("response"),"VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.blockpy_REQUESTS_GET_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},uO={init:function(){this.appendValueInput("VAL");var t=[[mt.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE,"status_code"],[mt.Msg.blockpy_REQUESTS_GET_ATTR_TEXT,"text"],[mt.Msg.blockpy_REQUESTS_GET_ATTR_COOKIES,"cookies"],[mt.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT,"content"]];this.setColour(Gm),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_GET).appendField(new mt.FieldDropdown(t),"ATTR"),this.setInputsInline(!0),this.setOutput(!0,String);var e=this;this.setTooltip((function(){var t=e.getFieldValue("DIR");return{clear:mt.Msg.MIXLY_TOOLTIP_TURTEL_CLEAR,reset:mt.Msg.MIXLY_TOOLTIP_TURTEL_RESET,home:mt.Msg.MIXLY_TOOLTIP_TURTEL_HOME}[t]}))}},rO={init:function(){this.appendValueInput("VAR").appendField(mt.Msg.DISPLAY_IMAGE_LET2).setCheck(String);this.setColour(Gm),this.appendDummyInput("").appendField(mt.Msg.blockpy_CONDUCT).appendField(new mt.FieldDropdown([["post","post"],["put","put"],["delete","delete"],["head","head"],["option","option"]]),"DIR"),this.appendDummyInput("").appendField(mt.Msg.blockpy_REQUESTS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{forward:mt.Msg.MIXLY_TOOLTIP_TURTEL_FORWARD,backward:mt.Msg.MIXLY_TOOLTIP_TURTEL_BACKWARD}[e]}))}},lO={init:function(){this.setColour(Gm),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GET_NTP+"(NTP)"),this.appendValueInput("data").appendField(mt.Msg.blynk_SERVER_ADD),this.setOutput(!0,"Tuple"),this.setInputsInline(!0)}},dO={init:function(){this.setColour(Gm),this.appendDummyInput("").appendField(new mt.FieldDropdown([["ntp.aliyun.com","ntp.aliyun.com"],["ntp1.aliyun.com","ntp1.aliyun.com"],["ntp2.aliyun.com","ntp2.aliyun.com"],["ntp3.aliyun.com","ntp3.aliyun.com"],["ntp4.aliyun.com","ntp4.aliyun.com"],["ntp5.aliyun.com","ntp5.aliyun.com"],["ntp6.aliyun.com","ntp6.aliyun.com"],["ntp7.aliyun.com","ntp7.aliyun.com"],["time1.cloud.tencent.com","time1.cloud.tencent.com"],["time2.cloud.tencent.com","time2.cloud.tencent.com"],["time3.cloud.tencent.com","time3.cloud.tencent.com"],["time4.cloud.tencent.com","time4.cloud.tencent.com"],["time5.cloud.tencent.com","time5.cloud.tencent.com"]]),"op"),this.setOutput(!0)}},IO="#A58C5B",TO={init:function(){this.setColour(IO),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_BUTTON).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_IS_PRESSED),this.appendValueInput("STAT").appendField(mt.Msg.MIXLY_ELECLEVEL),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_SENOR_IS_PRESSED)}},hO={init:function(){this.setColour(IO),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_BUTTON).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_WAS_PRESSED),this.appendValueInput("STAT").appendField(mt.Msg.MIXLY_ELECLEVEL),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_SENOR_WAS_PRESSED)}},MO={init:function(){this.setColour(IO),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_BUTTON).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_PRESSES),this.appendValueInput("VAR").setCheck(Number).appendField(mt.Msg.MIXLY_GET_PRESSES_TIME),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.PROCEDURES_DEFRETURN_RETURN+mt.Msg.MIXLY_BUTTON+mt.Msg.MIXLY_GET_PRESSES)}},mO={init:function(){this.setColour(IO),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_BUTTON).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_RISING,"machine.Pin.IRQ_RISING"],[mt.Msg.MIXLY_FALLING,"machine.Pin.IRQ_FALLING"],[mt.Msg.MIXLY_CHANGE,"(machine.Pin.IRQ_RISING | machine.Pin.IRQ_FALLING)"]]),"mode"),this.appendValueInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_INOUT_ATTACHINTERRUPT)}},OO={init:function(){this.setColour(IO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_shake,"shake"],[mt.Msg.MIXLY_UP,"up"],[mt.Msg.MIXLY_DOWN,"down"],[mt.Msg.MIXLY_LEFT,"left"],[mt.Msg.MIXLY_RIGHT,"right"],[mt.Msg.MIXLY_MICROBIT_face_up,"face up"],[mt.Msg.MIXLY_MICROBIT_face_down,"face down"],[mt.Msg.MIXLY_MICROBIT_freefall,"freefall"],["3g","3g"],["6g","6g"],["8g","8g"]]),"gesture"),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("gesture"),i=mt.Msg.MIXLY_MICROBIT_JS_CURRENT,n=mt.Msg.MSG.catSensor,s=mt.Msg.MIXLY_MICROBIT_JS_STATE,o=mt.Msg.MIXLY_MICROBIT_PERFORMANCE;return i+n+s+{shake:mt.Msg.MIXLY_MICROBIT_shake,up:mt.Msg.MIXLY_UP,down:mt.Msg.MIXLY_DOWN,left:mt.Msg.MIXLY_LEFT,right:mt.Msg.MIXLY_RIGHT,"face up":mt.Msg.MIXLY_MICROBIT_face_up,"face down":mt.Msg.MIXLY_MICROBIT_face_down,freefall:mt.Msg.MIXLY_MICROBIT_freefall,"3g":"3g","6g":"6g","8g":"8g"}[e]+o}))}},EO={init:function(){this.setColour(IO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_ADXL345).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION).appendField(new mt.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=mt.Msg.MIXLY_MICROBIT_Direction,s=mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION1;return i+{x:"x",y:"y",z:"z","(x,y,z)":mt.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},RO={init:function(){this.setColour(IO),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_LIGHT_LEVEL),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SENSOR_LIGHT_LEVEL_TOOLTIP)}},cO={init:function(){var t=[[mt.Msg.MIXLY_GETTEMPERATUE,"temperature"],[mt.Msg.MIXLY_GETHUMIDITY,"humidity"]];this.setColour(IO),this.appendValueInput("PIN",Number).appendField(new mt.FieldDropdown([["DHT11","DHT11"],["DHT22","DHT22"]]),"TYPE").appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(new mt.FieldDropdown(t),"WHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("WHAT");return{temperature:mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_TEM,relative_humidity:mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_HUM,tempandhum:mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_TEM_HUM}[t]}))}},gO={init:function(){this.setColour(IO),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_EXTERN_LIGHT),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_EXTERN_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.ESP32_SENSOR_NIXGO_LIGHT_TOOLTIP)}},CO={init:function(){this.setColour(IO),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_EXTERN_SOUND),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_EXTERN_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.ESP32_SENSOR_NIXGO_SOUND_TOOLTIP)}},SO={init:function(){this.setColour(IO),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new mt.FieldDropdown([[mt.Msg.TEXT_TRIM_LEFT,"left"],[mt.Msg.TEXT_TRIM_RIGHT,"right"]]),"direction").appendField(mt.Msg.MIXLY_ESP32_NEAR),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("direction"),i=mt.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP,n=mt.Msg.MIXLY_ESP32_NEAR;return i+{left:mt.Msg.TEXT_TRIM_LEFT,right:mt.Msg.TEXT_TRIM_RIGHT}[e]+n}))}},AO={init:function(){this.setColour(IO),this.appendValueInput("SUB").appendField("BMP280").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETTEMPERATUE,"get_BMP_temperature()"],[mt.Msg.MIXLY_GETPRESSURE,"get_BMP_pressure()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{"get_BMP_temperature()":mt.Msg.MIXLY_MICROBIT_SENSOR_BMP_temperature_TOOLTIP,"get_BMP_pressure()":mt.Msg.MIXLY_MICROBIT_SENSOR_BMP_press_TOOLTIP}[e]}))}},LO={init:function(){this.setColour(IO),this.appendValueInput("SUB").appendField("SHT20").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETTEMPERATUE,"get_SHT_temperature()"],[mt.Msg.MIXLY_GETHUMIDITY,"get_SHT_relative_humidity()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{"get_SHT_temperature()":mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,"get_SHT_relative_humidity()":mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},NO={init:function(){this.setColour(IO),this.appendValueInput("PIN",Number).appendField("DS18x20 "+mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GETTEMPERATUE),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_MICROBIT_SENSOR_DS18X20_TOOLTIP)}},DO={init:function(){this.setColour(IO),this.appendDummyInput("").appendField("LM35"+mt.Msg.MIXLY_TEMP),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GETTEMPERATUE),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_LM35)}},fO={init:function(){this.setColour(IO),this.appendValueInput("I2CSUB").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new mt.FieldDropdown([["MPU9250","MPU9250"],["BMP280","BMP280"],["SHT20","SHT20"],["ADXL345","ADXL345"],["LTR308","LTR308"],["LTR381RGB","LTR381RGB"],["HP203X","HP203X"],["SHTC3","SHTC3"],["AHT21","AHT21"],["VL53L0X","VL53L0X"],["QMC5883L","QMC5883L"],["MAX30102","MAX30102"],["APDS9960","APDS9960"],["RFID","RFID"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setFieldValue("LTR308","key")}},FO={init:function(){this.setColour(IO),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_MAX30102+" MAX30102"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_ESP32_MAX30102_IR,"[0]"],[mt.Msg.MIXLY_ESP32_MAX30102_RED,"[1]"],[mt.Msg.MIXLY_ESP32_MAX30102_IR+","+mt.Msg.MIXLY_ESP32_MAX30102_RED,""]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},PO={init:function(){this.setColour(IO),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_APDS9960+" APDS9960"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_ESP32_APDS9960_COLOR,"color"],[mt.Msg.MIXLY_ESP32_APDS9960_GESTURE,"gesture"],[mt.Msg.MIXLY_ESP32_APDS9960_APPROACH,"proximity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},vO={init:function(){this.setColour(IO),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_EXTERN_LIGHT+" LTR308"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_LIGHT_INTENSITY),this.setOutput(!0,Number),this.setInputsInline(!0)}},YO={init:function(){this.setColour(IO),this.appendValueInput("SUB").appendField(mt.Msg.HTML_COLOUR+mt.Msg.MSG.catSensor+" LTR381RGB").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GET+mt.Msg.HTML_COLOUR,"[2]"],[mt.Msg.MIXLY_GET+mt.Msg.MIXLY_IR_STRENGTH,"[1]"],[mt.Msg.MIXLY_GET+mt.Msg.MIXLY_LIGHT_STRENGTH,"[0]"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},xO={init:function(){this.setColour(IO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_EXTERN_LIGHTUV+" LTR390UV").setCheck("var"),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GET_ENV_LIGHT,"E"],[mt.Msg.MIXLY_GET_ULTRAVIOLET,"U"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},XO={init:function(){this.setColour(IO),this.appendDummyInput().appendField(mt.Msg.MIXLY_LASER_RANGE+" VL53L0X"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_DISTANCE+"(mm)"),this.setOutput(!0,Number),this.setInputsInline(!0)}},bO={init:function(){this.setColour(IO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_TEM_HUM+" SHTC3").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETTEMPERATUE,"temperature"],[mt.Msg.MIXLY_GETHUMIDITY,"humidity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{temperature:mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,humidity:mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},yO={init:function(){this.setColour(IO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_TEM_HUM+" AHT21").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETTEMPERATUE,"temperature"],[mt.Msg.MIXLY_GETHUMIDITY,"humidity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{temperature:mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,relative_humidity:mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},VO={init:function(){this.setColour(IO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_Altitude+mt.Msg.MSG.catSensor+" HP203X").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETPRESSURE,"pressure()"],[mt.Msg.MIXLY_GETTEMPERATUE,"temperature()"],[mt.Msg.MIXLY_GET_ALTITUDE,"altitude()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},BO={init:function(){this.setColour(IO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MIXGOPE_FIELD+mt.Msg.MSG.catSensor+" QMC5883L").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"get_bearing()"],[mt.Msg.MIXLY_TEMPERATURE,"get_temp()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},GO={init:function(){this.setColour(IO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_shake,"shake"],[mt.Msg.MIXLY_UP,"up"],[mt.Msg.MIXLY_DOWN,"down"],[mt.Msg.MIXLY_LEFT,"left"],[mt.Msg.MIXLY_RIGHT,"right"],[mt.Msg.MIXLY_MICROBIT_face_up,"face up"],[mt.Msg.MIXLY_MICROBIT_face_down,"face down"]]),"gesture"),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("gesture"),i=mt.Msg.MIXLY_MICROBIT_JS_CURRENT,n=mt.Msg.MSG.catSensor,s=mt.Msg.MIXLY_MICROBIT_JS_STATE,o=mt.Msg.MIXLY_MICROBIT_PERFORMANCE;return i+n+s+{shake:mt.Msg.MIXLY_MICROBIT_shake,up:mt.Msg.MIXLY_UP,down:mt.Msg.MIXLY_DOWN,left:mt.Msg.MIXLY_LEFT,right:mt.Msg.MIXLY_RIGHT,"face up":mt.Msg.MIXLY_MICROBIT_face_up,"face down":mt.Msg.MIXLY_MICROBIT_face_down}[e]+o}))}},UO={init:function(){this.setColour(IO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION).appendField(new mt.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=mt.Msg.MIXLY_MICROBIT_Direction,s=mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION1;return i+{x:"x",y:"y",z:"z","(x,y,z)":mt.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},wO={init:function(){this.setColour(IO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_GET+mt.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH).appendField(new mt.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=mt.Msg.MIXLY_MICROBIT_Direction,s=mt.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH;return i+{x:"x",y:"y",z:"z","(x,y,z)":mt.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},kO={init:function(){this.setColour(IO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+mt.Msg.MIXLY_ESP32_SENOR_GYRO).appendField(new mt.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=mt.Msg.MIXLY_MICROBIT_Direction,s=mt.Msg.MIXLY_ESP32_SENOR_GYRO;return i+{x:"x",y:"y",z:"z","(x,y,z)":mt.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},HO={init:function(){this.setColour(IO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS)}},WO={init:function(){this.setColour(IO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GETTEMPERATUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_GETTEMPERATUE)}},KO={init:function(){this.setColour(IO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_GET_COMPASS).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH,"strength"],[mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"heading"]]),"compass"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("compass");return mt.Msg.MIXLY_MICROBIT_JS_GET_COMPASS+{strength:mt.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH,heading:mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE}[e]}))}},JO={init:function(){this.setColour(IO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Reset_COMPASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Reset_COMPASS)}},QO={init:function(){this.setColour(IO),this.appendValueInput("SPISUB").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new mt.FieldDropdown([["RFID","RFID"],["WS-LoRa","Weather"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setFieldValue("RFID","key")}},zO={init:function(){this.setColour(IO),this.appendDummyInput().appendField("RFID"+mt.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(mt.Msg.MIXLY_LIST_INDEX),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_RFID_READ_CARD_UID,"id"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL,"content"],[mt.Msg.MIXLY_ALL,"ALL"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},qO={init:function(){this.setColour(IO),this.appendDummyInput().appendField("RFID"+mt.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RFID_READ_CARD_UID),this.setOutput(!0,Number),this.setInputsInline(!0)}},jO={init:function(){this.setColour(IO),this.appendDummyInput().appendField("RFID"+mt.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(mt.Msg.MIXLY_LIST_INDEX),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL),this.setOutput(!0,"Tuple"),this.setInputsInline(!0)}},ZO={init:function(){this.setColour(IO),this.appendDummyInput().appendField(mt.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(mt.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(mt.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},$O={init:function(){this.setColour(IO),this.appendDummyInput().appendField(mt.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(mt.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(mt.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.appendDummyInput().appendField(mt.Msg.RETURN_SUCCESS_OR_NOT),this.setInputsInline(!0),this.setOutput(!0,Boolean)}},tE={init:function(){this.setColour(IO),this.appendDummyInput().appendField("RFID"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_RFID_SCAN_OK,"0"],[mt.Msg.MIXLY_RFID_SCAN_NOTAGERR,"1"],[mt.Msg.MIXLY_RFID_SCAN_ERROR,"2"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},eE={init:function(){this.setColour(IO),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_GET).appendField(new mt.FieldDropdown([["全部(元组)","data()[0]"],["全部(json)","data()[1]"],["全部(json,附带位置信息)","data()[2]"],["编号","data()[0][0]"],["电量","data()[0][1]"],["风速","data()[0][2]"],["阵风","data()[0][3]"],["风向","data()[0][4]"],["雨量","data()[0][5]"],["温度","data()[0][6]"],["湿度","data()[0][7]"],["光照","data()[0][8]"],["紫外线","data()[0][9]"],["大气压","data()[0][10]"],["信号强度","data()[0][11]"],["信噪比","data()[0][12]"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip("返回气象数据元组 data= (设备id,电池状态,风速m/s,阵风m/s,风向°,雨量mm,温度℃,湿度%,光照Lux,UVI,大气压Pa,信号强度dB,信噪比dB)")}},iE={init:function(){this.setColour(IO),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SERIAL_AVAILABLE),this.setOutput(!0,Number),this.setInputsInline(!0)}},nE={init:function(){this.setColour(IO),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendValueInput("BASE").appendField("以主题"),this.appendDummyInput("").appendField("串口发送至MixIO"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},sE={init:function(){this.setColour(IO),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.itemCount_=2,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new mt.icons.MutatorIcon(["weather_set_label_item"],this)),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip()},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("weather_set_label_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n>6),i.push(128|63&o)):(2048<=o&&o<=55295||57344<=o&&o<=65535)&&(n+=3,i.push(224|15&o>>12),i.push(128|63&o>>6),i.push(128|63&o))}for(s=0;s>8,255&n].concat(i)}(t,!0),i="",n=0;n=0?"0x700000":["mixgo_zero"].indexOf(n)>=0?"0xE00000":"0x3A0000","32x12 Matrix"==_?(e.definitions_.import_matrix32x12="import matrix32x12",i=s+" = matrix32x12.Matrix("+o+",font_address="+a+")\n"):"16x8 Matrix"==_&&(e.definitions_.import_matrix16x8="import matrix16x8",i=s+" = matrix16x8.Matrix("+o+")\n"),i},xL=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},XL=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",space = "+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+",center = "+this.getFieldValue("center")+")\n"},bL=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},yL=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",delay = "+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},VL=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},BL=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",speed ="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+",space = "+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+")\n"},GL=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".fill(0)\n"+i+".show()\n"},UL=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("OP")+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")\n"},wL=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+"))",e.ORDER_ATOMIC]},kL=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".pixel(int("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+"), int("+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+"), "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"+i+".show()\n"},HL=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".get_brightness()",e.ORDER_ATOMIC]},WL=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".set_brightness("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+")\n"},KL=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("image"),e.ORDER_ATOMIC]},JL=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".map_"+t.getFieldValue("OP")+"("+e.valueToCode(t,"A",e.ORDER_ATOMIC)+","+e.valueToCode(t,"B",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},QL=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".map_invert("+e.valueToCode(t,"A",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},zL=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC);return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+" = ssd1306.SSD1306_I2C("+e.valueToCode(this,"row",e.ORDER_ATOMIC)+","+e.valueToCode(this,"column",e.ORDER_ATOMIC)+","+i+")\n"},qL=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_str("+(e.valueToCode(this,"Text_line1",e.ORDER_ASSIGNMENT)||"''")+","+(e.valueToCode(this,"Text_line2",e.ORDER_ASSIGNMENT)||"''")+","+(e.valueToCode(this,"Text_line3",e.ORDER_ASSIGNMENT)||"''")+","+(e.valueToCode(this,"Text_line4",e.ORDER_ASSIGNMENT)||"''")+")\n"},jL=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_line("+e.valueToCode(this,"x1",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"y1",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"x2",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"y2",e.ORDER_ATOMIC)+", 1)\n"},ZL=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),o=e.valueToCode(this,"width",e.ORDER_ATOMIC),_=e.valueToCode(this,"height",e.ORDER_ATOMIC),a="TRUE"==this.getFieldValue("fill")?"True":"False",p=this.getFieldValue("OP");switch(a){case"True":return i+".show_fill_rect("+n+", "+s+", "+o+", "+_+","+p+")\n";case"False":return i+".show_rect("+n+", "+s+", "+o+", "+_+","+p+")\n"}},$L=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),o=e.valueToCode(this,"length",e.ORDER_ATOMIC);return i+".show_"+this.getFieldValue("direction")+"("+n+", "+s+", "+o+", 1)\n"},tN=function(t,e){return["ON"==this.getFieldValue("ONOFF")?"1":"0",e.ORDER_ATOMIC]},eN=function(t,e){e.definitions_.import_matrix="import matrix";var i=t.getFieldValue("OP");return[e.valueToCode(t,"img",e.ORDER_ATOMIC)+".shift_"+i+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},iN=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return e.definitions_.import_ssd1306="import ssd1306",e.definitions_.import_machine="import machine",i+".show_fill("+this.getFieldValue("key")+")\n"},nN=function(t,e){return["matrix.Image."+this.getFieldValue("ANIMATION"),e.ORDER_ATOMIC]},sN=function(t,e){var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),o=e.valueToCode(this,"r",e.ORDER_ATOMIC),_="TRUE"==this.getFieldValue("fill")?"True":"False",a=this.getFieldValue("OP");switch(_){case"True":return i+".show_fill_circle("+n+", "+s+", "+o+", "+a+")\n";case"False":return i+".show_circle("+n+", "+s+", "+o+", "+a+")\n"}},oN=function(t,e){var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var n=e.valueToCode(this,"x0",e.ORDER_ATOMIC),s=e.valueToCode(this,"y0",e.ORDER_ATOMIC),o=e.valueToCode(this,"x1",e.ORDER_ATOMIC),_=e.valueToCode(this,"y1",e.ORDER_ATOMIC),a=e.valueToCode(this,"x2",e.ORDER_ATOMIC),p=e.valueToCode(this,"y2",e.ORDER_ATOMIC),u="TRUE"==this.getFieldValue("fill")?"True":"False",r=this.getFieldValue("OP");switch(u){case"True":return i+".show_fill_triangle("+n+", "+s+", "+o+", "+_+", "+a+", "+p+", "+r+")\n";case"False":return i+".show_triangle("+n+", "+s+", "+o+", "+_+", "+a+", "+p+", "+r+")\n"}},_N=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_bitmap("+e.valueToCode(this,"START_X",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"START_Y",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"bitmap_name",e.ORDER_ATOMIC)+","+e.valueToCode(this,"WIDTH",e.ORDER_ATOMIC)+","+e.valueToCode(this,"HEIGHT",e.ORDER_ATOMIC)+")\n"},aN=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_pixel("+e.valueToCode(this,"POS_X",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"POS_Y",e.ORDER_ATOMIC)+")\n"},pN=function(t,e){var i,n=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),s=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),o=this.getFieldValue("key");return"TM1650"==o?(e.definitions_.import_tm1650="import tm1650",i=n+" = tm1650."+o+"("+s+")\n"):"TM1637"==o&&(e.definitions_.import_tm1637="import tm1637",i=n+" = tm1637."+o+"("+s+")\n"),i},uN=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+"."+this.getFieldValue("STAT")+"()\n"},rN=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".shownum("+e.valueToCode(this,"VALUE",e.ORDER_ATOMIC)+")\n"},lN=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".showDP("+e.valueToCode(this,"NO",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"},dN=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".intensity("+e.valueToCode(this,"VALUE",e.ORDER_ATOMIC)+")\n"},IN=function(t,e){e.definitions_.import_st7789="import st7789";var i=Ot.Boards.getSelectedBoardKey().split(":")[2],n="";n=["mpython","mixgo_pe","mixgo_nova"].indexOf(i)>=0?"0x700000":["mixgo_zero"].indexOf(i)>=0?"0xE00000":"0x3A0000";var s=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),o=e.valueToCode(this,"SPISUB",e.ORDER_ATOMIC),_=e.valueToCode(this,"PINCS",e.ORDER_ATOMIC),a=e.valueToCode(this,"PINDC",e.ORDER_ATOMIC);return s+" = st7789.ST7789("+o+","+e.valueToCode(this,"WIDTH",e.ORDER_ATOMIC)+","+e.valueToCode(this,"HEIGHT",e.ORDER_ATOMIC)+",dc_pin="+a+",cs_pin="+_+",rotation="+this.getFieldValue("rotate")+",font_address="+n+")\n"},TN=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==a.slice(0,2))var p=i+".image("+n+",x = "+s+",y = "+o+",size = "+_+",color="+a+")\n";else{const t=a.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");p=i+".image("+n+",x = "+s+",y = "+o+",size = "+_+",color=0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return p},hN=function(t,e){var i="0x"+this.getFieldValue("COLOR").slice(1);return["0x"+((16252928&i)>>8|(64512&i)>>5|(255&i)>>3).toString(16),e.ORDER_ATOMIC]},MN=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),u=this.getFieldValue("center");if("0x"==p.slice(0,2))var r=i+".shows("+n+",x = "+s+",y = "+o+",size = "+_+",space = "+a+",center = "+u+",color="+p+")\n";else{const t=p.match(/\d+/g);var l="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");r=i+".shows("+n+",x = "+s+",y = "+o+",size = "+_+",space = "+a+",center = "+u+",color=0x"+((16252928&l)>>8|(64512&l)>>5|(255&l)>>3).toString(16)+")\n"}return r},mN=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==_.slice(0,2))var a=i+".frame("+n+",size = "+s+",delay = "+o+",color="+_+")\n";else{const t=_.match(/\d+/g);var p="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a=i+".frame("+n+",size = "+s+",delay = "+o+",color=0x"+((16252928&p)>>8|(64512&p)>>5|(255&p)>>3).toString(16)+")\n"}return a},ON=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var u=i+".scroll("+n+",y = "+s+",size = "+o+",speed ="+_+",space = "+a+",color="+p+")\n";else{const t=p.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u=i+".scroll("+n+",y = "+s+",size = "+o+",speed ="+_+",space = "+a+",color=0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\n"}return u},EN=function(t,e){return e.definitions_.import_st7789="import st7789",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".fill(st7789."+this.getFieldValue("key")+")\n"},RN=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"x1",e.ORDER_ATOMIC),s=e.valueToCode(this,"y1",e.ORDER_ATOMIC),o=e.valueToCode(this,"x2",e.ORDER_ATOMIC),_=e.valueToCode(this,"y2",e.ORDER_ATOMIC),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==a.slice(0,2))var p=i+".line("+n+", "+s+", "+o+", "+_+", color="+a+")\n";else{const t=a.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");p=i+".line("+n+", "+s+", "+o+", "+_+", color=0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return p},cN=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),s=this.getFieldValue("key"),o=e.valueToCode(this,"ADDR",e.ORDER_ATOMIC);return e.definitions_.import_i2clcd="import i2clcd",i+" = i2clcd.LCD("+n+",lcd_width="+s+",i2c_addr="+o+")\n"},gN=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",column = "+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+",line = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",center = "+this.getFieldValue("center")+")\n"},CN=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".print("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",column = "+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+",line = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",delay="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},SN=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".backlight("+this.getFieldValue("key")+")\n"},AN=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".clear()\n"},LN=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),s=e.valueToCode(this,"ADDR",e.ORDER_ATOMIC),o=Ot.Boards.getSelectedBoardKey().split(":")[2],_="";return _=["mpython","mixgo_pe","mixgo_nova"].indexOf(o)>=0?"0x700000":["mixgo_zero"].indexOf(o)>=0?"0xE00000":"0x3A0000",e.definitions_.import_oled128x64="import oled128x64",i+" = oled128x64.OLED("+n+",address="+s+",font_address="+_+")\n"},NN=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".image("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},DN=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".image("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",x = "+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+",y = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",size = "+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+")\n"},fN=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},FN=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",x = "+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+",y = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",size = "+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+",space = "+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+",center = "+this.getFieldValue("center")+")\n"},PN=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},vN=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",size = "+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+",delay = "+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},YN=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},xN=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",y = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",size = "+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+",speed ="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+",space = "+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+")\n"},XN=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".fill(0)\n"+i+".show()\n"},bN=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("OP")+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")\n"},yN=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+"))",e.ORDER_ATOMIC]},VN=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".pixel(int("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+"), int("+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+"), "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"+i+".show()\n"},BN=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),o=e.valueToCode(t,"w",e.ORDER_ATOMIC),_=e.valueToCode(t,"h",e.ORDER_ATOMIC),a=t.getFieldValue("state");return i+"."+t.getFieldValue("shape")+"("+n+", "+s+", "+o+", "+_+", "+a+")\n"+i+".show()\n"},GN=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),o=e.valueToCode(t,"length",e.ORDER_ATOMIC),_=t.getFieldValue("state");return i+"."+("0"==t.getFieldValue("dir_h_v")?"v":"h")+"line("+n+", "+s+", "+o+", "+_+")\n"+i+".show()\n"},UN=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".line("+e.valueToCode(t,"x1",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"y1",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"x2",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"y2",e.ORDER_ATOMIC)+", "+t.getFieldValue("state")+")\n"+i+".show()\n"},wN=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix","onboard_matrix.shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},kN=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),o=this.getFieldValue("center");return"mixgo_zero"==i||"mixgo_nova"==i?(e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft","onboard_tft.shows("+n+",space = "+s+",center = "+o+")\n"):(e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix","onboard_matrix.shows("+n+",space = "+s+",center = "+o+")\n")},HN=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];if("mpython"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var n="onboard_oled.frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";n="onboard_matrix.frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}return n},WN=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix","onboard_matrix.frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",delay = "+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},KN=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];if("mpython"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var n="onboard_oled.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";n="onboard_matrix.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}return n},JN=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix","onboard_matrix.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",speed ="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+",space = "+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+")\n"},QN=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix",["onboard_matrix."+t.getFieldValue("image"),e.ORDER_ATOMIC]},zN=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix",["onboard_matrix."+t.getFieldValue("image"),e.ORDER_ATOMIC]},qN=function(t,e){var i={"#000000":"0","#ff0000":"1"};function n(t){let e="";if(t.length%2==1&&(t="0"+t),t.length<8){let e=8-t.length;for(let i=1;i<=e;i++)t="0"+t}for(let i=1;i<=t.length;i++)i%2==0&&i!==t.length?e=e+t[i-1]+",0x":e+=t[i-1];return"0x"+e}let s=[];for(let e=0;e<12;e++){let o="",_=0,a=0;for(let n=0;n<32;n++)n<8?a=7-n:n<16?a=23-n:n<24?a=39-n:n<32&&(a=55-n),_+=Number(i[t.getFieldValue(e+"-"+n)])*Math.pow(2,31-a);o+=n(_.toString(16)),s.unshift(o)}let o=[];for(let t=0;t>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return p},DD=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),p=this.getFieldValue("center"),u=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==u.slice(0,2))var r="onboard_tft.shows("+n+",x = "+s+",y = "+o+",size = "+_+",space = "+a+",center = "+p+",color="+u+")\n";else{const t=u.match(/\d+/g);var l="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");r="onboard_tft.shows("+n+",x = "+s+",y = "+o+",size = "+_+",space = "+a+",center = "+p+",color=0x"+((16252928&l)>>8|(64512&l)>>5|(255&l)>>3).toString(16)+")\n"}return r},fD=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_tft","onboard_tft.frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",color=0xffff)\n"},FD=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==_.slice(0,2))var a="onboard_tft.frame("+n+",size = "+s+",delay = "+o+",color="+_+")\n";else{const t=_.match(/\d+/g);var p="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a="onboard_tft.frame("+n+",size = "+s+",delay = "+o+",color=0x"+((16252928&p)>>8|(64512&p)>>5|(255&p)>>3).toString(16)+")\n"}return a},PD=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_tft","onboard_tft.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",color=0xffff)\n"},vD=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var u="onboard_tft.scroll("+n+",y = "+s+",size = "+o+",speed ="+_+",space = "+a+",color="+p+")\n";else{const t=p.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u="onboard_tft.scroll("+n+",y = "+s+",size = "+o+",speed ="+_+",space = "+a+",color=0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\n"}return u},YD=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),o=e.valueToCode(t,"w",e.ORDER_ATOMIC),_=e.valueToCode(t,"h",e.ORDER_ATOMIC),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),p=t.getFieldValue("shape");if("0x"==a.slice(0,2))var u="onboard_tft."+p+"("+n+", "+s+", "+o+", "+_+", "+a+")\nonboard_tft.show()\n";else{const t=a.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u="onboard_tft."+p+"("+n+", "+s+", "+o+", "+_+", 0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\nonboard_tft.show()\n"}return u},xD=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),o=e.valueToCode(t,"length",e.ORDER_ATOMIC),_=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),a=t.getFieldValue("dir_h_v");if("0x"==_.slice(0,2))var p="onboard_tft."+("0"==a?"v":"h")+"line("+n+", "+s+", "+o+", "+_+")\nonboard_tft.show()\n";else{const t=_.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");p="onboard_tft."+("0"==a?"v":"h")+"line("+n+", "+s+", "+o+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\nonboard_tft.show()\n"}return p},XD=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x1",e.ORDER_ATOMIC),s=e.valueToCode(t,"y1",e.ORDER_ATOMIC),o=e.valueToCode(t,"x2",e.ORDER_ATOMIC),_=e.valueToCode(t,"y2",e.ORDER_ATOMIC),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==a.slice(0,2))var p="onboard_tft.line("+n+", "+s+", "+o+", "+_+", "+a+")\nonboard_tft.show()\n";else{const t=a.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");p="onboard_tft.line("+n+", "+s+", "+o+", "+_+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\nonboard_tft.show()\n"}return p},bD=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";return"onboard_tft.fill(0)\nonboard_tft.show()\n"},yD=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft","onboard_tft."+t.getFieldValue("OP")+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")\n"},VD=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft",["hex(onboard_tft.pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+")))",e.ORDER_ATOMIC]},BD=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==o.slice(0,2))var _="onboard_tft.pixel(int("+n+"), int("+s+"), "+o+")\nonboard_tft.show()\n";else{const t=o.match(/\d+/g);var a="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");_="onboard_tft.pixel(int("+n+"), int("+s+"), 0x"+((16252928&a)>>8|(64512&a)>>5|(255&a)>>3).toString(16)+")\nonboard_tft.show()\n"}return _},GD=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";return["onboard_tft.get_brightness()",e.ORDER_ATOMIC]},UD=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft","onboard_tft.set_brightness("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+")\n"},wD=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"VAR",e.ORDER_ASSIGNMENT);if("0x"==n.slice(0,2))var s="onboard_tft.fill("+n+")\nonboard_tft.show()\n";else{const t=n.match(/\d+/g);var o="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");s="onboard_tft.fill(0x"+((16252928&o)>>8|(64512&o)>>5|(255&o)>>3).toString(16)+")\nonboard_tft.show()\n"}return s},kD=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock";var n=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==a.slice(0,2))var p=_+"=Clock("+n+","+s+","+o+","+a+")\n";else{const t=a.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");p=_+"=Clock("+n+","+s+","+o+",0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return p},HD=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".set_rtctime()\n"},WD=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".set_time("+e.valueToCode(this,"h",e.ORDER_ASSIGNMENT)+","+e.valueToCode(this,"m",e.ORDER_ASSIGNMENT)+","+e.valueToCode(this,"s",e.ORDER_ASSIGNMENT)+")\n"},KD=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".draw_clock()\n"},JD=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock";var n=e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==s.slice(0,2))var o=n+".clear("+s+")\n";else{const t=s.match(/\d+/g);var _="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");o=n+".clear(0x"+((16252928&_)>>8|(64512&_)>>5|(255&_)>>3).toString(16)+")\n"}return o},QD=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),o=e.valueToCode(t,"r",e.ORDER_ATOMIC),_=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),a=t.getFieldValue("shape");if("0x"==_.slice(0,2))var p="onboard_tft.ellipse("+n+", "+s+", "+o+", "+o+", "+_+","+a+")\nonboard_tft.show()\n";else{const t=_.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");p="onboard_tft.ellipse("+n+", "+s+", "+o+", "+o+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+","+a+")\nonboard_tft.show()\n"}return p},zD=function(t,e){var i=this.getFieldValue("path"),n=this.getFieldValue("module");return e.definitions_["import_"+i+"_"+n]="from "+i+" import "+n,""},qD=function(t,e){var i=this.getFieldValue("module");return e.definitions_["import_"+i]="import "+i,""},jD=function(t,e){for(var i=this.getFieldValue("NAME"),n=new Array(this.itemCount_),s=0;s {\n"+e.statementToCode(this,"do")+"})\n"},GY=function(){return"control.reset()\n"},UY=function(t,e){return"control.waitMicros("+(e.valueToCode(this,"data",e.ORDER_ATOMIC)||Ot.Profile.default.serial)+")\n"},wY=function(t,e){return"control.raiseEvent("+(e.valueToCode(this,"system_event_bus_source",e.ORDER_ATOMIC)||Ot.Profile.default.serial)+", "+(e.valueToCode(this,"system_event_bus_value",e.ORDER_ATOMIC)||Ot.Profile.default.serial)+")\n"},kY=function(t,e){return"control.onEvent("+(e.valueToCode(this,"system_event_bus_source",e.ORDER_ATOMIC)||Ot.Profile.default.serial)+", "+(e.valueToCode(this,"system_event_bus_value",e.ORDER_ATOMIC)||Ot.Profile.default.serial)+", () => {\n"+e.statementToCode(this,"do")+")\n"},HY=function(t,e){return["control.eventTimestamp()",e.ORDER_ATOMIC]},WY=function(t,e){return["control.eventValue()",e.ORDER_ATOMIC]},KY=function(t,e){return[this.getFieldValue("key"),e.ORDER_ATOMIC]},JY=function(t,e){return[this.getFieldValue("key"),e.ORDER_ATOMIC]},QY=function(t,e){return["control.deviceName()",e.ORDER_ATOMIC]},zY=function(t,e){return["control.deviceSerialNumber()",e.ORDER_ATOMIC]},qY=function(t,e){return"panic("+(e.valueToCode(this,"STATUS_CODE",e.ORDER_ATOMIC)||"1000")+")\n"},jY=function(t,e){switch(e.definitions_.import_time="import time",this.getFieldValue("Time")){case"ms":return["time.ticks_ms()",e.ORDER_ATOMIC];case"us":return["time.ticks_us()",e.ORDER_ATOMIC]}},ZY=function(){return"while True:\n pass\n"},$Y=function(t,e){return e.definitions_.import_mixgo="import mixgo","reset()\n"},tx=function(t,e){return e.definitions_.import_os="import os","os.uname()"},ex=function(t,e){e.definitions_.import_time="import time";var i=e.valueToCode(this,"DELAY_TIME",e.ORDER_ATOMIC)||"1000";switch(this.getFieldValue("Time")){case"s":return"time.sleep("+i+")\n";case"ms":return"time.sleep_ms("+i+")\n";case"us":return"time.sleep_us("+i+")\n"}},ix=function(t,e){e.definitions_.import_time="import time";var i=e.valueToCode(this,"DELAY_TIME",e.ORDER_ATOMIC)||"1000";switch(this.getFieldValue("Time")){case"s":return"time.sleep("+i+")\n";case"ms":return"time.sleep_ms("+i+")\n";case"us":return"time.sleep_us("+i+")\n"}},nx=function(t,e){return e.definitions_.import_mixgo="import mixgo",(e.valueToCode(this,"VAR",e.ORDER_NONE)||"None")+".init(period = "+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+", mode = Timer."+(e.valueToCode(this,"mode",e.ORDER_NONE)||"None")+", callback = "+(e.valueToCode(this,"callback",e.ORDER_NONE)||"None")+")\n"},sx=function(t,e){return e.definitions_.import_machine="import machine",(e.valueToCode(this,"VAR",e.ORDER_NONE)||"None")+".init(period = "+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+", mode = machine.Timer."+this.getFieldValue("mode")+", callback = "+(e.valueToCode(this,"callback",e.ORDER_NONE)||"None")+")\n"},ox=function(t,e){return e.definitions_.import_time="import time",["time.ticks_diff("+(e.valueToCode(this,"END",e.ORDER_NONE)||"0")+", "+(e.valueToCode(this,"START",e.ORDER_NONE)||"0")+")",e.ORDER_ATOMIC]},_x=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return e.definitions_.import_machine="import machine",i+" = machine.Timer(0)\n"},ax=function(t,e){return e.definitions_.import_machine="import machine","wdt = machine.WDT(timeout= "+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+")\n"},px=function(t,e){e.definitions_.import_machine="import machine";return"wdt.feed()\n"},ux=function(t,e){e.definitions_.import_machine="import machine";return"machine.reset()\n"},rx=function(t,e){e.definitions_.import_bitbot_onboard_bot51="from bitbot import onboard_bot51";return"onboard_bot51.shutdown()\n"},lx=_x,dx=sx,Ix=ox,Tx=ex,hx=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api."+this.getFieldValue("mode")+"("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+","+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Mx=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api."+this.getFieldValue("mode")+"("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+","+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+","+e.valueToCode(this,"day",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},mx=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api.weather_hourly("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+","+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+","+e.valueToCode(this,"hour",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Ox={};Ox["MixGo CC"]={description:"MicroPython[ESP32C3 MixGo CC]",digital_pin:Ot.Profile.generate(["0-11","18-21"]),input_pin:Ot.Profile.generate(["0-11","18-21"]),output_pin:Ot.Profile.generate(["0-11","18-21"]),pwm_input:Ot.Profile.generate(["0-11","18-21"],"pwm","pwm"),analog_input:Ot.Profile.generate(["0-5"],"adc","adc"),pwm_output:Ot.Profile.generate(["0-11","18-21"],"pwm","pwm"),analog_output:Ot.Profile.generate(["0-5"],"adc","adc"),espnow_channel:Ot.Profile.generate(["1-13"]),haskylens_model:Ot.Profile.generate(["0-4"]),digital:Ot.Profile.generate(["0-11","18-21"],"pin","pin"),pwm_pin:Ot.Profile.generate(["0-11","18-21"]),pwm:Ot.Profile.generate(["0-11","18-21"],"pwm","pwm"),analog_pin:Ot.Profile.generate(["0-5"]),analog:Ot.Profile.generate(["0-5"],"adc","adc"),button:[["B1","B1key"],["B2","B2key"],["A1","A1key"],["A2","A2key"],["A3","A3key"],["A4","A4key"]],buttonB:[["B1","B1key"],["B2","B2key"]],axis:Ot.Profile.generate(["0-4"]),exlcdh:Ot.Profile.generate(["0-31"]),exlcdv:Ot.Profile.generate(["0-11"]),brightness:Ot.Profile.generate(["0-9"]),tts_voice:Ot.Profile.generate(["0-16"]),tts_builtin_music:Ot.Profile.generate(["0-47"]),tts_bgmusic:Ot.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["SILLY","onboard_matrix.SILLY"],["FABULOUS","onboard_matrix.FABULOUS"],["SURPRISED","onboard_matrix.SURPRISED"],["ASLEEP","onboard_matrix.ASLEEP"],["ANGRY","onboard_matrix.ANGRY"],["CONFUSED","onboard_matrix.CONFUSED"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"],["LEFT_ARROW","onboard_matrix.LEFT_ARROW"],["RIGHT_ARROW","onboard_matrix.RIGHT_ARROW"],["DRESS","onboard_matrix.DRESS"],["TRANSFORMERS","onboard_matrix.TRANSFORMERS"],["SCISSORS","onboard_matrix.SCISSORS"],["EXIT","onboard_matrix.EXIT"],["TREE","onboard_matrix.TREE"],["PACMAN","onboard_matrix.PACMAN"],["TARGET","onboard_matrix.TARGET"],["TSHIRT","onboard_matrix.TSHIRT"],["ROLLERSKATE","onboard_matrix.ROLLERSKATE"],["DUCK","onboard_matrix.DUCK"],["HOUSE","onboard_matrix.HOUSE"],["TORTOISE","onboard_matrix.TORTOISE"],["BUTTERFLY","onboard_matrix.BUTTERFLY"],["STICKFIGURE","onboard_matrix.STICKFIGURE"],["GHOST","onboard_matrix.GHOST"],["PITCHFORK","onboard_matrix.PITCHFORK"],["MUSIC_QUAVERS","onboard_matrix.MUSIC_QUAVERS"],["MUSIC_QUAVER","onboard_matrix.MUSIC_QUAVER"],["MUSIC_CROTCHET","onboard_matrix.MUSIC_CROTCHET"],["COW","onboard_matrix.COW"],["RABBIT","onboard_matrix.RABBIT"],["SQUARE_SMALL","onboard_matrix.SQUARE_SMALL"],["SQUARE","onboard_matrix.SQUARE"],["DIAMOND_SMALL","onboard_matrix.DIAMOND_SMALL"],["DIAMOND","onboard_matrix.DIAMOND"],["CHESSBOARD","onboard_matrix.CHESSBOARD"],["TRIANGLE_LEFT","onboard_matrix.TRIANGLE_LEFT"],["TRIANGLE","onboard_matrix.TRIANGLE"],["SNAKE","onboard_matrix.SNAKE"],["UMBRELLA","onboard_matrix.UMBRELLA"],["SKULL","onboard_matrix.SKULL"],["GIRAFFE","onboard_matrix.GIRAFFE"],["SWORD","onboard_matrix.SWORD"]],builtinimg_extern:[["HEART","matrix32x12.Matrix.HEART"],["HEART_SMALL","matrix32x12.Matrix.HEART_SMALL"],["HAPPY","matrix32x12.Matrix.HAPPY"],["SAD","matrix32x12.Matrix.SAD"],["SMILE","matrix32x12.Matrix.SMILE"],["SILLY","matrix32x12.Matrix.SILLY"],["FABULOUS","matrix32x12.Matrix.FABULOUS"],["SURPRISED","matrix32x12.Matrix.SURPRISED"],["ASLEEP","matrix32x12.Matrix.ASLEEP"],["ANGRY","matrix32x12.Matrix.ANGRY"],["CONFUSED","matrix32x12.Matrix.CONFUSED"],["NO","matrix32x12.Matrix.NO"],["YES","matrix32x12.Matrix.YES"],["LEFT_ARROW","matrix32x12.Matrix.LEFT_ARROW"],["RIGHT_ARROW","matrix32x12.Matrix.RIGHT_ARROW"],["DRESS","matrix32x12.Matrix.DRESS"],["TRANSFORMERS","matrix32x12.Matrix.TRANSFORMERS"],["SCISSORS","matrix32x12.Matrix.SCISSORS"],["EXIT","matrix32x12.Matrix.EXIT"],["TREE","matrix32x12.Matrix.TREE"],["PACMAN","matrix32x12.Matrix.PACMAN"],["TARGET","matrix32x12.Matrix.TARGET"],["TSHIRT","matrix32x12.Matrix.TSHIRT"],["ROLLERSKATE","matrix32x12.Matrix.ROLLERSKATE"],["DUCK","matrix32x12.Matrix.DUCK"],["HOUSE","matrix32x12.Matrix.HOUSE"],["TORTOISE","matrix32x12.Matrix.TORTOISE"],["BUTTERFLY","matrix32x12.Matrix.BUTTERFLY"],["STICKFIGURE","matrix32x12.Matrix.STICKFIGURE"],["GHOST","matrix32x12.Matrix.GHOST"],["PITCHFORK","matrix32x12.Matrix.PITCHFORK"],["onboard_music_QUAVERS","matrix32x12.Matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","matrix32x12.Matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","matrix32x12.Matrix.onboard_music_CROTCHET"],["COW","matrix32x12.Matrix.COW"],["RABBIT","matrix32x12.Matrix.RABBIT"],["SQUARE_SMALL","matrix32x12.Matrix.SQUARE_SMALL"],["SQUARE","matrix32x12.Matrix.SQUARE"],["DIAMOND_SMALL","matrix32x12.Matrix.DIAMOND_SMALL"],["DIAMOND","matrix32x12.Matrix.DIAMOND"],["CHESSBOARD","matrix32x12.Matrix.CHESSBOARD"],["TRIANGLE_LEFT","matrix32x12.Matrix.TRIANGLE_LEFT"],["TRIANGLE","matrix32x12.Matrix.TRIANGLE"],["SNAKE","matrix32x12.Matrix.SNAKE"],["UMBRELLA","matrix32x12.Matrix.UMBRELLA"],["SKULL","matrix32x12.Matrix.SKULL"],["GIRAFFE","matrix32x12.Matrix.GIRAFFE"],["SWORD","matrix32x12.Matrix.SWORD"]],imglist:[["ALL_CLOCKS","matrix.Image.ALL_CLOCKS"],["ALL_ARROWS","matrix.Image.ALL_ARROWS"]],playlist:[["DADADADUM","onboard_music.DADADADUM"],["ENTERTAINER","onboard_music.ENTERTAINER"],["PRELUDE","onboard_music.PRELUDE"],["ODE","onboard_music.ODE"],["NYAN","onboard_music.NYAN"],["RINGTONE","onboard_music.RINGTONE"],["FUNK","onboard_music.FUNK"],["BLUES","onboard_music.BLUES"],["BIRTHDAY","onboard_music.BIRTHDAY"],["WEDDING","onboard_music.WEDDING"],["FUNERAL","onboard_music.FUNERAL"],["PUNCHLINE","onboard_music.PUNCHLINE"],["PYTHON","onboard_music.PYTHON"],["BADDY","onboard_music.BADDY"],["CHASE","onboard_music.CHASE"],["BA_DING","onboard_music.BA_DING"],["WAWAWAWAA","onboard_music.WAWAWAWAA"],["JUMP_UP","onboard_music.JUMP_UP"],["JUMP_DOWN","onboard_music.JUMP_DOWN"],["POWER_UP","onboard_music.POWER_UP"],["POWER_DOWN","onboard_music.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],tone_notes:[["NOTE_C3","131"],["NOTE_D3","147"],["NOTE_E3","165"],["NOTE_F3","175"],["NOTE_G3","196"],["NOTE_A3","220"],["NOTE_B3","247"],["NOTE_C4","262"],["NOTE_D4","294"],["NOTE_E4","330"],["NOTE_F4","349"],["NOTE_G4","392"],["NOTE_A4","440"],["NOTE_B4","494"],["NOTE_C5","523"],["NOTE_D5","587"],["NOTE_E5","659"],["NOTE_F5","698"],["NOTE_G5","784"],["NOTE_A5","880"],["NOTE_B5","988"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"]]},Ox["MixGo ME"]={description:"MicroPython[ESP32C3 MixGo ME]",digital_pin:Ot.Profile.generate(["0-11","18-21"]),input_pin:Ot.Profile.generate(["0-11","18-21"]),output_pin:Ot.Profile.generate(["0-11","18-21"]),pwm_input:Ot.Profile.generate(["0-11","18-21"],"pwm","pwm"),analog_input:Ot.Profile.generate(["0-5"],"adc","adc"),pwm_output:Ot.Profile.generate(["0-11","18-21"],"pwm","pwm"),analog_output:Ot.Profile.generate(["0-5"],"adc","adc"),espnow_channel:Ot.Profile.generate(["1-13"]),haskylens_model:Ot.Profile.generate(["0-4"]),digital:Ot.Profile.generate(["0-11","18-21"],"pin","pin"),pwm_pin:Ot.Profile.generate(["0-11","18-21"]),pwm:Ot.Profile.generate(["0-11","18-21"],"pwm","pwm"),analog_pin:Ot.Profile.generate(["0-5"]),analog:Ot.Profile.generate(["0-5"],"adc","adc"),button:[["B1","B1key"],["B2","B2key"],["A1","A1key"],["A2","A2key"],["A3","A3key"],["A4","A4key"]],buttonB:[["B1","B1key"],["B2","B2key"]],axis:Ot.Profile.generate(["0-4"]),exlcdh:Ot.Profile.generate(["0-7"]),exlcdv:Ot.Profile.generate(["0-4"]),brightness:Ot.Profile.generate(["0-9"]),tts_voice:Ot.Profile.generate(["0-16"]),tts_builtin_music:Ot.Profile.generate(["0-47"]),tts_bgmusic:Ot.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["SILLY","onboard_matrix.SILLY"],["FABULOUS","onboard_matrix.FABULOUS"],["SURPRISED","onboard_matrix.SURPRISED"],["ASLEEP","onboard_matrix.ASLEEP"],["ANGRY","onboard_matrix.ANGRY"],["CONFUSED","onboard_matrix.CONFUSED"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"],["LEFT_ARROW","onboard_matrix.LEFT_ARROW"],["RIGHT_ARROW","onboard_matrix.RIGHT_ARROW"],["DRESS","onboard_matrix.DRESS"],["TRANSFORMERS","onboard_matrix.TRANSFORMERS"],["SCISSORS","onboard_matrix.SCISSORS"],["EXIT","onboard_matrix.EXIT"],["TREE","onboard_matrix.TREE"],["PACMAN","onboard_matrix.PACMAN"],["TARGET","onboard_matrix.TARGET"],["TSHIRT","onboard_matrix.TSHIRT"],["ROLLERSKATE","onboard_matrix.ROLLERSKATE"],["DUCK","onboard_matrix.DUCK"],["HOUSE","onboard_matrix.HOUSE"],["TORTOISE","onboard_matrix.TORTOISE"],["BUTTERFLY","onboard_matrix.BUTTERFLY"],["STICKFIGURE","onboard_matrix.STICKFIGURE"],["GHOST","onboard_matrix.GHOST"],["PITCHFORK","onboard_matrix.PITCHFORK"],["MUSIC_QUAVERS","onboard_matrix.MUSIC_QUAVERS"],["MUSIC_QUAVER","onboard_matrix.MUSIC_QUAVER"],["MUSIC_CROTCHET","onboard_matrix.MUSIC_CROTCHET"],["COW","onboard_matrix.COW"],["RABBIT","onboard_matrix.RABBIT"],["SQUARE_SMALL","onboard_matrix.SQUARE_SMALL"],["SQUARE","onboard_matrix.SQUARE"],["DIAMOND_SMALL","onboard_matrix.DIAMOND_SMALL"],["DIAMOND","onboard_matrix.DIAMOND"],["CHESSBOARD","onboard_matrix.CHESSBOARD"],["TRIANGLE_LEFT","onboard_matrix.TRIANGLE_LEFT"],["TRIANGLE","onboard_matrix.TRIANGLE"],["SNAKE","onboard_matrix.SNAKE"],["UMBRELLA","onboard_matrix.UMBRELLA"],["SKULL","onboard_matrix.SKULL"],["GIRAFFE","onboard_matrix.GIRAFFE"],["SWORD","onboard_matrix.SWORD"]],builtinimg_extern:[["HEART","matrix32x12.Matrix.HEART"],["HEART_SMALL","matrix32x12.Matrix.HEART_SMALL"],["HAPPY","matrix32x12.Matrix.HAPPY"],["SAD","matrix32x12.Matrix.SAD"],["SMILE","matrix32x12.Matrix.SMILE"],["SILLY","matrix32x12.Matrix.SILLY"],["FABULOUS","matrix32x12.Matrix.FABULOUS"],["SURPRISED","matrix32x12.Matrix.SURPRISED"],["ASLEEP","matrix32x12.Matrix.ASLEEP"],["ANGRY","matrix32x12.Matrix.ANGRY"],["CONFUSED","matrix32x12.Matrix.CONFUSED"],["NO","matrix32x12.Matrix.NO"],["YES","matrix32x12.Matrix.YES"],["LEFT_ARROW","matrix32x12.Matrix.LEFT_ARROW"],["RIGHT_ARROW","matrix32x12.Matrix.RIGHT_ARROW"],["DRESS","matrix32x12.Matrix.DRESS"],["TRANSFORMERS","matrix32x12.Matrix.TRANSFORMERS"],["SCISSORS","matrix32x12.Matrix.SCISSORS"],["EXIT","matrix32x12.Matrix.EXIT"],["TREE","matrix32x12.Matrix.TREE"],["PACMAN","matrix32x12.Matrix.PACMAN"],["TARGET","matrix32x12.Matrix.TARGET"],["TSHIRT","matrix32x12.Matrix.TSHIRT"],["ROLLERSKATE","matrix32x12.Matrix.ROLLERSKATE"],["DUCK","matrix32x12.Matrix.DUCK"],["HOUSE","matrix32x12.Matrix.HOUSE"],["TORTOISE","matrix32x12.Matrix.TORTOISE"],["BUTTERFLY","matrix32x12.Matrix.BUTTERFLY"],["STICKFIGURE","matrix32x12.Matrix.STICKFIGURE"],["GHOST","matrix32x12.Matrix.GHOST"],["PITCHFORK","matrix32x12.Matrix.PITCHFORK"],["onboard_music_QUAVERS","matrix32x12.Matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","matrix32x12.Matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","matrix32x12.Matrix.onboard_music_CROTCHET"],["COW","matrix32x12.Matrix.COW"],["RABBIT","matrix32x12.Matrix.RABBIT"],["SQUARE_SMALL","matrix32x12.Matrix.SQUARE_SMALL"],["SQUARE","matrix32x12.Matrix.SQUARE"],["DIAMOND_SMALL","matrix32x12.Matrix.DIAMOND_SMALL"],["DIAMOND","matrix32x12.Matrix.DIAMOND"],["CHESSBOARD","matrix32x12.Matrix.CHESSBOARD"],["TRIANGLE_LEFT","matrix32x12.Matrix.TRIANGLE_LEFT"],["TRIANGLE","matrix32x12.Matrix.TRIANGLE"],["SNAKE","matrix32x12.Matrix.SNAKE"],["UMBRELLA","matrix32x12.Matrix.UMBRELLA"],["SKULL","matrix32x12.Matrix.SKULL"],["GIRAFFE","matrix32x12.Matrix.GIRAFFE"],["SWORD","matrix32x12.Matrix.SWORD"]],imglist:[["ALL_CLOCKS","matrix.Image.ALL_CLOCKS"],["ALL_ARROWS","matrix.Image.ALL_ARROWS"]],playlist:[["DADADADUM","onboard_music.DADADADUM"],["ENTERTAINER","onboard_music.ENTERTAINER"],["PRELUDE","onboard_music.PRELUDE"],["ODE","onboard_music.ODE"],["NYAN","onboard_music.NYAN"],["RINGTONE","onboard_music.RINGTONE"],["FUNK","onboard_music.FUNK"],["BLUES","onboard_music.BLUES"],["BIRTHDAY","onboard_music.BIRTHDAY"],["WEDDING","onboard_music.WEDDING"],["FUNERAL","onboard_music.FUNERAL"],["PUNCHLINE","onboard_music.PUNCHLINE"],["PYTHON","onboard_music.PYTHON"],["BADDY","onboard_music.BADDY"],["CHASE","onboard_music.CHASE"],["BA_DING","onboard_music.BA_DING"],["WAWAWAWAA","onboard_music.WAWAWAWAA"],["JUMP_UP","onboard_music.JUMP_UP"],["JUMP_DOWN","onboard_music.JUMP_DOWN"],["POWER_UP","onboard_music.POWER_UP"],["POWER_DOWN","onboard_music.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],tone_notes:[["NOTE_C3","131"],["NOTE_D3","147"],["NOTE_E3","165"],["NOTE_F3","175"],["NOTE_G3","196"],["NOTE_A3","220"],["NOTE_B3","247"],["NOTE_C4","262"],["NOTE_D4","294"],["NOTE_E4","330"],["NOTE_F4","349"],["NOTE_G4","392"],["NOTE_A4","440"],["NOTE_B4","494"],["NOTE_C5","523"],["NOTE_D5","587"],["NOTE_E5","659"],["NOTE_F5","698"],["NOTE_G5","784"],["NOTE_A5","880"],["NOTE_B5","988"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"]]},Ox["MixGo Car 4.2"]={description:"MicroPython[ESP32]",digital_pin:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"],["10","10"],["20","20"],["21","21"]],digital:[["pin0","pin0"],["pin1","pin1"],["pin2","pin2"],["pin3","pin3"],["pin4","pin4"],["pin5","pin5"],["pin6","pin6"],["pin7","pin7"],["pin8","pin8"],["pin9","pin9"],["pin10","pin10"],["pin20","pin20"],["pin21","pin21"]],pwm_pin:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"],["10","10"],["20","20"],["21","21"]],pwm:[["pwm0","pwm0"],["pwm1","pwm1"],["pwm2","pwm2"],["pwm3","pwm3"],["pwm4","pwm4"],["pwm5","pwm5"],["pwm6","pwm6"],["pwm7","pwm7"],["pwm8","pwm8"],["pwm9","pwm9"],["pwm10","pwm10"],["pwm20","pwm20"],["pwm21","pwm21"]],espnow_channel:[["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"],["10","10"],["11","11"],["12","12"],["13","13"]],i2c_A_pin:[["6","6"],["9","9"]],i2c_B_pin:[["7","7"],["10","10"]],spi_A_pin:[["6","6"],["9","9"]],spi_B_pin:[["7","7"],["10","10"]],spi_C_pin:[["9","9"],["20","20"]],spi_D_pin:[["10","10"],["21","21"]],analog_pin:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"]],analog:[["adc0","adc0"],["adc1","adc1"],["adc2","adc2"],["adc3","adc3"],["adc4","adc4"]],dac_pin:[["25","25"],["26","26"]],dac:[["dac25","dac25"],["dac26","dac26"]],touch:[["tc0","tc0"],["tc2","tc2"],["tc4","tc4"],["tc12","tc12"],["tc13","tc13"],["tc14","tc14"],["tc15","tc15"],["tc27","tc27"],["tc32","tc32"],["tc33","tc33"]],touch_pin:[["0","0"],["2","2"],["4","4"],["12","12"],["13","13"],["14","14"],["15","15"],["27","27"],["32","32"],["33","33"]],button:[["A","button_a"],["B","button_b"]],buttonB:[["B","button_b"]],axis:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"]],exlcdh:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"],["10","10"],["11","11"],["12","12"],["13","13"],["14","14"],["15","15"],["16","16"],["17","17"],["18","18"],["19","19"],["20","20"],["21","21"],["22","22"],["23","23"],["24","24"],["25","25"],["26","26"],["27","27"],["28","28"],["29","29"],["30","30"],["31","31"]],exlcdv:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"],["10","10"],["11","11"]],brightness:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"]],builtinimg:[["HEART","matrix.Image.HEART"],["HEART_SMALL","matrix.Image.HEART_SMALL"],["HAPPY","matrix.Image.HAPPY"],["SAD","matrix.Image.SAD"],["SMILE","matrix.Image.SMILE"],["SILLY","matrix.Image.SILLY"],["FABULOUS","matrix.Image.FABULOUS"],["SURPRISED","matrix.Image.SURPRISED"],["ASLEEP","matrix.Image.ASLEEP"],["ANGRY","matrix.Image.ANGRY"],["CONFUSED","matrix.Image.CONFUSED"],["NO","matrix.Image.NO"],["YES","matrix.Image.YES"],["LEFT_ARROW","matrix.Image.LEFT_ARROW"],["RIGHT_ARROW","matrix.Image.RIGHT_ARROW"],["DRESS","matrix.Image.DRESS"],["TRANSFORMERS","matrix.Image.TRANSFORMERS"],["SCISSORS","matrix.Image.SCISSORS"],["EXIT","matrix.Image.EXIT"],["TREE","matrix.Image.TREE"],["PACMAN","matrix.Image.PACMAN"],["TARGET","matrix.Image.TARGET"],["TSHIRT","matrix.Image.TSHIRT"],["ROLLERSKATE","matrix.Image.ROLLERSKATE"],["DUCK","matrix.Image.DUCK"],["HOUSE","matrix.Image.HOUSE"],["TORTOISE","matrix.Image.TORTOISE"],["BUTTERFLY","matrix.Image.BUTTERFLY"],["STICKFIGURE","matrix.Image.STICKFIGURE"],["GHOST","matrix.Image.GHOST"],["PITCHFORK","matrix.Image.PITCHFORK"],["MUSIC_QUAVERS","matrix.Image.MUSIC_QUAVERS"],["MUSIC_QUAVER","matrix.Image.MUSIC_QUAVER"],["MUSIC_CROTCHET","matrix.Image.MUSIC_CROTCHET"],["COW","matrix.Image.COW"],["RABBIT","matrix.Image.RABBIT"],["SQUARE_SMALL","matrix.Image.SQUARE_SMALL"],["SQUARE","matrix.Image.SQUARE"],["DIAMOND_SMALL","matrix.Image.DIAMOND_SMALL"],["DIAMOND","matrix.Image.DIAMOND"],["CHESSBOARD","matrix.Image.CHESSBOARD"],["TRIANGLE_LEFT","matrix.Image.TRIANGLE_LEFT"],["TRIANGLE","matrix.Image.TRIANGLE"],["SNAKE","matrix.Image.SNAKE"],["UMBRELLA","matrix.Image.UMBRELLA"],["SKULL","matrix.Image.SKULL"],["GIRAFFE","matrix.Image.GIRAFFE"],["SWORD","matrix.Image.SWORD"]],imglist:[["ALL_CLOCKS","matrix.Image.ALL_CLOCKS"],["ALL_ARROWS","matrix.Image.ALL_ARROWS"]],playlist:[["DADADADUM","music.DADADADUM"],["ENTERTAINER","music.ENTERTAINER"],["PRELUDE","music.PRELUDE"],["ODE","music.ODE"],["NYAN","music.NYAN"],["RINGTONE","music.RINGTONE"],["FUNK","music.FUNK"],["BLUES","music.BLUES"],["BIRTHDAY","music.BIRTHDAY"],["WEDDING","music.WEDDING"],["FUNERAL","music.FUNERAL"],["PUNCHLINE","music.PUNCHLINE"],["PYTHON","music.PYTHON"],["BADDY","music.BADDY"],["CHASE","music.CHASE"],["BA_DING","music.BA_DING"],["WAWAWAWAA","music.WAWAWAWAA"],["JUMP_UP","music.JUMP_UP"],["JUMP_DOWN","music.JUMP_DOWN"],["POWER_UP","music.POWER_UP"],["POWER_DOWN","music.POWER_DOWN"]],tone_notes:[["NOTE_C3","131"],["NOTE_D3","147"],["NOTE_E3","165"],["NOTE_F3","175"],["NOTE_G3","196"],["NOTE_A3","220"],["NOTE_B3","247"],["NOTE_C4","262"],["NOTE_D4","294"],["NOTE_E4","330"],["NOTE_F4","349"],["NOTE_G4","392"],["NOTE_A4","440"],["NOTE_B4","494"],["NOTE_C5","523"],["NOTE_D5","587"],["NOTE_E5","659"],["NOTE_F5","698"],["NOTE_G5","784"],["NOTE_A5","880"],["NOTE_B5","988"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"]]},Ox["ESP32C3 Generic"]={description:"MicroPython[ESP32C3 MixGo CC]",digital_pin:Ot.Profile.generate(["0-11","18-21"]),input_pin:Ot.Profile.generate(["0-11","18-21"]),output_pin:Ot.Profile.generate(["0-11","18-21"]),pwm_input:Ot.Profile.generate(["0-11","18-21"],"pwm","pwm"),analog_input:Ot.Profile.generate(["0-5"],"adc","adc"),pwm_output:Ot.Profile.generate(["0-11","18-21"],"pwm","pwm"),analog_output:Ot.Profile.generate(["0-5"],"adc","adc"),espnow_channel:Ot.Profile.generate(["1-13"]),haskylens_model:Ot.Profile.generate(["0-4"]),digital:Ot.Profile.generate(["0-11","18-21"],"pin","pin"),pwm_pin:Ot.Profile.generate(["0-11","18-21"]),pwm:Ot.Profile.generate(["0-11","18-21"],"pwm","pwm"),analog_pin:Ot.Profile.generate(["0-5"]),analog:Ot.Profile.generate(["0-5"],"adc","adc"),button:[["B1","B1key"],["B2","B2key"],["A1","A1key"],["A2","A2key"],["A3","A3key"],["A4","A4key"]],buttonB:[["B1","B1key"],["B2","B2key"]],axis:Ot.Profile.generate(["0-4"]),exlcdh:Ot.Profile.generate(["0-31"]),exlcdv:Ot.Profile.generate(["0-11"]),brightness:Ot.Profile.generate(["0-9"]),tts_voice:Ot.Profile.generate(["0-16"]),tts_builtin_music:Ot.Profile.generate(["0-47"]),tts_bgmusic:Ot.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["SILLY","onboard_matrix.SILLY"],["FABULOUS","onboard_matrix.FABULOUS"],["SURPRISED","onboard_matrix.SURPRISED"],["ASLEEP","onboard_matrix.ASLEEP"],["ANGRY","onboard_matrix.ANGRY"],["CONFUSED","onboard_matrix.CONFUSED"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"]],builtinimg_extern:[["HEART","matrix32x12.Matrix.HEART"],["HEART_SMALL","matrix32x12.Matrix.HEART_SMALL"],["HAPPY","matrix32x12.Matrix.HAPPY"],["SAD","matrix32x12.Matrix.SAD"],["SMILE","matrix32x12.Matrix.SMILE"],["SILLY","matrix32x12.Matrix.SILLY"],["FABULOUS","matrix32x12.Matrix.FABULOUS"],["SURPRISED","matrix32x12.Matrix.SURPRISED"],["ASLEEP","matrix32x12.Matrix.ASLEEP"],["ANGRY","matrix32x12.Matrix.ANGRY"],["CONFUSED","matrix32x12.Matrix.CONFUSED"],["NO","matrix32x12.Matrix.NO"],["YES","matrix32x12.Matrix.YES"],["LEFT_ARROW","matrix32x12.Matrix.LEFT_ARROW"],["RIGHT_ARROW","matrix32x12.Matrix.RIGHT_ARROW"],["DRESS","matrix32x12.Matrix.DRESS"],["TRANSFORMERS","matrix32x12.Matrix.TRANSFORMERS"],["SCISSORS","matrix32x12.Matrix.SCISSORS"],["EXIT","matrix32x12.Matrix.EXIT"],["TREE","matrix32x12.Matrix.TREE"],["PACMAN","matrix32x12.Matrix.PACMAN"],["TARGET","matrix32x12.Matrix.TARGET"],["TSHIRT","matrix32x12.Matrix.TSHIRT"],["ROLLERSKATE","matrix32x12.Matrix.ROLLERSKATE"],["DUCK","matrix32x12.Matrix.DUCK"],["HOUSE","matrix32x12.Matrix.HOUSE"],["TORTOISE","matrix32x12.Matrix.TORTOISE"],["BUTTERFLY","matrix32x12.Matrix.BUTTERFLY"],["STICKFIGURE","matrix32x12.Matrix.STICKFIGURE"],["GHOST","matrix32x12.Matrix.GHOST"],["PITCHFORK","matrix32x12.Matrix.PITCHFORK"],["onboard_music_QUAVERS","matrix32x12.Matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","matrix32x12.Matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","matrix32x12.Matrix.onboard_music_CROTCHET"],["COW","matrix32x12.Matrix.COW"],["RABBIT","matrix32x12.Matrix.RABBIT"],["SQUARE_SMALL","matrix32x12.Matrix.SQUARE_SMALL"],["SQUARE","matrix32x12.Matrix.SQUARE"],["DIAMOND_SMALL","matrix32x12.Matrix.DIAMOND_SMALL"],["DIAMOND","matrix32x12.Matrix.DIAMOND"],["CHESSBOARD","matrix32x12.Matrix.CHESSBOARD"],["TRIANGLE_LEFT","matrix32x12.Matrix.TRIANGLE_LEFT"],["TRIANGLE","matrix32x12.Matrix.TRIANGLE"],["SNAKE","matrix32x12.Matrix.SNAKE"],["UMBRELLA","matrix32x12.Matrix.UMBRELLA"],["SKULL","matrix32x12.Matrix.SKULL"],["GIRAFFE","matrix32x12.Matrix.GIRAFFE"],["SWORD","matrix32x12.Matrix.SWORD"]],imglist:[["ALL_CLOCKS","matrix.Image.ALL_CLOCKS"],["ALL_ARROWS","matrix.Image.ALL_ARROWS"]],playlist:[["DADADADUM","onboard_music.DADADADUM"],["ENTERTAINER","onboard_music.ENTERTAINER"],["PRELUDE","onboard_music.PRELUDE"],["ODE","onboard_music.ODE"],["NYAN","onboard_music.NYAN"],["RINGTONE","onboard_music.RINGTONE"],["FUNK","onboard_music.FUNK"],["BLUES","onboard_music.BLUES"],["BIRTHDAY","onboard_music.BIRTHDAY"],["WEDDING","onboard_music.WEDDING"],["FUNERAL","onboard_music.FUNERAL"],["PUNCHLINE","onboard_music.PUNCHLINE"],["PYTHON","onboard_music.PYTHON"],["BADDY","onboard_music.BADDY"],["CHASE","onboard_music.CHASE"],["BA_DING","onboard_music.BA_DING"],["WAWAWAWAA","onboard_music.WAWAWAWAA"],["JUMP_UP","onboard_music.JUMP_UP"],["JUMP_DOWN","onboard_music.JUMP_DOWN"],["POWER_UP","onboard_music.POWER_UP"],["POWER_DOWN","onboard_music.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],tone_notes:[["NOTE_C3","131"],["NOTE_D3","147"],["NOTE_E3","165"],["NOTE_F3","175"],["NOTE_G3","196"],["NOTE_A3","220"],["NOTE_B3","247"],["NOTE_C4","262"],["NOTE_D4","294"],["NOTE_E4","330"],["NOTE_F4","349"],["NOTE_G4","392"],["NOTE_A4","440"],["NOTE_B4","494"],["NOTE_C5","523"],["NOTE_D5","587"],["NOTE_E5","659"],["NOTE_F5","698"],["NOTE_G5","784"],["NOTE_A5","880"],["NOTE_B5","988"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"]]};const Ex=Ox,Rx=20,cx={init:function(){this.setColour(Rx),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_HIGH,"HIGH"],[mt.Msg.MIXLY_LOW,"LOW"]]),"BOOL"),this.setOutput(!0,Boolean),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_HIGHLOW_TOOLTIP)}},gx={init:function(){this.setColour(Rx),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_Digital_PINMODEOUT).setCheck(Number),this.appendValueInput("STAT").appendField(mt.Msg.MIXLY_STAT).setCheck([Number,Boolean]),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_DIGITAL_WRITE_TOOLTIP)}},Cx={init:function(){this.setColour(Rx),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(mt.Msg.MIXLY_Digital_PINMODEIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_MACHINE_VALUE),this.setInputsInline(!0),this.setOutput(!0,[Boolean,Number]),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_DIGITAL_READ_TOOLTIP)}},Sx={init:function(){this.setColour(Rx),this.appendValueInput("PIN",Number).appendField("PWM"+mt.Msg.MIXLY_Analog_PINMODEOUT).setCheck(Number),this.appendValueInput("NUM",Number).appendField(mt.Msg.MIXLY_VALUE2).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_PWM_ANALOG_WRITE_TOOLTIP)}},Ax={init:function(){this.setColour(Rx),this.appendValueInput("PIN",Number).appendField("DAC"+mt.Msg.MIXLY_Analog_PINMODEOUT).setCheck(Number),this.appendValueInput("NUM",Number).appendField(mt.Msg.MIXLY_VALUE2).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_ANALOG_WRITE_TOOLTIP)}},Lx={init:function(){this.setColour(Rx),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_Analog_PINMODEOUT).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_PERIOD_MIL).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_mSecond,"period"],[mt.Msg.MIXLY_uSecond,"period_microseconds"]]),"key"),this.appendValueInput("NUM",Number).appendField(mt.Msg.MIXLY_STAT).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_ANALOG_WRITE_SET_TOOLTIP)}},Nx={init:function(){this.setColour(Rx),this.appendValueInput("PIN",Number).appendField("PWM"+mt.Msg.MIXLY_Analog_PINMODEOUT).setCheck(Number),this.appendValueInput("NUM",Number).appendField(mt.Msg.MIXLY_FREQUENCY+mt.Msg.MIXLY_STAT).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_PWM_ANALOG_WRITE_SET_FREQ_TOOLTIP)}},Dx={init:function(){this.setColour(Rx),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(mt.Msg.MIXLY_Analog_PINMODEIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_MACHINE_VALUE),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_ANALOG_READ_TOOLTIP)}},fx={init:function(){this.setColour(Rx),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_Analog_PINMODEIN).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_REF_VOLTAGE+mt.Msg.MIXLY_STAT).appendField(new mt.FieldDropdown([["3.3V","machine.ADC.ATTN_11DB"],["2.2V","machine.ADC.ATTN_6DB"],["1.5V","machine.ADC.ATTN_2_5DB"],["1.2V","machine.ADC.ATTN_0DB"]]),"atten"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_ANALOG_ATTEN_TOOLTIP)}},Fx={init:function(){this.setColour(Rx),this.appendValueInput("pin").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(mt.Msg.MIXLY_ESP32_TOUCH_SENSOR),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_MACHINE_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_PIN_PRESSED_TOOLTIP)}},Px={init:function(){this.setColour(20),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_ATTACHINTERRUPT_PIN).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_RISING,"machine.Pin.IRQ_RISING"],[mt.Msg.MIXLY_FALLING,"machine.Pin.IRQ_FALLING"],[mt.Msg.MIXLY_CHANGE,"(machine.Pin.IRQ_RISING | machine.Pin.IRQ_FALLING)"]]),"mode"),this.appendValueInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_PIN_ATTACHINTERRUPT_TOOLTIP)}},vx={init:function(){this.setColour(20),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETUP).appendField(new mt.FieldTextInput("pin#"),"PIN_OBJ"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROPYTHON_AS).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_Digital_PINMODEOUT,"machine.Pin.OUT"],[mt.Msg.MIXLY_Digital_PINMODEIN,"machine.Pin.IN"],[mt.Msg.MIXLY_PINMODEPULLUP,"machine.Pin.IN, machine.Pin.PULL_UP"],[mt.Msg.MIXLY_PINMODEPULLDOWN,"machine.Pin.IN, machine.Pin.PULL_DOWN"]]),"MODE"),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_DIGITAL_INIT_TOOLTIP)},getVars:function(){return["pin#"==this.getFieldValue("PIN_OBJ")?null:this.getFieldValue("PIN_OBJ")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("PIN_OBJ"))&&this.setTitleValue(e,"PIN_OBJ")}},Yx={init:function(){this.setColour(Rx),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP).appendField(new mt.FieldTextInput("pwm#"),"PIN_OBJ").appendField(mt.Msg.MIXLY_MICROPYTHON_AS),this.appendDummyInput("").appendField("PWM"+mt.Msg.MIXLY_Analog_PINMODEOUT),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_PWM_ANALOG_WRITE_INIT_TOOLTIP)},getVars:function(){return["pwm#"==this.getFieldValue("PIN_OBJ")?null:this.getFieldValue("PIN_OBJ")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("PIN_OBJ"))&&this.setTitleValue(e,"PIN_OBJ")}},xx={init:function(){this.setColour(Rx),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP).appendField(new mt.FieldTextInput("dac#"),"PIN_OBJ").appendField(mt.Msg.MIXLY_MICROPYTHON_AS),this.appendDummyInput("").appendField("DAC"+mt.Msg.MIXLY_Analog_PINMODEOUT),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_ANALOG_WRITE_INIT_TOOLTIP)},getVars:function(){return["dac#"==this.getFieldValue("PIN_OBJ")?null:this.getFieldValue("PIN_OBJ")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("PIN_OBJ"))&&this.setTitleValue(e,"PIN_OBJ")}},Xx={init:function(){this.setColour(Rx),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP).appendField(new mt.FieldTextInput("adc#"),"PIN_OBJ").appendField(mt.Msg.MIXLY_MICROPYTHON_AS),this.appendDummyInput("").appendField(mt.Msg.MIXLY_Analog_PINMODEIN),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_ANALOG_READ_INIT_TOOLTIP)},getVars:function(){return["adc#"==this.getFieldValue("PIN_OBJ")?null:this.getFieldValue("PIN_OBJ")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("PIN_OBJ"))&&this.setTitleValue(e,"PIN_OBJ")}},bx={init:function(){this.setColour(Rx),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP).appendField(new mt.FieldTextInput("tc#"),"PIN_OBJ").appendField(mt.Msg.MIXLY_MICROPYTHON_AS),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_TOUCH_SENSOR),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_PIN_PRESSED_INIT_TOOLTIP)},getVars:function(){return["tc#"==this.getFieldValue("PIN_OBJ")?null:this.getFieldValue("PIN_OBJ")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("PIN_OBJ"))&&this.setTitleValue(e,"PIN_OBJ")}},yx=vx,Vx=Nx,Bx=bx,Gx=Fx,Ux=Px,wx=40,kx={init:function(){if("mixgo_me"==Ot.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(wx),this.appendDummyInput("").appendField(t).appendField(mt.Msg.MIXLY_TEM_HUM+" AHT21").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETTEMPERATUE,"temperature"],[mt.Msg.MIXLY_GETHUMIDITY,"humidity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("key");return{temperature:mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,relative_humidity:mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[t]}))}},Hx={init:function(){if("mixgo_me"==Ot.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(wx),this.appendDummyInput("").appendField(t).appendField(mt.Msg.MIXLY_Altitude+mt.Msg.MSG.catSensor+" HP203X").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETPRESSURE,"pressure()"],[mt.Msg.MIXLY_GETTEMPERATUE,"temperature()"],[mt.Msg.MIXLY_GET_ALTITUDE,"altitude()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},Wx={init:function(){if("mixgo_me"==Ot.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(wx),this.appendDummyInput().appendField(t).appendField(mt.Msg.MIXLY_MIXGO_NOVA_POTENTIAL_NUM),this.setOutput(!0,Number),this.setInputsInline(!0)}},Kx={init:function(){if("mixgo_me"==Ot.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(wx),this.appendDummyInput().appendField(t).appendField("RFID"+mt.Msg.MIXLY_RFID_READ_CARD),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RFID_READ_CARD_UID),this.setOutput(!0,Number),this.setInputsInline(!0)}},Jx={init:function(){if("mixgo_me"==Ot.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(wx),this.appendDummyInput().appendField(t).appendField("RFID"+mt.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SECTOR").appendField(mt.Msg.MIXLY_LIST_INDEX),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL),this.setOutput(!0,Number),this.setInputsInline(!0)}},Qx={init:function(){if("mixgo_me"==Ot.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(wx),this.appendDummyInput().appendField(t).appendField(mt.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SECTOR").appendField(mt.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(mt.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},zx={init:function(){if("mixgo_me"==Ot.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(wx),this.appendDummyInput().appendField(t).appendField(mt.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SECTOR").appendField(mt.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(mt.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.appendDummyInput().appendField(mt.Msg.RETURN_SUCCESS_OR_NOT),this.setInputsInline(!0),this.setOutput(!0)}},qx={init:function(){if("mixgo_me"==Ot.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(wx),this.appendDummyInput().appendField(t).appendField("RFID"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_RFID_SCAN_OK,"0"],[mt.Msg.MIXLY_RFID_SCAN_NOTAGERR,"1"],[mt.Msg.MIXLY_RFID_SCAN_ERROR,"2"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},jx=230,Zx={init:function(){this.setColour(jx),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.digital),"PIN"),this.setOutput(!0)}},$x={init:function(){this.setColour(jx),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.digital_pin),"PIN"),this.setOutput(!0,Number)}},tX={init:function(){this.setColour(jx),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.input_pin),"PIN"),this.setOutput(!0,Number)}},eX={init:function(){this.setColour(jx),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.output_pin),"PIN"),this.setOutput(!0,Number)}},iX={init:function(){this.setColour(jx),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.espnow_channel),"PIN"),this.setOutput(!0,Number)}},nX={init:function(){this.setColour(jx),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.haskylens_model),"PIN"),this.setOutput(!0,Number)}},sX={init:function(){this.setColour(jx),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.pwm_input),"PIN"),this.setOutput(!0)}},oX={init:function(){this.setColour(jx),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.analog_input),"PIN"),this.setOutput(!0)}},_X={init:function(){this.setColour(jx),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.pwm_output),"PIN"),this.setOutput(!0)}},aX={init:function(){this.setColour(jx),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.analog_output),"PIN"),this.setOutput(!0)}},pX={init:function(){this.setColour(jx),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.i2c_A_pin),"PIN"),this.setOutput(!0,Number)}},uX={init:function(){this.setColour(jx),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.i2c_B_pin),"PIN"),this.setOutput(!0,Number)}},rX={init:function(){this.setColour(jx),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.spi_A_pin),"PIN"),this.setOutput(!0,Number)}},lX={init:function(){this.setColour(jx),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.spi_B_pin),"PIN"),this.setOutput(!0,Number)}},dX={init:function(){this.setColour(jx),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.spi_C_pin),"PIN"),this.setOutput(!0,Number)}},IX={init:function(){this.setColour(jx),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.spi_D_pin),"PIN"),this.setOutput(!0,Number)}},TX={init:function(){this.setColour(jx),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.analog),"PIN"),this.setOutput(!0)}},hX={init:function(){this.setColour(jx),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.analog_pin),"PIN"),this.setOutput(!0,Number)}},MX={init:function(){this.setColour(jx),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.dac),"PIN"),this.setOutput(!0)}},mX={init:function(){this.setColour(jx),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.dac_pin),"PIN"),this.setOutput(!0,Number)}},OX={init:function(){this.setColour(jx),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.button),"PIN"),this.setOutput(!0,Number)}},EX={init:function(){this.setColour(jx),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.buttonB),"PIN"),this.setOutput(!0,Number)}},RX={init:function(){this.setColour(jx),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.pwm),"PIN"),this.setOutput(!0)}},cX={init:function(){this.setColour(jx),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.pwm_pin),"PIN"),this.setOutput(!0,Number)}},gX={init:function(){this.setColour(jx),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.touch_pin),"PIN"),this.setOutput(!0,Number)}},CX={init:function(){this.setColour(jx),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.touch),"PIN"),this.setOutput(!0)}},SX={init:function(){this.setColour(jx),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.serial_pin),"PIN"),this.setOutput(!0,Number)}},AX={init:function(){this.setColour(jx),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.builtinimg),"PIN"),this.setOutput(!0,"esp32_image")}},LX={init:function(){this.setColour(jx),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.builtinimg_extern),"PIN"),this.setOutput(!0,"esp32_image")}},NX={init:function(){this.setColour(jx),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.imglist),"PIN"),this.setOutput(!0)}},DX={init:function(){this.setColour(jx),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.playlist),"PIN"),this.setOutput(!0)}},fX={init:function(){this.setColour(jx),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.playlist_extern),"PIN"),this.setOutput(!0)}},FX={init:function(){this.setColour(jx),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.exlcdh),"PIN"),this.setOutput(!0,Number)}},PX={init:function(){this.setColour(jx),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.exlcdv),"PIN"),this.setOutput(!0,Number)}},vX={init:function(){this.setColour(jx),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.axis),"PIN"),this.setOutput(!0,Number)}},YX={init:function(){this.setColour(jx),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.brightness),"PIN"),this.setOutput(!0,Number)}},xX={init:function(){this.setColour(jx),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.tts_voice),"PIN"),this.setOutput(!0,Number)}},XX={init:function(){this.setColour(jx),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.tts_builtin_music),"PIN"),this.setOutput(!0,Number)}},bX={init:function(){this.setColour(jx),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.tts_bgmusic),"PIN"),this.setOutput(!0,Number)}},yX={init:function(){this.setColour(jx),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.tone_notes),"PIN"),this.setOutput(!0,Number)}},VX={init:function(){this.setColour(jx),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.radio_power),"PIN"),this.setOutput(!0,Number)}},BX={init:function(){this.setColour(jx),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.radio_datarate),"PIN"),this.setOutput(!0,Number)}},GX={init:function(){this.setColour(jx),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.one_more),"PIN"),this.setOutput(!0)}},UX={init:function(){this.setColour(jx),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.digital_dot),"PIN"),this.setOutput(!0,Number)}},wX=function(t,e){return["HIGH"==this.getFieldValue("BOOL")?"1":"0",e.ORDER_ATOMIC]},kX=function(t,e){e.definitions_.import_machine="import machine";var i="";return i+=e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".value("+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"},HX=function(t,e){e.definitions_.import_machine="import machine";return[e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".value()",e.ORDER_ATOMIC]},WX=function(t,e){return e.definitions_.import_machine="import machine",e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".duty("+e.valueToCode(this,"NUM",e.ORDER_ATOMIC)+")\n"},KX=function(t,e){return e.definitions_.import_machine="import machine",e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".write("+e.valueToCode(this,"NUM",e.ORDER_ATOMIC)+")\n"},JX=function(t,e){e.definitions_.import_machine="import machine";var i=e.valueToCode(this,"PIN",e.ORDER_ATOMIC),n=e.valueToCode(this,"NUM",e.ORDER_ATOMIC);return i+".set_analog_"+this.getFieldValue("key")+"("+n+")\n"},QX=function(t,e){return e.definitions_.import_machine="import machine",e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".freq("+e.valueToCode(this,"NUM",e.ORDER_ATOMIC)+")\n"},zX=function(t,e){return e.definitions_.import_machine="import machine",[e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".read()",e.ORDER_ATOMIC]},qX=function(t,e){return e.definitions_.import_machine="import machine",[e.valueToCode(this,"pin",e.ORDER_ATOMIC)+".read()",e.ORDER_ATOMIC]},jX=function(t,e){e.definitions_.import_machine="import machine";var i=e.valueToCode(this,"PIN",e.ORDER_ATOMIC),n=this.getFieldValue("mode");return"machine.Pin("+i+").irq(handler = "+e.valueToCode(this,"DO",e.ORDER_ATOMIC)+", trigger = "+n+")\n"},ZX=function(t,e){e.definitions_.import_machine="import machine";var i=this.getFieldValue("PIN_OBJ")||"pin#",n=e.valueToCode(this,"PIN",e.ORDER_ATOMIC),s=this.getFieldValue("MODE");return("pin#"==i?"pin"+n:e.variableDB_.getName(i,mt.Variables.NAME_TYPE))+" = machine.Pin("+n+", "+s+")\n"},$X=function(t,e){e.definitions_.import_machine="import machine";var i=this.getFieldValue("PIN_OBJ")||"pwm#",n=e.valueToCode(this,"PIN",e.ORDER_ATOMIC);return("pwm#"==i?"pwm"+n:e.variableDB_.getName(i,mt.Variables.NAME_TYPE))+" = machine.PWM(machine.Pin("+n+"))\n"},tb=function(t,e){e.definitions_.import_machine="import machine";var i=this.getFieldValue("PIN_OBJ")||"dac#",n=e.valueToCode(this,"PIN",e.ORDER_ATOMIC);return("dac#"==i?"dac"+n:e.variableDB_.getName(i,mt.Variables.NAME_TYPE))+" = machine.DAC(machine.Pin("+n+"))\n"},eb=function(t,e){e.definitions_.import_machine="import machine";var i=this.getFieldValue("PIN_OBJ")||"adc#",n=e.valueToCode(this,"PIN",e.ORDER_ATOMIC);return("adc#"==i?"adc"+n:e.variableDB_.getName(i,mt.Variables.NAME_TYPE))+" = machine.ADC(machine.Pin("+n+"))\n"},ib=function(t,e){return e.definitions_.import_machine="import machine",e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".atten("+this.getFieldValue("atten")+")\n"},nb=function(t,e){e.definitions_.import_machine="import machine";var i=this.getFieldValue("PIN_OBJ")||"tc#",n=e.valueToCode(this,"PIN",e.ORDER_ATOMIC);return("tc#"==i?"tc"+n:e.variableDB_.getName(i,mt.Variables.NAME_TYPE))+" = machine.TouchPad(machine.Pin("+n+"))\n"},sb=function(t,e){var i=this.getFieldValue("key");return e.definitions_.import_me_g1="import me_g1",["me_g1.ext_ahtx0."+i+"()",e.ORDER_ATOMIC]},ob=function(t,e){var i=this.getFieldValue("key");return e.definitions_.import_me_g1="import me_g1",["me_g1.ext_hp203x."+i,e.ORDER_ATOMIC]},_b=function(t,e){e.definitions_.import_me_g1="import me_g1";return["me_g1.varistor()",e.ORDER_ATOMIC]},ab=function(t,e){e.definitions_.import_me_g1="import me_g1";return['me_g1.ext_rc522.read_card(0, x="id")',e.ORDER_ATOMIC]},pb=function(t,e){var i=e.valueToCode(this,"SECTOR",e.ORDER_ATOMIC);return e.definitions_.import_me_g1="import me_g1",["me_g1.ext_rc522.read_card("+i+")",e.ORDER_ATOMIC]},ub=function(t,e){var i=e.valueToCode(this,"SECTOR",e.ORDER_ATOMIC),n=e.valueToCode(this,"CONTENT",e.ORDER_ATOMIC);return e.definitions_.import_me_g1="import me_g1","me_g1.ext_rc522.write_card("+n+","+i+")\n"},rb=function(t,e){var i=e.valueToCode(this,"SECTOR",e.ORDER_ATOMIC),n=e.valueToCode(this,"CONTENT",e.ORDER_ATOMIC);return e.definitions_.import_me_g1="import me_g1",["me_g1.ext_rc522.write_card("+n+","+i+")",e.ORDER_ATOMIC]},lb=function(t,e){var i=this.getFieldValue("key");return e.definitions_.import_me_g1="import me_g1",["me_g1.ext_rc522.scan_card()=="+i,e.ORDER_ATOMIC]},db=function(t,e){return[this.getFieldValue("PIN"),e.ORDER_ATOMIC]},Ib=db,Tb=db,hb=db,Mb=db,mb=db,Ob=db,Eb=db,Rb=db,cb=db,gb=db,Cb=db,Sb=db,Ab=db,Lb=db,Nb=db,Db=db,fb=db,Fb=db,Pb=db,vb=db,Yb=db,xb=db,Xb=db,bb=db,yb=db,Vb=db,Bb=db,Gb=db,Ub=db,wb=db,kb=db,Hb=db,Wb=db,Kb=db,Jb=db,Qb=db,zb=db,qb=db,jb=db,Zb=db,$b=db,ty=db,ey=db,iy=db;Object.assign(mt.Variables,Rt),Object.assign(mt.Procedures,Wn),mt.Python=_u,mt.generator=_u,Ot.Profile.default={},Object.assign(Ot.Profile,Ex),Object.assign(Ot.Profile.default,Ex["MixGo CC"]),Object.assign(mt.Blocks,e,i,n,s,o,_,a,p,u,r,l,d,I,V,H,k,x,B,W,f,w,U,G,F,D,N,b,X,y,P,v,Y,lt,dt,It),Object.assign(mt.Python.forBlock,T,h,M,m,O,E,R,c,g,C,S,A,L,nt,ut,pt,$,st,rt,Q,at,_t,ot,z,J,K,et,tt,it,q,j,Z,Tt,ht,Mt)})(); \ No newline at end of file diff --git a/boards/default/micropython_esp32c3/styles/main.6980044f.css b/boards/default/micropython_esp32c3/styles/main.3bd7dce0.css similarity index 100% rename from boards/default/micropython_esp32c3/styles/main.6980044f.css rename to boards/default/micropython_esp32c3/styles/main.3bd7dce0.css diff --git a/boards/default/micropython_esp32s2/examples/Ft_3dOuQNbjZ.mix b/boards/default/micropython_esp32s2/examples/01-1-快速入门-你好世界.mix similarity index 100% rename from boards/default/micropython_esp32s2/examples/Ft_3dOuQNbjZ.mix rename to boards/default/micropython_esp32s2/examples/01-1-快速入门-你好世界.mix diff --git a/boards/default/micropython_esp32s2/examples/nhrkAXiOBX8C.mix b/boards/default/micropython_esp32s2/examples/01-2-快速入门-你好世界2.mix similarity index 100% rename from boards/default/micropython_esp32s2/examples/nhrkAXiOBX8C.mix rename to boards/default/micropython_esp32s2/examples/01-2-快速入门-你好世界2.mix diff --git a/boards/default/micropython_esp32s2/examples/XneMa571hj9g.mix b/boards/default/micropython_esp32s2/examples/02-1-快速入门-跳动的心.mix similarity index 100% rename from boards/default/micropython_esp32s2/examples/XneMa571hj9g.mix rename to boards/default/micropython_esp32s2/examples/02-1-快速入门-跳动的心.mix diff --git a/boards/default/micropython_esp32s2/examples/QpZ9MUlWKPs4.mix b/boards/default/micropython_esp32s2/examples/02-2-快速入门-为你心动.mix similarity index 100% rename from boards/default/micropython_esp32s2/examples/QpZ9MUlWKPs4.mix rename to boards/default/micropython_esp32s2/examples/02-2-快速入门-为你心动.mix diff --git a/boards/default/micropython_esp32s2/examples/5hwQBFvcDVQN.mix b/boards/default/micropython_esp32s2/examples/03-1-快速入门-心随我动.mix similarity index 100% rename from boards/default/micropython_esp32s2/examples/5hwQBFvcDVQN.mix rename to boards/default/micropython_esp32s2/examples/03-1-快速入门-心随我动.mix diff --git a/boards/default/micropython_esp32s2/examples/0J2iONUUCJ1n.mix b/boards/default/micropython_esp32s2/examples/03-2-快速入门-心随我动2.mix similarity index 100% rename from boards/default/micropython_esp32s2/examples/0J2iONUUCJ1n.mix rename to boards/default/micropython_esp32s2/examples/03-2-快速入门-心随我动2.mix diff --git a/boards/default/micropython_esp32s2/examples/impjKXxoEKx2.mix b/boards/default/micropython_esp32s2/examples/04-1-快速入门-流动的灯.mix similarity index 100% rename from boards/default/micropython_esp32s2/examples/impjKXxoEKx2.mix rename to boards/default/micropython_esp32s2/examples/04-1-快速入门-流动的灯.mix diff --git a/boards/default/micropython_esp32s2/examples/HYFg8ytbIha7.mix b/boards/default/micropython_esp32s2/examples/04-2-快速入门-流动的灯2.mix similarity index 100% rename from boards/default/micropython_esp32s2/examples/HYFg8ytbIha7.mix rename to boards/default/micropython_esp32s2/examples/04-2-快速入门-流动的灯2.mix diff --git a/boards/default/micropython_esp32s2/examples/xgVqPzRwVImC.mix b/boards/default/micropython_esp32s2/examples/05-1-过程控制-双键开关.mix similarity index 100% rename from boards/default/micropython_esp32s2/examples/xgVqPzRwVImC.mix rename to boards/default/micropython_esp32s2/examples/05-1-过程控制-双键开关.mix diff --git a/boards/default/micropython_esp32s2/examples/d9ysZnqoy2Gv.mix b/boards/default/micropython_esp32s2/examples/05-2-过程控制-单键开关.mix similarity index 100% rename from boards/default/micropython_esp32s2/examples/d9ysZnqoy2Gv.mix rename to boards/default/micropython_esp32s2/examples/05-2-过程控制-单键开关.mix diff --git a/boards/default/micropython_esp32s2/examples/fyG-0KHQrREy.mix b/boards/default/micropython_esp32s2/examples/05-3-过程控制-IPO概念.mix similarity index 100% rename from boards/default/micropython_esp32s2/examples/fyG-0KHQrREy.mix rename to boards/default/micropython_esp32s2/examples/05-3-过程控制-IPO概念.mix diff --git a/boards/default/micropython_esp32s2/examples/9aXbEiIURWwK.mix b/boards/default/micropython_esp32s2/examples/06-1-过程控制-声音采集.mix similarity index 100% rename from boards/default/micropython_esp32s2/examples/9aXbEiIURWwK.mix rename to boards/default/micropython_esp32s2/examples/06-1-过程控制-声音采集.mix diff --git a/boards/default/micropython_esp32s2/examples/1xNCtTBN-Nbj.mix b/boards/default/micropython_esp32s2/examples/06-2-过程控制-看见声音.mix similarity index 100% rename from boards/default/micropython_esp32s2/examples/1xNCtTBN-Nbj.mix rename to boards/default/micropython_esp32s2/examples/06-2-过程控制-看见声音.mix diff --git a/boards/default/micropython_esp32s2/examples/NWIlLbH1vPC6.mix b/boards/default/micropython_esp32s2/examples/07-1-过程控制-光强采集.mix similarity index 100% rename from boards/default/micropython_esp32s2/examples/NWIlLbH1vPC6.mix rename to boards/default/micropython_esp32s2/examples/07-1-过程控制-光强采集.mix diff --git a/boards/default/micropython_esp32s2/examples/f5o1myjT4xRJ.mix b/boards/default/micropython_esp32s2/examples/07-2-过程控制-自动补光.mix similarity index 100% rename from boards/default/micropython_esp32s2/examples/f5o1myjT4xRJ.mix rename to boards/default/micropython_esp32s2/examples/07-2-过程控制-自动补光.mix diff --git a/boards/default/micropython_esp32s2/examples/aYy8aaDJgbve.mix b/boards/default/micropython_esp32s2/examples/08-1-过程控制-接近检测.mix similarity index 100% rename from boards/default/micropython_esp32s2/examples/aYy8aaDJgbve.mix rename to boards/default/micropython_esp32s2/examples/08-1-过程控制-接近检测.mix diff --git a/boards/default/micropython_esp32s2/examples/toOxmAj9vBT4.mix b/boards/default/micropython_esp32s2/examples/08-2-过程控制-入侵报警.mix similarity index 100% rename from boards/default/micropython_esp32s2/examples/toOxmAj9vBT4.mix rename to boards/default/micropython_esp32s2/examples/08-2-过程控制-入侵报警.mix diff --git a/boards/default/micropython_esp32s2/examples/bWOXtAj9bk_Z.mix b/boards/default/micropython_esp32s2/examples/09-1-输入输出-加速度.mix similarity index 100% rename from boards/default/micropython_esp32s2/examples/bWOXtAj9bk_Z.mix rename to boards/default/micropython_esp32s2/examples/09-1-输入输出-加速度.mix diff --git a/boards/default/micropython_esp32s2/examples/bP9bQh39meB8.mix b/boards/default/micropython_esp32s2/examples/09-2-输入输出-平衡仪.mix similarity index 100% rename from boards/default/micropython_esp32s2/examples/bP9bQh39meB8.mix rename to boards/default/micropython_esp32s2/examples/09-2-输入输出-平衡仪.mix diff --git a/boards/default/micropython_esp32s2/examples/NecientEBnDJ.mix b/boards/default/micropython_esp32s2/examples/10-1-输入输出-触摸按键.mix similarity index 100% rename from boards/default/micropython_esp32s2/examples/NecientEBnDJ.mix rename to boards/default/micropython_esp32s2/examples/10-1-输入输出-触摸按键.mix diff --git a/boards/default/micropython_esp32s2/examples/gfD5_Ky30MA4.mix b/boards/default/micropython_esp32s2/examples/10-2-输入输出-减压神器.mix similarity index 100% rename from boards/default/micropython_esp32s2/examples/gfD5_Ky30MA4.mix rename to boards/default/micropython_esp32s2/examples/10-2-输入输出-减压神器.mix diff --git a/boards/default/micropython_esp32s2/examples/O3zTXb_DzhoO.mix b/boards/default/micropython_esp32s2/examples/11-1-输入输出-点阵控制.mix similarity index 100% rename from boards/default/micropython_esp32s2/examples/O3zTXb_DzhoO.mix rename to boards/default/micropython_esp32s2/examples/11-1-输入输出-点阵控制.mix diff --git a/boards/default/micropython_esp32s2/examples/XQ7E8gcz2rTZ.mix b/boards/default/micropython_esp32s2/examples/11-2-输入输出-光标控制.mix similarity index 100% rename from boards/default/micropython_esp32s2/examples/XQ7E8gcz2rTZ.mix rename to boards/default/micropython_esp32s2/examples/11-2-输入输出-光标控制.mix diff --git a/boards/default/micropython_esp32s2/examples/bSNB5kLbsJKq.mix b/boards/default/micropython_esp32s2/examples/12-1-输入输出-实时时钟.mix similarity index 100% rename from boards/default/micropython_esp32s2/examples/bSNB5kLbsJKq.mix rename to boards/default/micropython_esp32s2/examples/12-1-输入输出-实时时钟.mix diff --git a/boards/default/micropython_esp32s2/examples/buHQQB9TBNk3.mix b/boards/default/micropython_esp32s2/examples/12-2-输入输出-实时时钟2.mix similarity index 100% rename from boards/default/micropython_esp32s2/examples/buHQQB9TBNk3.mix rename to boards/default/micropython_esp32s2/examples/12-2-输入输出-实时时钟2.mix diff --git a/boards/default/micropython_esp32s2/examples/edHsB_c1Kr4D.mix b/boards/default/micropython_esp32s2/examples/13-1-逻辑计算-手速测试.mix similarity index 100% rename from boards/default/micropython_esp32s2/examples/edHsB_c1Kr4D.mix rename to boards/default/micropython_esp32s2/examples/13-1-逻辑计算-手速测试.mix diff --git a/boards/default/micropython_esp32s2/examples/oby3iTTXgIZP.mix b/boards/default/micropython_esp32s2/examples/13-2-逻辑计算-手速测试2.mix similarity index 100% rename from boards/default/micropython_esp32s2/examples/oby3iTTXgIZP.mix rename to boards/default/micropython_esp32s2/examples/13-2-逻辑计算-手速测试2.mix diff --git a/boards/default/micropython_esp32s2/examples/qW_pzAO3z53Z.mix b/boards/default/micropython_esp32s2/examples/14-1-逻辑计算-反应测试.mix similarity index 100% rename from boards/default/micropython_esp32s2/examples/qW_pzAO3z53Z.mix rename to boards/default/micropython_esp32s2/examples/14-1-逻辑计算-反应测试.mix diff --git a/boards/default/micropython_esp32s2/examples/_q4-VqzkQM7y.mix b/boards/default/micropython_esp32s2/examples/14-2-逻辑计算-反应测试2.mix similarity index 100% rename from boards/default/micropython_esp32s2/examples/_q4-VqzkQM7y.mix rename to boards/default/micropython_esp32s2/examples/14-2-逻辑计算-反应测试2.mix diff --git a/boards/default/micropython_esp32s2/examples/r76FVTyaKmhQ.mix b/boards/default/micropython_esp32s2/examples/15-1-逻辑计算-简单打地鼠.mix similarity index 100% rename from boards/default/micropython_esp32s2/examples/r76FVTyaKmhQ.mix rename to boards/default/micropython_esp32s2/examples/15-1-逻辑计算-简单打地鼠.mix diff --git a/boards/default/micropython_esp32s2/examples/8EqCJ2ux6p2W.mix b/boards/default/micropython_esp32s2/examples/15-2-逻辑计算-计时打地鼠.mix similarity index 100% rename from boards/default/micropython_esp32s2/examples/8EqCJ2ux6p2W.mix rename to boards/default/micropython_esp32s2/examples/15-2-逻辑计算-计时打地鼠.mix diff --git a/boards/default/micropython_esp32s2/examples/d6OhCvx9Y_10.mix b/boards/default/micropython_esp32s2/examples/16-1-逻辑计算-开始打地鼠.mix similarity index 100% rename from boards/default/micropython_esp32s2/examples/d6OhCvx9Y_10.mix rename to boards/default/micropython_esp32s2/examples/16-1-逻辑计算-开始打地鼠.mix diff --git a/boards/default/micropython_esp32s2/examples/S_VMvUxa9m3v.mix b/boards/default/micropython_esp32s2/examples/16-2-逻辑计算-循环打地鼠.mix similarity index 100% rename from boards/default/micropython_esp32s2/examples/S_VMvUxa9m3v.mix rename to boards/default/micropython_esp32s2/examples/16-2-逻辑计算-循环打地鼠.mix diff --git a/boards/default/micropython_esp32s2/examples/zLu1vs_FG-CE.mix b/boards/default/micropython_esp32s2/examples/17-0-复杂控制-非中断效果.mix similarity index 100% rename from boards/default/micropython_esp32s2/examples/zLu1vs_FG-CE.mix rename to boards/default/micropython_esp32s2/examples/17-0-复杂控制-非中断效果.mix diff --git a/boards/default/micropython_esp32s2/examples/469F_xib7udN.mix b/boards/default/micropython_esp32s2/examples/17-1-复杂控制-双键中断.mix similarity index 100% rename from boards/default/micropython_esp32s2/examples/469F_xib7udN.mix rename to boards/default/micropython_esp32s2/examples/17-1-复杂控制-双键中断.mix diff --git a/boards/default/micropython_esp32s2/examples/fMw6hkuBaJk1.mix b/boards/default/micropython_esp32s2/examples/17-2-复杂控制-单键中断.mix similarity index 100% rename from boards/default/micropython_esp32s2/examples/fMw6hkuBaJk1.mix rename to boards/default/micropython_esp32s2/examples/17-2-复杂控制-单键中断.mix diff --git a/boards/default/micropython_esp32s2/examples/OiLlhdZuq1vN.mix b/boards/default/micropython_esp32s2/examples/18-1-复杂控制-定时计时.mix similarity index 100% rename from boards/default/micropython_esp32s2/examples/OiLlhdZuq1vN.mix rename to boards/default/micropython_esp32s2/examples/18-1-复杂控制-定时计时.mix diff --git a/boards/default/micropython_esp32s2/examples/GL-J9cPLc7RW.mix b/boards/default/micropython_esp32s2/examples/18-2-复杂控制-循环计时.mix similarity index 100% rename from boards/default/micropython_esp32s2/examples/GL-J9cPLc7RW.mix rename to boards/default/micropython_esp32s2/examples/18-2-复杂控制-循环计时.mix diff --git a/boards/default/micropython_esp32s2/examples/llGxVNx50qP1.mix b/boards/default/micropython_esp32s2/examples/19-1-复杂控制-多线程.mix similarity index 100% rename from boards/default/micropython_esp32s2/examples/llGxVNx50qP1.mix rename to boards/default/micropython_esp32s2/examples/19-1-复杂控制-多线程.mix diff --git a/boards/default/micropython_esp32s2/examples/nHNrYU-ltr5Y.mix b/boards/default/micropython_esp32s2/examples/19-2-复杂控制-多线程与中断.mix similarity index 100% rename from boards/default/micropython_esp32s2/examples/nHNrYU-ltr5Y.mix rename to boards/default/micropython_esp32s2/examples/19-2-复杂控制-多线程与中断.mix diff --git a/boards/default/micropython_esp32s2/examples/f5Z_PB2Mmvo4.mix b/boards/default/micropython_esp32s2/examples/20-1-复杂控制-异常.mix similarity index 100% rename from boards/default/micropython_esp32s2/examples/f5Z_PB2Mmvo4.mix rename to boards/default/micropython_esp32s2/examples/20-1-复杂控制-异常.mix diff --git a/boards/default/micropython_esp32s2/examples/-ZVn0mU-KQyE.mix b/boards/default/micropython_esp32s2/examples/20-2-复杂控制-异常处理.mix similarity index 100% rename from boards/default/micropython_esp32s2/examples/-ZVn0mU-KQyE.mix rename to boards/default/micropython_esp32s2/examples/20-2-复杂控制-异常处理.mix diff --git a/boards/default/micropython_esp32s2/examples/SMpCxyoh_THU.mix b/boards/default/micropython_esp32s2/examples/21-1-红外接近-单挥手测试.mix similarity index 100% rename from boards/default/micropython_esp32s2/examples/SMpCxyoh_THU.mix rename to boards/default/micropython_esp32s2/examples/21-1-红外接近-单挥手测试.mix diff --git a/boards/default/micropython_esp32s2/examples/NaLcmfKJly6h.mix b/boards/default/micropython_esp32s2/examples/21-2-红外接近-双挥手测试.mix similarity index 100% rename from boards/default/micropython_esp32s2/examples/NaLcmfKJly6h.mix rename to boards/default/micropython_esp32s2/examples/21-2-红外接近-双挥手测试.mix diff --git a/boards/default/micropython_esp32s2/examples/k2RwPzAyy9DV.mix b/boards/default/micropython_esp32s2/examples/22-1-红外接近-双门人数统计.mix similarity index 100% rename from boards/default/micropython_esp32s2/examples/k2RwPzAyy9DV.mix rename to boards/default/micropython_esp32s2/examples/22-1-红外接近-双门人数统计.mix diff --git a/boards/default/micropython_esp32s2/examples/ZBH-6wVjTzgj.mix b/boards/default/micropython_esp32s2/examples/22-2-红外接近-单门人数统计.mix similarity index 100% rename from boards/default/micropython_esp32s2/examples/ZBH-6wVjTzgj.mix rename to boards/default/micropython_esp32s2/examples/22-2-红外接近-单门人数统计.mix diff --git a/boards/default/micropython_esp32s2/examples/cqqq_Nsq6_lP.mix b/boards/default/micropython_esp32s2/examples/23-1-红外遥控-数据收发.mix similarity index 100% rename from boards/default/micropython_esp32s2/examples/cqqq_Nsq6_lP.mix rename to boards/default/micropython_esp32s2/examples/23-1-红外遥控-数据收发.mix diff --git a/boards/default/micropython_esp32s2/examples/hsGz9kNEJgxt.mix b/boards/default/micropython_esp32s2/examples/23-2-红外遥控-遥控点灯.mix similarity index 100% rename from boards/default/micropython_esp32s2/examples/hsGz9kNEJgxt.mix rename to boards/default/micropython_esp32s2/examples/23-2-红外遥控-遥控点灯.mix diff --git a/boards/default/micropython_esp32s2/examples/GPzVIdQ28htj.mix b/boards/default/micropython_esp32s2/examples/24-1-无线广播-通讯测试.mix similarity index 100% rename from boards/default/micropython_esp32s2/examples/GPzVIdQ28htj.mix rename to boards/default/micropython_esp32s2/examples/24-1-无线广播-通讯测试.mix diff --git a/boards/default/micropython_esp32s2/examples/tBFheefSA6iM.mix b/boards/default/micropython_esp32s2/examples/24-2-无线广播-防丢检测.mix similarity index 100% rename from boards/default/micropython_esp32s2/examples/tBFheefSA6iM.mix rename to boards/default/micropython_esp32s2/examples/24-2-无线广播-防丢检测.mix diff --git a/boards/default/micropython_esp32s2/examples/vZ0aFkUHmRH5.mix b/boards/default/micropython_esp32s2/examples/25-1-飞机游戏-显示飞机.mix similarity index 100% rename from boards/default/micropython_esp32s2/examples/vZ0aFkUHmRH5.mix rename to boards/default/micropython_esp32s2/examples/25-1-飞机游戏-显示飞机.mix diff --git a/boards/default/micropython_esp32s2/examples/nQ9AL9BzXvjT.mix b/boards/default/micropython_esp32s2/examples/25-2-飞机游戏-移动飞机.mix similarity index 100% rename from boards/default/micropython_esp32s2/examples/nQ9AL9BzXvjT.mix rename to boards/default/micropython_esp32s2/examples/25-2-飞机游戏-移动飞机.mix diff --git a/boards/default/micropython_esp32s2/examples/RaZoJQs83Leu.mix b/boards/default/micropython_esp32s2/examples/26-1-飞机游戏-发射子弹.mix similarity index 100% rename from boards/default/micropython_esp32s2/examples/RaZoJQs83Leu.mix rename to boards/default/micropython_esp32s2/examples/26-1-飞机游戏-发射子弹.mix diff --git a/boards/default/micropython_esp32s2/examples/dLjTSanU_E1L.mix b/boards/default/micropython_esp32s2/examples/26-2-飞机游戏-移动音效.mix similarity index 100% rename from boards/default/micropython_esp32s2/examples/dLjTSanU_E1L.mix rename to boards/default/micropython_esp32s2/examples/26-2-飞机游戏-移动音效.mix diff --git a/boards/default/micropython_esp32s2/examples/JZQdcmrnCRfU.mix b/boards/default/micropython_esp32s2/examples/27-1-飞机游戏-显示敌机.mix similarity index 100% rename from boards/default/micropython_esp32s2/examples/JZQdcmrnCRfU.mix rename to boards/default/micropython_esp32s2/examples/27-1-飞机游戏-显示敌机.mix diff --git a/boards/default/micropython_esp32s2/examples/9wwH6NAjqFox.mix b/boards/default/micropython_esp32s2/examples/27-2-飞机游戏-消灭敌机.mix similarity index 100% rename from boards/default/micropython_esp32s2/examples/9wwH6NAjqFox.mix rename to boards/default/micropython_esp32s2/examples/27-2-飞机游戏-消灭敌机.mix diff --git a/boards/default/micropython_esp32s2/examples/yAmca_Wsacbm.mix b/boards/default/micropython_esp32s2/examples/28-1-飞机游戏-显示得分.mix similarity index 100% rename from boards/default/micropython_esp32s2/examples/yAmca_Wsacbm.mix rename to boards/default/micropython_esp32s2/examples/28-1-飞机游戏-显示得分.mix diff --git a/boards/default/micropython_esp32s2/examples/ue5IbCIKNVQF.mix b/boards/default/micropython_esp32s2/examples/28-2-飞机游戏-结束游戏.mix similarity index 100% rename from boards/default/micropython_esp32s2/examples/ue5IbCIKNVQF.mix rename to boards/default/micropython_esp32s2/examples/28-2-飞机游戏-结束游戏.mix diff --git a/boards/default/micropython_esp32s2/examples/EiaEQhIJwTEC.mix b/boards/default/micropython_esp32s2/examples/29-1-物联网-简单数据定时上报.mix similarity index 100% rename from boards/default/micropython_esp32s2/examples/EiaEQhIJwTEC.mix rename to boards/default/micropython_esp32s2/examples/29-1-物联网-简单数据定时上报.mix diff --git a/boards/default/micropython_esp32s2/examples/ZZwcbu7llDCI.mix b/boards/default/micropython_esp32s2/examples/29-2-物联网-复杂数据定时上报.mix similarity index 100% rename from boards/default/micropython_esp32s2/examples/ZZwcbu7llDCI.mix rename to boards/default/micropython_esp32s2/examples/29-2-物联网-复杂数据定时上报.mix diff --git a/boards/default/micropython_esp32s2/examples/jSqHU2tyrbe5.mix b/boards/default/micropython_esp32s2/examples/30-1-物联网-简单数据按需上报.mix similarity index 100% rename from boards/default/micropython_esp32s2/examples/jSqHU2tyrbe5.mix rename to boards/default/micropython_esp32s2/examples/30-1-物联网-简单数据按需上报.mix diff --git a/boards/default/micropython_esp32s2/examples/oxQp-IcPwoFx.mix b/boards/default/micropython_esp32s2/examples/30-2-物联网-高级数据按需上报.mix similarity index 100% rename from boards/default/micropython_esp32s2/examples/oxQp-IcPwoFx.mix rename to boards/default/micropython_esp32s2/examples/30-2-物联网-高级数据按需上报.mix diff --git a/boards/default/micropython_esp32s2/examples/6hMcDGgJY2B_.mix b/boards/default/micropython_esp32s2/examples/31-1-物联网-单主题数据订阅.mix similarity index 100% rename from boards/default/micropython_esp32s2/examples/6hMcDGgJY2B_.mix rename to boards/default/micropython_esp32s2/examples/31-1-物联网-单主题数据订阅.mix diff --git a/boards/default/micropython_esp32s2/examples/h8P0KrxXc6PN.mix b/boards/default/micropython_esp32s2/examples/31-1-物联网-单主题数据订阅2.mix similarity index 100% rename from boards/default/micropython_esp32s2/examples/h8P0KrxXc6PN.mix rename to boards/default/micropython_esp32s2/examples/31-1-物联网-单主题数据订阅2.mix diff --git a/boards/default/micropython_esp32s2/examples/BYh2UUq8jJqM.mix b/boards/default/micropython_esp32s2/examples/32-1-物联网-多主题数据订.mix similarity index 100% rename from boards/default/micropython_esp32s2/examples/BYh2UUq8jJqM.mix rename to boards/default/micropython_esp32s2/examples/32-1-物联网-多主题数据订.mix diff --git a/boards/default/micropython_esp32s2/examples/2DLZcEpK4tlq.mix b/boards/default/micropython_esp32s2/examples/32-2-物联网-多主题数据订2.mix similarity index 100% rename from boards/default/micropython_esp32s2/examples/2DLZcEpK4tlq.mix rename to boards/default/micropython_esp32s2/examples/32-2-物联网-多主题数据订2.mix diff --git a/boards/default/micropython_esp32s2/examples/SjSkwSFkLh7P.mix b/boards/default/micropython_esp32s2/examples/33-1-课堂互动-自由签到.mix similarity index 100% rename from boards/default/micropython_esp32s2/examples/SjSkwSFkLh7P.mix rename to boards/default/micropython_esp32s2/examples/33-1-课堂互动-自由签到.mix diff --git a/boards/default/micropython_esp32s2/examples/MoYIOtlxSlMT.mix b/boards/default/micropython_esp32s2/examples/33-2-课堂互动-按需签到.mix similarity index 100% rename from boards/default/micropython_esp32s2/examples/MoYIOtlxSlMT.mix rename to boards/default/micropython_esp32s2/examples/33-2-课堂互动-按需签到.mix diff --git a/boards/default/micropython_esp32s2/examples/huvk_e5EMks4.mix b/boards/default/micropython_esp32s2/examples/34-1-课堂互动-一人抢答.mix similarity index 100% rename from boards/default/micropython_esp32s2/examples/huvk_e5EMks4.mix rename to boards/default/micropython_esp32s2/examples/34-1-课堂互动-一人抢答.mix diff --git a/boards/default/micropython_esp32s2/examples/43JuL4EtPaVS.mix b/boards/default/micropython_esp32s2/examples/34-2-课堂互动-多人抢答.mix similarity index 100% rename from boards/default/micropython_esp32s2/examples/43JuL4EtPaVS.mix rename to boards/default/micropython_esp32s2/examples/34-2-课堂互动-多人抢答.mix diff --git a/boards/default/micropython_esp32s2/examples/NKvJ490legDU.mix b/boards/default/micropython_esp32s2/examples/35-1-课堂互动-单选答题.mix similarity index 100% rename from boards/default/micropython_esp32s2/examples/NKvJ490legDU.mix rename to boards/default/micropython_esp32s2/examples/35-1-课堂互动-单选答题.mix diff --git a/boards/default/micropython_esp32s2/examples/rHJX95MPnMEh.mix b/boards/default/micropython_esp32s2/examples/35-2-课堂互动-多选答题.mix similarity index 100% rename from boards/default/micropython_esp32s2/examples/rHJX95MPnMEh.mix rename to boards/default/micropython_esp32s2/examples/35-2-课堂互动-多选答题.mix diff --git a/boards/default/micropython_esp32s2/examples/De2mslaGOpAG.mix b/boards/default/micropython_esp32s2/examples/36-1-课堂互动-点名答题.mix similarity index 100% rename from boards/default/micropython_esp32s2/examples/De2mslaGOpAG.mix rename to boards/default/micropython_esp32s2/examples/36-1-课堂互动-点名答题.mix diff --git a/boards/default/micropython_esp32s2/examples/6E3fv0QzsfrA.mix b/boards/default/micropython_esp32s2/examples/36-2-课堂互动-多人点答.mix similarity index 100% rename from boards/default/micropython_esp32s2/examples/6E3fv0QzsfrA.mix rename to boards/default/micropython_esp32s2/examples/36-2-课堂互动-多人点答.mix diff --git a/boards/default/micropython_esp32s2/examples/W80o5fTR_Nfo.mix b/boards/default/micropython_esp32s2/examples/37-1-文件操作-列出文件.mix similarity index 100% rename from boards/default/micropython_esp32s2/examples/W80o5fTR_Nfo.mix rename to boards/default/micropython_esp32s2/examples/37-1-文件操作-列出文件.mix diff --git a/boards/default/micropython_esp32s2/examples/VEVNFoIoo51c.mix b/boards/default/micropython_esp32s2/examples/37-2-文件操作-列出文件2.mix similarity index 100% rename from boards/default/micropython_esp32s2/examples/VEVNFoIoo51c.mix rename to boards/default/micropython_esp32s2/examples/37-2-文件操作-列出文件2.mix diff --git a/boards/default/micropython_esp32s2/examples/bAV8wQQsmlyu.mix b/boards/default/micropython_esp32s2/examples/38-1-文件操作-文件读写.mix similarity index 100% rename from boards/default/micropython_esp32s2/examples/bAV8wQQsmlyu.mix rename to boards/default/micropython_esp32s2/examples/38-1-文件操作-文件读写.mix diff --git a/boards/default/micropython_esp32s2/examples/WkWE0xyuMjzX.mix b/boards/default/micropython_esp32s2/examples/38-2-文件操作-文件读写2.mix similarity index 100% rename from boards/default/micropython_esp32s2/examples/WkWE0xyuMjzX.mix rename to boards/default/micropython_esp32s2/examples/38-2-文件操作-文件读写2.mix diff --git a/boards/default/micropython_esp32s2/examples/6_mPOufR4STG.mix b/boards/default/micropython_esp32s2/examples/39-1-文件操作-录音采集.mix similarity index 100% rename from boards/default/micropython_esp32s2/examples/6_mPOufR4STG.mix rename to boards/default/micropython_esp32s2/examples/39-1-文件操作-录音采集.mix diff --git a/boards/default/micropython_esp32s2/examples/-VulE2BiTf3V.mix b/boards/default/micropython_esp32s2/examples/39-2-文件操作-录音重现.mix similarity index 100% rename from boards/default/micropython_esp32s2/examples/-VulE2BiTf3V.mix rename to boards/default/micropython_esp32s2/examples/39-2-文件操作-录音重现.mix diff --git a/boards/default/micropython_esp32s2/examples/lIEpHcuYXynW.mix b/boards/default/micropython_esp32s2/examples/40-1-文件操作-震动采集.mix similarity index 100% rename from boards/default/micropython_esp32s2/examples/lIEpHcuYXynW.mix rename to boards/default/micropython_esp32s2/examples/40-1-文件操作-震动采集.mix diff --git a/boards/default/micropython_esp32s2/examples/VmEJCs_kowjv.mix b/boards/default/micropython_esp32s2/examples/40-2-文件操作-震动重现.mix similarity index 100% rename from boards/default/micropython_esp32s2/examples/VmEJCs_kowjv.mix rename to boards/default/micropython_esp32s2/examples/40-2-文件操作-震动重现.mix diff --git a/boards/default/micropython_esp32s2/examples/w08r8fYZ0cZj.mix b/boards/default/micropython_esp32s2/examples/41-1-智能小车-前进转弯(MEGO).mix similarity index 100% rename from boards/default/micropython_esp32s2/examples/w08r8fYZ0cZj.mix rename to boards/default/micropython_esp32s2/examples/41-1-智能小车-前进转弯(MEGO).mix diff --git a/boards/default/micropython_esp32s2/examples/GpFna73kNGE5.mix b/boards/default/micropython_esp32s2/examples/41-2-智能小车-圆圈转弯(MEGO).mix similarity index 100% rename from boards/default/micropython_esp32s2/examples/GpFna73kNGE5.mix rename to boards/default/micropython_esp32s2/examples/41-2-智能小车-圆圈转弯(MEGO).mix diff --git a/boards/default/micropython_esp32s2/examples/Jb-WGE11wPMt.mix b/boards/default/micropython_esp32s2/examples/42-1-智能小车-智能避障(MEGO).mix similarity index 100% rename from boards/default/micropython_esp32s2/examples/Jb-WGE11wPMt.mix rename to boards/default/micropython_esp32s2/examples/42-1-智能小车-智能避障(MEGO).mix diff --git a/boards/default/micropython_esp32s2/examples/gPtzunGmbNex.mix b/boards/default/micropython_esp32s2/examples/42-2-智能小车-智能避障2(MEGO).mix similarity index 100% rename from boards/default/micropython_esp32s2/examples/gPtzunGmbNex.mix rename to boards/default/micropython_esp32s2/examples/42-2-智能小车-智能避障2(MEGO).mix diff --git a/boards/default/micropython_esp32s2/examples/xb7pLim5KQdt.mix b/boards/default/micropython_esp32s2/examples/43-1-智能小车-遥控小车(MEGO).mix similarity index 100% rename from boards/default/micropython_esp32s2/examples/xb7pLim5KQdt.mix rename to boards/default/micropython_esp32s2/examples/43-1-智能小车-遥控小车(MEGO).mix diff --git a/boards/default/micropython_esp32s2/examples/1l80Ir4XUkKe.mix b/boards/default/micropython_esp32s2/examples/43-2-智能小车-体感遥控(MEGO).mix similarity index 100% rename from boards/default/micropython_esp32s2/examples/1l80Ir4XUkKe.mix rename to boards/default/micropython_esp32s2/examples/43-2-智能小车-体感遥控(MEGO).mix diff --git a/boards/default/micropython_esp32s2/examples/b7kbC7kSy8Ad.mix b/boards/default/micropython_esp32s2/examples/44-1-智能小车-P单巡线(MEGO).mix similarity index 100% rename from boards/default/micropython_esp32s2/examples/b7kbC7kSy8Ad.mix rename to boards/default/micropython_esp32s2/examples/44-1-智能小车-P单巡线(MEGO).mix diff --git a/boards/default/micropython_esp32s2/examples/RKAjR0gs6rLo.mix b/boards/default/micropython_esp32s2/examples/44-2-智能小车-P双巡线(MEGO).mix similarity index 100% rename from boards/default/micropython_esp32s2/examples/RKAjR0gs6rLo.mix rename to boards/default/micropython_esp32s2/examples/44-2-智能小车-P双巡线(MEGO).mix diff --git a/boards/default/micropython_esp32s2/examples/map.json b/boards/default/micropython_esp32s2/examples/map.json index 56a15c05..683c7b2e 100644 --- a/boards/default/micropython_esp32s2/examples/map.json +++ b/boards/default/micropython_esp32s2/examples/map.json @@ -1,362 +1,362 @@ { - "GPzVIdQ28htj.mix": { + "01-1-快速入门-你好世界.mix": { "__file__": true, - "__name__": "-ATc-WFofcwr.mix" + "__name__": "01-1-快速入门-你好世界.mix" }, - "qW_pzAO3z53Z.mix": { + "01-2-快速入门-你好世界2.mix": { "__file__": true, - "__name__": "09qENwrKLhVW.mix" + "__name__": "01-2-快速入门-你好世界2.mix" }, - "NaLcmfKJly6h.mix": { + "02-1-快速入门-跳动的心.mix": { "__file__": true, - "__name__": "0S8_14qYtE99.mix" + "__name__": "02-1-快速入门-跳动的心.mix" }, - "tBFheefSA6iM.mix": { + "02-2-快速入门-为你心动.mix": { "__file__": true, - "__name__": "1CRU3eTcf1JY.mix" + "__name__": "02-2-快速入门-为你心动.mix" }, - "xb7pLim5KQdt.mix": { + "03-1-快速入门-心随我动.mix": { "__file__": true, - "__name__": "1HhAN-cFtuk0.mix" + "__name__": "03-1-快速入门-心随我动.mix" }, - "VEVNFoIoo51c.mix": { + "03-2-快速入门-心随我动2.mix": { "__file__": true, - "__name__": "1Nqu3deDlzxy.mix" + "__name__": "03-2-快速入门-心随我动2.mix" }, - "nHNrYU-ltr5Y.mix": { + "04-1-快速入门-流动的灯.mix": { "__file__": true, - "__name__": "1Ztk5uKgza9t.mix" + "__name__": "04-1-快速入门-流动的灯.mix" }, - "b7kbC7kSy8Ad.mix": { + "04-2-快速入门-流动的灯2.mix": { "__file__": true, - "__name__": "2CQxmzRH-8hl.mix" + "__name__": "04-2-快速入门-流动的灯2.mix" }, - "SjSkwSFkLh7P.mix": { + "05-1-过程控制-双键开关.mix": { "__file__": true, - "__name__": "2DxlMDt-EdhR.mix" + "__name__": "05-1-过程控制-双键开关.mix" }, - "jSqHU2tyrbe5.mix": { + "05-2-过程控制-单键开关.mix": { "__file__": true, - "__name__": "36JiOajVyc6J.mix" + "__name__": "05-2-过程控制-单键开关.mix" }, - "bSNB5kLbsJKq.mix": { + "05-3-过程控制-IPO概念.mix": { "__file__": true, - "__name__": "3xyaMHLROaUn.mix" + "__name__": "05-3-过程控制-IPO概念.mix" }, - "BYh2UUq8jJqM.mix": { + "06-1-过程控制-声音采集.mix": { "__file__": true, - "__name__": "5qGEhrWTtucr.mix" + "__name__": "06-1-过程控制-声音采集.mix" }, - "RaZoJQs83Leu.mix": { + "06-2-过程控制-看见声音.mix": { "__file__": true, - "__name__": "6953oQjrEiag.mix" + "__name__": "06-2-过程控制-看见声音.mix" }, - "2DLZcEpK4tlq.mix": { + "07-1-过程控制-光强采集.mix": { "__file__": true, - "__name__": "8IiycxOcvRaL.mix" + "__name__": "07-1-过程控制-光强采集.mix" }, - "aYy8aaDJgbve.mix": { + "07-2-过程控制-自动补光.mix": { "__file__": true, - "__name__": "8o--4s90DnDB.mix" + "__name__": "07-2-过程控制-自动补光.mix" }, - "oby3iTTXgIZP.mix": { + "08-1-过程控制-接近检测.mix": { "__file__": true, - "__name__": "ar5KMMAc923t.mix" + "__name__": "08-1-过程控制-接近检测.mix" }, - "O3zTXb_DzhoO.mix": { + "08-2-过程控制-入侵报警.mix": { "__file__": true, - "__name__": "AWVb37dJkMk8.mix" + "__name__": "08-2-过程控制-入侵报警.mix" }, - "-VulE2BiTf3V.mix": { + "09-1-输入输出-加速度.mix": { "__file__": true, - "__name__": "B9ZmATxoj2GX.mix" + "__name__": "09-1-输入输出-加速度.mix" }, - "zLu1vs_FG-CE.mix": { + "09-2-输入输出-平衡仪.mix": { "__file__": true, - "__name__": "BkZW_cGi1-3Y.mix" + "__name__": "09-2-输入输出-平衡仪.mix" }, - "W80o5fTR_Nfo.mix": { + "10-1-输入输出-触摸按键.mix": { "__file__": true, - "__name__": "BqVge0rdpTb6.mix" + "__name__": "10-1-输入输出-触摸按键.mix" }, - "1xNCtTBN-Nbj.mix": { + "10-2-输入输出-减压神器.mix": { "__file__": true, - "__name__": "c6QQrptxZ8mA.mix" + "__name__": "10-2-输入输出-减压神器.mix" }, - "r76FVTyaKmhQ.mix": { + "11-1-输入输出-点阵控制.mix": { "__file__": true, - "__name__": "dDaqka3TnC_z.mix" + "__name__": "11-1-输入输出-点阵控制.mix" }, - "oxQp-IcPwoFx.mix": { + "11-2-输入输出-光标控制.mix": { "__file__": true, - "__name__": "dG_s2YE_l5he.mix" + "__name__": "11-2-输入输出-光标控制.mix" }, - "dLjTSanU_E1L.mix": { + "12-1-输入输出-实时时钟.mix": { "__file__": true, - "__name__": "DnGyj0flMVNI.mix" + "__name__": "12-1-输入输出-实时时钟.mix" }, - "QpZ9MUlWKPs4.mix": { + "12-2-输入输出-实时时钟2.mix": { "__file__": true, - "__name__": "ekOg9F7uVw1L.mix" + "__name__": "12-2-输入输出-实时时钟2.mix" }, - "w08r8fYZ0cZj.mix": { + "13-1-逻辑计算-手速测试.mix": { "__file__": true, - "__name__": "F8waZVfCi0oT.mix" + "__name__": "13-1-逻辑计算-手速测试.mix" }, - "De2mslaGOpAG.mix": { + "13-2-逻辑计算-手速测试2.mix": { "__file__": true, - "__name__": "FXiWWVZ7vK65.mix" + "__name__": "13-2-逻辑计算-手速测试2.mix" }, - "cqqq_Nsq6_lP.mix": { + "14-1-逻辑计算-反应测试.mix": { "__file__": true, - "__name__": "G0ICx0zjoVTV.mix" + "__name__": "14-1-逻辑计算-反应测试.mix" }, - "RKAjR0gs6rLo.mix": { + "14-2-逻辑计算-反应测试2.mix": { "__file__": true, - "__name__": "gy_v9kKcMQ_z.mix" + "__name__": "14-2-逻辑计算-反应测试2.mix" }, - "GL-J9cPLc7RW.mix": { + "15-1-逻辑计算-简单打地鼠.mix": { "__file__": true, - "__name__": "H8TMq0yEAQXD.mix" + "__name__": "15-1-逻辑计算-简单打地鼠.mix" }, - "h8P0KrxXc6PN.mix": { + "15-2-逻辑计算-计时打地鼠.mix": { "__file__": true, - "__name__": "hpae4v-JrJ2F.mix" + "__name__": "15-2-逻辑计算-计时打地鼠.mix" }, - "bWOXtAj9bk_Z.mix": { + "16-1-逻辑计算-开始打地鼠.mix": { "__file__": true, - "__name__": "HWdMPusDZv3P.mix" + "__name__": "16-1-逻辑计算-开始打地鼠.mix" }, - "Ft_3dOuQNbjZ.mix": { + "16-2-逻辑计算-循环打地鼠.mix": { "__file__": true, - "__name__": "hWmXrERm0np2.mix" + "__name__": "16-2-逻辑计算-循环打地鼠.mix" }, - "bP9bQh39meB8.mix": { + "17-0-复杂控制-非中断效果.mix": { "__file__": true, - "__name__": "iJqBLUXKT2Bi.mix" + "__name__": "17-0-复杂控制-非中断效果.mix" }, - "bAV8wQQsmlyu.mix": { + "17-1-复杂控制-双键中断.mix": { "__file__": true, - "__name__": "IP9UFvAPlIhS.mix" + "__name__": "17-1-复杂控制-双键中断.mix" }, - "f5Z_PB2Mmvo4.mix": { + "17-2-复杂控制-单键中断.mix": { "__file__": true, - "__name__": "IS4gY-I1fuUd.mix" + "__name__": "17-2-复杂控制-单键中断.mix" }, - "fyG-0KHQrREy.mix": { + "18-1-复杂控制-定时计时.mix": { "__file__": true, - "__name__": "j4dEaJ3bIxxC.mix" + "__name__": "18-1-复杂控制-定时计时.mix" }, - "XQ7E8gcz2rTZ.mix": { + "18-2-复杂控制-循环计时.mix": { "__file__": true, - "__name__": "JdQDbul-SX71.mix" + "__name__": "18-2-复杂控制-循环计时.mix" }, - "WkWE0xyuMjzX.mix": { + "19-1-复杂控制-多线程.mix": { "__file__": true, - "__name__": "JNXSGx2IIuG5.mix" + "__name__": "19-1-复杂控制-多线程.mix" }, - "HYFg8ytbIha7.mix": { + "19-2-复杂控制-多线程与中断.mix": { "__file__": true, - "__name__": "jQzMGx2u_mCa.mix" + "__name__": "19-2-复杂控制-多线程与中断.mix" }, - "6E3fv0QzsfrA.mix": { + "20-1-复杂控制-异常.mix": { "__file__": true, - "__name__": "JXDY2V-9doTn.mix" + "__name__": "20-1-复杂控制-异常.mix" }, - "edHsB_c1Kr4D.mix": { + "20-2-复杂控制-异常处理.mix": { "__file__": true, - "__name__": "JYCOIX7-o07m.mix" + "__name__": "20-2-复杂控制-异常处理.mix" }, - "NWIlLbH1vPC6.mix": { + "21-1-红外接近-单挥手测试.mix": { "__file__": true, - "__name__": "K8YAdCpq_iN7.mix" + "__name__": "21-1-红外接近-单挥手测试.mix" }, - "0J2iONUUCJ1n.mix": { + "21-2-红外接近-双挥手测试.mix": { "__file__": true, - "__name__": "KI0BcUOz4vML.mix" + "__name__": "21-2-红外接近-双挥手测试.mix" }, - "lIEpHcuYXynW.mix": { + "22-1-红外接近-双门人数统计.mix": { "__file__": true, - "__name__": "kmQ0gSg3UImw.mix" + "__name__": "22-1-红外接近-双门人数统计.mix" }, - "NKvJ490legDU.mix": { + "22-2-红外接近-单门人数统计.mix": { "__file__": true, - "__name__": "kujcS1HQg7HY.mix" + "__name__": "22-2-红外接近-单门人数统计.mix" }, - "-ZVn0mU-KQyE.mix": { + "23-1-红外遥控-数据收发.mix": { "__file__": true, - "__name__": "l0vJbTy0yUQf.mix" + "__name__": "23-1-红外遥控-数据收发.mix" }, - "ZBH-6wVjTzgj.mix": { + "23-2-红外遥控-遥控点灯.mix": { "__file__": true, - "__name__": "lyHxzVyHXD-O.mix" + "__name__": "23-2-红外遥控-遥控点灯.mix" }, - "S_VMvUxa9m3v.mix": { + "24-1-无线广播-通讯测试.mix": { "__file__": true, - "__name__": "mWc2Eywu7bgE.mix" + "__name__": "24-1-无线广播-通讯测试.mix" }, - "huvk_e5EMks4.mix": { + "24-2-无线广播-防丢检测.mix": { "__file__": true, - "__name__": "MYWdMqWR-_Ni.mix" + "__name__": "24-2-无线广播-防丢检测.mix" }, - "d9ysZnqoy2Gv.mix": { + "25-1-飞机游戏-显示飞机.mix": { "__file__": true, - "__name__": "mzhkO6BVzS_Q.mix" + "__name__": "25-1-飞机游戏-显示飞机.mix" }, - "toOxmAj9vBT4.mix": { + "25-2-飞机游戏-移动飞机.mix": { "__file__": true, - "__name__": "NAWiCdkHBfAL.mix" + "__name__": "25-2-飞机游戏-移动飞机.mix" }, - "d6OhCvx9Y_10.mix": { + "26-1-飞机游戏-发射子弹.mix": { "__file__": true, - "__name__": "NvUY_oQI6xb1.mix" + "__name__": "26-1-飞机游戏-发射子弹.mix" }, - "hsGz9kNEJgxt.mix": { + "26-2-飞机游戏-移动音效.mix": { "__file__": true, - "__name__": "ojA_m-SztGo2.mix" + "__name__": "26-2-飞机游戏-移动音效.mix" }, - "9wwH6NAjqFox.mix": { + "27-1-飞机游戏-显示敌机.mix": { "__file__": true, - "__name__": "OPN_C0U_n3Tn.mix" + "__name__": "27-1-飞机游戏-显示敌机.mix" }, - "6_mPOufR4STG.mix": { + "27-2-飞机游戏-消灭敌机.mix": { "__file__": true, - "__name__": "oVUUHP8EUJpa.mix" + "__name__": "27-2-飞机游戏-消灭敌机.mix" }, - "VmEJCs_kowjv.mix": { + "28-1-飞机游戏-显示得分.mix": { "__file__": true, - "__name__": "pbD-jSe8dIkl.mix" + "__name__": "28-1-飞机游戏-显示得分.mix" }, - "EiaEQhIJwTEC.mix": { + "28-2-飞机游戏-结束游戏.mix": { "__file__": true, - "__name__": "pddifQiYMq37.mix" + "__name__": "28-2-飞机游戏-结束游戏.mix" }, - "6hMcDGgJY2B_.mix": { + "29-1-物联网-简单数据定时上报.mix": { "__file__": true, - "__name__": "pgOuStWo8l-K.mix" + "__name__": "29-1-物联网-简单数据定时上报.mix" }, - "43JuL4EtPaVS.mix": { + "29-2-物联网-复杂数据定时上报.mix": { "__file__": true, - "__name__": "PJBuLwqB-rLq.mix" + "__name__": "29-2-物联网-复杂数据定时上报.mix" }, - "ZZwcbu7llDCI.mix": { + "30-1-物联网-简单数据按需上报.mix": { "__file__": true, - "__name__": "pMGanptmcYG8.mix" + "__name__": "30-1-物联网-简单数据按需上报.mix" }, - "buHQQB9TBNk3.mix": { + "30-2-物联网-高级数据按需上报.mix": { "__file__": true, - "__name__": "q0vKDdqPntkM.mix" + "__name__": "30-2-物联网-高级数据按需上报.mix" }, - "5hwQBFvcDVQN.mix": { + "31-1-物联网-单主题数据订阅.mix": { "__file__": true, - "__name__": "Q98Ya2GJH099.mix" + "__name__": "31-1-物联网-单主题数据订阅.mix" }, - "9aXbEiIURWwK.mix": { + "31-1-物联网-单主题数据订阅2.mix": { "__file__": true, - "__name__": "q9xPtd548pk_.mix" + "__name__": "31-1-物联网-单主题数据订阅2.mix" }, - "rHJX95MPnMEh.mix": { + "32-1-物联网-多主题数据订.mix": { "__file__": true, - "__name__": "rEqhV_IHzcdu.mix" + "__name__": "32-1-物联网-多主题数据订.mix" }, - "yAmca_Wsacbm.mix": { + "32-2-物联网-多主题数据订2.mix": { "__file__": true, - "__name__": "ri0CfMcsOvIF.mix" + "__name__": "32-2-物联网-多主题数据订2.mix" }, - "1l80Ir4XUkKe.mix": { + "33-1-课堂互动-自由签到.mix": { "__file__": true, - "__name__": "rKuaIGVxSPoP.mix" + "__name__": "33-1-课堂互动-自由签到.mix" }, - "impjKXxoEKx2.mix": { + "33-2-课堂互动-按需签到.mix": { "__file__": true, - "__name__": "rxuIyldlrtqe.mix" + "__name__": "33-2-课堂互动-按需签到.mix" }, - "469F_xib7udN.mix": { + "34-1-课堂互动-一人抢答.mix": { "__file__": true, - "__name__": "S1LUly0RafAd.mix" + "__name__": "34-1-课堂互动-一人抢答.mix" }, - "NecientEBnDJ.mix": { + "34-2-课堂互动-多人抢答.mix": { "__file__": true, - "__name__": "sfi-8zf7H8IZ.mix" + "__name__": "34-2-课堂互动-多人抢答.mix" }, - "8EqCJ2ux6p2W.mix": { + "35-1-课堂互动-单选答题.mix": { "__file__": true, - "__name__": "TdpTnMUyno79.mix" + "__name__": "35-1-课堂互动-单选答题.mix" }, - "nQ9AL9BzXvjT.mix": { + "35-2-课堂互动-多选答题.mix": { "__file__": true, - "__name__": "Tf0ucKwXOewX.mix" + "__name__": "35-2-课堂互动-多选答题.mix" }, - "GpFna73kNGE5.mix": { + "36-1-课堂互动-点名答题.mix": { "__file__": true, - "__name__": "tSoGsNi6DXR8.mix" + "__name__": "36-1-课堂互动-点名答题.mix" }, - "nhrkAXiOBX8C.mix": { + "36-2-课堂互动-多人点答.mix": { "__file__": true, - "__name__": "UhElPPtQJkQl.mix" + "__name__": "36-2-课堂互动-多人点答.mix" }, - "XneMa571hj9g.mix": { + "37-1-文件操作-列出文件.mix": { "__file__": true, - "__name__": "uIMmEAn211re.mix" + "__name__": "37-1-文件操作-列出文件.mix" }, - "gPtzunGmbNex.mix": { + "37-2-文件操作-列出文件2.mix": { "__file__": true, - "__name__": "uP8i7JaGOxKc.mix" + "__name__": "37-2-文件操作-列出文件2.mix" }, - "OiLlhdZuq1vN.mix": { + "38-1-文件操作-文件读写.mix": { "__file__": true, - "__name__": "V4Oei9dhU6Qu.mix" + "__name__": "38-1-文件操作-文件读写.mix" }, - "f5o1myjT4xRJ.mix": { + "38-2-文件操作-文件读写2.mix": { "__file__": true, - "__name__": "vHnCAzBu2QCM.mix" + "__name__": "38-2-文件操作-文件读写2.mix" }, - "gfD5_Ky30MA4.mix": { + "39-1-文件操作-录音采集.mix": { "__file__": true, - "__name__": "w2i55B0otkox.mix" + "__name__": "39-1-文件操作-录音采集.mix" }, - "JZQdcmrnCRfU.mix": { + "39-2-文件操作-录音重现.mix": { "__file__": true, - "__name__": "W3lPfAoxQ9jA.mix" + "__name__": "39-2-文件操作-录音重现.mix" }, - "vZ0aFkUHmRH5.mix": { + "40-1-文件操作-震动采集.mix": { "__file__": true, - "__name__": "WhDF57vH6rLk.mix" + "__name__": "40-1-文件操作-震动采集.mix" }, - "k2RwPzAyy9DV.mix": { + "40-2-文件操作-震动重现.mix": { "__file__": true, - "__name__": "wWC-_q_3KJtu.mix" + "__name__": "40-2-文件操作-震动重现.mix" }, - "xgVqPzRwVImC.mix": { + "41-1-智能小车-前进转弯(MEGO).mix": { "__file__": true, - "__name__": "YKjQSH5-YOat.mix" + "__name__": "41-1-智能小车-前进转弯(MEGO).mix" }, - "_q4-VqzkQM7y.mix": { + "41-2-智能小车-圆圈转弯(MEGO).mix": { "__file__": true, - "__name__": "yUIiNoZgZBN2.mix" + "__name__": "41-2-智能小车-圆圈转弯(MEGO).mix" }, - "llGxVNx50qP1.mix": { + "42-1-智能小车-智能避障(MEGO).mix": { "__file__": true, - "__name__": "z6Bhkqeh8Ri6.mix" + "__name__": "42-1-智能小车-智能避障(MEGO).mix" }, - "ue5IbCIKNVQF.mix": { + "42-2-智能小车-智能避障2(MEGO).mix": { "__file__": true, - "__name__": "Zlm6UQGkfHIT.mix" + "__name__": "42-2-智能小车-智能避障2(MEGO).mix" }, - "fMw6hkuBaJk1.mix": { + "43-1-智能小车-遥控小车(MEGO).mix": { "__file__": true, - "__name__": "ZxOQQMs6QiKO.mix" + "__name__": "43-1-智能小车-遥控小车(MEGO).mix" }, - "SMpCxyoh_THU.mix": { + "43-2-智能小车-体感遥控(MEGO).mix": { "__file__": true, - "__name__": "_26-MUxRX4pn.mix" + "__name__": "43-2-智能小车-体感遥控(MEGO).mix" }, - "Jb-WGE11wPMt.mix": { + "44-1-智能小车-P单巡线(MEGO).mix": { "__file__": true, - "__name__": "_pWrh9327x99.mix" + "__name__": "44-1-智能小车-P单巡线(MEGO).mix" }, - "MoYIOtlxSlMT.mix": { + "44-2-智能小车-P双巡线(MEGO).mix": { "__file__": true, - "__name__": "_te1bJuNeP3L.mix" + "__name__": "44-2-智能小车-P双巡线(MEGO).mix" } } diff --git a/boards/default/micropython_esp32s2/index.xml b/boards/default/micropython_esp32s2/index.xml index 31513b21..6557511a 100644 --- a/boards/default/micropython_esp32s2/index.xml +++ b/boards/default/micropython_esp32s2/index.xml @@ -1 +1 @@ -02000attachInterrupt_funcattachInterrupt_func010,1,2,3051iDIVIDE10Exception as eetestThreadtestThreadWHILETRUEHello Mixly from Thread!ms10timtim1000tim_callbacktim_callback5000200090x151100a10.998124.829971100101010001100501100110000x2x0,1,2,30,1,2,30,1,2,3xMixlyHelloMixly65axMixlyMixly0Mixly02MixlyMixlyHello,mixlyl--mylistHello,mixlymixlymixpyI love mixly!I love mixlyRandom No. is {}int1100input('1+2*3')mylist1,2,3,4,5mylist0mylist02mylistmylistmylist0mylist00mylist00mylist0mylist0mylist0mylistmylistmylistx0,1,2,30,1,2,3mytup1,2,3,4,5mytup0mytup02mytupmytupmytupmytup0mytupmytup1mytup2xmydictmydictkeymydictkey0mydictkey0mydictkeymydictkeymydictkey0mydictmydictmydictmydictxmydict{"name":"Mixly","color":"green"}s11,2,3,4,5s1s1s1s2s1s2s10s1Mixlys1s2xMixlyMixlyMixly,HelloMixlyprompt02MixlyMixly0XFF00FFcodebMixlyMixly1attachInterrupt_funcattachInterrupt_func2022711420452023,1,1,12,0,018029100440440100004120000000000010001000Mixly0MixlyMixly500MixlyMixly500>10.51001001000interrupt_funcinterrupt_functurnsdistancei2c_extend1718400000g6i2c_extendg6g6100g6g6100g6g6100g6wifinamewifipassword8080AUTH TOKEN0_value02000notify0Your Target Emailsubjectbodycolor#FF0000wifinamewifipasswordmixio.mixly.cnmixio.mixly.cnA1B2C3mixio.mixly.cnusernamepasswordMyProjecttopicmsgtopicmethodmethodEQmsg1content"long""lat""message"012content"key1""key2""key3"012http://mixio.mixly.cn/time.phpmixio.mixly.cnwifinamewifipasswordcsub_cb31444082183.230.40.3914109261n63JySRowo13ZLDBKw6y896E0=MixlyRobotsub_cbEQmsg1ciot_dict"tc"tc0ciot_dictccwifinamewifipasswordclientEnter Your API_KEYEnter Your SECRET_KEYclient1clientS72099北京今天天气如何?wifinamewifipasswordSfsxo7MfAaNO1U_Pq北京Sfsxo7MfAaNO1U_Pq北京1Sfsxo7MfAaNO1U_Pq北京243820000391000009000,4500,563,5630x1234callbackcmdaddrrawpulsesi2c2221100000i2c00i2c00i2ci2ci2cspi200000045spi200000buf50spi10spi100xffspibufspibuf0xffspi12345spi12345buf1Mixlyow12owowow12345ow12345owmy_now0my_nowmy_nowmy_nowFFFFFFFFFFFFmixlymy_nowmy_nowcbcbEQmsg1spi10000004512spi8my_lora433.925716my_loramy_loramy_loraMixlyi2c_extend45100000xsensori2c_extendxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorspi10000004512spi8ysensorysensor0ysensor0ysensor0Mixlyysensor0Mixlyysensorysensorysensor39,119.96,31.67ysensorysensorstation45ps2_handle24512ps2_handle50ps2_handleps2_handlews_wr124ws_wrws_wrws_wr360010zsensorzsensorzsensorzsensormidi0midi440midi4401000midimidimidi4120midimidirgb04rgb0000rgb000rgb100100i2c_extend45400000Motori2c_extendMotor100Motor1024102402ttsttsttsttstts你好米思齐i2c_extend45400000matrixi2c_extendmatrixmatrixmatrixMixly0matrixMixlymatrixMixly500matrixMixlymatrixMixly500matrixmatrix>matrixmatrix1matrixmatrixmatrix0.5matrixmatrixi2c_extend45100000dispi2c_extenddisp2333dispdisp1i2c_extend45100000lcdi2c_extend0x27lcdMixly00lcdMixly005lcdlcdi2c_extend45100000oledi2c_extend0x3coledoled001oledMixlyoledMixly0010oledMixlyoledMixly0550oledMixlyoledMixly5500oled0020oled005050oled20202015oled1oled00oled00oledspi10000001246spi45tft_st7789135240tft_st7789001#ffffff255,255,0tft_st7789Mixly0050#ffffff255,255,0tft_st7789Mixly0550#ffffff255,255,0tft_st7789Mixly5500#ffffff255,255,0tft_st7789004040#ffffff255,255,0tft_st778912ai_sensorai_sensor98ai_sensor255,255,00,0,255ai_sensor'ni-hao','hong-se','lv-se','lan-se','bai-se','hei-se'0.1ai_sensor1.wav5ai_sensor1.wav100ai_sensorinfoai_sensorqrcodeinfoai_sensorbarcodeinfoai_sensortaginfoai_sensor25002525lineinfoai_sensor35002100circleinfoai_sensor10000rectinfoai_sensorinfoinfoai_sensorcolor_lab101colorsai_sensor'猫','狗','笔记本','笔'mixgo5自模型训练infoai_sensor'猫','狗','笔记本','笔'mixgo自模型识别objectsinfoai_sensor0.1606, 0.3562, 0.4712, 0.9568, 0.9877, 1.9108, 1.8761, 3.5310, 3.4423, 5.6823/sd/masks.kmodel外部模型加载objects12ai_sensorai_sensor98ai_sensor255,255,00,0,255ai_sensor1.wav5ai_sensor1.wav100infoai_sensorlicensePlateinfoai_sensorfaceinfoai_sensor20objectsai_sensorinfoai_sensorqrcodeinfoai_sensorbarcodeinfoai_sensortaginfoai_sensor25002525lineinfoai_sensor35002100circleinfoai_sensor10000rectinfoai_sensorinfoinfoai_sensorcolor_lab101colorsfilename.txtfMixlyfff0fffpathpathfilename.txtsrcname.txtdstname.txtpathff0wifinamewifipasswordwlanwlanwlanwlanwlan127.16.0.801234567wlanwlanwlanwlanwlan127.16.0.81connect_wifiwlanAPwlanTruewlanwlanSmallCabbage1WHILETRUEEQ0wlan0.0.0.0ms1000TRUEss0.0.0.080s192.168.0.180s5ss1024sbMixlyresponses1024sbMixlyresponse127.0.0.180sntp.aliyun.com \ No newline at end of file +02000attachInterrupt_funcattachInterrupt_func010,1,2,3051iDIVIDE10Exception as eetestThreadtestThreadWHILETRUEHello Mixly from Thread!ms10timtim1000tim_callbacktim_callback5000200090x151100a10.998124.829971100101010001100501100110000x2x0,1,2,30,1,2,30,1,2,3xMixlyHelloMixly65axMixlyMixly0Mixly02MixlyMixlyHello,mixlyl--mylistHello,mixlymixlymixpyI love mixly!I love mixlyRandom No. is {}int1100input('1+2*3')mylist1,2,3,4,5mylist0mylist02mylistmylistmylist0mylist00mylist00mylist0mylist0mylist0mylistmylistmylistx0,1,2,30,1,2,3mytup1,2,3,4,5mytup0mytup02mytupmytupmytupmytup0mytupmytup1mytup2xmydictmydictkeymydictkey0mydictkey0mydictkeymydictkeymydictkey0mydictmydictmydictmydictxmydict{"name":"Mixly","color":"green"}s11,2,3,4,5s1s1s1s2s1s2s10s1Mixlys1s2xMixlyMixlyMixly,HelloMixlyprompt02MixlyMixly0XFF00FFcodebMixlyMixly1attachInterrupt_funcattachInterrupt_func2022711420452023,1,1,12,0,018029100440440100004120000000000010001000Mixly0MixlyMixly500MixlyMixly500>10.51001001000interrupt_funcinterrupt_functurnsdistancei2c_extend1718400000g6i2c_extendg6g6100g6g6100g6g6100g6wifinamewifipassword8080AUTH TOKEN0_value02000notify0Your Target Emailsubjectbodycolor#FF0000wifinamewifipasswordmixio.mixly.cnmixio.mixly.cnA1B2C3mixio.mixly.cnusernamepasswordMyProjecttopicmsgtopicmethodmethodEQmsg1content"long""lat""message"012content"key1""key2""key3"012http://mixio.mixly.cn/time.phpmixio.mixly.cnwifinamewifipasswordcsub_cb31444082183.230.40.3914109261n63JySRowo13ZLDBKw6y896E0=MixlyRobotsub_cbEQmsg1ciot_dict"tc"tc0ciot_dictccwifinamewifipasswordclientEnter Your API_KEYEnter Your SECRET_KEYclient1clientS72099北京今天天气如何?wifinamewifipasswordSfsxo7MfAaNO1U_Pq北京Sfsxo7MfAaNO1U_Pq北京1Sfsxo7MfAaNO1U_Pq北京243820000391000009000,4500,563,5630x1234callbackcmdaddrrawpulsesi2c2221100000i2c00i2c00i2ci2ci2cspi200000045spi200000buf50spi10spi100xffspibufspibuf0xffspi12345spi12345buf1Mixlyow12owowow12345ow12345owmy_now0my_nowmy_nowmy_nowFFFFFFFFFFFFmixlymy_nowmy_nowcbcbEQmsg1spi10000004512spi8my_lora433.925716my_loramy_loramy_loraMixlyi2c_extend45100000xsensori2c_extendxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorspi10000004512spi8ysensorysensor0ysensor0ysensor0Mixlyysensor0Mixlyysensorysensorysensor39,119.96,31.67ysensorysensorstation45ps2_handle24512ps2_handle50ps2_handleps2_handlews_wr124ws_wrws_wrws_wr360010zsensorzsensorzsensorzsensormidi0midi440midi4401000midimidimidi4120midimidirgb04rgb0000rgb000rgb100100i2c_extend45400000Motori2c_extendMotor100Motor1024102402ttsttsttsttstts你好米思齐i2c_extend45400000matrixi2c_extendmatrixmatrixmatrixMixly0matrixMixlymatrixMixly500matrixMixlymatrixMixly500matrixmatrix>matrixmatrix1matrixmatrixmatrix0.5matrixmatrixi2c_extend45100000dispi2c_extenddisp2333dispdisp1i2c_extend45100000lcdi2c_extend0x27lcdMixly00lcdMixly005lcdlcdi2c_extend45100000oledi2c_extend0x3coledoled001oledMixlyoledMixly0010oledMixlyoledMixly0550oledMixlyoledMixly5500oled0020oled005050oled20202015oled1oled00oled00oledspi10000001246spi45tft_st7789135240tft_st7789001#ffffff255,255,0tft_st7789Mixly0050#ffffff255,255,0tft_st7789Mixly0550#ffffff255,255,0tft_st7789Mixly5500#ffffff255,255,0tft_st7789004040#ffffff255,255,0tft_st778912ai_sensorai_sensor98ai_sensor255,255,00,0,255ai_sensor'ni-hao','hong-se','lv-se','lan-se','bai-se','hei-se'0.1ai_sensor1.wav5ai_sensor1.wav100ai_sensorinfoai_sensorqrcodeinfoai_sensorbarcodeinfoai_sensortaginfoai_sensor25002525lineinfoai_sensor35002100circleinfoai_sensor10000rectinfoai_sensorinfoinfoai_sensorcolor_lab101colorsai_sensor'猫','狗','笔记本','笔'mixgo5自模型训练infoai_sensor'猫','狗','笔记本','笔'mixgo自模型识别objectsinfoai_sensor0.1606, 0.3562, 0.4712, 0.9568, 0.9877, 1.9108, 1.8761, 3.5310, 3.4423, 5.6823/sd/masks.kmodel外部模型加载objects12ai_sensorai_sensor98ai_sensor255,255,00,0,255ai_sensor1.wav5ai_sensor1.wav100infoai_sensorlicensePlateinfoai_sensorfaceinfoai_sensor20objectsai_sensorinfoai_sensorqrcodeinfoai_sensorbarcodeinfoai_sensortaginfoai_sensor25002525lineinfoai_sensor35002100circleinfoai_sensor10000rectinfoai_sensorinfoinfoai_sensorcolor_lab101colorsfilename.txtfMixlyfff0fffpathpathfilename.txtsrcname.txtdstname.txtpathff0wifinamewifipasswordwlanwlanwlanwlanwlan127.16.0.801234567wlanwlanwlanwlanwlan127.16.0.81connect_wifiwlanAPwlanTruewlanwlanSmallCabbage1WHILETRUEEQ0wlan0.0.0.0ms1000TRUEss0.0.0.080s192.168.0.180s5ss1024sbMixlyresponses1024sbMixlyresponse127.0.0.180sntp.aliyun.com \ No newline at end of file diff --git a/boards/default/micropython_esp32s2/main.bundle.js b/boards/default/micropython_esp32s2/main.bundle.js index 9a588624..64094503 100644 --- a/boards/default/micropython_esp32s2/main.bundle.js +++ b/boards/default/micropython_esp32s2/main.bundle.js @@ -18,4 +18,4 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -class ct{constructor(t,e){if(this.variablePrefix_=e||"",this.reservedDict_=Object.create(null),t)for(var i=t.split(","),n=0;n0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?i[s]=e.getInputTargetBlock("IF"+s).previousConnection:i[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?n[s]=e.getInputTargetBlock("DO"+s).previousConnection:n[s]=null,this.removeInput("DO"+s);this.elseifCount_=parseInt(t.getAttribute("elseif"),10),this.elseCount_=parseInt(t.getAttribute("else"),10);for(s=1;s<=this.elseifCount_;s++)this.appendValueInput("IF"+s).setCheck([Boolean,Number]).appendField(mt.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+s).appendField(mt.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(mt.Msg.CONTROLS_IF_MSG_ELSE);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"IF"+s);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_if_if");e.initSvg();for(var i=e.getInput("STACK").connection,n=1;n<=this.elseifCount_;n++){var s=t.newBlock("controls_if_elseif");s.initSvg(),i.connect(s.previousConnection),i=s.nextConnection}if(this.elseCount_){var o=t.newBlock("controls_if_else");o.initSvg(),i.connect(o.previousConnection)}return e},compose:function(t){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var e=this.elseifCount_;e>0;e--)this.removeInput("IF"+e),this.removeInput("DO"+e);this.elseifCount_=0;for(var i=t.getInputTargetBlock("STACK"),n=[null],s=[null],o=null;i;){switch(i.type){case"controls_if_elseif":this.elseifCount_++,n.push(i.valueConnection_),s.push(i.statementConnection_);break;case"controls_if_else":this.elseCount_++,o=i.statementConnection_;break;default:throw Error("Unknown block type: "+i.type)}i=i.nextConnection&&i.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(n,s,o)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),i=1;e;){switch(e.type){case"controls_if_elseif":var n=this.getInput("IF"+i),s=this.getInput("DO"+i);e.valueConnection_=n&&n.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,i++;break;case"controls_if_else":s=this.getInput("ELSE");e.statementConnection_=s&&s.connection.targetConnection;break;default:throw"Unknown block type."}e=e.nextConnection&&e.nextConnection.targetBlock()}},rebuildShape_:function(){var t=[null],e=[null],i=null;this.getInput("ELSE")&&(i=this.getInput("ELSE").connection.targetConnection);for(var n=1;this.getInput("IF"+n);){var s=this.getInput("IF"+n),o=this.getInput("DO"+n);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(o.connection.targetConnection),n++}this.updateShape_(),this.reconnectChildBlocks_(t,e,i)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var t=1;this.getInput("IF"+t);)this.removeInput("IF"+t),this.removeInput("DO"+t),t++;for(t=1;t<=this.elseifCount_;t++)this.appendValueInput("IF"+t).setCheck([Number,Boolean]).appendField(mt.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+t).appendField(mt.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(mt.Msg.CONTROLS_IF_MSG_ELSE)},reconnectChildBlocks_:function(t,e,i){for(var n=1;n<=this.elseifCount_;n++)t[n]&&t[n].reconnect(this,"IF"+n),e[n]&&e[n].reconnect(this,"DO"+n);i&&i.reconnect(this,"ELSE")}},bt={init:function(){this.setColour(Ft),this.appendValueInput("FROM").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.PYTHON_RANGE).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.PYTHON_RANGE_STEP),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},Vt={init:function(){this.setColour(Ft),this.appendValueInput("LIST").setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.CONTROLS_FOREACH_INPUT),this.appendValueInput("VAR").appendField(mt.Msg.CONTROLS_FOREACH_INPUT_ITEM),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip((function(){return mt.Msg.CONTROLS_FOR_TOOLTIP.replace("“%1”","")}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},yt={init:function(){this.setColour(Ft),this.appendValueInput("BOOL").setCheck([Boolean,Number]).appendField(mt.Msg.MIXLY_MICROBIT_JS_CURRENT).appendField(new mt.FieldDropdown(this.OPERATORS),"MODE"),this.appendStatementInput("DO").appendField(mt.Msg.LANG_CONTROLS_WHILEUNTIL_TITLE_REPEAT+mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return{WHILE:mt.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_WHILE,UNTIL:mt.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL}[e]}))}},Bt={init:function(){this.setColour(Ft),this.appendDummyInput().appendField(mt.Msg.MIXLY_PYTHON_TRY),this.appendStatementInput("try"),this.appendValueInput("IF1").appendField(mt.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO1").appendField(""),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new mt.icons.MutatorIcon(["controls_except","controls_finally"],this)),this.setTooltip(mt.Msg.MIXLY_MIXPY_CONTROL_TRY_TOOLTIP),this.elseifCount_=1,this.elseCount_=0},mutationToDom:function(){if(!this.elseifCount_&&!this.elseCount_)return null;var t=document.createElement("mutation");return this.elseifCount_&&t.setAttribute("elseif",this.elseifCount_),this.elseCount_&&t.setAttribute("else",1),t},domToMutation:function(t){var e=this,i=[],n=[];this.elseCount_&&this.removeInput("ELSE");for(var s=this.elseifCount_;s>0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?i[s]=e.getInputTargetBlock("IF"+s).previousConnection:i[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?n[s]=e.getInputTargetBlock("DO"+s).previousConnection:n[s]=null,this.removeInput("DO"+s);this.elseifCount_=parseInt(t.getAttribute("elseif"),10),this.elseCount_=parseInt(t.getAttribute("else"),10);for(s=1;s<=this.elseifCount_;s++)this.appendValueInput("IF"+s).setCheck([Boolean,Number]).appendField(mt.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+s).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(mt.Msg.MIXLY_PYTHON_FINALLY);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"IF"+s);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_try");e.initSvg();for(var i=e.getInput("STACK").connection,n=1;n<=this.elseifCount_;n++){var s=t.newBlock("controls_except");s.initSvg(),i.connect(s.previousConnection),i=s.nextConnection}if(this.elseCount_){var o=t.newBlock("controls_finally");o.initSvg(),i.connect(o.previousConnection)}return e},compose:function(t){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var e=this.elseifCount_;e>0;e--)this.removeInput("IF"+e),this.removeInput("DO"+e);this.elseifCount_=0;for(var i=t.getInputTargetBlock("STACK"),n=[null],s=[null],o=null;i;){switch(i.type){case"controls_except":this.elseifCount_++,n.push(i.valueConnection_),s.push(i.statementConnection_);break;case"controls_finally":this.elseCount_++,o=i.statementConnection_;break;default:throw Error("Unknown block type: "+i.type)}i=i.nextConnection&&i.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(n,s,o)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),i=1;e;){switch(e.type){case"controls_except":var n=this.getInput("IF"+i),s=this.getInput("DO"+i);e.valueConnection_=n&&n.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,i++;break;case"controls_finally":s=this.getInput("ELSE");e.statementConnection_=s&&s.connection.targetConnection;break;default:throw"Unknown block type."}e=e.nextConnection&&e.nextConnection.targetBlock()}},rebuildShape_:function(){var t=[null],e=[null],i=null;this.getInput("ELSE")&&(i=this.getInput("ELSE").connection.targetConnection);for(var n=1;this.getInput("IF"+n);){var s=this.getInput("IF"+n),o=this.getInput("DO"+n);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(o.connection.targetConnection),n++}this.updateShape_(),this.reconnectChildBlocks_(t,e,i)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var t=1;this.getInput("IF"+t);)this.removeInput("IF"+t),this.removeInput("DO"+t),t++;for(t=1;t<=this.elseifCount_;t++)this.appendValueInput("IF"+t).setCheck([Number,Boolean]).appendField(mt.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+t).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(mt.Msg.MIXLY_PYTHON_FINALLY)},reconnectChildBlocks_:function(t,e,i){for(var n=1;n<=this.elseifCount_;n++)t[n]&&t[n].reconnect(this,"IF"+n),e[n]&&e[n].reconnect(this,"DO"+n);i&&i.reconnect(this,"ELSE")}},Gt={init:function(){this.setColour(Ft);var t=new mt.FieldDropdown(this.OPERATORS);this.appendDummyInput().appendField(t,"FLOW").appendField(mt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_INPUT_OFLOOP),this.setPreviousStatement(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_CONTROLS_FLOW_STATEMENTS_TOOLTIP);var e=this;this.setTooltip((function(){var t=e.getFieldValue("FLOW");return{BREAK:mt.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK,CONTINUE:mt.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE}[t]}))},onchange:function(){if(this.workspace){var t=!1,e=this;do{if("controls_repeat"==e.type||"controls_for"==e.type||"controls_forEach"==e.type||"controls_repeat_ext"==e.type||"controls_whileUntil"==e.type||"do_while"==e.type){t=!0;break}e=e.getSurroundParent()}while(e);t?this.setWarningText(null):this.setWarningText(mt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_WARNING)}}},Ut={init:function(){this.setColour(Ft),this.appendDummyInput().appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new mt.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return mt.Msg.CONTROLS_FOR_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},wt={init:function(){this.setColour(Ft),this.appendDummyInput().appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new mt.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return mt.Msg.MIXLY_PYTHON_CONTROLS_FOR_RANGE_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}};yt.OPERATORS=[[mt.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"WHILE"],[mt.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"UNTIL"]],Gt.OPERATORS=[[mt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK,"BREAK"],[mt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE,"CONTINUE"]];const kt={init:function(){this.setColour(Ft),this.appendDummyInput().appendField(mt.Msg.CONTROLS_IF_IF_TITLE_IF),this.appendStatementInput("STACK"),this.setTooltip(mt.Msg.CONTROLS_IF_IF_TOOLTIP),this.contextMenu=!1}},Ht={init:function(){this.setColour(Ft),this.appendDummyInput().appendField(mt.Msg.CONTROLS_IF_ELSEIF_TITLE_ELSEIF),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.CONTROLS_IF_ELSEIF_TOOLTIP),this.contextMenu=!1}},Wt={init:function(){this.setColour(Ft),this.appendDummyInput().appendField(mt.Msg.CONTROLS_IF_ELSE_TITLE_ELSE),this.setPreviousStatement(!0),this.setTooltip(mt.Msg.CONTROLS_IF_ELSE_TOOLTIP),this.contextMenu=!1}},Kt={init:function(){this.setColour(Ft),this.appendDummyInput().appendField("try"),this.appendStatementInput("STACK"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.contextMenu=!1}},Jt={init:function(){this.setColour(Ft),this.appendDummyInput().appendField(mt.Msg.MIXLY_PYTHON_EXCEPT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.contextMenu=!1,this.setTooltip(mt.Msg.MIXLY_MIXPY_CONTROL_EXCEPT_TOOLTIP)}},zt={init:function(){this.setColour(Ft),this.appendDummyInput().appendField(mt.Msg.MIXLY_PYTHON_FINALLY),this.setPreviousStatement(!0),this.contextMenu=!1,this.setTooltip(mt.Msg.MIXLY_MIXPY_CONTROL_FINALLY_TOOLTIP)}},qt={init:function(){this.jsonInit({message0:mt.Msg.CONTROLS_REPEAT_TITLE,args0:[{type:"input_value",name:"TIMES"}],previousStatement:null,nextStatement:null,colour:Ft,tooltip:mt.Msg.CONTROLS_REPEAT_TOOLTIP,helpUrl:mt.Msg.CONTROLS_REPEAT_HELPURL}),this.appendStatementInput("DO")}},Qt={init:function(){this.setColour(Ft),this.appendValueInput("BOOL").appendField("lambda"),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_STAT),this.setOutput(!0)}},jt={init:function(){this.setColour(Ft),this.appendDummyInput().appendField(mt.Msg.MIXLY_PYTHON_PASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_CONTROLS_PASS_TOOLTIP)}},Zt={init:function(){this.setColour(Ft),this.appendDummyInput().appendField(mt.Msg.MIXLY_PYTHON_CONTROLS_THREAD_START),this.appendValueInput("callback").appendField(mt.Msg.MIXLY_PYTHON_CONTROLS_THREAD_USE),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_CONTROLS_THREAD_TOOLTIP)}},$t={init:function(){this.appendDummyInput().appendField(mt.Msg.CONTROLS_REPEAT_TITLE_REPEAT+mt.Msg.MIXLY_DO),this.appendStatementInput("input_data").setCheck(null),this.appendValueInput("select_data").setCheck(null).appendField(mt.Msg.CONTROLS_OPERATOR_UNTIL).appendField(new mt.FieldDropdown([[mt.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"true"],[mt.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"false"]]),"type"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Ft),this.setTooltip("do-while loop"),this.setHelpUrl("")}},te={init:function(){this.setColour(Ft),this.appendDummyInput().appendField(mt.Msg.MIXLY_OP_GARBAGE_COLLECT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},ee={init:function(){this.setColour(Ft),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_MEM_ALLOC),this.setOutput(!0)}},ie={init:function(){this.setColour(Ft),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_MEM_FREE),this.setOutput(!0)}},ne=230;mt.FieldTextInput.math_number_validator=function(t){return String(t)},mt.FieldTextInput.math_number_validator_include_blank=function(t){if(""===t)return"";return/^-?(0X|0x|0O|0o|0B|0b)?[a-fA-F0-9]{1,}(\.[a-fA-F0-9]+)?$/.test(t)?String(t):null};const se={init:function(){this.setColour(ne),this.appendDummyInput().appendField(new mt.FieldTextInput("0",mt.FieldTextInput.math_number_validator),"NUM"),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MATH_NUMBER_TOOLTIP)}},oe={init:function(){this.setColour(ne);this.appendDummyInput("").appendField(mt.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new mt.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:mt.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_TOOLTIP,e:mt.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_TOOLTIP}[e]}))}},_e={init:function(){this.setColour(ne);this.appendDummyInput("").appendField(mt.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new mt.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:mt.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_MP_TOOLTIP,e:mt.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_MP_TOOLTIP}[e]}))}},pe={init:function(){this.setColour(ne),this.setOutput(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new mt.FieldDropdown([["+","ADD"],["-","MINUS"],["×","MULTIPLY"],["÷","DIVIDE"],["%","QUYU"],["//","ZHENGCHU"],["**","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:mt.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:mt.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:mt.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:mt.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:mt.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:mt.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:mt.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},ae={init:function(){this.setColour(ne),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new mt.FieldDropdown([["+=","ADD"],["-=","MINUS"],["×=","MULTIPLY"],["÷=","DIVIDE"],["%=","QUYU"],["//=","ZHENGCHU"],["**=","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:mt.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:mt.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:mt.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:mt.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:mt.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:mt.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:mt.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},ue={init:function(){this.setColour(ne),this.setOutput(!0,Number),this.appendValueInput("A").setCheck(Number),this.appendValueInput("B").setCheck(Number).appendField(new mt.FieldDropdown([["&","&"],["|","|"],[">>",">>"],["<<","<<"]]),"OP"),this.setInputsInline(!0),this.setTooltip("位运算")}},re={init:function(){this.setColour(ne),this.setOutput(!0,Number),this.appendValueInput("NUM").setCheck(Number).appendField(new mt.FieldDropdown([["sin","SIN"],["cos","COS"],["tan","TAN"],["asin","ASIN"],["acos","ACOS"],["atan","ATAN"],["-","-"],["ln","LN"],["log10","LOG10"],["e^","EXP"],["10^","POW10"]]),"OP");var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{SIN:mt.Msg.MATH_TRIG_TOOLTIP_SIN,COS:mt.Msg.MATH_TRIG_TOOLTIP_COS,TAN:mt.Msg.MATH_TRIG_TOOLTIP_TAN,ASIN:mt.Msg.MATH_TRIG_TOOLTIP_ASIN,ACOS:mt.Msg.MATH_TRIG_TOOLTIP_ACOS,ATAN:mt.Msg.MATH_TRIG_TOOLTIP_ATAN,LN:mt.Msg.MATH_SINGLE_TOOLTIP_LN}[e]}))}},le={init:function(){var t=[[mt.Msg.MATH_BIN,"bin"],[mt.Msg.MATH_OCT,"oct"],[mt.Msg.MATH_HEX,"hex"]];this.setColour(ne),this.setOutput(!0,String),this.appendValueInput("NUM").setCheck(Number).appendField(new mt.FieldDropdown(t),"OP");var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{bin:mt.Msg.MATH_DEC_TOOLTIP_BIN,oct:mt.Msg.MATH_DEC_TOOLTIP_OCT,hex:mt.Msg.MATH_DEC_TOOLTIP_HEX}[t]}))}},de={init:function(){var t=[[mt.Msg.LANG_MATH_TO_ROUND,"round"],[mt.Msg.LANG_MATH_TO_CEIL,"ceil"],[mt.Msg.LANG_MATH_TO_FLOOR,"floor"],[mt.Msg.MATH_ABS,"fabs"],[mt.Msg.MATH_SQRT,"sqrt"]];this.setColour(ne),this.appendValueInput("A").setCheck(Number).appendField(new mt.FieldDropdown(t),"OP"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{sqrt:mt.Msg.MATH_SINGLE_TOOLTIP_ROOT,fabs:mt.Msg.MATH_SINGLE_TOOLTIP_ABS,sq:mt.Msg.MATH_SINGLE_TOOLTIP_SQ,round:mt.Msg.MATH_SINGLE_TOOLTIP_ROUND,ceil:mt.Msg.MATH_SINGLE_TOOLTIP_CEIL,floor:mt.Msg.MATH_SINGLE_TOOLTIP_FLOOR}[t]}))}},Ie={init:function(){var t=[[mt.Msg.MIXLY_MAX,"max"],[mt.Msg.MIXLY_MIN,"min"]];this.setColour(ne),this.appendValueInput("A").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(new mt.FieldDropdown(t),"OP").appendField("("),this.appendValueInput("B").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(","),this.appendDummyInput("").setAlign(mt.inputs.Align.RIGHT).appendField(")"),this.setInputsInline(!0),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{max:mt.Msg.MIXLY_TOOLTIP_MATH_MAX,min:mt.Msg.MIXLY_TOOLTIP_MATH_MIN}[t]}))}},Te={init:function(){var t=[[mt.Msg.MATH_TWO,"two"],[mt.Msg.MATH_EIGHT,"eight"],[mt.Msg.MATH_TEN,"ten"],[mt.Msg.MATH_SIXTEEN,"sixteen"]];this.setColour(ne),this.appendDummyInput("").appendField(mt.Msg.MATH_BA),this.appendValueInput("NUM").appendField(new mt.FieldDropdown(t),"OP").appendField(mt.Msg.MATH_JinZhi).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.MATH_ZHW).appendField(new mt.FieldDropdown(t),"OP2").appendField(mt.Msg.MATH_JinZhi),this.setFieldValue("ten","OP2"),this.setOutput(!0),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP"),i={two:mt.Msg.MATH_Before_two,eight:mt.Msg.MATH_Before_eight,ten:mt.Msg.MATH_Before_ten,sixteen:mt.Msg.MATH_Before_sixteen},n=e.getFieldValue("OP2"),s={two:mt.Msg.MATH_Behind_two,eight:mt.Msg.MATH_Behind_eight,ten:mt.Msg.MATH_Behind_ten,sixteen:mt.Msg.MATH_Behind_sixteen};return i[t]+s[n]}))}},he={init:function(){var t=[[mt.Msg.LANG_MATH_INT,"int"],[mt.Msg.LANG_MATH_FLOAT,"float"]];this.setColour(ne),this.setOutput(!0,Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_RANDOM).appendField(new mt.FieldDropdown(t),"TYPE"),this.appendValueInput("FROM").setCheck(Number).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LANG_MATH_RANDOM_INT_INPUT_TO),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TYPE"),i={int:mt.Msg.LANG_MATH_INT,float:mt.Msg.LANG_MATH_FLOAT_RANDOM};return mt.Msg.MATH_RANDOM_INT_TOOLTIP+i[t]}))}},Me={init:function(){this.setColour(ne),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number).appendField(mt.Msg.LANG_MATH_CONSTRAIN_INPUT_CONSTRAIN),this.appendValueInput("LOW").setCheck(Number).appendField(mt.Msg.LANG_MATH_CONSTRAIN_INPUT_LOW),this.appendValueInput("HIGH").setCheck(Number).appendField(mt.Msg.LANG_MATH_CONSTRAIN_INPUT_HIGH),this.setInputsInline(!0),this.setTooltip(mt.Msg.MATH_CONSTRAIN_TOOLTIP)}},me={init:function(){this.setColour(ne),this.appendValueInput("NUM",Number).appendField(mt.Msg.MIXLY_MAP).setCheck(Number),this.appendValueInput("fromLow",Number).appendField(mt.Msg.MIXLY_MAP_FROM).setCheck(Number),this.appendValueInput("fromHigh",Number).appendField(",").setCheck(Number),this.appendValueInput("toLow",Number).appendField(mt.Msg.MIXLY_MAP_TO).setCheck(Number),this.appendValueInput("toHigh",Number).appendField(",").setCheck(Number),this.appendDummyInput("").appendField("]"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_MATH_MAP)}},Oe={init:function(){this.setColour(ne),this.appendDummyInput().appendField(new mt.FieldTextInput("0",mt.FieldTextInput.math_number_validator_include_blank),"NUM"),this.setOutput(!0),this.setTooltip(mt.Msg.MATH_NUMBER_TOOLTIP)}},Ee={init:function(){this.setColour(ne),this.appendValueInput("NUM").setCheck(Number).appendField(mt.Msg.LANG_MATH_RANDOM_SEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_MATH_RANDOM_SEED)}},Re={init:function(){this.setColour(ne),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number),this.appendValueInput("VAR").setCheck(Number).appendField(mt.Msg.MATH_ROUND).appendField(mt.Msg.TEXT_KEEP),this.appendDummyInput().appendField(mt.Msg.TEXT_DECIMAL),this.setInputsInline(!0),this.setTooltip(mt.Msg.MATH_ROUND_NEW_TOOLTIP)}},ce={init:function(){var t=[[mt.Msg.MIXLY_TO_INT,"int"],[mt.Msg.MIXLY_TO_FLOAT,"float"],[mt.Msg.MIXLY_TO_BITES,"b"]];this.setColour(ne),this.appendValueInput("VAR").appendField(new mt.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:mt.Msg.MIXLY_PYTHON_TOOLTIP_TOINT,float:mt.Msg.MIXLY_PYTHON_TOOLTIP_TOFLOAT,b:mt.Msg.MIXLY_TOOLTIP_TEXT_TOBYTE}[t]}))}},ge={init:function(){var t=[[mt.Msg.MIXLY_TO_INT,"int"],[mt.Msg.MIXLY_TO_FLOAT,"float"]];this.setColour(ne),this.appendValueInput("VAR").appendField(new mt.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:mt.Msg.MIXLY_TOOLTIP_TEXT_TOINT,float:mt.Msg.MIXLY_TOOLTIP_TEXT_TOFLOAT}[t]}))}},Ce=me,Se=160,Ae={init:function(){this.setColour(Se),this.appendDummyInput().appendField(this.newQuote_(!0)).appendField(new mt.FieldTextInput(""),"TEXT").appendField(this.newQuote_(!1)),this.setOutput(!0,String),this.setTooltip(mt.Msg.TEXT_TEXT_TOOLTIP)},newQuote_:function(t){if(t==this.RTL)var e="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAKCAQAAAAqJXdxAAAAqUlEQVQI1z3KvUpCcRiA8ef9E4JNHhI0aFEacm1o0BsI0Slx8wa8gLauoDnoBhq7DcfWhggONDmJJgqCPA7neJ7p934EOOKOnM8Q7PDElo/4x4lFb2DmuUjcUzS3URnGib9qaPNbuXvBO3sGPHJDRG6fGVdMSeWDP2q99FQdFrz26Gu5Tq7dFMzUvbXy8KXeAj57cOklgA+u1B5AoslLtGIHQMaCVnwDnADZIFIrXsoXrgAAAABJRU5ErkJggg==";else e="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAKCAQAAAAqJXdxAAAAn0lEQVQI1z3OMa5BURSF4f/cQhAKjUQhuQmFNwGJEUi0RKN5rU7FHKhpjEH3TEMtkdBSCY1EIv8r7nFX9e29V7EBAOvu7RPjwmWGH/VuF8CyN9/OAdvqIXYLvtRaNjx9mMTDyo+NjAN1HNcl9ZQ5oQMM3dgDUqDo1l8DzvwmtZN7mnD+PkmLa+4mhrxVA9fRowBWmVBhFy5gYEjKMfz9AylsaRRgGzvZAAAAAElFTkSuQmCC";return new mt.FieldImage(e,12,12,'"')}},Le={init:function(){this.setColour(Se),this.appendDummyInput().appendField(this.newQuote_(!0)).appendField(new mt.FieldMultilineInput("Hello\nMixly"),"VALUE").appendField(this.newQuote_(!1)),this.setOutput(!0,String),this.setTooltip(mt.Msg.TEXT_LINES_TOOLTIP)},newQuote_:function(t){if(t==this.RTL)var e="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAKCAQAAAAqJXdxAAAAqUlEQVQI1z3KvUpCcRiA8ef9E4JNHhI0aFEacm1o0BsI0Slx8wa8gLauoDnoBhq7DcfWhggONDmJJgqCPA7neJ7p934EOOKOnM8Q7PDElo/4x4lFb2DmuUjcUzS3URnGib9qaPNbuXvBO3sGPHJDRG6fGVdMSeWDP2q99FQdFrz26Gu5Tq7dFMzUvbXy8KXeAj57cOklgA+u1B5AoslLtGIHQMaCVnwDnADZIFIrXsoXrgAAAABJRU5ErkJggg==";else e="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAKCAQAAAAqJXdxAAAAn0lEQVQI1z3OMa5BURSF4f/cQhAKjUQhuQmFNwGJEUi0RKN5rU7FHKhpjEH3TEMtkdBSCY1EIv8r7nFX9e29V7EBAOvu7RPjwmWGH/VuF8CyN9/OAdvqIXYLvtRaNjx9mMTDyo+NjAN1HNcl9ZQ5oQMM3dgDUqDo1l8DzvwmtZN7mnD+PkmLa+4mhrxVA9fRowBWmVBhFy5gYEjKMfz9AylsaRRgGzvZAAAAAElFTkSuQmCC";return new mt.FieldImage(e,12,12,'"')}};mt.FieldTextInput.char_validator=function(t){if(t.length>1&&"\\"===t.charAt(0)){var e=t.charAt(1);if("0"===e||"b"===e||"f"===e||"n"===e||"r"===e||"t"===e||"\\"===e||"'"===e)return String(t).substring(0,2);if("x"===e&&"0"===t.charAt(2)&&"B"===t.charAt(3))return String(t).substring(0,4)}return String(t).substring(0,1)};const Ne={init:function(){this.setColour(Se),this.appendDummyInput().appendField(this.newQuote_(!0)).appendField(new mt.FieldTextInput("",mt.FieldTextInput.char_validator),"TEXT").appendField(this.newQuote_(!1)),this.setOutput(!0,Number),this.setTooltip(mt.Msg.TEXT_CHAR_TOOLTIP)},newQuote_:function(t){if(1==t)var e="../../media/quote2.png";else e="../../media/quote3.png";return new mt.FieldImage(e,7,12,'"')}},De={init:function(){this.setColour(Se),this.appendValueInput("A").setCheck([String,Number]),this.appendValueInput("B").setCheck([String,Number]).appendField(mt.Msg.MIXLY_TEXT_JOIN),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_TEXT_JOIN)}},fe={init:function(){this.setColour(Se),this.appendValueInput("VAR").setCheck(Number).appendField(mt.Msg.MIXLY_TOCHAR),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_TEXT_TOCHAR)}},Fe={init:function(){this.setColour(Se),this.appendValueInput("VAR").setCheck(String).appendField(mt.Msg.MIXLY_TOASCII),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_TEXT_TOASCII)}},Pe={init:function(){this.setColour(Se),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_TOSTRING),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_PYTHON_TOOLTIP_TOTEXT)}},ve={init:function(){this.setColour(Se),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_LENGTH),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_TEXT_LENGTH)}},Ye={init:function(){this.WHERE_OPTIONS=[[mt.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[mt.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[mt.Msg.TEXT_GET_INDEX_RANDOM+1+mt.Msg.TEXT_CHARAT2,"RANDOM"]],this.setHelpUrl(mt.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(Se),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number),this.appendDummyInput().appendField(mt.Msg.LISTS_GET_INDEX_GET,"MODE"),mt.Msg.LISTS_GET_INDEX_TAIL&&this.appendDummyInput("TAIL").appendField(mt.Msg.LISTS_GET_INDEX_TAIL),this.setInputsInline(!0),this.setOutput(!0),this.updateAt_(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=t.getFieldValue("WHERE"),n="";switch(e+" "+i){case"GET FROM_START":case"GET FROM_END":n=mt.Msg.LISTS_GET_INDEX_TOOLTIP_GET_FROM;break;case"GET RANDOM":n=mt.Msg.LISTS_GET_INDEX_TOOLTIP_GET_RANDOM;break;case"GET_REMOVE FROM_START":case"GET_REMOVE FROM_END":n=mt.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM;break;case"GET_REMOVE RANDOM":n=mt.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM}return"FROM_START"!=i&&"FROM_END"!=i||(n+=" "+mt.Msg.LISTS_INDEX_FROM_START_TOOLTIP.replace("%1",mt.Msg.ONE_BASED_INDEXING?"#1":"#0")),n}));var e=this;this.setTooltip((function(){var t=e.getFieldValue("WHERE"),i={FROM_START:mt.Msg.LISTS_GET_INDEX_FROM_START,FROM_END:mt.Msg.LISTS_GET_INDEX_FROM_END,RANDOM:mt.Msg.TEXT_GET_INDEX_RANDOM};return mt.Msg.PROCEDURES_DEFRETURN_RETURN+mt.Msg.MIXLY_MICROBIT_TYPE_STRING+i[t]+"n"+mt.Msg.TEXT_CHARAT2}))},mutationToDom:function(){var t=document.createElement("mutation");t.setAttribute("statement",!this.outputConnection);var e=this.getInput("AT").type==mt.INPUT_VALUE;return t.setAttribute("at",e),t},domToMutation:function(t){var e="true"==t.getAttribute("statement");this.updateStatement_(e),t="false"!=t.getAttribute("at"),this.updateAt_(t)},updateStatement_:function(t){t!=!this.outputConnection&&(this.unplug(!0,!0),t?(this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)):(this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)))},updateAt_:function(t){this.removeInput("AT"),this.removeInput("ORDINAL",!0),t?(this.appendValueInput("AT").setCheck(Number),mt.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL").appendField(mt.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT");var e=new mt.FieldDropdown(this.WHERE_OPTIONS,(function(e){var i="FROM_START"==e||"FROM_END"==e;if(i!=t){var n=this.sourceBlock_;return n.updateAt_(i),n.setFieldValue(e,"WHERE"),null}}));this.getInput("AT").appendField(e,"WHERE"),mt.Msg.LISTS_GET_INDEX_TAIL&&this.moveInputBefore("TAIL",null)}},Xe={init:function(){this.setHelpUrl(mt.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(Se),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number).appendField(mt.Msg.LISTS_GET_INDEX_GET+" "+mt.Msg.LISTS_GET_INDEX_FROM_START),this.appendDummyInput().appendField(mt.Msg.TEXT_CHARAT2),this.setOutput(!0),this.setTooltip(mt.Msg.PROCEDURES_DEFRETURN_RETURN+mt.Msg.MIXLY_MICROBIT_TYPE_STRING+mt.Msg.LISTS_GET_INDEX_FROM_START+"n"+mt.Msg.TEXT_CHARAT2)}},xe={init:function(){this.setHelpUrl(mt.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(Se),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput().appendField(mt.Msg.TEXT_RANDOM_CHAR),this.setOutput(!0),this.setTooltip(mt.Msg.TEXT_RANDOM_CHAR_TOOLTIP)}},be={init:function(){this.WHERE_OPTIONS_1=[[mt.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[mt.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[mt.Msg.LISTS_GET_SUBLIST_START_FIRST,"FIRST"]],this.WHERE_OPTIONS_2=[[mt.Msg.LISTS_GET_SUBLIST_END_FROM_START,"FROM_START"],[mt.Msg.LISTS_GET_SUBLIST_END_FROM_END,"FROM_END"],[mt.Msg.LISTS_GET_SUBLIST_END_LAST,"LAST"]],this.setHelpUrl(mt.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(Se),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput("AT1"),this.appendDummyInput("AT2"),this.setInputsInline(!0),this.setOutput(!0,"List"),this.updateAt_(1,!0),this.updateAt_(2,!0),this.setTooltip(mt.Msg._GET_TEXT_SUBLIST_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT1").type==mt.INPUT_VALUE;t.setAttribute("at1",e);var i=this.getInput("AT2").type==mt.INPUT_VALUE;return t.setAttribute("at2",i),t},domToMutation:function(t){var e="true"==t.getAttribute("at1"),i="true"==t.getAttribute("at2");this.updateAt_(1,e),this.updateAt_(2,i)},updateAt_:function(t,e){this.removeInput("AT"+t),this.removeInput("ORDINAL"+t,!0),e?(this.appendValueInput("AT"+t).setCheck(Number),mt.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL"+t).appendField(mt.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT"+t);var i=new mt.FieldDropdown(this["WHERE_OPTIONS_"+t],(function(i){var n="FROM_START"==i||"FROM_END"==i;if(n!=e){var s=this.sourceBlock_;return s.updateAt_(t,n),s.setFieldValue(i,"WHERE"+t),null}}));this.getInput("AT"+t).appendField(i,"WHERE"+t),1==t&&(this.moveInputBefore("AT1","AT2"),this.getInput("ORDINAL1")&&this.moveInputBefore("ORDINAL1","AT2"))}},Ve={init:function(){this.setHelpUrl(mt.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(Se),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT1").appendField(mt.Msg.LISTS_GET_INDEX_GET+" "+mt.Msg.LISTS_GET_INDEX_FROM_START),this.appendValueInput("AT2").appendField(mt.Msg.LISTS_GET_SUBLIST_END_FROM_START),this.appendDummyInput().appendField(mt.Msg.TEXT_CHARAT2),this.setInputsInline(!0),this.setOutput(!0,["List",String]),this.setTooltip(mt.Msg._GET_TEXT_SUBLIST_TOOLTIP)}},ye={init:function(){var t=[[mt.Msg.MIXLY_EQUALS,"==="],[mt.Msg.MIXLY_STARTSWITH,"startswith"],[mt.Msg.MIXLY_ENDSWITH,"endswith"]];this.setColour(Se),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(new mt.FieldDropdown(t),"DOWHAT").setCheck(String),this.setOutput(!0,[Boolean,Number]),this.setInputsInline(!0)}},Be={init:function(){this.setColour(Se),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(mt.Msg.MIXLY_COMPARETO).setCheck(String),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_COMPARETO_HELP)}},Ge={init:function(){var t=[[mt.Msg.TEXT_UPPER,"upper"],[mt.Msg.TEXT_TITLE,"title"],[mt.Msg.TEXT_CAPITALIZE,"capitalize"],[mt.Msg.TEXT_SWAPCASE,"swapcase"],[mt.Msg.TEXT_LOWER,"lower"]];this.setColour(Se),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new mt.FieldDropdown(t),"CAPITAL").setCheck(String),this.setOutput(!0,String);var e=this;this.setTooltip((function(){var t=e.getFieldValue("CAPITAL");return{upper:mt.Msg.MIXLY_MIXPY_TEXT_UPPER_TOOLTIP,title:mt.Msg.MIXLY_MIXPY_TEXT_TITLE_TOOLTIP,swapcase:mt.Msg.MIXLY_MIXPY_TEXT_SWAPCASE_TOOLTIP,capitalize:mt.Msg.MIXLY_MIXPY_TEXT_CAPITALIZE_TOOLTIP,lower:mt.Msg.MIXLY_MIXPY_TEXT_LOWER_TOOLTIP}[t]}))}},Ue={init:function(){var t=[[mt.Msg.TEXT_LJUST,"ljust"],[mt.Msg.TEXT_CENTER,"center"],[mt.Msg.TEXT_RJUST,"rjust"]];this.setColour(Se),this.appendValueInput("VAR").appendField(new mt.FieldDropdown(t),"CENTER").setCheck(String),this.appendValueInput("WID").appendField(mt.Msg.MIXLY_WIDTH).setCheck(Number),this.appendValueInput("Symbol").appendField(mt.Msg.MIXLY_RECT_Fill).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_MIXPY_TEXT_CENTER_TOOLTIP)}},we={init:function(){this.setColour(Se),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).setCheck(String),this.appendValueInput("STR").appendField(mt.Msg.MIXLY_MID+mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER).setCheck(String),this.appendDummyInput().appendField(mt.Msg.MIXLY_LIST_INDEX),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_MIXPY_TEXT_FIND_TOOLTIP)}},ke={init:function(){this.setColour(Se),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_USE_STR).setCheck(String),this.appendValueInput("LIST").appendField(mt.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_SEQ).setCheck("List","Tuple","Set","Dict"),this.appendDummyInput().appendField(mt.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_GET_STR),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_TOOLTIP)}},He={init:function(){this.setColour(Se),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("STR1").appendField(mt.Msg.MIXLY_MIXPY_REPLACE).setCheck(String),this.appendValueInput("STR2").appendField(mt.Msg.LISTS_SET_INDEX_INPUT_TO).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_MIXPY_TEXT_REPLACE_TOOLTIP)}},We={init:function(){this.setColour(Se),this.appendValueInput("VAR"),this.appendValueInput("VAL").appendField(mt.Msg.LIST_SPLIT_AS),this.appendDummyInput("").appendField(mt.Msg.LIST_SPLIT),this.setOutput(!0,"List"),this.setTooltip(mt.Msg.MIXLY_MIXPY_TEXT_SPLIT_TOOLTIP),this.setInputsInline(!0)}},Ke={init:function(){var t=[[mt.Msg.TEXT_TRIM_BOTH,"strip"],[mt.Msg.TEXT_TRIM_LEFT,"lstrip"],[mt.Msg.TEXT_TRIM_RIGHT,"rstrip"]];this.setColour(Se),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(mt.Msg.TEXT_STRIM),this.appendDummyInput("").appendField(new mt.FieldDropdown(t),"TOWHAT"),this.appendDummyInput("").appendField(mt.Msg.TEXT_BLANK),this.setOutput(!0,String),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{strip:mt.Msg.TEXT_TRIM_BOTH_TOOLTIP,lstrip:mt.Msg.TEXT_TRIM_LEFT_TOOLTIP,rstrip:mt.Msg.TEXT_TRIM_RIGHT_TOOLTIP}[t]}))}},Je={init:function(){this.setColour(Se),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROPYTHON_FORMAT),this.appendDummyInput("").appendField(new mt.FieldTextInput("str"),"VAR"),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new mt.icons.MutatorIcon(["text_create_with_item"],this)),this.setOutput(!0),this.setTooltip(mt.Msg.MIXLY_MIXPY_TEXT_FORMAT_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("text_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},ki={init:function(){this.setColour(Ui),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(mt.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},Hi={init:function(){this.setColour(Ui),this.appendDummyInput().appendField(mt.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},Wi={init:function(){this.setColour(Ui),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.DICT_KEYS),this.setTooltip(mt.Msg.DICTS_KEYS_TOOLTIP),this.setOutput(!0,"List")}},Ki={init:function(){this.setColour(Ui),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(mt.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(mt.Msg.DICTS_ADD_VALUE),this.setOutput(!0),this.setTooltip(mt.Msg.DICTS_GET_TOOLTIP)}},Ji={init:function(){this.setColour(Ui),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(mt.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(mt.Msg.DICTS_ADD_VALUE),this.appendValueInput("VAR").appendField(mt.Msg.DICTS_DEFAULT_VALUE),this.setOutput(!0),this.setTooltip(mt.Msg.DICTS_GET_DEFAULT_TOOLTIP)}},zi={init:function(){this.setColour(Ui),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(mt.Msg.DICTS_ADD),this.appendDummyInput(),this.appendValueInput("VAR").appendField(mt.Msg.DICTS_ADD_VALUE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.DICTS_ADD_OR_CHANGE_TOOLTIP)}},qi={init:function(){this.setColour(Ui),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(mt.Msg.DICTS_DELETE_IN),this.appendDummyInput("").appendField(mt.Msg.DICTS_DELETE_VALUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.DICTS_DELETE_TOOLTIP)}},Qi={init:function(){this.setColour(Ui),this.appendValueInput("DICT2").setCheck("Dict").appendField(mt.Msg.MAKE_DICT),this.appendValueInput("DICT").setCheck("Dict").appendField(mt.Msg.DICT_UPDATE),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MID),this.setTooltip(mt.Msg.DICTS_UPDATE_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},ji={init:function(){this.setColour(Ui),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.DICT_CLEAR),this.setTooltip(mt.Msg.DICTS_CLEAR_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Zi={init:function(){this.setColour(Ui),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.DICT_ITEMS),this.setTooltip(mt.Msg.DICTS_ITEMS_TOOLTIP),this.setOutput(!0,"List")}},$i={init:function(){this.setColour(Ui),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.DICT_VALUES),this.setTooltip(mt.Msg.DICTS_VALUES_TOOLTIP),this.setOutput(!0,"List")}},tn={init:function(){this.setColour(Ui),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_LENGTH),this.setTooltip(mt.Msg.DICT_LENGTH_TOOLTIP),this.setOutput(!0,Number)}},en={init:function(){this.setColour(Ui),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.DICT_DELDICT),this.setTooltip(mt.Msg.DICTS_DEL_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},nn={init:function(){this.MODE=[[mt.Msg.DICTS_ADD_OR_CHANGE,"INSERT"],[mt.Msg.MIXLY_MICROBIT_JS_DELETE_VAR,"DELETE"]],this.setHelpUrl(mt.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(Ui),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("AT2"),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).appendField(mt.Msg.DICTS_ADD_VALUE),this.updateAt_(!0),this.setInputsInline(!0),this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e="";switch(t.getFieldValue("WHERE")){case"INSERT":e=mt.Msg.DICTS_ADD_TOOLTIP;break;case"DELETE":e=mt.Msg.DICTS_DELETE_TOOLTIP}return e}))},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT2").type==mt.INPUT_VALUE;return t.setAttribute("at2",e),t},domToMutation:function(t){var e="true"==t.getAttribute("at2");this.updateAt_(e)},updateAt_:function(t){this.removeInput("AT2"),this.removeInput("ORDINAL",!0),t?this.appendValueInput("AT2").setCheck(Number):this.appendDummyInput("AT2");var e=new mt.FieldDropdown(this.MODE,(function(e){var i="INSERT"==e;if(i!=t){var n=this.sourceBlock_;return n.updateAt_(i),n.setFieldValue(e,"WHERE"),null}}));this.getInput("AT2").appendField(e,"WHERE")}},sn={init:function(){this.setColour(Ui),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.blockpy_DICT_POP),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(mt.Msg.DICTS_ADD_VALUE),this.setTooltip(mt.Msg.DICT_POP_TOOLTIP),this.setInputsInline(!0),this.setOutput(!0)}},on={init:function(){this.setColour(Ui),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(mt.Msg.DICTS_SET_DEFAULT),this.appendDummyInput("").appendField(mt.Msg.DICTS_DEFAULT_VALUE),this.appendValueInput("VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.DICTS_SETDEFAULT_TOOLTIP)}},_n={init:function(){this.setColour(Ui),this.appendDummyInput("").appendField(new mt.FieldLabel(mt.Msg.MIXLY_MICROBIT_TYPE_DICT),"TIP").appendField(" "),this.itemCount_=3,this.updateShape_(),this.setOutput(!0,"Dict"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setMutator(new mt.icons.MutatorIcon(["dicts_create_with_item"],this)),this.setTooltip(mt.Msg.DICTS_CREATE_WITH_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("dicts_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},pn={init:function(){this.setColour(Ui),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_TODICT),this.setOutput(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_TOOLTIP_TODICT)}},an={init:function(){this.setColour(Ui),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_TO_JSON),this.setTooltip(mt.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0,Number)}},un={init:function(){this.setColour(Ui),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_CONVERT_TO_JSON),this.setTooltip(mt.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0,Number)}},rn=210,ln={init:function(){var t=mt.RTL?[["=","EQ"],["≠","NEQ"],[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["=","EQ"],["≠","NEQ"],["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(rn),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new mt.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{EQ:mt.Msg.LOGIC_COMPARE_TOOLTIP_EQ,NEQ:mt.Msg.LOGIC_COMPARE_TOOLTIP_NEQ,LT:mt.Msg.LOGIC_COMPARE_TOOLTIP_LT,LTE:mt.Msg.LOGIC_COMPARE_TOOLTIP_LTE,GT:mt.Msg.LOGIC_COMPARE_TOOLTIP_GT,GTE:mt.Msg.LOGIC_COMPARE_TOOLTIP_GTE}[t]})),this.prevBlocks_=[null,null]}},dn={init:function(){var t=mt.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]],e=mt.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(rn),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new mt.FieldDropdown(t),"OP1"),this.appendValueInput("C").appendField(new mt.FieldDropdown(e),"OP2"),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_LOGIC_COMPARE_CONTINOUS_TOOLTIP)}},In={init:function(){var t=[[mt.Msg.LOGIC_OPERATION_AND,"AND"],[mt.Msg.LOGIC_OPERATION_OR,"OR"],[mt.Msg.LOGIC_OPERATION_NOR,"NOR"],[mt.Msg.LOGIC_OPERATION_XOR,"XOR"]];this.setColour(rn),this.setOutput(!0,Boolean),this.appendValueInput("A").setCheck([Boolean,Number]),this.appendValueInput("B").setCheck([Boolean,Number]).appendField(new mt.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{AND:mt.Msg.LOGIC_OPERATION_TOOLTIP_AND,OR:mt.Msg.LOGIC_OPERATION_TOOLTIP_OR,NOR:mt.Msg.LOGIC_OPERATION_TOOLTIP_NOR,XOR:mt.Msg.LOGIC_OPERATION_TOOLTIP_XOR}[t]}))}},Tn={init:function(){this.setColour(rn),this.setOutput(!0,Boolean),this.appendValueInput("BOOL").setCheck([Number,Boolean]).appendField(mt.Msg.LOGIC_NEGATE_TITLE),this.setTooltip(mt.Msg.LOGIC_NEGATE_TOOLTIP)}},hn={init:function(){var t=[[mt.Msg.LOGIC_BOOLEAN_TRUE,"TRUE"],[mt.Msg.LOGIC_BOOLEAN_FALSE,"FALSE"]];this.setColour(rn),this.setOutput(!0,Boolean),this.appendDummyInput().appendField(new mt.FieldDropdown(t),"BOOL"),this.setTooltip(mt.Msg.LOGIC_BOOLEAN_TOOLTIP)}},Mn={init:function(){this.setColour(rn),this.setOutput(!0),this.appendDummyInput().appendField(mt.Msg.LOGIC_NULL),this.setTooltip(mt.Msg.LOGIC_NULL_TOOLTIP)}},mn={init:function(){this.setColour(rn),this.appendValueInput("A"),this.appendValueInput("B").appendField(mt.Msg.LOGIC_TERNARY_IF_TRUE),this.appendValueInput("C").appendField(mt.Msg.LOGIC_TERNARY_IF_FALSE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_LOGIT_TRUEORFALSE)}},On={init:function(){var t=[[mt.Msg.TEXT_APPEND_TO,"in"],[mt.Msg.MIXLY_PYTHON_LOGIC_IS_NOT_IN,"not in"]];this.setColour(rn),this.appendValueInput("A"),this.appendValueInput("B").setCheck([String,"List"]).appendField(new mt.FieldDropdown(t),"BOOL"),this.appendDummyInput("").appendField(mt.Msg.MICROBIT_LOGIC_IS_IN),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(mt.Msg.IN)}},En={init:function(){var t=[[mt.Msg.MIXLY_PYTHON_LOGIC_IS,"is"],[mt.Msg.MIXLY_PYTHON_LOGIC_IS_NOT,"is not"]];this.setColour(rn),this.appendValueInput("A"),this.appendValueInput("B").appendField(new mt.FieldDropdown(t),"BOOL"),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_LOGIC_IS_TOOLTIP)}},Rn={init:function(){this.setColour(rn),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_TOBOOL),this.setOutput(!0,Boolean),this.setTooltip(mt.Msg.MIXLY_PYTHON_TOOLTIP_TOBOOL)}},cn={init:function(){this.setColour(0),this.appendValueInput("fn").setCheck(String).appendField(mt.Msg.MIXLY_PYTHON_STORAGE_OPEN_FILE_WITH_OS+"(For Windows)"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},gn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendValueInput("FILE").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_AS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=mt.Msg.MIXLY_USE,n=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,o=mt.Msg.MIXLY_BELONG;return i+{r:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+o+n+s}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Cn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=mt.Msg.MIXLY_USE,n=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,o=mt.Msg.MIXLY_BELONG,_=mt.Msg.PY_STORAGE_FILE_OBJECT;return i+{r:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+o+n+s+_}))}},Sn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE);this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendDummyInput().appendField(mt.Msg.MIXPY_TEXT_ENCODE).appendField(new mt.FieldDropdown([["ANSI","ANSI"],["gbk","gbk"],["utf-8","utf-8"]]),"CODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=mt.Msg.MIXLY_USE,n=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,o=mt.Msg.MIXLY_BELONG,_=mt.Msg.PY_STORAGE_FILE_OBJECT;return i+{r:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+o+n+s+_}))}},An={init:function(){this.setColour(0),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendValueInput("FILE").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE+mt.Msg.MIXLY_MICROBIT_TYPE_STRING+mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE)}},Ln={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL,"read"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE,"readline"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES,"readlines"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String)}},Nn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,"read"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,"readline"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE,"readlines"]]),"MODE"),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE,n=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER;return i+{read:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,readline:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,readlines:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE}[e]+"x"+n}))}},Dn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.setNextStatement(!0),this.appendValueInput("SIZE").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(mt.Msg.MICROBIT_PYTHON_TYPE)}},fn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(mt.Msg.HTML_FILE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT1)}},Fn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILENAME),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILENAME)}},Pn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE)}},vn={init:function(){this.setColour(0),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES)}};mt.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE;const Yn={init:function(){this.setColour(0),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE,"remove"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_DIRS,"removedirs"]]),"MODE"),this.appendValueInput("FILE").setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE)}},Xn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE+mt.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE)}},xn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_RETURN_FILE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_PRESENT_LOCATION),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_TELL)}},bn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,"start"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,"current"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END,"end"]]),"MODE"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION+mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION,n=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER,s=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET;return i+" "+{start:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,current:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,end:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END}[e]+s+"x"+n}))}},Vn={init:function(){this.setColour(0),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR)}},yn={init:function(){this.setColour(0),this.appendValueInput("PATH").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_SET),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,"mkdir"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MAKEDIRS,"makedirs"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return mt.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH+"x"+mt.Msg.MIXLY_ESP32_SET+{mkdir:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,makedirs:mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},Bn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME),this.appendValueInput("NEWFILE").setCheck(String).appendField(mt.Msg.MIXLY_AS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME)}},Gn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR)}},Un={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.HTML_FILE,"isfile"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_DIR,"isdir"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean);let t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return mt.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH+"x"+mt.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT+{isfile:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,isdir:mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},wn={init:function(){this.setColour(0),this.appendValueInput("SPISUB").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(mt.Msg.MIXLY_SD_CARD),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},kn={init:function(){this.setColour(0),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_SD_CARD),this.appendValueInput("DIR").setCheck(String).appendField(mt.Msg.MIXLY_SDCARD_MOUNT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip()}},Hn={};Hn.NAME_TYPE=mt.PROCEDURE_CATEGORY_NAME,Hn.allProcedures=function(t){for(var e=t.getAllBlocks(!1),i=[],n=[],s=0;s"),this.appendValueInput("style").appendField(mt.Msg.MIXLY_AIP_ATTR).setAlign(mt.inputs.Align.RIGHT),this.appendStatementInput("DO").appendField(""),this.setInputsInline(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Bs={init:function(){this.setColour(Ys),this.appendDummyInput().appendField(mt.Msg.HTML_STYLE),this.appendStatementInput("STYLE"),this.setOutput(!0)}},Gs={init:function(){this.setColour(Ys),this.appendDummyInput().appendField(mt.Msg.HTML_FORM_CONTENT).appendField(new mt.FieldDropdown([[mt.Msg.HTML_TEXT,"text"],[mt.Msg.HTML_EMAIL,"email"],[mt.Msg.HTML_NUMBER,"number"],[mt.Msg.HTML_PASSWORD,"password"],[mt.Msg.HTML_CHECKBOX,"checkbox"],[mt.Msg.HTML_RADIOBUTTON,"radiobutton"],[mt.Msg.HTML_BUTTON,"button"],[mt.Msg.HTML_COLOUR,"colour"],[mt.Msg.HTML_DATE,"date"],[mt.Msg.HTML_LOCALTIME,"local time"],[mt.Msg.HTML_FILE,"file"],[mt.Msg.HTML_HIDDEN,"hidden"],[mt.Msg.HTML_IMAGE,"image"],[mt.Msg.HTML_MONTH,"month"],[mt.Msg.HTML_RANGE,"range"],[mt.Msg.HTML_RESET,"reset"],[mt.Msg.HTML_SEARCH,"search"],[mt.Msg.HTML_SUBMIT,"submit"],[mt.Msg.HTML_TELEPHONENUMBER,"telephone number"],[mt.Msg.HTML_TIME,"time"],[mt.Msg.HTML_URL,"url"],[mt.Msg.HTML_WEEK,"week"]]),"LEVEL"),this.appendDummyInput().appendField(mt.Msg.HTML_NAME).appendField(new mt.FieldTextInput("car"),"NAME"),this.appendDummyInput().appendField(mt.Msg.HTML_VALUE).appendField(new mt.FieldTextInput("go"),"VALUE"),this.appendValueInput("style").appendField(mt.Msg.MIXLY_AIP_ATTR).setAlign(mt.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Us={init:function(){this.setColour(Ys),this.appendDummyInput().appendField(new mt.FieldTextInput("property"),"KEY").appendField(":").appendField(new mt.FieldTextInput("value"),"VALUE"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},ws={init:function(){this.setColour(Ys),this.appendDummyInput().appendField(new mt.FieldTextInput("property"),"KEY").appendField(":").appendField(new mt.FieldColour("#ff0000"),"RGB_LED_COLOR"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},ks={init:function(){this.setColour(Ys),this.appendDummyInput().appendField(mt.Msg.HTML_TEXT).appendField(new mt.FieldTextInput("text"),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Hs=160,Ws={init:function(){this.setColour(Hs),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Tabular Abstraction:"),this.appendDummyInput().appendField(new mt.FieldTable(""),"TEXT")}},Ks={init:function(){this.setColour(Hs),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Code Block:"),this.appendDummyInput().appendField(new mt.FieldMultilineInput(""),"TEXT")}},Js={init:function(){this.setColour(Hs),this.appendDummyInput().appendField("Code Expression:"),this.appendDummyInput().appendField(new mt.FieldMultilineInput(""),"TEXT"),this.setOutput(!0)}},zs={init:function(){this.setColour(Hs),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("VALUE").appendField(""),this.setInputsInline(!1)}},qs={init:function(){this.setColour(Hs),this.appendDummyInput().appendTitle("Comment:").appendTitle(new mt.FieldTextInput(""),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("This comment will be ignored by Python")}},Qs={init:function(){this.setColour(Hs),this.appendValueInput("VALUE").appendField(mt.Msg.TYPE_CHECK),this.setInputsInline(!1),this.setOutput(!0,"Type")}},js={init:function(){this.setColour(Hs),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new mt.icons.MutatorIcon(["text_print_multiple_item"],this)),this.setTooltip(mt.Msg.TEXT_PRINT_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=mt.Block.obtain(t,"text_print_multiple_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n= stop:"," yield start"," start -= abs(step)"])};if(t=function(t,e,i){return"("+t+" <= "+e+") and "+a()+"("+t+", "+e+", "+i+") or "+u()+"("+t+", "+e+", "+i+")"},mt.isNumber(n)&&mt.isNumber(s)&&mt.isNumber(o))n=parseFloat(n),s=parseFloat(s),o=Math.abs(parseFloat(o)),0==n%1&&0==s%1&&0==o%1?(n<=s?(s++,t=0==n&&1==o?s:n+", "+s,1!=o&&(t+=", "+o)):t=n+", "+--s+", -"+o,t="range("+t+")"):(t=n",GTE:">="};const Xp=function(t,e){var i=this.getFieldValue("OP"),n="&&"==i?e.ORDER_LOGICAL_AND:e.ORDER_LOGICAL_OR,s=e.valueToCode(this,"A",n)||"False",o=e.valueToCode(this,"B",n)||"False";if("AND"==i)var _=s+" and "+o;else if("OR"==i)_=s+" or "+o;else if("NOR"==i)_="not("+s+"^"+o+")";else _=s+"^"+o;return[_,n]},xp=function(t,e){var i=e.ORDER_UNARY_PREFIX;return["not "+(e.valueToCode(this,"BOOL",i)||"False"),i]},bp=function(t,e){return["TRUE"==this.getFieldValue("BOOL")?"True":"False",e.ORDER_ATOMIC]},Vp=function(t,e){return["None",e.ORDER_ATOMIC]},yp=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"False";return["("+(e.valueToCode(this,"B",e.ORDER_ATOMIC)||"False")+" if "+i+" else "+(e.valueToCode(this,"C",e.ORDER_ATOMIC)||"False")+")",e.ORDER_ATOMIC]},Bp=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",n=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[i+" "+this.getFieldValue("BOOL")+" "+n,e.ORDER_ATOMIC]},Gp=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",n=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[i+" "+this.getFieldValue("BOOL")+" "+n,e.ORDER_ATOMIC]},Up=function(t,e){return["bool("+(e.valueToCode(this,"VAR",e.ORDER_ATOMIC)||"0")+")",e.ORDER_ATOMIC]},wp=function(t,e){return e.definitions_.import_os="import os","os.startfile("+e.valueToCode(this,"fn",e.ORDER_ATOMIC)+")\n"},kp=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+" = open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')\n"},Hp=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')",e.ORDER_ATOMIC]},Wp=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"', encoding=\""+this.getFieldValue("CODE")+'")',e.ORDER_ATOMIC]},Kp=function(t,e){var i=e.valueToCode(this,"data",e.ORDER_ATOMIC);return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".write("+i+")\n"},Jp=function(t,e){var i=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+i+"()",e.ORDER_ATOMIC]},zp=function(t,e){var i=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+i+"("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},qp=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".readline("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Qp=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".writable()",e.ORDER_ATOMIC]},jp=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".name()",e.ORDER_ATOMIC]},Zp=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".close()\n"},$p=function(t,e){e.definitions_.import_os="import os";return["os.listdir()",e.ORDER_ATOMIC]},ta=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},ea=function(t,e){return e.definitions_.import_os="import os",["os.path.getsize("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},ia=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".tell()",e.ORDER_ATOMIC]},na=function(t,e){var i=this.getFieldValue("MODE"),n=0;return n="start"==i?0:"current"==i?1:2,e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".seek("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+","+n+")\n"},sa=function(t,e){return e.definitions_.import_os="import os","os.chdir("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},oa=function(t,e){e.definitions_.import_os="import os";return["os.getcwd()",e.ORDER_ATOMIC]},_a=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"PATH",e.ORDER_ATOMIC)+")\n"},pa=function(t,e){return e.definitions_.import_os="import os","os.rename("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+","+e.valueToCode(this,"NEWFILE",e.ORDER_ATOMIC)+")\n"},aa=function(t,e){e.definitions_.import_os="import os";var i=e.valueToCode(this,"FILE",e.ORDER_ATOMIC);return["os."+this.getFieldValue("MODE")+"("+i+")",e.ORDER_ATOMIC]},ua=function(t,e){return e.definitions_.import_os="import os",e.definitions_.import_sdcard="import sdcard",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+" = sdcard.SDCard("+e.valueToCode(this,"SPISUB",e.ORDER_ATOMIC)+","+e.valueToCode(this,"PINSUB",e.ORDER_ATOMIC)+")\n"},ra=function(t,e){return e.definitions_.import_os="import os",e.definitions_.import_sdcard="import sdcard","os.mount("+e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+","+e.valueToCode(this,"DIR",e.ORDER_ATOMIC)+")\n"},la=function(t,e){var i=e.variableDB_.getName(this.getFieldValue("NAME"),mt.Procedures.NAME_TYPE),n=e.statementToCode(this,"STACK")||" pass\n";e.INFINITE_LOOP_TRAP&&(n=e.INFINITE_LOOP_TRAP.replace(/%1/g,"'"+this.id+"'")+n);var s=e.valueToCode(this,"RETURN",e.ORDER_NONE)||"";s&&(s=" return "+s+"\n");for(var o=[],_=0;_\n\n\n\t\n"+e.statementToCode(this,"HEAD")+"\n\n"+e.statementToCode(this,"BODY")+"\n\n'''",e.ORDER_ATOMIC]},Wa=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");return"\n"+i+"\n"},Ka=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");if("head"==n)var s="<"+n+'>\n\t\n'+i+"\n";else s="<"+n+">\n"+i+"\n";return s},Ja=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");return"<"+n+">\n"+i+"\n"},za=function(t,e){var i=e.statementToCode(this,"DO"),n=e.valueToCode(this,"style"),s=this.getFieldValue("LEVEL");return"<"+s+" "+n+" >\n"+i+"\n"},qa=function(t,e){return['style="'+e.statementToCode(this,"STYLE")+'"',e.ORDER_ATOMIC]},Qa=function(t,e){return'"},ja=function(){return this.getFieldValue("KEY")+":"+this.getFieldValue("VALUE")+";"},Za=function(){return this.getFieldValue("TEXT")+"\n"},$a=function(t){return t.getFieldValue("TEXT")+"\n"},tu=function(t,e){return[t.getFieldValue("TEXT"),e.ORDER_ATOMIC]},eu=function(t,e){return(e.valueToCode(t,"VALUE",e.ORDER_ATOMIC)||"")+"\n"},iu=function(){return""},nu=function(t,e){return["type("+(e.valueToCode(t,"VALUE",e.ORDER_MEMBER)||"___")+")",e.ORDER_ATOMIC]},su=function(t,e){for(var i=t.getFieldValue("NAME"),n=t.hasReturn_,s=new Array(t.itemCount_),o=0;o0?e.join("\n")+"\n"+n.join("\n")+"\n"+s.join("")+"\n"+t+"while True:\n"+o.join("")+_.join("\n"):e.join("\n")+"\n"+n.join("\n")+"\n"+s.join("")+"\n"+t+_.join("\n")},_u.scrubNakedValue=function(t){return t+"\n"},_u.quote_=function(t){var e="'";return-1!==(t=t.replace(/\\/g,"\\\\").replace(/\n/g,"\\\n")).indexOf("'")&&(-1===t.indexOf('"')?e='"':t=t.replace(/'/g,"\\'")),e+t+e},_u.multiline_quote_=function(t){return"'''"+(t=t.replace(/'''/g,"\\'\\'\\'"))+"'''"},_u.scrub_=function(t,e,i){var n="";if(!t.outputConnection||!t.outputConnection.targetConnection){(o=t.getCommentText())&&(o=mt.utils.string.wrap(o,_u.COMMENT_WRAP-3),n+=_u.prefixLines(o+"\n","# "));for(var s=0;s0?"int("+p+" + "+s+")":s<0?"int("+p+" - "+-s+")":"int("+p+")",n&&(p="-"+p)),p};const pu="#74A55B",au={init:function(){this.setColour(pu),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MIDI),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_SETUP).setCheck("var"),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_RGB_PIN_COUNT)}},uu={init:function(){this.setColour(pu),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(mt.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},ru={init:function(){this.setColour(pu),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(mt.Msg.MIXLY_FREQUENCY),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_DURATION),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE2)}},lu={init:function(){this.setColour(pu),this.appendValueInput("SUB"),this.appendValueInput("LIST").appendField(mt.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS)}},du={init:function(){this.setColour(pu),this.appendValueInput("SUB"),this.appendValueInput("TICKS").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_SET_TEMPO).appendField(mt.Msg.MICROBIT_ACTUATOR_ticks),this.appendValueInput("BPM").setCheck(Number).appendField(mt.Msg.MIXLY_SPEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_SET_TEMPO)}},Iu={init:function(){this.setColour(pu),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Get_current_tempo),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_GET_TEMPO)}},Tu={init:function(){this.setColour(pu),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Reset_music),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_RESET)}},hu={init:function(){this.setColour(pu),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Mu={init:function(){this.setColour(pu),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING).appendField(mt.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_EXTERN_LED_SETONOFF)}},mu={init:function(){this.setColour(pu),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(mt.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_EXTERN_LED_GETONOFF)}},Ou={init:function(){this.setColour(pu),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(mt.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_EXTERN_LED_GETONOFF)}},Eu={init:function(){this.setColour(pu),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING).appendField(mt.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_EXTERN_LED_SETBRIGHT)}},Ru={init:function(){this.setColour(pu),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.MIXLY_SERVO),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},cu={init:function(){this.setColour(pu),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_SERVO).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("DEGREE",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_DEGREE_0_180),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SERVO_MOVE)}},gu={init:function(){this.setColour(pu),this.appendValueInput("VAR").appendField("360°"+mt.Msg.MIXLY_SERVO),this.appendValueInput("SPEED",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SETTING+mt.Msg.blockpy_turtle_rotate+mt.Msg.MIXLY_SPEED+" (-10~10)"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SERVO_360_TOOLTIP)}},Cu={init:function(){this.setColour(pu),this.appendValueInput("PIN",Number).appendField("180°"+mt.Msg.MIXLY_SERVO).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SERVO_MOVE)}},Su={init:function(){this.setColour(pu),this.appendValueInput("PIN",Number).appendField("360°"+mt.Msg.MIXLY_SERVO).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SERVO_SPEED_TOOLIPS)}},Au={init:function(){this.setColour(pu),this.appendValueInput("PIN",Number).appendField("180°"+mt.Msg.MIXLY_SERVO).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setOutput(!0,Number),this.setInputsInline(!0)}},Lu={init:function(){this.setColour(pu),this.appendValueInput("PIN",Number).appendField("360°"+mt.Msg.MIXLY_SERVO).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},Nu={init:function(){this.setColour(pu),this.appendValueInput("SUB").appendField("初始化").setCheck("var"),this.appendDummyInput().appendField("电机驱动"),this.appendDummyInput().appendField("地址").appendField(new mt.FieldDropdown([["A","ms32006.ADDRESS_A"],["B","ms32006.ADDRESS_B"]]),"mode"),this.appendValueInput("SUB1").setCheck("var").setAlign(mt.inputs.Align.RIGHT).appendField("通信"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("初始化MS32006电机驱动,使用I2C通信")}},Du={init:function(){this.setColour(pu),this.appendValueInput("SUB").appendField("直流电机").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Direction).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"ms32006.MOT_CW"],[mt.Msg.ANTI_CLOCKWISE,"ms32006.MOT_CCW"],[mt.Msg.MOTOR_N,"ms32006.MOT_N"],[mt.Msg.MOTOR_P,"ms32006.MOT_P"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEPPER_SET_SPEED),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("设置直流电机的状态及转速(0-100)")}},fu={init:function(){this.setColour(pu),this.appendValueInput("SUB").appendField("步进电机").setCheck("var"),this.appendDummyInput().appendField("选择").appendField(new mt.FieldDropdown([["A","ms32006.MOT_A"],["B","ms32006.MOT_B"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Direction).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"ms32006.MOT_CW"],[mt.Msg.ANTI_CLOCKWISE,"ms32006.MOT_CCW"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField("转速"),this.appendValueInput("steps").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField("步数"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("设置步进电机的状态、转速、步数(0-2047)")}},Fu={init:function(){this.setColour(pu),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_SETUP).setCheck("var"),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PIN),this.appendValueInput("LEDCOUNT").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_COUNT),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_RGB_PIN_COUNT)}},Pu={init:function(){this.setColour(pu),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("_LED_").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MP)}},vu={init:function(){this.setColour(pu),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},Yu={init:function(){this.setColour(pu),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_RGB_WRITE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_WRI)}},Xu={init:function(){this.setColour(pu),this.appendDummyInput("").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"uart").appendField(new mt.FieldDropdown([["uart1","uart1"],["uart2","uart2"]]),"key"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.LISTS_SET_INDEX_INPUT_TO+"SYN6288"+mt.Msg.MIXLY_AipSpeech_synthesis),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setFieldValue("LTR308","key")}},xu={init:function(){this.setColour(pu),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("VOICE").setCheck(Number).appendField(mt.Msg.MIXLY_SET_VOLUME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_SET_VOLUME_TOOLTIP)}},bu={init:function(){this.setColour(pu),this.appendValueInput("SUB").appendField("SYN6288"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_VOLUME),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_SET_VOLUME_TOOLTIP)}},Vu={init:function(){this.setColour(pu),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("VOICE").setCheck(Number).appendField(mt.Msg.MIXLY_PLAY_HINTS),this.appendDummyInput().appendField(mt.Msg.MIXLY_PROGRAM_BLOCK).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"mode"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_PLAY_HINTS_TOOLTIP)}},yu={init:function(){this.setColour(pu),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_AipSpeech_synthesis),this.appendValueInput("VOICE").setCheck(Number).appendField(mt.Msg.MIXLY_BACKGROUND_MUSIC),this.appendDummyInput().appendField(mt.Msg.MIXLY_PROGRAM_BLOCK).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"mode"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_PLAY_TTS_TOOLTIP)}},Bu={init:function(){this.setColour(pu),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.extern_addr),"PIN"),this.setOutput(!0,Number)}},Gu={init:function(){this.setColour(pu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_MOTOR).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_MOTOR_EXTERN_TOOLTIP)}},Uu={init:function(){this.setColour(pu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_MOTOR).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},wu={init:function(){this.setColour(pu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_TRAFFIC_LIGHT).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LISTS_SET_INDEX_SET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_Turn_off_display,"0"],[mt.Msg.MIXLY_TRAFFIC_LIGHT_RED_ON,"1"],[mt.Msg.MIXLY_TRAFFIC_LIGHT_RED_BLINK,"2"],[mt.Msg.MIXLY_TRAFFIC_LIGHT_YELLOW_ON,"3"],[mt.Msg.MIXLY_TRAFFIC_LIGHT_YELLOW_BLINK,"4"],[mt.Msg.MIXLY_TRAFFIC_LIGHT_GREEN_ON,"5"],[mt.Msg.MIXLY_TRAFFIC_LIGHT_GREEN_BLINK,"6"]]),"light"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},ku={init:function(){this.setColour(pu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN).appendField(new mt.FieldDropdown([[mt.Msg.COLOUR_RGB_WHITE,"W"],[mt.Msg.COLOUR_RGB_RED,"R"],[mt.Msg.COLOUR_RGB_YELLOW,"Y"],[mt.Msg.COLOUR_RGB_GREEN,"G"],[mt.Msg.COLOUR_RGB_BLUE,"B"]]),"color").appendField("LED").appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendValueInput("value").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.BRIGHTNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Hu={init:function(){this.setColour(pu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN).appendField(new mt.FieldDropdown([[mt.Msg.COLOUR_RGB_WHITE,"W"],[mt.Msg.COLOUR_RGB_RED,"R"],[mt.Msg.COLOUR_RGB_YELLOW,"Y"],[mt.Msg.COLOUR_RGB_GREEN,"G"],[mt.Msg.COLOUR_RGB_BLUE,"B"]]),"color").appendField("LED").appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.BRIGHTNESS),this.setOutput(!0,Number),this.setInputsInline(!0)}},Wu={init:function(){this.setColour(pu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"[0]"],[mt.Msg.MIXLY_SPEED,"[1]"],[mt.Msg.MATH_SINGLE_OP_ABSOLUTE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"[2]"],[mt.Msg.MIXLY_RELATIVE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"[3]"],[mt.Msg.MIXLY_MIXBOT_SERVO_BLOCK_OR_NOT,"[4]"],[mt.Msg.MIXLY_MIXBOT_SERVO_FINISH_OR_NOT,"[5]"],[mt.Msg.MIXLY_ALL,""]]),"status"),this.setOutput(!0,Number),this.setInputsInline(!0)}},Ku={init:function(){this.setColour(pu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_SERVO_SET_STOP_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_KEEP,"0"],[mt.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_COAST,"1"],[mt.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_BRAKE,"2"]]),"status"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Ju={init:function(){this.setColour(pu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_STOP),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},zu={init:function(){this.setColour(pu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.MATH_SINGLE_OP_ABSOLUTE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+mt.Msg.MSG.run).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MODE).setAlign(mt.inputs.Align.RIGHT).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_SPEED+mt.Msg.MIXLY_MODE,"0"],[mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER+mt.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField("%"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_SERVO_TURN_DIRECTION).setAlign(mt.inputs.Align.RIGHT).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"0"],[mt.Msg.MIXLY_MIXBOT_SERVO_NEAREST_PATH,"1"],[mt.Msg.ANTI_CLOCKWISE,"2"]]),"direction"),this.appendValueInput("angle").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_DISPLAY_MATRIX_ROTATE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_SERVO_ABSOLUTE_ANGLE_TOOLTIP)}},qu={init:function(){this.setColour(pu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.MIXLY_RELATIVE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+mt.Msg.MSG.run).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_SERVO_RELATIVE_ORIGIN_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Qu={init:function(){this.setColour(pu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.MIXLY_RELATIVE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+mt.Msg.MSG.run).appendField("("+mt.Msg.MIXLY_MIXBOT_SERVO_LIKE_ENCODING_MOTOR+")").appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MODE).setAlign(mt.inputs.Align.RIGHT).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_SPEED+mt.Msg.MIXLY_MODE,"0"],[mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER+mt.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField("%"),this.appendValueInput("angle").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_DISPLAY_MATRIX_ROTATE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_SERVO_RELATIVE_ANGLE_TOOLTIP)}},ju={init:function(){this.setColour(pu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.MIXLY_RELATIVE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+mt.Msg.MSG.run).appendField("("+mt.Msg.MIXLY_MIXBOT_SERVO_LIKE_ORDINARY_MOTOR+")").appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MODE).setAlign(mt.inputs.Align.RIGHT).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_SPEED+mt.Msg.MIXLY_MODE,"0"],[mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER+mt.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField("%"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_SERVO_TURN_DIRECTION).setAlign(mt.inputs.Align.RIGHT).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"0"],[mt.Msg.ANTI_CLOCKWISE,"2"]]),"direction"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Zu={init:function(){this.setColour(pu),this.appendDummyInput().appendField(mt.Msg.MIXBOT).appendField(mt.Msg.ME_GO_MOTOR_EXTERN).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MOTOR,"ext_motor"],[mt.Msg.MIXLY_TRAFFIC_LIGHT,"ext_traffic"],[mt.Msg.COLOUR_RGB_WHITE+"LED","W_LED"],[mt.Msg.COLOUR_RGB_RED+"LED","R_LED"],[mt.Msg.COLOUR_RGB_YELLOW+"LED","Y_LED"],[mt.Msg.COLOUR_RGB_GREEN+"LED","G_LED"],[mt.Msg.COLOUR_RGB_BLUE+"LED","B_LED"],[mt.Msg.MIXLY_SERVO_MOTOR,"ext_servo"]]),"name"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_EXTERN_GET_ADDR),this.setOutput(!0),this.setInputsInline(!0)}},$u={init:function(){this.setColour(pu),this.appendDummyInput().appendField(mt.Msg.MIXBOT).appendField(mt.Msg.ME_GO_MOTOR_EXTERN).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MOTOR,"ext_motor"],[mt.Msg.MIXLY_TRAFFIC_LIGHT,"ext_traffic"],[mt.Msg.COLOUR_RGB_WHITE+"LED","W_LED"],[mt.Msg.COLOUR_RGB_RED+"LED","R_LED"],[mt.Msg.COLOUR_RGB_YELLOW+"LED","Y_LED"],[mt.Msg.COLOUR_RGB_GREEN+"LED","G_LED"],[mt.Msg.COLOUR_RGB_BLUE+"LED","B_LED"],[mt.Msg.MIXLY_SERVO_MOTOR,"ext_servo"]]),"name"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_EXTERN_SET_ADDR),this.appendValueInput("old").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE),this.appendValueInput("new").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_UPDATE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},tr="#6C9858",er={init:function(){this.setColour(tr),this.appendDummyInput("").appendField(new mt.FieldDropdown([["L1","1"],["L2","2"]]),"op"),this.setOutput(!0)}},ir={init:function(){this.setColour(tr),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_ESP32_ON,"1"],[mt.Msg.MIXLY_ESP32_OFF,"0"],[mt.Msg.MIXLY_ESP32_TOGGLE,"-1"]]),"flag"),this.setOutput(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW)}},nr={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(mt.Msg.MIXLY_BUILDIN_LED),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_SETONOFF)}},sr={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("led").appendField(mt.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput().appendField(mt.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},or={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("led").appendField(mt.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput().appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},_r={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(mt.Msg.MIXLY_BUILDIN_LED),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_SETTING+mt.Msg.MIXLY_BUILDIN_LED+mt.Msg.MIXLY_BRIGHTNESS+"(0-100%)")}},pr={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(mt.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput("").appendField(mt.Msg.MIXLY_LCD_SETCOLOR).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LIGHT_OFF,"0"],[mt.Msg.MIXLY_LIGHT_RED,"1"],[mt.Msg.MIXLY_LIGHT_GREEN,"2"],[mt.Msg.MIXLY_LIGHT_BLUE,"3"],[mt.Msg.MIXLY_LIGHT_YELLOW,"4"],[mt.Msg.MIXLY_LIGHT_CYAN,"5"],[mt.Msg.MIXLY_LIGHT_PURPLE,"6"],[mt.Msg.MIXLY_LIGHT_WHITE,"7"]]),"colorvalue"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip()}},ar={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING).appendField(mt.Msg.MIXLY_BUILDIN_LED).appendField(new mt.FieldDropdown([[mt.Msg.COLOUR_RGB_RED,"r"],[mt.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_SETONOFF)}},ur={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(mt.Msg.MIXLY_BUILDIN_LED).appendField(new mt.FieldDropdown([[mt.Msg.COLOUR_RGB_RED,"r"],[mt.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendDummyInput().appendField(mt.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},rr={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(mt.Msg.MIXLY_BUILDIN_LED).appendField(new mt.FieldDropdown([[mt.Msg.COLOUR_RGB_RED,"r"],[mt.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendDummyInput().appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},lr={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING).appendField(mt.Msg.MIXLY_BUILDIN_LED).appendField(new mt.FieldDropdown([[mt.Msg.COLOUR_RGB_RED,"r"],[mt.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_SETTING+mt.Msg.MIXLY_BUILDIN_LED+mt.Msg.MIXLY_BRIGHTNESS+"(0-10)")}},dr={init:function(){this.setColour(tr),this.appendDummyInput("").appendField(new mt.FieldDropdown([["L1","20"],["L2","21"]]),"op"),this.setOutput(!0)}},Ir={init:function(){this.setColour(tr),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("_LED_").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);switch(Ot.Boards.getSelectedBoardKey()){case"micropython:esp32c3:mixgo_cc":case"micropython:esp32s2:mixgo_ce":this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOCC);break;case"micropython:esp32c3:mixgo_me":default:this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOME);break;case"micropython:esp32:mPython":this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MPYTHON)}}},Tr={init:function(){this.setColour(tr),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},hr={init:function(){this.setColour(tr),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RAINBOW),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_DURATION).appendField(mt.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},Mr={init:function(){this.setColour(tr),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(mt.Msg.MIXLY_CHASE),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.PYTHON_RANGE_STEP).appendField(mt.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},mr={init:function(){this.setColour(tr),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_RGB_WRITE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_WRI)}},Or={init:function(){this.setColour(tr),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("_LED_").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);switch(Ot.Boards.getSelectedBoardKey()){case"micropython:esp32c3:mixgocc":this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOCC);break;case"micropython:esp32c3:mixgome":default:this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOME);break;case"micropython:esp32:mPython":this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MPYTHON)}}},Er={init:function(){this.setColour(tr),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},Rr={init:function(){this.setColour(tr),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(mt.Msg.MIXLY_CHASE),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.PYTHON_RANGE_STEP).appendField(mt.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},cr={init:function(){this.setColour(tr),this.appendValueInput("TICKS").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_SET_TEMPO).appendField(mt.Msg.MICROBIT_ACTUATOR_ticks),this.appendValueInput("BPM").setCheck(Number).appendField(mt.Msg.MIXLY_SPEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_SET_TEMPO)}},gr={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Get_current_tempo),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_GET_TEMPO)}},Cr={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Reset_music),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_RESET)}},Sr={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(mt.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},Ar={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(mt.Msg.MIXLY_FREQUENCY),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_DURATION),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE2)}},Lr={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Nr={init:function(){this.setColour(tr),this.appendValueInput("LIST").appendField(mt.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS)}},Dr={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MOTOR_DC).appendField(new mt.FieldDropdown([["1","1"],["2","2"],["3","3"]]),"wheel"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Direction).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"CW"],[mt.Msg.ANTI_CLOCKWISE,"CCW"],[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},fr={init:function(){this.setColour(tr),this.appendDummyInput().appendField("MixGo Car").appendField(new mt.FieldDropdown([[mt.Msg.blockpy_forward,"F"],[mt.Msg.blockpy_backward,"B"],[mt.Msg.blockpy_left,"L"],[mt.Msg.blockpy_right,"R"]]),"VAR"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Fr={init:function(){this.setColour(tr),this.appendDummyInput("").appendField("MixGo Car").appendField(new mt.FieldDropdown([[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"VAR"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},Pr={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MOTOR_DC).appendField(new mt.FieldDropdown([[mt.Msg.MIXLYCAR_WHEEL_LEFT,"L"],[mt.Msg.MIXLYCAR_WHEEL_RIGHT,"R"]]),"wheel"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Direction).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"CW"],[mt.Msg.ANTI_CLOCKWISE,"CCW"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},vr={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MOTOR_DC).appendField(new mt.FieldDropdown([[mt.Msg.MIXLYCAR_WHEEL_LEFT,"L"],[mt.Msg.MIXLYCAR_WHEEL_RIGHT,"R"]]),"wheel"),this.appendDummyInput().appendField(mt.Msg.MIXLY_STOP).appendField(new mt.FieldDropdown([[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"direction"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Yr={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_MOTOR_STATUS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_MOTOR_STATUS_TOOLTIP)}},Xr={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MIXBOT).appendField(new mt.FieldDropdown([[mt.Msg.blockpy_forward,"F"],[mt.Msg.blockpy_backward,"B"],[mt.Msg.blockpy_left,"L"],[mt.Msg.blockpy_right,"R"]]),"VAR"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"PWR"],[mt.Msg.MIXLY_SPEED,"SPEED"],[mt.Msg.MIXLY_MIXBOT_MOTOR_TURNS,"TURNS"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_MOVE_TOOLTIP)}},xr={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MIXBOT).appendField(new mt.FieldDropdown([[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"VAR"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},br={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MIXBOT).appendField(mt.Msg.MIXLY_MOTOR).appendField(new mt.FieldDropdown([[mt.Msg.TEXT_TRIM_LEFT,"1"],[mt.Msg.TEXT_TRIM_RIGHT,"2"],[mt.Msg.TEXT_TRIM_BOTH,"0"]]),"wheel"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"PWR"],[mt.Msg.MIXLY_SPEED,"SPEED"],[mt.Msg.MIXLY_MIXBOT_MOTOR_TURNS,"TURNS"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_MOVE_TOOLTIP)}},Vr={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_BUZZER),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_ON,"0"],[mt.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_OFF,"1"]]),"on_off"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},yr={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.BITBOT).appendField(new mt.FieldDropdown([[mt.Msg.blockpy_forward,"F"],[mt.Msg.blockpy_backward,"B"],[mt.Msg.blockpy_left,"L"],[mt.Msg.blockpy_right,"R"]]),"VAR"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Br={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.BITBOT).appendField(new mt.FieldDropdown([[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"VAR"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Gr={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.BITBOT).appendField(mt.Msg.MIXLY_MOTOR).appendField(new mt.FieldDropdown([[mt.Msg.TEXT_TRIM_LEFT,"0"],[mt.Msg.TEXT_TRIM_RIGHT,"1"]]),"wheel"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Direction).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"CW"],[mt.Msg.ANTI_CLOCKWISE,"CCW"],[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Ur={init:function(){this.setColour(tr),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_MIXBOT_SOUND_SET_LOUDNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_SETONOFF)}},wr={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_SOUND_LOUDNESS+"(%)"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},kr={init:function(){this.setColour(tr),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_SETTING+mt.Msg.MIXLY_MIXBOT_BUZZER+mt.Msg.MIXLY_MP3_VOL),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_SETONOFF)}},Hr={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_MIXBOT_BUZZER+mt.Msg.MIXLY_MP3_VOL+"(%)"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},Wr={init:function(){this.setColour(tr),this.appendValueInput("PATH").appendField(mt.Msg.MIXLY_RECORD_AUDIO).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.appendValueInput("TIME").setCheck(Number).appendField(mt.Msg.MIXLY_GET_PRESSES_TIME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Kr={init:function(){this.setColour(tr),this.appendValueInput("PATH").appendField(mt.Msg.MIXLY_PLAY_AUDIO).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Jr={init:function(){this.setColour(tr),this.appendValueInput("PATH").appendField(mt.Msg.MIXLY_PLAY_ONLINE_AUDIO).appendField("URL"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},zr={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(mt.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},qr={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Qr={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.LISTS_SET_INDEX_SET+mt.Msg.ME_GO_MOTOR_EXTERN).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([["1","1"],["2","2"]]),"index"),this.appendValueInput("duty").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.blynk_IOT_IR_POWER+mt.Msg.MIXLY_PINMODEOUT),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip()}},jr={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.ME_GO_MOTOR_EXTERN).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([["1","1"],["2","2"]]),"index"),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.blynk_IOT_IR_POWER+mt.Msg.MIXLY_PINMODEOUT+mt.Msg.MIXLY_DUTY_RATIO),this.setOutput(!0,Number),this.setInputsInline(!0)}},Zr={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.LISTS_SET_INDEX_SET+mt.Msg.ME_GO_MOTOR_EXTERN).appendField(mt.Msg.MIXLY_ALL+mt.Msg.PIN_NUMBERING),this.appendValueInput("duty").setCheck(Number).setAlign(mt.ALIGN_RIGHT).appendField(mt.Msg.blynk_IOT_IR_POWER+mt.Msg.MIXLY_PINMODEOUT+mt.Msg.MIXLY_FREQUENCY),this.appendDummyInput().appendField("Hz"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_MOTOR_EXTERN_TOOLTIP)}},$r="#90A244",tl={init:function(){this.setColour($r),this.appendDummyInput("").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"uart").appendField(new mt.FieldDropdown([["uart1","uart1"],["uart2","uart2"]]),"key"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.LISTS_SET_INDEX_INPUT_TO+"MixGo AI"+mt.Msg.MSG.catSensor),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},el={init:function(){this.setColour($r),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_QR_CODE+mt.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ALL_CODE_ANALYSIS),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.OLED_STRING,"info1"],[mt.Msg.MIXLY_POSITION_XY+"-xywh","rect"],["x"+mt.Msg.MIXLY_POSITION_XY,"rect[0]"],["y"+mt.Msg.MIXLY_POSITION_XY,"rect[1]"],["w"+mt.Msg.MIXLY_POSITION_XY,"rect[2]"],["h"+mt.Msg.MIXLY_POSITION_XY,"rect[3]"],[mt.Msg.MICROPYTHON_HUSKYLENS_X_CENTERED+mt.Msg.MIXLY_POSITION_XY,"xc"],[mt.Msg.MICROPYTHON_HUSKYLENS_Y_CENTERED+mt.Msg.MIXLY_POSITION_XY,"yc"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_QR_CODE_TOOLTIP)}},il={init:function(){this.setColour($r),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_QR_CODE+mt.Msg.MIXPY_OBJECT,"qrcode"],[mt.Msg.MIXLY_BAR_CODE+mt.Msg.MIXPY_OBJECT,"barcode"],[mt.Msg.MIXLY_TAG+mt.Msg.MIXPY_OBJECT,"apriltag"]]),"TYPE"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ANALYSIS_RESULT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip()}},nl={init:function(){this.setColour($r),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.MIXLY_QR_CODE_RECOGNTITION),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.PROCEDURES_DEFRETURN_RETURN+"[qrcode]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_QR_CODE_RECOGNTITION_TOOLTIP)}},sl={init:function(){this.setColour($r),this.appendValueInput("SUB"),this.appendValueInput("RX").appendField(mt.Msg.MIXLY_SETTING+mt.Msg.MIXLY_ETHERNET_CLINET_PORT).appendField("RX#").setCheck(Number).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("TX").appendField("TX#").setCheck(Number).setAlign(mt.inputs.Align.RIGHT),this.appendDummyInput().appendField(mt.Msg.SOFT_RESET+mt.Msg.MIXLY_ESP32_RGB_WRITE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"mode"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_CONFIG_TOOLTIP)}},ol={init:function(){this.setColour($r),this.appendValueInput("SUB"),this.appendValueInput("led1").appendField(mt.Msg.MIXLY_SETTING).appendField("RGB1").setCheck(Number).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("led2").appendField("RGB2").setCheck(Number).setAlign(mt.inputs.Align.RIGHT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_CONFIG_TOOLTIP)}},_l={init:function(){this.setColour($r),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_BAR_CODE+mt.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ALL_CODE_ANALYSIS),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.OLED_STRING,"info1"],[mt.Msg.MIXLY_POSITION_XY+"-xywh","rect"],["x"+mt.Msg.MIXLY_POSITION_XY,"rect[0]"],["y"+mt.Msg.MIXLY_POSITION_XY,"rect[1]"],["w"+mt.Msg.MIXLY_POSITION_XY,"rect[2]"],["h"+mt.Msg.MIXLY_POSITION_XY,"rect[3]"],[mt.Msg.MICROPYTHON_HUSKYLENS_X_CENTERED+mt.Msg.MIXLY_POSITION_XY,"xc"],[mt.Msg.MICROPYTHON_HUSKYLENS_Y_CENTERED+mt.Msg.MIXLY_POSITION_XY,"yc"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_BAR_CODE_TOOLTIP)}},pl={init:function(){this.setColour($r),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.MIXLY_BAR_CODE_RECOGNTITION),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.PROCEDURES_DEFRETURN_RETURN+"[barcode]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_BAR_CODE_RECOGNTITION_TOOLTIP)}},al={init:function(){this.setColour($r),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_TAG+mt.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ALL_CODE_ANALYSIS),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.OLED_STRING,"info1"],[mt.Msg.blockpy_turtle_rotate+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"info2"],[mt.Msg.MIXLY_POSITION_XY+"-xywh","rect"],["x"+mt.Msg.MIXLY_POSITION_XY,"rect[0]"],["y"+mt.Msg.MIXLY_POSITION_XY,"rect[1]"],["w"+mt.Msg.MIXLY_POSITION_XY,"rect[2]"],["h"+mt.Msg.MIXLY_POSITION_XY,"rect[3]"],[mt.Msg.MICROPYTHON_HUSKYLENS_X_CENTERED+mt.Msg.MIXLY_POSITION_XY,"xc"],[mt.Msg.MICROPYTHON_HUSKYLENS_Y_CENTERED+mt.Msg.MIXLY_POSITION_XY,"yc"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_TAG_TOOLTIP)}},ul={init:function(){this.setColour($r),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.MIXLY_TAG_RECOGNTITION),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.PROCEDURES_DEFRETURN_RETURN+"[tag]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_TAG_RECOGNTITION_TOOLTIP)}},rl={init:function(){this.setColour($r),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_LINE+mt.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ALL_CODE_ANALYSIS),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LINE_ANGLE,"info1"],[mt.Msg.MIXLY_POSITION_XY+"-x1x2y1y2","rect"],["x1"+mt.Msg.MIXLY_POSITION_XY,"rect[0]"],["x2"+mt.Msg.MIXLY_POSITION_XY,"rect[1]"],["y1"+mt.Msg.MIXLY_POSITION_XY,"rect[2]"],["y2"+mt.Msg.MIXLY_POSITION_XY,"rect[3]"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_LINE_TOOLTIP)}},ll={init:function(){this.setColour($r),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.MIXLY_LINE_RECOGNTITION),this.appendValueInput("VAR1").appendField(mt.Msg.MIXLY_ESP32_THRESHOLD).setCheck(Number).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("VAR2").appendField(mt.Msg.MIXLY_LINE_RECOGNTITION_ANGLE).setCheck(Number).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("VAR3").appendField(mt.Msg.MIXLY_LINE_RECOGNTITION_SLOPE).setCheck(Number).setAlign(mt.inputs.Align.RIGHT),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.PROCEDURES_DEFRETURN_RETURN+"[line]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_LINE_RECOGNTITION_TOOLTIP)}},dl={init:function(){this.setColour($r),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_CIRCLE+mt.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ALL_CODE_ANALYSIS),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_CIRCLE_AREA,"info1"],[mt.Msg.MIXLY_POSITION_XY+"-xywh","rect"],["x"+mt.Msg.MIXLY_POSITION_XY,"rect[0]"],["y"+mt.Msg.MIXLY_POSITION_XY,"rect[1]"],["w"+mt.Msg.MIXLY_POSITION_XY,"rect[2]"],["h"+mt.Msg.MIXLY_POSITION_XY,"rect[3]"],[mt.Msg.MICROPYTHON_HUSKYLENS_X_CENTERED+mt.Msg.MIXLY_POSITION_XY,"xc"],[mt.Msg.MICROPYTHON_HUSKYLENS_Y_CENTERED+mt.Msg.MIXLY_POSITION_XY,"yc"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_CIRCLE_TOOLTIP)}},Il={init:function(){this.setColour($r),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.MIXLY_CIRCLE_RECOGNTITION),this.appendValueInput("VAR1").appendField(mt.Msg.MIXLY_ESP32_THRESHOLD).setCheck(Number).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("VAR2").appendField(mt.Msg.MIXLY_CIRCLE_RECOGNTITION_MIN).setCheck(Number).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("VAR3").appendField(mt.Msg.MIXLY_CIRCLE_RECOGNTITION_MAX).setCheck(Number).setAlign(mt.inputs.Align.RIGHT),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.PROCEDURES_DEFRETURN_RETURN+"[circle]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_CIRCLE_RECOGNTITION_TOOLTIP)}},Tl={init:function(){this.setColour($r),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_RECT+mt.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ALL_CODE_ANALYSIS),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_CIRCLE_AREA,"info1"],[mt.Msg.MIXLY_POSITION_XY+"-xywh","rect"],["x"+mt.Msg.MIXLY_POSITION_XY,"rect[0]"],["y"+mt.Msg.MIXLY_POSITION_XY,"rect[1]"],["w"+mt.Msg.MIXLY_POSITION_XY,"rect[2]"],["h"+mt.Msg.MIXLY_POSITION_XY,"rect[3]"],[mt.Msg.MICROPYTHON_HUSKYLENS_X_CENTERED+mt.Msg.MIXLY_POSITION_XY,"xc"],[mt.Msg.MICROPYTHON_HUSKYLENS_Y_CENTERED+mt.Msg.MIXLY_POSITION_XY,"yc"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_RECT_TOOLTIP)}},hl={init:function(){this.setColour($r),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.MIXLY_RECT_RECOGNTITION),this.appendValueInput("VAR1").appendField(mt.Msg.MIXLY_ESP32_THRESHOLD).setCheck(Number).setAlign(mt.inputs.Align.RIGHT),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.PROCEDURES_DEFRETURN_RETURN+"[rect]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_COLOR_RECOGNTITION_TOOLTIP)}},Ml={init:function(){this.setColour($r),this.appendValueInput("VAR").appendField(mt.Msg.HTML_COLOUR+mt.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_COLOR_ANALYSIS),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([["RGB"+mt.Msg.HTML_COLOUR,"[0]"],["LAB"+mt.Msg.MIXLY_COLOR_LAB,"[1]"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_COLOR_TOOLTIP)}},ml={init:function(){this.setColour($r),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.MIXLY_COLOR_RECOGNTITION),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.PROCEDURES_DEFRETURN_RETURN+"color"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_COLOR_RECOGNTITION_TOOLTIP)}},Ol={init:function(){this.setColour($r),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_COLOR_CHASE+mt.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_COLOR_CHASE_ANALYSIS),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_CIRCLE_AREA,"info1"],[mt.Msg.MIXLY_POSITION_XY+"-xywh","rect"],["x"+mt.Msg.MIXLY_POSITION_XY,"rect[0]"],["y"+mt.Msg.MIXLY_POSITION_XY,"rect[1]"],["w"+mt.Msg.MIXLY_POSITION_XY,"rect[2]"],["h"+mt.Msg.MIXLY_POSITION_XY,"rect[3]"],[mt.Msg.MICROPYTHON_HUSKYLENS_X_CENTERED+mt.Msg.MIXLY_POSITION_XY,"xc"],[mt.Msg.MICROPYTHON_HUSKYLENS_Y_CENTERED+mt.Msg.MIXLY_POSITION_XY,"yc"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_CIRCLE_TOOLTIP)}},El={init:function(){this.setColour($r),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.MIXLY_COLOR_CHASE),this.appendValueInput("VAR1").appendField("LAB"+mt.Msg.MIXLY_COLOR_LAB).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("VAR2").appendField(mt.Msg.MIXLY_ESP32_THRESHOLD).setCheck(Number).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("VAR3").appendField(mt.Msg.MIXLY_COLOR_CHASE_MERGE).setCheck(Number).setAlign(mt.inputs.Align.RIGHT),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.PROCEDURES_DEFRETURN_RETURN+"[colors]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_CIRCLE_RECOGNTITION_TOOLTIP)}},Rl={init:function(){this.setColour($r),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.MIXLY_LOCAL_TRAIN),this.appendValueInput("VAR1").appendField(mt.Msg.MIXLY_OBJECT_LIST).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("VAR2").appendField(mt.Msg.MICROPYTHON_HUSKYLENS_SAVE_AS+mt.Msg.MIXLY_MODEL_NAME).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("VAR3").appendField(mt.Msg.MIXLY_TRAIN_TIME).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("VAR4").appendField(mt.Msg.MIXLY_AipNlp_Topic_Title).setAlign(mt.inputs.Align.RIGHT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_LOCAL_TRAIN_TOOLTIP)}},cl={init:function(){this.setColour($r),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.MIXLY_LOCAL_CLASS),this.appendValueInput("VAR1").appendField(mt.Msg.MIXLY_OBJECT_LIST).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("VAR2").appendField(mt.Msg.MIXLY_MODEL_NAME).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("VAR4").appendField(mt.Msg.MIXLY_AipNlp_Topic_Title).setAlign(mt.inputs.Align.RIGHT),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.PROCEDURES_DEFRETURN_RETURN+"[objects]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_MODEL_NAME_TOOLTIP)}},gl={init:function(){this.setColour($r),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_LOCAL_CLASS+mt.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_COLOR_CHASE_ANALYSIS),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([["ID","info1"],[mt.Msg.MIXLY_CONFIDENCE_DEGREE,"info2"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_LOCAL_CLASS_TOOLTIP)}},Cl={init:function(){this.setColour($r),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MUSIC_RECORD),this.appendValueInput("VAR1").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("VAR2").appendField(mt.Msg.MIXPY_AI_AUDIO_TIME).setAlign(mt.inputs.Align.RIGHT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_MUSIC_RECORD_TOOLTIP)}},Sl={init:function(){this.setColour($r),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MUSIC_PLAY),this.appendValueInput("VAR1").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("VAR2").appendField(mt.Msg.MIXLY_MP3_VOL).setAlign(mt.inputs.Align.RIGHT),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Al={init:function(){this.setColour($r),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.MIXLY_YOLO_RECOGNIZE),this.appendValueInput("VAR1").appendField(mt.Msg.MIXLY_ANCHOR).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("VAR2").appendField(mt.Msg.MIXLY_MODEL_PATH).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("VAR4").appendField(mt.Msg.MIXLY_AipNlp_Topic_Title).setAlign(mt.inputs.Align.RIGHT),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.PROCEDURES_DEFRETURN_RETURN+"[objects]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_YOLO_RECOGNIZE_TOOLTIP)}},Ll={init:function(){this.setColour($r),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_YOLO_RECOGNIZE+mt.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_COLOR_CHASE_ANALYSIS),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([["ID","info1"],[mt.Msg.MIXLY_CONFIDENCE_DEGREE,"info2"],[mt.Msg.MIXLY_POSITION_XY+"-xywh","rect"],["x"+mt.Msg.MIXLY_POSITION_XY,"rect[0]"],["y"+mt.Msg.MIXLY_POSITION_XY,"rect[1]"],["w"+mt.Msg.MIXLY_POSITION_XY,"rect[2]"],["h"+mt.Msg.MIXLY_POSITION_XY,"rect[3]"],[mt.Msg.MICROPYTHON_HUSKYLENS_X_CENTERED+mt.Msg.MIXLY_POSITION_XY,"xc"],[mt.Msg.MICROPYTHON_HUSKYLENS_Y_CENTERED+mt.Msg.MIXLY_POSITION_XY,"yc"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_YOLO_RECOGNIZE_RESULT_TOOLTIP)}},Nl={init:function(){this.setColour($r),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.MIXLY_AipSpeech_asr),this.appendValueInput("VAR1").appendField(mt.Msg.MIXLY_AI_SENSOR_ASR_RECOGNISE_CORPUS).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("VAR2").appendField(mt.Msg.MIXLY_ESP32_THRESHOLD).setAlign(mt.inputs.Align.RIGHT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_ASR_RECOGNISE_TOOLTIP)}},Dl={init:function(){this.setColour($r),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_LICENSEPLATE+mt.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ALL_CODE_ANALYSIS),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([["ID","info1"],[mt.Msg.MIXLY_POSITION_XY+"-xywh","rect"],["x"+mt.Msg.MIXLY_POSITION_XY,"rect[0]"],["y"+mt.Msg.MIXLY_POSITION_XY,"rect[1]"],["w"+mt.Msg.MIXLY_POSITION_XY,"rect[2]"],["h"+mt.Msg.MIXLY_POSITION_XY,"rect[3]"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_LICENSEPLATE_TOOLTIP)}},fl={init:function(){this.setColour($r),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.MIXLY_AipOcr_licensePlate),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.PROCEDURES_DEFRETURN_RETURN+"[licensePlate]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_LICENSEPLATE_RECOGNTITION_TOOLTIP)}},Fl={init:function(){this.setColour($r),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_FACE+mt.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ALL_CODE_ANALYSIS),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([["ID","info1"],[mt.Msg.MIXLY_CONFIDENCE_DEGREE,"info2"],[mt.Msg.MIXLY_POSITION_XY+"-xywh","rect"],["x"+mt.Msg.MIXLY_POSITION_XY,"rect[0]"],["y"+mt.Msg.MIXLY_POSITION_XY,"rect[1]"],["w"+mt.Msg.MIXLY_POSITION_XY,"rect[2]"],["h"+mt.Msg.MIXLY_POSITION_XY,"rect[3]"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_FACE_TOOLTIP)}},Pl={init:function(){this.setColour($r),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.MIXLY_AipFace),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.PROCEDURES_DEFRETURN_RETURN+"[face]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_BAR_FACE_CLASSIFIER_TOOLTIP)}},vl={init:function(){this.setColour($r),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_20OBJECTS+mt.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ALL_CODE_ANALYSIS),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([["ID","info1"],[mt.Msg.MIXLY_CONFIDENCE_DEGREE,"info2"],[mt.Msg.MIXLY_POSITION_XY+"-xywh","rect"],["x"+mt.Msg.MIXLY_POSITION_XY,"rect[0]"],["y"+mt.Msg.MIXLY_POSITION_XY,"rect[1]"],["w"+mt.Msg.MIXLY_POSITION_XY,"rect[2]"],["h"+mt.Msg.MIXLY_POSITION_XY,"rect[3]"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_20OBJECTS_TOOLTIP)}},Yl={init:function(){this.setColour($r),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.MIXLY_FIND_20OBJECTS),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.PROCEDURES_DEFRETURN_RETURN+"[20objects]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_BAR_FIND_20OBJECTS_TOOLTIP)}},Xl={init:function(){this.setColour(205),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_AipSpeech_asr,"ASR"],[mt.Msg.MIXLY_AI_UNIT,"UNIT"]]),"CTYPE"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_Client).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("API_KEY").appendField("API_KEY").setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("SECRET_KEY").appendField("SECRET_KEY").setAlign(mt.inputs.Align.RIGHT),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},xl={init:function(){this.setColour(205),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_AI_UNIT).appendField(mt.Msg.MIXLY_Client).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("ID").appendField("ID").setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("STR").appendField(mt.Msg.OLED_STRING).setAlign(mt.inputs.Align.RIGHT),this.setInputsInline(!0),this.setOutput(!0)}},bl={init:function(){this.setColour(205),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_AipSpeech_asr).appendField(mt.Msg.MIXLY_Client).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("FILE").appendField(mt.Msg.MIXPY_AI_AUDIO_TIME).setAlign(mt.inputs.Align.RIGHT),this.appendDummyInput("").appendField(mt.Msg.MIXLY_LANGUAGE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_AI_LANGUAGE_CHINESE,"1537"],[mt.Msg.MIXLY_AI_LANGUAGE_ENGLISH,"1737"],[mt.Msg.MIXLY_AI_LANGUAGE_CANTONESE,"1637"]]),"LANGUAGE"),this.setInputsInline(!0),this.setOutput(!0)}},Vl="#2FAD7A",yl={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:Vl,helpUrl:mt.Msg.MPYTHON_BLYNK_TERMINAL_WIDGET_VPIN_HELPURL,tooltip:mt.Msg.MPYTHON_BLYNK_TERMINAL_WIDGET_VPIN_TOOLTIP,message0:mt.Msg.MPYTHON_BLYNK_TERMINAL_WIDGET_VPIN_MESSAGE0,args0:[{check:Number,type:"input_value",name:"virtual_pin"}]})}},Bl={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:Vl,helpUrl:mt.Msg.MPYTHON_BLYNK_SYNC_VIRTUAL_HELPURL,tooltip:mt.Msg.MPYTHON_BLYNK_SYNC_VIRTUAL_TOOLTIP,message0:mt.Msg.MPYTHON_BLYNK_SYNC_VIRTUAL_MESSAGE0,args0:[{check:Number,type:"input_value",name:"virtual_pin"}]})}},Gl={init:function(){this.jsonInit({inputsInline:!0,colour:Vl,helpUrl:mt.Msg.MPYTHON_BLYNK_ON_DISCONNECTED_HELPURL,tooltip:mt.Msg.MPYTHON_BLYNK_ON_DISCONNECTED_TOOLTIP,message0:mt.Msg.MPYTHON_BLYNK_ON_DISCONNECTED_MESSAGE0}),this.appendStatementInput("DO").appendField(mt.CONTROLS_REPEAT_INPUT_DO)}},Ul={init:function(){this.jsonInit({inputsInline:!0,colour:Vl,helpUrl:mt.Msg.MPYTHON_BLYNK_ON_CONNECTED_HELPURL,tooltip:mt.Msg.MPYTHON_BLYNK_ON_CONNECTED_TOOLTIP,message0:mt.Msg.MPYTHON_BLYNK_ON_CONNECTED_MESSAGE0}),this.appendStatementInput("DO").appendField(mt.CONTROLS_REPEAT_INPUT_DO)}},wl={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:Vl,helpUrl:mt.Msg.MPYTHON_BLYNKTIMER_RUN_HELPURL,tooltip:mt.Msg.MPYTHON_BLYNKTIMER_RUN_TOOLTIP,message0:mt.Msg.MPYTHON_BLYNKTIMER_RUN_MESSAGE0})}},kl={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:Vl,helpUrl:mt.Msg.MPYTHON_BLYNK_RUN_HELPURL,tooltip:mt.Msg.MPYTHON_BLYNK_RUN_TOOLTIP,message0:mt.Msg.MPYTHON_BLYNK_RUN_MESSAGE0})}},Hl={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:Vl,helpUrl:mt.Msg.MPYTHON_BLYNK_APP_NOTIFY_HELPURL,tooltip:mt.Msg.MPYTHON_BLYNK_APP_NOTIFY_TOOLTIP,message0:mt.Msg.MPYTHON_BLYNK_APP_NOTIFY_MESSAGE0,args0:[{check:String,type:"input_value",name:"notification"}]})}},Wl={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:Vl,helpUrl:mt.Msg.MPYTHON_BLYNK_STOP_TIMERS_HELPURL,tooltip:mt.Msg.MPYTHON_BLYNKTIMER_TOOLTIP,message0:mt.Msg.MPYTHON_BLYNK_STOP_TIMERS_MESSAGE0,args0:[{check:Number,type:"input_value",name:"timer_num"}]})}},Kl={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:Vl,helpUrl:mt.Msg.MPYTHON_BLYNK_SET_PROPERTY_HELPURL,tooltip:mt.Msg.MPYTHON_BLYNK_SET_PROPERTY_TOOLTIP,message0:mt.Msg.MPYTHON_BLYNK_SET_PROPERTY_MESSAGE0,args0:[{check:String,type:"input_value",name:"attribute_name"},{type:"input_value",name:"attribute_value"}]})}},Jl={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:Vl,helpUrl:mt.Msg.MPYTHON_BLYNK_EMAIL_HELPURL,tooltip:mt.Msg.MPYTHON_BLYNK_EMAIL_TOOLTIP,message0:mt.Msg.MPYTHON_BLYNK_EMAIL_MESSAGE0,args0:[{check:String,type:"input_value",name:"TargetEmail"},{check:String,type:"input_value",name:"subject"},{check:String,type:"input_value",name:"body"}]})}},zl={init:function(){this.jsonInit({inputsInline:!0,output:null,colour:Vl,helpUrl:mt.Msg.MPYTHON_BLYNK_GET_TIMERS_HELPURL,tooltip:mt.Msg.MPYTHON_BLYNK_GET_TIMERS_TOOLTIP,message0:mt.Msg.MPYTHON_BLYNK_GET_TIMERS_MESSAGE0})}},ql={init:function(){this.jsonInit({message0:mt.Msg.MPYTHON_BLYNKTIMER_MESSAGE0,colour:Vl,helpUrl:mt.Msg.MPYTHON_BLYNKTIMER_HELPURL,tooltip:mt.Msg.MPYTHON_BLYNKTIMER_TOOLTIP,args0:[{check:Number,type:"input_value",name:"Num"},{options:[[mt.Msg.MIXLY_PYTHON_PERIODIC,"False"],[mt.Msg.MIXLY_PYTHON_ONE_SHOT,"True"]],type:"field_dropdown",name:"Timer_mode"},{check:Number,type:"input_value",name:"period"}]}),this.appendStatementInput("DO").appendField(mt.CONTROLS_REPEAT_INPUT_DO)}},Ql={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:Vl,helpUrl:mt.Msg.MPYTHON_BLYNK_SENSOR_DATA_TO_APP_HELPURL,tooltip:mt.Msg.MPYTHON_BLYNK_SENSOR_DATA_TO_APP_TOOLTIP,message0:mt.Msg.MPYTHON_BLYNK_SENSOR_DATA_TO_APP_MESSAGE0,args0:[{type:"input_value",name:"sensor_data"},{check:Number,type:"input_value",name:"virtual_pin"}]})}},jl={init:function(){this.jsonInit({inputsInline:!0,colour:Vl,helpUrl:mt.Msg.MPYTHON_BLYNK_APP_DATA_HELPURL,tooltip:mt.Msg.MPYTHON_BLYNK_SENSOR_DATA_TO_APP_TOOLTIP,message0:mt.Msg.MPYTHON_BLYNK_APP_DATA_MESSAGE0,args0:[{check:Number,type:"input_value",name:"virtual_pin"},{type:"input_value",name:"virtual_pin_val"}]}),this.appendStatementInput("DO").appendField(mt.CONTROLS_REPEAT_INPUT_DO)}},Zl={init:function(){this.jsonInit({nextStatement:null,previousStatement:null,colour:Vl,helpUrl:mt.Msg.MPYTHON_BLYNK_SETUP_HELPURL,tooltip:mt.Msg.MPYTHON_BLYNK_SETUP_TOOLTIP,message0:mt.Msg.MPYTHON_BLYNK_SETUP_MESSAGE0,args0:[{type:"input_dummy"},{check:String,type:"input_value",name:"server"},{check:Number,type:"input_value",name:"port"},{check:String,type:"input_value",name:"auth"}]})}},$l={init:function(){this.setColour(40),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP+" CC_G1"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{temperature:mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,relative_humidity:mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},td={init:function(){this.setColour(40),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GET_BATTERY),this.setOutput(!0,Number),this.setInputsInline(!0)}},ed={init:function(){this.setColour(40),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_JOYSTICK).appendField(new mt.FieldDropdown([["x","[0]"],["y","[1]"],["(x,y)",""]]),"VAR"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_DATA),this.setOutput(!0,Number),this.setInputsInline(!0)}},id={init:function(){this.setColour(40),this.appendDummyInput().appendField(mt.Msg.MIXLY_BUTTON).appendField(new mt.FieldDropdown([["A","0"],["B","1"],["C","2"],["D","3"],["POWER","4"],["SELECT","5"]]),"VAR"),this.appendDummyInput("").appendField(mt.Msg.WHETHER_IS_PRESSED),this.setOutput(!0,Number),this.setInputsInline(!0)}},nd={init:function(){this.setColour(40),this.appendDummyInput("").appendField(mt.Msg.MIXLY_HANDLE_SHUTDOWN),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},sd=100,od={init:function(){this.setColour(sd),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXGO_LEFT_FRONT+mt.Msg.COLOUR_RGB_GREEN+mt.Msg.MIXLY_EXTERN_LED,"GLED[0]"],[mt.Msg.MIXGO_RIGHT_FRONT+mt.Msg.COLOUR_RGB_GREEN+mt.Msg.MIXLY_EXTERN_LED,"GLED[1]"],[mt.Msg.MIXGO_LEFT_BACK+mt.Msg.COLOUR_RGB_GREEN+mt.Msg.MIXLY_EXTERN_LED,"GLED[3]"],[mt.Msg.MIXGO_RIGHT_BACK+mt.Msg.COLOUR_RGB_GREEN+mt.Msg.MIXLY_EXTERN_LED,"GLED[2]"],[mt.Msg.MIXGO_LEFT_FRONT+mt.Msg.COLOUR_RGB_RED+mt.Msg.MIXLY_EXTERN_LED,"RLED[0]"],[mt.Msg.MIXGO_RIGHT_FRONT+mt.Msg.COLOUR_RGB_RED+mt.Msg.MIXLY_EXTERN_LED,"RLED[1]"],[mt.Msg.MIXGO_LEFT_BACK+mt.Msg.COLOUR_RGB_RED+mt.Msg.MIXLY_EXTERN_LED,"RLED[3]"],[mt.Msg.MIXGO_RIGHT_BACK+mt.Msg.COLOUR_RGB_RED+mt.Msg.MIXLY_EXTERN_LED,"RLED[2]"],[mt.Msg.ME_GO_LIGHT_HEADLIGHT,"WLED"]]),"op"),this.setOutput(!0)}},_d={init:function(){this.setColour(sd),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField("ME GO"),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_SETONOFF)}},pd={init:function(){this.setColour(sd),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("led").appendField("ME GO"),this.appendDummyInput().appendField(mt.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},ad={init:function(){this.setColour(sd),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("led").appendField("ME GO"),this.appendDummyInput().appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},ud={init:function(){this.setColour(sd),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField("ME GO"),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_SETTING+mt.Msg.MIXLY_BUILDIN_LED+mt.Msg.MIXLY_BRIGHTNESS+"(0-10)")}},rd={init:function(){this.setColour(sd),this.appendDummyInput().appendField("ME GO").appendField(new mt.FieldDropdown([[mt.Msg.blockpy_forward,"F"],[mt.Msg.blockpy_backward,"B"],[mt.Msg.blockpy_left,"L"],[mt.Msg.blockpy_right,"R"]]),"VAR"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},ld={init:function(){this.setColour(sd),this.appendDummyInput().appendField("ME GO").appendField(new mt.FieldDropdown([[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"VAR"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},dd={init:function(){this.setColour(sd),this.appendDummyInput().appendField("ME GO").appendField(mt.Msg.MOTOR_DC).appendField(new mt.FieldDropdown([[mt.Msg.MIXLYCAR_WHEEL_LEFT,"0"],[mt.Msg.MIXLYCAR_WHEEL_RIGHT,"1"],[mt.Msg.ME_GO_MOTOR_EXTERN,"2"]]),"wheel"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Direction).appendField(new mt.FieldDropdown([[mt.Msg.ROTATION_FORWARD,"CW"],[mt.Msg.ROTATION_BACKWARD,"CCW"],[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Id={init:function(){this.setColour(sd),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_INTERRUPT).appendField(mt.Msg.ME_GO_HALL_SENSOR),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.TEXT_TRIM_LEFT,"A"],[mt.Msg.TEXT_TRIM_RIGHT,"B"]]),"mode"),this.appendValueInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Td={init:function(){this.setColour(sd),this.appendDummyInput("").appendField(mt.Msg.ME_GO_HALL_SENSOR),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.TEXT_TRIM_LEFT,"A"],[mt.Msg.TEXT_TRIM_RIGHT,"B"]]),"mode"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP),this.appendDummyInput("").appendField(new mt.FieldDropdown([["turns","turns"],["distance","distance"],["turns,distance","all"]]),"args"),this.appendValueInput("num").setCheck(Number),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},hd={init:function(){this.setColour(sd),this.appendDummyInput("").appendField(mt.Msg.ME_GO_HALL_SENSOR),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.TEXT_TRIM_LEFT,"A"],[mt.Msg.TEXT_TRIM_RIGHT,"B"]]),"mode"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput("").appendField(new mt.FieldDropdown([["turns","turns"],["distance","distance"],["speed","speed"]]),"args"),this.setOutput(!0),this.setInputsInline(!0)}},Md={init:function(){this.setColour(sd),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new mt.FieldDropdown([[mt.Msg.TEXT_TRIM_LEFT,"[0]"],[mt.Msg.MIXGO_LEFT_MID,"[1]"],[mt.Msg.MIXGO_RIGHT_MID,"[2]"],[mt.Msg.TEXT_TRIM_RIGHT,"[3]"],[mt.Msg.MIXLY_ALL,""]]),"key").appendField(mt.Msg.MIXGO_LINE_SENSOR_VAL),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip((function(){return mt.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP+mt.Msg.MIXLY_ESP32_NEAR}))}},md={init:function(){this.setColour(sd),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXGO_LEFT_FRONT,"[0]"],[mt.Msg.MIXGO_RIGHT_FRONT,"[1]"],[mt.Msg.MIXGO_LEFT_BACK,"[3]"],[mt.Msg.MIXGO_RIGHT_BACK,"[2]"],[mt.Msg.MIXLY_ALL,""]]),"key").appendField(mt.Msg.MIXGO_PROXIMITY_SENSOR),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip((function(){return mt.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP+mt.Msg.MIXLY_ESP32_NEAR}))}},Od={init:function(){this.setColour(sd),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXGO_CAR_SENSOR_ONBOARD_CHANGE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_ME_GO_CAR_SENSOR_ONBOARD_AUTO_CHANGE,"AS"],[mt.Msg.MIXLY_MIXGO_CAR_USE_LINE_ONLY,"LP"],[mt.Msg.MIXLY_MIXGO_CAR_USE_PROXIMITY_ONLY,"OA"],[mt.Msg.MIXLY_ME_GO_CAR_LIGHT_SEEKING_ONLY,"LS"],[mt.Msg.ME_GO_SENSOR_MODE_OFF,"CL"]]),"key"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Ed={init:function(){this.setColour(sd),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GET_GESTURE).appendField(new mt.FieldDropdown([[mt.Msg.ME_GO_PITCH,"[0]"],[mt.Msg.ME_GO_ROLL,"[1]"],[mt.Msg.ME_GO_PITCH+", "+mt.Msg.ME_GO_ROLL,""]]),"angle"),this.appendDummyInput(""),this.setOutput(!0,Number),this.setInputsInline(!0)}},Rd={init:function(){this.setColour(sd),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new mt.FieldDropdown([[mt.Msg.TEXT_TRIM_LEFT,"[0]"],[mt.Msg.MIXGO_LEFT_MID,"[1]"],[mt.Msg.MIXGO_RIGHT_MID,"[2]"],[mt.Msg.TEXT_TRIM_RIGHT,"[3]"],[mt.Msg.MIXLY_ALL,""]]),"key").appendField(mt.Msg.MIXLY_ME_GO_CAR_LIGHT_SEEKING_SENSOR),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip((function(){return mt.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP+mt.Msg.MIXLY_ME_GO_CAR_LIGHT_SEEKING_SENSOR}))}},cd=140,gd={init:function(){this.setColour(cd),this.appendDummyInput().appendField(mt.Msg.MIXLY_LED_ON_BOARD+"I2C"),this.setOutput(!0),this.setInputsInline(!0)}},Cd={init:function(){this.setColour(cd),this.appendDummyInput().appendField(mt.Msg.MIXLY_LED_ON_BOARD+"SPI"),this.setOutput(!0),this.setInputsInline(!0)}},Sd={init:function(){this.setColour(cd),this.appendValueInput("SUB").appendField("I2C "+mt.Msg.MIXLY_SETUP).setCheck("var"),this.appendValueInput("TX",Number).appendField("SCL").setCheck(Number).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("RX",Number).appendField("SDA").setCheck(Number).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("freq").setCheck(Number).appendField(mt.Msg.MIXLY_FREQUENCY).setAlign(mt.inputs.Align.RIGHT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_I2C_INIT)}},Ad={init:function(){this.setColour(cd),this.appendValueInput("VAR").appendField("I2C").setCheck("var"),this.appendValueInput("address").setCheck(Number).appendField(mt.Msg.MIXLY_ESP32_RNUMBER),this.appendValueInput("data").setCheck(Number).appendField(mt.Msg.LANG_MATH_BYTE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_JS_I2C_READ)}},Ld={init:function(){this.setColour(cd),this.appendValueInput("VAR").appendField("I2C").setCheck("var"),this.appendValueInput("address").setCheck(Number).appendField(mt.Msg.MIXLY_ESP32_WNUMBER),this.appendValueInput("data").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_I2C_VALUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_JS_I2C_WRITE)}},Nd={init:function(){this.setColour(cd),this.appendValueInput("VAR").appendField("I2C").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_I2C_SCAN1+mt.Msg.MIXLY_ESP32_I2C_SCAN2),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_I2C_SCAN)}},Dd={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField(mt.Msg.MIXLY_ESP32_SPI_INIT),this.appendValueInput("freq").setCheck(Number).appendField(mt.Msg.MIXLY_SERIAL_BEGIN),this.appendValueInput("sck").setCheck(Number).appendField("SCK"),this.appendValueInput("mosi").setCheck(Number).appendField("MOSI"),this.appendValueInput("miso").setCheck(Number).appendField("MISO"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SPI_INIT_TOOLTIP)}},fd={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField("SPI"),this.appendValueInput("data").setCheck(Number).appendField(mt.Msg.MIXLY_SETTING+mt.Msg.MIXLY_SERIAL_BEGIN),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SPI_SET)}},Fd={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField("SPI"),this.appendValueInput("data").setCheck(Number).appendField(mt.Msg.MIXLY_ESP32_SET+mt.Msg.MIXLY_ESP32_SPI_BUFFER),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SPI_BUFFER_SET)}},Pd={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField("SPI"),this.appendValueInput("data").setCheck(Number).appendField(mt.Msg.MIXLY_SERIAL_READ),this.appendDummyInput("").appendField(mt.Msg.MIXLY_4DIGITDISPLAY_NOMBER2+mt.Msg.LANG_MATH_BYTE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SPI_READ)}},vd={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField("SPI"),this.appendValueInput("data").setCheck(Number).appendField(mt.Msg.MIXLY_SERIAL_READ),this.appendDummyInput("").appendField(mt.Msg.MIXLY_4DIGITDISPLAY_NOMBER2+mt.Msg.LANG_MATH_BYTE+" "+mt.Msg.MIXLY_ESP32_SPI_OUTPUT),this.appendValueInput("val").setCheck(Number),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SPI_READ_OUTPUT)}},Yd={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField("SPI"),this.appendValueInput("data").setCheck("var").appendField(mt.Msg.MIXLY_SERIAL_READ+mt.Msg.MIXLY_ESP32_SPI_BUFFER),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SPI_READINTO)}},Xd={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField("SPI"),this.appendValueInput("data").setCheck("var").appendField(mt.Msg.MIXLY_SERIAL_READ+mt.Msg.MIXLY_ESP32_SPI_BUFFER),this.appendValueInput("val").setCheck(Number).appendField(mt.Msg.MIXLY_ESP32_SPI_OUTPUT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SPI_READINTO_OUTPUT)}},xd={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField("SPI"),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_ESP32_WRITE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SPI_WRITE)}},bd={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField("SPI"),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_ESP32_WRITE),this.appendValueInput("val").setCheck("var").appendField(mt.Msg.MIXLY_ESP32_BUFFER_READ),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SPI_WRITE_READINTO)}},Vd={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField("I2C"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_READ),this.setOutput(!0,Number)}},yd={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField("I2C"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_READ+mt.Msg.MIXLY_ESP32_SUCCESS),this.setOutput(!0,Boolean),this.setTooltip(mt.Msg.MIXLY_ESP32_I2C_AVAILABLE)}},Bd={init:function(){this.setColour(cd),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_I2C_SLAVE_ONRECEIVE).setCheck(Number),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Gd={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField("OneWire "+mt.Msg.MIXLY_SETUP),this.appendValueInput("BUS").setCheck(Number).appendField(mt.Msg.MIXLY_PIN),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_OW_INIT)}},Ud={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField("OneWire"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_ONEWIRE_SCAN),this.setOutput(!0,"List"),this.setTooltip(mt.Msg.MIXLY_ESP32_OW_SCAN)}},wd={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField("OneWire"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_ONEWIRE_READ),this.setOutput(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_OW_READ)}},kd={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField("OneWire"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_WRITE).appendField(new mt.FieldDropdown([[mt.Msg.LANG_MATH_STRING,"write"],[mt.Msg.LANG_MATH_BYTE,"writebyte"]]),"op"),this.appendValueInput("byte").setCheck([Number,String]),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_OW_WRITE)}},Hd={init:function(){this.setColour(cd),this.appendValueInput("VAR").appendField("OneWire").setCheck("var"),this.appendValueInput("byte").setCheck(String).appendField(mt.Msg.LISTS_SET_INDEX_SET).appendField("ROM"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_OW_SELECT)}},Wd={init:function(){this.setColour(cd),this.appendValueInput("VAR").appendField("OneWire").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.blockpy_turtle_reset),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_OW_RESET)}},Kd={init:function(){this.setColour(cd),this.appendValueInput("PIN").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.MIXLY_IR_RECEIVE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_TYPE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_IR_INPUT1,"8"],[mt.Msg.MIXLY_IR_INPUT2,"16"],[mt.Msg.MIXLY_IR_INPUT3,"0"],[mt.Msg.MIXLY_TR_SEND_RC,"RC5"]]),"type"),this.appendValueInput("SUB").appendField(mt.Msg.CONTROLS_REPEAT_INPUT_DO+mt.Msg.MIXLY_ESP32_ONENET_SUB),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Jd={init:function(){this.setColour(cd),this.appendDummyInput().appendField(mt.Msg.MIXlY_RECV_FUN),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_IR_CMD_CODE,"0"],[mt.Msg.MIXLY_IR_ADDR_CODE,"1"],[mt.Msg.MIXLY_IR_RAW_CODE,"2"],[mt.Msg.MIXLY_IR_PULSE,"3"]]),"index"),this.setOutput(!0),this.setInputsInline(!0)}},zd={init:function(){this.setColour(cd),this.appendDummyInput().appendField(mt.Msg.MIXlY_RECV_FUN).appendField(new mt.FieldDropdown([[mt.Msg.MILY_PAUSE,"True"],[mt.Msg.MIXLY_RECOVER,"False"]]),"en"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},qd={init:function(){this.setColour(cd),this.appendDummyInput().appendField(mt.Msg.MIXlY_RECV_FUN),this.appendDummyInput().appendField(mt.Msg.MIXLY_IR_WHETHER_RECV),this.setOutput(!0),this.setInputsInline(!0)}},Qd={init:function(){this.setColour(cd),this.appendValueInput("time").appendField(mt.Msg.MIXlY_RECV_FUN).appendField(mt.Msg.MIXLY_IR_TIMEOUT),this.appendDummyInput().appendField(mt.Msg.MIXLY_MILLISECOND),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},jd={init:function(){this.setColour(cd),this.appendValueInput("PIN").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.MIXLY_IR_SEND).appendField(mt.Msg.MIXLY_PIN),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_TYPE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_IR_SEND_samsung1,"False"],[mt.Msg.MIXLY_IR_SEND_samsung2,"True"],[mt.Msg.MIXLY_TR_SEND_RC,"RC5"]]),"type").appendField(mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER),this.appendValueInput("power"),this.appendDummyInput().appendField(mt.Msg.MATH_QUYU_SYMBOL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Zd={init:function(){this.setColour(cd),this.appendDummyInput().appendField(mt.Msg.MIXLY_IR_SEND),this.appendValueInput("cmd").appendField(mt.Msg.MIXLY_IR_CMD_CODE),this.appendValueInput("addr").appendField(mt.Msg.MIXLY_IR_ADDR_CODE),this.appendValueInput("toggle").appendField(mt.Msg.MIXLY_CONTROL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_TRANSMIT_CONVEN_DATA)}},$d={init:function(){this.setColour(cd),this.appendDummyInput().appendField(mt.Msg.MIXLY_IR_SEND),this.appendValueInput("LIST").appendField(mt.Msg.MIXLY_IR_PULSE).setAlign(mt.inputs.Align.RIGHT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},tI={init:function(){this.setColour(cd),this.appendDummyInput().appendField(mt.Msg.MIXLY_IR_SEND),this.appendValueInput("raw").appendField(mt.Msg.MIXLY_IR_RAW_CODE).setAlign(mt.inputs.Align.RIGHT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},eI={init:function(){this.setColour(cd),this.appendDummyInput().appendField(mt.Msg.MIXLY_IR_TRANSMIT_DONE),this.setOutput(!0),this.setInputsInline(!0)}},iI={init:function(){this.setColour(cd),this.appendValueInput("VAR").appendField(mt.Msg.MSG.catBLE).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MSG.catEthernet_init+mt.Msg.MIXLY_MICROBIT_PY_STORAGE_AS+mt.Msg.MSG.catBLE_UART),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},nI={init:function(){this.setColour(cd),this.appendValueInput("VAR").appendField(mt.Msg.MSG.catBLE).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MSG.catEthernet_init+mt.Msg.MIXLY_MICROBIT_PY_STORAGE_AS+mt.Msg.MSG.catBLE_HID),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.HTML_NAME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},sI={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_ONEWIRE_SCAN+mt.Msg.MSG.catBLE),this.setOutput(!0),this.setInputsInline(!0)}},oI={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXGO_ESPNOW_MAC),this.setOutput(!0),this.setInputsInline(!0)}},_I={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_TEXT_JOIN+mt.Msg.MSG.catBLE).appendField(new mt.FieldDropdown([[mt.Msg.HTML_NAME,"name"],[mt.Msg.MIXLY_ETHERNET_MAC_ADDRESS,"mac"]]),"mode"),this.appendValueInput("data").setCheck(String),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},pI={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_DISCONNECT_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},aI={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MSG.catBLE+mt.Msg.MIXLY_SEND_DATA),this.appendValueInput("data").appendField(mt.Msg.HTML_BODY),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},uI={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MSG.catBLE+mt.Msg.MIXLY_EMQX_IS_CONNECT),this.setOutput(!0),this.setInputsInline(!0)}},rI={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var"),this.appendValueInput("METHOD").appendField(mt.Msg.MIXLY_MIXGO_ESPNOW_RECV).appendField(mt.Msg.CONTROLS_REPEAT_INPUT_DO+mt.Msg.MIXLY_ESP32_ONENET_SUB),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},lI={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXGO_ESPNOW_RECV),this.setOutput(!0),this.setInputsInline(!0)}},dI={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField(mt.Msg.MIXLY_BLE_HANDLE),this.appendValueInput("METHOD").appendField(mt.Msg.MIXLY_MIXGO_ESPNOW_RECV).appendField(mt.Msg.CONTROLS_REPEAT_INPUT_DO+mt.Msg.MIXLY_ESP32_ONENET_SUB),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},II={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField("ESPnow "+mt.Msg.MIXLY_SETUP),this.appendValueInput("CHNL").setCheck(Number).appendField(mt.Msg.MIXLY_MP_ESPNOW_CHANNEL),this.appendDummyInput("").appendField(mt.Msg.MIXLY_TX_POWER).appendField(new mt.FieldDropdown([["20","20"],["18","18"],["16","16"],["15","15"],["14","14"],["13","13"],["11","11"],["8","8"],["7","7"],["5","5"],["2","2"]]),"op"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},TI={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField("ESPnow "+mt.Msg.MIXLY_SETUP),this.appendValueInput("CHNL").setCheck(Number).appendField(mt.Msg.MIXLY_MP_ESPNOW_CHANNEL),this.appendValueInput("DB").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER),this.appendDummyInput().appendField("db"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MP_ESPNOW_INIT_TOOLTIP)}},hI={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField("ESPnow "),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXGO_ESPNOW_MAC),this.setOutput(!0),this.setInputsInline(!0)}},MI={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField("ESPnow "),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXGO_ESPNOW_INFO),this.setOutput(!0),this.setInputsInline(!0)}},mI={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField("ESPnow "),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXGO_ESPNOW_RECV),this.appendDummyInput().appendField(new mt.FieldDropdown([["("+mt.Msg.MIXLY_ETHERNET_MAC_ADDRESS+", "+mt.Msg.OLED_STRING+")",""],[mt.Msg.MIXLY_ETHERNET_MAC_ADDRESS,"[0]"],[mt.Msg.OLED_STRING,"[1]"]]),"mode"),this.setOutput(!0),this.setInputsInline(!0)}},OI={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField("ESPnow "),this.appendValueInput("mac").appendField(mt.Msg.MIXLY_MIXGO_ESPNOW_SEND_MAC),this.appendValueInput("content").appendField(mt.Msg.MIXLY_MIXGO_ESPNOW_SEND),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXGO_ESPNOW_SEND_TOOLTIP)}},EI={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField("ESPnow "),this.appendValueInput("METHOD").appendField(mt.Msg.MIXLY_EMQX_SET_METHOD),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},RI={init:function(){this.setColour(cd),this.appendDummyInput().appendField(mt.Msg.MIXLY_MP_ESPNOW_RADIO_INIT),this.appendValueInput("CHNL").setCheck(Number),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},cI={init:function(){this.setColour(cd),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING+mt.Msg.MIXLY_MP_ESPNOW_RADIO+mt.Msg.MIXLY_TX_POWER).appendField(new mt.FieldDropdown([["20","20"],["18","18"],["16","16"],["15","15"],["14","14"],["13","13"],["11","11"],["8","8"],["7","7"],["5","5"],["2","2"]]),"op"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},gI={init:function(){this.setColour(cd),this.appendDummyInput().appendField(mt.Msg.MIXLY_MP_ESPNOW_RADIO_INIT),this.appendValueInput("CHNL").setCheck(Number),this.appendValueInput("DB").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER),this.appendDummyInput().appendField("db"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MP_ESPNOW_RADIO_INIT_TOOLTIP)}},CI={init:function(){this.setColour(cd),this.appendDummyInput().appendField(mt.Msg.MIXLY_MP_ESPNOW_RADIO),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_ON,"True"],[mt.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_OFF,"False"]]),"on_off"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},SI={init:function(){this.setColour(cd),this.appendDummyInput().appendField(mt.Msg.MIXLY_MP_ESPNOW_RADIO).appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.appendValueInput("send").setCheck(String),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXGO_ESPNOW_SEND_TOOLTIP)}},AI={init:function(){this.setColour(cd),this.appendDummyInput().appendField(mt.Msg.MIXLY_MP_ESPNOW_RADIO).appendField(mt.Msg.MIXLY_MIXGO_ESPNOW_RECV),this.setOutput(!0),this.setInputsInline(!0)}},LI={init:function(){this.setColour(cd),this.appendDummyInput().appendField(mt.Msg.MIXLY_MP_ESPNOW_RADIO_RECEIVED_MSG),this.setOutput(!0),this.setInputsInline(!0)}},NI={init:function(){this.setColour(cd),this.appendDummyInput().appendField(mt.Msg.MIXLY_MP_ESPNOW_RADIO_MSG_RECEIVED),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!1),this.setNextStatement(!1)}},DI={init:function(){this.setColour(cd),this.appendDummyInput().appendField(mt.Msg.MIXLY_MP_ESPNOW_RADIO_MSG_RECEIVED_CERTAIN).appendField('"').appendField(new mt.FieldTextInput("on"),"msg").appendField('"'),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!1),this.setNextStatement(!1)}},fI={init:function(){this.setColour(cd),this.appendDummyInput().appendField(mt.Msg.MIXLY_MP_ESPNOW_RADIO_MSG_RECEIVED),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!1),this.setNextStatement(!1)}},FI={init:function(){this.setColour(cd),this.appendDummyInput().appendField(mt.Msg.MIXLY_MP_ESPNOW_RADIO_MSG_RECEIVED_CERTAIN).appendField('"').appendField(new mt.FieldTextInput("on"),"msg").appendField('"'),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!1),this.setNextStatement(!1)}},PI={init:function(){this.setColour(cd),this.appendValueInput("SUB").appendField("Lora"+mt.Msg.MIXLY_SETUP).setCheck("var"),this.appendValueInput("SPISUB").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("frequency").appendField(mt.Msg.MIXLY_FREQUENCY),this.appendValueInput("rate").appendField(mt.Msg.MIXLY_CODE_RATE),this.appendValueInput("factor").appendField(mt.Msg.MIXLY_SPREADING_FACTOR),this.appendValueInput("power").appendField(mt.Msg.MIXLY_TX_POWER),this.appendDummyInput().appendField(mt.Msg.MIXLY_SIGNAL_BANDWIDTH).appendField(new mt.FieldDropdown([["7800","7800"],["10400","10400"],["15600","15600"],["20800","20800"],["31250","31250"],["41700","41700"],["62500","62500"],["125000","125000"],["250000","250000"],["500000","500000"]]),"bandwidth"),this.setFieldValue("125000","bandwidth"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_LORA_INIT_TOOLTIP)}},vI={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField("Lora "),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_PACKAGE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_SIGNAL_STRENGTH,"packet_rssi"],[mt.Msg.MIXLY_SIGNAL_NOISE_RATE,"packet_snr"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},YI={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField("Lora "),this.appendDummyInput().appendField(mt.Msg.MIXLY_SEND_DATA),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},XI={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField("Lora "),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXGO_ESPNOW_RECV),this.setOutput(!0,String),this.setInputsInline(!0)}},xI={init:function(){this.setColour(cd),this.appendValueInput("DOMAIN").appendField(mt.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(mt.Msg.blockpy_REQUESTS_GET).appendField(new mt.FieldTextInput("response"),"VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.blockpy_REQUESTS_GET_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},bI={init:function(){this.appendValueInput("VAL");var t=[[mt.Msg.blockpy_REQUESTS_GET_ATTR_HEADER,"headers"],[mt.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE,"status_code"],[mt.Msg.blockpy_REQUESTS_GET_ATTR_TEXT,"text"],[mt.Msg.blockpy_REQUESTS_GET_ATTR_COOKIES,"cookies"],[mt.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT,"content"]];this.setColour(cd),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_GET).appendField(new mt.FieldDropdown(t),"ATTR"),this.setInputsInline(!0),this.setOutput(!0,String);var e=this;this.setTooltip((function(){var t=e.getFieldValue("DIR");return{clear:mt.Msg.MIXLY_TOOLTIP_TURTEL_CLEAR,reset:mt.Msg.MIXLY_TOOLTIP_TURTEL_RESET,home:mt.Msg.MIXLY_TOOLTIP_TURTEL_HOME}[t]}))}},VI={init:function(){this.appendValueInput("VAR").appendField(mt.Msg.DISPLAY_IMAGE_LET2).setCheck(String);this.setColour(cd),this.appendDummyInput("").appendField(mt.Msg.blockpy_CONDUCT).appendField(new mt.FieldDropdown([["get","get"],["post","post"],["put","put"],["delete","delete"],["head","head"],["option","option"]]),"DIR"),this.appendDummyInput("").appendField(mt.Msg.blockpy_REQUESTS),this.setOutput(!0),this.setInputsInline(!0)}},yI=Sd,BI=Ad,GI=Ld,UI=Nd,wI=Dd,kI=fd,HI=Fd,WI=Pd,KI=vd,JI=Yd,zI=Xd,qI=xd,QI=bd,jI=Vd,ZI=yd,$I=120;({init:function(){this.setColour($I),this.appendValueInput("BOOL").setCheck([Boolean,Number]).appendField(mt.Msg.LANG_CONTROLS_WHILEUNTIL_TITLE_REPEAT).appendField(new mt.FieldDropdown(this.OPERATORS),"MODE"),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return{WHILE:mt.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_WHILE,UNTIL:mt.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL}[e]}))}}).OPERATORS=[[mt.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"WHILE"],[mt.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"UNTIL"]];({init:function(){this.setColour($I);var t=new mt.FieldDropdown(this.OPERATORS);this.appendDummyInput().appendField(t,"FLOW").appendField(mt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_INPUT_OFLOOP),this.setPreviousStatement(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("FLOW");return{BREAK:mt.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK,CONTINUE:mt.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE}[t]}))},onchange:function(){if(this.workspace){var t=!1,e=this;do{if("controls_repeat"==e.type||"controls_for"==e.type||"controls_forEach"==e.type||"controls_repeat_ext"==e.type||"controls_whileUntil"==e.type){t=!0;break}e=e.getSurroundParent()}while(e);t?this.setWarningText(null):this.setWarningText(mt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_WARNING)}}}).OPERATORS=[[mt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK,"BREAK"],[mt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE,"CONTINUE"]];const tT="5BA5A5",eT={init:function(){this.setColour(tT),this.appendValueInput("I2CSUB").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new mt.FieldDropdown([["32x12 Matrix","32x12 Matrix"],["16x8 Matrix","16x8 Matrix"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},iT={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(tT),this.appendValueInput("data").setCheck([String,"esp32_image","List","Tuple"]).appendField(mt.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.OLED_BITMAP_OR_STRING)}},nT={init:function(){this.setColour(tT),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.OLED_DRAWSTR),this.appendValueInput("space").setCheck(Number).appendField(mt.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendDummyInput("").appendField(mt.Msg.TEXT_CENTER).appendField(new mt.FieldDropdown([[mt.Msg.MICROPYTHON_DISPLAY_YES,"True"],[mt.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"center"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY)}},sT={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(tT),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},oT={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(tT),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.appendValueInput("space").setCheck(Number).appendField(mt.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SCROLL_IMAGE_OR_STRING_DELAY)}},_T={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(tT),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},pT={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(tT),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},aT={init:function(){var t=[[mt.Msg.MIXLY_UP,"shift_up"],[mt.Msg.MIXLY_DOWN,"shift_down"],[mt.Msg.MIXLY_LEFT,"shift_left"],[mt.Msg.MIXLY_RIGHT,"shift_right"]];this.appendValueInput("SUB").setCheck("var"),this.setColour(tT),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.appendDummyInput("").appendField(mt.Msg.DISPLAY_IMAGE_LET),this.appendDummyInput("").appendField(mt.Msg.DISPLAY_IMAGE_LET2).appendField(new mt.FieldDropdown(t),"OP"),this.appendValueInput("val").appendField(mt.Msg.DISPLAY_IMAGE_SHIFT).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.DISPLAY_IMAGE_UNIT);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP"),i=mt.Msg.DISPLAY_IMAGE_LET,n=mt.Msg.DISPLAY_IMAGE_LET2,s=mt.Msg.DISPLAY_IMAGE_LET3;return i+n+{up:mt.Msg.MIXLY_UP,down:mt.Msg.MIXLY_DOWN,left:mt.Msg.MIXLY_LEFT,right:mt.Msg.MIXLY_RIGHT}[t]+s}))}},uT={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(tT),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_GET_POINT),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_ESP32_JS_MONITOR_BRIGHTNESS)}},rT={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(tT),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_SET_BRIGHTNESS).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendValueInput("STAT").setCheck([Number,Boolean]),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL)}},lT={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(tT),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS)}},dT={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(tT),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS+" 0.0-1.0")}},IT={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(tT),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Clear_display),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Clear_display)}},TT={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(tT),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Built_in_image1).appendField(new mt.FieldDropdown([["HEART","HEART"],["HEART_SMALL","HEART_SMALL"],["HAPPY","HAPPY"],["SAD","SAD"],["SMILE","SMILE"],["SILLY","SILLY"],["FABULOUS","FABULOUS"],["SURPRISED","SURPRISED"],["ASLEEP","ASLEEP"],["ANGRY","ANGRY"],["CONFUSED","CONFUSED"],["NO","NO"],["YES","YES"]]),"image"),this.setOutput(!0,"esp32_image"),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Clear_display)}},hT={init:function(){var t=[[mt.Msg.MICROBIT_DISPLAY_UNION,"add"],[mt.Msg.MICROBIT_DISPLAY_MINUS,"sub"]];this.appendValueInput("SUB").setCheck("var"),this.setColour(tT),this.setOutput(!0,"esp32_image"),this.appendValueInput("A").appendField(mt.Msg.MICROBIT_DISPLAY_MERGE_SHAPE),this.appendValueInput("B").appendField(new mt.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{"+":mt.Msg.MIXLY_MICROBIT_image_add,"-":mt.Msg.MIXLY_MICROBIT_image_reduce}[t]}))}},MT={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(tT),this.appendValueInput("A").setCheck("esp32_image").appendField(mt.Msg.MIXLY_MICROBIT_Invert_image1),this.setInputsInline(!0),this.setOutput(!0,"esp32_image")}},mT={init:function(){this.setColour(tT),this.appendValueInput("I2CSUB").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendValueInput("row").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.LISTS_SET_INDEX_INPUT_TO+"OLED").setCheck(Number),this.appendValueInput("column").appendField("X").setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip()}},OT={init:function(){this.appendValueInput("VAR").appendField(mt.Msg.OLED).setCheck("var"),this.appendValueInput("Text_line1","String").setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.OLEDDISPLAY+mt.Msg.line1),this.appendValueInput("Text_line2","String").setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.line2),this.appendValueInput("Text_line3","String").setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.line3),this.appendValueInput("Text_line4","String").setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.line4),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(tT),this.setTooltip(mt.Msg.MIXLY_DF_LCD+mt.Msg.OLEDDISPLAY+mt.Msg.MIXLY_MICROBIT_TYPE_STRING)}},ET={init:function(){var t=[[mt.Msg.MIXLY_HEIGHT,"height"],[mt.Msg.MIXLY_WIDTH,"width"]];this.setColour(tT),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+mt.Msg.MIXLY_MICROBIT_IMAGE),this.appendValueInput("VAR").setCheck("esp32_image"),this.appendDummyInput("").appendField(new mt.FieldDropdown(t),"OP"),this.setInputsInline(!0),this.setOutput(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+mt.Msg.MIXLY_MICROBIT_IMAGE+{height:mt.Msg.MIXLY_HEIGHT,width:mt.Msg.MIXLY_WIDTH}[t]}))}},RT={init:function(){var t=[[mt.Msg.MIXLY_4DIGITDISPLAY_ON,"1"],[mt.Msg.MIXLY_4DIGITDISPLAY_OFF,"0"]];this.setColour(tT),this.appendValueInput("VAR").appendField(mt.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RECT).appendField(new mt.FieldDropdown(t),"OP"),this.jsonInit({message0:mt.Msg.MIXLY_MICROBIT_SHOW_RECT,args0:[{check:Number,type:"input_value",name:"x"},{check:Number,type:"input_value",name:"y"},{check:Number,type:"input_value",name:"width"},{check:Number,type:"input_value",name:"height"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"fill"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_OLED_RECT)}},cT={init:function(){this.setColour(tT),this.appendValueInput("VAR").appendField(mt.Msg.OLED).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_DISPLAY_DRAW).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_DISPLAY_RLINE,"hline"],[mt.Msg.MIXLY_DISPLAY_VLINE,"vline"]]),"direction"),this.jsonInit({message0:mt.Msg.MIXLY_MICROBIT_SHOW_LINE,args0:[{check:Number,type:"input_value",name:"x"},{check:Number,type:"input_value",name:"y"},{check:Number,type:"input_value",name:"length"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_OLED_LINE)}},gT={init:function(){this.setColour(tT),this.appendValueInput("VAR").appendField(mt.Msg.OLED).setCheck("var"),this.jsonInit({message0:mt.Msg.MIXLY_MICROBIT_SHOW_LINE_ARBITRARILY,args0:[{check:Number,type:"input_value",name:"x1"},{check:Number,type:"input_value",name:"y1"},{check:Number,type:"input_value",name:"x2"},{check:Number,type:"input_value",name:"y2"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_OLED_LINE_ARBIT)}},CT={init:function(){this.setColour(tT),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_MONITOR_GET_SCREEN_IMAGE),this.setInputsInline(!0),this.setOutput(!0,"esp32_image"),this.setTooltip(mt.Msg.MIXLY_ESP32_MONITOR_GET_SCREEN_IMAGE_TOOLTIP)}},ST={init:function(){this.setColour(tT),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_SET_BLINK_RATE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_JS_MONITOR_SET_BLINK_RATE)}},AT={init:function(){this.setColour(tT),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("_LED_").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_NUM),this.appendDummyInput("").appendField(mt.Msg.LISTS_SET_INDEX_SET+mt.Msg.MIXLY_MICROBIT_PY_STORAGE_AS).appendField(new mt.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),"FIELDNAME"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B)}},LT={init:function(){this.setColour(tT),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_ESP32_ON,"ON"],[mt.Msg.MIXLY_ESP32_OFF,"OFF"]]),"ONOFF"),this.setOutput(!0,Boolean),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW)}},NT={init:function(){this.setColour(tT),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LCD_STAT_CLEAR,"0"],[mt.Msg.MIXLY_HANDBIT_DISLPAY_OLED_FILL,"1"]]),"key"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i={0:mt.Msg.MIXLY_LCD_STAT_CLEAR,1:mt.Msg.MIXLY_HANDBIT_DISLPAY_OLED_FILL};return mt.Msg.MIXLY_DF_LCD+i[e]}))}},DT={init:function(){this.setColour(tT),this.setOutput(!0,"Tuple"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_DISPLAY_ANIMATE).appendField(new mt.FieldDropdown([["ALL_CLOCKS","ALL_CLOCKS"],["ALL_ARROWS","ALL_ARROWS"]]),"ANIMATION")}},fT={init:function(){var t=[[mt.Msg.MIXLY_4DIGITDISPLAY_ON,"1"],[mt.Msg.MIXLY_4DIGITDISPLAY_OFF,"0"]];this.setColour(tT),this.appendValueInput("VAR").appendField(mt.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MIXPY_TURTLE_DRAW_CIRCLE).appendField(new mt.FieldDropdown(t),"OP"),this.jsonInit({message0:mt.Msg.MIXLY_HANBIT_SHOW_CIRCLE,args0:[{check:Number,type:"input_value",name:"x"},{check:Number,type:"input_value",name:"y"},{check:Number,type:"input_value",name:"r"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"fill"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_MIXPY_TURTLE_DRAW_CIRCLE)}},FT={init:function(){var t=[[mt.Msg.MIXLY_4DIGITDISPLAY_ON,"1"],[mt.Msg.MIXLY_4DIGITDISPLAY_OFF,"0"]];this.setColour(tT),this.appendValueInput("VAR").appendField(mt.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_DISPLAY_DRAW+mt.Msg.MIXLY_HANBIT_DRAW_TRIANGLE).appendField(new mt.FieldDropdown(t),"OP"),this.jsonInit({message0:mt.Msg.MIXLY_HANBIT_SHOW_triangle,args0:[{check:Number,type:"input_value",name:"x0"},{check:Number,type:"input_value",name:"y0"},{check:Number,type:"input_value",name:"x1"},{check:Number,type:"input_value",name:"y1"},{check:Number,type:"input_value",name:"x2"},{check:Number,type:"input_value",name:"y2"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"fill"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_DISPLAY_DRAW+mt.Msg.MIXLY_HANBIT_DRAW_TRIANGLE)}},PT={init:function(){this.setColour("#555555"),this.appendDummyInput("").appendField(mt.Msg.MIXGO_ONBOARDDISPLAY_HELP),this.setInputsInline(!0),this.setTooltip("")}},vT={init:function(){this.setColour(tT),this.appendValueInput("VAR").appendField(mt.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.OLED_BITMAP),this.appendValueInput("START_X",Number).appendField(mt.Msg.OLED_START_X).setCheck(Number),this.appendValueInput("START_Y",Number).appendField(mt.Msg.OLED_START_Y).setCheck(Number),this.appendValueInput("bitmap_name",String).appendField(mt.Msg.OLED_BITMAP_NAME),this.appendValueInput("WIDTH",Number).appendField(mt.Msg.MIXLY_WIDTH).setCheck(Number),this.appendValueInput("HEIGHT",Number).appendField(mt.Msg.MIXLY_HEIGHT).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.OLED_SHOW_BMP_TOOLTIP)}},YT={init:function(){this.setColour(tT),this.appendValueInput("VAR").appendField(mt.Msg.OLED),this.appendDummyInput("").appendField(mt.Msg.OLED_DRAWPIXEL),this.appendValueInput("POS_X").appendField(mt.Msg.OLED_POSX),this.appendValueInput("POS_Y").appendField(mt.Msg.OLED_POSY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.OLED_DRAW_PIXE_TOOLTIP)}},XT={init:function(){this.setColour(tT),this.appendValueInput("I2CSUB").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new mt.FieldDropdown([["TM1650","TM1650"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return mt.Msg.MIXLY_ESP32_SENSOR_USE_I2C_TOOLTIP+{TM1650:"TM1650"}[e]}))}},xT={init:function(){this.setColour(tT),this.appendDummyInput().appendField(mt.Msg.MIXLY_4DIGITDISPLAY).appendField(new mt.FieldDropdown([["TM1650","tm1650"]]),"TYPE"),this.appendValueInput("VAR"),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_ON,"on"],[mt.Msg.MIXLY_OFF,"off"],[mt.Msg.MIXLY_LCD_STAT_CLEAR,"clear"]]),"STAT"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_4digitdisplay_power)}},bT={init:function(){this.setColour(tT),this.appendDummyInput().appendField(mt.Msg.MIXLY_4DIGITDISPLAY).appendField(new mt.FieldDropdown([["TM1650","tm1650"]]),"TYPE"),this.appendValueInput("VAR"),this.appendValueInput("VALUE").setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SHOW_NUMBER),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},VT={init:function(){this.setColour(tT),this.appendDummyInput().appendField(mt.Msg.MIXLY_4DIGITDISPLAY).appendField(new mt.FieldDropdown([["TM1650","tm1650"]]),"TYPE"),this.appendValueInput("VAR"),this.appendValueInput("NO").appendField(mt.Msg.MIXLY_4DIGITDISPLAY_NOMBER1),this.appendValueInput("STAT").appendField(mt.Msg.MIXLY_4DIGITDISPLAY_NOMBER2+mt.Msg.MIXLY_4DIGITDISPLAY_DOT),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_4digitdisplay_showDot)}},yT={init:function(){this.setColour(tT),this.appendDummyInput().appendField(mt.Msg.MIXLY_4DIGITDISPLAY).appendField(new mt.FieldDropdown([["TM1650","tm1650"]]),"TYPE"),this.appendValueInput("VAR"),this.appendValueInput("VALUE").setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SET_BRIGHTNESS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_4DIGITDISPLAY_4DIGITDISPLAY_BRIGHTNESS_TOOLTIP)}},BT={init:function(){this.setColour(tT),this.appendValueInput("SPISUB").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINDC").appendField("DC"),this.appendValueInput("PINCS").appendField("CS"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.LISTS_SET_INDEX_INPUT_TO+mt.Msg.MSG.catTFT),this.appendValueInput("WIDTH").appendField(mt.Msg.MIXLY_WIDTH).setCheck(Number),this.appendValueInput("HEIGHT").appendField(mt.Msg.MIXLY_HEIGHT).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.blockpy_turtle_rotate).appendField(new mt.FieldDropdown([[mt.Msg.MICROPYTHON_DISPLAY_NO,"0"],[mt.Msg.ANTI_CLOCKWISE+"90°","1"],[mt.Msg.ANTI_CLOCKWISE+"180°","2"],[mt.Msg.ANTI_CLOCKWISE+"270°","3"]]),"rotate"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},GT={init:function(){this.setColour(tT),this.appendValueInput("SUB").appendField(mt.Msg.MSG.catTFT),this.appendValueInput("data").appendField(mt.Msg.OLED_BITMAP),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_NUMBER),this.appendValueInput("VAR").appendField(mt.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.OLED_BITMAP_OR_STRING)}},UT={init:function(){this.setColour(tT);let t=new mt.FieldColour("#f00",null,{colourOptions:["#f00","#000"],columns:2});this.appendDummyInput("").setAlign(mt.inputs.Align.RIGHT).appendField(t,"COLOR"),this.setInputsInline(!0),this.setOutput(!0,String)}},wT={init:function(){this.setColour(tT),this.appendValueInput("SUB").appendField(mt.Msg.MSG.catTFT),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.OLED_DRAWSTR),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(mt.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendDummyInput("").appendField(mt.Msg.TEXT_CENTER).appendField(new mt.FieldDropdown([[mt.Msg.MICROPYTHON_DISPLAY_YES,"True"],[mt.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"center"),this.appendValueInput("VAR").appendField(mt.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY)}},kT={init:function(){this.setColour(tT),this.appendValueInput("SUB").appendField(mt.Msg.MSG.catTFT),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(mt.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.appendValueInput("VAR").appendField(mt.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SCROLL_IMAGE_OR_STRING_DELAY)}},HT={init:function(){this.setColour(tT),this.appendValueInput("SUB").appendField(mt.Msg.MSG.catTFT),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.appendValueInput("VAR").appendField(mt.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},WT={init:function(){this.setColour(tT),this.appendValueInput("SUB").setCheck("var").appendField(mt.Msg.MSG.catTFT),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LCD_STAT_CLEAR,"BLACK"],[mt.Msg.MIXLY_HANDBIT_DISLPAY_OLED_FILL,"WHITE"]]),"key"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i={0:mt.Msg.MIXLY_LCD_STAT_CLEAR,1:mt.Msg.MIXLY_HANDBIT_DISLPAY_OLED_FILL};return mt.Msg.MIXLY_DF_LCD+i[e]}))}},KT={init:function(){this.setColour(tT),this.appendValueInput("SUB").appendField(mt.Msg.MSG.catTFT).setCheck("var"),this.jsonInit({message0:mt.Msg.MIXLY_MICROBIT_SHOW_LINE_ARBITRARILY,args0:[{check:Number,type:"input_value",name:"x1"},{check:Number,type:"input_value",name:"y1"},{check:Number,type:"input_value",name:"x2"},{check:Number,type:"input_value",name:"y2"}]}),this.appendValueInput("VAR").appendField(mt.Msg.HTML_COLOUR),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_OLED_LINE_ARBIT)}},JT={init:function(){this.setColour(tT),this.appendValueInput("I2CSUB").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new mt.FieldDropdown([["LCD1602","16"],["LCD2004","20"]]),"key"),this.appendValueInput("ADDR").setCheck(Number).appendField(mt.Msg.MQTT_SERVER_ADD),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return mt.Msg.MIXLY_SETUP+{16:"LCD1602",20:"LCD2004"}[e]}))}},zT={init:function(){this.setColour(tT),this.appendValueInput("SUB").appendField(mt.Msg.MSG.catLCD),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.OLED_DRAWSTR),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.array2_cols),this.appendValueInput("y").setCheck(Number).appendField(mt.Msg.array2_rows),this.appendDummyInput("").appendField(mt.Msg.TEXT_CENTER).appendField(new mt.FieldDropdown([[mt.Msg.MICROPYTHON_DISPLAY_YES,"True"],[mt.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"center"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY)}},qT={init:function(){this.setColour(tT),this.appendValueInput("SUB").appendField(mt.Msg.MSG.catLCD),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_SERIAL_PRINT+mt.Msg.OLED_DRAWSTR),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.array2_cols),this.appendValueInput("y").setCheck(Number).appendField(mt.Msg.array2_rows),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},QT={init:function(){this.setColour(tT),this.appendValueInput("SUB").setCheck("var").appendField(mt.Msg.MSG.catLCD),this.appendDummyInput().appendField(mt.Msg.TFT_Brightness).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_Turn_on_display,"1"],[mt.Msg.MIXLY_MICROBIT_Turn_off_display,"0"]]),"key"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i={1:mt.Msg.MIXLY_MICROBIT_Turn_on_display,0:mt.Msg.MIXLY_MICROBIT_Turn_off_display};return mt.Msg.MSG.catLCD+mt.Msg.TFT_Brightness+i[e]}))}},jT={init:function(){this.appendValueInput("SUB").setCheck("var").appendField(mt.Msg.MSG.catLCD),this.setColour(tT),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Clear_display),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Clear_display)}},ZT={init:function(){this.setColour(tT),this.appendValueInput("I2CSUB").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.LISTS_SET_INDEX_INPUT_TO+"oled128x64"),this.appendValueInput("ADDR").setCheck(Number).appendField(mt.Msg.MQTT_SERVER_ADD),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return mt.Msg.MIXLY_SETUP+{16:"LCD1602",20:"LCD2004"}[e]}))}},$T={init:function(){this.setColour(tT),this.appendValueInput("SUB").setCheck("var").appendField(mt.Msg.MSG.catOLED),this.appendValueInput("data").appendField(mt.Msg.OLED_BITMAP),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.OLED_BITMAP_OR_STRING)}},th={init:function(){this.setColour(tT),this.appendValueInput("SUB").setCheck("var").appendField(mt.Msg.MSG.catOLED),this.appendValueInput("data").appendField(mt.Msg.OLED_BITMAP),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_NUMBER),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.OLED_BITMAP_OR_STRING)}},eh={init:function(){this.setColour(tT),this.appendValueInput("SUB").setCheck("var").appendField(mt.Msg.MSG.catOLED),this.appendValueInput("data").setCheck([String,"esp32_image","List","Tuple"]).appendField(mt.Msg.OLED_DRAWSTR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.OLED_BITMAP_OR_STRING)}},ih={init:function(){this.setColour(tT),this.appendValueInput("SUB").setCheck("var").appendField(mt.Msg.MSG.catOLED),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.OLED_DRAWSTR),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(mt.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendDummyInput("").appendField(mt.Msg.TEXT_CENTER).appendField(new mt.FieldDropdown([[mt.Msg.MICROPYTHON_DISPLAY_YES,"True"],[mt.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"center"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY)}},nh={init:function(){this.setColour(tT),this.appendValueInput("SUB").setCheck("var").appendField(mt.Msg.MSG.catOLED),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},sh={init:function(){this.setColour(tT),this.appendValueInput("SUB").setCheck("var").appendField(mt.Msg.MSG.catOLED),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(mt.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SCROLL_IMAGE_OR_STRING_DELAY)}},oh={init:function(){this.setColour(tT),this.appendValueInput("SUB").setCheck("var").appendField(mt.Msg.MSG.catOLED),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},_h={init:function(){this.setColour(tT),this.appendValueInput("SUB").setCheck("var").appendField(mt.Msg.MSG.catOLED),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},ph={init:function(){var t=[[mt.Msg.MIXLY_UP,"shift_up"],[mt.Msg.MIXLY_DOWN,"shift_down"],[mt.Msg.MIXLY_LEFT,"shift_left"],[mt.Msg.MIXLY_RIGHT,"shift_right"]];this.setColour(tT),this.appendValueInput("SUB").setCheck("var").appendField(mt.Msg.MSG.catOLED),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.appendDummyInput("").appendField(mt.Msg.DISPLAY_IMAGE_LET),this.appendDummyInput("").appendField(mt.Msg.DISPLAY_IMAGE_LET2).appendField(new mt.FieldDropdown(t),"OP"),this.appendValueInput("val").appendField(mt.Msg.DISPLAY_IMAGE_SHIFT).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.DISPLAY_IMAGE_UNIT);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP"),i=mt.Msg.DISPLAY_IMAGE_LET,n=mt.Msg.DISPLAY_IMAGE_LET2,s=mt.Msg.DISPLAY_IMAGE_LET3;return i+n+{up:mt.Msg.MIXLY_UP,down:mt.Msg.MIXLY_DOWN,left:mt.Msg.MIXLY_LEFT,right:mt.Msg.MIXLY_RIGHT}[t]+s}))}},ah={init:function(){this.setColour(tT),this.appendValueInput("SUB").setCheck("var").appendField(mt.Msg.MSG.catOLED),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_GET_POINT),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_ESP32_JS_MONITOR_BRIGHTNESS)}},uh={init:function(){this.setColour(tT),this.appendValueInput("SUB").setCheck("var").appendField(mt.Msg.MSG.catOLED),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_SET_BRIGHTNESS).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendValueInput("STAT").setCheck([Number,Boolean]),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL)}},rh={init:function(){this.setColour(tT),this.appendValueInput("SUB").setCheck("var").appendField(mt.Msg.MSG.catOLED),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Clear_display),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Clear_display)}},lh={init:function(){this.jsonInit({colour:tT,args0:[{name:"SUB",type:"input_value"},{name:"state",options:[[mt.Msg.MPYTHON_DISPLAY_MODE_1,"1"],[mt.Msg.MPYTHON_DISPLAY_MODE_0,"0"]],type:"field_dropdown"},{name:"shape",options:[[mt.Msg.MPYTHON_DISPLAY_HOLLOW,"rect"],[mt.Msg.MPYTHON_DISPLAY_SOLID,"fill_rect"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"w",type:"input_value"},{name:"h",type:"input_value"}],inputsInline:!0,helpUrl:mt.Msg.mpython_HELPURL,tooltip:mt.Msg.MPYTHON_DISPLAY_SHAPE_RECT_TOOLTIP,message0:mt.Msg.MPYTHON_DISPLAY_SHAPE_RECT_MESSAGE1,nextStatement:null,previousStatement:null})}},dh={init:function(){this.jsonInit({colour:tT,args0:[{name:"SUB",type:"input_value"},{name:"state",options:[[mt.Msg.MPYTHON_DISPLAY_MODE_1,"1"],[mt.Msg.MPYTHON_DISPLAY_MODE_0,"0"]],type:"field_dropdown"},{name:"dir_h_v",options:[[mt.Msg.mpython_vertical,"0"],[mt.Msg.mpython_horizontal,"1"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"length",type:"input_value"}],inputsInline:!0,helpUrl:mt.Msg.mpython_HELPURL,tooltip:mt.Msg.MPYTHON_DISPLAY_HVLINE_TOOLTIP,message0:mt.Msg.MPYTHON_DISPLAY_HVLINE_MESSAGE1,nextStatement:null,previousStatement:null})}},Ih={init:function(){this.jsonInit({colour:tT,args0:[{name:"SUB",type:"input_value"},{name:"state",options:[[mt.Msg.mpython_display_hline_1,"1"],[mt.Msg.mpython_display_hline_0,"0"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x1",type:"input_value"},{name:"y1",type:"input_value"},{name:"x2",type:"input_value"},{name:"y2",type:"input_value"}],inputsInline:!0,helpUrl:mt.Msg.mpython_HELPURL,tooltip:mt.Msg.mpython_display_line_TOOLTIP,message0:mt.Msg.mpython_display_line_MESSAGE1,nextStatement:null,previousStatement:null})}},Th="#569A98",hh={init:function(){this.setColour(Th),this.appendValueInput("data").setCheck([String,"esp32_image","List","Tuple"]).appendField(mt.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),"micropython:esp32:mixbot"==Ot.Boards.getSelectedBoardKey()&&this.setTooltip(mt.Msg.MIXLY_MIXBOT_SHOW_SCROLL_STRING_TOOLTIP)}},Mh={init:function(){this.setColour(Th),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.OLED_DRAWSTR),this.appendValueInput("space").setCheck(Number).appendField(mt.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendDummyInput("").appendField(mt.Msg.TEXT_CENTER).appendField(new mt.FieldDropdown([[mt.Msg.MICROPYTHON_DISPLAY_YES,"True"],[mt.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"center"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},mh={init:function(){this.setColour(Th),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Oh={init:function(){this.setColour(Th),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.appendValueInput("space").setCheck(Number).appendField(mt.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Eh={init:function(){this.setColour(Th),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Rh={init:function(){this.setColour(Th),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},ch={init:function(){this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<12;t++){let e=this.appendDummyInput();for(let i=0;i<32;i++)e.appendField(new mt.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.setOutput(!0),this.setColour(Th),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Create_image1)}},gh={init:function(){this.jsonInit({colour:Th,args0:[{name:"image",options:[["HEART","HEART"],["HEART_SMALL","HEART_SMALL"],["HAPPY","HAPPY"],["SAD","SAD"],["SMILE","SMILE"],["SILLY","SILLY"],["FABULOUS","FABULOUS"],["SURPRISED","SURPRISED"],["ASLEEP","ASLEEP"],["ANGRY","ANGRY"],["CONFUSED","CONFUSED"],["NO","NO"],["YES","YES"]],type:"field_dropdown"}],output:["esp32_image","List"],helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/image.html#attributes",tooltip:mt.Msg.MIXLY_MICROBIT_Built_in_image1,message0:mt.Msg.MIXLY_MICROBIT_Built_in_image})}},Ch={init:function(){this.jsonInit({colour:Th,args0:[{name:"image",options:[["HEART","HEART"],["HEART_SMALL","HEART_SMALL"],["HAPPY","HAPPY"],["SAD","SAD"],["SMILE","SMILE"],["SILLY","SILLY"],["FABULOUS","FABULOUS"],["SURPRISED","SURPRISED"],["ASLEEP","ASLEEP"],["ANGRY","ANGRY"],["CONFUSED","CONFUSED"],["NO","NO"],["YES","YES"],["LEFT_ARROW","LEFT_ARROW"],["RIGHT_ARROW","RIGHT_ARROW"],["DRESS","DRESS"],["TRANSFORMERS","TRANSFORMERS"],["SCISSORS","SCISSORS"],["EXIT","EXIT"],["TREE","TREE"],["PACMAN","PACMAN"],["TARGET","TARGET"],["TSHIRT","TSHIRT"],["ROLLERSKATE","ROLLERSKATE"],["DUCK","DUCK"],["HOUSE","HOUSE"],["TORTOISE","TORTOISE"],["BUTTERFLY","BUTTERFLY"],["STICKFIGURE","STICKFIGURE"],["GHOST","GHOST"],["PITCHFORK","PITCHFORK"],["MUSIC_QUAVERS","MUSIC_QUAVERS"],["MUSIC_QUAVER","MUSIC_QUAVER"],["MUSIC_CROTCHET","MUSIC_CROTCHET"],["COW","COW"],["RABBIT","RABBIT"],["SQUARE_SMALL","SQUARE_SMALL"],["SQUARE","SQUARE"],["DIAMOND_SMALL","DIAMOND_SMALL"],["DIAMOND","DIAMOND"],["CHESSBOARD","CHESSBOARD"],["TRIANGLE_LEFT","TRIANGLE_LEFT"],["TRIANGLE","TRIANGLE"],["SNAKE","SNAKE"],["UMBRELLA","UMBRELLA"],["SKULL","SKULL"],["GIRAFFE","GIRAFFE"],["SWORD","SWORD"]],type:"field_dropdown"}],output:["esp32_image","List"],helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/image.html#attributes",tooltip:mt.Msg.MIXLY_MICROBIT_Built_in_image1,message0:mt.Msg.MIXLY_MICROBIT_Built_in_image})}},Sh={init:function(){var t=[[mt.Msg.MICROBIT_DISPLAY_UNION,"add"],[mt.Msg.MICROBIT_DISPLAY_MINUS,"sub"]];this.setColour(Th),this.setOutput(!0,"esp32_image"),this.appendValueInput("A").appendField(mt.Msg.MICROBIT_DISPLAY_MERGE_SHAPE),this.appendValueInput("B").appendField(new mt.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{"+":mt.Msg.MIXLY_MICROBIT_image_add,"-":mt.Msg.MIXLY_MICROBIT_image_reduce}[t]}))}},Ah={init:function(){this.setColour(Th),this.appendValueInput("A").setCheck("esp32_image").appendField(mt.Msg.MIXLY_MICROBIT_Invert_image1),this.setInputsInline(!0),this.setOutput(!0,"esp32_image")}},Lh={init:function(){var t=[[mt.Msg.MIXLY_UP,"shift_up"],[mt.Msg.MIXLY_DOWN,"shift_down"],[mt.Msg.MIXLY_LEFT,"shift_left"],[mt.Msg.MIXLY_RIGHT,"shift_right"]];this.setColour(Th),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.appendDummyInput("").appendField(mt.Msg.DISPLAY_IMAGE_LET),this.appendDummyInput("").appendField(mt.Msg.DISPLAY_IMAGE_LET2).appendField(new mt.FieldDropdown(t),"OP"),this.appendValueInput("val").appendField(mt.Msg.DISPLAY_IMAGE_SHIFT).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.DISPLAY_IMAGE_UNIT);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP"),i=mt.Msg.DISPLAY_IMAGE_LET,n=mt.Msg.DISPLAY_IMAGE_LET2,s=mt.Msg.DISPLAY_IMAGE_LET3;return i+n+{shift_up:mt.Msg.MIXLY_UP,shift_down:mt.Msg.MIXLY_DOWN,shift_left:mt.Msg.MIXLY_LEFT,shift_right:mt.Msg.MIXLY_RIGHT}[t]+s}))}},Nh={init:function(){this.setColour(Th),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_GET_POINT),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_ESP32_JS_MONITOR_BRIGHTNESS)}},Dh={init:function(){this.setColour(Th),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_SET_BRIGHTNESS).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendValueInput("STAT").setCheck([Number,Boolean]),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL)}},fh={init:function(){this.setColour(Th),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS)}},Fh={init:function(){this.setColour(Th),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS+" 0.0-1.0")}},Ph={init:function(){this.setColour(Th),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Clear_display),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Clear_display)}},vh={init:function(){this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<5;t++){let e=this.appendDummyInput();for(let i=0;i<8;i++)e.appendField(new mt.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.setOutput(!0),this.setColour(Th),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Create_image1)}},Yh={init:function(){this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<8;t++){let e=this.appendDummyInput();for(let i=0;i<12;i++)e.appendField(new mt.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.setOutput(!0),this.setColour(Th),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Create_image1)}},Xh={init:function(){this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<8;t++){let e=this.appendDummyInput();for(let i=0;i<16;i++)e.appendField(new mt.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.setOutput(!0,"esp32_image"),this.setColour(Th),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Create_image1)}},xh={init:function(){var t=[["4x5"+mt.Msg.MIXGO_ME_DISPLAY_HORIZONTAL,"'4x5'"],["5x5"+mt.Msg.MIXGO_ME_DISPLAY_HORIZONTAL,"'5x5'"],["5x8"+mt.Msg.MIXGO_ME_DISPLAY_VERTICAL,"'5x8'"]];this.setColour(Th),this.appendDummyInput().appendField(mt.Msg.OLED_SET_FONT).appendField(new mt.FieldDropdown(t),"OP"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},bh={init:function(){this.setColour(Th),this.appendValueInput("data").appendField(mt.Msg.OLED_BITMAP),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.OLED_BITMAP_OR_STRING)}},Vh={init:function(){this.setColour(Th),this.appendValueInput("data").appendField(mt.Msg.OLED_BITMAP),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_NUMBER),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.OLED_BITMAP_OR_STRING)}},yh={init:function(){this.setColour(Th),this.appendValueInput("data").setCheck([String,"esp32_image","List","Tuple"]).appendField(mt.Msg.OLED_DRAWSTR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.OLED_BITMAP_OR_STRING)}},Bh={init:function(){this.setColour(Th),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.OLED_DRAWSTR),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(mt.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendDummyInput("").appendField(mt.Msg.TEXT_CENTER).appendField(new mt.FieldDropdown([[mt.Msg.MICROPYTHON_DISPLAY_YES,"True"],[mt.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"center"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY)}},Gh={init:function(){this.setColour(Th),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(mt.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SCROLL_IMAGE_OR_STRING_DELAY)}},Uh={init:function(){this.setColour(Th),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},wh={init:function(){this.setColour(Th),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_SET_BRIGHTNESS).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendValueInput("STAT").setCheck([Number,Boolean]),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL)}},kh={init:function(){this.jsonInit({colour:Th,args0:[{name:"state",options:[[mt.Msg.MPYTHON_DISPLAY_MODE_1,"1"],[mt.Msg.MPYTHON_DISPLAY_MODE_0,"0"]],type:"field_dropdown"},{name:"shape",options:[[mt.Msg.MPYTHON_DISPLAY_HOLLOW,"rect"],[mt.Msg.MPYTHON_DISPLAY_SOLID,"fill_rect"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"w",type:"input_value"},{name:"h",type:"input_value"}],inputsInline:!0,helpUrl:mt.Msg.mpython_HELPURL,tooltip:mt.Msg.MPYTHON_DISPLAY_SHAPE_RECT_TOOLTIP,message0:mt.Msg.MPYTHON_DISPLAY_SHAPE_RECT_MESSAGE0,nextStatement:null,previousStatement:null})}},Hh={init:function(){this.jsonInit({colour:Th,args0:[{name:"state",options:[[mt.Msg.MPYTHON_DISPLAY_MODE_1,"1"],[mt.Msg.MPYTHON_DISPLAY_MODE_0,"0"]],type:"field_dropdown"},{name:"dir_h_v",options:[[mt.Msg.mpython_vertical,"0"],[mt.Msg.mpython_horizontal,"1"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"length",type:"input_value"}],inputsInline:!0,helpUrl:mt.Msg.mpython_HELPURL,tooltip:mt.Msg.MPYTHON_DISPLAY_HVLINE_TOOLTIP,message0:mt.Msg.MPYTHON_DISPLAY_HVLINE_MESSAGE0,nextStatement:null,previousStatement:null})}},Wh={init:function(){this.jsonInit({colour:Th,args0:[{name:"state",options:[[mt.Msg.mpython_display_hline_1,"1"],[mt.Msg.mpython_display_hline_0,"0"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x1",type:"input_value"},{name:"y1",type:"input_value"},{name:"x2",type:"input_value"},{name:"y2",type:"input_value"}],inputsInline:!0,helpUrl:mt.Msg.mpython_HELPURL,tooltip:mt.Msg.mpython_display_line_TOOLTIP,message0:mt.Msg.mpython_display_line_MESSAGE0,nextStatement:null,previousStatement:null})}},Kh={init:function(){this.jsonInit({colour:Th,args0:[{type:"field_label",name:"size_image",text:mt.Msg.MIXLY_MICROBIT_Built_in_image1},{name:"path",options:[["Heart","Heart"],["Angry","Angry"],["Bored","Bored"],["Confused","Confused"],["Happy","Happy"],["Paper","Paper"],["Rock","Rock"],["Sad","Sad"],["Scissors","Scissors"],["Silly","Silly"],["Sleep","Sleep"],["Small_heart","Small_heart"],["Small_paper","Small_paper"],["Small_rock","Small_rock"],["Small_scissors","Small_scissors"],["Smile","Smile"],["Surprise","Surprise"],["Wonderful","Wonderful"],["Eyes_Angry","Eyes_Angry"],["Awake","Awake"],["Black_eye","Black_eye"],["Bottom_left","Bottom_left"],["Bottom_right","Bottom_right"],["Crazy_1","Crazy_1"],["Crazy_2","Crazy_2"],["Disappointed","Disappointed"],["Dizzy","Dizzy"],["Down","Down"],["Evil","Evil"],["Hurt","Hurt"],["Knocked_out","Knocked_out"],["Love","Love"],["Middle_left","Middle_left"],["Middle_right","Middle_right"],["Neutral","Neutral"],["Nuclear","Nuclear"],["Pinch_left","Pinch_left"],["Pinch_middle","Pinch_middle"],["Pinch_right","Pinch_right"],["Tear","Tear"],["Tired_left","Tired_left"],["Tired_middle","Tired_middle"],["Tired_right","Tired_right"],["Toxic","Toxic"],["Up","Up"],["Winking","Winking"],["Accept","Accept"],["Backward","Backward"],["Decline","Decline"],["Forward","Forward"],["Left","Left"],["No_go","No_go"],["Question_mark","Question_mark"],["Right","Right"],["Stop_1","Stop_1"],["Stop_2","Stop_2"],["Thumbs_down","Thumbs_down"],["Thumbs_up","Thumbs_up"],["Warning","Warning"],["Bomb","Bomb"],["Boom","Boom"],["Fire","Fire"],["Flowers","Flowers"],["Forest","Forest"],["Lightning","Lightning"],["Light_off","Light_off"],["Light_on","Light_on"],["Night","Night"],["Pirate","Pirate"],["Snow","Snow"],["Target","Target"],["Bar_0","Bar_0"],["Bar_1","Bar_1"],["Bar_2","Bar_2"],["Bar_3","Bar_3"],["Bar_4","Bar_4"],["Dial_0","Dial_0"],["Dial_1","Dial_1"],["Dial_2","Dial_2"],["Dial_3","Dial_3"],["Dial_4","Dial_4"],["Dots_0","Dots_0"],["Dots_1","Dots_1"],["Dots_2","Dots_2"],["Dots_3","Dots_3"],["Hourglass_0","Hourglass_0"],["Hourglass_1","Hourglass_1"],["Hourglass_2","Hourglass_2"],["Timer_0","Timer_0"],["Timer_1","Timer_1"],["Timer_2","Timer_2"],["Timer_3","Timer_3"],["Timer_4","Timer_4"],["Water_level_0","Water_level_0"],["Water_level_1","Water_level_1"],["Water_level_2","Water_level_2"],["Water_level_3","Water_level_3"]],type:"field_dropdown"}],output:"String",helpUrl:"",tooltip:"",message0:"%1 %2"})}},Jh={init:function(){this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<5;t++){let e=this.appendDummyInput();for(let i=0;i<5;i++)e.appendField(new mt.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.setOutput(!0),this.setColour(Th),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Create_image1)}},zh={init:function(){this.setColour(Th),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS)}},qh={init:function(){this.setColour(Th),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_AMBIENTBRIGHT),this.setInputsInline(!0),this.setOutput(!0,Number)}},Qh={init:function(){this.setColour(Th),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS+" 0.0-1.0")}},jh={init:function(){var t=[[mt.Msg.mixpy_PL_PIE_SHADOW_N,"0"],[mt.Msg.CLOCKWISE+"90"+mt.Msg.blockpy_setheading_degree,"1"],[mt.Msg.CLOCKWISE+"180"+mt.Msg.blockpy_setheading_degree,"2"],[mt.Msg.CLOCKWISE+"270"+mt.Msg.blockpy_setheading_degree,"3"]];this.setColour(Th),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_SCREEN_ROTATE).appendField(new mt.FieldDropdown(t),"OP"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Zh={init:function(){this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<12;t++){let e=this.appendDummyInput();for(let i=0;i<12;i++)e.appendField(new mt.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.setOutput(!0),this.setColour(Th),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Create_image1)}},$h={init:function(){this.setColour(Th),this.appendValueInput("data").appendField(mt.Msg.OLED_BITMAP),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.OLED_BITMAP_OR_STRING)}},tM={init:function(){this.setColour(Th),this.appendValueInput("data").appendField(mt.Msg.OLED_BITMAP),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_NUMBER),this.appendValueInput("VAR").appendField(mt.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.OLED_BITMAP_OR_STRING)}},eM={init:function(){this.setColour(Th),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.OLED_DRAWSTR),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(mt.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendDummyInput("").appendField(mt.Msg.TEXT_CENTER).appendField(new mt.FieldDropdown([[mt.Msg.MICROPYTHON_DISPLAY_YES,"True"],[mt.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"center"),this.appendValueInput("VAR").appendField(mt.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY)}},iM={init:function(){this.setColour(Th),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},nM={init:function(){this.setColour(Th),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(mt.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.appendValueInput("VAR").appendField(mt.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SCROLL_IMAGE_OR_STRING_DELAY)}},sM={init:function(){this.setColour(Th),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},oM={init:function(){this.setColour(Th),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.appendValueInput("VAR").appendField(mt.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},_M={init:function(){this.jsonInit({colour:Th,args0:[{name:"shape",options:[[mt.Msg.MPYTHON_DISPLAY_HOLLOW,"rect"],[mt.Msg.MPYTHON_DISPLAY_SOLID,"fill_rect"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"w",type:"input_value"},{name:"h",type:"input_value"},{name:"VAR",type:"input_value"}],inputsInline:!0,helpUrl:mt.Msg.mpython_HELPURL,tooltip:mt.Msg.MPYTHON_DISPLAY_SHAPE_RECT_TOOLTIP,message0:mt.Msg.ONBOARD_TFT_DISPLAY_SHAPE_RECT_MESSAGE0,nextStatement:null,previousStatement:null})}},pM={init:function(){this.jsonInit({colour:Th,args0:[{name:"dir_h_v",options:[[mt.Msg.mpython_vertical,"0"],[mt.Msg.mpython_horizontal,"1"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"length",type:"input_value"},{name:"VAR",type:"input_value"}],inputsInline:!0,helpUrl:mt.Msg.mpython_HELPURL,tooltip:mt.Msg.MPYTHON_DISPLAY_HVLINE_TOOLTIP,message0:mt.Msg.ONBOARD_TFT_DISPLAY_HVLINE_MESSAGE0,nextStatement:null,previousStatement:null})}},aM={init:function(){this.jsonInit({colour:Th,args0:[{type:"input_dummy"},{name:"x1",type:"input_value"},{name:"y1",type:"input_value"},{name:"x2",type:"input_value"},{name:"y2",type:"input_value"},{name:"VAR",type:"input_value"}],inputsInline:!0,helpUrl:mt.Msg.mpython_HELPURL,tooltip:mt.Msg.mpython_display_line_TOOLTIP,message0:mt.Msg.mpython_display_line_MESSAGE0,nextStatement:null,previousStatement:null})}},uM={init:function(){var t=[[mt.Msg.MIXLY_UP,"shift_up"],[mt.Msg.MIXLY_DOWN,"shift_down"],[mt.Msg.MIXLY_LEFT,"shift_left"],[mt.Msg.MIXLY_RIGHT,"shift_right"]];this.setColour(Th),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.appendDummyInput("").appendField(mt.Msg.DISPLAY_IMAGE_LET),this.appendDummyInput("").appendField(mt.Msg.DISPLAY_IMAGE_LET2).appendField(new mt.FieldDropdown(t),"OP"),this.appendValueInput("val").appendField(mt.Msg.DISPLAY_IMAGE_SHIFT).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.DISPLAY_IMAGE_UNIT);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP"),i=mt.Msg.DISPLAY_IMAGE_LET,n=mt.Msg.DISPLAY_IMAGE_LET2,s=mt.Msg.DISPLAY_IMAGE_LET3;return i+n+{up:mt.Msg.MIXLY_UP,down:mt.Msg.MIXLY_DOWN,left:mt.Msg.MIXLY_LEFT,right:mt.Msg.MIXLY_RIGHT}[t]+s}))}},rM={init:function(){this.setColour(Th),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendDummyInput().appendField(mt.Msg.HTML_COLOUR),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_ESP32_JS_MONITOR_BRIGHTNESS)}},lM={init:function(){this.setColour(Th),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.MIXLY_LCD_SETCOLOR).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendValueInput("VAR").appendField(mt.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL)}},dM={init:function(){this.setColour(Th),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Clear_display),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Clear_display)}},IM={init:function(){this.setColour(Th),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS)}},TM={init:function(){this.setColour(Th),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS+" 0.0-1.0")}},hM={init:function(){this.setColour(Th),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_SCREEN_FILL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},MM={init:function(){this.setColour(Th),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_INIT_CLOCK),this.appendDummyInput().appendField(mt.Msg.MIXLY_CENTER_POS),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.OLED_CIRCLE_RADIUS),this.appendValueInput("VAR").appendField(mt.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},mM={init:function(){this.setColour(Th),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.GET_RTCTIME),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},OM={init:function(){this.setColour(Th),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.SET_TIME),this.appendValueInput("h").setCheck(Number).appendField(mt.Msg.MIXLY_HOUR),this.appendValueInput("m").setCheck(Number).appendField(mt.Msg.MIXLY_MINUTE),this.appendValueInput("s").setCheck(Number).appendField(mt.Msg.MIXLY_SECOND),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},EM={init:function(){this.setColour(Th),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.DRAW_CLOCK),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},RM={init:function(){this.setColour(Th),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.CLEAR_CLOCK),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_STM32_TFT_BACKGROUND_COLOR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},cM={init:function(){this.jsonInit({colour:Th,args0:[{name:"shape",options:[[mt.Msg.MPYTHON_DISPLAY_HOLLOW,"False"],[mt.Msg.MPYTHON_DISPLAY_SOLID,"True"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"r",type:"input_value"},{name:"VAR",type:"input_value"}],inputsInline:!0,helpUrl:mt.Msg.mpython_HELPURL,message0:mt.Msg.ONBOARD_TFT_DISPLAY_SHAPE_CIRCLE_MESSAGE0,nextStatement:null,previousStatement:null})}},gM="#777777",CM={init:function(){this.setColour(gM),this.appendDummyInput("").appendField("from ").appendField(new mt.FieldTextInput("ESP32"),"path").appendField(" import ").appendField(new mt.FieldTextInput("*"),"module"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},SM={init:function(){this.setColour(gM),this.appendDummyInput("").appendField("import ").appendField(new mt.FieldTextInput("module"),"module"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},AM={init:function(){this.setColour(gM),this.appendDummyInput("").appendField(new mt.FieldTextInput("my_function"),"NAME"),this.itemCount_=1,this.arguments_=["x"],this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new mt.icons.MutatorIcon(["factory_create_with_item"],this))},mutationToDom:function(){var t=document.createElement("mutation");t.setAttribute("items",this.itemCount_);for(var e=0;ee?t[e]:'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},dm={init:function(){this.setColour(om),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(mt.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},Im={init:function(){this.setColour(om),this.appendDummyInput().appendField(mt.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},Tm={init:function(){this.setColour(om),this.appendDummyInput().appendField(mt.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},hm={init:function(){this.setColour(om),this.appendDummyInput().appendField(mt.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").setCheck(String).appendField(mt.Msg.MIXLY_EMQX_SERVER).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("USERNAME").setCheck(String).appendField(mt.Msg.MIXLY_WIFI_USERNAME).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("PASSWORD").setCheck(String).appendField(mt.Msg.MIXLY_IOT_PASSWORD).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("PROJECT").setCheck(String).appendField(mt.Msg.MIXLY_EMQX_PROJECT).setAlign(mt.inputs.Align.RIGHT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Mm={init:function(){this.setColour(om),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(mt.Msg.MIXLY_EMQX_PUBLISH_NEW).appendField(mt.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MSG").appendField(mt.Msg.HTML_BODY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_IOT_EMQX_PUBLISH_TOOLTIP)}},mm={init:function(){this.setColour(om),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(mt.Msg.MIXLY_EMQX_SUBSCRIBE+mt.Msg.MIXLY_MICROBIT_MSG).appendField(mt.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("METHOD").appendField(mt.Msg.MIXLY_EMQX_SET_METHOD),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_IOT_EMQX_SUBSCRIBE_TOOLTIP)}},Om={init:function(){this.setColour(om),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_DISCONNECT_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Em={init:function(){this.setColour(om),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(mt.Msg.MIXLY_EMQX_CONNECT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Rm={init:function(){this.setColour(om),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_CHECK_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},cm={init:function(){this.setColour(om),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROPYTHON_FORMAT).appendField(mt.Msg.MQTT_Topic),this.setInputsInline(!0),this.setOutput(!0)}},gm={init:function(){this.setColour(om),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROPYTHON_FORMAT).appendField(mt.Msg.MIXLY_EMQX_PUBLISH_MSG),this.setInputsInline(!0),this.setOutput(!0)}},Cm={init:function(){this.setColour(om),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_ESP32_IOT_MAP_FORMATING),this.setOutput(!0)}},Sm={init:function(){this.setColour(om),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_MICROPYTHON_FORMAT+"(Json)"),this.setOutput(!0)}},Am={init:function(){this.setColour(om),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(mt.Msg.MIXLY_EMQX_PING),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_IOT_EMQX_PING_TOOLTIP)}},Lm={init:function(){this.setColour(om),this.appendDummyInput().appendField("MixIO").appendField(mt.Msg.MIXLY_GET_NTP),this.appendValueInput("addr").appendField(mt.Msg.blynk_SERVER_ADD),this.setInputsInline(!0),this.setOutput(!0)}},Nm={init:function(){this.setColour(om),this.appendDummyInput().appendField(mt.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").appendField(mt.Msg.MIXLY_EMQX_SERVER).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("KEY").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+mt.Msg.MIXLY_MIXIO_SHARE_KEY).setAlign(mt.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Dm={init:function(){this.setColour(om),this.appendDummyInput().appendField(mt.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").appendField(mt.Msg.MIXLY_EMQX_SERVER).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("KEY").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"Mixly Key").setAlign(mt.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},fm={init:function(){this.VISITOR_ID=Ot.Config.BOARD.visitorId.str32.substring(0,8).toUpperCase(),this.setColour(om),this.appendDummyInput("").appendField(new mt.FieldTextInput(this.visitorId),"VISITOR_ID"),this.setOutput(!0,null)},onchange:function(){const t=this.getFieldValue("VISITOR_ID");this.VISITOR_ID!==t&&this.setFieldValue(this.VISITOR_ID,"VISITOR_ID")}},Fm={init:function(){this.setColour(om),this.appendDummyInput().appendField("MixIO").appendField(mt.Msg.MSG.catEthernet_clinet),this.setOutput(!0),this.setInputsInline(!0)}},Pm={init:function(){this.setColour(om),this.appendDummyInput().appendField("HTTP"+mt.Msg.MIXLY_Client),this.appendValueInput("addr").appendField(mt.Msg.DISPLAY_IMAGE_LET2),this.appendDummyInput().appendField(mt.Msg.MIXLY_REQUESTS_GET).appendField(mt.Msg.MIXLY_GET_CURRENT_TIME).appendField(mt.Msg.MIXLY_OPEN_DEBUG).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},vm={init:function(){this.setColour(om),this.appendDummyInput().appendField("HTTP"+mt.Msg.MIXLY_Client).appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_REQUESTS_LEN,"client_len"],[mt.Msg.MIXLY_REQUESTS_GET_LEN,"server_len"],[mt.Msg.MIXLY_REQUESTS_MESSAGE,"text"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},Ym={init:function(){this.setColour(om),this.appendDummyInput().appendField("MQTT"+mt.Msg.MIXLY_Client),this.appendValueInput("addr").appendField(mt.Msg.MIXLY_CONNECTTO),this.appendDummyInput().appendField(mt.Msg.MIXLY_INIT_SUBSCRIBE).appendField(mt.Msg.MQTT_Topic).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GET_CURRENT_TIME,""]]),"key").appendField(mt.Msg.MIXLY_OPEN_DEBUG).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"key2"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Xm={init:function(){this.setColour(om),this.appendDummyInput().appendField("MQTT"+mt.Msg.MIXLY_Client).appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_REQUESTS_LEN,"client_len"],[mt.Msg.MIXLY_REQUESTS_GET_LEN,"server_len"],[mt.Msg.MIXLY_REQUESTS_MESSAGE,"time_msg()"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},xm=_m,bm=pm,Vm=am,ym=um,Bm=lm,Gm=225,Um={init:function(){this.setColour(Gm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_NETWORK_INIT),this.appendDummyInput().appendField(mt.Msg.MIXLY_NETWORK_MODE).appendField(new mt.FieldDropdown([["STA","STA"],["AP","AP"]]),"mode"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_INIT_TOOLTIP)}},wm={init:function(){this.setColour(Gm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_NETWORK_WIFI_OPEN,"True"],[mt.Msg.MIXLY_NETWORK_WIFI_CLOSE,"False"]]),"op"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_NETWORK_WIFI_FLAG),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("op"),i=mt.Msg.MIXLY_ESP32_NETWORK_OPEN_TOOLTIP;return{True:mt.Msg.MIXLY_NETWORK_WIFI_OPEN,False:mt.Msg.MIXLY_NETWORK_WIFI_CLOSE}[e]+i}))}},km={init:function(){this.setColour(Gm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_NETWORK_WIFI_IS_ACTIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_NETWORK_WIFI_IS_ACTIVE)}},Hm={init:function(){this.setColour(Gm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_NETWORK_WIFI_SCAN),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip((function(){return mt.Msg.MIXLY_ESP32_NETWORK_SCAN_TOOLTIP+{0:"ssid",1:"bssid",2:"channel",3:"RSSI",4:"authmode",5:"hidden",all:mt.Msg.MIXLY_NETWORK_WIFI_SCAN_ATTRIBUTE}.all}))}},Wm={init:function(){this.setColour(Gm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_NETWORK_CONNECT),this.appendValueInput("id").setCheck(String).appendField(mt.Msg.HTML_NAME),this.appendValueInput("password").setCheck(String).appendField(mt.Msg.HTML_PASSWORD),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_CONNECT_TOOLTIP)}},Km={init:function(){this.setColour(Gm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_NETWORK_WIFI_CONNECT),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SYMBOL_QUESTION),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_WIFI_CONNECT_TOOLTIP)}},Jm={init:function(){this.setColour(Gm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_NETWORK_GET_WIFI),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_ESP32_NETWORK_IP,"0"],[mt.Msg.MIXLY_ESP32_NETWORK_MASK,"1"],[mt.Msg.MIXLY_ESP32_NETWORK_GATEWAY,"2"],["DNS","3"]]),"mode"),this.setOutput(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("mode");return mt.Msg.MIXLY_ESP32_NETWORK_GET_WIFI_TOOLTIP+{0:mt.Msg.MIXLY_ESP32_NETWORK_IP,1:mt.Msg.MIXLY_ESP32_NETWORK_MASK,2:mt.Msg.MIXLY_ESP32_NETWORK_GATEWAY,3:"DNS"}[e]}))}},zm={init:function(){this.setColour(Gm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_NETWORK_STOP_CONNECT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_STOP_TOOLTIP)}},qm={init:function(){this.setColour(Gm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_NETWORK_GET_WIFI),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_NETWORK_WIFI_ESSID,"essid"],[mt.Msg.MIXLY_NETWORK_WIFI_CHANNEL,"channel"]]),"op"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_GET_WIFI_TOOLTIP)}},Qm={init:function(){this.setColour(Gm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.LISTS_SET_INDEX_SET),this.appendValueInput("essid").setCheck(String).appendField(mt.Msg.MIXLY_NETWORK_WIFI_ESSID),this.appendValueInput("channel").setCheck(Number).appendField(mt.Msg.MIXLY_NETWORK_WIFI_CHANNEL),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_AP_CONNECT_TOOLTIP)}},jm={init:function(){this.setColour(Gm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_NETWORK_SERVER1),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_NETWORK_SERVER2),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_CLOSE_TOOLTIP)}},Zm={init:function(){this.setColour(Gm),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_INIT).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_TYPE).appendField(new mt.FieldDropdown([["TCP","TCP"],["UDP","UDP"]]),"mode"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("mode");return mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_INIT_TOOLTIP+{TCP:"TCP",UDP:"UDP"}[e]}))}},$m={init:function(){this.setColour(Gm),this.appendValueInput("VAR").setCheck("var").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_LET_SOCKET),this.appendValueInput("address").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_BIND_TO_ADDRESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_BIND_TOOLTIP)}},tO={init:function(){this.setColour(Gm),this.appendValueInput("VAR").setCheck("var").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_LET_SOCKET),this.appendValueInput("address").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_CONNECT_TO_ADDRESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_CONNECT_TOOLTIP)}},eO={init:function(){this.setColour(Gm),this.appendValueInput("VAR").setCheck("var"),this.appendValueInput("queue").setCheck(Number).appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_LISTEN).appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_QUEUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_LISTEN_TOOLTIP)}},iO={init:function(){this.setColour(Gm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_ACCEPT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_ACCEPT_TOOLTIP)}},nO={init:function(){this.setColour(Gm),this.appendValueInput("VAR").setCheck("var").appendField("TCP"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_RECEIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_RECEIVE_TOOLTIP)}},sO={init:function(){this.setColour(Gm),this.appendValueInput("VAR").setCheck("var").appendField("TCP"),this.appendValueInput("content").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_SEND_TOOLTIP)}},oO={init:function(){this.setColour(Gm),this.appendValueInput("VAR").setCheck("var").appendField("UDP"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_RECEIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_RECEIVE_FROM_TOOLTIP)}},_O={init:function(){this.setColour(Gm),this.appendValueInput("VAR").setCheck("var").appendField("UDP"),this.appendValueInput("content").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.appendValueInput("address").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_TO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_SEND_TO_TOOLTIP)}},pO={init:function(){this.setColour(Gm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_CLOSE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_CLOSE_TOOLTIP)}},aO={init:function(){this.setColour(Gm),this.appendValueInput("DOMAIN").appendField(mt.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(mt.Msg.blockpy_REQUESTS_GET).appendField(new mt.FieldTextInput("response"),"VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.blockpy_REQUESTS_GET_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},uO={init:function(){this.appendValueInput("VAL");var t=[[mt.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE,"status_code"],[mt.Msg.blockpy_REQUESTS_GET_ATTR_TEXT,"text"],[mt.Msg.blockpy_REQUESTS_GET_ATTR_COOKIES,"cookies"],[mt.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT,"content"]];this.setColour(Gm),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_GET).appendField(new mt.FieldDropdown(t),"ATTR"),this.setInputsInline(!0),this.setOutput(!0,String);var e=this;this.setTooltip((function(){var t=e.getFieldValue("DIR");return{clear:mt.Msg.MIXLY_TOOLTIP_TURTEL_CLEAR,reset:mt.Msg.MIXLY_TOOLTIP_TURTEL_RESET,home:mt.Msg.MIXLY_TOOLTIP_TURTEL_HOME}[t]}))}},rO={init:function(){this.appendValueInput("VAR").appendField(mt.Msg.DISPLAY_IMAGE_LET2).setCheck(String);this.setColour(Gm),this.appendDummyInput("").appendField(mt.Msg.blockpy_CONDUCT).appendField(new mt.FieldDropdown([["post","post"],["put","put"],["delete","delete"],["head","head"],["option","option"]]),"DIR"),this.appendDummyInput("").appendField(mt.Msg.blockpy_REQUESTS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{forward:mt.Msg.MIXLY_TOOLTIP_TURTEL_FORWARD,backward:mt.Msg.MIXLY_TOOLTIP_TURTEL_BACKWARD}[e]}))}},lO={init:function(){this.setColour(Gm),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GET_NTP+"(NTP)"),this.appendValueInput("data").appendField(mt.Msg.blynk_SERVER_ADD),this.setOutput(!0,"Tuple"),this.setInputsInline(!0)}},dO={init:function(){this.setColour(Gm),this.appendDummyInput("").appendField(new mt.FieldDropdown([["ntp.aliyun.com","ntp.aliyun.com"],["ntp1.aliyun.com","ntp1.aliyun.com"],["ntp2.aliyun.com","ntp2.aliyun.com"],["ntp3.aliyun.com","ntp3.aliyun.com"],["ntp4.aliyun.com","ntp4.aliyun.com"],["ntp5.aliyun.com","ntp5.aliyun.com"],["ntp6.aliyun.com","ntp6.aliyun.com"],["ntp7.aliyun.com","ntp7.aliyun.com"],["time1.cloud.tencent.com","time1.cloud.tencent.com"],["time2.cloud.tencent.com","time2.cloud.tencent.com"],["time3.cloud.tencent.com","time3.cloud.tencent.com"],["time4.cloud.tencent.com","time4.cloud.tencent.com"],["time5.cloud.tencent.com","time5.cloud.tencent.com"]]),"op"),this.setOutput(!0)}},IO=100,TO={init:function(){var t=Ot.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(IO),this.appendValueInput("I2CSUB").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(e),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},hO={init:function(){var t=Ot.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(IO),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXGO_CAR_BATTERY_LEFT),this.setOutput(!0,Number),this.setInputsInline(!0)}},MO={init:function(){var t=Ot.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(IO),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendValueInput("PIN").appendField(mt.Msg.MOTOR_DC).appendField(mt.Msg.LCD_NUMBERING),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Direction).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"CW"],[mt.Msg.ANTI_CLOCKWISE,"CCW"],[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},mO={init:function(){var t=Ot.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(IO),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendValueInput("PIN").appendField(mt.Msg.MOTOR_DC).appendField(mt.Msg.LCD_NUMBERING),this.appendDummyInput().appendField(mt.Msg.MIXLY_STEPPER_GET_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},OO={init:function(){var t=Ot.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(IO),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendValueInput("PIN").appendField("180°"+mt.Msg.MIXLY_SERVO).appendField(mt.Msg.LCD_NUMBERING),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SERVO_MOVE)}},EO={init:function(){var t=Ot.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(IO),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendValueInput("PIN").appendField("360°"+mt.Msg.MIXLY_SERVO).appendField(mt.Msg.LCD_NUMBERING),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SERVO_SPEED_TOOLIPS)}},RO={init:function(){var t=Ot.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(IO),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendValueInput("PIN").appendField("180°"+mt.Msg.MIXLY_SERVO),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setOutput(!0,Number),this.setInputsInline(!0)}},cO={init:function(){var t=Ot.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(IO),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendValueInput("PIN").appendField("360°"+mt.Msg.MIXLY_SERVO).appendField(mt.Msg.LCD_NUMBERING),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},gO="#A58C5B",CO={init:function(){this.setColour(gO),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_BUTTON).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_IS_PRESSED),this.appendValueInput("STAT").appendField(mt.Msg.MIXLY_ELECLEVEL),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_SENOR_IS_PRESSED)}},SO={init:function(){this.setColour(gO),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_BUTTON).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_WAS_PRESSED),this.appendValueInput("STAT").appendField(mt.Msg.MIXLY_ELECLEVEL),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_SENOR_WAS_PRESSED)}},AO={init:function(){this.setColour(gO),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_BUTTON).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_PRESSES),this.appendValueInput("VAR").setCheck(Number).appendField(mt.Msg.MIXLY_GET_PRESSES_TIME),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.PROCEDURES_DEFRETURN_RETURN+mt.Msg.MIXLY_BUTTON+mt.Msg.MIXLY_GET_PRESSES)}},LO={init:function(){this.setColour(gO),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_BUTTON).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_RISING,"machine.Pin.IRQ_RISING"],[mt.Msg.MIXLY_FALLING,"machine.Pin.IRQ_FALLING"],[mt.Msg.MIXLY_CHANGE,"(machine.Pin.IRQ_RISING | machine.Pin.IRQ_FALLING)"]]),"mode"),this.appendValueInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_INOUT_ATTACHINTERRUPT)}},NO={init:function(){this.setColour(gO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_shake,"shake"],[mt.Msg.MIXLY_UP,"up"],[mt.Msg.MIXLY_DOWN,"down"],[mt.Msg.MIXLY_LEFT,"left"],[mt.Msg.MIXLY_RIGHT,"right"],[mt.Msg.MIXLY_MICROBIT_face_up,"face up"],[mt.Msg.MIXLY_MICROBIT_face_down,"face down"],[mt.Msg.MIXLY_MICROBIT_freefall,"freefall"],["3g","3g"],["6g","6g"],["8g","8g"]]),"gesture"),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("gesture"),i=mt.Msg.MIXLY_MICROBIT_JS_CURRENT,n=mt.Msg.MSG.catSensor,s=mt.Msg.MIXLY_MICROBIT_JS_STATE,o=mt.Msg.MIXLY_MICROBIT_PERFORMANCE;return i+n+s+{shake:mt.Msg.MIXLY_MICROBIT_shake,up:mt.Msg.MIXLY_UP,down:mt.Msg.MIXLY_DOWN,left:mt.Msg.MIXLY_LEFT,right:mt.Msg.MIXLY_RIGHT,"face up":mt.Msg.MIXLY_MICROBIT_face_up,"face down":mt.Msg.MIXLY_MICROBIT_face_down,freefall:mt.Msg.MIXLY_MICROBIT_freefall,"3g":"3g","6g":"6g","8g":"8g"}[e]+o}))}},DO={init:function(){this.setColour(gO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_ADXL345).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION).appendField(new mt.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=mt.Msg.MIXLY_MICROBIT_Direction,s=mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION1;return i+{x:"x",y:"y",z:"z","(x,y,z)":mt.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},fO={init:function(){this.setColour(gO),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_LIGHT_LEVEL),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SENSOR_LIGHT_LEVEL_TOOLTIP)}},FO={init:function(){var t=[[mt.Msg.MIXLY_GETTEMPERATUE,"temperature"],[mt.Msg.MIXLY_GETHUMIDITY,"humidity"]];this.setColour(gO),this.appendValueInput("PIN",Number).appendField(new mt.FieldDropdown([["DHT11","DHT11"],["DHT22","DHT22"]]),"TYPE").appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(new mt.FieldDropdown(t),"WHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("WHAT");return{temperature:mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_TEM,relative_humidity:mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_HUM,tempandhum:mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_TEM_HUM}[t]}))}},PO={init:function(){this.setColour(gO),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_EXTERN_LIGHT),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_EXTERN_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.ESP32_SENSOR_NIXGO_LIGHT_TOOLTIP)}},vO={init:function(){this.setColour(gO),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_EXTERN_SOUND),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_EXTERN_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.ESP32_SENSOR_NIXGO_SOUND_TOOLTIP)}},YO={init:function(){this.setColour(gO),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new mt.FieldDropdown([[mt.Msg.TEXT_TRIM_LEFT,"left"],[mt.Msg.TEXT_TRIM_RIGHT,"right"]]),"direction").appendField(mt.Msg.MIXLY_ESP32_NEAR),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("direction"),i=mt.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP,n=mt.Msg.MIXLY_ESP32_NEAR;return i+{left:mt.Msg.TEXT_TRIM_LEFT,right:mt.Msg.TEXT_TRIM_RIGHT}[e]+n}))}},XO={init:function(){this.setColour(gO),this.appendValueInput("SUB").appendField("BMP280").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETTEMPERATUE,"get_BMP_temperature()"],[mt.Msg.MIXLY_GETPRESSURE,"get_BMP_pressure()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{"get_BMP_temperature()":mt.Msg.MIXLY_MICROBIT_SENSOR_BMP_temperature_TOOLTIP,"get_BMP_pressure()":mt.Msg.MIXLY_MICROBIT_SENSOR_BMP_press_TOOLTIP}[e]}))}},xO={init:function(){this.setColour(gO),this.appendValueInput("SUB").appendField("SHT20").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETTEMPERATUE,"get_SHT_temperature()"],[mt.Msg.MIXLY_GETHUMIDITY,"get_SHT_relative_humidity()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{"get_SHT_temperature()":mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,"get_SHT_relative_humidity()":mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},bO={init:function(){this.setColour(gO),this.appendValueInput("PIN",Number).appendField("DS18x20 "+mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GETTEMPERATUE),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_MICROBIT_SENSOR_DS18X20_TOOLTIP)}},VO={init:function(){this.setColour(gO),this.appendDummyInput("").appendField("LM35"+mt.Msg.MIXLY_TEMP),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GETTEMPERATUE),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_LM35)}},yO={init:function(){this.setColour(gO),this.appendValueInput("I2CSUB").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new mt.FieldDropdown([["MPU9250","MPU9250"],["BMP280","BMP280"],["SHT20","SHT20"],["ADXL345","ADXL345"],["LTR308","LTR308"],["LTR381RGB","LTR381RGB"],["HP203X","HP203X"],["SHTC3","SHTC3"],["AHT21","AHT21"],["VL53L0X","VL53L0X"],["QMC5883L","QMC5883L"],["MAX30102","MAX30102"],["APDS9960","APDS9960"],["RFID","RFID"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setFieldValue("LTR308","key")}},BO={init:function(){this.setColour(gO),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_MAX30102+" MAX30102"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_ESP32_MAX30102_IR,"[0]"],[mt.Msg.MIXLY_ESP32_MAX30102_RED,"[1]"],[mt.Msg.MIXLY_ESP32_MAX30102_IR+","+mt.Msg.MIXLY_ESP32_MAX30102_RED,""]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},GO={init:function(){this.setColour(gO),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_APDS9960+" APDS9960"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_ESP32_APDS9960_COLOR,"color"],[mt.Msg.MIXLY_ESP32_APDS9960_GESTURE,"gesture"],[mt.Msg.MIXLY_ESP32_APDS9960_APPROACH,"proximity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},UO={init:function(){this.setColour(gO),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_EXTERN_LIGHT+" LTR308"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_LIGHT_INTENSITY),this.setOutput(!0,Number),this.setInputsInline(!0)}},wO={init:function(){this.setColour(gO),this.appendValueInput("SUB").appendField(mt.Msg.HTML_COLOUR+mt.Msg.MSG.catSensor+" LTR381RGB").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GET+mt.Msg.HTML_COLOUR,"[2]"],[mt.Msg.MIXLY_GET+mt.Msg.MIXLY_IR_STRENGTH,"[1]"],[mt.Msg.MIXLY_GET+mt.Msg.MIXLY_LIGHT_STRENGTH,"[0]"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},kO={init:function(){this.setColour(gO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_EXTERN_LIGHTUV+" LTR390UV").setCheck("var"),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GET_ENV_LIGHT,"E"],[mt.Msg.MIXLY_GET_ULTRAVIOLET,"U"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},HO={init:function(){this.setColour(gO),this.appendDummyInput().appendField(mt.Msg.MIXLY_LASER_RANGE+" VL53L0X"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_DISTANCE+"(mm)"),this.setOutput(!0,Number),this.setInputsInline(!0)}},WO={init:function(){this.setColour(gO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_TEM_HUM+" SHTC3").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETTEMPERATUE,"temperature"],[mt.Msg.MIXLY_GETHUMIDITY,"humidity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{temperature:mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,humidity:mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},KO={init:function(){this.setColour(gO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_TEM_HUM+" AHT21").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETTEMPERATUE,"temperature"],[mt.Msg.MIXLY_GETHUMIDITY,"humidity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{temperature:mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,relative_humidity:mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},JO={init:function(){this.setColour(gO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_Altitude+mt.Msg.MSG.catSensor+" HP203X").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETPRESSURE,"pressure()"],[mt.Msg.MIXLY_GETTEMPERATUE,"temperature()"],[mt.Msg.MIXLY_GET_ALTITUDE,"altitude()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},zO={init:function(){this.setColour(gO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MIXGOPE_FIELD+mt.Msg.MSG.catSensor+" QMC5883L").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"get_bearing()"],[mt.Msg.MIXLY_TEMPERATURE,"get_temp()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},qO={init:function(){this.setColour(gO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_shake,"shake"],[mt.Msg.MIXLY_UP,"up"],[mt.Msg.MIXLY_DOWN,"down"],[mt.Msg.MIXLY_LEFT,"left"],[mt.Msg.MIXLY_RIGHT,"right"],[mt.Msg.MIXLY_MICROBIT_face_up,"face up"],[mt.Msg.MIXLY_MICROBIT_face_down,"face down"]]),"gesture"),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("gesture"),i=mt.Msg.MIXLY_MICROBIT_JS_CURRENT,n=mt.Msg.MSG.catSensor,s=mt.Msg.MIXLY_MICROBIT_JS_STATE,o=mt.Msg.MIXLY_MICROBIT_PERFORMANCE;return i+n+s+{shake:mt.Msg.MIXLY_MICROBIT_shake,up:mt.Msg.MIXLY_UP,down:mt.Msg.MIXLY_DOWN,left:mt.Msg.MIXLY_LEFT,right:mt.Msg.MIXLY_RIGHT,"face up":mt.Msg.MIXLY_MICROBIT_face_up,"face down":mt.Msg.MIXLY_MICROBIT_face_down}[e]+o}))}},QO={init:function(){this.setColour(gO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION).appendField(new mt.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=mt.Msg.MIXLY_MICROBIT_Direction,s=mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION1;return i+{x:"x",y:"y",z:"z","(x,y,z)":mt.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},jO={init:function(){this.setColour(gO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_GET+mt.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH).appendField(new mt.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=mt.Msg.MIXLY_MICROBIT_Direction,s=mt.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH;return i+{x:"x",y:"y",z:"z","(x,y,z)":mt.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},ZO={init:function(){this.setColour(gO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+mt.Msg.MIXLY_ESP32_SENOR_GYRO).appendField(new mt.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=mt.Msg.MIXLY_MICROBIT_Direction,s=mt.Msg.MIXLY_ESP32_SENOR_GYRO;return i+{x:"x",y:"y",z:"z","(x,y,z)":mt.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},$O={init:function(){this.setColour(gO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS)}},tE={init:function(){this.setColour(gO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GETTEMPERATUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_GETTEMPERATUE)}},eE={init:function(){this.setColour(gO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_GET_COMPASS).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH,"strength"],[mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"heading"]]),"compass"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("compass");return mt.Msg.MIXLY_MICROBIT_JS_GET_COMPASS+{strength:mt.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH,heading:mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE}[e]}))}},iE={init:function(){this.setColour(gO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Reset_COMPASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Reset_COMPASS)}},nE={init:function(){this.setColour(gO),this.appendValueInput("SPISUB").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new mt.FieldDropdown([["RFID","RFID"],["WS-LoRa","Weather"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setFieldValue("RFID","key")}},sE={init:function(){this.setColour(gO),this.appendDummyInput().appendField("RFID"+mt.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(mt.Msg.MIXLY_LIST_INDEX),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_RFID_READ_CARD_UID,"id"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL,"content"],[mt.Msg.MIXLY_ALL,"ALL"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},oE={init:function(){this.setColour(gO),this.appendDummyInput().appendField("RFID"+mt.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RFID_READ_CARD_UID),this.setOutput(!0,Number),this.setInputsInline(!0)}},_E={init:function(){this.setColour(gO),this.appendDummyInput().appendField("RFID"+mt.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(mt.Msg.MIXLY_LIST_INDEX),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL),this.setOutput(!0,"Tuple"),this.setInputsInline(!0)}},pE={init:function(){this.setColour(gO),this.appendDummyInput().appendField(mt.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(mt.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(mt.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},aE={init:function(){this.setColour(gO),this.appendDummyInput().appendField(mt.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(mt.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(mt.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.appendDummyInput().appendField(mt.Msg.RETURN_SUCCESS_OR_NOT),this.setInputsInline(!0),this.setOutput(!0,Boolean)}},uE={init:function(){this.setColour(gO),this.appendDummyInput().appendField("RFID"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_RFID_SCAN_OK,"0"],[mt.Msg.MIXLY_RFID_SCAN_NOTAGERR,"1"],[mt.Msg.MIXLY_RFID_SCAN_ERROR,"2"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},rE={init:function(){this.setColour(gO),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_GET).appendField(new mt.FieldDropdown([["全部(元组)","data()[0]"],["全部(json)","data()[1]"],["全部(json,附带位置信息)","data()[2]"],["编号","data()[0][0]"],["电量","data()[0][1]"],["风速","data()[0][2]"],["阵风","data()[0][3]"],["风向","data()[0][4]"],["雨量","data()[0][5]"],["温度","data()[0][6]"],["湿度","data()[0][7]"],["光照","data()[0][8]"],["紫外线","data()[0][9]"],["大气压","data()[0][10]"],["信号强度","data()[0][11]"],["信噪比","data()[0][12]"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip("返回气象数据元组 data= (设备id,电池状态,风速m/s,阵风m/s,风向°,雨量mm,温度℃,湿度%,光照Lux,UVI,大气压Pa,信号强度dB,信噪比dB)")}},lE={init:function(){this.setColour(gO),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SERIAL_AVAILABLE),this.setOutput(!0,Number),this.setInputsInline(!0)}},dE={init:function(){this.setColour(gO),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendValueInput("BASE").appendField("以主题"),this.appendDummyInput("").appendField("串口发送至MixIO"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},IE={init:function(){this.setColour(gO),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.itemCount_=2,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new mt.icons.MutatorIcon(["weather_set_label_item"],this)),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip()},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("weather_set_label_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n>6),i.push(128|63&o)):(2048<=o&&o<=55295||57344<=o&&o<=65535)&&(n+=3,i.push(224|15&o>>12),i.push(128|63&o>>6),i.push(128|63&o))}for(s=0;s>8,255&n].concat(i)}(t,!0),i="",n=0;n=0?"0x700000":["mixgo_zero"].indexOf(n)>=0?"0xE00000":"0x3A0000","32x12 Matrix"==_?(e.definitions_.import_matrix32x12="import matrix32x12",i=s+" = matrix32x12.Matrix("+o+",font_address="+p+")\n"):"16x8 Matrix"==_&&(e.definitions_.import_matrix16x8="import matrix16x8",i=s+" = matrix16x8.Matrix("+o+")\n"),i},kL=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},HL=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",space = "+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+",center = "+this.getFieldValue("center")+")\n"},WL=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},KL=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",delay = "+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},JL=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},zL=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",speed ="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+",space = "+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+")\n"},qL=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".fill(0)\n"+i+".show()\n"},QL=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("OP")+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")\n"},jL=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+"))",e.ORDER_ATOMIC]},ZL=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".pixel(int("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+"), int("+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+"), "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"+i+".show()\n"},$L=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".get_brightness()",e.ORDER_ATOMIC]},tN=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".set_brightness("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+")\n"},eN=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("image"),e.ORDER_ATOMIC]},iN=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".map_"+t.getFieldValue("OP")+"("+e.valueToCode(t,"A",e.ORDER_ATOMIC)+","+e.valueToCode(t,"B",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},nN=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".map_invert("+e.valueToCode(t,"A",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},sN=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC);return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+" = ssd1306.SSD1306_I2C("+e.valueToCode(this,"row",e.ORDER_ATOMIC)+","+e.valueToCode(this,"column",e.ORDER_ATOMIC)+","+i+")\n"},oN=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_str("+(e.valueToCode(this,"Text_line1",e.ORDER_ASSIGNMENT)||"''")+","+(e.valueToCode(this,"Text_line2",e.ORDER_ASSIGNMENT)||"''")+","+(e.valueToCode(this,"Text_line3",e.ORDER_ASSIGNMENT)||"''")+","+(e.valueToCode(this,"Text_line4",e.ORDER_ASSIGNMENT)||"''")+")\n"},_N=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_line("+e.valueToCode(this,"x1",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"y1",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"x2",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"y2",e.ORDER_ATOMIC)+", 1)\n"},pN=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),o=e.valueToCode(this,"width",e.ORDER_ATOMIC),_=e.valueToCode(this,"height",e.ORDER_ATOMIC),p="TRUE"==this.getFieldValue("fill")?"True":"False",a=this.getFieldValue("OP");switch(p){case"True":return i+".show_fill_rect("+n+", "+s+", "+o+", "+_+","+a+")\n";case"False":return i+".show_rect("+n+", "+s+", "+o+", "+_+","+a+")\n"}},aN=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),o=e.valueToCode(this,"length",e.ORDER_ATOMIC);return i+".show_"+this.getFieldValue("direction")+"("+n+", "+s+", "+o+", 1)\n"},uN=function(t,e){return["ON"==this.getFieldValue("ONOFF")?"1":"0",e.ORDER_ATOMIC]},rN=function(t,e){e.definitions_.import_matrix="import matrix";var i=t.getFieldValue("OP");return[e.valueToCode(t,"img",e.ORDER_ATOMIC)+".shift_"+i+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},lN=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return e.definitions_.import_ssd1306="import ssd1306",e.definitions_.import_machine="import machine",i+".show_fill("+this.getFieldValue("key")+")\n"},dN=function(t,e){return["matrix.Image."+this.getFieldValue("ANIMATION"),e.ORDER_ATOMIC]},IN=function(t,e){var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),o=e.valueToCode(this,"r",e.ORDER_ATOMIC),_="TRUE"==this.getFieldValue("fill")?"True":"False",p=this.getFieldValue("OP");switch(_){case"True":return i+".show_fill_circle("+n+", "+s+", "+o+", "+p+")\n";case"False":return i+".show_circle("+n+", "+s+", "+o+", "+p+")\n"}},TN=function(t,e){var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var n=e.valueToCode(this,"x0",e.ORDER_ATOMIC),s=e.valueToCode(this,"y0",e.ORDER_ATOMIC),o=e.valueToCode(this,"x1",e.ORDER_ATOMIC),_=e.valueToCode(this,"y1",e.ORDER_ATOMIC),p=e.valueToCode(this,"x2",e.ORDER_ATOMIC),a=e.valueToCode(this,"y2",e.ORDER_ATOMIC),u="TRUE"==this.getFieldValue("fill")?"True":"False",r=this.getFieldValue("OP");switch(u){case"True":return i+".show_fill_triangle("+n+", "+s+", "+o+", "+_+", "+p+", "+a+", "+r+")\n";case"False":return i+".show_triangle("+n+", "+s+", "+o+", "+_+", "+p+", "+a+", "+r+")\n"}},hN=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_bitmap("+e.valueToCode(this,"START_X",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"START_Y",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"bitmap_name",e.ORDER_ATOMIC)+","+e.valueToCode(this,"WIDTH",e.ORDER_ATOMIC)+","+e.valueToCode(this,"HEIGHT",e.ORDER_ATOMIC)+")\n"},MN=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_pixel("+e.valueToCode(this,"POS_X",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"POS_Y",e.ORDER_ATOMIC)+")\n"},mN=function(t,e){var i,n=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),s=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),o=this.getFieldValue("key");return"TM1650"==o?(e.definitions_.import_tm1650="import tm1650",i=n+" = tm1650."+o+"("+s+")\n"):"TM1637"==o&&(e.definitions_.import_tm1637="import tm1637",i=n+" = tm1637."+o+"("+s+")\n"),i},ON=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+"."+this.getFieldValue("STAT")+"()\n"},EN=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".shownum("+e.valueToCode(this,"VALUE",e.ORDER_ATOMIC)+")\n"},RN=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".showDP("+e.valueToCode(this,"NO",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"},cN=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".intensity("+e.valueToCode(this,"VALUE",e.ORDER_ATOMIC)+")\n"},gN=function(t,e){e.definitions_.import_st7789="import st7789";var i=Ot.Boards.getSelectedBoardKey().split(":")[2],n="";n=["mpython","mixgo_pe","mixgo_nova"].indexOf(i)>=0?"0x700000":["mixgo_zero"].indexOf(i)>=0?"0xE00000":"0x3A0000";var s=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),o=e.valueToCode(this,"SPISUB",e.ORDER_ATOMIC),_=e.valueToCode(this,"PINCS",e.ORDER_ATOMIC),p=e.valueToCode(this,"PINDC",e.ORDER_ATOMIC);return s+" = st7789.ST7789("+o+","+e.valueToCode(this,"WIDTH",e.ORDER_ATOMIC)+","+e.valueToCode(this,"HEIGHT",e.ORDER_ATOMIC)+",dc_pin="+p+",cs_pin="+_+",rotation="+this.getFieldValue("rotate")+",font_address="+n+")\n"},CN=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a=i+".image("+n+",x = "+s+",y = "+o+",size = "+_+",color="+p+")\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a=i+".image("+n+",x = "+s+",y = "+o+",size = "+_+",color=0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},SN=function(t,e){var i="0x"+this.getFieldValue("COLOR").slice(1);return["0x"+((16252928&i)>>8|(64512&i)>>5|(255&i)>>3).toString(16),e.ORDER_ATOMIC]},AN=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),u=this.getFieldValue("center");if("0x"==a.slice(0,2))var r=i+".shows("+n+",x = "+s+",y = "+o+",size = "+_+",space = "+p+",center = "+u+",color="+a+")\n";else{const t=a.match(/\d+/g);var l="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");r=i+".shows("+n+",x = "+s+",y = "+o+",size = "+_+",space = "+p+",center = "+u+",color=0x"+((16252928&l)>>8|(64512&l)>>5|(255&l)>>3).toString(16)+")\n"}return r},LN=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==_.slice(0,2))var p=i+".frame("+n+",size = "+s+",delay = "+o+",color="+_+")\n";else{const t=_.match(/\d+/g);var a="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");p=i+".frame("+n+",size = "+s+",delay = "+o+",color=0x"+((16252928&a)>>8|(64512&a)>>5|(255&a)>>3).toString(16)+")\n"}return p},NN=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==a.slice(0,2))var u=i+".scroll("+n+",y = "+s+",size = "+o+",speed ="+_+",space = "+p+",color="+a+")\n";else{const t=a.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u=i+".scroll("+n+",y = "+s+",size = "+o+",speed ="+_+",space = "+p+",color=0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\n"}return u},DN=function(t,e){return e.definitions_.import_st7789="import st7789",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".fill(st7789."+this.getFieldValue("key")+")\n"},fN=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"x1",e.ORDER_ATOMIC),s=e.valueToCode(this,"y1",e.ORDER_ATOMIC),o=e.valueToCode(this,"x2",e.ORDER_ATOMIC),_=e.valueToCode(this,"y2",e.ORDER_ATOMIC),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a=i+".line("+n+", "+s+", "+o+", "+_+", color="+p+")\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a=i+".line("+n+", "+s+", "+o+", "+_+", color=0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},FN=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),s=this.getFieldValue("key"),o=e.valueToCode(this,"ADDR",e.ORDER_ATOMIC);return e.definitions_.import_i2clcd="import i2clcd",i+" = i2clcd.LCD("+n+",lcd_width="+s+",i2c_addr="+o+")\n"},PN=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",column = "+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+",line = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",center = "+this.getFieldValue("center")+")\n"},vN=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".print("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",column = "+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+",line = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",delay="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},YN=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".backlight("+this.getFieldValue("key")+")\n"},XN=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".clear()\n"},xN=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),s=e.valueToCode(this,"ADDR",e.ORDER_ATOMIC),o=Ot.Boards.getSelectedBoardKey().split(":")[2],_="";return _=["mpython","mixgo_pe","mixgo_nova"].indexOf(o)>=0?"0x700000":["mixgo_zero"].indexOf(o)>=0?"0xE00000":"0x3A0000",e.definitions_.import_oled128x64="import oled128x64",i+" = oled128x64.OLED("+n+",address="+s+",font_address="+_+")\n"},bN=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".image("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},VN=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".image("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",x = "+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+",y = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",size = "+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+")\n"},yN=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},BN=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",x = "+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+",y = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",size = "+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+",space = "+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+",center = "+this.getFieldValue("center")+")\n"},GN=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},UN=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",size = "+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+",delay = "+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},wN=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},kN=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",y = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",size = "+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+",speed ="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+",space = "+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+")\n"},HN=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".fill(0)\n"+i+".show()\n"},WN=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("OP")+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")\n"},KN=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+"))",e.ORDER_ATOMIC]},JN=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".pixel(int("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+"), int("+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+"), "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"+i+".show()\n"},zN=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),o=e.valueToCode(t,"w",e.ORDER_ATOMIC),_=e.valueToCode(t,"h",e.ORDER_ATOMIC),p=t.getFieldValue("state");return i+"."+t.getFieldValue("shape")+"("+n+", "+s+", "+o+", "+_+", "+p+")\n"+i+".show()\n"},qN=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),o=e.valueToCode(t,"length",e.ORDER_ATOMIC),_=t.getFieldValue("state");return i+"."+("0"==t.getFieldValue("dir_h_v")?"v":"h")+"line("+n+", "+s+", "+o+", "+_+")\n"+i+".show()\n"},QN=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".line("+e.valueToCode(t,"x1",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"y1",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"x2",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"y2",e.ORDER_ATOMIC)+", "+t.getFieldValue("state")+")\n"+i+".show()\n"},jN=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix","onboard_matrix.shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},ZN=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),o=this.getFieldValue("center");return"mixgo_zero"==i||"mixgo_nova"==i?(e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft","onboard_tft.shows("+n+",space = "+s+",center = "+o+")\n"):(e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix","onboard_matrix.shows("+n+",space = "+s+",center = "+o+")\n")},$N=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];if("mpython"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var n="onboard_oled.frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";n="onboard_matrix.frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}return n},tD=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix","onboard_matrix.frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",delay = "+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},eD=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];if("mpython"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var n="onboard_oled.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";n="onboard_matrix.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}return n},iD=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix","onboard_matrix.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",speed ="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+",space = "+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+")\n"},nD=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix",["onboard_matrix."+t.getFieldValue("image"),e.ORDER_ATOMIC]},sD=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix",["onboard_matrix."+t.getFieldValue("image"),e.ORDER_ATOMIC]},oD=function(t,e){var i={"#000000":"0","#ff0000":"1"};function n(t){let e="";if(t.length%2==1&&(t="0"+t),t.length<8){let e=8-t.length;for(let i=1;i<=e;i++)t="0"+t}for(let i=1;i<=t.length;i++)i%2==0&&i!==t.length?e=e+t[i-1]+",0x":e+=t[i-1];return"0x"+e}let s=[];for(let e=0;e<12;e++){let o="",_=0,p=0;for(let n=0;n<32;n++)n<8?p=7-n:n<16?p=23-n:n<24?p=39-n:n<32&&(p=55-n),_+=Number(i[t.getFieldValue(e+"-"+n)])*Math.pow(2,31-p);o+=n(_.toString(16)),s.unshift(o)}let o=[];for(let t=0;t>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},VD=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=this.getFieldValue("center"),u=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==u.slice(0,2))var r="onboard_tft.shows("+n+",x = "+s+",y = "+o+",size = "+_+",space = "+p+",center = "+a+",color="+u+")\n";else{const t=u.match(/\d+/g);var l="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");r="onboard_tft.shows("+n+",x = "+s+",y = "+o+",size = "+_+",space = "+p+",center = "+a+",color=0x"+((16252928&l)>>8|(64512&l)>>5|(255&l)>>3).toString(16)+")\n"}return r},yD=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_tft","onboard_tft.frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",color=0xffff)\n"},BD=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==_.slice(0,2))var p="onboard_tft.frame("+n+",size = "+s+",delay = "+o+",color="+_+")\n";else{const t=_.match(/\d+/g);var a="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");p="onboard_tft.frame("+n+",size = "+s+",delay = "+o+",color=0x"+((16252928&a)>>8|(64512&a)>>5|(255&a)>>3).toString(16)+")\n"}return p},GD=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_tft","onboard_tft.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",color=0xffff)\n"},UD=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==a.slice(0,2))var u="onboard_tft.scroll("+n+",y = "+s+",size = "+o+",speed ="+_+",space = "+p+",color="+a+")\n";else{const t=a.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u="onboard_tft.scroll("+n+",y = "+s+",size = "+o+",speed ="+_+",space = "+p+",color=0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\n"}return u},wD=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),o=e.valueToCode(t,"w",e.ORDER_ATOMIC),_=e.valueToCode(t,"h",e.ORDER_ATOMIC),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),a=t.getFieldValue("shape");if("0x"==p.slice(0,2))var u="onboard_tft."+a+"("+n+", "+s+", "+o+", "+_+", "+p+")\nonboard_tft.show()\n";else{const t=p.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u="onboard_tft."+a+"("+n+", "+s+", "+o+", "+_+", 0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\nonboard_tft.show()\n"}return u},kD=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),o=e.valueToCode(t,"length",e.ORDER_ATOMIC),_=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),p=t.getFieldValue("dir_h_v");if("0x"==_.slice(0,2))var a="onboard_tft."+("0"==p?"v":"h")+"line("+n+", "+s+", "+o+", "+_+")\nonboard_tft.show()\n";else{const t=_.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a="onboard_tft."+("0"==p?"v":"h")+"line("+n+", "+s+", "+o+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\nonboard_tft.show()\n"}return a},HD=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x1",e.ORDER_ATOMIC),s=e.valueToCode(t,"y1",e.ORDER_ATOMIC),o=e.valueToCode(t,"x2",e.ORDER_ATOMIC),_=e.valueToCode(t,"y2",e.ORDER_ATOMIC),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a="onboard_tft.line("+n+", "+s+", "+o+", "+_+", "+p+")\nonboard_tft.show()\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a="onboard_tft.line("+n+", "+s+", "+o+", "+_+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\nonboard_tft.show()\n"}return a},WD=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";return"onboard_tft.fill(0)\nonboard_tft.show()\n"},KD=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft","onboard_tft."+t.getFieldValue("OP")+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")\n"},JD=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft",["hex(onboard_tft.pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+")))",e.ORDER_ATOMIC]},zD=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==o.slice(0,2))var _="onboard_tft.pixel(int("+n+"), int("+s+"), "+o+")\nonboard_tft.show()\n";else{const t=o.match(/\d+/g);var p="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");_="onboard_tft.pixel(int("+n+"), int("+s+"), 0x"+((16252928&p)>>8|(64512&p)>>5|(255&p)>>3).toString(16)+")\nonboard_tft.show()\n"}return _},qD=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";return["onboard_tft.get_brightness()",e.ORDER_ATOMIC]},QD=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft","onboard_tft.set_brightness("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+")\n"},jD=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"VAR",e.ORDER_ASSIGNMENT);if("0x"==n.slice(0,2))var s="onboard_tft.fill("+n+")\nonboard_tft.show()\n";else{const t=n.match(/\d+/g);var o="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");s="onboard_tft.fill(0x"+((16252928&o)>>8|(64512&o)>>5|(255&o)>>3).toString(16)+")\nonboard_tft.show()\n"}return s},ZD=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock";var n=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a=_+"=Clock("+n+","+s+","+o+","+p+")\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a=_+"=Clock("+n+","+s+","+o+",0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},$D=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".set_rtctime()\n"},tf=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".set_time("+e.valueToCode(this,"h",e.ORDER_ASSIGNMENT)+","+e.valueToCode(this,"m",e.ORDER_ASSIGNMENT)+","+e.valueToCode(this,"s",e.ORDER_ASSIGNMENT)+")\n"},ef=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".draw_clock()\n"},nf=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock";var n=e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==s.slice(0,2))var o=n+".clear("+s+")\n";else{const t=s.match(/\d+/g);var _="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");o=n+".clear(0x"+((16252928&_)>>8|(64512&_)>>5|(255&_)>>3).toString(16)+")\n"}return o},sf=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),o=e.valueToCode(t,"r",e.ORDER_ATOMIC),_=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),p=t.getFieldValue("shape");if("0x"==_.slice(0,2))var a="onboard_tft.ellipse("+n+", "+s+", "+o+", "+o+", "+_+","+p+")\nonboard_tft.show()\n";else{const t=_.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a="onboard_tft.ellipse("+n+", "+s+", "+o+", "+o+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+","+p+")\nonboard_tft.show()\n"}return a},of=function(t,e){var i=this.getFieldValue("path"),n=this.getFieldValue("module");return e.definitions_["import_"+i+"_"+n]="from "+i+" import "+n,""},_f=function(t,e){var i=this.getFieldValue("module");return e.definitions_["import_"+i]="import "+i,""},pf=function(t,e){for(var i=this.getFieldValue("NAME"),n=new Array(this.itemCount_),s=0;s {\n"+e.statementToCode(this,"do")+"})\n"},nX=function(){return"control.reset()\n"},sX=function(t,e){return"control.waitMicros("+(e.valueToCode(this,"data",e.ORDER_ATOMIC)||Ot.Profile.default.serial)+")\n"},oX=function(t,e){return"control.raiseEvent("+(e.valueToCode(this,"system_event_bus_source",e.ORDER_ATOMIC)||Ot.Profile.default.serial)+", "+(e.valueToCode(this,"system_event_bus_value",e.ORDER_ATOMIC)||Ot.Profile.default.serial)+")\n"},_X=function(t,e){return"control.onEvent("+(e.valueToCode(this,"system_event_bus_source",e.ORDER_ATOMIC)||Ot.Profile.default.serial)+", "+(e.valueToCode(this,"system_event_bus_value",e.ORDER_ATOMIC)||Ot.Profile.default.serial)+", () => {\n"+e.statementToCode(this,"do")+")\n"},pX=function(t,e){return["control.eventTimestamp()",e.ORDER_ATOMIC]},aX=function(t,e){return["control.eventValue()",e.ORDER_ATOMIC]},uX=function(t,e){return[this.getFieldValue("key"),e.ORDER_ATOMIC]},rX=function(t,e){return[this.getFieldValue("key"),e.ORDER_ATOMIC]},lX=function(t,e){return["control.deviceName()",e.ORDER_ATOMIC]},dX=function(t,e){return["control.deviceSerialNumber()",e.ORDER_ATOMIC]},IX=function(t,e){return"panic("+(e.valueToCode(this,"STATUS_CODE",e.ORDER_ATOMIC)||"1000")+")\n"},TX=function(t,e){switch(e.definitions_.import_time="import time",this.getFieldValue("Time")){case"ms":return["time.ticks_ms()",e.ORDER_ATOMIC];case"us":return["time.ticks_us()",e.ORDER_ATOMIC]}},hX=function(){return"while True:\n pass\n"},MX=function(t,e){return e.definitions_.import_mixgo="import mixgo","reset()\n"},mX=function(t,e){return e.definitions_.import_os="import os","os.uname()"},OX=function(t,e){e.definitions_.import_time="import time";var i=e.valueToCode(this,"DELAY_TIME",e.ORDER_ATOMIC)||"1000";switch(this.getFieldValue("Time")){case"s":return"time.sleep("+i+")\n";case"ms":return"time.sleep_ms("+i+")\n";case"us":return"time.sleep_us("+i+")\n"}},EX=function(t,e){e.definitions_.import_time="import time";var i=e.valueToCode(this,"DELAY_TIME",e.ORDER_ATOMIC)||"1000";switch(this.getFieldValue("Time")){case"s":return"time.sleep("+i+")\n";case"ms":return"time.sleep_ms("+i+")\n";case"us":return"time.sleep_us("+i+")\n"}},RX=function(t,e){return e.definitions_.import_mixgo="import mixgo",(e.valueToCode(this,"VAR",e.ORDER_NONE)||"None")+".init(period = "+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+", mode = Timer."+(e.valueToCode(this,"mode",e.ORDER_NONE)||"None")+", callback = "+(e.valueToCode(this,"callback",e.ORDER_NONE)||"None")+")\n"},cX=function(t,e){return e.definitions_.import_machine="import machine",(e.valueToCode(this,"VAR",e.ORDER_NONE)||"None")+".init(period = "+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+", mode = machine.Timer."+this.getFieldValue("mode")+", callback = "+(e.valueToCode(this,"callback",e.ORDER_NONE)||"None")+")\n"},gX=function(t,e){return e.definitions_.import_time="import time",["time.ticks_diff("+(e.valueToCode(this,"END",e.ORDER_NONE)||"0")+", "+(e.valueToCode(this,"START",e.ORDER_NONE)||"0")+")",e.ORDER_ATOMIC]},CX=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return e.definitions_.import_machine="import machine",i+" = machine.Timer(0)\n"},SX=function(t,e){return e.definitions_.import_machine="import machine","wdt = machine.WDT(timeout= "+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+")\n"},AX=function(t,e){e.definitions_.import_machine="import machine";return"wdt.feed()\n"},LX=function(t,e){e.definitions_.import_machine="import machine";return"machine.reset()\n"},NX=function(t,e){e.definitions_.import_bitbot_onboard_bot51="from bitbot import onboard_bot51";return"onboard_bot51.shutdown()\n"},DX=CX,fX=cX,FX=gX,PX=OX,vX=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api."+this.getFieldValue("mode")+"("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+","+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},YX=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api."+this.getFieldValue("mode")+"("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+","+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+","+e.valueToCode(this,"day",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},XX=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api.weather_hourly("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+","+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+","+e.valueToCode(this,"hour",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},xX={};xX["MixGo CE"]={description:"MicroPython[ESP32C3 MixGo CE]",digital_pin:Ot.Profile.generate(["0-18","21-46"]),input_pin:Ot.Profile.generate(["0-18","21-46"]),output_pin:Ot.Profile.generate(["0-18","21-45"]),pwm_input:Ot.Profile.generate(["0-18","21-46"],"pwm","pwm"),analog_input:Ot.Profile.generate(["0-18","21-46"],"adc","adc"),pwm_output:Ot.Profile.generate(["0-18","21-45"],"pwm","pwm"),analog_output:Ot.Profile.generate(["0-18","21-45"],"adc","adc"),espnow_channel:Ot.Profile.generate(["1-13"]),haskylens_model:Ot.Profile.generate(["0-4"]),digital:Ot.Profile.generate(["0-18","21-45"],"pin","pin"),pwm_pin:Ot.Profile.generate(["0-18","21-45"]),pwm:Ot.Profile.generate(["0-18","21-45"],"pwm","pwm"),analog_pin:Ot.Profile.generate(["1-18"]),analog:Ot.Profile.generate(["1-18"],"adc","adc"),dac_pin:Ot.Profile.generate(["17-18"]),dac:Ot.Profile.generate(["17-18"],"dac","dac"),touch:Ot.Profile.generate(["1-14"],"tc","tc"),touch_pin:Ot.Profile.generate(["1-14"]),button:[["B1","B1key"],["B2","B2key"],["A1","A1key"],["A2","A2key"],["A3","A3key"],["A4","A4key"]],buttonB:[["B1","B1key"],["B2","B2key"]],axis:Ot.Profile.generate(["0-4"]),exlcdh:Ot.Profile.generate(["0-15"]),exlcdv:Ot.Profile.generate(["0-7"]),brightness:Ot.Profile.generate(["0-9"]),tts_voice:Ot.Profile.generate(["0-16"]),tts_builtin_music:Ot.Profile.generate(["0-47"]),tts_bgmusic:Ot.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["SILLY","onboard_matrix.SILLY"],["FABULOUS","onboard_matrix.FABULOUS"],["SURPRISED","onboard_matrix.SURPRISED"],["ASLEEP","onboard_matrix.ASLEEP"],["ANGRY","onboard_matrix.ANGRY"],["CONFUSED","onboard_matrix.CONFUSED"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"],["LEFT_ARROW","onboard_matrix.LEFT_ARROW"],["RIGHT_ARROW","onboard_matrix.RIGHT_ARROW"],["DRESS","onboard_matrix.DRESS"],["TRANSFORMERS","onboard_matrix.TRANSFORMERS"],["SCISSORS","onboard_matrix.SCISSORS"],["EXIT","onboard_matrix.EXIT"],["TREE","onboard_matrix.TREE"],["PACMAN","onboard_matrix.PACMAN"],["TARGET","onboard_matrix.TARGET"],["TSHIRT","onboard_matrix.TSHIRT"],["ROLLERSKATE","onboard_matrix.ROLLERSKATE"],["DUCK","onboard_matrix.DUCK"],["HOUSE","onboard_matrix.HOUSE"],["TORTOISE","onboard_matrix.TORTOISE"],["BUTTERFLY","onboard_matrix.BUTTERFLY"],["STICKFIGURE","onboard_matrix.STICKFIGURE"],["GHOST","onboard_matrix.GHOST"],["PITCHFORK","onboard_matrix.PITCHFORK"],["MUSIC_QUAVERS","onboard_matrix.MUSIC_QUAVERS"],["MUSIC_QUAVER","onboard_matrix.MUSIC_QUAVER"],["MUSIC_CROTCHET","onboard_matrix.MUSIC_CROTCHET"],["COW","onboard_matrix.COW"],["RABBIT","onboard_matrix.RABBIT"],["SQUARE_SMALL","onboard_matrix.SQUARE_SMALL"],["SQUARE","onboard_matrix.SQUARE"],["DIAMOND_SMALL","onboard_matrix.DIAMOND_SMALL"],["DIAMOND","onboard_matrix.DIAMOND"],["CHESSBOARD","onboard_matrix.CHESSBOARD"],["TRIANGLE_LEFT","onboard_matrix.TRIANGLE_LEFT"],["TRIANGLE","onboard_matrix.TRIANGLE"],["SNAKE","onboard_matrix.SNAKE"],["UMBRELLA","onboard_matrix.UMBRELLA"],["SKULL","onboard_matrix.SKULL"],["GIRAFFE","onboard_matrix.GIRAFFE"],["SWORD","onboard_matrix.SWORD"]],builtinimg_extern:[["HEART","matrix32x12.Matrix.HEART"],["HEART_SMALL","matrix32x12.Matrix.HEART_SMALL"],["HAPPY","matrix32x12.Matrix.HAPPY"],["SAD","matrix32x12.Matrix.SAD"],["SMILE","matrix32x12.Matrix.SMILE"],["SILLY","matrix32x12.Matrix.SILLY"],["FABULOUS","matrix32x12.Matrix.FABULOUS"],["SURPRISED","matrix32x12.Matrix.SURPRISED"],["ASLEEP","matrix32x12.Matrix.ASLEEP"],["ANGRY","matrix32x12.Matrix.ANGRY"],["CONFUSED","matrix32x12.Matrix.CONFUSED"],["NO","matrix32x12.Matrix.NO"],["YES","matrix32x12.Matrix.YES"],["LEFT_ARROW","matrix32x12.Matrix.LEFT_ARROW"],["RIGHT_ARROW","matrix32x12.Matrix.RIGHT_ARROW"],["DRESS","matrix32x12.Matrix.DRESS"],["TRANSFORMERS","matrix32x12.Matrix.TRANSFORMERS"],["SCISSORS","matrix32x12.Matrix.SCISSORS"],["EXIT","matrix32x12.Matrix.EXIT"],["TREE","matrix32x12.Matrix.TREE"],["PACMAN","matrix32x12.Matrix.PACMAN"],["TARGET","matrix32x12.Matrix.TARGET"],["TSHIRT","matrix32x12.Matrix.TSHIRT"],["ROLLERSKATE","matrix32x12.Matrix.ROLLERSKATE"],["DUCK","matrix32x12.Matrix.DUCK"],["HOUSE","matrix32x12.Matrix.HOUSE"],["TORTOISE","matrix32x12.Matrix.TORTOISE"],["BUTTERFLY","matrix32x12.Matrix.BUTTERFLY"],["STICKFIGURE","matrix32x12.Matrix.STICKFIGURE"],["GHOST","matrix32x12.Matrix.GHOST"],["PITCHFORK","matrix32x12.Matrix.PITCHFORK"],["onboard_music_QUAVERS","matrix32x12.Matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","matrix32x12.Matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","matrix32x12.Matrix.onboard_music_CROTCHET"],["COW","matrix32x12.Matrix.COW"],["RABBIT","matrix32x12.Matrix.RABBIT"],["SQUARE_SMALL","matrix32x12.Matrix.SQUARE_SMALL"],["SQUARE","matrix32x12.Matrix.SQUARE"],["DIAMOND_SMALL","matrix32x12.Matrix.DIAMOND_SMALL"],["DIAMOND","matrix32x12.Matrix.DIAMOND"],["CHESSBOARD","matrix32x12.Matrix.CHESSBOARD"],["TRIANGLE_LEFT","matrix32x12.Matrix.TRIANGLE_LEFT"],["TRIANGLE","matrix32x12.Matrix.TRIANGLE"],["SNAKE","matrix32x12.Matrix.SNAKE"],["UMBRELLA","matrix32x12.Matrix.UMBRELLA"],["SKULL","matrix32x12.Matrix.SKULL"],["GIRAFFE","matrix32x12.Matrix.GIRAFFE"],["SWORD","matrix32x12.Matrix.SWORD"]],imglist:[["ALL_CLOCKS","matrix.Image.ALL_CLOCKS"],["ALL_ARROWS","matrix.Image.ALL_ARROWS"]],playlist:[["DADADADUM","onboard_music.DADADADUM"],["ENTERTAINER","onboard_music.ENTERTAINER"],["PRELUDE","onboard_music.PRELUDE"],["ODE","onboard_music.ODE"],["NYAN","onboard_music.NYAN"],["RINGTONE","onboard_music.RINGTONE"],["FUNK","onboard_music.FUNK"],["BLUES","onboard_music.BLUES"],["BIRTHDAY","onboard_music.BIRTHDAY"],["WEDDING","onboard_music.WEDDING"],["FUNERAL","onboard_music.FUNERAL"],["PUNCHLINE","onboard_music.PUNCHLINE"],["PYTHON","onboard_music.PYTHON"],["BADDY","onboard_music.BADDY"],["CHASE","onboard_music.CHASE"],["BA_DING","onboard_music.BA_DING"],["WAWAWAWAA","onboard_music.WAWAWAWAA"],["JUMP_UP","onboard_music.JUMP_UP"],["JUMP_DOWN","onboard_music.JUMP_DOWN"],["POWER_UP","onboard_music.POWER_UP"],["POWER_DOWN","onboard_music.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],tone_notes:[["NOTE_C3","131"],["NOTE_D3","147"],["NOTE_E3","165"],["NOTE_F3","175"],["NOTE_G3","196"],["NOTE_A3","220"],["NOTE_B3","247"],["NOTE_C4","262"],["NOTE_D4","294"],["NOTE_E4","330"],["NOTE_F4","349"],["NOTE_G4","392"],["NOTE_A4","440"],["NOTE_B4","494"],["NOTE_C5","523"],["NOTE_D5","587"],["NOTE_E5","659"],["NOTE_F5","698"],["NOTE_G5","784"],["NOTE_A5","880"],["NOTE_B5","988"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"]]},xX["ESP32S2 Generic"]={description:"MicroPython[ESP32C3 MixGo CC]",digital_pin:Ot.Profile.generate(["0-42","45"]),input_pin:Ot.Profile.generate(["0-42","45-46"]),output_pin:Ot.Profile.generate(["0-42","45"]),pwm_input:Ot.Profile.generate(["0-42","45-46"],"pwm","pwm"),analog_input:Ot.Profile.generate(["0-18","21-46"],"adc","adc"),pwm_output:Ot.Profile.generate(["0-42","45"],"pwm","pwm"),analog_output:Ot.Profile.generate(["0-42","45"],"adc","adc"),espnow_channel:Ot.Profile.generate(["1-13"]),haskylens_model:Ot.Profile.generate(["0-4"]),digital:Ot.Profile.generate(["0-42","45"],"pin","pin"),pwm_pin:Ot.Profile.generate(["0-42","45"]),pwm:Ot.Profile.generate(["0-42","45"],"pwm","pwm"),analog_pin:Ot.Profile.generate(["1-20"]),analog:Ot.Profile.generate(["1-20"],"adc","adc"),dac_pin:Ot.Profile.generate(["17-18"]),dac:Ot.Profile.generate(["17-18"],"dac","dac"),touch:Ot.Profile.generate(["1-14"],"tc","tc"),touch_pin:Ot.Profile.generate(["1-14"]),button:[["B1","B1key"],["B2","B2key"],["A1","A1key"],["A2","A2key"],["A3","A3key"],["A4","A4key"]],buttonB:[["B1","B1key"],["B2","B2key"]],axis:Ot.Profile.generate(["0-4"]),exlcdh:Ot.Profile.generate(["0-15"]),exlcdv:Ot.Profile.generate(["0-7"]),brightness:Ot.Profile.generate(["0-9"]),tts_voice:Ot.Profile.generate(["0-16"]),tts_builtin_music:Ot.Profile.generate(["0-47"]),tts_bgmusic:Ot.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["SILLY","onboard_matrix.SILLY"],["FABULOUS","onboard_matrix.FABULOUS"],["SURPRISED","onboard_matrix.SURPRISED"],["ASLEEP","onboard_matrix.ASLEEP"],["ANGRY","onboard_matrix.ANGRY"],["CONFUSED","onboard_matrix.CONFUSED"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"],["LEFT_ARROW","onboard_matrix.LEFT_ARROW"],["RIGHT_ARROW","onboard_matrix.RIGHT_ARROW"],["DRESS","onboard_matrix.DRESS"],["TRANSFORMERS","onboard_matrix.TRANSFORMERS"],["SCISSORS","onboard_matrix.SCISSORS"],["EXIT","onboard_matrix.EXIT"],["TREE","onboard_matrix.TREE"],["PACMAN","onboard_matrix.PACMAN"],["TARGET","onboard_matrix.TARGET"],["TSHIRT","onboard_matrix.TSHIRT"],["ROLLERSKATE","onboard_matrix.ROLLERSKATE"],["DUCK","onboard_matrix.DUCK"],["HOUSE","onboard_matrix.HOUSE"],["TORTOISE","onboard_matrix.TORTOISE"],["BUTTERFLY","onboard_matrix.BUTTERFLY"],["STICKFIGURE","onboard_matrix.STICKFIGURE"],["GHOST","onboard_matrix.GHOST"],["PITCHFORK","onboard_matrix.PITCHFORK"],["MUSIC_QUAVERS","onboard_matrix.MUSIC_QUAVERS"],["MUSIC_QUAVER","onboard_matrix.MUSIC_QUAVER"],["MUSIC_CROTCHET","onboard_matrix.MUSIC_CROTCHET"],["COW","onboard_matrix.COW"],["RABBIT","onboard_matrix.RABBIT"],["SQUARE_SMALL","onboard_matrix.SQUARE_SMALL"],["SQUARE","onboard_matrix.SQUARE"],["DIAMOND_SMALL","onboard_matrix.DIAMOND_SMALL"],["DIAMOND","onboard_matrix.DIAMOND"],["CHESSBOARD","onboard_matrix.CHESSBOARD"],["TRIANGLE_LEFT","onboard_matrix.TRIANGLE_LEFT"],["TRIANGLE","onboard_matrix.TRIANGLE"],["SNAKE","onboard_matrix.SNAKE"],["UMBRELLA","onboard_matrix.UMBRELLA"],["SKULL","onboard_matrix.SKULL"],["GIRAFFE","onboard_matrix.GIRAFFE"],["SWORD","onboard_matrix.SWORD"]],builtinimg_extern:[["HEART","matrix32x12.Matrix.HEART"],["HEART_SMALL","matrix32x12.Matrix.HEART_SMALL"],["HAPPY","matrix32x12.Matrix.HAPPY"],["SAD","matrix32x12.Matrix.SAD"],["SMILE","matrix32x12.Matrix.SMILE"],["SILLY","matrix32x12.Matrix.SILLY"],["FABULOUS","matrix32x12.Matrix.FABULOUS"],["SURPRISED","matrix32x12.Matrix.SURPRISED"],["ASLEEP","matrix32x12.Matrix.ASLEEP"],["ANGRY","matrix32x12.Matrix.ANGRY"],["CONFUSED","matrix32x12.Matrix.CONFUSED"],["NO","matrix32x12.Matrix.NO"],["YES","matrix32x12.Matrix.YES"],["LEFT_ARROW","matrix32x12.Matrix.LEFT_ARROW"],["RIGHT_ARROW","matrix32x12.Matrix.RIGHT_ARROW"],["DRESS","matrix32x12.Matrix.DRESS"],["TRANSFORMERS","matrix32x12.Matrix.TRANSFORMERS"],["SCISSORS","matrix32x12.Matrix.SCISSORS"],["EXIT","matrix32x12.Matrix.EXIT"],["TREE","matrix32x12.Matrix.TREE"],["PACMAN","matrix32x12.Matrix.PACMAN"],["TARGET","matrix32x12.Matrix.TARGET"],["TSHIRT","matrix32x12.Matrix.TSHIRT"],["ROLLERSKATE","matrix32x12.Matrix.ROLLERSKATE"],["DUCK","matrix32x12.Matrix.DUCK"],["HOUSE","matrix32x12.Matrix.HOUSE"],["TORTOISE","matrix32x12.Matrix.TORTOISE"],["BUTTERFLY","matrix32x12.Matrix.BUTTERFLY"],["STICKFIGURE","matrix32x12.Matrix.STICKFIGURE"],["GHOST","matrix32x12.Matrix.GHOST"],["PITCHFORK","matrix32x12.Matrix.PITCHFORK"],["onboard_music_QUAVERS","matrix32x12.Matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","matrix32x12.Matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","matrix32x12.Matrix.onboard_music_CROTCHET"],["COW","matrix32x12.Matrix.COW"],["RABBIT","matrix32x12.Matrix.RABBIT"],["SQUARE_SMALL","matrix32x12.Matrix.SQUARE_SMALL"],["SQUARE","matrix32x12.Matrix.SQUARE"],["DIAMOND_SMALL","matrix32x12.Matrix.DIAMOND_SMALL"],["DIAMOND","matrix32x12.Matrix.DIAMOND"],["CHESSBOARD","matrix32x12.Matrix.CHESSBOARD"],["TRIANGLE_LEFT","matrix32x12.Matrix.TRIANGLE_LEFT"],["TRIANGLE","matrix32x12.Matrix.TRIANGLE"],["SNAKE","matrix32x12.Matrix.SNAKE"],["UMBRELLA","matrix32x12.Matrix.UMBRELLA"],["SKULL","matrix32x12.Matrix.SKULL"],["GIRAFFE","matrix32x12.Matrix.GIRAFFE"],["SWORD","matrix32x12.Matrix.SWORD"]],imglist:[["ALL_CLOCKS","matrix.Image.ALL_CLOCKS"],["ALL_ARROWS","matrix.Image.ALL_ARROWS"]],playlist:[["DADADADUM","onboard_music.DADADADUM"],["ENTERTAINER","onboard_music.ENTERTAINER"],["PRELUDE","onboard_music.PRELUDE"],["ODE","onboard_music.ODE"],["NYAN","onboard_music.NYAN"],["RINGTONE","onboard_music.RINGTONE"],["FUNK","onboard_music.FUNK"],["BLUES","onboard_music.BLUES"],["BIRTHDAY","onboard_music.BIRTHDAY"],["WEDDING","onboard_music.WEDDING"],["FUNERAL","onboard_music.FUNERAL"],["PUNCHLINE","onboard_music.PUNCHLINE"],["PYTHON","onboard_music.PYTHON"],["BADDY","onboard_music.BADDY"],["CHASE","onboard_music.CHASE"],["BA_DING","onboard_music.BA_DING"],["WAWAWAWAA","onboard_music.WAWAWAWAA"],["JUMP_UP","onboard_music.JUMP_UP"],["JUMP_DOWN","onboard_music.JUMP_DOWN"],["POWER_UP","onboard_music.POWER_UP"],["POWER_DOWN","onboard_music.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],tone_notes:[["NOTE_C3","131"],["NOTE_D3","147"],["NOTE_E3","165"],["NOTE_F3","175"],["NOTE_G3","196"],["NOTE_A3","220"],["NOTE_B3","247"],["NOTE_C4","262"],["NOTE_D4","294"],["NOTE_E4","330"],["NOTE_F4","349"],["NOTE_G4","392"],["NOTE_A4","440"],["NOTE_B4","494"],["NOTE_C5","523"],["NOTE_D5","587"],["NOTE_E5","659"],["NOTE_F5","698"],["NOTE_G5","784"],["NOTE_A5","880"],["NOTE_B5","988"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"]]};const bX=xX,VX=20,yX={init:function(){this.setColour(VX),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_HIGH,"HIGH"],[mt.Msg.MIXLY_LOW,"LOW"]]),"BOOL"),this.setOutput(!0,Boolean),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_HIGHLOW_TOOLTIP)}},BX={init:function(){this.setColour(VX),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_Digital_PINMODEOUT).setCheck(Number),this.appendValueInput("STAT").appendField(mt.Msg.MIXLY_STAT).setCheck([Number,Boolean]),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_DIGITAL_WRITE_TOOLTIP)}},GX={init:function(){this.setColour(VX),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(mt.Msg.MIXLY_Digital_PINMODEIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_MACHINE_VALUE),this.setInputsInline(!0),this.setOutput(!0,[Boolean,Number]),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_DIGITAL_READ_TOOLTIP)}},UX={init:function(){this.setColour(VX),this.appendValueInput("PIN",Number).appendField("PWM"+mt.Msg.MIXLY_Analog_PINMODEOUT).setCheck(Number),this.appendValueInput("NUM",Number).appendField(mt.Msg.MIXLY_VALUE2).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_PWM_ANALOG_WRITE_TOOLTIP)}},wX={init:function(){this.setColour(VX),this.appendValueInput("PIN",Number).appendField("DAC"+mt.Msg.MIXLY_Analog_PINMODEOUT).setCheck(Number),this.appendValueInput("NUM",Number).appendField(mt.Msg.MIXLY_VALUE2).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_ANALOG_WRITE_TOOLTIP)}},kX={init:function(){this.setColour(VX),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_Analog_PINMODEOUT).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_PERIOD_MIL).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_mSecond,"period"],[mt.Msg.MIXLY_uSecond,"period_microseconds"]]),"key"),this.appendValueInput("NUM",Number).appendField(mt.Msg.MIXLY_STAT).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_ANALOG_WRITE_SET_TOOLTIP)}},HX={init:function(){this.setColour(VX),this.appendValueInput("PIN",Number).appendField("PWM"+mt.Msg.MIXLY_Analog_PINMODEOUT).setCheck(Number),this.appendValueInput("NUM",Number).appendField(mt.Msg.MIXLY_FREQUENCY+mt.Msg.MIXLY_STAT).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_PWM_ANALOG_WRITE_SET_FREQ_TOOLTIP)}},WX={init:function(){this.setColour(VX),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(mt.Msg.MIXLY_Analog_PINMODEIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_MACHINE_VALUE),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_ANALOG_READ_TOOLTIP)}},KX={init:function(){this.setColour(VX),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_Analog_PINMODEIN).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_REF_VOLTAGE+mt.Msg.MIXLY_STAT).appendField(new mt.FieldDropdown([["3.3V","machine.ADC.ATTN_11DB"],["2.2V","machine.ADC.ATTN_6DB"],["1.5V","machine.ADC.ATTN_2_5DB"],["1.2V","machine.ADC.ATTN_0DB"]]),"atten"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_ANALOG_ATTEN_TOOLTIP)}},JX={init:function(){this.setColour(VX),this.appendValueInput("pin").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(mt.Msg.MIXLY_ESP32_TOUCH_SENSOR),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_MACHINE_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_PIN_PRESSED_TOOLTIP)}},zX={init:function(){this.setColour(20),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_ATTACHINTERRUPT_PIN).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_RISING,"machine.Pin.IRQ_RISING"],[mt.Msg.MIXLY_FALLING,"machine.Pin.IRQ_FALLING"],[mt.Msg.MIXLY_CHANGE,"(machine.Pin.IRQ_RISING | machine.Pin.IRQ_FALLING)"]]),"mode"),this.appendValueInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_PIN_ATTACHINTERRUPT_TOOLTIP)}},qX={init:function(){this.setColour(20),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETUP).appendField(new mt.FieldTextInput("pin#"),"PIN_OBJ"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROPYTHON_AS).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_Digital_PINMODEOUT,"machine.Pin.OUT"],[mt.Msg.MIXLY_Digital_PINMODEIN,"machine.Pin.IN"],[mt.Msg.MIXLY_PINMODEPULLUP,"machine.Pin.IN, machine.Pin.PULL_UP"],[mt.Msg.MIXLY_PINMODEPULLDOWN,"machine.Pin.IN, machine.Pin.PULL_DOWN"]]),"MODE"),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_DIGITAL_INIT_TOOLTIP)},getVars:function(){return["pin#"==this.getFieldValue("PIN_OBJ")?null:this.getFieldValue("PIN_OBJ")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("PIN_OBJ"))&&this.setTitleValue(e,"PIN_OBJ")}},QX={init:function(){this.setColour(VX),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP).appendField(new mt.FieldTextInput("pwm#"),"PIN_OBJ").appendField(mt.Msg.MIXLY_MICROPYTHON_AS),this.appendDummyInput("").appendField("PWM"+mt.Msg.MIXLY_Analog_PINMODEOUT),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_PWM_ANALOG_WRITE_INIT_TOOLTIP)},getVars:function(){return["pwm#"==this.getFieldValue("PIN_OBJ")?null:this.getFieldValue("PIN_OBJ")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("PIN_OBJ"))&&this.setTitleValue(e,"PIN_OBJ")}},jX={init:function(){this.setColour(VX),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP).appendField(new mt.FieldTextInput("dac#"),"PIN_OBJ").appendField(mt.Msg.MIXLY_MICROPYTHON_AS),this.appendDummyInput("").appendField("DAC"+mt.Msg.MIXLY_Analog_PINMODEOUT),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_ANALOG_WRITE_INIT_TOOLTIP)},getVars:function(){return["dac#"==this.getFieldValue("PIN_OBJ")?null:this.getFieldValue("PIN_OBJ")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("PIN_OBJ"))&&this.setTitleValue(e,"PIN_OBJ")}},ZX={init:function(){this.setColour(VX),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP).appendField(new mt.FieldTextInput("adc#"),"PIN_OBJ").appendField(mt.Msg.MIXLY_MICROPYTHON_AS),this.appendDummyInput("").appendField(mt.Msg.MIXLY_Analog_PINMODEIN),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_ANALOG_READ_INIT_TOOLTIP)},getVars:function(){return["adc#"==this.getFieldValue("PIN_OBJ")?null:this.getFieldValue("PIN_OBJ")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("PIN_OBJ"))&&this.setTitleValue(e,"PIN_OBJ")}},$X={init:function(){this.setColour(VX),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP).appendField(new mt.FieldTextInput("tc#"),"PIN_OBJ").appendField(mt.Msg.MIXLY_MICROPYTHON_AS),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_TOUCH_SENSOR),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_PIN_PRESSED_INIT_TOOLTIP)},getVars:function(){return["tc#"==this.getFieldValue("PIN_OBJ")?null:this.getFieldValue("PIN_OBJ")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("PIN_OBJ"))&&this.setTitleValue(e,"PIN_OBJ")}},tx=qX,ex=HX,ix=$X,nx=JX,sx=zX,ox=230,_x={init:function(){this.setColour(ox),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.digital),"PIN"),this.setOutput(!0)}},px={init:function(){this.setColour(ox),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.digital_pin),"PIN"),this.setOutput(!0,Number)}},ax={init:function(){this.setColour(ox),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.input_pin),"PIN"),this.setOutput(!0,Number)}},ux={init:function(){this.setColour(ox),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.output_pin),"PIN"),this.setOutput(!0,Number)}},rx={init:function(){this.setColour(ox),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.espnow_channel),"PIN"),this.setOutput(!0,Number)}},lx={init:function(){this.setColour(ox),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.haskylens_model),"PIN"),this.setOutput(!0,Number)}},dx={init:function(){this.setColour(ox),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.pwm_input),"PIN"),this.setOutput(!0)}},Ix={init:function(){this.setColour(ox),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.analog_input),"PIN"),this.setOutput(!0)}},Tx={init:function(){this.setColour(ox),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.pwm_output),"PIN"),this.setOutput(!0)}},hx={init:function(){this.setColour(ox),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.analog_output),"PIN"),this.setOutput(!0)}},Mx={init:function(){this.setColour(ox),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.i2c_A_pin),"PIN"),this.setOutput(!0,Number)}},mx={init:function(){this.setColour(ox),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.i2c_B_pin),"PIN"),this.setOutput(!0,Number)}},Ox={init:function(){this.setColour(ox),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.spi_A_pin),"PIN"),this.setOutput(!0,Number)}},Ex={init:function(){this.setColour(ox),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.spi_B_pin),"PIN"),this.setOutput(!0,Number)}},Rx={init:function(){this.setColour(ox),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.spi_C_pin),"PIN"),this.setOutput(!0,Number)}},cx={init:function(){this.setColour(ox),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.spi_D_pin),"PIN"),this.setOutput(!0,Number)}},gx={init:function(){this.setColour(ox),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.analog),"PIN"),this.setOutput(!0)}},Cx={init:function(){this.setColour(ox),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.analog_pin),"PIN"),this.setOutput(!0,Number)}},Sx={init:function(){this.setColour(ox),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.dac),"PIN"),this.setOutput(!0)}},Ax={init:function(){this.setColour(ox),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.dac_pin),"PIN"),this.setOutput(!0,Number)}},Lx={init:function(){this.setColour(ox),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.button),"PIN"),this.setOutput(!0,Number)}},Nx={init:function(){this.setColour(ox),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.buttonB),"PIN"),this.setOutput(!0,Number)}},Dx={init:function(){this.setColour(ox),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.pwm),"PIN"),this.setOutput(!0)}},fx={init:function(){this.setColour(ox),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.pwm_pin),"PIN"),this.setOutput(!0,Number)}},Fx={init:function(){this.setColour(ox),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.touch_pin),"PIN"),this.setOutput(!0,Number)}},Px={init:function(){this.setColour(ox),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.touch),"PIN"),this.setOutput(!0)}},vx={init:function(){this.setColour(ox),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.serial_pin),"PIN"),this.setOutput(!0,Number)}},Yx={init:function(){this.setColour(ox),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.builtinimg),"PIN"),this.setOutput(!0,"esp32_image")}},Xx={init:function(){this.setColour(ox),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.builtinimg_extern),"PIN"),this.setOutput(!0,"esp32_image")}},xx={init:function(){this.setColour(ox),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.imglist),"PIN"),this.setOutput(!0)}},bx={init:function(){this.setColour(ox),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.playlist),"PIN"),this.setOutput(!0)}},Vx={init:function(){this.setColour(ox),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.playlist_extern),"PIN"),this.setOutput(!0)}},yx={init:function(){this.setColour(ox),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.exlcdh),"PIN"),this.setOutput(!0,Number)}},Bx={init:function(){this.setColour(ox),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.exlcdv),"PIN"),this.setOutput(!0,Number)}},Gx={init:function(){this.setColour(ox),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.axis),"PIN"),this.setOutput(!0,Number)}},Ux={init:function(){this.setColour(ox),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.brightness),"PIN"),this.setOutput(!0,Number)}},wx={init:function(){this.setColour(ox),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.tts_voice),"PIN"),this.setOutput(!0,Number)}},kx={init:function(){this.setColour(ox),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.tts_builtin_music),"PIN"),this.setOutput(!0,Number)}},Hx={init:function(){this.setColour(ox),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.tts_bgmusic),"PIN"),this.setOutput(!0,Number)}},Wx={init:function(){this.setColour(ox),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.tone_notes),"PIN"),this.setOutput(!0,Number)}},Kx={init:function(){this.setColour(ox),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.radio_power),"PIN"),this.setOutput(!0,Number)}},Jx={init:function(){this.setColour(ox),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.radio_datarate),"PIN"),this.setOutput(!0,Number)}},zx={init:function(){this.setColour(ox),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.one_more),"PIN"),this.setOutput(!0)}},qx={init:function(){this.setColour(ox),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.digital_dot),"PIN"),this.setOutput(!0,Number)}},Qx=function(t,e){return["HIGH"==this.getFieldValue("BOOL")?"1":"0",e.ORDER_ATOMIC]},jx=function(t,e){e.definitions_.import_machine="import machine";var i="";return i+=e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".value("+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"},Zx=function(t,e){e.definitions_.import_machine="import machine";return[e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".value()",e.ORDER_ATOMIC]},$x=function(t,e){return e.definitions_.import_machine="import machine",e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".duty("+e.valueToCode(this,"NUM",e.ORDER_ATOMIC)+")\n"},tb=function(t,e){return e.definitions_.import_machine="import machine",e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".write("+e.valueToCode(this,"NUM",e.ORDER_ATOMIC)+")\n"},eb=function(t,e){e.definitions_.import_machine="import machine";var i=e.valueToCode(this,"PIN",e.ORDER_ATOMIC),n=e.valueToCode(this,"NUM",e.ORDER_ATOMIC);return i+".set_analog_"+this.getFieldValue("key")+"("+n+")\n"},ib=function(t,e){return e.definitions_.import_machine="import machine",e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".freq("+e.valueToCode(this,"NUM",e.ORDER_ATOMIC)+")\n"},nb=function(t,e){return e.definitions_.import_machine="import machine",[e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".read()",e.ORDER_ATOMIC]},sb=function(t,e){return e.definitions_.import_machine="import machine",[e.valueToCode(this,"pin",e.ORDER_ATOMIC)+".read()",e.ORDER_ATOMIC]},ob=function(t,e){e.definitions_.import_machine="import machine";var i=e.valueToCode(this,"PIN",e.ORDER_ATOMIC),n=this.getFieldValue("mode");return"machine.Pin("+i+").irq(handler = "+e.valueToCode(this,"DO",e.ORDER_ATOMIC)+", trigger = "+n+")\n"},_b=function(t,e){e.definitions_.import_machine="import machine";var i=this.getFieldValue("PIN_OBJ")||"pin#",n=e.valueToCode(this,"PIN",e.ORDER_ATOMIC),s=this.getFieldValue("MODE");return("pin#"==i?"pin"+n:e.variableDB_.getName(i,mt.Variables.NAME_TYPE))+" = machine.Pin("+n+", "+s+")\n"},pb=function(t,e){e.definitions_.import_machine="import machine";var i=this.getFieldValue("PIN_OBJ")||"pwm#",n=e.valueToCode(this,"PIN",e.ORDER_ATOMIC);return("pwm#"==i?"pwm"+n:e.variableDB_.getName(i,mt.Variables.NAME_TYPE))+" = machine.PWM(machine.Pin("+n+"))\n"},ab=function(t,e){e.definitions_.import_machine="import machine";var i=this.getFieldValue("PIN_OBJ")||"dac#",n=e.valueToCode(this,"PIN",e.ORDER_ATOMIC);return("dac#"==i?"dac"+n:e.variableDB_.getName(i,mt.Variables.NAME_TYPE))+" = machine.DAC(machine.Pin("+n+"))\n"},ub=function(t,e){e.definitions_.import_machine="import machine";var i=this.getFieldValue("PIN_OBJ")||"adc#",n=e.valueToCode(this,"PIN",e.ORDER_ATOMIC);return("adc#"==i?"adc"+n:e.variableDB_.getName(i,mt.Variables.NAME_TYPE))+" = machine.ADC(machine.Pin("+n+"))\n"},rb=function(t,e){return e.definitions_.import_machine="import machine",e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".atten("+this.getFieldValue("atten")+")\n"},lb=function(t,e){e.definitions_.import_machine="import machine";var i=this.getFieldValue("PIN_OBJ")||"tc#",n=e.valueToCode(this,"PIN",e.ORDER_ATOMIC);return("tc#"==i?"tc"+n:e.variableDB_.getName(i,mt.Variables.NAME_TYPE))+" = machine.TouchPad(machine.Pin("+n+"))\n"},db=function(t,e){return[this.getFieldValue("PIN"),e.ORDER_ATOMIC]},Ib=db,Tb=db,hb=db,Mb=db,mb=db,Ob=db,Eb=db,Rb=db,cb=db,gb=db,Cb=db,Sb=db,Ab=db,Lb=db,Nb=db,Db=db,fb=db,Fb=db,Pb=db,vb=db,Yb=db,Xb=db,xb=db,bb=db,Vb=db,yb=db,Bb=db,Gb=db,Ub=db,wb=db,kb=db,Hb=db,Wb=db,Kb=db,Jb=db,zb=db,qb=db,Qb=db,jb=db,Zb=db,$b=db,tV=db,eV=db,iV=db;Object.assign(mt.Variables,Rt),Object.assign(mt.Procedures,Wn),mt.Python=_u,mt.generator=_u,Ot.Profile.default={},Object.assign(Ot.Profile,bX),Object.assign(Ot.Profile.default,bX["MixGo CE"]),Object.assign(mt.Blocks,e,i,n,s,o,_,p,a,u,r,l,d,I,y,W,H,X,B,K,f,k,w,U,G,F,D,N,b,x,V,P,v,Y,It,Tt),Object.assign(mt.Python.forBlock,T,h,M,m,O,E,R,c,g,C,S,A,L,st,lt,rt,tt,ot,dt,q,ut,at,pt,_t,Q,z,J,it,et,nt,j,Z,$,ht,Mt)})(); \ No newline at end of file +class ct{constructor(t,e){if(this.variablePrefix_=e||"",this.reservedDict_=Object.create(null),t)for(var i=t.split(","),n=0;n0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?i[s]=e.getInputTargetBlock("IF"+s).previousConnection:i[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?n[s]=e.getInputTargetBlock("DO"+s).previousConnection:n[s]=null,this.removeInput("DO"+s);this.elseifCount_=parseInt(t.getAttribute("elseif"),10),this.elseCount_=parseInt(t.getAttribute("else"),10);for(s=1;s<=this.elseifCount_;s++)this.appendValueInput("IF"+s).setCheck([Boolean,Number]).appendField(mt.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+s).appendField(mt.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(mt.Msg.CONTROLS_IF_MSG_ELSE);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"IF"+s);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_if_if");e.initSvg();for(var i=e.getInput("STACK").connection,n=1;n<=this.elseifCount_;n++){var s=t.newBlock("controls_if_elseif");s.initSvg(),i.connect(s.previousConnection),i=s.nextConnection}if(this.elseCount_){var o=t.newBlock("controls_if_else");o.initSvg(),i.connect(o.previousConnection)}return e},compose:function(t){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var e=this.elseifCount_;e>0;e--)this.removeInput("IF"+e),this.removeInput("DO"+e);this.elseifCount_=0;for(var i=t.getInputTargetBlock("STACK"),n=[null],s=[null],o=null;i;){switch(i.type){case"controls_if_elseif":this.elseifCount_++,n.push(i.valueConnection_),s.push(i.statementConnection_);break;case"controls_if_else":this.elseCount_++,o=i.statementConnection_;break;default:throw Error("Unknown block type: "+i.type)}i=i.nextConnection&&i.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(n,s,o)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),i=1;e;){switch(e.type){case"controls_if_elseif":var n=this.getInput("IF"+i),s=this.getInput("DO"+i);e.valueConnection_=n&&n.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,i++;break;case"controls_if_else":s=this.getInput("ELSE");e.statementConnection_=s&&s.connection.targetConnection;break;default:throw"Unknown block type."}e=e.nextConnection&&e.nextConnection.targetBlock()}},rebuildShape_:function(){var t=[null],e=[null],i=null;this.getInput("ELSE")&&(i=this.getInput("ELSE").connection.targetConnection);for(var n=1;this.getInput("IF"+n);){var s=this.getInput("IF"+n),o=this.getInput("DO"+n);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(o.connection.targetConnection),n++}this.updateShape_(),this.reconnectChildBlocks_(t,e,i)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var t=1;this.getInput("IF"+t);)this.removeInput("IF"+t),this.removeInput("DO"+t),t++;for(t=1;t<=this.elseifCount_;t++)this.appendValueInput("IF"+t).setCheck([Number,Boolean]).appendField(mt.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+t).appendField(mt.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(mt.Msg.CONTROLS_IF_MSG_ELSE)},reconnectChildBlocks_:function(t,e,i){for(var n=1;n<=this.elseifCount_;n++)t[n]&&t[n].reconnect(this,"IF"+n),e[n]&&e[n].reconnect(this,"DO"+n);i&&i.reconnect(this,"ELSE")}},bt={init:function(){this.setColour(Ft),this.appendValueInput("FROM").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.PYTHON_RANGE).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.PYTHON_RANGE_STEP),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},Vt={init:function(){this.setColour(Ft),this.appendValueInput("LIST").setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.CONTROLS_FOREACH_INPUT),this.appendValueInput("VAR").appendField(mt.Msg.CONTROLS_FOREACH_INPUT_ITEM),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip((function(){return mt.Msg.CONTROLS_FOR_TOOLTIP.replace("“%1”","")}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},yt={init:function(){this.setColour(Ft),this.appendValueInput("BOOL").setCheck([Boolean,Number]).appendField(mt.Msg.MIXLY_MICROBIT_JS_CURRENT).appendField(new mt.FieldDropdown(this.OPERATORS),"MODE"),this.appendStatementInput("DO").appendField(mt.Msg.LANG_CONTROLS_WHILEUNTIL_TITLE_REPEAT+mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return{WHILE:mt.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_WHILE,UNTIL:mt.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL}[e]}))}},Bt={init:function(){this.setColour(Ft),this.appendDummyInput().appendField(mt.Msg.MIXLY_PYTHON_TRY),this.appendStatementInput("try"),this.appendValueInput("IF1").appendField(mt.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO1").appendField(""),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new mt.icons.MutatorIcon(["controls_except","controls_finally"],this)),this.setTooltip(mt.Msg.MIXLY_MIXPY_CONTROL_TRY_TOOLTIP),this.elseifCount_=1,this.elseCount_=0},mutationToDom:function(){if(!this.elseifCount_&&!this.elseCount_)return null;var t=document.createElement("mutation");return this.elseifCount_&&t.setAttribute("elseif",this.elseifCount_),this.elseCount_&&t.setAttribute("else",1),t},domToMutation:function(t){var e=this,i=[],n=[];this.elseCount_&&this.removeInput("ELSE");for(var s=this.elseifCount_;s>0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?i[s]=e.getInputTargetBlock("IF"+s).previousConnection:i[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?n[s]=e.getInputTargetBlock("DO"+s).previousConnection:n[s]=null,this.removeInput("DO"+s);this.elseifCount_=parseInt(t.getAttribute("elseif"),10),this.elseCount_=parseInt(t.getAttribute("else"),10);for(s=1;s<=this.elseifCount_;s++)this.appendValueInput("IF"+s).setCheck([Boolean,Number]).appendField(mt.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+s).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(mt.Msg.MIXLY_PYTHON_FINALLY);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"IF"+s);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_try");e.initSvg();for(var i=e.getInput("STACK").connection,n=1;n<=this.elseifCount_;n++){var s=t.newBlock("controls_except");s.initSvg(),i.connect(s.previousConnection),i=s.nextConnection}if(this.elseCount_){var o=t.newBlock("controls_finally");o.initSvg(),i.connect(o.previousConnection)}return e},compose:function(t){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var e=this.elseifCount_;e>0;e--)this.removeInput("IF"+e),this.removeInput("DO"+e);this.elseifCount_=0;for(var i=t.getInputTargetBlock("STACK"),n=[null],s=[null],o=null;i;){switch(i.type){case"controls_except":this.elseifCount_++,n.push(i.valueConnection_),s.push(i.statementConnection_);break;case"controls_finally":this.elseCount_++,o=i.statementConnection_;break;default:throw Error("Unknown block type: "+i.type)}i=i.nextConnection&&i.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(n,s,o)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),i=1;e;){switch(e.type){case"controls_except":var n=this.getInput("IF"+i),s=this.getInput("DO"+i);e.valueConnection_=n&&n.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,i++;break;case"controls_finally":s=this.getInput("ELSE");e.statementConnection_=s&&s.connection.targetConnection;break;default:throw"Unknown block type."}e=e.nextConnection&&e.nextConnection.targetBlock()}},rebuildShape_:function(){var t=[null],e=[null],i=null;this.getInput("ELSE")&&(i=this.getInput("ELSE").connection.targetConnection);for(var n=1;this.getInput("IF"+n);){var s=this.getInput("IF"+n),o=this.getInput("DO"+n);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(o.connection.targetConnection),n++}this.updateShape_(),this.reconnectChildBlocks_(t,e,i)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var t=1;this.getInput("IF"+t);)this.removeInput("IF"+t),this.removeInput("DO"+t),t++;for(t=1;t<=this.elseifCount_;t++)this.appendValueInput("IF"+t).setCheck([Number,Boolean]).appendField(mt.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+t).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(mt.Msg.MIXLY_PYTHON_FINALLY)},reconnectChildBlocks_:function(t,e,i){for(var n=1;n<=this.elseifCount_;n++)t[n]&&t[n].reconnect(this,"IF"+n),e[n]&&e[n].reconnect(this,"DO"+n);i&&i.reconnect(this,"ELSE")}},Gt={init:function(){this.setColour(Ft);var t=new mt.FieldDropdown(this.OPERATORS);this.appendDummyInput().appendField(t,"FLOW").appendField(mt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_INPUT_OFLOOP),this.setPreviousStatement(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_CONTROLS_FLOW_STATEMENTS_TOOLTIP);var e=this;this.setTooltip((function(){var t=e.getFieldValue("FLOW");return{BREAK:mt.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK,CONTINUE:mt.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE}[t]}))},onchange:function(){if(this.workspace){var t=!1,e=this;do{if("controls_repeat"==e.type||"controls_for"==e.type||"controls_forEach"==e.type||"controls_repeat_ext"==e.type||"controls_whileUntil"==e.type||"do_while"==e.type){t=!0;break}e=e.getSurroundParent()}while(e);t?this.setWarningText(null):this.setWarningText(mt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_WARNING)}}},Ut={init:function(){this.setColour(Ft),this.appendDummyInput().appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new mt.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return mt.Msg.CONTROLS_FOR_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},wt={init:function(){this.setColour(Ft),this.appendDummyInput().appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new mt.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return mt.Msg.MIXLY_PYTHON_CONTROLS_FOR_RANGE_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}};yt.OPERATORS=[[mt.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"WHILE"],[mt.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"UNTIL"]],Gt.OPERATORS=[[mt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK,"BREAK"],[mt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE,"CONTINUE"]];const kt={init:function(){this.setColour(Ft),this.appendDummyInput().appendField(mt.Msg.CONTROLS_IF_IF_TITLE_IF),this.appendStatementInput("STACK"),this.setTooltip(mt.Msg.CONTROLS_IF_IF_TOOLTIP),this.contextMenu=!1}},Ht={init:function(){this.setColour(Ft),this.appendDummyInput().appendField(mt.Msg.CONTROLS_IF_ELSEIF_TITLE_ELSEIF),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.CONTROLS_IF_ELSEIF_TOOLTIP),this.contextMenu=!1}},Wt={init:function(){this.setColour(Ft),this.appendDummyInput().appendField(mt.Msg.CONTROLS_IF_ELSE_TITLE_ELSE),this.setPreviousStatement(!0),this.setTooltip(mt.Msg.CONTROLS_IF_ELSE_TOOLTIP),this.contextMenu=!1}},Kt={init:function(){this.setColour(Ft),this.appendDummyInput().appendField("try"),this.appendStatementInput("STACK"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.contextMenu=!1}},Jt={init:function(){this.setColour(Ft),this.appendDummyInput().appendField(mt.Msg.MIXLY_PYTHON_EXCEPT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.contextMenu=!1,this.setTooltip(mt.Msg.MIXLY_MIXPY_CONTROL_EXCEPT_TOOLTIP)}},zt={init:function(){this.setColour(Ft),this.appendDummyInput().appendField(mt.Msg.MIXLY_PYTHON_FINALLY),this.setPreviousStatement(!0),this.contextMenu=!1,this.setTooltip(mt.Msg.MIXLY_MIXPY_CONTROL_FINALLY_TOOLTIP)}},qt={init:function(){this.jsonInit({message0:mt.Msg.CONTROLS_REPEAT_TITLE,args0:[{type:"input_value",name:"TIMES"}],previousStatement:null,nextStatement:null,colour:Ft,tooltip:mt.Msg.CONTROLS_REPEAT_TOOLTIP,helpUrl:mt.Msg.CONTROLS_REPEAT_HELPURL}),this.appendStatementInput("DO")}},Qt={init:function(){this.setColour(Ft),this.appendValueInput("BOOL").appendField("lambda"),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_STAT),this.setOutput(!0)}},jt={init:function(){this.setColour(Ft),this.appendDummyInput().appendField(mt.Msg.MIXLY_PYTHON_PASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_CONTROLS_PASS_TOOLTIP)}},Zt={init:function(){this.setColour(Ft),this.appendDummyInput().appendField(mt.Msg.MIXLY_PYTHON_CONTROLS_THREAD_START),this.appendValueInput("callback").appendField(mt.Msg.MIXLY_PYTHON_CONTROLS_THREAD_USE),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_CONTROLS_THREAD_TOOLTIP)}},$t={init:function(){this.appendDummyInput().appendField(mt.Msg.CONTROLS_REPEAT_TITLE_REPEAT+mt.Msg.MIXLY_DO),this.appendStatementInput("input_data").setCheck(null),this.appendValueInput("select_data").setCheck(null).appendField(mt.Msg.CONTROLS_OPERATOR_UNTIL).appendField(new mt.FieldDropdown([[mt.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"true"],[mt.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"false"]]),"type"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Ft),this.setTooltip("do-while loop"),this.setHelpUrl("")}},te={init:function(){this.setColour(Ft),this.appendDummyInput().appendField(mt.Msg.MIXLY_OP_GARBAGE_COLLECT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},ee={init:function(){this.setColour(Ft),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_MEM_ALLOC),this.setOutput(!0)}},ie={init:function(){this.setColour(Ft),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_MEM_FREE),this.setOutput(!0)}},ne=230;mt.FieldTextInput.math_number_validator=function(t){return String(t)},mt.FieldTextInput.math_number_validator_include_blank=function(t){if(""===t)return"";return/^-?(0X|0x|0O|0o|0B|0b)?[a-fA-F0-9]{1,}(\.[a-fA-F0-9]+)?$/.test(t)?String(t):null};const se={init:function(){this.setColour(ne),this.appendDummyInput().appendField(new mt.FieldTextInput("0",mt.FieldTextInput.math_number_validator),"NUM"),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MATH_NUMBER_TOOLTIP)}},oe={init:function(){this.setColour(ne);this.appendDummyInput("").appendField(mt.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new mt.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:mt.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_TOOLTIP,e:mt.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_TOOLTIP}[e]}))}},_e={init:function(){this.setColour(ne);this.appendDummyInput("").appendField(mt.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new mt.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:mt.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_MP_TOOLTIP,e:mt.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_MP_TOOLTIP}[e]}))}},pe={init:function(){this.setColour(ne),this.setOutput(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new mt.FieldDropdown([["+","ADD"],["-","MINUS"],["×","MULTIPLY"],["÷","DIVIDE"],["%","QUYU"],["//","ZHENGCHU"],["**","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:mt.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:mt.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:mt.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:mt.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:mt.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:mt.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:mt.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},ae={init:function(){this.setColour(ne),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new mt.FieldDropdown([["+=","ADD"],["-=","MINUS"],["×=","MULTIPLY"],["÷=","DIVIDE"],["%=","QUYU"],["//=","ZHENGCHU"],["**=","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:mt.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:mt.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:mt.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:mt.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:mt.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:mt.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:mt.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},ue={init:function(){this.setColour(ne),this.setOutput(!0,Number),this.appendValueInput("A").setCheck(Number),this.appendValueInput("B").setCheck(Number).appendField(new mt.FieldDropdown([["&","&"],["|","|"],[">>",">>"],["<<","<<"]]),"OP"),this.setInputsInline(!0),this.setTooltip("位运算")}},re={init:function(){this.setColour(ne),this.setOutput(!0,Number),this.appendValueInput("NUM").setCheck(Number).appendField(new mt.FieldDropdown([["sin","SIN"],["cos","COS"],["tan","TAN"],["asin","ASIN"],["acos","ACOS"],["atan","ATAN"],["-","-"],["ln","LN"],["log10","LOG10"],["e^","EXP"],["10^","POW10"]]),"OP");var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{SIN:mt.Msg.MATH_TRIG_TOOLTIP_SIN,COS:mt.Msg.MATH_TRIG_TOOLTIP_COS,TAN:mt.Msg.MATH_TRIG_TOOLTIP_TAN,ASIN:mt.Msg.MATH_TRIG_TOOLTIP_ASIN,ACOS:mt.Msg.MATH_TRIG_TOOLTIP_ACOS,ATAN:mt.Msg.MATH_TRIG_TOOLTIP_ATAN,LN:mt.Msg.MATH_SINGLE_TOOLTIP_LN}[e]}))}},le={init:function(){var t=[[mt.Msg.MATH_BIN,"bin"],[mt.Msg.MATH_OCT,"oct"],[mt.Msg.MATH_HEX,"hex"]];this.setColour(ne),this.setOutput(!0,String),this.appendValueInput("NUM").setCheck(Number).appendField(new mt.FieldDropdown(t),"OP");var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{bin:mt.Msg.MATH_DEC_TOOLTIP_BIN,oct:mt.Msg.MATH_DEC_TOOLTIP_OCT,hex:mt.Msg.MATH_DEC_TOOLTIP_HEX}[t]}))}},de={init:function(){var t=[[mt.Msg.LANG_MATH_TO_ROUND,"round"],[mt.Msg.LANG_MATH_TO_CEIL,"ceil"],[mt.Msg.LANG_MATH_TO_FLOOR,"floor"],[mt.Msg.MATH_ABS,"fabs"],[mt.Msg.MATH_SQRT,"sqrt"]];this.setColour(ne),this.appendValueInput("A").setCheck(Number).appendField(new mt.FieldDropdown(t),"OP"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{sqrt:mt.Msg.MATH_SINGLE_TOOLTIP_ROOT,fabs:mt.Msg.MATH_SINGLE_TOOLTIP_ABS,sq:mt.Msg.MATH_SINGLE_TOOLTIP_SQ,round:mt.Msg.MATH_SINGLE_TOOLTIP_ROUND,ceil:mt.Msg.MATH_SINGLE_TOOLTIP_CEIL,floor:mt.Msg.MATH_SINGLE_TOOLTIP_FLOOR}[t]}))}},Ie={init:function(){var t=[[mt.Msg.MIXLY_MAX,"max"],[mt.Msg.MIXLY_MIN,"min"]];this.setColour(ne),this.appendValueInput("A").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(new mt.FieldDropdown(t),"OP").appendField("("),this.appendValueInput("B").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(","),this.appendDummyInput("").setAlign(mt.inputs.Align.RIGHT).appendField(")"),this.setInputsInline(!0),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{max:mt.Msg.MIXLY_TOOLTIP_MATH_MAX,min:mt.Msg.MIXLY_TOOLTIP_MATH_MIN}[t]}))}},Te={init:function(){var t=[[mt.Msg.MATH_TWO,"two"],[mt.Msg.MATH_EIGHT,"eight"],[mt.Msg.MATH_TEN,"ten"],[mt.Msg.MATH_SIXTEEN,"sixteen"]];this.setColour(ne),this.appendDummyInput("").appendField(mt.Msg.MATH_BA),this.appendValueInput("NUM").appendField(new mt.FieldDropdown(t),"OP").appendField(mt.Msg.MATH_JinZhi).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.MATH_ZHW).appendField(new mt.FieldDropdown(t),"OP2").appendField(mt.Msg.MATH_JinZhi),this.setFieldValue("ten","OP2"),this.setOutput(!0),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP"),i={two:mt.Msg.MATH_Before_two,eight:mt.Msg.MATH_Before_eight,ten:mt.Msg.MATH_Before_ten,sixteen:mt.Msg.MATH_Before_sixteen},n=e.getFieldValue("OP2"),s={two:mt.Msg.MATH_Behind_two,eight:mt.Msg.MATH_Behind_eight,ten:mt.Msg.MATH_Behind_ten,sixteen:mt.Msg.MATH_Behind_sixteen};return i[t]+s[n]}))}},he={init:function(){var t=[[mt.Msg.LANG_MATH_INT,"int"],[mt.Msg.LANG_MATH_FLOAT,"float"]];this.setColour(ne),this.setOutput(!0,Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_RANDOM).appendField(new mt.FieldDropdown(t),"TYPE"),this.appendValueInput("FROM").setCheck(Number).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LANG_MATH_RANDOM_INT_INPUT_TO),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TYPE"),i={int:mt.Msg.LANG_MATH_INT,float:mt.Msg.LANG_MATH_FLOAT_RANDOM};return mt.Msg.MATH_RANDOM_INT_TOOLTIP+i[t]}))}},Me={init:function(){this.setColour(ne),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number).appendField(mt.Msg.LANG_MATH_CONSTRAIN_INPUT_CONSTRAIN),this.appendValueInput("LOW").setCheck(Number).appendField(mt.Msg.LANG_MATH_CONSTRAIN_INPUT_LOW),this.appendValueInput("HIGH").setCheck(Number).appendField(mt.Msg.LANG_MATH_CONSTRAIN_INPUT_HIGH),this.setInputsInline(!0),this.setTooltip(mt.Msg.MATH_CONSTRAIN_TOOLTIP)}},me={init:function(){this.setColour(ne),this.appendValueInput("NUM",Number).appendField(mt.Msg.MIXLY_MAP).setCheck(Number),this.appendValueInput("fromLow",Number).appendField(mt.Msg.MIXLY_MAP_FROM).setCheck(Number),this.appendValueInput("fromHigh",Number).appendField(",").setCheck(Number),this.appendValueInput("toLow",Number).appendField(mt.Msg.MIXLY_MAP_TO).setCheck(Number),this.appendValueInput("toHigh",Number).appendField(",").setCheck(Number),this.appendDummyInput("").appendField("]"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_MATH_MAP)}},Oe={init:function(){this.setColour(ne),this.appendDummyInput().appendField(new mt.FieldTextInput("0",mt.FieldTextInput.math_number_validator_include_blank),"NUM"),this.setOutput(!0),this.setTooltip(mt.Msg.MATH_NUMBER_TOOLTIP)}},Ee={init:function(){this.setColour(ne),this.appendValueInput("NUM").setCheck(Number).appendField(mt.Msg.LANG_MATH_RANDOM_SEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_MATH_RANDOM_SEED)}},Re={init:function(){this.setColour(ne),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number),this.appendValueInput("VAR").setCheck(Number).appendField(mt.Msg.MATH_ROUND).appendField(mt.Msg.TEXT_KEEP),this.appendDummyInput().appendField(mt.Msg.TEXT_DECIMAL),this.setInputsInline(!0),this.setTooltip(mt.Msg.MATH_ROUND_NEW_TOOLTIP)}},ce={init:function(){var t=[[mt.Msg.MIXLY_TO_INT,"int"],[mt.Msg.MIXLY_TO_FLOAT,"float"],[mt.Msg.MIXLY_TO_BITES,"b"]];this.setColour(ne),this.appendValueInput("VAR").appendField(new mt.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:mt.Msg.MIXLY_PYTHON_TOOLTIP_TOINT,float:mt.Msg.MIXLY_PYTHON_TOOLTIP_TOFLOAT,b:mt.Msg.MIXLY_TOOLTIP_TEXT_TOBYTE}[t]}))}},ge={init:function(){var t=[[mt.Msg.MIXLY_TO_INT,"int"],[mt.Msg.MIXLY_TO_FLOAT,"float"]];this.setColour(ne),this.appendValueInput("VAR").appendField(new mt.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:mt.Msg.MIXLY_TOOLTIP_TEXT_TOINT,float:mt.Msg.MIXLY_TOOLTIP_TEXT_TOFLOAT}[t]}))}},Ce=me,Se=160,Ae={init:function(){this.setColour(Se),this.appendDummyInput().appendField(this.newQuote_(!0)).appendField(new mt.FieldTextInput(""),"TEXT").appendField(this.newQuote_(!1)),this.setOutput(!0,String),this.setTooltip(mt.Msg.TEXT_TEXT_TOOLTIP)},newQuote_:function(t){if(t==this.RTL)var e="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAKCAQAAAAqJXdxAAAAqUlEQVQI1z3KvUpCcRiA8ef9E4JNHhI0aFEacm1o0BsI0Slx8wa8gLauoDnoBhq7DcfWhggONDmJJgqCPA7neJ7p934EOOKOnM8Q7PDElo/4x4lFb2DmuUjcUzS3URnGib9qaPNbuXvBO3sGPHJDRG6fGVdMSeWDP2q99FQdFrz26Gu5Tq7dFMzUvbXy8KXeAj57cOklgA+u1B5AoslLtGIHQMaCVnwDnADZIFIrXsoXrgAAAABJRU5ErkJggg==";else e="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAKCAQAAAAqJXdxAAAAn0lEQVQI1z3OMa5BURSF4f/cQhAKjUQhuQmFNwGJEUi0RKN5rU7FHKhpjEH3TEMtkdBSCY1EIv8r7nFX9e29V7EBAOvu7RPjwmWGH/VuF8CyN9/OAdvqIXYLvtRaNjx9mMTDyo+NjAN1HNcl9ZQ5oQMM3dgDUqDo1l8DzvwmtZN7mnD+PkmLa+4mhrxVA9fRowBWmVBhFy5gYEjKMfz9AylsaRRgGzvZAAAAAElFTkSuQmCC";return new mt.FieldImage(e,12,12,'"')}},Le={init:function(){this.setColour(Se),this.appendDummyInput().appendField(this.newQuote_(!0)).appendField(new mt.FieldMultilineInput("Hello\nMixly"),"VALUE").appendField(this.newQuote_(!1)),this.setOutput(!0,String),this.setTooltip(mt.Msg.TEXT_LINES_TOOLTIP)},newQuote_:function(t){if(t==this.RTL)var e="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAKCAQAAAAqJXdxAAAAqUlEQVQI1z3KvUpCcRiA8ef9E4JNHhI0aFEacm1o0BsI0Slx8wa8gLauoDnoBhq7DcfWhggONDmJJgqCPA7neJ7p934EOOKOnM8Q7PDElo/4x4lFb2DmuUjcUzS3URnGib9qaPNbuXvBO3sGPHJDRG6fGVdMSeWDP2q99FQdFrz26Gu5Tq7dFMzUvbXy8KXeAj57cOklgA+u1B5AoslLtGIHQMaCVnwDnADZIFIrXsoXrgAAAABJRU5ErkJggg==";else e="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAKCAQAAAAqJXdxAAAAn0lEQVQI1z3OMa5BURSF4f/cQhAKjUQhuQmFNwGJEUi0RKN5rU7FHKhpjEH3TEMtkdBSCY1EIv8r7nFX9e29V7EBAOvu7RPjwmWGH/VuF8CyN9/OAdvqIXYLvtRaNjx9mMTDyo+NjAN1HNcl9ZQ5oQMM3dgDUqDo1l8DzvwmtZN7mnD+PkmLa+4mhrxVA9fRowBWmVBhFy5gYEjKMfz9AylsaRRgGzvZAAAAAElFTkSuQmCC";return new mt.FieldImage(e,12,12,'"')}};mt.FieldTextInput.char_validator=function(t){if(t.length>1&&"\\"===t.charAt(0)){var e=t.charAt(1);if("0"===e||"b"===e||"f"===e||"n"===e||"r"===e||"t"===e||"\\"===e||"'"===e)return String(t).substring(0,2);if("x"===e&&"0"===t.charAt(2)&&"B"===t.charAt(3))return String(t).substring(0,4)}return String(t).substring(0,1)};const Ne={init:function(){this.setColour(Se),this.appendDummyInput().appendField(this.newQuote_(!0)).appendField(new mt.FieldTextInput("",mt.FieldTextInput.char_validator),"TEXT").appendField(this.newQuote_(!1)),this.setOutput(!0,Number),this.setTooltip(mt.Msg.TEXT_CHAR_TOOLTIP)},newQuote_:function(t){if(1==t)var e="../../media/quote2.png";else e="../../media/quote3.png";return new mt.FieldImage(e,7,12,'"')}},De={init:function(){this.setColour(Se),this.appendValueInput("A").setCheck([String,Number]),this.appendValueInput("B").setCheck([String,Number]).appendField(mt.Msg.MIXLY_TEXT_JOIN),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_TEXT_JOIN)}},fe={init:function(){this.setColour(Se),this.appendValueInput("VAR").setCheck(Number).appendField(mt.Msg.MIXLY_TOCHAR),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_TEXT_TOCHAR)}},Fe={init:function(){this.setColour(Se),this.appendValueInput("VAR").setCheck(String).appendField(mt.Msg.MIXLY_TOASCII),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_TEXT_TOASCII)}},Pe={init:function(){this.setColour(Se),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_TOSTRING),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_PYTHON_TOOLTIP_TOTEXT)}},ve={init:function(){this.setColour(Se),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_LENGTH),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_TEXT_LENGTH)}},Ye={init:function(){this.WHERE_OPTIONS=[[mt.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[mt.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[mt.Msg.TEXT_GET_INDEX_RANDOM+1+mt.Msg.TEXT_CHARAT2,"RANDOM"]],this.setHelpUrl(mt.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(Se),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number),this.appendDummyInput().appendField(mt.Msg.LISTS_GET_INDEX_GET,"MODE"),mt.Msg.LISTS_GET_INDEX_TAIL&&this.appendDummyInput("TAIL").appendField(mt.Msg.LISTS_GET_INDEX_TAIL),this.setInputsInline(!0),this.setOutput(!0),this.updateAt_(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=t.getFieldValue("WHERE"),n="";switch(e+" "+i){case"GET FROM_START":case"GET FROM_END":n=mt.Msg.LISTS_GET_INDEX_TOOLTIP_GET_FROM;break;case"GET RANDOM":n=mt.Msg.LISTS_GET_INDEX_TOOLTIP_GET_RANDOM;break;case"GET_REMOVE FROM_START":case"GET_REMOVE FROM_END":n=mt.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM;break;case"GET_REMOVE RANDOM":n=mt.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM}return"FROM_START"!=i&&"FROM_END"!=i||(n+=" "+mt.Msg.LISTS_INDEX_FROM_START_TOOLTIP.replace("%1",mt.Msg.ONE_BASED_INDEXING?"#1":"#0")),n}));var e=this;this.setTooltip((function(){var t=e.getFieldValue("WHERE"),i={FROM_START:mt.Msg.LISTS_GET_INDEX_FROM_START,FROM_END:mt.Msg.LISTS_GET_INDEX_FROM_END,RANDOM:mt.Msg.TEXT_GET_INDEX_RANDOM};return mt.Msg.PROCEDURES_DEFRETURN_RETURN+mt.Msg.MIXLY_MICROBIT_TYPE_STRING+i[t]+"n"+mt.Msg.TEXT_CHARAT2}))},mutationToDom:function(){var t=document.createElement("mutation");t.setAttribute("statement",!this.outputConnection);var e=this.getInput("AT").type==mt.INPUT_VALUE;return t.setAttribute("at",e),t},domToMutation:function(t){var e="true"==t.getAttribute("statement");this.updateStatement_(e),t="false"!=t.getAttribute("at"),this.updateAt_(t)},updateStatement_:function(t){t!=!this.outputConnection&&(this.unplug(!0,!0),t?(this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)):(this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)))},updateAt_:function(t){this.removeInput("AT"),this.removeInput("ORDINAL",!0),t?(this.appendValueInput("AT").setCheck(Number),mt.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL").appendField(mt.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT");var e=new mt.FieldDropdown(this.WHERE_OPTIONS,(function(e){var i="FROM_START"==e||"FROM_END"==e;if(i!=t){var n=this.sourceBlock_;return n.updateAt_(i),n.setFieldValue(e,"WHERE"),null}}));this.getInput("AT").appendField(e,"WHERE"),mt.Msg.LISTS_GET_INDEX_TAIL&&this.moveInputBefore("TAIL",null)}},Xe={init:function(){this.setHelpUrl(mt.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(Se),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number).appendField(mt.Msg.LISTS_GET_INDEX_GET+" "+mt.Msg.LISTS_GET_INDEX_FROM_START),this.appendDummyInput().appendField(mt.Msg.TEXT_CHARAT2),this.setOutput(!0),this.setTooltip(mt.Msg.PROCEDURES_DEFRETURN_RETURN+mt.Msg.MIXLY_MICROBIT_TYPE_STRING+mt.Msg.LISTS_GET_INDEX_FROM_START+"n"+mt.Msg.TEXT_CHARAT2)}},xe={init:function(){this.setHelpUrl(mt.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(Se),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput().appendField(mt.Msg.TEXT_RANDOM_CHAR),this.setOutput(!0),this.setTooltip(mt.Msg.TEXT_RANDOM_CHAR_TOOLTIP)}},be={init:function(){this.WHERE_OPTIONS_1=[[mt.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[mt.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[mt.Msg.LISTS_GET_SUBLIST_START_FIRST,"FIRST"]],this.WHERE_OPTIONS_2=[[mt.Msg.LISTS_GET_SUBLIST_END_FROM_START,"FROM_START"],[mt.Msg.LISTS_GET_SUBLIST_END_FROM_END,"FROM_END"],[mt.Msg.LISTS_GET_SUBLIST_END_LAST,"LAST"]],this.setHelpUrl(mt.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(Se),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput("AT1"),this.appendDummyInput("AT2"),this.setInputsInline(!0),this.setOutput(!0,"List"),this.updateAt_(1,!0),this.updateAt_(2,!0),this.setTooltip(mt.Msg._GET_TEXT_SUBLIST_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT1").type==mt.INPUT_VALUE;t.setAttribute("at1",e);var i=this.getInput("AT2").type==mt.INPUT_VALUE;return t.setAttribute("at2",i),t},domToMutation:function(t){var e="true"==t.getAttribute("at1"),i="true"==t.getAttribute("at2");this.updateAt_(1,e),this.updateAt_(2,i)},updateAt_:function(t,e){this.removeInput("AT"+t),this.removeInput("ORDINAL"+t,!0),e?(this.appendValueInput("AT"+t).setCheck(Number),mt.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL"+t).appendField(mt.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT"+t);var i=new mt.FieldDropdown(this["WHERE_OPTIONS_"+t],(function(i){var n="FROM_START"==i||"FROM_END"==i;if(n!=e){var s=this.sourceBlock_;return s.updateAt_(t,n),s.setFieldValue(i,"WHERE"+t),null}}));this.getInput("AT"+t).appendField(i,"WHERE"+t),1==t&&(this.moveInputBefore("AT1","AT2"),this.getInput("ORDINAL1")&&this.moveInputBefore("ORDINAL1","AT2"))}},Ve={init:function(){this.setHelpUrl(mt.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(Se),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT1").appendField(mt.Msg.LISTS_GET_INDEX_GET+" "+mt.Msg.LISTS_GET_INDEX_FROM_START),this.appendValueInput("AT2").appendField(mt.Msg.LISTS_GET_SUBLIST_END_FROM_START),this.appendDummyInput().appendField(mt.Msg.TEXT_CHARAT2),this.setInputsInline(!0),this.setOutput(!0,["List",String]),this.setTooltip(mt.Msg._GET_TEXT_SUBLIST_TOOLTIP)}},ye={init:function(){var t=[[mt.Msg.MIXLY_EQUALS,"==="],[mt.Msg.MIXLY_STARTSWITH,"startswith"],[mt.Msg.MIXLY_ENDSWITH,"endswith"]];this.setColour(Se),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(new mt.FieldDropdown(t),"DOWHAT").setCheck(String),this.setOutput(!0,[Boolean,Number]),this.setInputsInline(!0)}},Be={init:function(){this.setColour(Se),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(mt.Msg.MIXLY_COMPARETO).setCheck(String),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_COMPARETO_HELP)}},Ge={init:function(){var t=[[mt.Msg.TEXT_UPPER,"upper"],[mt.Msg.TEXT_TITLE,"title"],[mt.Msg.TEXT_CAPITALIZE,"capitalize"],[mt.Msg.TEXT_SWAPCASE,"swapcase"],[mt.Msg.TEXT_LOWER,"lower"]];this.setColour(Se),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new mt.FieldDropdown(t),"CAPITAL").setCheck(String),this.setOutput(!0,String);var e=this;this.setTooltip((function(){var t=e.getFieldValue("CAPITAL");return{upper:mt.Msg.MIXLY_MIXPY_TEXT_UPPER_TOOLTIP,title:mt.Msg.MIXLY_MIXPY_TEXT_TITLE_TOOLTIP,swapcase:mt.Msg.MIXLY_MIXPY_TEXT_SWAPCASE_TOOLTIP,capitalize:mt.Msg.MIXLY_MIXPY_TEXT_CAPITALIZE_TOOLTIP,lower:mt.Msg.MIXLY_MIXPY_TEXT_LOWER_TOOLTIP}[t]}))}},Ue={init:function(){var t=[[mt.Msg.TEXT_LJUST,"ljust"],[mt.Msg.TEXT_CENTER,"center"],[mt.Msg.TEXT_RJUST,"rjust"]];this.setColour(Se),this.appendValueInput("VAR").appendField(new mt.FieldDropdown(t),"CENTER").setCheck(String),this.appendValueInput("WID").appendField(mt.Msg.MIXLY_WIDTH).setCheck(Number),this.appendValueInput("Symbol").appendField(mt.Msg.MIXLY_RECT_Fill).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_MIXPY_TEXT_CENTER_TOOLTIP)}},we={init:function(){this.setColour(Se),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).setCheck(String),this.appendValueInput("STR").appendField(mt.Msg.MIXLY_MID+mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER).setCheck(String),this.appendDummyInput().appendField(mt.Msg.MIXLY_LIST_INDEX),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_MIXPY_TEXT_FIND_TOOLTIP)}},ke={init:function(){this.setColour(Se),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_USE_STR).setCheck(String),this.appendValueInput("LIST").appendField(mt.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_SEQ).setCheck("List","Tuple","Set","Dict"),this.appendDummyInput().appendField(mt.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_GET_STR),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_TOOLTIP)}},He={init:function(){this.setColour(Se),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("STR1").appendField(mt.Msg.MIXLY_MIXPY_REPLACE).setCheck(String),this.appendValueInput("STR2").appendField(mt.Msg.LISTS_SET_INDEX_INPUT_TO).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_MIXPY_TEXT_REPLACE_TOOLTIP)}},We={init:function(){this.setColour(Se),this.appendValueInput("VAR"),this.appendValueInput("VAL").appendField(mt.Msg.LIST_SPLIT_AS),this.appendDummyInput("").appendField(mt.Msg.LIST_SPLIT),this.setOutput(!0,"List"),this.setTooltip(mt.Msg.MIXLY_MIXPY_TEXT_SPLIT_TOOLTIP),this.setInputsInline(!0)}},Ke={init:function(){var t=[[mt.Msg.TEXT_TRIM_BOTH,"strip"],[mt.Msg.TEXT_TRIM_LEFT,"lstrip"],[mt.Msg.TEXT_TRIM_RIGHT,"rstrip"]];this.setColour(Se),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(mt.Msg.TEXT_STRIM),this.appendDummyInput("").appendField(new mt.FieldDropdown(t),"TOWHAT"),this.appendDummyInput("").appendField(mt.Msg.TEXT_BLANK),this.setOutput(!0,String),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{strip:mt.Msg.TEXT_TRIM_BOTH_TOOLTIP,lstrip:mt.Msg.TEXT_TRIM_LEFT_TOOLTIP,rstrip:mt.Msg.TEXT_TRIM_RIGHT_TOOLTIP}[t]}))}},Je={init:function(){this.setColour(Se),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROPYTHON_FORMAT),this.appendDummyInput("").appendField(new mt.FieldTextInput("str"),"VAR"),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new mt.icons.MutatorIcon(["text_create_with_item"],this)),this.setOutput(!0),this.setTooltip(mt.Msg.MIXLY_MIXPY_TEXT_FORMAT_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("text_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},ki={init:function(){this.setColour(Ui),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(mt.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},Hi={init:function(){this.setColour(Ui),this.appendDummyInput().appendField(mt.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},Wi={init:function(){this.setColour(Ui),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.DICT_KEYS),this.setTooltip(mt.Msg.DICTS_KEYS_TOOLTIP),this.setOutput(!0,"List")}},Ki={init:function(){this.setColour(Ui),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(mt.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(mt.Msg.DICTS_ADD_VALUE),this.setOutput(!0),this.setTooltip(mt.Msg.DICTS_GET_TOOLTIP)}},Ji={init:function(){this.setColour(Ui),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(mt.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(mt.Msg.DICTS_ADD_VALUE),this.appendValueInput("VAR").appendField(mt.Msg.DICTS_DEFAULT_VALUE),this.setOutput(!0),this.setTooltip(mt.Msg.DICTS_GET_DEFAULT_TOOLTIP)}},zi={init:function(){this.setColour(Ui),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(mt.Msg.DICTS_ADD),this.appendDummyInput(),this.appendValueInput("VAR").appendField(mt.Msg.DICTS_ADD_VALUE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.DICTS_ADD_OR_CHANGE_TOOLTIP)}},qi={init:function(){this.setColour(Ui),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(mt.Msg.DICTS_DELETE_IN),this.appendDummyInput("").appendField(mt.Msg.DICTS_DELETE_VALUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.DICTS_DELETE_TOOLTIP)}},Qi={init:function(){this.setColour(Ui),this.appendValueInput("DICT2").setCheck("Dict").appendField(mt.Msg.MAKE_DICT),this.appendValueInput("DICT").setCheck("Dict").appendField(mt.Msg.DICT_UPDATE),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MID),this.setTooltip(mt.Msg.DICTS_UPDATE_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},ji={init:function(){this.setColour(Ui),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.DICT_CLEAR),this.setTooltip(mt.Msg.DICTS_CLEAR_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Zi={init:function(){this.setColour(Ui),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.DICT_ITEMS),this.setTooltip(mt.Msg.DICTS_ITEMS_TOOLTIP),this.setOutput(!0,"List")}},$i={init:function(){this.setColour(Ui),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.DICT_VALUES),this.setTooltip(mt.Msg.DICTS_VALUES_TOOLTIP),this.setOutput(!0,"List")}},tn={init:function(){this.setColour(Ui),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_LENGTH),this.setTooltip(mt.Msg.DICT_LENGTH_TOOLTIP),this.setOutput(!0,Number)}},en={init:function(){this.setColour(Ui),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.DICT_DELDICT),this.setTooltip(mt.Msg.DICTS_DEL_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},nn={init:function(){this.MODE=[[mt.Msg.DICTS_ADD_OR_CHANGE,"INSERT"],[mt.Msg.MIXLY_MICROBIT_JS_DELETE_VAR,"DELETE"]],this.setHelpUrl(mt.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(Ui),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("AT2"),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).appendField(mt.Msg.DICTS_ADD_VALUE),this.updateAt_(!0),this.setInputsInline(!0),this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e="";switch(t.getFieldValue("WHERE")){case"INSERT":e=mt.Msg.DICTS_ADD_TOOLTIP;break;case"DELETE":e=mt.Msg.DICTS_DELETE_TOOLTIP}return e}))},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT2").type==mt.INPUT_VALUE;return t.setAttribute("at2",e),t},domToMutation:function(t){var e="true"==t.getAttribute("at2");this.updateAt_(e)},updateAt_:function(t){this.removeInput("AT2"),this.removeInput("ORDINAL",!0),t?this.appendValueInput("AT2").setCheck(Number):this.appendDummyInput("AT2");var e=new mt.FieldDropdown(this.MODE,(function(e){var i="INSERT"==e;if(i!=t){var n=this.sourceBlock_;return n.updateAt_(i),n.setFieldValue(e,"WHERE"),null}}));this.getInput("AT2").appendField(e,"WHERE")}},sn={init:function(){this.setColour(Ui),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.blockpy_DICT_POP),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(mt.Msg.DICTS_ADD_VALUE),this.setTooltip(mt.Msg.DICT_POP_TOOLTIP),this.setInputsInline(!0),this.setOutput(!0)}},on={init:function(){this.setColour(Ui),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(mt.Msg.DICTS_SET_DEFAULT),this.appendDummyInput("").appendField(mt.Msg.DICTS_DEFAULT_VALUE),this.appendValueInput("VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.DICTS_SETDEFAULT_TOOLTIP)}},_n={init:function(){this.setColour(Ui),this.appendDummyInput("").appendField(new mt.FieldLabel(mt.Msg.MIXLY_MICROBIT_TYPE_DICT),"TIP").appendField(" "),this.itemCount_=3,this.updateShape_(),this.setOutput(!0,"Dict"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setMutator(new mt.icons.MutatorIcon(["dicts_create_with_item"],this)),this.setTooltip(mt.Msg.DICTS_CREATE_WITH_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("dicts_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},pn={init:function(){this.setColour(Ui),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_TODICT),this.setOutput(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_TOOLTIP_TODICT)}},an={init:function(){this.setColour(Ui),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_TO_JSON),this.setTooltip(mt.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0,Number)}},un={init:function(){this.setColour(Ui),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_CONVERT_TO_JSON),this.setTooltip(mt.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0,Number)}},rn=210,ln={init:function(){var t=mt.RTL?[["=","EQ"],["≠","NEQ"],[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["=","EQ"],["≠","NEQ"],["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(rn),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new mt.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{EQ:mt.Msg.LOGIC_COMPARE_TOOLTIP_EQ,NEQ:mt.Msg.LOGIC_COMPARE_TOOLTIP_NEQ,LT:mt.Msg.LOGIC_COMPARE_TOOLTIP_LT,LTE:mt.Msg.LOGIC_COMPARE_TOOLTIP_LTE,GT:mt.Msg.LOGIC_COMPARE_TOOLTIP_GT,GTE:mt.Msg.LOGIC_COMPARE_TOOLTIP_GTE}[t]})),this.prevBlocks_=[null,null]}},dn={init:function(){var t=mt.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]],e=mt.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(rn),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new mt.FieldDropdown(t),"OP1"),this.appendValueInput("C").appendField(new mt.FieldDropdown(e),"OP2"),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_LOGIC_COMPARE_CONTINOUS_TOOLTIP)}},In={init:function(){var t=[[mt.Msg.LOGIC_OPERATION_AND,"AND"],[mt.Msg.LOGIC_OPERATION_OR,"OR"],[mt.Msg.LOGIC_OPERATION_NOR,"NOR"],[mt.Msg.LOGIC_OPERATION_XOR,"XOR"]];this.setColour(rn),this.setOutput(!0,Boolean),this.appendValueInput("A").setCheck([Boolean,Number]),this.appendValueInput("B").setCheck([Boolean,Number]).appendField(new mt.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{AND:mt.Msg.LOGIC_OPERATION_TOOLTIP_AND,OR:mt.Msg.LOGIC_OPERATION_TOOLTIP_OR,NOR:mt.Msg.LOGIC_OPERATION_TOOLTIP_NOR,XOR:mt.Msg.LOGIC_OPERATION_TOOLTIP_XOR}[t]}))}},Tn={init:function(){this.setColour(rn),this.setOutput(!0,Boolean),this.appendValueInput("BOOL").setCheck([Number,Boolean]).appendField(mt.Msg.LOGIC_NEGATE_TITLE),this.setTooltip(mt.Msg.LOGIC_NEGATE_TOOLTIP)}},hn={init:function(){var t=[[mt.Msg.LOGIC_BOOLEAN_TRUE,"TRUE"],[mt.Msg.LOGIC_BOOLEAN_FALSE,"FALSE"]];this.setColour(rn),this.setOutput(!0,Boolean),this.appendDummyInput().appendField(new mt.FieldDropdown(t),"BOOL"),this.setTooltip(mt.Msg.LOGIC_BOOLEAN_TOOLTIP)}},Mn={init:function(){this.setColour(rn),this.setOutput(!0),this.appendDummyInput().appendField(mt.Msg.LOGIC_NULL),this.setTooltip(mt.Msg.LOGIC_NULL_TOOLTIP)}},mn={init:function(){this.setColour(rn),this.appendValueInput("A"),this.appendValueInput("B").appendField(mt.Msg.LOGIC_TERNARY_IF_TRUE),this.appendValueInput("C").appendField(mt.Msg.LOGIC_TERNARY_IF_FALSE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_LOGIT_TRUEORFALSE)}},On={init:function(){var t=[[mt.Msg.TEXT_APPEND_TO,"in"],[mt.Msg.MIXLY_PYTHON_LOGIC_IS_NOT_IN,"not in"]];this.setColour(rn),this.appendValueInput("A"),this.appendValueInput("B").setCheck([String,"List"]).appendField(new mt.FieldDropdown(t),"BOOL"),this.appendDummyInput("").appendField(mt.Msg.MICROBIT_LOGIC_IS_IN),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(mt.Msg.IN)}},En={init:function(){var t=[[mt.Msg.MIXLY_PYTHON_LOGIC_IS,"is"],[mt.Msg.MIXLY_PYTHON_LOGIC_IS_NOT,"is not"]];this.setColour(rn),this.appendValueInput("A"),this.appendValueInput("B").appendField(new mt.FieldDropdown(t),"BOOL"),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_LOGIC_IS_TOOLTIP)}},Rn={init:function(){this.setColour(rn),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_TOBOOL),this.setOutput(!0,Boolean),this.setTooltip(mt.Msg.MIXLY_PYTHON_TOOLTIP_TOBOOL)}},cn={init:function(){this.setColour(0),this.appendValueInput("fn").setCheck(String).appendField(mt.Msg.MIXLY_PYTHON_STORAGE_OPEN_FILE_WITH_OS+"(For Windows)"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},gn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendValueInput("FILE").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_AS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=mt.Msg.MIXLY_USE,n=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,o=mt.Msg.MIXLY_BELONG;return i+{r:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+o+n+s}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Cn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=mt.Msg.MIXLY_USE,n=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,o=mt.Msg.MIXLY_BELONG,_=mt.Msg.PY_STORAGE_FILE_OBJECT;return i+{r:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+o+n+s+_}))}},Sn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE);this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendDummyInput().appendField(mt.Msg.MIXPY_TEXT_ENCODE).appendField(new mt.FieldDropdown([["ANSI","ANSI"],["gbk","gbk"],["utf-8","utf-8"]]),"CODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=mt.Msg.MIXLY_USE,n=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,o=mt.Msg.MIXLY_BELONG,_=mt.Msg.PY_STORAGE_FILE_OBJECT;return i+{r:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+o+n+s+_}))}},An={init:function(){this.setColour(0),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendValueInput("FILE").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE+mt.Msg.MIXLY_MICROBIT_TYPE_STRING+mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE)}},Ln={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL,"read"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE,"readline"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES,"readlines"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String)}},Nn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,"read"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,"readline"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE,"readlines"]]),"MODE"),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE,n=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER;return i+{read:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,readline:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,readlines:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE}[e]+"x"+n}))}},Dn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.setNextStatement(!0),this.appendValueInput("SIZE").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(mt.Msg.MICROBIT_PYTHON_TYPE)}},fn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(mt.Msg.HTML_FILE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT1)}},Fn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILENAME),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILENAME)}},Pn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE)}},vn={init:function(){this.setColour(0),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES)}};mt.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE;const Yn={init:function(){this.setColour(0),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE,"remove"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_DIRS,"removedirs"]]),"MODE"),this.appendValueInput("FILE").setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE)}},Xn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE+mt.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE)}},xn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_RETURN_FILE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_PRESENT_LOCATION),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_TELL)}},bn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,"start"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,"current"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END,"end"]]),"MODE"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION+mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION,n=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER,s=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET;return i+" "+{start:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,current:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,end:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END}[e]+s+"x"+n}))}},Vn={init:function(){this.setColour(0),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR)}},yn={init:function(){this.setColour(0),this.appendValueInput("PATH").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_SET),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,"mkdir"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MAKEDIRS,"makedirs"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return mt.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH+"x"+mt.Msg.MIXLY_ESP32_SET+{mkdir:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,makedirs:mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},Bn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME),this.appendValueInput("NEWFILE").setCheck(String).appendField(mt.Msg.MIXLY_AS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME)}},Gn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR)}},Un={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.HTML_FILE,"isfile"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_DIR,"isdir"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean);let t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return mt.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH+"x"+mt.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT+{isfile:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,isdir:mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},wn={init:function(){this.setColour(0),this.appendValueInput("SPISUB").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(mt.Msg.MIXLY_SD_CARD),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},kn={init:function(){this.setColour(0),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_SD_CARD),this.appendValueInput("DIR").setCheck(String).appendField(mt.Msg.MIXLY_SDCARD_MOUNT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip()}},Hn={};Hn.NAME_TYPE=mt.PROCEDURE_CATEGORY_NAME,Hn.allProcedures=function(t){for(var e=t.getAllBlocks(!1),i=[],n=[],s=0;s"),this.appendValueInput("style").appendField(mt.Msg.MIXLY_AIP_ATTR).setAlign(mt.inputs.Align.RIGHT),this.appendStatementInput("DO").appendField(""),this.setInputsInline(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Bs={init:function(){this.setColour(Ys),this.appendDummyInput().appendField(mt.Msg.HTML_STYLE),this.appendStatementInput("STYLE"),this.setOutput(!0)}},Gs={init:function(){this.setColour(Ys),this.appendDummyInput().appendField(mt.Msg.HTML_FORM_CONTENT).appendField(new mt.FieldDropdown([[mt.Msg.HTML_TEXT,"text"],[mt.Msg.HTML_EMAIL,"email"],[mt.Msg.HTML_NUMBER,"number"],[mt.Msg.HTML_PASSWORD,"password"],[mt.Msg.HTML_CHECKBOX,"checkbox"],[mt.Msg.HTML_RADIOBUTTON,"radiobutton"],[mt.Msg.HTML_BUTTON,"button"],[mt.Msg.HTML_COLOUR,"colour"],[mt.Msg.HTML_DATE,"date"],[mt.Msg.HTML_LOCALTIME,"local time"],[mt.Msg.HTML_FILE,"file"],[mt.Msg.HTML_HIDDEN,"hidden"],[mt.Msg.HTML_IMAGE,"image"],[mt.Msg.HTML_MONTH,"month"],[mt.Msg.HTML_RANGE,"range"],[mt.Msg.HTML_RESET,"reset"],[mt.Msg.HTML_SEARCH,"search"],[mt.Msg.HTML_SUBMIT,"submit"],[mt.Msg.HTML_TELEPHONENUMBER,"telephone number"],[mt.Msg.HTML_TIME,"time"],[mt.Msg.HTML_URL,"url"],[mt.Msg.HTML_WEEK,"week"]]),"LEVEL"),this.appendDummyInput().appendField(mt.Msg.HTML_NAME).appendField(new mt.FieldTextInput("car"),"NAME"),this.appendDummyInput().appendField(mt.Msg.HTML_VALUE).appendField(new mt.FieldTextInput("go"),"VALUE"),this.appendValueInput("style").appendField(mt.Msg.MIXLY_AIP_ATTR).setAlign(mt.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Us={init:function(){this.setColour(Ys),this.appendDummyInput().appendField(new mt.FieldTextInput("property"),"KEY").appendField(":").appendField(new mt.FieldTextInput("value"),"VALUE"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},ws={init:function(){this.setColour(Ys),this.appendDummyInput().appendField(new mt.FieldTextInput("property"),"KEY").appendField(":").appendField(new mt.FieldColour("#ff0000"),"RGB_LED_COLOR"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},ks={init:function(){this.setColour(Ys),this.appendDummyInput().appendField(mt.Msg.HTML_TEXT).appendField(new mt.FieldTextInput("text"),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Hs=160,Ws={init:function(){this.setColour(Hs),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Tabular Abstraction:"),this.appendDummyInput().appendField(new mt.FieldTable(""),"TEXT")}},Ks={init:function(){this.setColour(Hs),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Code Block:"),this.appendDummyInput().appendField(new mt.FieldMultilineInput(""),"TEXT")}},Js={init:function(){this.setColour(Hs),this.appendDummyInput().appendField("Code Expression:"),this.appendDummyInput().appendField(new mt.FieldMultilineInput(""),"TEXT"),this.setOutput(!0)}},zs={init:function(){this.setColour(Hs),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("VALUE").appendField(""),this.setInputsInline(!1)}},qs={init:function(){this.setColour(Hs),this.appendDummyInput().appendTitle("Comment:").appendTitle(new mt.FieldTextInput(""),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("This comment will be ignored by Python")}},Qs={init:function(){this.setColour(Hs),this.appendValueInput("VALUE").appendField(mt.Msg.TYPE_CHECK),this.setInputsInline(!1),this.setOutput(!0,"Type")}},js={init:function(){this.setColour(Hs),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new mt.icons.MutatorIcon(["text_print_multiple_item"],this)),this.setTooltip(mt.Msg.TEXT_PRINT_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=mt.Block.obtain(t,"text_print_multiple_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n= stop:"," yield start"," start -= abs(step)"])};if(t=function(t,e,i){return"("+t+" <= "+e+") and "+a()+"("+t+", "+e+", "+i+") or "+u()+"("+t+", "+e+", "+i+")"},mt.isNumber(n)&&mt.isNumber(s)&&mt.isNumber(o))n=parseFloat(n),s=parseFloat(s),o=Math.abs(parseFloat(o)),0==n%1&&0==s%1&&0==o%1?(n<=s?(s++,t=0==n&&1==o?s:n+", "+s,1!=o&&(t+=", "+o)):t=n+", "+--s+", -"+o,t="range("+t+")"):(t=n",GTE:">="};const Xp=function(t,e){var i=this.getFieldValue("OP"),n="&&"==i?e.ORDER_LOGICAL_AND:e.ORDER_LOGICAL_OR,s=e.valueToCode(this,"A",n)||"False",o=e.valueToCode(this,"B",n)||"False";if("AND"==i)var _=s+" and "+o;else if("OR"==i)_=s+" or "+o;else if("NOR"==i)_="not("+s+"^"+o+")";else _=s+"^"+o;return[_,n]},xp=function(t,e){var i=e.ORDER_UNARY_PREFIX;return["not "+(e.valueToCode(this,"BOOL",i)||"False"),i]},bp=function(t,e){return["TRUE"==this.getFieldValue("BOOL")?"True":"False",e.ORDER_ATOMIC]},Vp=function(t,e){return["None",e.ORDER_ATOMIC]},yp=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"False";return["("+(e.valueToCode(this,"B",e.ORDER_ATOMIC)||"False")+" if "+i+" else "+(e.valueToCode(this,"C",e.ORDER_ATOMIC)||"False")+")",e.ORDER_ATOMIC]},Bp=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",n=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[i+" "+this.getFieldValue("BOOL")+" "+n,e.ORDER_ATOMIC]},Gp=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",n=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[i+" "+this.getFieldValue("BOOL")+" "+n,e.ORDER_ATOMIC]},Up=function(t,e){return["bool("+(e.valueToCode(this,"VAR",e.ORDER_ATOMIC)||"0")+")",e.ORDER_ATOMIC]},wp=function(t,e){return e.definitions_.import_os="import os","os.startfile("+e.valueToCode(this,"fn",e.ORDER_ATOMIC)+")\n"},kp=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+" = open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')\n"},Hp=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')",e.ORDER_ATOMIC]},Wp=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"', encoding=\""+this.getFieldValue("CODE")+'")',e.ORDER_ATOMIC]},Kp=function(t,e){var i=e.valueToCode(this,"data",e.ORDER_ATOMIC);return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".write("+i+")\n"},Jp=function(t,e){var i=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+i+"()",e.ORDER_ATOMIC]},zp=function(t,e){var i=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+i+"("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},qp=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".readline("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Qp=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".writable()",e.ORDER_ATOMIC]},jp=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".name()",e.ORDER_ATOMIC]},Zp=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".close()\n"},$p=function(t,e){e.definitions_.import_os="import os";return["os.listdir()",e.ORDER_ATOMIC]},ta=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},ea=function(t,e){return e.definitions_.import_os="import os",["os.path.getsize("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},ia=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".tell()",e.ORDER_ATOMIC]},na=function(t,e){var i=this.getFieldValue("MODE"),n=0;return n="start"==i?0:"current"==i?1:2,e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".seek("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+","+n+")\n"},sa=function(t,e){return e.definitions_.import_os="import os","os.chdir("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},oa=function(t,e){e.definitions_.import_os="import os";return["os.getcwd()",e.ORDER_ATOMIC]},_a=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"PATH",e.ORDER_ATOMIC)+")\n"},pa=function(t,e){return e.definitions_.import_os="import os","os.rename("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+","+e.valueToCode(this,"NEWFILE",e.ORDER_ATOMIC)+")\n"},aa=function(t,e){e.definitions_.import_os="import os";var i=e.valueToCode(this,"FILE",e.ORDER_ATOMIC);return["os."+this.getFieldValue("MODE")+"("+i+")",e.ORDER_ATOMIC]},ua=function(t,e){return e.definitions_.import_os="import os",e.definitions_.import_sdcard="import sdcard",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+" = sdcard.SDCard("+e.valueToCode(this,"SPISUB",e.ORDER_ATOMIC)+","+e.valueToCode(this,"PINSUB",e.ORDER_ATOMIC)+")\n"},ra=function(t,e){return e.definitions_.import_os="import os",e.definitions_.import_sdcard="import sdcard","os.mount("+e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+","+e.valueToCode(this,"DIR",e.ORDER_ATOMIC)+")\n"},la=function(t,e){var i=e.variableDB_.getName(this.getFieldValue("NAME"),mt.Procedures.NAME_TYPE),n=e.statementToCode(this,"STACK")||" pass\n";e.INFINITE_LOOP_TRAP&&(n=e.INFINITE_LOOP_TRAP.replace(/%1/g,"'"+this.id+"'")+n);var s=e.valueToCode(this,"RETURN",e.ORDER_NONE)||"";s&&(s=" return "+s+"\n");for(var o=[],_=0;_\n\n\n\t\n"+e.statementToCode(this,"HEAD")+"\n\n"+e.statementToCode(this,"BODY")+"\n\n'''",e.ORDER_ATOMIC]},Wa=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");return"\n"+i+"\n"},Ka=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");if("head"==n)var s="<"+n+'>\n\t\n'+i+"\n";else s="<"+n+">\n"+i+"\n";return s},Ja=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");return"<"+n+">\n"+i+"\n"},za=function(t,e){var i=e.statementToCode(this,"DO"),n=e.valueToCode(this,"style"),s=this.getFieldValue("LEVEL");return"<"+s+" "+n+" >\n"+i+"\n"},qa=function(t,e){return['style="'+e.statementToCode(this,"STYLE")+'"',e.ORDER_ATOMIC]},Qa=function(t,e){return'"},ja=function(){return this.getFieldValue("KEY")+":"+this.getFieldValue("VALUE")+";"},Za=function(){return this.getFieldValue("TEXT")+"\n"},$a=function(t){return t.getFieldValue("TEXT")+"\n"},tu=function(t,e){return[t.getFieldValue("TEXT"),e.ORDER_ATOMIC]},eu=function(t,e){return(e.valueToCode(t,"VALUE",e.ORDER_ATOMIC)||"")+"\n"},iu=function(){return""},nu=function(t,e){return["type("+(e.valueToCode(t,"VALUE",e.ORDER_MEMBER)||"___")+")",e.ORDER_ATOMIC]},su=function(t,e){for(var i=t.getFieldValue("NAME"),n=t.hasReturn_,s=new Array(t.itemCount_),o=0;o0?e.join("\n")+"\n"+n.join("\n")+"\n"+s.join("")+"\n"+t+"while True:\n"+o.join("")+_.join("\n"):e.join("\n")+"\n"+n.join("\n")+"\n"+s.join("")+"\n"+t+_.join("\n")},_u.scrubNakedValue=function(t){return t+"\n"},_u.quote_=function(t){var e="'";return-1!==(t=t.replace(/\\/g,"\\\\").replace(/\n/g,"\\\n")).indexOf("'")&&(-1===t.indexOf('"')?e='"':t=t.replace(/'/g,"\\'")),e+t+e},_u.multiline_quote_=function(t){return"'''"+(t=t.replace(/'''/g,"\\'\\'\\'"))+"'''"},_u.scrub_=function(t,e,i){var n="";if(!t.outputConnection||!t.outputConnection.targetConnection){(o=t.getCommentText())&&(o=mt.utils.string.wrap(o,_u.COMMENT_WRAP-3),n+=_u.prefixLines(o+"\n","# "));for(var s=0;s0?"int("+p+" + "+s+")":s<0?"int("+p+" - "+-s+")":"int("+p+")",n&&(p="-"+p)),p};const pu="#74A55B",au={init:function(){this.setColour(pu),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MIDI),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_SETUP).setCheck("var"),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_RGB_PIN_COUNT)}},uu={init:function(){this.setColour(pu),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(mt.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},ru={init:function(){this.setColour(pu),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(mt.Msg.MIXLY_FREQUENCY),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_DURATION),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE2)}},lu={init:function(){this.setColour(pu),this.appendValueInput("SUB"),this.appendValueInput("LIST").appendField(mt.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS)}},du={init:function(){this.setColour(pu),this.appendValueInput("SUB"),this.appendValueInput("TICKS").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_SET_TEMPO).appendField(mt.Msg.MICROBIT_ACTUATOR_ticks),this.appendValueInput("BPM").setCheck(Number).appendField(mt.Msg.MIXLY_SPEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_SET_TEMPO)}},Iu={init:function(){this.setColour(pu),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Get_current_tempo),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_GET_TEMPO)}},Tu={init:function(){this.setColour(pu),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Reset_music),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_RESET)}},hu={init:function(){this.setColour(pu),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Mu={init:function(){this.setColour(pu),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING).appendField(mt.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_EXTERN_LED_SETONOFF)}},mu={init:function(){this.setColour(pu),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(mt.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_EXTERN_LED_GETONOFF)}},Ou={init:function(){this.setColour(pu),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(mt.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_EXTERN_LED_GETONOFF)}},Eu={init:function(){this.setColour(pu),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING).appendField(mt.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_EXTERN_LED_SETBRIGHT)}},Ru={init:function(){this.setColour(pu),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.MIXLY_SERVO),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},cu={init:function(){this.setColour(pu),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_SERVO).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("DEGREE",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_DEGREE_0_180),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SERVO_MOVE)}},gu={init:function(){this.setColour(pu),this.appendValueInput("VAR").appendField("360°"+mt.Msg.MIXLY_SERVO),this.appendValueInput("SPEED",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SETTING+mt.Msg.blockpy_turtle_rotate+mt.Msg.MIXLY_SPEED+" (-10~10)"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SERVO_360_TOOLTIP)}},Cu={init:function(){this.setColour(pu),this.appendValueInput("PIN",Number).appendField("180°"+mt.Msg.MIXLY_SERVO).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SERVO_MOVE)}},Su={init:function(){this.setColour(pu),this.appendValueInput("PIN",Number).appendField("360°"+mt.Msg.MIXLY_SERVO).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SERVO_SPEED_TOOLIPS)}},Au={init:function(){this.setColour(pu),this.appendValueInput("PIN",Number).appendField("180°"+mt.Msg.MIXLY_SERVO).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setOutput(!0,Number),this.setInputsInline(!0)}},Lu={init:function(){this.setColour(pu),this.appendValueInput("PIN",Number).appendField("360°"+mt.Msg.MIXLY_SERVO).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},Nu={init:function(){this.setColour(pu),this.appendValueInput("SUB").appendField("初始化").setCheck("var"),this.appendDummyInput().appendField("电机驱动"),this.appendDummyInput().appendField("地址").appendField(new mt.FieldDropdown([["A","ms32006.ADDRESS_A"],["B","ms32006.ADDRESS_B"]]),"mode"),this.appendValueInput("SUB1").setCheck("var").setAlign(mt.inputs.Align.RIGHT).appendField("通信"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("初始化MS32006电机驱动,使用I2C通信")}},Du={init:function(){this.setColour(pu),this.appendValueInput("SUB").appendField("直流电机").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Direction).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"ms32006.MOT_CW"],[mt.Msg.ANTI_CLOCKWISE,"ms32006.MOT_CCW"],[mt.Msg.MOTOR_N,"ms32006.MOT_N"],[mt.Msg.MOTOR_P,"ms32006.MOT_P"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEPPER_SET_SPEED),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("设置直流电机的状态及转速(0-100)")}},fu={init:function(){this.setColour(pu),this.appendValueInput("SUB").appendField("步进电机").setCheck("var"),this.appendDummyInput().appendField("选择").appendField(new mt.FieldDropdown([["A","ms32006.MOT_A"],["B","ms32006.MOT_B"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Direction).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"ms32006.MOT_CW"],[mt.Msg.ANTI_CLOCKWISE,"ms32006.MOT_CCW"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField("转速"),this.appendValueInput("steps").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField("步数"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("设置步进电机的状态、转速、步数(0-2047)")}},Fu={init:function(){this.setColour(pu),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_SETUP).setCheck("var"),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PIN),this.appendValueInput("LEDCOUNT").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_COUNT),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_RGB_PIN_COUNT)}},Pu={init:function(){this.setColour(pu),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("_LED_").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MP)}},vu={init:function(){this.setColour(pu),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},Yu={init:function(){this.setColour(pu),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_RGB_WRITE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_WRI)}},Xu={init:function(){this.setColour(pu),this.appendDummyInput("").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"uart").appendField(new mt.FieldDropdown([["uart1","uart1"],["uart2","uart2"]]),"key"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.LISTS_SET_INDEX_INPUT_TO+"SYN6288"+mt.Msg.MIXLY_AipSpeech_synthesis),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setFieldValue("LTR308","key")}},xu={init:function(){this.setColour(pu),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("VOICE").setCheck(Number).appendField(mt.Msg.MIXLY_SET_VOLUME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_SET_VOLUME_TOOLTIP)}},bu={init:function(){this.setColour(pu),this.appendValueInput("SUB").appendField("SYN6288"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_VOLUME),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_SET_VOLUME_TOOLTIP)}},Vu={init:function(){this.setColour(pu),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("VOICE").setCheck(Number).appendField(mt.Msg.MIXLY_PLAY_HINTS),this.appendDummyInput().appendField(mt.Msg.MIXLY_PROGRAM_BLOCK).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"mode"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_PLAY_HINTS_TOOLTIP)}},yu={init:function(){this.setColour(pu),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_AipSpeech_synthesis),this.appendValueInput("VOICE").setCheck(Number).appendField(mt.Msg.MIXLY_BACKGROUND_MUSIC),this.appendDummyInput().appendField(mt.Msg.MIXLY_PROGRAM_BLOCK).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"mode"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_PLAY_TTS_TOOLTIP)}},Bu={init:function(){this.setColour(pu),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.extern_addr),"PIN"),this.setOutput(!0,Number)}},Gu={init:function(){this.setColour(pu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_MOTOR).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_MOTOR_EXTERN_TOOLTIP)}},Uu={init:function(){this.setColour(pu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_MOTOR).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},wu={init:function(){this.setColour(pu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_TRAFFIC_LIGHT).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LISTS_SET_INDEX_SET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_Turn_off_display,"0"],[mt.Msg.MIXLY_TRAFFIC_LIGHT_RED_ON,"1"],[mt.Msg.MIXLY_TRAFFIC_LIGHT_RED_BLINK,"2"],[mt.Msg.MIXLY_TRAFFIC_LIGHT_YELLOW_ON,"3"],[mt.Msg.MIXLY_TRAFFIC_LIGHT_YELLOW_BLINK,"4"],[mt.Msg.MIXLY_TRAFFIC_LIGHT_GREEN_ON,"5"],[mt.Msg.MIXLY_TRAFFIC_LIGHT_GREEN_BLINK,"6"]]),"light"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},ku={init:function(){this.setColour(pu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN).appendField(new mt.FieldDropdown([[mt.Msg.COLOUR_RGB_WHITE,"W"],[mt.Msg.COLOUR_RGB_RED,"R"],[mt.Msg.COLOUR_RGB_YELLOW,"Y"],[mt.Msg.COLOUR_RGB_GREEN,"G"],[mt.Msg.COLOUR_RGB_BLUE,"B"]]),"color").appendField("LED").appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendValueInput("value").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.BRIGHTNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Hu={init:function(){this.setColour(pu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN).appendField(new mt.FieldDropdown([[mt.Msg.COLOUR_RGB_WHITE,"W"],[mt.Msg.COLOUR_RGB_RED,"R"],[mt.Msg.COLOUR_RGB_YELLOW,"Y"],[mt.Msg.COLOUR_RGB_GREEN,"G"],[mt.Msg.COLOUR_RGB_BLUE,"B"]]),"color").appendField("LED").appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.BRIGHTNESS),this.setOutput(!0,Number),this.setInputsInline(!0)}},Wu={init:function(){this.setColour(pu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"[0]"],[mt.Msg.MIXLY_SPEED,"[1]"],[mt.Msg.MATH_SINGLE_OP_ABSOLUTE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"[2]"],[mt.Msg.MIXLY_RELATIVE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"[3]"],[mt.Msg.MIXLY_MIXBOT_SERVO_BLOCK_OR_NOT,"[4]"],[mt.Msg.MIXLY_MIXBOT_SERVO_FINISH_OR_NOT,"[5]"],[mt.Msg.MIXLY_ALL,""]]),"status"),this.setOutput(!0,Number),this.setInputsInline(!0)}},Ku={init:function(){this.setColour(pu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_SERVO_SET_STOP_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_KEEP,"0"],[mt.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_COAST,"1"],[mt.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_BRAKE,"2"]]),"status"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Ju={init:function(){this.setColour(pu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_STOP),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},zu={init:function(){this.setColour(pu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.MATH_SINGLE_OP_ABSOLUTE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+mt.Msg.MSG.run).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MODE).setAlign(mt.inputs.Align.RIGHT).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_SPEED+mt.Msg.MIXLY_MODE,"0"],[mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER+mt.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField("%"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_SERVO_TURN_DIRECTION).setAlign(mt.inputs.Align.RIGHT).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"0"],[mt.Msg.MIXLY_MIXBOT_SERVO_NEAREST_PATH,"1"],[mt.Msg.ANTI_CLOCKWISE,"2"]]),"direction"),this.appendValueInput("angle").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_DISPLAY_MATRIX_ROTATE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_SERVO_ABSOLUTE_ANGLE_TOOLTIP)}},qu={init:function(){this.setColour(pu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.MIXLY_RELATIVE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+mt.Msg.MSG.run).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_SERVO_RELATIVE_ORIGIN_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Qu={init:function(){this.setColour(pu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.MIXLY_RELATIVE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+mt.Msg.MSG.run).appendField("("+mt.Msg.MIXLY_MIXBOT_SERVO_LIKE_ENCODING_MOTOR+")").appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MODE).setAlign(mt.inputs.Align.RIGHT).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_SPEED+mt.Msg.MIXLY_MODE,"0"],[mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER+mt.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField("%"),this.appendValueInput("angle").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_DISPLAY_MATRIX_ROTATE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_SERVO_RELATIVE_ANGLE_TOOLTIP)}},ju={init:function(){this.setColour(pu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.MIXLY_RELATIVE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+mt.Msg.MSG.run).appendField("("+mt.Msg.MIXLY_MIXBOT_SERVO_LIKE_ORDINARY_MOTOR+")").appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MODE).setAlign(mt.inputs.Align.RIGHT).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_SPEED+mt.Msg.MIXLY_MODE,"0"],[mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER+mt.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField("%"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_SERVO_TURN_DIRECTION).setAlign(mt.inputs.Align.RIGHT).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"0"],[mt.Msg.ANTI_CLOCKWISE,"2"]]),"direction"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Zu={init:function(){this.setColour(pu),this.appendDummyInput().appendField(mt.Msg.MIXBOT).appendField(mt.Msg.ME_GO_MOTOR_EXTERN).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MOTOR,"ext_motor"],[mt.Msg.MIXLY_TRAFFIC_LIGHT,"ext_traffic"],[mt.Msg.COLOUR_RGB_WHITE+"LED","W_LED"],[mt.Msg.COLOUR_RGB_RED+"LED","R_LED"],[mt.Msg.COLOUR_RGB_YELLOW+"LED","Y_LED"],[mt.Msg.COLOUR_RGB_GREEN+"LED","G_LED"],[mt.Msg.COLOUR_RGB_BLUE+"LED","B_LED"],[mt.Msg.MIXLY_SERVO_MOTOR,"ext_servo"]]),"name"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_EXTERN_GET_ADDR),this.setOutput(!0),this.setInputsInline(!0)}},$u={init:function(){this.setColour(pu),this.appendDummyInput().appendField(mt.Msg.MIXBOT).appendField(mt.Msg.ME_GO_MOTOR_EXTERN).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MOTOR,"ext_motor"],[mt.Msg.MIXLY_TRAFFIC_LIGHT,"ext_traffic"],[mt.Msg.COLOUR_RGB_WHITE+"LED","W_LED"],[mt.Msg.COLOUR_RGB_RED+"LED","R_LED"],[mt.Msg.COLOUR_RGB_YELLOW+"LED","Y_LED"],[mt.Msg.COLOUR_RGB_GREEN+"LED","G_LED"],[mt.Msg.COLOUR_RGB_BLUE+"LED","B_LED"],[mt.Msg.MIXLY_SERVO_MOTOR,"ext_servo"]]),"name"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_EXTERN_SET_ADDR),this.appendValueInput("old").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE),this.appendValueInput("new").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_UPDATE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},tr="#6C9858",er={init:function(){this.setColour(tr),this.appendDummyInput("").appendField(new mt.FieldDropdown([["L1","1"],["L2","2"]]),"op"),this.setOutput(!0)}},ir={init:function(){this.setColour(tr),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_ESP32_ON,"1"],[mt.Msg.MIXLY_ESP32_OFF,"0"],[mt.Msg.MIXLY_ESP32_TOGGLE,"-1"]]),"flag"),this.setOutput(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW)}},nr={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(mt.Msg.MIXLY_BUILDIN_LED),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_SETONOFF)}},sr={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("led").appendField(mt.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput().appendField(mt.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},or={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("led").appendField(mt.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput().appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},_r={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(mt.Msg.MIXLY_BUILDIN_LED),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_SETTING+mt.Msg.MIXLY_BUILDIN_LED+mt.Msg.MIXLY_BRIGHTNESS+"(0-100%)")}},pr={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(mt.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput("").appendField(mt.Msg.MIXLY_LCD_SETCOLOR).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LIGHT_OFF,"0"],[mt.Msg.MIXLY_LIGHT_RED,"1"],[mt.Msg.MIXLY_LIGHT_GREEN,"2"],[mt.Msg.MIXLY_LIGHT_BLUE,"3"],[mt.Msg.MIXLY_LIGHT_YELLOW,"4"],[mt.Msg.MIXLY_LIGHT_CYAN,"5"],[mt.Msg.MIXLY_LIGHT_PURPLE,"6"],[mt.Msg.MIXLY_LIGHT_WHITE,"7"]]),"colorvalue"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip()}},ar={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING).appendField(mt.Msg.MIXLY_BUILDIN_LED).appendField(new mt.FieldDropdown([[mt.Msg.COLOUR_RGB_RED,"r"],[mt.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_SETONOFF)}},ur={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(mt.Msg.MIXLY_BUILDIN_LED).appendField(new mt.FieldDropdown([[mt.Msg.COLOUR_RGB_RED,"r"],[mt.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendDummyInput().appendField(mt.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},rr={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(mt.Msg.MIXLY_BUILDIN_LED).appendField(new mt.FieldDropdown([[mt.Msg.COLOUR_RGB_RED,"r"],[mt.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendDummyInput().appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},lr={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING).appendField(mt.Msg.MIXLY_BUILDIN_LED).appendField(new mt.FieldDropdown([[mt.Msg.COLOUR_RGB_RED,"r"],[mt.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_SETTING+mt.Msg.MIXLY_BUILDIN_LED+mt.Msg.MIXLY_BRIGHTNESS+"(0-10)")}},dr={init:function(){this.setColour(tr),this.appendDummyInput("").appendField(new mt.FieldDropdown([["L1","20"],["L2","21"]]),"op"),this.setOutput(!0)}},Ir={init:function(){this.setColour(tr),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("_LED_").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);switch(Ot.Boards.getSelectedBoardKey()){case"micropython:esp32c3:mixgo_cc":case"micropython:esp32s2:mixgo_ce":this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOCC);break;case"micropython:esp32c3:mixgo_me":default:this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOME);break;case"micropython:esp32:mPython":this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MPYTHON)}}},Tr={init:function(){this.setColour(tr),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},hr={init:function(){this.setColour(tr),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RAINBOW),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_DURATION).appendField(mt.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},Mr={init:function(){this.setColour(tr),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(mt.Msg.MIXLY_CHASE),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.PYTHON_RANGE_STEP).appendField(mt.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},mr={init:function(){this.setColour(tr),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_RGB_WRITE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_WRI)}},Or={init:function(){this.setColour(tr),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("_LED_").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);switch(Ot.Boards.getSelectedBoardKey()){case"micropython:esp32c3:mixgocc":this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOCC);break;case"micropython:esp32c3:mixgome":default:this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOME);break;case"micropython:esp32:mPython":this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MPYTHON)}}},Er={init:function(){this.setColour(tr),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},Rr={init:function(){this.setColour(tr),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(mt.Msg.MIXLY_CHASE),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.PYTHON_RANGE_STEP).appendField(mt.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},cr={init:function(){this.setColour(tr),this.appendValueInput("TICKS").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_SET_TEMPO).appendField(mt.Msg.MICROBIT_ACTUATOR_ticks),this.appendValueInput("BPM").setCheck(Number).appendField(mt.Msg.MIXLY_SPEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_SET_TEMPO)}},gr={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Get_current_tempo),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_GET_TEMPO)}},Cr={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Reset_music),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_RESET)}},Sr={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(mt.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},Ar={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(mt.Msg.MIXLY_FREQUENCY),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_DURATION),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE2)}},Lr={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Nr={init:function(){this.setColour(tr),this.appendValueInput("LIST").appendField(mt.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS)}},Dr={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MOTOR_DC).appendField(new mt.FieldDropdown([["1","1"],["2","2"],["3","3"]]),"wheel"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Direction).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"CW"],[mt.Msg.ANTI_CLOCKWISE,"CCW"],[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},fr={init:function(){this.setColour(tr),this.appendDummyInput().appendField("MixGo Car").appendField(new mt.FieldDropdown([[mt.Msg.blockpy_forward,"F"],[mt.Msg.blockpy_backward,"B"],[mt.Msg.blockpy_left,"L"],[mt.Msg.blockpy_right,"R"]]),"VAR"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Fr={init:function(){this.setColour(tr),this.appendDummyInput("").appendField("MixGo Car").appendField(new mt.FieldDropdown([[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"VAR"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},Pr={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MOTOR_DC).appendField(new mt.FieldDropdown([[mt.Msg.MIXLYCAR_WHEEL_LEFT,"L"],[mt.Msg.MIXLYCAR_WHEEL_RIGHT,"R"]]),"wheel"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Direction).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"CW"],[mt.Msg.ANTI_CLOCKWISE,"CCW"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},vr={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MOTOR_DC).appendField(new mt.FieldDropdown([[mt.Msg.MIXLYCAR_WHEEL_LEFT,"L"],[mt.Msg.MIXLYCAR_WHEEL_RIGHT,"R"]]),"wheel"),this.appendDummyInput().appendField(mt.Msg.MIXLY_STOP).appendField(new mt.FieldDropdown([[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"direction"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Yr={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_MOTOR_STATUS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_MOTOR_STATUS_TOOLTIP)}},Xr={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MIXBOT).appendField(new mt.FieldDropdown([[mt.Msg.blockpy_forward,"F"],[mt.Msg.blockpy_backward,"B"],[mt.Msg.blockpy_left,"L"],[mt.Msg.blockpy_right,"R"]]),"VAR"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"PWR"],[mt.Msg.MIXLY_SPEED,"SPEED"],[mt.Msg.MIXLY_MIXBOT_MOTOR_TURNS,"TURNS"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_MOVE_TOOLTIP)}},xr={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MIXBOT).appendField(new mt.FieldDropdown([[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"VAR"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},br={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MIXBOT).appendField(mt.Msg.MIXLY_MOTOR).appendField(new mt.FieldDropdown([[mt.Msg.TEXT_TRIM_LEFT,"1"],[mt.Msg.TEXT_TRIM_RIGHT,"2"],[mt.Msg.TEXT_TRIM_BOTH,"0"]]),"wheel"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"PWR"],[mt.Msg.MIXLY_SPEED,"SPEED"],[mt.Msg.MIXLY_MIXBOT_MOTOR_TURNS,"TURNS"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_MOVE_TOOLTIP)}},Vr={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_BUZZER),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_ON,"0"],[mt.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_OFF,"1"]]),"on_off"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},yr={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.BITBOT).appendField(new mt.FieldDropdown([[mt.Msg.blockpy_forward,"F"],[mt.Msg.blockpy_backward,"B"],[mt.Msg.blockpy_left,"L"],[mt.Msg.blockpy_right,"R"]]),"VAR"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Br={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.BITBOT).appendField(new mt.FieldDropdown([[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"VAR"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Gr={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.BITBOT).appendField(mt.Msg.MIXLY_MOTOR).appendField(new mt.FieldDropdown([[mt.Msg.TEXT_TRIM_LEFT,"0"],[mt.Msg.TEXT_TRIM_RIGHT,"1"]]),"wheel"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Direction).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"CW"],[mt.Msg.ANTI_CLOCKWISE,"CCW"],[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Ur={init:function(){this.setColour(tr),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_MIXBOT_SOUND_SET_LOUDNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_SETONOFF)}},wr={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_SOUND_LOUDNESS+"(%)"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},kr={init:function(){this.setColour(tr),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_SETTING+mt.Msg.MIXLY_MIXBOT_BUZZER+mt.Msg.MIXLY_MP3_VOL),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_SETONOFF)}},Hr={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_MIXBOT_BUZZER+mt.Msg.MIXLY_MP3_VOL+"(%)"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},Wr={init:function(){this.setColour(tr),this.appendValueInput("PATH").appendField(mt.Msg.MIXLY_RECORD_AUDIO).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.appendValueInput("TIME").setCheck(Number).appendField(mt.Msg.MIXLY_GET_PRESSES_TIME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Kr={init:function(){this.setColour(tr),this.appendValueInput("PATH").appendField(mt.Msg.MIXLY_PLAY_AUDIO).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Jr={init:function(){this.setColour(tr),this.appendValueInput("PATH").appendField(mt.Msg.MIXLY_PLAY_ONLINE_AUDIO).appendField("URL"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},zr={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(mt.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},qr={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Qr={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.LISTS_SET_INDEX_SET+mt.Msg.ME_GO_MOTOR_EXTERN).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([["1","1"],["2","2"]]),"index"),this.appendValueInput("duty").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.blynk_IOT_IR_POWER+mt.Msg.MIXLY_PINMODEOUT),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip()}},jr={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.ME_GO_MOTOR_EXTERN).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([["1","1"],["2","2"]]),"index"),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.blynk_IOT_IR_POWER+mt.Msg.MIXLY_PINMODEOUT+mt.Msg.MIXLY_DUTY_RATIO),this.setOutput(!0,Number),this.setInputsInline(!0)}},Zr={init:function(){this.setColour(tr),this.appendDummyInput().appendField(mt.Msg.LISTS_SET_INDEX_SET+mt.Msg.ME_GO_MOTOR_EXTERN).appendField(mt.Msg.MIXLY_ALL+mt.Msg.PIN_NUMBERING),this.appendValueInput("duty").setCheck(Number).setAlign(mt.ALIGN_RIGHT).appendField(mt.Msg.blynk_IOT_IR_POWER+mt.Msg.MIXLY_PINMODEOUT+mt.Msg.MIXLY_FREQUENCY),this.appendDummyInput().appendField("Hz"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_MOTOR_EXTERN_TOOLTIP)}},$r="#90A244",tl={init:function(){this.setColour($r),this.appendDummyInput("").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"uart").appendField(new mt.FieldDropdown([["uart1","uart1"],["uart2","uart2"]]),"key"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.LISTS_SET_INDEX_INPUT_TO+"MixGo AI"+mt.Msg.MSG.catSensor),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},el={init:function(){this.setColour($r),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_QR_CODE+mt.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ALL_CODE_ANALYSIS),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.OLED_STRING,"info1"],[mt.Msg.MIXLY_POSITION_XY+"-xywh","rect"],["x"+mt.Msg.MIXLY_POSITION_XY,"rect[0]"],["y"+mt.Msg.MIXLY_POSITION_XY,"rect[1]"],["w"+mt.Msg.MIXLY_POSITION_XY,"rect[2]"],["h"+mt.Msg.MIXLY_POSITION_XY,"rect[3]"],[mt.Msg.MICROPYTHON_HUSKYLENS_X_CENTERED+mt.Msg.MIXLY_POSITION_XY,"xc"],[mt.Msg.MICROPYTHON_HUSKYLENS_Y_CENTERED+mt.Msg.MIXLY_POSITION_XY,"yc"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_QR_CODE_TOOLTIP)}},il={init:function(){this.setColour($r),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_QR_CODE+mt.Msg.MIXPY_OBJECT,"qrcode"],[mt.Msg.MIXLY_BAR_CODE+mt.Msg.MIXPY_OBJECT,"barcode"],[mt.Msg.MIXLY_TAG+mt.Msg.MIXPY_OBJECT,"apriltag"]]),"TYPE"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ANALYSIS_RESULT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip()}},nl={init:function(){this.setColour($r),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.MIXLY_QR_CODE_RECOGNTITION),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.PROCEDURES_DEFRETURN_RETURN+"[qrcode]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_QR_CODE_RECOGNTITION_TOOLTIP)}},sl={init:function(){this.setColour($r),this.appendValueInput("SUB"),this.appendValueInput("RX").appendField(mt.Msg.MIXLY_SETTING+mt.Msg.MIXLY_ETHERNET_CLINET_PORT).appendField("RX#").setCheck(Number).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("TX").appendField("TX#").setCheck(Number).setAlign(mt.inputs.Align.RIGHT),this.appendDummyInput().appendField(mt.Msg.SOFT_RESET+mt.Msg.MIXLY_ESP32_RGB_WRITE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"mode"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_CONFIG_TOOLTIP)}},ol={init:function(){this.setColour($r),this.appendValueInput("SUB"),this.appendValueInput("led1").appendField(mt.Msg.MIXLY_SETTING).appendField("RGB1").setCheck(Number).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("led2").appendField("RGB2").setCheck(Number).setAlign(mt.inputs.Align.RIGHT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_CONFIG_TOOLTIP)}},_l={init:function(){this.setColour($r),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_BAR_CODE+mt.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ALL_CODE_ANALYSIS),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.OLED_STRING,"info1"],[mt.Msg.MIXLY_POSITION_XY+"-xywh","rect"],["x"+mt.Msg.MIXLY_POSITION_XY,"rect[0]"],["y"+mt.Msg.MIXLY_POSITION_XY,"rect[1]"],["w"+mt.Msg.MIXLY_POSITION_XY,"rect[2]"],["h"+mt.Msg.MIXLY_POSITION_XY,"rect[3]"],[mt.Msg.MICROPYTHON_HUSKYLENS_X_CENTERED+mt.Msg.MIXLY_POSITION_XY,"xc"],[mt.Msg.MICROPYTHON_HUSKYLENS_Y_CENTERED+mt.Msg.MIXLY_POSITION_XY,"yc"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_BAR_CODE_TOOLTIP)}},pl={init:function(){this.setColour($r),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.MIXLY_BAR_CODE_RECOGNTITION),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.PROCEDURES_DEFRETURN_RETURN+"[barcode]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_BAR_CODE_RECOGNTITION_TOOLTIP)}},al={init:function(){this.setColour($r),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_TAG+mt.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ALL_CODE_ANALYSIS),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.OLED_STRING,"info1"],[mt.Msg.blockpy_turtle_rotate+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"info2"],[mt.Msg.MIXLY_POSITION_XY+"-xywh","rect"],["x"+mt.Msg.MIXLY_POSITION_XY,"rect[0]"],["y"+mt.Msg.MIXLY_POSITION_XY,"rect[1]"],["w"+mt.Msg.MIXLY_POSITION_XY,"rect[2]"],["h"+mt.Msg.MIXLY_POSITION_XY,"rect[3]"],[mt.Msg.MICROPYTHON_HUSKYLENS_X_CENTERED+mt.Msg.MIXLY_POSITION_XY,"xc"],[mt.Msg.MICROPYTHON_HUSKYLENS_Y_CENTERED+mt.Msg.MIXLY_POSITION_XY,"yc"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_TAG_TOOLTIP)}},ul={init:function(){this.setColour($r),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.MIXLY_TAG_RECOGNTITION),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.PROCEDURES_DEFRETURN_RETURN+"[tag]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_TAG_RECOGNTITION_TOOLTIP)}},rl={init:function(){this.setColour($r),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_LINE+mt.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ALL_CODE_ANALYSIS),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LINE_ANGLE,"info1"],[mt.Msg.MIXLY_POSITION_XY+"-x1x2y1y2","rect"],["x1"+mt.Msg.MIXLY_POSITION_XY,"rect[0]"],["x2"+mt.Msg.MIXLY_POSITION_XY,"rect[1]"],["y1"+mt.Msg.MIXLY_POSITION_XY,"rect[2]"],["y2"+mt.Msg.MIXLY_POSITION_XY,"rect[3]"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_LINE_TOOLTIP)}},ll={init:function(){this.setColour($r),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.MIXLY_LINE_RECOGNTITION),this.appendValueInput("VAR1").appendField(mt.Msg.MIXLY_ESP32_THRESHOLD).setCheck(Number).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("VAR2").appendField(mt.Msg.MIXLY_LINE_RECOGNTITION_ANGLE).setCheck(Number).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("VAR3").appendField(mt.Msg.MIXLY_LINE_RECOGNTITION_SLOPE).setCheck(Number).setAlign(mt.inputs.Align.RIGHT),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.PROCEDURES_DEFRETURN_RETURN+"[line]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_LINE_RECOGNTITION_TOOLTIP)}},dl={init:function(){this.setColour($r),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_CIRCLE+mt.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ALL_CODE_ANALYSIS),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_CIRCLE_AREA,"info1"],[mt.Msg.MIXLY_POSITION_XY+"-xywh","rect"],["x"+mt.Msg.MIXLY_POSITION_XY,"rect[0]"],["y"+mt.Msg.MIXLY_POSITION_XY,"rect[1]"],["w"+mt.Msg.MIXLY_POSITION_XY,"rect[2]"],["h"+mt.Msg.MIXLY_POSITION_XY,"rect[3]"],[mt.Msg.MICROPYTHON_HUSKYLENS_X_CENTERED+mt.Msg.MIXLY_POSITION_XY,"xc"],[mt.Msg.MICROPYTHON_HUSKYLENS_Y_CENTERED+mt.Msg.MIXLY_POSITION_XY,"yc"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_CIRCLE_TOOLTIP)}},Il={init:function(){this.setColour($r),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.MIXLY_CIRCLE_RECOGNTITION),this.appendValueInput("VAR1").appendField(mt.Msg.MIXLY_ESP32_THRESHOLD).setCheck(Number).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("VAR2").appendField(mt.Msg.MIXLY_CIRCLE_RECOGNTITION_MIN).setCheck(Number).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("VAR3").appendField(mt.Msg.MIXLY_CIRCLE_RECOGNTITION_MAX).setCheck(Number).setAlign(mt.inputs.Align.RIGHT),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.PROCEDURES_DEFRETURN_RETURN+"[circle]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_CIRCLE_RECOGNTITION_TOOLTIP)}},Tl={init:function(){this.setColour($r),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_RECT+mt.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ALL_CODE_ANALYSIS),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_CIRCLE_AREA,"info1"],[mt.Msg.MIXLY_POSITION_XY+"-xywh","rect"],["x"+mt.Msg.MIXLY_POSITION_XY,"rect[0]"],["y"+mt.Msg.MIXLY_POSITION_XY,"rect[1]"],["w"+mt.Msg.MIXLY_POSITION_XY,"rect[2]"],["h"+mt.Msg.MIXLY_POSITION_XY,"rect[3]"],[mt.Msg.MICROPYTHON_HUSKYLENS_X_CENTERED+mt.Msg.MIXLY_POSITION_XY,"xc"],[mt.Msg.MICROPYTHON_HUSKYLENS_Y_CENTERED+mt.Msg.MIXLY_POSITION_XY,"yc"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_RECT_TOOLTIP)}},hl={init:function(){this.setColour($r),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.MIXLY_RECT_RECOGNTITION),this.appendValueInput("VAR1").appendField(mt.Msg.MIXLY_ESP32_THRESHOLD).setCheck(Number).setAlign(mt.inputs.Align.RIGHT),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.PROCEDURES_DEFRETURN_RETURN+"[rect]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_COLOR_RECOGNTITION_TOOLTIP)}},Ml={init:function(){this.setColour($r),this.appendValueInput("VAR").appendField(mt.Msg.HTML_COLOUR+mt.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_COLOR_ANALYSIS),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([["RGB"+mt.Msg.HTML_COLOUR,"[0]"],["LAB"+mt.Msg.MIXLY_COLOR_LAB,"[1]"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_COLOR_TOOLTIP)}},ml={init:function(){this.setColour($r),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.MIXLY_COLOR_RECOGNTITION),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.PROCEDURES_DEFRETURN_RETURN+"color"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_COLOR_RECOGNTITION_TOOLTIP)}},Ol={init:function(){this.setColour($r),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_COLOR_CHASE+mt.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_COLOR_CHASE_ANALYSIS),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_CIRCLE_AREA,"info1"],[mt.Msg.MIXLY_POSITION_XY+"-xywh","rect"],["x"+mt.Msg.MIXLY_POSITION_XY,"rect[0]"],["y"+mt.Msg.MIXLY_POSITION_XY,"rect[1]"],["w"+mt.Msg.MIXLY_POSITION_XY,"rect[2]"],["h"+mt.Msg.MIXLY_POSITION_XY,"rect[3]"],[mt.Msg.MICROPYTHON_HUSKYLENS_X_CENTERED+mt.Msg.MIXLY_POSITION_XY,"xc"],[mt.Msg.MICROPYTHON_HUSKYLENS_Y_CENTERED+mt.Msg.MIXLY_POSITION_XY,"yc"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_CIRCLE_TOOLTIP)}},El={init:function(){this.setColour($r),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.MIXLY_COLOR_CHASE),this.appendValueInput("VAR1").appendField("LAB"+mt.Msg.MIXLY_COLOR_LAB).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("VAR2").appendField(mt.Msg.MIXLY_ESP32_THRESHOLD).setCheck(Number).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("VAR3").appendField(mt.Msg.MIXLY_COLOR_CHASE_MERGE).setCheck(Number).setAlign(mt.inputs.Align.RIGHT),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.PROCEDURES_DEFRETURN_RETURN+"[colors]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_CIRCLE_RECOGNTITION_TOOLTIP)}},Rl={init:function(){this.setColour($r),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.MIXLY_LOCAL_TRAIN),this.appendValueInput("VAR1").appendField(mt.Msg.MIXLY_OBJECT_LIST).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("VAR2").appendField(mt.Msg.MICROPYTHON_HUSKYLENS_SAVE_AS+mt.Msg.MIXLY_MODEL_NAME).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("VAR3").appendField(mt.Msg.MIXLY_TRAIN_TIME).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("VAR4").appendField(mt.Msg.MIXLY_AipNlp_Topic_Title).setAlign(mt.inputs.Align.RIGHT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_LOCAL_TRAIN_TOOLTIP)}},cl={init:function(){this.setColour($r),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.MIXLY_LOCAL_CLASS),this.appendValueInput("VAR1").appendField(mt.Msg.MIXLY_OBJECT_LIST).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("VAR2").appendField(mt.Msg.MIXLY_MODEL_NAME).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("VAR4").appendField(mt.Msg.MIXLY_AipNlp_Topic_Title).setAlign(mt.inputs.Align.RIGHT),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.PROCEDURES_DEFRETURN_RETURN+"[objects]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_MODEL_NAME_TOOLTIP)}},gl={init:function(){this.setColour($r),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_LOCAL_CLASS+mt.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_COLOR_CHASE_ANALYSIS),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([["ID","info1"],[mt.Msg.MIXLY_CONFIDENCE_DEGREE,"info2"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_LOCAL_CLASS_TOOLTIP)}},Cl={init:function(){this.setColour($r),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MUSIC_RECORD),this.appendValueInput("VAR1").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("VAR2").appendField(mt.Msg.MIXPY_AI_AUDIO_TIME).setAlign(mt.inputs.Align.RIGHT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_MUSIC_RECORD_TOOLTIP)}},Sl={init:function(){this.setColour($r),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MUSIC_PLAY),this.appendValueInput("VAR1").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("VAR2").appendField(mt.Msg.MIXLY_MP3_VOL).setAlign(mt.inputs.Align.RIGHT),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Al={init:function(){this.setColour($r),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.MIXLY_YOLO_RECOGNIZE),this.appendValueInput("VAR1").appendField(mt.Msg.MIXLY_ANCHOR).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("VAR2").appendField(mt.Msg.MIXLY_MODEL_PATH).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("VAR4").appendField(mt.Msg.MIXLY_AipNlp_Topic_Title).setAlign(mt.inputs.Align.RIGHT),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.PROCEDURES_DEFRETURN_RETURN+"[objects]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_YOLO_RECOGNIZE_TOOLTIP)}},Ll={init:function(){this.setColour($r),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_YOLO_RECOGNIZE+mt.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_COLOR_CHASE_ANALYSIS),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([["ID","info1"],[mt.Msg.MIXLY_CONFIDENCE_DEGREE,"info2"],[mt.Msg.MIXLY_POSITION_XY+"-xywh","rect"],["x"+mt.Msg.MIXLY_POSITION_XY,"rect[0]"],["y"+mt.Msg.MIXLY_POSITION_XY,"rect[1]"],["w"+mt.Msg.MIXLY_POSITION_XY,"rect[2]"],["h"+mt.Msg.MIXLY_POSITION_XY,"rect[3]"],[mt.Msg.MICROPYTHON_HUSKYLENS_X_CENTERED+mt.Msg.MIXLY_POSITION_XY,"xc"],[mt.Msg.MICROPYTHON_HUSKYLENS_Y_CENTERED+mt.Msg.MIXLY_POSITION_XY,"yc"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_YOLO_RECOGNIZE_RESULT_TOOLTIP)}},Nl={init:function(){this.setColour($r),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.MIXLY_AipSpeech_asr),this.appendValueInput("VAR1").appendField(mt.Msg.MIXLY_AI_SENSOR_ASR_RECOGNISE_CORPUS).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("VAR2").appendField(mt.Msg.MIXLY_ESP32_THRESHOLD).setAlign(mt.inputs.Align.RIGHT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_ASR_RECOGNISE_TOOLTIP)}},Dl={init:function(){this.setColour($r),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_LICENSEPLATE+mt.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ALL_CODE_ANALYSIS),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([["ID","info1"],[mt.Msg.MIXLY_POSITION_XY+"-xywh","rect"],["x"+mt.Msg.MIXLY_POSITION_XY,"rect[0]"],["y"+mt.Msg.MIXLY_POSITION_XY,"rect[1]"],["w"+mt.Msg.MIXLY_POSITION_XY,"rect[2]"],["h"+mt.Msg.MIXLY_POSITION_XY,"rect[3]"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_LICENSEPLATE_TOOLTIP)}},fl={init:function(){this.setColour($r),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.MIXLY_AipOcr_licensePlate),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.PROCEDURES_DEFRETURN_RETURN+"[licensePlate]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_LICENSEPLATE_RECOGNTITION_TOOLTIP)}},Fl={init:function(){this.setColour($r),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_FACE+mt.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ALL_CODE_ANALYSIS),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([["ID","info1"],[mt.Msg.MIXLY_CONFIDENCE_DEGREE,"info2"],[mt.Msg.MIXLY_POSITION_XY+"-xywh","rect"],["x"+mt.Msg.MIXLY_POSITION_XY,"rect[0]"],["y"+mt.Msg.MIXLY_POSITION_XY,"rect[1]"],["w"+mt.Msg.MIXLY_POSITION_XY,"rect[2]"],["h"+mt.Msg.MIXLY_POSITION_XY,"rect[3]"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_FACE_TOOLTIP)}},Pl={init:function(){this.setColour($r),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.MIXLY_AipFace),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.PROCEDURES_DEFRETURN_RETURN+"[face]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_BAR_FACE_CLASSIFIER_TOOLTIP)}},vl={init:function(){this.setColour($r),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_20OBJECTS+mt.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ALL_CODE_ANALYSIS),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([["ID","info1"],[mt.Msg.MIXLY_CONFIDENCE_DEGREE,"info2"],[mt.Msg.MIXLY_POSITION_XY+"-xywh","rect"],["x"+mt.Msg.MIXLY_POSITION_XY,"rect[0]"],["y"+mt.Msg.MIXLY_POSITION_XY,"rect[1]"],["w"+mt.Msg.MIXLY_POSITION_XY,"rect[2]"],["h"+mt.Msg.MIXLY_POSITION_XY,"rect[3]"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_20OBJECTS_TOOLTIP)}},Yl={init:function(){this.setColour($r),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.MIXLY_FIND_20OBJECTS),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.PROCEDURES_DEFRETURN_RETURN+"[20objects]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_AI_SENSOR_BAR_FIND_20OBJECTS_TOOLTIP)}},Xl={init:function(){this.setColour(205),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_AipSpeech_asr,"ASR"],[mt.Msg.MIXLY_AI_UNIT,"UNIT"]]),"CTYPE"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_Client).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("API_KEY").appendField("API_KEY").setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("SECRET_KEY").appendField("SECRET_KEY").setAlign(mt.inputs.Align.RIGHT),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},xl={init:function(){this.setColour(205),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_AI_UNIT).appendField(mt.Msg.MIXLY_Client).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("ID").appendField("ID").setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("STR").appendField(mt.Msg.OLED_STRING).setAlign(mt.inputs.Align.RIGHT),this.setInputsInline(!0),this.setOutput(!0)}},bl={init:function(){this.setColour(205),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_AipSpeech_asr).appendField(mt.Msg.MIXLY_Client).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("FILE").appendField(mt.Msg.MIXPY_AI_AUDIO_TIME).setAlign(mt.inputs.Align.RIGHT),this.appendDummyInput("").appendField(mt.Msg.MIXLY_LANGUAGE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_AI_LANGUAGE_CHINESE,"1537"],[mt.Msg.MIXLY_AI_LANGUAGE_ENGLISH,"1737"],[mt.Msg.MIXLY_AI_LANGUAGE_CANTONESE,"1637"]]),"LANGUAGE"),this.setInputsInline(!0),this.setOutput(!0)}},Vl="#2FAD7A",yl={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:Vl,helpUrl:mt.Msg.MPYTHON_BLYNK_TERMINAL_WIDGET_VPIN_HELPURL,tooltip:mt.Msg.MPYTHON_BLYNK_TERMINAL_WIDGET_VPIN_TOOLTIP,message0:mt.Msg.MPYTHON_BLYNK_TERMINAL_WIDGET_VPIN_MESSAGE0,args0:[{check:Number,type:"input_value",name:"virtual_pin"}]})}},Bl={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:Vl,helpUrl:mt.Msg.MPYTHON_BLYNK_SYNC_VIRTUAL_HELPURL,tooltip:mt.Msg.MPYTHON_BLYNK_SYNC_VIRTUAL_TOOLTIP,message0:mt.Msg.MPYTHON_BLYNK_SYNC_VIRTUAL_MESSAGE0,args0:[{check:Number,type:"input_value",name:"virtual_pin"}]})}},Gl={init:function(){this.jsonInit({inputsInline:!0,colour:Vl,helpUrl:mt.Msg.MPYTHON_BLYNK_ON_DISCONNECTED_HELPURL,tooltip:mt.Msg.MPYTHON_BLYNK_ON_DISCONNECTED_TOOLTIP,message0:mt.Msg.MPYTHON_BLYNK_ON_DISCONNECTED_MESSAGE0}),this.appendStatementInput("DO").appendField(mt.CONTROLS_REPEAT_INPUT_DO)}},Ul={init:function(){this.jsonInit({inputsInline:!0,colour:Vl,helpUrl:mt.Msg.MPYTHON_BLYNK_ON_CONNECTED_HELPURL,tooltip:mt.Msg.MPYTHON_BLYNK_ON_CONNECTED_TOOLTIP,message0:mt.Msg.MPYTHON_BLYNK_ON_CONNECTED_MESSAGE0}),this.appendStatementInput("DO").appendField(mt.CONTROLS_REPEAT_INPUT_DO)}},wl={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:Vl,helpUrl:mt.Msg.MPYTHON_BLYNKTIMER_RUN_HELPURL,tooltip:mt.Msg.MPYTHON_BLYNKTIMER_RUN_TOOLTIP,message0:mt.Msg.MPYTHON_BLYNKTIMER_RUN_MESSAGE0})}},kl={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:Vl,helpUrl:mt.Msg.MPYTHON_BLYNK_RUN_HELPURL,tooltip:mt.Msg.MPYTHON_BLYNK_RUN_TOOLTIP,message0:mt.Msg.MPYTHON_BLYNK_RUN_MESSAGE0})}},Hl={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:Vl,helpUrl:mt.Msg.MPYTHON_BLYNK_APP_NOTIFY_HELPURL,tooltip:mt.Msg.MPYTHON_BLYNK_APP_NOTIFY_TOOLTIP,message0:mt.Msg.MPYTHON_BLYNK_APP_NOTIFY_MESSAGE0,args0:[{check:String,type:"input_value",name:"notification"}]})}},Wl={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:Vl,helpUrl:mt.Msg.MPYTHON_BLYNK_STOP_TIMERS_HELPURL,tooltip:mt.Msg.MPYTHON_BLYNKTIMER_TOOLTIP,message0:mt.Msg.MPYTHON_BLYNK_STOP_TIMERS_MESSAGE0,args0:[{check:Number,type:"input_value",name:"timer_num"}]})}},Kl={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:Vl,helpUrl:mt.Msg.MPYTHON_BLYNK_SET_PROPERTY_HELPURL,tooltip:mt.Msg.MPYTHON_BLYNK_SET_PROPERTY_TOOLTIP,message0:mt.Msg.MPYTHON_BLYNK_SET_PROPERTY_MESSAGE0,args0:[{check:String,type:"input_value",name:"attribute_name"},{type:"input_value",name:"attribute_value"}]})}},Jl={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:Vl,helpUrl:mt.Msg.MPYTHON_BLYNK_EMAIL_HELPURL,tooltip:mt.Msg.MPYTHON_BLYNK_EMAIL_TOOLTIP,message0:mt.Msg.MPYTHON_BLYNK_EMAIL_MESSAGE0,args0:[{check:String,type:"input_value",name:"TargetEmail"},{check:String,type:"input_value",name:"subject"},{check:String,type:"input_value",name:"body"}]})}},zl={init:function(){this.jsonInit({inputsInline:!0,output:null,colour:Vl,helpUrl:mt.Msg.MPYTHON_BLYNK_GET_TIMERS_HELPURL,tooltip:mt.Msg.MPYTHON_BLYNK_GET_TIMERS_TOOLTIP,message0:mt.Msg.MPYTHON_BLYNK_GET_TIMERS_MESSAGE0})}},ql={init:function(){this.jsonInit({message0:mt.Msg.MPYTHON_BLYNKTIMER_MESSAGE0,colour:Vl,helpUrl:mt.Msg.MPYTHON_BLYNKTIMER_HELPURL,tooltip:mt.Msg.MPYTHON_BLYNKTIMER_TOOLTIP,args0:[{check:Number,type:"input_value",name:"Num"},{options:[[mt.Msg.MIXLY_PYTHON_PERIODIC,"False"],[mt.Msg.MIXLY_PYTHON_ONE_SHOT,"True"]],type:"field_dropdown",name:"Timer_mode"},{check:Number,type:"input_value",name:"period"}]}),this.appendStatementInput("DO").appendField(mt.CONTROLS_REPEAT_INPUT_DO)}},Ql={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:Vl,helpUrl:mt.Msg.MPYTHON_BLYNK_SENSOR_DATA_TO_APP_HELPURL,tooltip:mt.Msg.MPYTHON_BLYNK_SENSOR_DATA_TO_APP_TOOLTIP,message0:mt.Msg.MPYTHON_BLYNK_SENSOR_DATA_TO_APP_MESSAGE0,args0:[{type:"input_value",name:"sensor_data"},{check:Number,type:"input_value",name:"virtual_pin"}]})}},jl={init:function(){this.jsonInit({inputsInline:!0,colour:Vl,helpUrl:mt.Msg.MPYTHON_BLYNK_APP_DATA_HELPURL,tooltip:mt.Msg.MPYTHON_BLYNK_SENSOR_DATA_TO_APP_TOOLTIP,message0:mt.Msg.MPYTHON_BLYNK_APP_DATA_MESSAGE0,args0:[{check:Number,type:"input_value",name:"virtual_pin"},{type:"input_value",name:"virtual_pin_val"}]}),this.appendStatementInput("DO").appendField(mt.CONTROLS_REPEAT_INPUT_DO)}},Zl={init:function(){this.jsonInit({nextStatement:null,previousStatement:null,colour:Vl,helpUrl:mt.Msg.MPYTHON_BLYNK_SETUP_HELPURL,tooltip:mt.Msg.MPYTHON_BLYNK_SETUP_TOOLTIP,message0:mt.Msg.MPYTHON_BLYNK_SETUP_MESSAGE0,args0:[{type:"input_dummy"},{check:String,type:"input_value",name:"server"},{check:Number,type:"input_value",name:"port"},{check:String,type:"input_value",name:"auth"}]})}},$l={init:function(){this.setColour(40),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP+" CC_G1"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{temperature:mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,relative_humidity:mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},td={init:function(){this.setColour(40),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GET_BATTERY),this.setOutput(!0,Number),this.setInputsInline(!0)}},ed={init:function(){this.setColour(40),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_JOYSTICK).appendField(new mt.FieldDropdown([["x","[0]"],["y","[1]"],["(x,y)",""]]),"VAR"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_DATA),this.setOutput(!0,Number),this.setInputsInline(!0)}},id={init:function(){this.setColour(40),this.appendDummyInput().appendField(mt.Msg.MIXLY_BUTTON).appendField(new mt.FieldDropdown([["A","0"],["B","1"],["C","2"],["D","3"],["POWER","4"],["SELECT","5"]]),"VAR"),this.appendDummyInput("").appendField(mt.Msg.WHETHER_IS_PRESSED),this.setOutput(!0,Number),this.setInputsInline(!0)}},nd={init:function(){this.setColour(40),this.appendDummyInput("").appendField(mt.Msg.MIXLY_HANDLE_SHUTDOWN),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},sd=100,od={init:function(){this.setColour(sd),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXGO_LEFT_FRONT+mt.Msg.COLOUR_RGB_GREEN+mt.Msg.MIXLY_EXTERN_LED,"GLED[0]"],[mt.Msg.MIXGO_RIGHT_FRONT+mt.Msg.COLOUR_RGB_GREEN+mt.Msg.MIXLY_EXTERN_LED,"GLED[1]"],[mt.Msg.MIXGO_LEFT_BACK+mt.Msg.COLOUR_RGB_GREEN+mt.Msg.MIXLY_EXTERN_LED,"GLED[3]"],[mt.Msg.MIXGO_RIGHT_BACK+mt.Msg.COLOUR_RGB_GREEN+mt.Msg.MIXLY_EXTERN_LED,"GLED[2]"],[mt.Msg.MIXGO_LEFT_FRONT+mt.Msg.COLOUR_RGB_RED+mt.Msg.MIXLY_EXTERN_LED,"RLED[0]"],[mt.Msg.MIXGO_RIGHT_FRONT+mt.Msg.COLOUR_RGB_RED+mt.Msg.MIXLY_EXTERN_LED,"RLED[1]"],[mt.Msg.MIXGO_LEFT_BACK+mt.Msg.COLOUR_RGB_RED+mt.Msg.MIXLY_EXTERN_LED,"RLED[3]"],[mt.Msg.MIXGO_RIGHT_BACK+mt.Msg.COLOUR_RGB_RED+mt.Msg.MIXLY_EXTERN_LED,"RLED[2]"],[mt.Msg.ME_GO_LIGHT_HEADLIGHT,"WLED"]]),"op"),this.setOutput(!0)}},_d={init:function(){this.setColour(sd),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField("ME GO"),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_SETONOFF)}},pd={init:function(){this.setColour(sd),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("led").appendField("ME GO"),this.appendDummyInput().appendField(mt.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},ad={init:function(){this.setColour(sd),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("led").appendField("ME GO"),this.appendDummyInput().appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},ud={init:function(){this.setColour(sd),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField("ME GO"),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_SETTING+mt.Msg.MIXLY_BUILDIN_LED+mt.Msg.MIXLY_BRIGHTNESS+"(0-10)")}},rd={init:function(){this.setColour(sd),this.appendDummyInput().appendField("ME GO").appendField(new mt.FieldDropdown([[mt.Msg.blockpy_forward,"F"],[mt.Msg.blockpy_backward,"B"],[mt.Msg.blockpy_left,"L"],[mt.Msg.blockpy_right,"R"]]),"VAR"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},ld={init:function(){this.setColour(sd),this.appendDummyInput().appendField("ME GO").appendField(new mt.FieldDropdown([[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"VAR"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},dd={init:function(){this.setColour(sd),this.appendDummyInput().appendField("ME GO").appendField(mt.Msg.MOTOR_DC).appendField(new mt.FieldDropdown([[mt.Msg.MIXLYCAR_WHEEL_LEFT,"0"],[mt.Msg.MIXLYCAR_WHEEL_RIGHT,"1"],[mt.Msg.ME_GO_MOTOR_EXTERN,"2"]]),"wheel"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Direction).appendField(new mt.FieldDropdown([[mt.Msg.ROTATION_FORWARD,"CW"],[mt.Msg.ROTATION_BACKWARD,"CCW"],[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Id={init:function(){this.setColour(sd),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_INTERRUPT).appendField(mt.Msg.ME_GO_HALL_SENSOR),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.TEXT_TRIM_LEFT,"A"],[mt.Msg.TEXT_TRIM_RIGHT,"B"]]),"mode"),this.appendValueInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Td={init:function(){this.setColour(sd),this.appendDummyInput("").appendField(mt.Msg.ME_GO_HALL_SENSOR),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.TEXT_TRIM_LEFT,"A"],[mt.Msg.TEXT_TRIM_RIGHT,"B"]]),"mode"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP),this.appendDummyInput("").appendField(new mt.FieldDropdown([["turns","turns"],["distance","distance"],["turns,distance","all"]]),"args"),this.appendValueInput("num").setCheck(Number),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},hd={init:function(){this.setColour(sd),this.appendDummyInput("").appendField(mt.Msg.ME_GO_HALL_SENSOR),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.TEXT_TRIM_LEFT,"A"],[mt.Msg.TEXT_TRIM_RIGHT,"B"]]),"mode"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput("").appendField(new mt.FieldDropdown([["turns","turns"],["distance","distance"],["speed","speed"]]),"args"),this.setOutput(!0),this.setInputsInline(!0)}},Md={init:function(){this.setColour(sd),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new mt.FieldDropdown([[mt.Msg.TEXT_TRIM_LEFT,"[0]"],[mt.Msg.MIXGO_LEFT_MID,"[1]"],[mt.Msg.MIXGO_RIGHT_MID,"[2]"],[mt.Msg.TEXT_TRIM_RIGHT,"[3]"],[mt.Msg.MIXLY_ALL,""]]),"key").appendField(mt.Msg.MIXGO_LINE_SENSOR_VAL),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip((function(){return mt.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP+mt.Msg.MIXLY_ESP32_NEAR}))}},md={init:function(){this.setColour(sd),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXGO_LEFT_FRONT,"[0]"],[mt.Msg.MIXGO_RIGHT_FRONT,"[1]"],[mt.Msg.MIXGO_LEFT_BACK,"[3]"],[mt.Msg.MIXGO_RIGHT_BACK,"[2]"],[mt.Msg.MIXLY_ALL,""]]),"key").appendField(mt.Msg.MIXGO_PROXIMITY_SENSOR),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip((function(){return mt.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP+mt.Msg.MIXLY_ESP32_NEAR}))}},Od={init:function(){this.setColour(sd),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXGO_CAR_SENSOR_ONBOARD_CHANGE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_ME_GO_CAR_SENSOR_ONBOARD_AUTO_CHANGE,"AS"],[mt.Msg.MIXLY_MIXGO_CAR_USE_LINE_ONLY,"LP"],[mt.Msg.MIXLY_MIXGO_CAR_USE_PROXIMITY_ONLY,"OA"],[mt.Msg.MIXLY_ME_GO_CAR_LIGHT_SEEKING_ONLY,"LS"],[mt.Msg.ME_GO_SENSOR_MODE_OFF,"CL"]]),"key"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Ed={init:function(){this.setColour(sd),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GET_GESTURE).appendField(new mt.FieldDropdown([[mt.Msg.ME_GO_PITCH,"[0]"],[mt.Msg.ME_GO_ROLL,"[1]"],[mt.Msg.ME_GO_PITCH+", "+mt.Msg.ME_GO_ROLL,""]]),"angle"),this.appendDummyInput(""),this.setOutput(!0,Number),this.setInputsInline(!0)}},Rd={init:function(){this.setColour(sd),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new mt.FieldDropdown([[mt.Msg.TEXT_TRIM_LEFT,"[0]"],[mt.Msg.MIXGO_LEFT_MID,"[1]"],[mt.Msg.MIXGO_RIGHT_MID,"[2]"],[mt.Msg.TEXT_TRIM_RIGHT,"[3]"],[mt.Msg.MIXLY_ALL,""]]),"key").appendField(mt.Msg.MIXLY_ME_GO_CAR_LIGHT_SEEKING_SENSOR),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip((function(){return mt.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP+mt.Msg.MIXLY_ME_GO_CAR_LIGHT_SEEKING_SENSOR}))}},cd=140,gd={init:function(){this.setColour(cd),this.appendDummyInput().appendField(mt.Msg.MIXLY_LED_ON_BOARD+"I2C"),this.setOutput(!0),this.setInputsInline(!0)}},Cd={init:function(){this.setColour(cd),this.appendDummyInput().appendField(mt.Msg.MIXLY_LED_ON_BOARD+"SPI"),this.setOutput(!0),this.setInputsInline(!0)}},Sd={init:function(){this.setColour(cd),this.appendValueInput("SUB").appendField("I2C "+mt.Msg.MIXLY_SETUP).setCheck("var"),this.appendValueInput("TX",Number).appendField("SCL").setCheck(Number).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("RX",Number).appendField("SDA").setCheck(Number).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("freq").setCheck(Number).appendField(mt.Msg.MIXLY_FREQUENCY).setAlign(mt.inputs.Align.RIGHT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_I2C_INIT)}},Ad={init:function(){this.setColour(cd),this.appendValueInput("VAR").appendField("I2C").setCheck("var"),this.appendValueInput("address").setCheck(Number).appendField(mt.Msg.MIXLY_ESP32_RNUMBER),this.appendValueInput("data").setCheck(Number).appendField(mt.Msg.LANG_MATH_BYTE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_JS_I2C_READ)}},Ld={init:function(){this.setColour(cd),this.appendValueInput("VAR").appendField("I2C").setCheck("var"),this.appendValueInput("address").setCheck(Number).appendField(mt.Msg.MIXLY_ESP32_WNUMBER),this.appendValueInput("data").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_I2C_VALUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_JS_I2C_WRITE)}},Nd={init:function(){this.setColour(cd),this.appendValueInput("VAR").appendField("I2C").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_I2C_SCAN1+mt.Msg.MIXLY_ESP32_I2C_SCAN2),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_I2C_SCAN)}},Dd={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField(mt.Msg.MIXLY_ESP32_SPI_INIT),this.appendValueInput("freq").setCheck(Number).appendField(mt.Msg.MIXLY_SERIAL_BEGIN),this.appendValueInput("sck").setCheck(Number).appendField("SCK"),this.appendValueInput("mosi").setCheck(Number).appendField("MOSI"),this.appendValueInput("miso").setCheck(Number).appendField("MISO"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SPI_INIT_TOOLTIP)}},fd={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField("SPI"),this.appendValueInput("data").setCheck(Number).appendField(mt.Msg.MIXLY_SETTING+mt.Msg.MIXLY_SERIAL_BEGIN),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SPI_SET)}},Fd={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField("SPI"),this.appendValueInput("data").setCheck(Number).appendField(mt.Msg.MIXLY_ESP32_SET+mt.Msg.MIXLY_ESP32_SPI_BUFFER),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SPI_BUFFER_SET)}},Pd={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField("SPI"),this.appendValueInput("data").setCheck(Number).appendField(mt.Msg.MIXLY_SERIAL_READ),this.appendDummyInput("").appendField(mt.Msg.MIXLY_4DIGITDISPLAY_NOMBER2+mt.Msg.LANG_MATH_BYTE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SPI_READ)}},vd={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField("SPI"),this.appendValueInput("data").setCheck(Number).appendField(mt.Msg.MIXLY_SERIAL_READ),this.appendDummyInput("").appendField(mt.Msg.MIXLY_4DIGITDISPLAY_NOMBER2+mt.Msg.LANG_MATH_BYTE+" "+mt.Msg.MIXLY_ESP32_SPI_OUTPUT),this.appendValueInput("val").setCheck(Number),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SPI_READ_OUTPUT)}},Yd={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField("SPI"),this.appendValueInput("data").setCheck("var").appendField(mt.Msg.MIXLY_SERIAL_READ+mt.Msg.MIXLY_ESP32_SPI_BUFFER),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SPI_READINTO)}},Xd={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField("SPI"),this.appendValueInput("data").setCheck("var").appendField(mt.Msg.MIXLY_SERIAL_READ+mt.Msg.MIXLY_ESP32_SPI_BUFFER),this.appendValueInput("val").setCheck(Number).appendField(mt.Msg.MIXLY_ESP32_SPI_OUTPUT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SPI_READINTO_OUTPUT)}},xd={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField("SPI"),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_ESP32_WRITE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SPI_WRITE)}},bd={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField("SPI"),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_ESP32_WRITE),this.appendValueInput("val").setCheck("var").appendField(mt.Msg.MIXLY_ESP32_BUFFER_READ),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SPI_WRITE_READINTO)}},Vd={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField("I2C"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_READ),this.setOutput(!0,Number)}},yd={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField("I2C"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_READ+mt.Msg.MIXLY_ESP32_SUCCESS),this.setOutput(!0,Boolean),this.setTooltip(mt.Msg.MIXLY_ESP32_I2C_AVAILABLE)}},Bd={init:function(){this.setColour(cd),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_I2C_SLAVE_ONRECEIVE).setCheck(Number),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Gd={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField("OneWire "+mt.Msg.MIXLY_SETUP),this.appendValueInput("BUS").setCheck(Number).appendField(mt.Msg.MIXLY_PIN),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_OW_INIT)}},Ud={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField("OneWire"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_ONEWIRE_SCAN),this.setOutput(!0,"List"),this.setTooltip(mt.Msg.MIXLY_ESP32_OW_SCAN)}},wd={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField("OneWire"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_ONEWIRE_READ),this.setOutput(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_OW_READ)}},kd={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField("OneWire"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_WRITE).appendField(new mt.FieldDropdown([[mt.Msg.LANG_MATH_STRING,"write"],[mt.Msg.LANG_MATH_BYTE,"writebyte"]]),"op"),this.appendValueInput("byte").setCheck([Number,String]),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_OW_WRITE)}},Hd={init:function(){this.setColour(cd),this.appendValueInput("VAR").appendField("OneWire").setCheck("var"),this.appendValueInput("byte").setCheck(String).appendField(mt.Msg.LISTS_SET_INDEX_SET).appendField("ROM"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_OW_SELECT)}},Wd={init:function(){this.setColour(cd),this.appendValueInput("VAR").appendField("OneWire").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.blockpy_turtle_reset),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_OW_RESET)}},Kd={init:function(){this.setColour(cd),this.appendValueInput("PIN").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.MIXLY_IR_RECEIVE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_TYPE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_IR_INPUT1,"8"],[mt.Msg.MIXLY_IR_INPUT2,"16"],[mt.Msg.MIXLY_IR_INPUT3,"0"],[mt.Msg.MIXLY_TR_SEND_RC,"RC5"]]),"type"),this.appendValueInput("SUB").appendField(mt.Msg.CONTROLS_REPEAT_INPUT_DO+mt.Msg.MIXLY_ESP32_ONENET_SUB),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Jd={init:function(){this.setColour(cd),this.appendDummyInput().appendField(mt.Msg.MIXlY_RECV_FUN),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_IR_CMD_CODE,"0"],[mt.Msg.MIXLY_IR_ADDR_CODE,"1"],[mt.Msg.MIXLY_IR_RAW_CODE,"2"],[mt.Msg.MIXLY_IR_PULSE,"3"]]),"index"),this.setOutput(!0),this.setInputsInline(!0)}},zd={init:function(){this.setColour(cd),this.appendDummyInput().appendField(mt.Msg.MIXlY_RECV_FUN).appendField(new mt.FieldDropdown([[mt.Msg.MILY_PAUSE,"True"],[mt.Msg.MIXLY_RECOVER,"False"]]),"en"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},qd={init:function(){this.setColour(cd),this.appendDummyInput().appendField(mt.Msg.MIXlY_RECV_FUN),this.appendDummyInput().appendField(mt.Msg.MIXLY_IR_WHETHER_RECV),this.setOutput(!0),this.setInputsInline(!0)}},Qd={init:function(){this.setColour(cd),this.appendValueInput("time").appendField(mt.Msg.MIXlY_RECV_FUN).appendField(mt.Msg.MIXLY_IR_TIMEOUT),this.appendDummyInput().appendField(mt.Msg.MIXLY_MILLISECOND),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},jd={init:function(){this.setColour(cd),this.appendValueInput("PIN").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.MIXLY_IR_SEND).appendField(mt.Msg.MIXLY_PIN),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_TYPE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_IR_SEND_samsung1,"False"],[mt.Msg.MIXLY_IR_SEND_samsung2,"True"],[mt.Msg.MIXLY_TR_SEND_RC,"RC5"]]),"type").appendField(mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER),this.appendValueInput("power"),this.appendDummyInput().appendField(mt.Msg.MATH_QUYU_SYMBOL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Zd={init:function(){this.setColour(cd),this.appendDummyInput().appendField(mt.Msg.MIXLY_IR_SEND),this.appendValueInput("cmd").appendField(mt.Msg.MIXLY_IR_CMD_CODE),this.appendValueInput("addr").appendField(mt.Msg.MIXLY_IR_ADDR_CODE),this.appendValueInput("toggle").appendField(mt.Msg.MIXLY_CONTROL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_TRANSMIT_CONVEN_DATA)}},$d={init:function(){this.setColour(cd),this.appendDummyInput().appendField(mt.Msg.MIXLY_IR_SEND),this.appendValueInput("LIST").appendField(mt.Msg.MIXLY_IR_PULSE).setAlign(mt.inputs.Align.RIGHT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},tI={init:function(){this.setColour(cd),this.appendDummyInput().appendField(mt.Msg.MIXLY_IR_SEND),this.appendValueInput("raw").appendField(mt.Msg.MIXLY_IR_RAW_CODE).setAlign(mt.inputs.Align.RIGHT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},eI={init:function(){this.setColour(cd),this.appendDummyInput().appendField(mt.Msg.MIXLY_IR_TRANSMIT_DONE),this.setOutput(!0),this.setInputsInline(!0)}},iI={init:function(){this.setColour(cd),this.appendValueInput("VAR").appendField(mt.Msg.MSG.catBLE).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MSG.catEthernet_init+mt.Msg.MIXLY_MICROBIT_PY_STORAGE_AS+mt.Msg.MSG.catBLE_UART),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},nI={init:function(){this.setColour(cd),this.appendValueInput("VAR").appendField(mt.Msg.MSG.catBLE).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MSG.catEthernet_init+mt.Msg.MIXLY_MICROBIT_PY_STORAGE_AS+mt.Msg.MSG.catBLE_HID),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.HTML_NAME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},sI={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_ONEWIRE_SCAN+mt.Msg.MSG.catBLE),this.setOutput(!0),this.setInputsInline(!0)}},oI={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXGO_ESPNOW_MAC),this.setOutput(!0),this.setInputsInline(!0)}},_I={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_TEXT_JOIN+mt.Msg.MSG.catBLE).appendField(new mt.FieldDropdown([[mt.Msg.HTML_NAME,"name"],[mt.Msg.MIXLY_ETHERNET_MAC_ADDRESS,"mac"]]),"mode"),this.appendValueInput("data").setCheck(String),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},pI={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_DISCONNECT_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},aI={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MSG.catBLE+mt.Msg.MIXLY_SEND_DATA),this.appendValueInput("data").appendField(mt.Msg.HTML_BODY),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},uI={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MSG.catBLE+mt.Msg.MIXLY_EMQX_IS_CONNECT),this.setOutput(!0),this.setInputsInline(!0)}},rI={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var"),this.appendValueInput("METHOD").appendField(mt.Msg.MIXLY_MIXGO_ESPNOW_RECV).appendField(mt.Msg.CONTROLS_REPEAT_INPUT_DO+mt.Msg.MIXLY_ESP32_ONENET_SUB),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},lI={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXGO_ESPNOW_RECV),this.setOutput(!0),this.setInputsInline(!0)}},dI={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField(mt.Msg.MIXLY_BLE_HANDLE),this.appendValueInput("METHOD").appendField(mt.Msg.MIXLY_MIXGO_ESPNOW_RECV).appendField(mt.Msg.CONTROLS_REPEAT_INPUT_DO+mt.Msg.MIXLY_ESP32_ONENET_SUB),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},II={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField("ESPnow "+mt.Msg.MIXLY_SETUP),this.appendValueInput("CHNL").setCheck(Number).appendField(mt.Msg.MIXLY_MP_ESPNOW_CHANNEL),this.appendDummyInput("").appendField(mt.Msg.MIXLY_TX_POWER).appendField(new mt.FieldDropdown([["20","20"],["18","18"],["16","16"],["15","15"],["14","14"],["13","13"],["11","11"],["8","8"],["7","7"],["5","5"],["2","2"]]),"op"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},TI={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField("ESPnow "+mt.Msg.MIXLY_SETUP),this.appendValueInput("CHNL").setCheck(Number).appendField(mt.Msg.MIXLY_MP_ESPNOW_CHANNEL),this.appendValueInput("DB").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER),this.appendDummyInput().appendField("db"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MP_ESPNOW_INIT_TOOLTIP)}},hI={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField("ESPnow "),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXGO_ESPNOW_MAC),this.setOutput(!0),this.setInputsInline(!0)}},MI={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField("ESPnow "),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXGO_ESPNOW_INFO),this.setOutput(!0),this.setInputsInline(!0)}},mI={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField("ESPnow "),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXGO_ESPNOW_RECV),this.appendDummyInput().appendField(new mt.FieldDropdown([["("+mt.Msg.MIXLY_ETHERNET_MAC_ADDRESS+", "+mt.Msg.OLED_STRING+")",""],[mt.Msg.MIXLY_ETHERNET_MAC_ADDRESS,"[0]"],[mt.Msg.OLED_STRING,"[1]"]]),"mode"),this.setOutput(!0),this.setInputsInline(!0)}},OI={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField("ESPnow "),this.appendValueInput("mac").appendField(mt.Msg.MIXLY_MIXGO_ESPNOW_SEND_MAC),this.appendValueInput("content").appendField(mt.Msg.MIXLY_MIXGO_ESPNOW_SEND),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXGO_ESPNOW_SEND_TOOLTIP)}},EI={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField("ESPnow "),this.appendValueInput("METHOD").appendField(mt.Msg.MIXLY_EMQX_SET_METHOD),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},RI={init:function(){this.setColour(cd),this.appendDummyInput().appendField(mt.Msg.MIXLY_MP_ESPNOW_RADIO_INIT),this.appendValueInput("CHNL").setCheck(Number),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},cI={init:function(){this.setColour(cd),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING+mt.Msg.MIXLY_MP_ESPNOW_RADIO+mt.Msg.MIXLY_TX_POWER).appendField(new mt.FieldDropdown([["20","20"],["18","18"],["16","16"],["15","15"],["14","14"],["13","13"],["11","11"],["8","8"],["7","7"],["5","5"],["2","2"]]),"op"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},gI={init:function(){this.setColour(cd),this.appendDummyInput().appendField(mt.Msg.MIXLY_MP_ESPNOW_RADIO_INIT),this.appendValueInput("CHNL").setCheck(Number),this.appendValueInput("DB").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER),this.appendDummyInput().appendField("db"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MP_ESPNOW_RADIO_INIT_TOOLTIP)}},CI={init:function(){this.setColour(cd),this.appendDummyInput().appendField(mt.Msg.MIXLY_MP_ESPNOW_RADIO),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_ON,"True"],[mt.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_OFF,"False"]]),"on_off"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},SI={init:function(){this.setColour(cd),this.appendDummyInput().appendField(mt.Msg.MIXLY_MP_ESPNOW_RADIO).appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.appendValueInput("send").setCheck(String),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXGO_ESPNOW_SEND_TOOLTIP)}},AI={init:function(){this.setColour(cd),this.appendDummyInput().appendField(mt.Msg.MIXLY_MP_ESPNOW_RADIO).appendField(mt.Msg.MIXLY_MIXGO_ESPNOW_RECV),this.setOutput(!0),this.setInputsInline(!0)}},LI={init:function(){this.setColour(cd),this.appendDummyInput().appendField(mt.Msg.MIXLY_MP_ESPNOW_RADIO_RECEIVED_MSG),this.setOutput(!0),this.setInputsInline(!0)}},NI={init:function(){this.setColour(cd),this.appendDummyInput().appendField(mt.Msg.MIXLY_MP_ESPNOW_RADIO_MSG_RECEIVED),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!1),this.setNextStatement(!1)}},DI={init:function(){this.setColour(cd),this.appendDummyInput().appendField(mt.Msg.MIXLY_MP_ESPNOW_RADIO_MSG_RECEIVED_CERTAIN).appendField('"').appendField(new mt.FieldTextInput("on"),"msg").appendField('"'),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!1),this.setNextStatement(!1)}},fI={init:function(){this.setColour(cd),this.appendDummyInput().appendField(mt.Msg.MIXLY_MP_ESPNOW_RADIO_MSG_RECEIVED),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!1),this.setNextStatement(!1)}},FI={init:function(){this.setColour(cd),this.appendDummyInput().appendField(mt.Msg.MIXLY_MP_ESPNOW_RADIO_MSG_RECEIVED_CERTAIN).appendField('"').appendField(new mt.FieldTextInput("on"),"msg").appendField('"'),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!1),this.setNextStatement(!1)}},PI={init:function(){this.setColour(cd),this.appendValueInput("SUB").appendField("Lora"+mt.Msg.MIXLY_SETUP).setCheck("var"),this.appendValueInput("SPISUB").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("frequency").appendField(mt.Msg.MIXLY_FREQUENCY),this.appendValueInput("rate").appendField(mt.Msg.MIXLY_CODE_RATE),this.appendValueInput("factor").appendField(mt.Msg.MIXLY_SPREADING_FACTOR),this.appendValueInput("power").appendField(mt.Msg.MIXLY_TX_POWER),this.appendDummyInput().appendField(mt.Msg.MIXLY_SIGNAL_BANDWIDTH).appendField(new mt.FieldDropdown([["7800","7800"],["10400","10400"],["15600","15600"],["20800","20800"],["31250","31250"],["41700","41700"],["62500","62500"],["125000","125000"],["250000","250000"],["500000","500000"]]),"bandwidth"),this.setFieldValue("125000","bandwidth"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_LORA_INIT_TOOLTIP)}},vI={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField("Lora "),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_PACKAGE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_SIGNAL_STRENGTH,"packet_rssi"],[mt.Msg.MIXLY_SIGNAL_NOISE_RATE,"packet_snr"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},YI={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField("Lora "),this.appendDummyInput().appendField(mt.Msg.MIXLY_SEND_DATA),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},XI={init:function(){this.setColour(cd),this.appendValueInput("VAR").setCheck("var").appendField("Lora "),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXGO_ESPNOW_RECV),this.setOutput(!0,String),this.setInputsInline(!0)}},xI={init:function(){this.setColour(cd),this.appendValueInput("DOMAIN").appendField(mt.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(mt.Msg.blockpy_REQUESTS_GET).appendField(new mt.FieldTextInput("response"),"VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.blockpy_REQUESTS_GET_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},bI={init:function(){this.appendValueInput("VAL");var t=[[mt.Msg.blockpy_REQUESTS_GET_ATTR_HEADER,"headers"],[mt.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE,"status_code"],[mt.Msg.blockpy_REQUESTS_GET_ATTR_TEXT,"text"],[mt.Msg.blockpy_REQUESTS_GET_ATTR_COOKIES,"cookies"],[mt.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT,"content"]];this.setColour(cd),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_GET).appendField(new mt.FieldDropdown(t),"ATTR"),this.setInputsInline(!0),this.setOutput(!0,String);var e=this;this.setTooltip((function(){var t=e.getFieldValue("DIR");return{clear:mt.Msg.MIXLY_TOOLTIP_TURTEL_CLEAR,reset:mt.Msg.MIXLY_TOOLTIP_TURTEL_RESET,home:mt.Msg.MIXLY_TOOLTIP_TURTEL_HOME}[t]}))}},VI={init:function(){this.appendValueInput("VAR").appendField(mt.Msg.DISPLAY_IMAGE_LET2).setCheck(String);this.setColour(cd),this.appendDummyInput("").appendField(mt.Msg.blockpy_CONDUCT).appendField(new mt.FieldDropdown([["get","get"],["post","post"],["put","put"],["delete","delete"],["head","head"],["option","option"]]),"DIR"),this.appendDummyInput("").appendField(mt.Msg.blockpy_REQUESTS),this.setOutput(!0),this.setInputsInline(!0)}},yI=Sd,BI=Ad,GI=Ld,UI=Nd,wI=Dd,kI=fd,HI=Fd,WI=Pd,KI=vd,JI=Yd,zI=Xd,qI=xd,QI=bd,jI=Vd,ZI=yd,$I=120;({init:function(){this.setColour($I),this.appendValueInput("BOOL").setCheck([Boolean,Number]).appendField(mt.Msg.LANG_CONTROLS_WHILEUNTIL_TITLE_REPEAT).appendField(new mt.FieldDropdown(this.OPERATORS),"MODE"),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return{WHILE:mt.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_WHILE,UNTIL:mt.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL}[e]}))}}).OPERATORS=[[mt.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"WHILE"],[mt.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"UNTIL"]];({init:function(){this.setColour($I);var t=new mt.FieldDropdown(this.OPERATORS);this.appendDummyInput().appendField(t,"FLOW").appendField(mt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_INPUT_OFLOOP),this.setPreviousStatement(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("FLOW");return{BREAK:mt.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK,CONTINUE:mt.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE}[t]}))},onchange:function(){if(this.workspace){var t=!1,e=this;do{if("controls_repeat"==e.type||"controls_for"==e.type||"controls_forEach"==e.type||"controls_repeat_ext"==e.type||"controls_whileUntil"==e.type){t=!0;break}e=e.getSurroundParent()}while(e);t?this.setWarningText(null):this.setWarningText(mt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_WARNING)}}}).OPERATORS=[[mt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK,"BREAK"],[mt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE,"CONTINUE"]];const tT="5BA5A5",eT={init:function(){this.setColour(tT),this.appendValueInput("I2CSUB").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new mt.FieldDropdown([["32x12 Matrix","32x12 Matrix"],["16x8 Matrix","16x8 Matrix"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},iT={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(tT),this.appendValueInput("data").setCheck([String,"esp32_image","List","Tuple"]).appendField(mt.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.OLED_BITMAP_OR_STRING)}},nT={init:function(){this.setColour(tT),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.OLED_DRAWSTR),this.appendValueInput("space").setCheck(Number).appendField(mt.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendDummyInput("").appendField(mt.Msg.TEXT_CENTER).appendField(new mt.FieldDropdown([[mt.Msg.MICROPYTHON_DISPLAY_YES,"True"],[mt.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"center"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY)}},sT={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(tT),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},oT={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(tT),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.appendValueInput("space").setCheck(Number).appendField(mt.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SCROLL_IMAGE_OR_STRING_DELAY)}},_T={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(tT),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},pT={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(tT),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},aT={init:function(){var t=[[mt.Msg.MIXLY_UP,"shift_up"],[mt.Msg.MIXLY_DOWN,"shift_down"],[mt.Msg.MIXLY_LEFT,"shift_left"],[mt.Msg.MIXLY_RIGHT,"shift_right"]];this.appendValueInput("SUB").setCheck("var"),this.setColour(tT),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.appendDummyInput("").appendField(mt.Msg.DISPLAY_IMAGE_LET),this.appendDummyInput("").appendField(mt.Msg.DISPLAY_IMAGE_LET2).appendField(new mt.FieldDropdown(t),"OP"),this.appendValueInput("val").appendField(mt.Msg.DISPLAY_IMAGE_SHIFT).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.DISPLAY_IMAGE_UNIT);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP"),i=mt.Msg.DISPLAY_IMAGE_LET,n=mt.Msg.DISPLAY_IMAGE_LET2,s=mt.Msg.DISPLAY_IMAGE_LET3;return i+n+{up:mt.Msg.MIXLY_UP,down:mt.Msg.MIXLY_DOWN,left:mt.Msg.MIXLY_LEFT,right:mt.Msg.MIXLY_RIGHT}[t]+s}))}},uT={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(tT),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_GET_POINT),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_ESP32_JS_MONITOR_BRIGHTNESS)}},rT={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(tT),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_SET_BRIGHTNESS).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendValueInput("STAT").setCheck([Number,Boolean]),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL)}},lT={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(tT),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS)}},dT={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(tT),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS+" 0.0-1.0")}},IT={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(tT),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Clear_display),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Clear_display)}},TT={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(tT),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Built_in_image1).appendField(new mt.FieldDropdown([["HEART","HEART"],["HEART_SMALL","HEART_SMALL"],["HAPPY","HAPPY"],["SAD","SAD"],["SMILE","SMILE"],["SILLY","SILLY"],["FABULOUS","FABULOUS"],["SURPRISED","SURPRISED"],["ASLEEP","ASLEEP"],["ANGRY","ANGRY"],["CONFUSED","CONFUSED"],["NO","NO"],["YES","YES"]]),"image"),this.setOutput(!0,"esp32_image"),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Clear_display)}},hT={init:function(){var t=[[mt.Msg.MICROBIT_DISPLAY_UNION,"add"],[mt.Msg.MICROBIT_DISPLAY_MINUS,"sub"]];this.appendValueInput("SUB").setCheck("var"),this.setColour(tT),this.setOutput(!0,"esp32_image"),this.appendValueInput("A").appendField(mt.Msg.MICROBIT_DISPLAY_MERGE_SHAPE),this.appendValueInput("B").appendField(new mt.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{"+":mt.Msg.MIXLY_MICROBIT_image_add,"-":mt.Msg.MIXLY_MICROBIT_image_reduce}[t]}))}},MT={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(tT),this.appendValueInput("A").setCheck("esp32_image").appendField(mt.Msg.MIXLY_MICROBIT_Invert_image1),this.setInputsInline(!0),this.setOutput(!0,"esp32_image")}},mT={init:function(){this.setColour(tT),this.appendValueInput("I2CSUB").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendValueInput("row").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.LISTS_SET_INDEX_INPUT_TO+"OLED").setCheck(Number),this.appendValueInput("column").appendField("X").setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip()}},OT={init:function(){this.appendValueInput("VAR").appendField(mt.Msg.OLED).setCheck("var"),this.appendValueInput("Text_line1","String").setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.OLEDDISPLAY+mt.Msg.line1),this.appendValueInput("Text_line2","String").setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.line2),this.appendValueInput("Text_line3","String").setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.line3),this.appendValueInput("Text_line4","String").setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.line4),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(tT),this.setTooltip(mt.Msg.MIXLY_DF_LCD+mt.Msg.OLEDDISPLAY+mt.Msg.MIXLY_MICROBIT_TYPE_STRING)}},ET={init:function(){var t=[[mt.Msg.MIXLY_HEIGHT,"height"],[mt.Msg.MIXLY_WIDTH,"width"]];this.setColour(tT),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+mt.Msg.MIXLY_MICROBIT_IMAGE),this.appendValueInput("VAR").setCheck("esp32_image"),this.appendDummyInput("").appendField(new mt.FieldDropdown(t),"OP"),this.setInputsInline(!0),this.setOutput(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+mt.Msg.MIXLY_MICROBIT_IMAGE+{height:mt.Msg.MIXLY_HEIGHT,width:mt.Msg.MIXLY_WIDTH}[t]}))}},RT={init:function(){var t=[[mt.Msg.MIXLY_4DIGITDISPLAY_ON,"1"],[mt.Msg.MIXLY_4DIGITDISPLAY_OFF,"0"]];this.setColour(tT),this.appendValueInput("VAR").appendField(mt.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RECT).appendField(new mt.FieldDropdown(t),"OP"),this.jsonInit({message0:mt.Msg.MIXLY_MICROBIT_SHOW_RECT,args0:[{check:Number,type:"input_value",name:"x"},{check:Number,type:"input_value",name:"y"},{check:Number,type:"input_value",name:"width"},{check:Number,type:"input_value",name:"height"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"fill"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_OLED_RECT)}},cT={init:function(){this.setColour(tT),this.appendValueInput("VAR").appendField(mt.Msg.OLED).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_DISPLAY_DRAW).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_DISPLAY_RLINE,"hline"],[mt.Msg.MIXLY_DISPLAY_VLINE,"vline"]]),"direction"),this.jsonInit({message0:mt.Msg.MIXLY_MICROBIT_SHOW_LINE,args0:[{check:Number,type:"input_value",name:"x"},{check:Number,type:"input_value",name:"y"},{check:Number,type:"input_value",name:"length"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_OLED_LINE)}},gT={init:function(){this.setColour(tT),this.appendValueInput("VAR").appendField(mt.Msg.OLED).setCheck("var"),this.jsonInit({message0:mt.Msg.MIXLY_MICROBIT_SHOW_LINE_ARBITRARILY,args0:[{check:Number,type:"input_value",name:"x1"},{check:Number,type:"input_value",name:"y1"},{check:Number,type:"input_value",name:"x2"},{check:Number,type:"input_value",name:"y2"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_OLED_LINE_ARBIT)}},CT={init:function(){this.setColour(tT),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_MONITOR_GET_SCREEN_IMAGE),this.setInputsInline(!0),this.setOutput(!0,"esp32_image"),this.setTooltip(mt.Msg.MIXLY_ESP32_MONITOR_GET_SCREEN_IMAGE_TOOLTIP)}},ST={init:function(){this.setColour(tT),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_SET_BLINK_RATE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_JS_MONITOR_SET_BLINK_RATE)}},AT={init:function(){this.setColour(tT),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("_LED_").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_NUM),this.appendDummyInput("").appendField(mt.Msg.LISTS_SET_INDEX_SET+mt.Msg.MIXLY_MICROBIT_PY_STORAGE_AS).appendField(new mt.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),"FIELDNAME"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B)}},LT={init:function(){this.setColour(tT),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_ESP32_ON,"ON"],[mt.Msg.MIXLY_ESP32_OFF,"OFF"]]),"ONOFF"),this.setOutput(!0,Boolean),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW)}},NT={init:function(){this.setColour(tT),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LCD_STAT_CLEAR,"0"],[mt.Msg.MIXLY_HANDBIT_DISLPAY_OLED_FILL,"1"]]),"key"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i={0:mt.Msg.MIXLY_LCD_STAT_CLEAR,1:mt.Msg.MIXLY_HANDBIT_DISLPAY_OLED_FILL};return mt.Msg.MIXLY_DF_LCD+i[e]}))}},DT={init:function(){this.setColour(tT),this.setOutput(!0,"Tuple"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_DISPLAY_ANIMATE).appendField(new mt.FieldDropdown([["ALL_CLOCKS","ALL_CLOCKS"],["ALL_ARROWS","ALL_ARROWS"]]),"ANIMATION")}},fT={init:function(){var t=[[mt.Msg.MIXLY_4DIGITDISPLAY_ON,"1"],[mt.Msg.MIXLY_4DIGITDISPLAY_OFF,"0"]];this.setColour(tT),this.appendValueInput("VAR").appendField(mt.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MIXPY_TURTLE_DRAW_CIRCLE).appendField(new mt.FieldDropdown(t),"OP"),this.jsonInit({message0:mt.Msg.MIXLY_HANBIT_SHOW_CIRCLE,args0:[{check:Number,type:"input_value",name:"x"},{check:Number,type:"input_value",name:"y"},{check:Number,type:"input_value",name:"r"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"fill"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_MIXPY_TURTLE_DRAW_CIRCLE)}},FT={init:function(){var t=[[mt.Msg.MIXLY_4DIGITDISPLAY_ON,"1"],[mt.Msg.MIXLY_4DIGITDISPLAY_OFF,"0"]];this.setColour(tT),this.appendValueInput("VAR").appendField(mt.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_DISPLAY_DRAW+mt.Msg.MIXLY_HANBIT_DRAW_TRIANGLE).appendField(new mt.FieldDropdown(t),"OP"),this.jsonInit({message0:mt.Msg.MIXLY_HANBIT_SHOW_triangle,args0:[{check:Number,type:"input_value",name:"x0"},{check:Number,type:"input_value",name:"y0"},{check:Number,type:"input_value",name:"x1"},{check:Number,type:"input_value",name:"y1"},{check:Number,type:"input_value",name:"x2"},{check:Number,type:"input_value",name:"y2"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"fill"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_DISPLAY_DRAW+mt.Msg.MIXLY_HANBIT_DRAW_TRIANGLE)}},PT={init:function(){this.setColour("#555555"),this.appendDummyInput("").appendField(mt.Msg.MIXGO_ONBOARDDISPLAY_HELP),this.setInputsInline(!0),this.setTooltip("")}},vT={init:function(){this.setColour(tT),this.appendValueInput("VAR").appendField(mt.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.OLED_BITMAP),this.appendValueInput("START_X",Number).appendField(mt.Msg.OLED_START_X).setCheck(Number),this.appendValueInput("START_Y",Number).appendField(mt.Msg.OLED_START_Y).setCheck(Number),this.appendValueInput("bitmap_name",String).appendField(mt.Msg.OLED_BITMAP_NAME),this.appendValueInput("WIDTH",Number).appendField(mt.Msg.MIXLY_WIDTH).setCheck(Number),this.appendValueInput("HEIGHT",Number).appendField(mt.Msg.MIXLY_HEIGHT).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.OLED_SHOW_BMP_TOOLTIP)}},YT={init:function(){this.setColour(tT),this.appendValueInput("VAR").appendField(mt.Msg.OLED),this.appendDummyInput("").appendField(mt.Msg.OLED_DRAWPIXEL),this.appendValueInput("POS_X").appendField(mt.Msg.OLED_POSX),this.appendValueInput("POS_Y").appendField(mt.Msg.OLED_POSY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.OLED_DRAW_PIXE_TOOLTIP)}},XT={init:function(){this.setColour(tT),this.appendValueInput("I2CSUB").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new mt.FieldDropdown([["TM1650","TM1650"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return mt.Msg.MIXLY_ESP32_SENSOR_USE_I2C_TOOLTIP+{TM1650:"TM1650"}[e]}))}},xT={init:function(){this.setColour(tT),this.appendDummyInput().appendField(mt.Msg.MIXLY_4DIGITDISPLAY).appendField(new mt.FieldDropdown([["TM1650","tm1650"]]),"TYPE"),this.appendValueInput("VAR"),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_ON,"on"],[mt.Msg.MIXLY_OFF,"off"],[mt.Msg.MIXLY_LCD_STAT_CLEAR,"clear"]]),"STAT"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_4digitdisplay_power)}},bT={init:function(){this.setColour(tT),this.appendDummyInput().appendField(mt.Msg.MIXLY_4DIGITDISPLAY).appendField(new mt.FieldDropdown([["TM1650","tm1650"]]),"TYPE"),this.appendValueInput("VAR"),this.appendValueInput("VALUE").setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SHOW_NUMBER),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},VT={init:function(){this.setColour(tT),this.appendDummyInput().appendField(mt.Msg.MIXLY_4DIGITDISPLAY).appendField(new mt.FieldDropdown([["TM1650","tm1650"]]),"TYPE"),this.appendValueInput("VAR"),this.appendValueInput("NO").appendField(mt.Msg.MIXLY_4DIGITDISPLAY_NOMBER1),this.appendValueInput("STAT").appendField(mt.Msg.MIXLY_4DIGITDISPLAY_NOMBER2+mt.Msg.MIXLY_4DIGITDISPLAY_DOT),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_4digitdisplay_showDot)}},yT={init:function(){this.setColour(tT),this.appendDummyInput().appendField(mt.Msg.MIXLY_4DIGITDISPLAY).appendField(new mt.FieldDropdown([["TM1650","tm1650"]]),"TYPE"),this.appendValueInput("VAR"),this.appendValueInput("VALUE").setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SET_BRIGHTNESS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_4DIGITDISPLAY_4DIGITDISPLAY_BRIGHTNESS_TOOLTIP)}},BT={init:function(){this.setColour(tT),this.appendValueInput("SPISUB").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINDC").appendField("DC"),this.appendValueInput("PINCS").appendField("CS"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.LISTS_SET_INDEX_INPUT_TO+mt.Msg.MSG.catTFT),this.appendValueInput("WIDTH").appendField(mt.Msg.MIXLY_WIDTH).setCheck(Number),this.appendValueInput("HEIGHT").appendField(mt.Msg.MIXLY_HEIGHT).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.blockpy_turtle_rotate).appendField(new mt.FieldDropdown([[mt.Msg.MICROPYTHON_DISPLAY_NO,"0"],[mt.Msg.ANTI_CLOCKWISE+"90°","1"],[mt.Msg.ANTI_CLOCKWISE+"180°","2"],[mt.Msg.ANTI_CLOCKWISE+"270°","3"]]),"rotate"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},GT={init:function(){this.setColour(tT),this.appendValueInput("SUB").appendField(mt.Msg.MSG.catTFT),this.appendValueInput("data").appendField(mt.Msg.OLED_BITMAP),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_NUMBER),this.appendValueInput("VAR").appendField(mt.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.OLED_BITMAP_OR_STRING)}},UT={init:function(){this.setColour(tT);let t=new mt.FieldColour("#f00",null,{colourOptions:["#f00","#000"],columns:2});this.appendDummyInput("").setAlign(mt.inputs.Align.RIGHT).appendField(t,"COLOR"),this.setInputsInline(!0),this.setOutput(!0,String)}},wT={init:function(){this.setColour(tT),this.appendValueInput("SUB").appendField(mt.Msg.MSG.catTFT),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.OLED_DRAWSTR),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(mt.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendDummyInput("").appendField(mt.Msg.TEXT_CENTER).appendField(new mt.FieldDropdown([[mt.Msg.MICROPYTHON_DISPLAY_YES,"True"],[mt.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"center"),this.appendValueInput("VAR").appendField(mt.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY)}},kT={init:function(){this.setColour(tT),this.appendValueInput("SUB").appendField(mt.Msg.MSG.catTFT),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(mt.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.appendValueInput("VAR").appendField(mt.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SCROLL_IMAGE_OR_STRING_DELAY)}},HT={init:function(){this.setColour(tT),this.appendValueInput("SUB").appendField(mt.Msg.MSG.catTFT),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.appendValueInput("VAR").appendField(mt.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},WT={init:function(){this.setColour(tT),this.appendValueInput("SUB").setCheck("var").appendField(mt.Msg.MSG.catTFT),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LCD_STAT_CLEAR,"BLACK"],[mt.Msg.MIXLY_HANDBIT_DISLPAY_OLED_FILL,"WHITE"]]),"key"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i={0:mt.Msg.MIXLY_LCD_STAT_CLEAR,1:mt.Msg.MIXLY_HANDBIT_DISLPAY_OLED_FILL};return mt.Msg.MIXLY_DF_LCD+i[e]}))}},KT={init:function(){this.setColour(tT),this.appendValueInput("SUB").appendField(mt.Msg.MSG.catTFT).setCheck("var"),this.jsonInit({message0:mt.Msg.MIXLY_MICROBIT_SHOW_LINE_ARBITRARILY,args0:[{check:Number,type:"input_value",name:"x1"},{check:Number,type:"input_value",name:"y1"},{check:Number,type:"input_value",name:"x2"},{check:Number,type:"input_value",name:"y2"}]}),this.appendValueInput("VAR").appendField(mt.Msg.HTML_COLOUR),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_OLED_LINE_ARBIT)}},JT={init:function(){this.setColour(tT),this.appendValueInput("I2CSUB").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new mt.FieldDropdown([["LCD1602","16"],["LCD2004","20"]]),"key"),this.appendValueInput("ADDR").setCheck(Number).appendField(mt.Msg.MQTT_SERVER_ADD),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return mt.Msg.MIXLY_SETUP+{16:"LCD1602",20:"LCD2004"}[e]}))}},zT={init:function(){this.setColour(tT),this.appendValueInput("SUB").appendField(mt.Msg.MSG.catLCD),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.OLED_DRAWSTR),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.array2_cols),this.appendValueInput("y").setCheck(Number).appendField(mt.Msg.array2_rows),this.appendDummyInput("").appendField(mt.Msg.TEXT_CENTER).appendField(new mt.FieldDropdown([[mt.Msg.MICROPYTHON_DISPLAY_YES,"True"],[mt.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"center"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY)}},qT={init:function(){this.setColour(tT),this.appendValueInput("SUB").appendField(mt.Msg.MSG.catLCD),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_SERIAL_PRINT+mt.Msg.OLED_DRAWSTR),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.array2_cols),this.appendValueInput("y").setCheck(Number).appendField(mt.Msg.array2_rows),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},QT={init:function(){this.setColour(tT),this.appendValueInput("SUB").setCheck("var").appendField(mt.Msg.MSG.catLCD),this.appendDummyInput().appendField(mt.Msg.TFT_Brightness).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_Turn_on_display,"1"],[mt.Msg.MIXLY_MICROBIT_Turn_off_display,"0"]]),"key"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i={1:mt.Msg.MIXLY_MICROBIT_Turn_on_display,0:mt.Msg.MIXLY_MICROBIT_Turn_off_display};return mt.Msg.MSG.catLCD+mt.Msg.TFT_Brightness+i[e]}))}},jT={init:function(){this.appendValueInput("SUB").setCheck("var").appendField(mt.Msg.MSG.catLCD),this.setColour(tT),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Clear_display),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Clear_display)}},ZT={init:function(){this.setColour(tT),this.appendValueInput("I2CSUB").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.LISTS_SET_INDEX_INPUT_TO+"oled128x64"),this.appendValueInput("ADDR").setCheck(Number).appendField(mt.Msg.MQTT_SERVER_ADD),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return mt.Msg.MIXLY_SETUP+{16:"LCD1602",20:"LCD2004"}[e]}))}},$T={init:function(){this.setColour(tT),this.appendValueInput("SUB").setCheck("var").appendField(mt.Msg.MSG.catOLED),this.appendValueInput("data").appendField(mt.Msg.OLED_BITMAP),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.OLED_BITMAP_OR_STRING)}},th={init:function(){this.setColour(tT),this.appendValueInput("SUB").setCheck("var").appendField(mt.Msg.MSG.catOLED),this.appendValueInput("data").appendField(mt.Msg.OLED_BITMAP),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_NUMBER),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.OLED_BITMAP_OR_STRING)}},eh={init:function(){this.setColour(tT),this.appendValueInput("SUB").setCheck("var").appendField(mt.Msg.MSG.catOLED),this.appendValueInput("data").setCheck([String,"esp32_image","List","Tuple"]).appendField(mt.Msg.OLED_DRAWSTR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.OLED_BITMAP_OR_STRING)}},ih={init:function(){this.setColour(tT),this.appendValueInput("SUB").setCheck("var").appendField(mt.Msg.MSG.catOLED),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.OLED_DRAWSTR),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(mt.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendDummyInput("").appendField(mt.Msg.TEXT_CENTER).appendField(new mt.FieldDropdown([[mt.Msg.MICROPYTHON_DISPLAY_YES,"True"],[mt.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"center"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY)}},nh={init:function(){this.setColour(tT),this.appendValueInput("SUB").setCheck("var").appendField(mt.Msg.MSG.catOLED),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},sh={init:function(){this.setColour(tT),this.appendValueInput("SUB").setCheck("var").appendField(mt.Msg.MSG.catOLED),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(mt.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SCROLL_IMAGE_OR_STRING_DELAY)}},oh={init:function(){this.setColour(tT),this.appendValueInput("SUB").setCheck("var").appendField(mt.Msg.MSG.catOLED),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},_h={init:function(){this.setColour(tT),this.appendValueInput("SUB").setCheck("var").appendField(mt.Msg.MSG.catOLED),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},ph={init:function(){var t=[[mt.Msg.MIXLY_UP,"shift_up"],[mt.Msg.MIXLY_DOWN,"shift_down"],[mt.Msg.MIXLY_LEFT,"shift_left"],[mt.Msg.MIXLY_RIGHT,"shift_right"]];this.setColour(tT),this.appendValueInput("SUB").setCheck("var").appendField(mt.Msg.MSG.catOLED),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.appendDummyInput("").appendField(mt.Msg.DISPLAY_IMAGE_LET),this.appendDummyInput("").appendField(mt.Msg.DISPLAY_IMAGE_LET2).appendField(new mt.FieldDropdown(t),"OP"),this.appendValueInput("val").appendField(mt.Msg.DISPLAY_IMAGE_SHIFT).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.DISPLAY_IMAGE_UNIT);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP"),i=mt.Msg.DISPLAY_IMAGE_LET,n=mt.Msg.DISPLAY_IMAGE_LET2,s=mt.Msg.DISPLAY_IMAGE_LET3;return i+n+{up:mt.Msg.MIXLY_UP,down:mt.Msg.MIXLY_DOWN,left:mt.Msg.MIXLY_LEFT,right:mt.Msg.MIXLY_RIGHT}[t]+s}))}},ah={init:function(){this.setColour(tT),this.appendValueInput("SUB").setCheck("var").appendField(mt.Msg.MSG.catOLED),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_GET_POINT),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_ESP32_JS_MONITOR_BRIGHTNESS)}},uh={init:function(){this.setColour(tT),this.appendValueInput("SUB").setCheck("var").appendField(mt.Msg.MSG.catOLED),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_SET_BRIGHTNESS).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendValueInput("STAT").setCheck([Number,Boolean]),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL)}},rh={init:function(){this.setColour(tT),this.appendValueInput("SUB").setCheck("var").appendField(mt.Msg.MSG.catOLED),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Clear_display),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Clear_display)}},lh={init:function(){this.jsonInit({colour:tT,args0:[{name:"SUB",type:"input_value"},{name:"state",options:[[mt.Msg.MPYTHON_DISPLAY_MODE_1,"1"],[mt.Msg.MPYTHON_DISPLAY_MODE_0,"0"]],type:"field_dropdown"},{name:"shape",options:[[mt.Msg.MPYTHON_DISPLAY_HOLLOW,"rect"],[mt.Msg.MPYTHON_DISPLAY_SOLID,"fill_rect"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"w",type:"input_value"},{name:"h",type:"input_value"}],inputsInline:!0,helpUrl:mt.Msg.mpython_HELPURL,tooltip:mt.Msg.MPYTHON_DISPLAY_SHAPE_RECT_TOOLTIP,message0:mt.Msg.MPYTHON_DISPLAY_SHAPE_RECT_MESSAGE1,nextStatement:null,previousStatement:null})}},dh={init:function(){this.jsonInit({colour:tT,args0:[{name:"SUB",type:"input_value"},{name:"state",options:[[mt.Msg.MPYTHON_DISPLAY_MODE_1,"1"],[mt.Msg.MPYTHON_DISPLAY_MODE_0,"0"]],type:"field_dropdown"},{name:"dir_h_v",options:[[mt.Msg.mpython_vertical,"0"],[mt.Msg.mpython_horizontal,"1"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"length",type:"input_value"}],inputsInline:!0,helpUrl:mt.Msg.mpython_HELPURL,tooltip:mt.Msg.MPYTHON_DISPLAY_HVLINE_TOOLTIP,message0:mt.Msg.MPYTHON_DISPLAY_HVLINE_MESSAGE1,nextStatement:null,previousStatement:null})}},Ih={init:function(){this.jsonInit({colour:tT,args0:[{name:"SUB",type:"input_value"},{name:"state",options:[[mt.Msg.mpython_display_hline_1,"1"],[mt.Msg.mpython_display_hline_0,"0"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x1",type:"input_value"},{name:"y1",type:"input_value"},{name:"x2",type:"input_value"},{name:"y2",type:"input_value"}],inputsInline:!0,helpUrl:mt.Msg.mpython_HELPURL,tooltip:mt.Msg.mpython_display_line_TOOLTIP,message0:mt.Msg.mpython_display_line_MESSAGE1,nextStatement:null,previousStatement:null})}},Th="#569A98",hh={init:function(){this.setColour(Th),this.appendValueInput("data").setCheck([String,"esp32_image","List","Tuple"]).appendField(mt.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),"micropython:esp32:mixbot"==Ot.Boards.getSelectedBoardKey()&&this.setTooltip(mt.Msg.MIXLY_MIXBOT_SHOW_SCROLL_STRING_TOOLTIP)}},Mh={init:function(){this.setColour(Th),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.OLED_DRAWSTR),this.appendValueInput("space").setCheck(Number).appendField(mt.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendDummyInput("").appendField(mt.Msg.TEXT_CENTER).appendField(new mt.FieldDropdown([[mt.Msg.MICROPYTHON_DISPLAY_YES,"True"],[mt.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"center"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},mh={init:function(){this.setColour(Th),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Oh={init:function(){this.setColour(Th),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.appendValueInput("space").setCheck(Number).appendField(mt.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Eh={init:function(){this.setColour(Th),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Rh={init:function(){this.setColour(Th),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},ch={init:function(){this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<12;t++){let e=this.appendDummyInput();for(let i=0;i<32;i++)e.appendField(new mt.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.setOutput(!0),this.setColour(Th),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Create_image1)}},gh={init:function(){this.jsonInit({colour:Th,args0:[{name:"image",options:[["HEART","HEART"],["HEART_SMALL","HEART_SMALL"],["HAPPY","HAPPY"],["SAD","SAD"],["SMILE","SMILE"],["SILLY","SILLY"],["FABULOUS","FABULOUS"],["SURPRISED","SURPRISED"],["ASLEEP","ASLEEP"],["ANGRY","ANGRY"],["CONFUSED","CONFUSED"],["NO","NO"],["YES","YES"]],type:"field_dropdown"}],output:["esp32_image","List"],helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/image.html#attributes",tooltip:mt.Msg.MIXLY_MICROBIT_Built_in_image1,message0:mt.Msg.MIXLY_MICROBIT_Built_in_image})}},Ch={init:function(){this.jsonInit({colour:Th,args0:[{name:"image",options:[["HEART","HEART"],["HEART_SMALL","HEART_SMALL"],["HAPPY","HAPPY"],["SAD","SAD"],["SMILE","SMILE"],["SILLY","SILLY"],["FABULOUS","FABULOUS"],["SURPRISED","SURPRISED"],["ASLEEP","ASLEEP"],["ANGRY","ANGRY"],["CONFUSED","CONFUSED"],["NO","NO"],["YES","YES"],["LEFT_ARROW","LEFT_ARROW"],["RIGHT_ARROW","RIGHT_ARROW"],["DRESS","DRESS"],["TRANSFORMERS","TRANSFORMERS"],["SCISSORS","SCISSORS"],["EXIT","EXIT"],["TREE","TREE"],["PACMAN","PACMAN"],["TARGET","TARGET"],["TSHIRT","TSHIRT"],["ROLLERSKATE","ROLLERSKATE"],["DUCK","DUCK"],["HOUSE","HOUSE"],["TORTOISE","TORTOISE"],["BUTTERFLY","BUTTERFLY"],["STICKFIGURE","STICKFIGURE"],["GHOST","GHOST"],["PITCHFORK","PITCHFORK"],["MUSIC_QUAVERS","MUSIC_QUAVERS"],["MUSIC_QUAVER","MUSIC_QUAVER"],["MUSIC_CROTCHET","MUSIC_CROTCHET"],["COW","COW"],["RABBIT","RABBIT"],["SQUARE_SMALL","SQUARE_SMALL"],["SQUARE","SQUARE"],["DIAMOND_SMALL","DIAMOND_SMALL"],["DIAMOND","DIAMOND"],["CHESSBOARD","CHESSBOARD"],["TRIANGLE_LEFT","TRIANGLE_LEFT"],["TRIANGLE","TRIANGLE"],["SNAKE","SNAKE"],["UMBRELLA","UMBRELLA"],["SKULL","SKULL"],["GIRAFFE","GIRAFFE"],["SWORD","SWORD"]],type:"field_dropdown"}],output:["esp32_image","List"],helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/image.html#attributes",tooltip:mt.Msg.MIXLY_MICROBIT_Built_in_image1,message0:mt.Msg.MIXLY_MICROBIT_Built_in_image})}},Sh={init:function(){var t=[[mt.Msg.MICROBIT_DISPLAY_UNION,"add"],[mt.Msg.MICROBIT_DISPLAY_MINUS,"sub"]];this.setColour(Th),this.setOutput(!0,"esp32_image"),this.appendValueInput("A").appendField(mt.Msg.MICROBIT_DISPLAY_MERGE_SHAPE),this.appendValueInput("B").appendField(new mt.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{"+":mt.Msg.MIXLY_MICROBIT_image_add,"-":mt.Msg.MIXLY_MICROBIT_image_reduce}[t]}))}},Ah={init:function(){this.setColour(Th),this.appendValueInput("A").setCheck("esp32_image").appendField(mt.Msg.MIXLY_MICROBIT_Invert_image1),this.setInputsInline(!0),this.setOutput(!0,"esp32_image")}},Lh={init:function(){var t=[[mt.Msg.MIXLY_UP,"shift_up"],[mt.Msg.MIXLY_DOWN,"shift_down"],[mt.Msg.MIXLY_LEFT,"shift_left"],[mt.Msg.MIXLY_RIGHT,"shift_right"]];this.setColour(Th),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.appendDummyInput("").appendField(mt.Msg.DISPLAY_IMAGE_LET),this.appendDummyInput("").appendField(mt.Msg.DISPLAY_IMAGE_LET2).appendField(new mt.FieldDropdown(t),"OP"),this.appendValueInput("val").appendField(mt.Msg.DISPLAY_IMAGE_SHIFT).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.DISPLAY_IMAGE_UNIT);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP"),i=mt.Msg.DISPLAY_IMAGE_LET,n=mt.Msg.DISPLAY_IMAGE_LET2,s=mt.Msg.DISPLAY_IMAGE_LET3;return i+n+{shift_up:mt.Msg.MIXLY_UP,shift_down:mt.Msg.MIXLY_DOWN,shift_left:mt.Msg.MIXLY_LEFT,shift_right:mt.Msg.MIXLY_RIGHT}[t]+s}))}},Nh={init:function(){this.setColour(Th),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_GET_POINT),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_ESP32_JS_MONITOR_BRIGHTNESS)}},Dh={init:function(){this.setColour(Th),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_SET_BRIGHTNESS).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendValueInput("STAT").setCheck([Number,Boolean]),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL)}},fh={init:function(){this.setColour(Th),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS)}},Fh={init:function(){this.setColour(Th),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS+" 0.0-1.0")}},Ph={init:function(){this.setColour(Th),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Clear_display),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Clear_display)}},vh={init:function(){this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<5;t++){let e=this.appendDummyInput();for(let i=0;i<8;i++)e.appendField(new mt.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.setOutput(!0),this.setColour(Th),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Create_image1)}},Yh={init:function(){this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<8;t++){let e=this.appendDummyInput();for(let i=0;i<12;i++)e.appendField(new mt.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.setOutput(!0),this.setColour(Th),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Create_image1)}},Xh={init:function(){this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<8;t++){let e=this.appendDummyInput();for(let i=0;i<16;i++)e.appendField(new mt.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.setOutput(!0,"esp32_image"),this.setColour(Th),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Create_image1)}},xh={init:function(){var t=[["4x5"+mt.Msg.MIXGO_ME_DISPLAY_HORIZONTAL,"'4x5'"],["5x5"+mt.Msg.MIXGO_ME_DISPLAY_HORIZONTAL,"'5x5'"],["5x8"+mt.Msg.MIXGO_ME_DISPLAY_VERTICAL,"'5x8'"]];this.setColour(Th),this.appendDummyInput().appendField(mt.Msg.OLED_SET_FONT).appendField(new mt.FieldDropdown(t),"OP"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},bh={init:function(){this.setColour(Th),this.appendValueInput("data").appendField(mt.Msg.OLED_BITMAP),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.OLED_BITMAP_OR_STRING)}},Vh={init:function(){this.setColour(Th),this.appendValueInput("data").appendField(mt.Msg.OLED_BITMAP),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_NUMBER),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.OLED_BITMAP_OR_STRING)}},yh={init:function(){this.setColour(Th),this.appendValueInput("data").setCheck([String,"esp32_image","List","Tuple"]).appendField(mt.Msg.OLED_DRAWSTR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.OLED_BITMAP_OR_STRING)}},Bh={init:function(){this.setColour(Th),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.OLED_DRAWSTR),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(mt.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendDummyInput("").appendField(mt.Msg.TEXT_CENTER).appendField(new mt.FieldDropdown([[mt.Msg.MICROPYTHON_DISPLAY_YES,"True"],[mt.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"center"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY)}},Gh={init:function(){this.setColour(Th),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(mt.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SCROLL_IMAGE_OR_STRING_DELAY)}},Uh={init:function(){this.setColour(Th),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},wh={init:function(){this.setColour(Th),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_SET_BRIGHTNESS).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendValueInput("STAT").setCheck([Number,Boolean]),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL)}},kh={init:function(){this.jsonInit({colour:Th,args0:[{name:"state",options:[[mt.Msg.MPYTHON_DISPLAY_MODE_1,"1"],[mt.Msg.MPYTHON_DISPLAY_MODE_0,"0"]],type:"field_dropdown"},{name:"shape",options:[[mt.Msg.MPYTHON_DISPLAY_HOLLOW,"rect"],[mt.Msg.MPYTHON_DISPLAY_SOLID,"fill_rect"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"w",type:"input_value"},{name:"h",type:"input_value"}],inputsInline:!0,helpUrl:mt.Msg.mpython_HELPURL,tooltip:mt.Msg.MPYTHON_DISPLAY_SHAPE_RECT_TOOLTIP,message0:mt.Msg.MPYTHON_DISPLAY_SHAPE_RECT_MESSAGE0,nextStatement:null,previousStatement:null})}},Hh={init:function(){this.jsonInit({colour:Th,args0:[{name:"state",options:[[mt.Msg.MPYTHON_DISPLAY_MODE_1,"1"],[mt.Msg.MPYTHON_DISPLAY_MODE_0,"0"]],type:"field_dropdown"},{name:"dir_h_v",options:[[mt.Msg.mpython_vertical,"0"],[mt.Msg.mpython_horizontal,"1"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"length",type:"input_value"}],inputsInline:!0,helpUrl:mt.Msg.mpython_HELPURL,tooltip:mt.Msg.MPYTHON_DISPLAY_HVLINE_TOOLTIP,message0:mt.Msg.MPYTHON_DISPLAY_HVLINE_MESSAGE0,nextStatement:null,previousStatement:null})}},Wh={init:function(){this.jsonInit({colour:Th,args0:[{name:"state",options:[[mt.Msg.mpython_display_hline_1,"1"],[mt.Msg.mpython_display_hline_0,"0"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x1",type:"input_value"},{name:"y1",type:"input_value"},{name:"x2",type:"input_value"},{name:"y2",type:"input_value"}],inputsInline:!0,helpUrl:mt.Msg.mpython_HELPURL,tooltip:mt.Msg.mpython_display_line_TOOLTIP,message0:mt.Msg.mpython_display_line_MESSAGE0,nextStatement:null,previousStatement:null})}},Kh={init:function(){this.jsonInit({colour:Th,args0:[{type:"field_label",name:"size_image",text:mt.Msg.MIXLY_MICROBIT_Built_in_image1},{name:"path",options:[["Heart","Heart"],["Angry","Angry"],["Bored","Bored"],["Confused","Confused"],["Happy","Happy"],["Paper","Paper"],["Rock","Rock"],["Sad","Sad"],["Scissors","Scissors"],["Silly","Silly"],["Sleep","Sleep"],["Small_heart","Small_heart"],["Small_paper","Small_paper"],["Small_rock","Small_rock"],["Small_scissors","Small_scissors"],["Smile","Smile"],["Surprise","Surprise"],["Wonderful","Wonderful"],["Eyes_Angry","Eyes_Angry"],["Awake","Awake"],["Black_eye","Black_eye"],["Bottom_left","Bottom_left"],["Bottom_right","Bottom_right"],["Crazy_1","Crazy_1"],["Crazy_2","Crazy_2"],["Disappointed","Disappointed"],["Dizzy","Dizzy"],["Down","Down"],["Evil","Evil"],["Hurt","Hurt"],["Knocked_out","Knocked_out"],["Love","Love"],["Middle_left","Middle_left"],["Middle_right","Middle_right"],["Neutral","Neutral"],["Nuclear","Nuclear"],["Pinch_left","Pinch_left"],["Pinch_middle","Pinch_middle"],["Pinch_right","Pinch_right"],["Tear","Tear"],["Tired_left","Tired_left"],["Tired_middle","Tired_middle"],["Tired_right","Tired_right"],["Toxic","Toxic"],["Up","Up"],["Winking","Winking"],["Accept","Accept"],["Backward","Backward"],["Decline","Decline"],["Forward","Forward"],["Left","Left"],["No_go","No_go"],["Question_mark","Question_mark"],["Right","Right"],["Stop_1","Stop_1"],["Stop_2","Stop_2"],["Thumbs_down","Thumbs_down"],["Thumbs_up","Thumbs_up"],["Warning","Warning"],["Bomb","Bomb"],["Boom","Boom"],["Fire","Fire"],["Flowers","Flowers"],["Forest","Forest"],["Lightning","Lightning"],["Light_off","Light_off"],["Light_on","Light_on"],["Night","Night"],["Pirate","Pirate"],["Snow","Snow"],["Target","Target"],["Bar_0","Bar_0"],["Bar_1","Bar_1"],["Bar_2","Bar_2"],["Bar_3","Bar_3"],["Bar_4","Bar_4"],["Dial_0","Dial_0"],["Dial_1","Dial_1"],["Dial_2","Dial_2"],["Dial_3","Dial_3"],["Dial_4","Dial_4"],["Dots_0","Dots_0"],["Dots_1","Dots_1"],["Dots_2","Dots_2"],["Dots_3","Dots_3"],["Hourglass_0","Hourglass_0"],["Hourglass_1","Hourglass_1"],["Hourglass_2","Hourglass_2"],["Timer_0","Timer_0"],["Timer_1","Timer_1"],["Timer_2","Timer_2"],["Timer_3","Timer_3"],["Timer_4","Timer_4"],["Water_level_0","Water_level_0"],["Water_level_1","Water_level_1"],["Water_level_2","Water_level_2"],["Water_level_3","Water_level_3"]],type:"field_dropdown"}],output:"String",helpUrl:"",tooltip:"",message0:"%1 %2"})}},Jh={init:function(){this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<5;t++){let e=this.appendDummyInput();for(let i=0;i<5;i++)e.appendField(new mt.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.setOutput(!0),this.setColour(Th),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Create_image1)}},zh={init:function(){this.setColour(Th),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS)}},qh={init:function(){this.setColour(Th),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_AMBIENTBRIGHT),this.setInputsInline(!0),this.setOutput(!0,Number)}},Qh={init:function(){this.setColour(Th),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS+" 0.0-1.0")}},jh={init:function(){var t=[[mt.Msg.mixpy_PL_PIE_SHADOW_N,"0"],[mt.Msg.CLOCKWISE+"90"+mt.Msg.blockpy_setheading_degree,"1"],[mt.Msg.CLOCKWISE+"180"+mt.Msg.blockpy_setheading_degree,"2"],[mt.Msg.CLOCKWISE+"270"+mt.Msg.blockpy_setheading_degree,"3"]];this.setColour(Th),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_SCREEN_ROTATE).appendField(new mt.FieldDropdown(t),"OP"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Zh={init:function(){this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<12;t++){let e=this.appendDummyInput();for(let i=0;i<12;i++)e.appendField(new mt.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.setOutput(!0),this.setColour(Th),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Create_image1)}},$h={init:function(){this.setColour(Th),this.appendValueInput("data").appendField(mt.Msg.OLED_BITMAP),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.OLED_BITMAP_OR_STRING)}},tM={init:function(){this.setColour(Th),this.appendValueInput("data").appendField(mt.Msg.OLED_BITMAP),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_NUMBER),this.appendValueInput("VAR").appendField(mt.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.OLED_BITMAP_OR_STRING)}},eM={init:function(){this.setColour(Th),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.OLED_DRAWSTR),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(mt.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendDummyInput("").appendField(mt.Msg.TEXT_CENTER).appendField(new mt.FieldDropdown([[mt.Msg.MICROPYTHON_DISPLAY_YES,"True"],[mt.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"center"),this.appendValueInput("VAR").appendField(mt.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY)}},iM={init:function(){this.setColour(Th),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},nM={init:function(){this.setColour(Th),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(mt.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.appendValueInput("VAR").appendField(mt.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SCROLL_IMAGE_OR_STRING_DELAY)}},sM={init:function(){this.setColour(Th),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},oM={init:function(){this.setColour(Th),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.appendValueInput("VAR").appendField(mt.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},_M={init:function(){this.jsonInit({colour:Th,args0:[{name:"shape",options:[[mt.Msg.MPYTHON_DISPLAY_HOLLOW,"rect"],[mt.Msg.MPYTHON_DISPLAY_SOLID,"fill_rect"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"w",type:"input_value"},{name:"h",type:"input_value"},{name:"VAR",type:"input_value"}],inputsInline:!0,helpUrl:mt.Msg.mpython_HELPURL,tooltip:mt.Msg.MPYTHON_DISPLAY_SHAPE_RECT_TOOLTIP,message0:mt.Msg.ONBOARD_TFT_DISPLAY_SHAPE_RECT_MESSAGE0,nextStatement:null,previousStatement:null})}},pM={init:function(){this.jsonInit({colour:Th,args0:[{name:"dir_h_v",options:[[mt.Msg.mpython_vertical,"0"],[mt.Msg.mpython_horizontal,"1"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"length",type:"input_value"},{name:"VAR",type:"input_value"}],inputsInline:!0,helpUrl:mt.Msg.mpython_HELPURL,tooltip:mt.Msg.MPYTHON_DISPLAY_HVLINE_TOOLTIP,message0:mt.Msg.ONBOARD_TFT_DISPLAY_HVLINE_MESSAGE0,nextStatement:null,previousStatement:null})}},aM={init:function(){this.jsonInit({colour:Th,args0:[{type:"input_dummy"},{name:"x1",type:"input_value"},{name:"y1",type:"input_value"},{name:"x2",type:"input_value"},{name:"y2",type:"input_value"},{name:"VAR",type:"input_value"}],inputsInline:!0,helpUrl:mt.Msg.mpython_HELPURL,tooltip:mt.Msg.mpython_display_line_TOOLTIP,message0:mt.Msg.mpython_display_line_MESSAGE0,nextStatement:null,previousStatement:null})}},uM={init:function(){var t=[[mt.Msg.MIXLY_UP,"shift_up"],[mt.Msg.MIXLY_DOWN,"shift_down"],[mt.Msg.MIXLY_LEFT,"shift_left"],[mt.Msg.MIXLY_RIGHT,"shift_right"]];this.setColour(Th),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.appendDummyInput("").appendField(mt.Msg.DISPLAY_IMAGE_LET),this.appendDummyInput("").appendField(mt.Msg.DISPLAY_IMAGE_LET2).appendField(new mt.FieldDropdown(t),"OP"),this.appendValueInput("val").appendField(mt.Msg.DISPLAY_IMAGE_SHIFT).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.DISPLAY_IMAGE_UNIT);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP"),i=mt.Msg.DISPLAY_IMAGE_LET,n=mt.Msg.DISPLAY_IMAGE_LET2,s=mt.Msg.DISPLAY_IMAGE_LET3;return i+n+{up:mt.Msg.MIXLY_UP,down:mt.Msg.MIXLY_DOWN,left:mt.Msg.MIXLY_LEFT,right:mt.Msg.MIXLY_RIGHT}[t]+s}))}},rM={init:function(){this.setColour(Th),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendDummyInput().appendField(mt.Msg.HTML_COLOUR),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_ESP32_JS_MONITOR_BRIGHTNESS)}},lM={init:function(){this.setColour(Th),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.MIXLY_LCD_SETCOLOR).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendValueInput("VAR").appendField(mt.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL)}},dM={init:function(){this.setColour(Th),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Clear_display),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Clear_display)}},IM={init:function(){this.setColour(Th),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS)}},TM={init:function(){this.setColour(Th),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS+" 0.0-1.0")}},hM={init:function(){this.setColour(Th),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_SCREEN_FILL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},MM={init:function(){this.setColour(Th),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_INIT_CLOCK),this.appendDummyInput().appendField(mt.Msg.MIXLY_CENTER_POS),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.OLED_CIRCLE_RADIUS),this.appendValueInput("VAR").appendField(mt.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},mM={init:function(){this.setColour(Th),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.GET_RTCTIME),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},OM={init:function(){this.setColour(Th),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.SET_TIME),this.appendValueInput("h").setCheck(Number).appendField(mt.Msg.MIXLY_HOUR),this.appendValueInput("m").setCheck(Number).appendField(mt.Msg.MIXLY_MINUTE),this.appendValueInput("s").setCheck(Number).appendField(mt.Msg.MIXLY_SECOND),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},EM={init:function(){this.setColour(Th),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.DRAW_CLOCK),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},RM={init:function(){this.setColour(Th),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.CLEAR_CLOCK),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_STM32_TFT_BACKGROUND_COLOR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},cM={init:function(){this.jsonInit({colour:Th,args0:[{name:"shape",options:[[mt.Msg.MPYTHON_DISPLAY_HOLLOW,"False"],[mt.Msg.MPYTHON_DISPLAY_SOLID,"True"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"r",type:"input_value"},{name:"VAR",type:"input_value"}],inputsInline:!0,helpUrl:mt.Msg.mpython_HELPURL,message0:mt.Msg.ONBOARD_TFT_DISPLAY_SHAPE_CIRCLE_MESSAGE0,nextStatement:null,previousStatement:null})}},gM="#777777",CM={init:function(){this.setColour(gM),this.appendDummyInput("").appendField("from ").appendField(new mt.FieldTextInput("ESP32"),"path").appendField(" import ").appendField(new mt.FieldTextInput("*"),"module"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},SM={init:function(){this.setColour(gM),this.appendDummyInput("").appendField("import ").appendField(new mt.FieldTextInput("module"),"module"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},AM={init:function(){this.setColour(gM),this.appendDummyInput("").appendField(new mt.FieldTextInput("my_function"),"NAME"),this.itemCount_=1,this.arguments_=["x"],this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new mt.icons.MutatorIcon(["factory_create_with_item"],this))},mutationToDom:function(){var t=document.createElement("mutation");t.setAttribute("items",this.itemCount_);for(var e=0;ee?t[e]:'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},dm={init:function(){this.setColour(om),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(mt.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},Im={init:function(){this.setColour(om),this.appendDummyInput().appendField(mt.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},Tm={init:function(){this.setColour(om),this.appendDummyInput().appendField(mt.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},hm={init:function(){this.setColour(om),this.appendDummyInput().appendField(mt.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").setCheck(String).appendField(mt.Msg.MIXLY_EMQX_SERVER).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("USERNAME").setCheck(String).appendField(mt.Msg.MIXLY_WIFI_USERNAME).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("PASSWORD").setCheck(String).appendField(mt.Msg.MIXLY_IOT_PASSWORD).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("PROJECT").setCheck(String).appendField(mt.Msg.MIXLY_EMQX_PROJECT).setAlign(mt.inputs.Align.RIGHT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Mm={init:function(){this.setColour(om),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(mt.Msg.MIXLY_EMQX_PUBLISH_NEW).appendField(mt.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MSG").appendField(mt.Msg.HTML_BODY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_IOT_EMQX_PUBLISH_TOOLTIP)}},mm={init:function(){this.setColour(om),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(mt.Msg.MIXLY_EMQX_SUBSCRIBE+mt.Msg.MIXLY_MICROBIT_MSG).appendField(mt.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("METHOD").appendField(mt.Msg.MIXLY_EMQX_SET_METHOD),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_IOT_EMQX_SUBSCRIBE_TOOLTIP)}},Om={init:function(){this.setColour(om),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_DISCONNECT_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Em={init:function(){this.setColour(om),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(mt.Msg.MIXLY_EMQX_CONNECT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Rm={init:function(){this.setColour(om),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_CHECK_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},cm={init:function(){this.setColour(om),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROPYTHON_FORMAT).appendField(mt.Msg.MQTT_Topic),this.setInputsInline(!0),this.setOutput(!0)}},gm={init:function(){this.setColour(om),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROPYTHON_FORMAT).appendField(mt.Msg.MIXLY_EMQX_PUBLISH_MSG),this.setInputsInline(!0),this.setOutput(!0)}},Cm={init:function(){this.setColour(om),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_ESP32_IOT_MAP_FORMATING),this.setOutput(!0)}},Sm={init:function(){this.setColour(om),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_MICROPYTHON_FORMAT+"(Json)"),this.setOutput(!0)}},Am={init:function(){this.setColour(om),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(mt.Msg.MIXLY_EMQX_PING),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_IOT_EMQX_PING_TOOLTIP)}},Lm={init:function(){this.setColour(om),this.appendDummyInput().appendField("MixIO").appendField(mt.Msg.MIXLY_GET_NTP),this.appendValueInput("addr").appendField(mt.Msg.blynk_SERVER_ADD),this.setInputsInline(!0),this.setOutput(!0)}},Nm={init:function(){this.setColour(om),this.appendDummyInput().appendField(mt.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").appendField(mt.Msg.MIXLY_EMQX_SERVER).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("KEY").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+mt.Msg.MIXLY_MIXIO_SHARE_KEY).setAlign(mt.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Dm={init:function(){this.setColour(om),this.appendDummyInput().appendField(mt.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").appendField(mt.Msg.MIXLY_EMQX_SERVER).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("KEY").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"Mixly Key").setAlign(mt.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},fm={init:function(){this.VISITOR_ID=Ot.Config.BOARD.visitorId.str32.substring(0,8).toUpperCase(),this.setColour(om),this.appendDummyInput("").appendField(new mt.FieldTextInput(this.visitorId),"VISITOR_ID"),this.setOutput(!0,null)},onchange:function(){const t=this.getFieldValue("VISITOR_ID");this.VISITOR_ID!==t&&this.setFieldValue(this.VISITOR_ID,"VISITOR_ID")}},Fm={init:function(){this.setColour(om),this.appendDummyInput().appendField("MixIO").appendField(mt.Msg.MSG.catEthernet_clinet),this.setOutput(!0),this.setInputsInline(!0)}},Pm={init:function(){this.setColour(om),this.appendDummyInput().appendField("HTTP"+mt.Msg.MIXLY_Client),this.appendValueInput("addr").appendField(mt.Msg.DISPLAY_IMAGE_LET2),this.appendDummyInput().appendField(mt.Msg.MIXLY_REQUESTS_GET).appendField(mt.Msg.MIXLY_GET_CURRENT_TIME).appendField(mt.Msg.MIXLY_OPEN_DEBUG).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},vm={init:function(){this.setColour(om),this.appendDummyInput().appendField("HTTP"+mt.Msg.MIXLY_Client).appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_REQUESTS_LEN,"client_len"],[mt.Msg.MIXLY_REQUESTS_GET_LEN,"server_len"],[mt.Msg.MIXLY_REQUESTS_MESSAGE,"text"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},Ym={init:function(){this.setColour(om),this.appendDummyInput().appendField("MQTT"+mt.Msg.MIXLY_Client),this.appendValueInput("addr").appendField(mt.Msg.MIXLY_CONNECTTO),this.appendDummyInput().appendField(mt.Msg.MIXLY_INIT_SUBSCRIBE).appendField(mt.Msg.MQTT_Topic).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GET_CURRENT_TIME,""]]),"key").appendField(mt.Msg.MIXLY_OPEN_DEBUG).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"key2"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Xm={init:function(){this.setColour(om),this.appendDummyInput().appendField("MQTT"+mt.Msg.MIXLY_Client).appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_REQUESTS_LEN,"client_len"],[mt.Msg.MIXLY_REQUESTS_GET_LEN,"server_len"],[mt.Msg.MIXLY_REQUESTS_MESSAGE,"time_msg()"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},xm=_m,bm=pm,Vm=am,ym=um,Bm=lm,Gm=225,Um={init:function(){this.setColour(Gm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_NETWORK_INIT),this.appendDummyInput().appendField(mt.Msg.MIXLY_NETWORK_MODE).appendField(new mt.FieldDropdown([["STA","STA"],["AP","AP"]]),"mode"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_INIT_TOOLTIP)}},wm={init:function(){this.setColour(Gm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_NETWORK_WIFI_OPEN,"True"],[mt.Msg.MIXLY_NETWORK_WIFI_CLOSE,"False"]]),"op"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_NETWORK_WIFI_FLAG),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("op"),i=mt.Msg.MIXLY_ESP32_NETWORK_OPEN_TOOLTIP;return{True:mt.Msg.MIXLY_NETWORK_WIFI_OPEN,False:mt.Msg.MIXLY_NETWORK_WIFI_CLOSE}[e]+i}))}},km={init:function(){this.setColour(Gm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_NETWORK_WIFI_IS_ACTIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_NETWORK_WIFI_IS_ACTIVE)}},Hm={init:function(){this.setColour(Gm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_NETWORK_WIFI_SCAN),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip((function(){return mt.Msg.MIXLY_ESP32_NETWORK_SCAN_TOOLTIP+{0:"ssid",1:"bssid",2:"channel",3:"RSSI",4:"authmode",5:"hidden",all:mt.Msg.MIXLY_NETWORK_WIFI_SCAN_ATTRIBUTE}.all}))}},Wm={init:function(){this.setColour(Gm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_NETWORK_CONNECT),this.appendValueInput("id").setCheck(String).appendField(mt.Msg.HTML_NAME),this.appendValueInput("password").setCheck(String).appendField(mt.Msg.HTML_PASSWORD),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_CONNECT_TOOLTIP)}},Km={init:function(){this.setColour(Gm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_NETWORK_WIFI_CONNECT),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SYMBOL_QUESTION),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_WIFI_CONNECT_TOOLTIP)}},Jm={init:function(){this.setColour(Gm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_NETWORK_GET_WIFI),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_ESP32_NETWORK_IP,"0"],[mt.Msg.MIXLY_ESP32_NETWORK_MASK,"1"],[mt.Msg.MIXLY_ESP32_NETWORK_GATEWAY,"2"],["DNS","3"]]),"mode"),this.setOutput(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("mode");return mt.Msg.MIXLY_ESP32_NETWORK_GET_WIFI_TOOLTIP+{0:mt.Msg.MIXLY_ESP32_NETWORK_IP,1:mt.Msg.MIXLY_ESP32_NETWORK_MASK,2:mt.Msg.MIXLY_ESP32_NETWORK_GATEWAY,3:"DNS"}[e]}))}},zm={init:function(){this.setColour(Gm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_NETWORK_STOP_CONNECT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_STOP_TOOLTIP)}},qm={init:function(){this.setColour(Gm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_NETWORK_GET_WIFI),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_NETWORK_WIFI_ESSID,"essid"],[mt.Msg.MIXLY_NETWORK_WIFI_CHANNEL,"channel"]]),"op"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_GET_WIFI_TOOLTIP)}},Qm={init:function(){this.setColour(Gm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.LISTS_SET_INDEX_SET),this.appendValueInput("essid").setCheck(String).appendField(mt.Msg.MIXLY_NETWORK_WIFI_ESSID),this.appendValueInput("channel").setCheck(Number).appendField(mt.Msg.MIXLY_NETWORK_WIFI_CHANNEL),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_AP_CONNECT_TOOLTIP)}},jm={init:function(){this.setColour(Gm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_NETWORK_SERVER1),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_NETWORK_SERVER2),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_CLOSE_TOOLTIP)}},Zm={init:function(){this.setColour(Gm),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_INIT).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_TYPE).appendField(new mt.FieldDropdown([["TCP","TCP"],["UDP","UDP"]]),"mode"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("mode");return mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_INIT_TOOLTIP+{TCP:"TCP",UDP:"UDP"}[e]}))}},$m={init:function(){this.setColour(Gm),this.appendValueInput("VAR").setCheck("var").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_LET_SOCKET),this.appendValueInput("address").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_BIND_TO_ADDRESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_BIND_TOOLTIP)}},tO={init:function(){this.setColour(Gm),this.appendValueInput("VAR").setCheck("var").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_LET_SOCKET),this.appendValueInput("address").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_CONNECT_TO_ADDRESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_CONNECT_TOOLTIP)}},eO={init:function(){this.setColour(Gm),this.appendValueInput("VAR").setCheck("var"),this.appendValueInput("queue").setCheck(Number).appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_LISTEN).appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_QUEUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_LISTEN_TOOLTIP)}},iO={init:function(){this.setColour(Gm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_ACCEPT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_ACCEPT_TOOLTIP)}},nO={init:function(){this.setColour(Gm),this.appendValueInput("VAR").setCheck("var").appendField("TCP"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_RECEIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_RECEIVE_TOOLTIP)}},sO={init:function(){this.setColour(Gm),this.appendValueInput("VAR").setCheck("var").appendField("TCP"),this.appendValueInput("content").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_SEND_TOOLTIP)}},oO={init:function(){this.setColour(Gm),this.appendValueInput("VAR").setCheck("var").appendField("UDP"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_RECEIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_RECEIVE_FROM_TOOLTIP)}},_O={init:function(){this.setColour(Gm),this.appendValueInput("VAR").setCheck("var").appendField("UDP"),this.appendValueInput("content").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.appendValueInput("address").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_TO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_SEND_TO_TOOLTIP)}},pO={init:function(){this.setColour(Gm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_CLOSE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_CLOSE_TOOLTIP)}},aO={init:function(){this.setColour(Gm),this.appendValueInput("DOMAIN").appendField(mt.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(mt.Msg.blockpy_REQUESTS_GET).appendField(new mt.FieldTextInput("response"),"VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.blockpy_REQUESTS_GET_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},uO={init:function(){this.appendValueInput("VAL");var t=[[mt.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE,"status_code"],[mt.Msg.blockpy_REQUESTS_GET_ATTR_TEXT,"text"],[mt.Msg.blockpy_REQUESTS_GET_ATTR_COOKIES,"cookies"],[mt.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT,"content"]];this.setColour(Gm),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_GET).appendField(new mt.FieldDropdown(t),"ATTR"),this.setInputsInline(!0),this.setOutput(!0,String);var e=this;this.setTooltip((function(){var t=e.getFieldValue("DIR");return{clear:mt.Msg.MIXLY_TOOLTIP_TURTEL_CLEAR,reset:mt.Msg.MIXLY_TOOLTIP_TURTEL_RESET,home:mt.Msg.MIXLY_TOOLTIP_TURTEL_HOME}[t]}))}},rO={init:function(){this.appendValueInput("VAR").appendField(mt.Msg.DISPLAY_IMAGE_LET2).setCheck(String);this.setColour(Gm),this.appendDummyInput("").appendField(mt.Msg.blockpy_CONDUCT).appendField(new mt.FieldDropdown([["post","post"],["put","put"],["delete","delete"],["head","head"],["option","option"]]),"DIR"),this.appendDummyInput("").appendField(mt.Msg.blockpy_REQUESTS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{forward:mt.Msg.MIXLY_TOOLTIP_TURTEL_FORWARD,backward:mt.Msg.MIXLY_TOOLTIP_TURTEL_BACKWARD}[e]}))}},lO={init:function(){this.setColour(Gm),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GET_NTP+"(NTP)"),this.appendValueInput("data").appendField(mt.Msg.blynk_SERVER_ADD),this.setOutput(!0,"Tuple"),this.setInputsInline(!0)}},dO={init:function(){this.setColour(Gm),this.appendDummyInput("").appendField(new mt.FieldDropdown([["ntp.aliyun.com","ntp.aliyun.com"],["ntp1.aliyun.com","ntp1.aliyun.com"],["ntp2.aliyun.com","ntp2.aliyun.com"],["ntp3.aliyun.com","ntp3.aliyun.com"],["ntp4.aliyun.com","ntp4.aliyun.com"],["ntp5.aliyun.com","ntp5.aliyun.com"],["ntp6.aliyun.com","ntp6.aliyun.com"],["ntp7.aliyun.com","ntp7.aliyun.com"],["time1.cloud.tencent.com","time1.cloud.tencent.com"],["time2.cloud.tencent.com","time2.cloud.tencent.com"],["time3.cloud.tencent.com","time3.cloud.tencent.com"],["time4.cloud.tencent.com","time4.cloud.tencent.com"],["time5.cloud.tencent.com","time5.cloud.tencent.com"]]),"op"),this.setOutput(!0)}},IO=100,TO={init:function(){var t=Ot.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(IO),this.appendValueInput("I2CSUB").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(e),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},hO={init:function(){var t=Ot.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(IO),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXGO_CAR_BATTERY_LEFT),this.setOutput(!0,Number),this.setInputsInline(!0)}},MO={init:function(){var t=Ot.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(IO),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendValueInput("PIN").appendField(mt.Msg.MOTOR_DC).appendField(mt.Msg.LCD_NUMBERING),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Direction).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"CW"],[mt.Msg.ANTI_CLOCKWISE,"CCW"],[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},mO={init:function(){var t=Ot.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(IO),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendValueInput("PIN").appendField(mt.Msg.MOTOR_DC).appendField(mt.Msg.LCD_NUMBERING),this.appendDummyInput().appendField(mt.Msg.MIXLY_STEPPER_GET_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},OO={init:function(){var t=Ot.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(IO),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendValueInput("PIN").appendField("180°"+mt.Msg.MIXLY_SERVO).appendField(mt.Msg.LCD_NUMBERING),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SERVO_MOVE)}},EO={init:function(){var t=Ot.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(IO),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendValueInput("PIN").appendField("360°"+mt.Msg.MIXLY_SERVO).appendField(mt.Msg.LCD_NUMBERING),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SERVO_SPEED_TOOLIPS)}},RO={init:function(){var t=Ot.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(IO),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendValueInput("PIN").appendField("180°"+mt.Msg.MIXLY_SERVO),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setOutput(!0,Number),this.setInputsInline(!0)}},cO={init:function(){var t=Ot.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(IO),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendValueInput("PIN").appendField("360°"+mt.Msg.MIXLY_SERVO).appendField(mt.Msg.LCD_NUMBERING),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},gO="#A58C5B",CO={init:function(){this.setColour(gO),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_BUTTON).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_IS_PRESSED),this.appendValueInput("STAT").appendField(mt.Msg.MIXLY_ELECLEVEL),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_SENOR_IS_PRESSED)}},SO={init:function(){this.setColour(gO),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_BUTTON).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_WAS_PRESSED),this.appendValueInput("STAT").appendField(mt.Msg.MIXLY_ELECLEVEL),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_SENOR_WAS_PRESSED)}},AO={init:function(){this.setColour(gO),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_BUTTON).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_PRESSES),this.appendValueInput("VAR").setCheck(Number).appendField(mt.Msg.MIXLY_GET_PRESSES_TIME),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.PROCEDURES_DEFRETURN_RETURN+mt.Msg.MIXLY_BUTTON+mt.Msg.MIXLY_GET_PRESSES)}},LO={init:function(){this.setColour(gO),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_BUTTON).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_RISING,"machine.Pin.IRQ_RISING"],[mt.Msg.MIXLY_FALLING,"machine.Pin.IRQ_FALLING"],[mt.Msg.MIXLY_CHANGE,"(machine.Pin.IRQ_RISING | machine.Pin.IRQ_FALLING)"]]),"mode"),this.appendValueInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_INOUT_ATTACHINTERRUPT)}},NO={init:function(){this.setColour(gO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_shake,"shake"],[mt.Msg.MIXLY_UP,"up"],[mt.Msg.MIXLY_DOWN,"down"],[mt.Msg.MIXLY_LEFT,"left"],[mt.Msg.MIXLY_RIGHT,"right"],[mt.Msg.MIXLY_MICROBIT_face_up,"face up"],[mt.Msg.MIXLY_MICROBIT_face_down,"face down"],[mt.Msg.MIXLY_MICROBIT_freefall,"freefall"],["3g","3g"],["6g","6g"],["8g","8g"]]),"gesture"),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("gesture"),i=mt.Msg.MIXLY_MICROBIT_JS_CURRENT,n=mt.Msg.MSG.catSensor,s=mt.Msg.MIXLY_MICROBIT_JS_STATE,o=mt.Msg.MIXLY_MICROBIT_PERFORMANCE;return i+n+s+{shake:mt.Msg.MIXLY_MICROBIT_shake,up:mt.Msg.MIXLY_UP,down:mt.Msg.MIXLY_DOWN,left:mt.Msg.MIXLY_LEFT,right:mt.Msg.MIXLY_RIGHT,"face up":mt.Msg.MIXLY_MICROBIT_face_up,"face down":mt.Msg.MIXLY_MICROBIT_face_down,freefall:mt.Msg.MIXLY_MICROBIT_freefall,"3g":"3g","6g":"6g","8g":"8g"}[e]+o}))}},DO={init:function(){this.setColour(gO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_ADXL345).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION).appendField(new mt.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=mt.Msg.MIXLY_MICROBIT_Direction,s=mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION1;return i+{x:"x",y:"y",z:"z","(x,y,z)":mt.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},fO={init:function(){this.setColour(gO),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_LIGHT_LEVEL),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SENSOR_LIGHT_LEVEL_TOOLTIP)}},FO={init:function(){var t=[[mt.Msg.MIXLY_GETTEMPERATUE,"temperature"],[mt.Msg.MIXLY_GETHUMIDITY,"humidity"]];this.setColour(gO),this.appendValueInput("PIN",Number).appendField(new mt.FieldDropdown([["DHT11","DHT11"],["DHT22","DHT22"]]),"TYPE").appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(new mt.FieldDropdown(t),"WHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("WHAT");return{temperature:mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_TEM,relative_humidity:mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_HUM,tempandhum:mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_TEM_HUM}[t]}))}},PO={init:function(){this.setColour(gO),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_EXTERN_LIGHT),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_EXTERN_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.ESP32_SENSOR_NIXGO_LIGHT_TOOLTIP)}},vO={init:function(){this.setColour(gO),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_EXTERN_SOUND),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_EXTERN_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.ESP32_SENSOR_NIXGO_SOUND_TOOLTIP)}},YO={init:function(){this.setColour(gO),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new mt.FieldDropdown([[mt.Msg.TEXT_TRIM_LEFT,"left"],[mt.Msg.TEXT_TRIM_RIGHT,"right"]]),"direction").appendField(mt.Msg.MIXLY_ESP32_NEAR),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("direction"),i=mt.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP,n=mt.Msg.MIXLY_ESP32_NEAR;return i+{left:mt.Msg.TEXT_TRIM_LEFT,right:mt.Msg.TEXT_TRIM_RIGHT}[e]+n}))}},XO={init:function(){this.setColour(gO),this.appendValueInput("SUB").appendField("BMP280").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETTEMPERATUE,"get_BMP_temperature()"],[mt.Msg.MIXLY_GETPRESSURE,"get_BMP_pressure()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{"get_BMP_temperature()":mt.Msg.MIXLY_MICROBIT_SENSOR_BMP_temperature_TOOLTIP,"get_BMP_pressure()":mt.Msg.MIXLY_MICROBIT_SENSOR_BMP_press_TOOLTIP}[e]}))}},xO={init:function(){this.setColour(gO),this.appendValueInput("SUB").appendField("SHT20").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETTEMPERATUE,"get_SHT_temperature()"],[mt.Msg.MIXLY_GETHUMIDITY,"get_SHT_relative_humidity()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{"get_SHT_temperature()":mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,"get_SHT_relative_humidity()":mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},bO={init:function(){this.setColour(gO),this.appendValueInput("PIN",Number).appendField("DS18x20 "+mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GETTEMPERATUE),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_MICROBIT_SENSOR_DS18X20_TOOLTIP)}},VO={init:function(){this.setColour(gO),this.appendDummyInput("").appendField("LM35"+mt.Msg.MIXLY_TEMP),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GETTEMPERATUE),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_LM35)}},yO={init:function(){this.setColour(gO),this.appendValueInput("I2CSUB").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new mt.FieldDropdown([["MPU9250","MPU9250"],["BMP280","BMP280"],["SHT20","SHT20"],["ADXL345","ADXL345"],["LTR308","LTR308"],["LTR381RGB","LTR381RGB"],["HP203X","HP203X"],["SHTC3","SHTC3"],["AHT21","AHT21"],["VL53L0X","VL53L0X"],["QMC5883L","QMC5883L"],["MAX30102","MAX30102"],["APDS9960","APDS9960"],["RFID","RFID"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setFieldValue("LTR308","key")}},BO={init:function(){this.setColour(gO),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_MAX30102+" MAX30102"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_ESP32_MAX30102_IR,"[0]"],[mt.Msg.MIXLY_ESP32_MAX30102_RED,"[1]"],[mt.Msg.MIXLY_ESP32_MAX30102_IR+","+mt.Msg.MIXLY_ESP32_MAX30102_RED,""]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},GO={init:function(){this.setColour(gO),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_APDS9960+" APDS9960"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_ESP32_APDS9960_COLOR,"color"],[mt.Msg.MIXLY_ESP32_APDS9960_GESTURE,"gesture"],[mt.Msg.MIXLY_ESP32_APDS9960_APPROACH,"proximity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},UO={init:function(){this.setColour(gO),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_EXTERN_LIGHT+" LTR308"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_LIGHT_INTENSITY),this.setOutput(!0,Number),this.setInputsInline(!0)}},wO={init:function(){this.setColour(gO),this.appendValueInput("SUB").appendField(mt.Msg.HTML_COLOUR+mt.Msg.MSG.catSensor+" LTR381RGB").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GET+mt.Msg.HTML_COLOUR,"[2]"],[mt.Msg.MIXLY_GET+mt.Msg.MIXLY_IR_STRENGTH,"[1]"],[mt.Msg.MIXLY_GET+mt.Msg.MIXLY_LIGHT_STRENGTH,"[0]"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},kO={init:function(){this.setColour(gO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_EXTERN_LIGHTUV+" LTR390UV").setCheck("var"),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GET_ENV_LIGHT,"E"],[mt.Msg.MIXLY_GET_ULTRAVIOLET,"U"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},HO={init:function(){this.setColour(gO),this.appendDummyInput().appendField(mt.Msg.MIXLY_LASER_RANGE+" VL53L0X"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_DISTANCE+"(mm)"),this.setOutput(!0,Number),this.setInputsInline(!0)}},WO={init:function(){this.setColour(gO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_TEM_HUM+" SHTC3").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETTEMPERATUE,"temperature"],[mt.Msg.MIXLY_GETHUMIDITY,"humidity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{temperature:mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,humidity:mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},KO={init:function(){this.setColour(gO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_TEM_HUM+" AHT21").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETTEMPERATUE,"temperature"],[mt.Msg.MIXLY_GETHUMIDITY,"humidity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{temperature:mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,relative_humidity:mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},JO={init:function(){this.setColour(gO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_Altitude+mt.Msg.MSG.catSensor+" HP203X").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETPRESSURE,"pressure()"],[mt.Msg.MIXLY_GETTEMPERATUE,"temperature()"],[mt.Msg.MIXLY_GET_ALTITUDE,"altitude()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},zO={init:function(){this.setColour(gO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MIXGOPE_FIELD+mt.Msg.MSG.catSensor+" QMC5883L").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"get_bearing()"],[mt.Msg.MIXLY_TEMPERATURE,"get_temp()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},qO={init:function(){this.setColour(gO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_shake,"shake"],[mt.Msg.MIXLY_UP,"up"],[mt.Msg.MIXLY_DOWN,"down"],[mt.Msg.MIXLY_LEFT,"left"],[mt.Msg.MIXLY_RIGHT,"right"],[mt.Msg.MIXLY_MICROBIT_face_up,"face up"],[mt.Msg.MIXLY_MICROBIT_face_down,"face down"]]),"gesture"),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("gesture"),i=mt.Msg.MIXLY_MICROBIT_JS_CURRENT,n=mt.Msg.MSG.catSensor,s=mt.Msg.MIXLY_MICROBIT_JS_STATE,o=mt.Msg.MIXLY_MICROBIT_PERFORMANCE;return i+n+s+{shake:mt.Msg.MIXLY_MICROBIT_shake,up:mt.Msg.MIXLY_UP,down:mt.Msg.MIXLY_DOWN,left:mt.Msg.MIXLY_LEFT,right:mt.Msg.MIXLY_RIGHT,"face up":mt.Msg.MIXLY_MICROBIT_face_up,"face down":mt.Msg.MIXLY_MICROBIT_face_down}[e]+o}))}},QO={init:function(){this.setColour(gO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION).appendField(new mt.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=mt.Msg.MIXLY_MICROBIT_Direction,s=mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION1;return i+{x:"x",y:"y",z:"z","(x,y,z)":mt.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},jO={init:function(){this.setColour(gO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_GET+mt.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH).appendField(new mt.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=mt.Msg.MIXLY_MICROBIT_Direction,s=mt.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH;return i+{x:"x",y:"y",z:"z","(x,y,z)":mt.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},ZO={init:function(){this.setColour(gO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+mt.Msg.MIXLY_ESP32_SENOR_GYRO).appendField(new mt.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=mt.Msg.MIXLY_MICROBIT_Direction,s=mt.Msg.MIXLY_ESP32_SENOR_GYRO;return i+{x:"x",y:"y",z:"z","(x,y,z)":mt.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},$O={init:function(){this.setColour(gO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS)}},tE={init:function(){this.setColour(gO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GETTEMPERATUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_GETTEMPERATUE)}},eE={init:function(){this.setColour(gO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_GET_COMPASS).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH,"strength"],[mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"heading"]]),"compass"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("compass");return mt.Msg.MIXLY_MICROBIT_JS_GET_COMPASS+{strength:mt.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH,heading:mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE}[e]}))}},iE={init:function(){this.setColour(gO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Reset_COMPASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Reset_COMPASS)}},nE={init:function(){this.setColour(gO),this.appendValueInput("SPISUB").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new mt.FieldDropdown([["RFID","RFID"],["WS-LoRa","Weather"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setFieldValue("RFID","key")}},sE={init:function(){this.setColour(gO),this.appendDummyInput().appendField("RFID"+mt.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(mt.Msg.MIXLY_LIST_INDEX),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_RFID_READ_CARD_UID,"id"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL,"content"],[mt.Msg.MIXLY_ALL,"ALL"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},oE={init:function(){this.setColour(gO),this.appendDummyInput().appendField("RFID"+mt.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RFID_READ_CARD_UID),this.setOutput(!0,Number),this.setInputsInline(!0)}},_E={init:function(){this.setColour(gO),this.appendDummyInput().appendField("RFID"+mt.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(mt.Msg.MIXLY_LIST_INDEX),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL),this.setOutput(!0,"Tuple"),this.setInputsInline(!0)}},pE={init:function(){this.setColour(gO),this.appendDummyInput().appendField(mt.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(mt.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(mt.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},aE={init:function(){this.setColour(gO),this.appendDummyInput().appendField(mt.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(mt.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(mt.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.appendDummyInput().appendField(mt.Msg.RETURN_SUCCESS_OR_NOT),this.setInputsInline(!0),this.setOutput(!0,Boolean)}},uE={init:function(){this.setColour(gO),this.appendDummyInput().appendField("RFID"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_RFID_SCAN_OK,"0"],[mt.Msg.MIXLY_RFID_SCAN_NOTAGERR,"1"],[mt.Msg.MIXLY_RFID_SCAN_ERROR,"2"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},rE={init:function(){this.setColour(gO),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_GET).appendField(new mt.FieldDropdown([["全部(元组)","data()[0]"],["全部(json)","data()[1]"],["全部(json,附带位置信息)","data()[2]"],["编号","data()[0][0]"],["电量","data()[0][1]"],["风速","data()[0][2]"],["阵风","data()[0][3]"],["风向","data()[0][4]"],["雨量","data()[0][5]"],["温度","data()[0][6]"],["湿度","data()[0][7]"],["光照","data()[0][8]"],["紫外线","data()[0][9]"],["大气压","data()[0][10]"],["信号强度","data()[0][11]"],["信噪比","data()[0][12]"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip("返回气象数据元组 data= (设备id,电池状态,风速m/s,阵风m/s,风向°,雨量mm,温度℃,湿度%,光照Lux,UVI,大气压Pa,信号强度dB,信噪比dB)")}},lE={init:function(){this.setColour(gO),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SERIAL_AVAILABLE),this.setOutput(!0,Number),this.setInputsInline(!0)}},dE={init:function(){this.setColour(gO),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendValueInput("BASE").appendField("以主题"),this.appendDummyInput("").appendField("串口发送至MixIO"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},IE={init:function(){this.setColour(gO),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.itemCount_=2,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new mt.icons.MutatorIcon(["weather_set_label_item"],this)),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip()},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("weather_set_label_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n>6),i.push(128|63&o)):(2048<=o&&o<=55295||57344<=o&&o<=65535)&&(n+=3,i.push(224|15&o>>12),i.push(128|63&o>>6),i.push(128|63&o))}for(s=0;s>8,255&n].concat(i)}(t,!0),i="",n=0;n=0?"0x700000":["mixgo_zero"].indexOf(n)>=0?"0xE00000":"0x3A0000","32x12 Matrix"==_?(e.definitions_.import_matrix32x12="import matrix32x12",i=s+" = matrix32x12.Matrix("+o+",font_address="+p+")\n"):"16x8 Matrix"==_&&(e.definitions_.import_matrix16x8="import matrix16x8",i=s+" = matrix16x8.Matrix("+o+")\n"),i},kL=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},HL=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",space = "+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+",center = "+this.getFieldValue("center")+")\n"},WL=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},KL=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",delay = "+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},JL=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},zL=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",speed ="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+",space = "+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+")\n"},qL=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".fill(0)\n"+i+".show()\n"},QL=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("OP")+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")\n"},jL=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+"))",e.ORDER_ATOMIC]},ZL=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".pixel(int("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+"), int("+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+"), "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"+i+".show()\n"},$L=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".get_brightness()",e.ORDER_ATOMIC]},tN=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".set_brightness("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+")\n"},eN=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("image"),e.ORDER_ATOMIC]},iN=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".map_"+t.getFieldValue("OP")+"("+e.valueToCode(t,"A",e.ORDER_ATOMIC)+","+e.valueToCode(t,"B",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},nN=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".map_invert("+e.valueToCode(t,"A",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},sN=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC);return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+" = ssd1306.SSD1306_I2C("+e.valueToCode(this,"row",e.ORDER_ATOMIC)+","+e.valueToCode(this,"column",e.ORDER_ATOMIC)+","+i+")\n"},oN=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_str("+(e.valueToCode(this,"Text_line1",e.ORDER_ASSIGNMENT)||"''")+","+(e.valueToCode(this,"Text_line2",e.ORDER_ASSIGNMENT)||"''")+","+(e.valueToCode(this,"Text_line3",e.ORDER_ASSIGNMENT)||"''")+","+(e.valueToCode(this,"Text_line4",e.ORDER_ASSIGNMENT)||"''")+")\n"},_N=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_line("+e.valueToCode(this,"x1",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"y1",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"x2",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"y2",e.ORDER_ATOMIC)+", 1)\n"},pN=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),o=e.valueToCode(this,"width",e.ORDER_ATOMIC),_=e.valueToCode(this,"height",e.ORDER_ATOMIC),p="TRUE"==this.getFieldValue("fill")?"True":"False",a=this.getFieldValue("OP");switch(p){case"True":return i+".show_fill_rect("+n+", "+s+", "+o+", "+_+","+a+")\n";case"False":return i+".show_rect("+n+", "+s+", "+o+", "+_+","+a+")\n"}},aN=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),o=e.valueToCode(this,"length",e.ORDER_ATOMIC);return i+".show_"+this.getFieldValue("direction")+"("+n+", "+s+", "+o+", 1)\n"},uN=function(t,e){return["ON"==this.getFieldValue("ONOFF")?"1":"0",e.ORDER_ATOMIC]},rN=function(t,e){e.definitions_.import_matrix="import matrix";var i=t.getFieldValue("OP");return[e.valueToCode(t,"img",e.ORDER_ATOMIC)+".shift_"+i+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},lN=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return e.definitions_.import_ssd1306="import ssd1306",e.definitions_.import_machine="import machine",i+".show_fill("+this.getFieldValue("key")+")\n"},dN=function(t,e){return["matrix.Image."+this.getFieldValue("ANIMATION"),e.ORDER_ATOMIC]},IN=function(t,e){var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),o=e.valueToCode(this,"r",e.ORDER_ATOMIC),_="TRUE"==this.getFieldValue("fill")?"True":"False",p=this.getFieldValue("OP");switch(_){case"True":return i+".show_fill_circle("+n+", "+s+", "+o+", "+p+")\n";case"False":return i+".show_circle("+n+", "+s+", "+o+", "+p+")\n"}},TN=function(t,e){var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var n=e.valueToCode(this,"x0",e.ORDER_ATOMIC),s=e.valueToCode(this,"y0",e.ORDER_ATOMIC),o=e.valueToCode(this,"x1",e.ORDER_ATOMIC),_=e.valueToCode(this,"y1",e.ORDER_ATOMIC),p=e.valueToCode(this,"x2",e.ORDER_ATOMIC),a=e.valueToCode(this,"y2",e.ORDER_ATOMIC),u="TRUE"==this.getFieldValue("fill")?"True":"False",r=this.getFieldValue("OP");switch(u){case"True":return i+".show_fill_triangle("+n+", "+s+", "+o+", "+_+", "+p+", "+a+", "+r+")\n";case"False":return i+".show_triangle("+n+", "+s+", "+o+", "+_+", "+p+", "+a+", "+r+")\n"}},hN=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_bitmap("+e.valueToCode(this,"START_X",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"START_Y",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"bitmap_name",e.ORDER_ATOMIC)+","+e.valueToCode(this,"WIDTH",e.ORDER_ATOMIC)+","+e.valueToCode(this,"HEIGHT",e.ORDER_ATOMIC)+")\n"},MN=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_pixel("+e.valueToCode(this,"POS_X",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"POS_Y",e.ORDER_ATOMIC)+")\n"},mN=function(t,e){var i,n=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),s=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),o=this.getFieldValue("key");return"TM1650"==o?(e.definitions_.import_tm1650="import tm1650",i=n+" = tm1650."+o+"("+s+")\n"):"TM1637"==o&&(e.definitions_.import_tm1637="import tm1637",i=n+" = tm1637."+o+"("+s+")\n"),i},ON=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+"."+this.getFieldValue("STAT")+"()\n"},EN=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".shownum("+e.valueToCode(this,"VALUE",e.ORDER_ATOMIC)+")\n"},RN=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".showDP("+e.valueToCode(this,"NO",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"},cN=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".intensity("+e.valueToCode(this,"VALUE",e.ORDER_ATOMIC)+")\n"},gN=function(t,e){e.definitions_.import_st7789="import st7789";var i=Ot.Boards.getSelectedBoardKey().split(":")[2],n="";n=["mpython","mixgo_pe","mixgo_nova"].indexOf(i)>=0?"0x700000":["mixgo_zero"].indexOf(i)>=0?"0xE00000":"0x3A0000";var s=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),o=e.valueToCode(this,"SPISUB",e.ORDER_ATOMIC),_=e.valueToCode(this,"PINCS",e.ORDER_ATOMIC),p=e.valueToCode(this,"PINDC",e.ORDER_ATOMIC);return s+" = st7789.ST7789("+o+","+e.valueToCode(this,"WIDTH",e.ORDER_ATOMIC)+","+e.valueToCode(this,"HEIGHT",e.ORDER_ATOMIC)+",dc_pin="+p+",cs_pin="+_+",rotation="+this.getFieldValue("rotate")+",font_address="+n+")\n"},CN=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a=i+".image("+n+",x = "+s+",y = "+o+",size = "+_+",color="+p+")\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a=i+".image("+n+",x = "+s+",y = "+o+",size = "+_+",color=0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},SN=function(t,e){var i="0x"+this.getFieldValue("COLOR").slice(1);return["0x"+((16252928&i)>>8|(64512&i)>>5|(255&i)>>3).toString(16),e.ORDER_ATOMIC]},AN=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),u=this.getFieldValue("center");if("0x"==a.slice(0,2))var r=i+".shows("+n+",x = "+s+",y = "+o+",size = "+_+",space = "+p+",center = "+u+",color="+a+")\n";else{const t=a.match(/\d+/g);var l="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");r=i+".shows("+n+",x = "+s+",y = "+o+",size = "+_+",space = "+p+",center = "+u+",color=0x"+((16252928&l)>>8|(64512&l)>>5|(255&l)>>3).toString(16)+")\n"}return r},LN=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==_.slice(0,2))var p=i+".frame("+n+",size = "+s+",delay = "+o+",color="+_+")\n";else{const t=_.match(/\d+/g);var a="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");p=i+".frame("+n+",size = "+s+",delay = "+o+",color=0x"+((16252928&a)>>8|(64512&a)>>5|(255&a)>>3).toString(16)+")\n"}return p},NN=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==a.slice(0,2))var u=i+".scroll("+n+",y = "+s+",size = "+o+",speed ="+_+",space = "+p+",color="+a+")\n";else{const t=a.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u=i+".scroll("+n+",y = "+s+",size = "+o+",speed ="+_+",space = "+p+",color=0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\n"}return u},DN=function(t,e){return e.definitions_.import_st7789="import st7789",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".fill(st7789."+this.getFieldValue("key")+")\n"},fN=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"x1",e.ORDER_ATOMIC),s=e.valueToCode(this,"y1",e.ORDER_ATOMIC),o=e.valueToCode(this,"x2",e.ORDER_ATOMIC),_=e.valueToCode(this,"y2",e.ORDER_ATOMIC),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a=i+".line("+n+", "+s+", "+o+", "+_+", color="+p+")\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a=i+".line("+n+", "+s+", "+o+", "+_+", color=0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},FN=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),s=this.getFieldValue("key"),o=e.valueToCode(this,"ADDR",e.ORDER_ATOMIC);return e.definitions_.import_i2clcd="import i2clcd",i+" = i2clcd.LCD("+n+",lcd_width="+s+",i2c_addr="+o+")\n"},PN=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",column = "+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+",line = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",center = "+this.getFieldValue("center")+")\n"},vN=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".print("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",column = "+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+",line = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",delay="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},YN=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".backlight("+this.getFieldValue("key")+")\n"},XN=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".clear()\n"},xN=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),s=e.valueToCode(this,"ADDR",e.ORDER_ATOMIC),o=Ot.Boards.getSelectedBoardKey().split(":")[2],_="";return _=["mpython","mixgo_pe","mixgo_nova"].indexOf(o)>=0?"0x700000":["mixgo_zero"].indexOf(o)>=0?"0xE00000":"0x3A0000",e.definitions_.import_oled128x64="import oled128x64",i+" = oled128x64.OLED("+n+",address="+s+",font_address="+_+")\n"},bN=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".image("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},VN=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".image("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",x = "+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+",y = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",size = "+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+")\n"},yN=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},BN=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",x = "+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+",y = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",size = "+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+",space = "+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+",center = "+this.getFieldValue("center")+")\n"},GN=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},UN=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",size = "+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+",delay = "+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},wN=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},kN=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",y = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",size = "+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+",speed ="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+",space = "+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+")\n"},HN=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".fill(0)\n"+i+".show()\n"},WN=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("OP")+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")\n"},KN=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+"))",e.ORDER_ATOMIC]},JN=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".pixel(int("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+"), int("+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+"), "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"+i+".show()\n"},zN=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),o=e.valueToCode(t,"w",e.ORDER_ATOMIC),_=e.valueToCode(t,"h",e.ORDER_ATOMIC),p=t.getFieldValue("state");return i+"."+t.getFieldValue("shape")+"("+n+", "+s+", "+o+", "+_+", "+p+")\n"+i+".show()\n"},qN=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),o=e.valueToCode(t,"length",e.ORDER_ATOMIC),_=t.getFieldValue("state");return i+"."+("0"==t.getFieldValue("dir_h_v")?"v":"h")+"line("+n+", "+s+", "+o+", "+_+")\n"+i+".show()\n"},QN=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".line("+e.valueToCode(t,"x1",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"y1",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"x2",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"y2",e.ORDER_ATOMIC)+", "+t.getFieldValue("state")+")\n"+i+".show()\n"},jN=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix","onboard_matrix.shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},ZN=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),o=this.getFieldValue("center");return"mixgo_zero"==i||"mixgo_nova"==i?(e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft","onboard_tft.shows("+n+",space = "+s+",center = "+o+")\n"):(e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix","onboard_matrix.shows("+n+",space = "+s+",center = "+o+")\n")},$N=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];if("mpython"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var n="onboard_oled.frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";n="onboard_matrix.frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}return n},tD=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix","onboard_matrix.frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",delay = "+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},eD=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];if("mpython"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var n="onboard_oled.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";n="onboard_matrix.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}return n},iD=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix","onboard_matrix.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",speed ="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+",space = "+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+")\n"},nD=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix",["onboard_matrix."+t.getFieldValue("image"),e.ORDER_ATOMIC]},sD=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix",["onboard_matrix."+t.getFieldValue("image"),e.ORDER_ATOMIC]},oD=function(t,e){var i={"#000000":"0","#ff0000":"1"};function n(t){let e="";if(t.length%2==1&&(t="0"+t),t.length<8){let e=8-t.length;for(let i=1;i<=e;i++)t="0"+t}for(let i=1;i<=t.length;i++)i%2==0&&i!==t.length?e=e+t[i-1]+",0x":e+=t[i-1];return"0x"+e}let s=[];for(let e=0;e<12;e++){let o="",_=0,p=0;for(let n=0;n<32;n++)n<8?p=7-n:n<16?p=23-n:n<24?p=39-n:n<32&&(p=55-n),_+=Number(i[t.getFieldValue(e+"-"+n)])*Math.pow(2,31-p);o+=n(_.toString(16)),s.unshift(o)}let o=[];for(let t=0;t>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},VD=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=this.getFieldValue("center"),u=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==u.slice(0,2))var r="onboard_tft.shows("+n+",x = "+s+",y = "+o+",size = "+_+",space = "+p+",center = "+a+",color="+u+")\n";else{const t=u.match(/\d+/g);var l="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");r="onboard_tft.shows("+n+",x = "+s+",y = "+o+",size = "+_+",space = "+p+",center = "+a+",color=0x"+((16252928&l)>>8|(64512&l)>>5|(255&l)>>3).toString(16)+")\n"}return r},yD=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_tft","onboard_tft.frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",color=0xffff)\n"},BD=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==_.slice(0,2))var p="onboard_tft.frame("+n+",size = "+s+",delay = "+o+",color="+_+")\n";else{const t=_.match(/\d+/g);var a="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");p="onboard_tft.frame("+n+",size = "+s+",delay = "+o+",color=0x"+((16252928&a)>>8|(64512&a)>>5|(255&a)>>3).toString(16)+")\n"}return p},GD=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_tft","onboard_tft.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",color=0xffff)\n"},UD=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==a.slice(0,2))var u="onboard_tft.scroll("+n+",y = "+s+",size = "+o+",speed ="+_+",space = "+p+",color="+a+")\n";else{const t=a.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u="onboard_tft.scroll("+n+",y = "+s+",size = "+o+",speed ="+_+",space = "+p+",color=0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\n"}return u},wD=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),o=e.valueToCode(t,"w",e.ORDER_ATOMIC),_=e.valueToCode(t,"h",e.ORDER_ATOMIC),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),a=t.getFieldValue("shape");if("0x"==p.slice(0,2))var u="onboard_tft."+a+"("+n+", "+s+", "+o+", "+_+", "+p+")\nonboard_tft.show()\n";else{const t=p.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u="onboard_tft."+a+"("+n+", "+s+", "+o+", "+_+", 0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\nonboard_tft.show()\n"}return u},kD=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),o=e.valueToCode(t,"length",e.ORDER_ATOMIC),_=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),p=t.getFieldValue("dir_h_v");if("0x"==_.slice(0,2))var a="onboard_tft."+("0"==p?"v":"h")+"line("+n+", "+s+", "+o+", "+_+")\nonboard_tft.show()\n";else{const t=_.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a="onboard_tft."+("0"==p?"v":"h")+"line("+n+", "+s+", "+o+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\nonboard_tft.show()\n"}return a},HD=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x1",e.ORDER_ATOMIC),s=e.valueToCode(t,"y1",e.ORDER_ATOMIC),o=e.valueToCode(t,"x2",e.ORDER_ATOMIC),_=e.valueToCode(t,"y2",e.ORDER_ATOMIC),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a="onboard_tft.line("+n+", "+s+", "+o+", "+_+", "+p+")\nonboard_tft.show()\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a="onboard_tft.line("+n+", "+s+", "+o+", "+_+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\nonboard_tft.show()\n"}return a},WD=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";return"onboard_tft.fill(0)\nonboard_tft.show()\n"},KD=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft","onboard_tft."+t.getFieldValue("OP")+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")\n"},JD=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft",["hex(onboard_tft.pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+")))",e.ORDER_ATOMIC]},zD=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==o.slice(0,2))var _="onboard_tft.pixel(int("+n+"), int("+s+"), "+o+")\nonboard_tft.show()\n";else{const t=o.match(/\d+/g);var p="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");_="onboard_tft.pixel(int("+n+"), int("+s+"), 0x"+((16252928&p)>>8|(64512&p)>>5|(255&p)>>3).toString(16)+")\nonboard_tft.show()\n"}return _},qD=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";return["onboard_tft.get_brightness()",e.ORDER_ATOMIC]},QD=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft","onboard_tft.set_brightness("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+")\n"},jD=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"VAR",e.ORDER_ASSIGNMENT);if("0x"==n.slice(0,2))var s="onboard_tft.fill("+n+")\nonboard_tft.show()\n";else{const t=n.match(/\d+/g);var o="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");s="onboard_tft.fill(0x"+((16252928&o)>>8|(64512&o)>>5|(255&o)>>3).toString(16)+")\nonboard_tft.show()\n"}return s},ZD=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock";var n=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a=_+"=Clock("+n+","+s+","+o+","+p+")\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a=_+"=Clock("+n+","+s+","+o+",0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},$D=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".set_rtctime()\n"},tf=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".set_time("+e.valueToCode(this,"h",e.ORDER_ASSIGNMENT)+","+e.valueToCode(this,"m",e.ORDER_ASSIGNMENT)+","+e.valueToCode(this,"s",e.ORDER_ASSIGNMENT)+")\n"},ef=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".draw_clock()\n"},nf=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock";var n=e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==s.slice(0,2))var o=n+".clear("+s+")\n";else{const t=s.match(/\d+/g);var _="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");o=n+".clear(0x"+((16252928&_)>>8|(64512&_)>>5|(255&_)>>3).toString(16)+")\n"}return o},sf=function(t,e){var i=Ot.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),o=e.valueToCode(t,"r",e.ORDER_ATOMIC),_=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),p=t.getFieldValue("shape");if("0x"==_.slice(0,2))var a="onboard_tft.ellipse("+n+", "+s+", "+o+", "+o+", "+_+","+p+")\nonboard_tft.show()\n";else{const t=_.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a="onboard_tft.ellipse("+n+", "+s+", "+o+", "+o+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+","+p+")\nonboard_tft.show()\n"}return a},of=function(t,e){var i=this.getFieldValue("path"),n=this.getFieldValue("module");return e.definitions_["import_"+i+"_"+n]="from "+i+" import "+n,""},_f=function(t,e){var i=this.getFieldValue("module");return e.definitions_["import_"+i]="import "+i,""},pf=function(t,e){for(var i=this.getFieldValue("NAME"),n=new Array(this.itemCount_),s=0;s {\n"+e.statementToCode(this,"do")+"})\n"},nX=function(){return"control.reset()\n"},sX=function(t,e){return"control.waitMicros("+(e.valueToCode(this,"data",e.ORDER_ATOMIC)||Ot.Profile.default.serial)+")\n"},oX=function(t,e){return"control.raiseEvent("+(e.valueToCode(this,"system_event_bus_source",e.ORDER_ATOMIC)||Ot.Profile.default.serial)+", "+(e.valueToCode(this,"system_event_bus_value",e.ORDER_ATOMIC)||Ot.Profile.default.serial)+")\n"},_X=function(t,e){return"control.onEvent("+(e.valueToCode(this,"system_event_bus_source",e.ORDER_ATOMIC)||Ot.Profile.default.serial)+", "+(e.valueToCode(this,"system_event_bus_value",e.ORDER_ATOMIC)||Ot.Profile.default.serial)+", () => {\n"+e.statementToCode(this,"do")+")\n"},pX=function(t,e){return["control.eventTimestamp()",e.ORDER_ATOMIC]},aX=function(t,e){return["control.eventValue()",e.ORDER_ATOMIC]},uX=function(t,e){return[this.getFieldValue("key"),e.ORDER_ATOMIC]},rX=function(t,e){return[this.getFieldValue("key"),e.ORDER_ATOMIC]},lX=function(t,e){return["control.deviceName()",e.ORDER_ATOMIC]},dX=function(t,e){return["control.deviceSerialNumber()",e.ORDER_ATOMIC]},IX=function(t,e){return"panic("+(e.valueToCode(this,"STATUS_CODE",e.ORDER_ATOMIC)||"1000")+")\n"},TX=function(t,e){switch(e.definitions_.import_time="import time",this.getFieldValue("Time")){case"ms":return["time.ticks_ms()",e.ORDER_ATOMIC];case"us":return["time.ticks_us()",e.ORDER_ATOMIC]}},hX=function(){return"while True:\n pass\n"},MX=function(t,e){return e.definitions_.import_mixgo="import mixgo","reset()\n"},mX=function(t,e){return e.definitions_.import_os="import os","os.uname()"},OX=function(t,e){e.definitions_.import_time="import time";var i=e.valueToCode(this,"DELAY_TIME",e.ORDER_ATOMIC)||"1000";switch(this.getFieldValue("Time")){case"s":return"time.sleep("+i+")\n";case"ms":return"time.sleep_ms("+i+")\n";case"us":return"time.sleep_us("+i+")\n"}},EX=function(t,e){e.definitions_.import_time="import time";var i=e.valueToCode(this,"DELAY_TIME",e.ORDER_ATOMIC)||"1000";switch(this.getFieldValue("Time")){case"s":return"time.sleep("+i+")\n";case"ms":return"time.sleep_ms("+i+")\n";case"us":return"time.sleep_us("+i+")\n"}},RX=function(t,e){return e.definitions_.import_mixgo="import mixgo",(e.valueToCode(this,"VAR",e.ORDER_NONE)||"None")+".init(period = "+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+", mode = Timer."+(e.valueToCode(this,"mode",e.ORDER_NONE)||"None")+", callback = "+(e.valueToCode(this,"callback",e.ORDER_NONE)||"None")+")\n"},cX=function(t,e){return e.definitions_.import_machine="import machine",(e.valueToCode(this,"VAR",e.ORDER_NONE)||"None")+".init(period = "+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+", mode = machine.Timer."+this.getFieldValue("mode")+", callback = "+(e.valueToCode(this,"callback",e.ORDER_NONE)||"None")+")\n"},gX=function(t,e){return e.definitions_.import_time="import time",["time.ticks_diff("+(e.valueToCode(this,"END",e.ORDER_NONE)||"0")+", "+(e.valueToCode(this,"START",e.ORDER_NONE)||"0")+")",e.ORDER_ATOMIC]},CX=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return e.definitions_.import_machine="import machine",i+" = machine.Timer(0)\n"},SX=function(t,e){return e.definitions_.import_machine="import machine","wdt = machine.WDT(timeout= "+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+")\n"},AX=function(t,e){e.definitions_.import_machine="import machine";return"wdt.feed()\n"},LX=function(t,e){e.definitions_.import_machine="import machine";return"machine.reset()\n"},NX=function(t,e){e.definitions_.import_bitbot_onboard_bot51="from bitbot import onboard_bot51";return"onboard_bot51.shutdown()\n"},DX=CX,fX=cX,FX=gX,PX=OX,vX=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api."+this.getFieldValue("mode")+"("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+","+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},YX=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api."+this.getFieldValue("mode")+"("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+","+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+","+e.valueToCode(this,"day",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},XX=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api.weather_hourly("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+","+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+","+e.valueToCode(this,"hour",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},xX={};xX["MixGo CE"]={description:"MicroPython[ESP32C3 MixGo CE]",digital_pin:Ot.Profile.generate(["0-18","21-46"]),input_pin:Ot.Profile.generate(["0-18","21-46"]),output_pin:Ot.Profile.generate(["0-18","21-45"]),pwm_input:Ot.Profile.generate(["0-18","21-46"],"pwm","pwm"),analog_input:Ot.Profile.generate(["0-18","21-46"],"adc","adc"),pwm_output:Ot.Profile.generate(["0-18","21-45"],"pwm","pwm"),analog_output:Ot.Profile.generate(["0-18","21-45"],"adc","adc"),espnow_channel:Ot.Profile.generate(["1-13"]),haskylens_model:Ot.Profile.generate(["0-4"]),digital:Ot.Profile.generate(["0-18","21-45"],"pin","pin"),pwm_pin:Ot.Profile.generate(["0-18","21-45"]),pwm:Ot.Profile.generate(["0-18","21-45"],"pwm","pwm"),analog_pin:Ot.Profile.generate(["1-18"]),analog:Ot.Profile.generate(["1-18"],"adc","adc"),dac_pin:Ot.Profile.generate(["17-18"]),dac:Ot.Profile.generate(["17-18"],"dac","dac"),touch:Ot.Profile.generate(["1-14"],"tc","tc"),touch_pin:Ot.Profile.generate(["1-14"]),button:[["B1","B1key"],["B2","B2key"],["A1","A1key"],["A2","A2key"],["A3","A3key"],["A4","A4key"]],buttonB:[["B1","B1key"],["B2","B2key"]],axis:Ot.Profile.generate(["0-4"]),exlcdh:Ot.Profile.generate(["0-15"]),exlcdv:Ot.Profile.generate(["0-7"]),brightness:Ot.Profile.generate(["0-9"]),tts_voice:Ot.Profile.generate(["0-16"]),tts_builtin_music:Ot.Profile.generate(["0-47"]),tts_bgmusic:Ot.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["SILLY","onboard_matrix.SILLY"],["FABULOUS","onboard_matrix.FABULOUS"],["SURPRISED","onboard_matrix.SURPRISED"],["ASLEEP","onboard_matrix.ASLEEP"],["ANGRY","onboard_matrix.ANGRY"],["CONFUSED","onboard_matrix.CONFUSED"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"],["LEFT_ARROW","onboard_matrix.LEFT_ARROW"],["RIGHT_ARROW","onboard_matrix.RIGHT_ARROW"],["DRESS","onboard_matrix.DRESS"],["TRANSFORMERS","onboard_matrix.TRANSFORMERS"],["SCISSORS","onboard_matrix.SCISSORS"],["EXIT","onboard_matrix.EXIT"],["TREE","onboard_matrix.TREE"],["PACMAN","onboard_matrix.PACMAN"],["TARGET","onboard_matrix.TARGET"],["TSHIRT","onboard_matrix.TSHIRT"],["ROLLERSKATE","onboard_matrix.ROLLERSKATE"],["DUCK","onboard_matrix.DUCK"],["HOUSE","onboard_matrix.HOUSE"],["TORTOISE","onboard_matrix.TORTOISE"],["BUTTERFLY","onboard_matrix.BUTTERFLY"],["STICKFIGURE","onboard_matrix.STICKFIGURE"],["GHOST","onboard_matrix.GHOST"],["PITCHFORK","onboard_matrix.PITCHFORK"],["MUSIC_QUAVERS","onboard_matrix.MUSIC_QUAVERS"],["MUSIC_QUAVER","onboard_matrix.MUSIC_QUAVER"],["MUSIC_CROTCHET","onboard_matrix.MUSIC_CROTCHET"],["COW","onboard_matrix.COW"],["RABBIT","onboard_matrix.RABBIT"],["SQUARE_SMALL","onboard_matrix.SQUARE_SMALL"],["SQUARE","onboard_matrix.SQUARE"],["DIAMOND_SMALL","onboard_matrix.DIAMOND_SMALL"],["DIAMOND","onboard_matrix.DIAMOND"],["CHESSBOARD","onboard_matrix.CHESSBOARD"],["TRIANGLE_LEFT","onboard_matrix.TRIANGLE_LEFT"],["TRIANGLE","onboard_matrix.TRIANGLE"],["SNAKE","onboard_matrix.SNAKE"],["UMBRELLA","onboard_matrix.UMBRELLA"],["SKULL","onboard_matrix.SKULL"],["GIRAFFE","onboard_matrix.GIRAFFE"],["SWORD","onboard_matrix.SWORD"]],builtinimg_extern:[["HEART","matrix32x12.Matrix.HEART"],["HEART_SMALL","matrix32x12.Matrix.HEART_SMALL"],["HAPPY","matrix32x12.Matrix.HAPPY"],["SAD","matrix32x12.Matrix.SAD"],["SMILE","matrix32x12.Matrix.SMILE"],["SILLY","matrix32x12.Matrix.SILLY"],["FABULOUS","matrix32x12.Matrix.FABULOUS"],["SURPRISED","matrix32x12.Matrix.SURPRISED"],["ASLEEP","matrix32x12.Matrix.ASLEEP"],["ANGRY","matrix32x12.Matrix.ANGRY"],["CONFUSED","matrix32x12.Matrix.CONFUSED"],["NO","matrix32x12.Matrix.NO"],["YES","matrix32x12.Matrix.YES"],["LEFT_ARROW","matrix32x12.Matrix.LEFT_ARROW"],["RIGHT_ARROW","matrix32x12.Matrix.RIGHT_ARROW"],["DRESS","matrix32x12.Matrix.DRESS"],["TRANSFORMERS","matrix32x12.Matrix.TRANSFORMERS"],["SCISSORS","matrix32x12.Matrix.SCISSORS"],["EXIT","matrix32x12.Matrix.EXIT"],["TREE","matrix32x12.Matrix.TREE"],["PACMAN","matrix32x12.Matrix.PACMAN"],["TARGET","matrix32x12.Matrix.TARGET"],["TSHIRT","matrix32x12.Matrix.TSHIRT"],["ROLLERSKATE","matrix32x12.Matrix.ROLLERSKATE"],["DUCK","matrix32x12.Matrix.DUCK"],["HOUSE","matrix32x12.Matrix.HOUSE"],["TORTOISE","matrix32x12.Matrix.TORTOISE"],["BUTTERFLY","matrix32x12.Matrix.BUTTERFLY"],["STICKFIGURE","matrix32x12.Matrix.STICKFIGURE"],["GHOST","matrix32x12.Matrix.GHOST"],["PITCHFORK","matrix32x12.Matrix.PITCHFORK"],["onboard_music_QUAVERS","matrix32x12.Matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","matrix32x12.Matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","matrix32x12.Matrix.onboard_music_CROTCHET"],["COW","matrix32x12.Matrix.COW"],["RABBIT","matrix32x12.Matrix.RABBIT"],["SQUARE_SMALL","matrix32x12.Matrix.SQUARE_SMALL"],["SQUARE","matrix32x12.Matrix.SQUARE"],["DIAMOND_SMALL","matrix32x12.Matrix.DIAMOND_SMALL"],["DIAMOND","matrix32x12.Matrix.DIAMOND"],["CHESSBOARD","matrix32x12.Matrix.CHESSBOARD"],["TRIANGLE_LEFT","matrix32x12.Matrix.TRIANGLE_LEFT"],["TRIANGLE","matrix32x12.Matrix.TRIANGLE"],["SNAKE","matrix32x12.Matrix.SNAKE"],["UMBRELLA","matrix32x12.Matrix.UMBRELLA"],["SKULL","matrix32x12.Matrix.SKULL"],["GIRAFFE","matrix32x12.Matrix.GIRAFFE"],["SWORD","matrix32x12.Matrix.SWORD"]],imglist:[["ALL_CLOCKS","matrix.Image.ALL_CLOCKS"],["ALL_ARROWS","matrix.Image.ALL_ARROWS"]],playlist:[["DADADADUM","onboard_music.DADADADUM"],["ENTERTAINER","onboard_music.ENTERTAINER"],["PRELUDE","onboard_music.PRELUDE"],["ODE","onboard_music.ODE"],["NYAN","onboard_music.NYAN"],["RINGTONE","onboard_music.RINGTONE"],["FUNK","onboard_music.FUNK"],["BLUES","onboard_music.BLUES"],["BIRTHDAY","onboard_music.BIRTHDAY"],["WEDDING","onboard_music.WEDDING"],["FUNERAL","onboard_music.FUNERAL"],["PUNCHLINE","onboard_music.PUNCHLINE"],["PYTHON","onboard_music.PYTHON"],["BADDY","onboard_music.BADDY"],["CHASE","onboard_music.CHASE"],["BA_DING","onboard_music.BA_DING"],["WAWAWAWAA","onboard_music.WAWAWAWAA"],["JUMP_UP","onboard_music.JUMP_UP"],["JUMP_DOWN","onboard_music.JUMP_DOWN"],["POWER_UP","onboard_music.POWER_UP"],["POWER_DOWN","onboard_music.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],tone_notes:[["NOTE_C3","131"],["NOTE_D3","147"],["NOTE_E3","165"],["NOTE_F3","175"],["NOTE_G3","196"],["NOTE_A3","220"],["NOTE_B3","247"],["NOTE_C4","262"],["NOTE_D4","294"],["NOTE_E4","330"],["NOTE_F4","349"],["NOTE_G4","392"],["NOTE_A4","440"],["NOTE_B4","494"],["NOTE_C5","523"],["NOTE_D5","587"],["NOTE_E5","659"],["NOTE_F5","698"],["NOTE_G5","784"],["NOTE_A5","880"],["NOTE_B5","988"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"]]},xX["ESP32S2 Generic"]={description:"MicroPython[ESP32C3 MixGo CC]",digital_pin:Ot.Profile.generate(["0-42","45"]),input_pin:Ot.Profile.generate(["0-42","45-46"]),output_pin:Ot.Profile.generate(["0-42","45"]),pwm_input:Ot.Profile.generate(["0-42","45-46"],"pwm","pwm"),analog_input:Ot.Profile.generate(["0-18","21-46"],"adc","adc"),pwm_output:Ot.Profile.generate(["0-42","45"],"pwm","pwm"),analog_output:Ot.Profile.generate(["0-42","45"],"adc","adc"),espnow_channel:Ot.Profile.generate(["1-13"]),haskylens_model:Ot.Profile.generate(["0-4"]),digital:Ot.Profile.generate(["0-42","45"],"pin","pin"),pwm_pin:Ot.Profile.generate(["0-42","45"]),pwm:Ot.Profile.generate(["0-42","45"],"pwm","pwm"),analog_pin:Ot.Profile.generate(["1-20"]),analog:Ot.Profile.generate(["1-20"],"adc","adc"),dac_pin:Ot.Profile.generate(["17-18"]),dac:Ot.Profile.generate(["17-18"],"dac","dac"),touch:Ot.Profile.generate(["1-14"],"tc","tc"),touch_pin:Ot.Profile.generate(["1-14"]),button:[["B1","B1key"],["B2","B2key"],["A1","A1key"],["A2","A2key"],["A3","A3key"],["A4","A4key"]],buttonB:[["B1","B1key"],["B2","B2key"]],axis:Ot.Profile.generate(["0-4"]),exlcdh:Ot.Profile.generate(["0-15"]),exlcdv:Ot.Profile.generate(["0-7"]),brightness:Ot.Profile.generate(["0-9"]),tts_voice:Ot.Profile.generate(["0-16"]),tts_builtin_music:Ot.Profile.generate(["0-47"]),tts_bgmusic:Ot.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["SILLY","onboard_matrix.SILLY"],["FABULOUS","onboard_matrix.FABULOUS"],["SURPRISED","onboard_matrix.SURPRISED"],["ASLEEP","onboard_matrix.ASLEEP"],["ANGRY","onboard_matrix.ANGRY"],["CONFUSED","onboard_matrix.CONFUSED"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"],["LEFT_ARROW","onboard_matrix.LEFT_ARROW"],["RIGHT_ARROW","onboard_matrix.RIGHT_ARROW"],["DRESS","onboard_matrix.DRESS"],["TRANSFORMERS","onboard_matrix.TRANSFORMERS"],["SCISSORS","onboard_matrix.SCISSORS"],["EXIT","onboard_matrix.EXIT"],["TREE","onboard_matrix.TREE"],["PACMAN","onboard_matrix.PACMAN"],["TARGET","onboard_matrix.TARGET"],["TSHIRT","onboard_matrix.TSHIRT"],["ROLLERSKATE","onboard_matrix.ROLLERSKATE"],["DUCK","onboard_matrix.DUCK"],["HOUSE","onboard_matrix.HOUSE"],["TORTOISE","onboard_matrix.TORTOISE"],["BUTTERFLY","onboard_matrix.BUTTERFLY"],["STICKFIGURE","onboard_matrix.STICKFIGURE"],["GHOST","onboard_matrix.GHOST"],["PITCHFORK","onboard_matrix.PITCHFORK"],["MUSIC_QUAVERS","onboard_matrix.MUSIC_QUAVERS"],["MUSIC_QUAVER","onboard_matrix.MUSIC_QUAVER"],["MUSIC_CROTCHET","onboard_matrix.MUSIC_CROTCHET"],["COW","onboard_matrix.COW"],["RABBIT","onboard_matrix.RABBIT"],["SQUARE_SMALL","onboard_matrix.SQUARE_SMALL"],["SQUARE","onboard_matrix.SQUARE"],["DIAMOND_SMALL","onboard_matrix.DIAMOND_SMALL"],["DIAMOND","onboard_matrix.DIAMOND"],["CHESSBOARD","onboard_matrix.CHESSBOARD"],["TRIANGLE_LEFT","onboard_matrix.TRIANGLE_LEFT"],["TRIANGLE","onboard_matrix.TRIANGLE"],["SNAKE","onboard_matrix.SNAKE"],["UMBRELLA","onboard_matrix.UMBRELLA"],["SKULL","onboard_matrix.SKULL"],["GIRAFFE","onboard_matrix.GIRAFFE"],["SWORD","onboard_matrix.SWORD"]],builtinimg_extern:[["HEART","matrix32x12.Matrix.HEART"],["HEART_SMALL","matrix32x12.Matrix.HEART_SMALL"],["HAPPY","matrix32x12.Matrix.HAPPY"],["SAD","matrix32x12.Matrix.SAD"],["SMILE","matrix32x12.Matrix.SMILE"],["SILLY","matrix32x12.Matrix.SILLY"],["FABULOUS","matrix32x12.Matrix.FABULOUS"],["SURPRISED","matrix32x12.Matrix.SURPRISED"],["ASLEEP","matrix32x12.Matrix.ASLEEP"],["ANGRY","matrix32x12.Matrix.ANGRY"],["CONFUSED","matrix32x12.Matrix.CONFUSED"],["NO","matrix32x12.Matrix.NO"],["YES","matrix32x12.Matrix.YES"],["LEFT_ARROW","matrix32x12.Matrix.LEFT_ARROW"],["RIGHT_ARROW","matrix32x12.Matrix.RIGHT_ARROW"],["DRESS","matrix32x12.Matrix.DRESS"],["TRANSFORMERS","matrix32x12.Matrix.TRANSFORMERS"],["SCISSORS","matrix32x12.Matrix.SCISSORS"],["EXIT","matrix32x12.Matrix.EXIT"],["TREE","matrix32x12.Matrix.TREE"],["PACMAN","matrix32x12.Matrix.PACMAN"],["TARGET","matrix32x12.Matrix.TARGET"],["TSHIRT","matrix32x12.Matrix.TSHIRT"],["ROLLERSKATE","matrix32x12.Matrix.ROLLERSKATE"],["DUCK","matrix32x12.Matrix.DUCK"],["HOUSE","matrix32x12.Matrix.HOUSE"],["TORTOISE","matrix32x12.Matrix.TORTOISE"],["BUTTERFLY","matrix32x12.Matrix.BUTTERFLY"],["STICKFIGURE","matrix32x12.Matrix.STICKFIGURE"],["GHOST","matrix32x12.Matrix.GHOST"],["PITCHFORK","matrix32x12.Matrix.PITCHFORK"],["onboard_music_QUAVERS","matrix32x12.Matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","matrix32x12.Matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","matrix32x12.Matrix.onboard_music_CROTCHET"],["COW","matrix32x12.Matrix.COW"],["RABBIT","matrix32x12.Matrix.RABBIT"],["SQUARE_SMALL","matrix32x12.Matrix.SQUARE_SMALL"],["SQUARE","matrix32x12.Matrix.SQUARE"],["DIAMOND_SMALL","matrix32x12.Matrix.DIAMOND_SMALL"],["DIAMOND","matrix32x12.Matrix.DIAMOND"],["CHESSBOARD","matrix32x12.Matrix.CHESSBOARD"],["TRIANGLE_LEFT","matrix32x12.Matrix.TRIANGLE_LEFT"],["TRIANGLE","matrix32x12.Matrix.TRIANGLE"],["SNAKE","matrix32x12.Matrix.SNAKE"],["UMBRELLA","matrix32x12.Matrix.UMBRELLA"],["SKULL","matrix32x12.Matrix.SKULL"],["GIRAFFE","matrix32x12.Matrix.GIRAFFE"],["SWORD","matrix32x12.Matrix.SWORD"]],imglist:[["ALL_CLOCKS","matrix.Image.ALL_CLOCKS"],["ALL_ARROWS","matrix.Image.ALL_ARROWS"]],playlist:[["DADADADUM","onboard_music.DADADADUM"],["ENTERTAINER","onboard_music.ENTERTAINER"],["PRELUDE","onboard_music.PRELUDE"],["ODE","onboard_music.ODE"],["NYAN","onboard_music.NYAN"],["RINGTONE","onboard_music.RINGTONE"],["FUNK","onboard_music.FUNK"],["BLUES","onboard_music.BLUES"],["BIRTHDAY","onboard_music.BIRTHDAY"],["WEDDING","onboard_music.WEDDING"],["FUNERAL","onboard_music.FUNERAL"],["PUNCHLINE","onboard_music.PUNCHLINE"],["PYTHON","onboard_music.PYTHON"],["BADDY","onboard_music.BADDY"],["CHASE","onboard_music.CHASE"],["BA_DING","onboard_music.BA_DING"],["WAWAWAWAA","onboard_music.WAWAWAWAA"],["JUMP_UP","onboard_music.JUMP_UP"],["JUMP_DOWN","onboard_music.JUMP_DOWN"],["POWER_UP","onboard_music.POWER_UP"],["POWER_DOWN","onboard_music.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],tone_notes:[["NOTE_C3","131"],["NOTE_D3","147"],["NOTE_E3","165"],["NOTE_F3","175"],["NOTE_G3","196"],["NOTE_A3","220"],["NOTE_B3","247"],["NOTE_C4","262"],["NOTE_D4","294"],["NOTE_E4","330"],["NOTE_F4","349"],["NOTE_G4","392"],["NOTE_A4","440"],["NOTE_B4","494"],["NOTE_C5","523"],["NOTE_D5","587"],["NOTE_E5","659"],["NOTE_F5","698"],["NOTE_G5","784"],["NOTE_A5","880"],["NOTE_B5","988"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"]]};const bX=xX,VX=20,yX={init:function(){this.setColour(VX),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_HIGH,"HIGH"],[mt.Msg.MIXLY_LOW,"LOW"]]),"BOOL"),this.setOutput(!0,Boolean),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_HIGHLOW_TOOLTIP)}},BX={init:function(){this.setColour(VX),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_Digital_PINMODEOUT).setCheck(Number),this.appendValueInput("STAT").appendField(mt.Msg.MIXLY_STAT).setCheck([Number,Boolean]),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_DIGITAL_WRITE_TOOLTIP)}},GX={init:function(){this.setColour(VX),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(mt.Msg.MIXLY_Digital_PINMODEIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_MACHINE_VALUE),this.setInputsInline(!0),this.setOutput(!0,[Boolean,Number]),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_DIGITAL_READ_TOOLTIP)}},UX={init:function(){this.setColour(VX),this.appendValueInput("PIN",Number).appendField("PWM"+mt.Msg.MIXLY_Analog_PINMODEOUT).setCheck(Number),this.appendValueInput("NUM",Number).appendField(mt.Msg.MIXLY_VALUE2).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_PWM_ANALOG_WRITE_TOOLTIP)}},wX={init:function(){this.setColour(VX),this.appendValueInput("PIN",Number).appendField("DAC"+mt.Msg.MIXLY_Analog_PINMODEOUT).setCheck(Number),this.appendValueInput("NUM",Number).appendField(mt.Msg.MIXLY_VALUE2).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_ANALOG_WRITE_TOOLTIP)}},kX={init:function(){this.setColour(VX),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_Analog_PINMODEOUT).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_PERIOD_MIL).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_mSecond,"period"],[mt.Msg.MIXLY_uSecond,"period_microseconds"]]),"key"),this.appendValueInput("NUM",Number).appendField(mt.Msg.MIXLY_STAT).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_ANALOG_WRITE_SET_TOOLTIP)}},HX={init:function(){this.setColour(VX),this.appendValueInput("PIN",Number).appendField("PWM"+mt.Msg.MIXLY_Analog_PINMODEOUT).setCheck(Number),this.appendValueInput("NUM",Number).appendField(mt.Msg.MIXLY_FREQUENCY+mt.Msg.MIXLY_STAT).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_PWM_ANALOG_WRITE_SET_FREQ_TOOLTIP)}},WX={init:function(){this.setColour(VX),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(mt.Msg.MIXLY_Analog_PINMODEIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_MACHINE_VALUE),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_ANALOG_READ_TOOLTIP)}},KX={init:function(){this.setColour(VX),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_Analog_PINMODEIN).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_REF_VOLTAGE+mt.Msg.MIXLY_STAT).appendField(new mt.FieldDropdown([["3.3V","machine.ADC.ATTN_11DB"],["2.2V","machine.ADC.ATTN_6DB"],["1.5V","machine.ADC.ATTN_2_5DB"],["1.2V","machine.ADC.ATTN_0DB"]]),"atten"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_ANALOG_ATTEN_TOOLTIP)}},JX={init:function(){this.setColour(VX),this.appendValueInput("pin").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(mt.Msg.MIXLY_ESP32_TOUCH_SENSOR),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_MACHINE_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_PIN_PRESSED_TOOLTIP)}},zX={init:function(){this.setColour(20),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_ATTACHINTERRUPT_PIN).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_RISING,"machine.Pin.IRQ_RISING"],[mt.Msg.MIXLY_FALLING,"machine.Pin.IRQ_FALLING"],[mt.Msg.MIXLY_CHANGE,"(machine.Pin.IRQ_RISING | machine.Pin.IRQ_FALLING)"]]),"mode"),this.appendValueInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_PIN_ATTACHINTERRUPT_TOOLTIP)}},qX={init:function(){this.setColour(20),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETUP).appendField(new mt.FieldTextInput("pin#"),"PIN_OBJ"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROPYTHON_AS).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_Digital_PINMODEOUT,"machine.Pin.OUT"],[mt.Msg.MIXLY_Digital_PINMODEIN,"machine.Pin.IN"],[mt.Msg.MIXLY_PINMODEPULLUP,"machine.Pin.IN, machine.Pin.PULL_UP"],[mt.Msg.MIXLY_PINMODEPULLDOWN,"machine.Pin.IN, machine.Pin.PULL_DOWN"]]),"MODE"),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_DIGITAL_INIT_TOOLTIP)},getVars:function(){return["pin#"==this.getFieldValue("PIN_OBJ")?null:this.getFieldValue("PIN_OBJ")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("PIN_OBJ"))&&this.setTitleValue(e,"PIN_OBJ")}},QX={init:function(){this.setColour(VX),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP).appendField(new mt.FieldTextInput("pwm#"),"PIN_OBJ").appendField(mt.Msg.MIXLY_MICROPYTHON_AS),this.appendDummyInput("").appendField("PWM"+mt.Msg.MIXLY_Analog_PINMODEOUT),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_PWM_ANALOG_WRITE_INIT_TOOLTIP)},getVars:function(){return["pwm#"==this.getFieldValue("PIN_OBJ")?null:this.getFieldValue("PIN_OBJ")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("PIN_OBJ"))&&this.setTitleValue(e,"PIN_OBJ")}},jX={init:function(){this.setColour(VX),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP).appendField(new mt.FieldTextInput("dac#"),"PIN_OBJ").appendField(mt.Msg.MIXLY_MICROPYTHON_AS),this.appendDummyInput("").appendField("DAC"+mt.Msg.MIXLY_Analog_PINMODEOUT),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_ANALOG_WRITE_INIT_TOOLTIP)},getVars:function(){return["dac#"==this.getFieldValue("PIN_OBJ")?null:this.getFieldValue("PIN_OBJ")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("PIN_OBJ"))&&this.setTitleValue(e,"PIN_OBJ")}},ZX={init:function(){this.setColour(VX),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP).appendField(new mt.FieldTextInput("adc#"),"PIN_OBJ").appendField(mt.Msg.MIXLY_MICROPYTHON_AS),this.appendDummyInput("").appendField(mt.Msg.MIXLY_Analog_PINMODEIN),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_ANALOG_READ_INIT_TOOLTIP)},getVars:function(){return["adc#"==this.getFieldValue("PIN_OBJ")?null:this.getFieldValue("PIN_OBJ")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("PIN_OBJ"))&&this.setTitleValue(e,"PIN_OBJ")}},$X={init:function(){this.setColour(VX),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP).appendField(new mt.FieldTextInput("tc#"),"PIN_OBJ").appendField(mt.Msg.MIXLY_MICROPYTHON_AS),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_TOUCH_SENSOR),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_PIN_PRESSED_INIT_TOOLTIP)},getVars:function(){return["tc#"==this.getFieldValue("PIN_OBJ")?null:this.getFieldValue("PIN_OBJ")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("PIN_OBJ"))&&this.setTitleValue(e,"PIN_OBJ")}},tx=qX,ex=HX,ix=$X,nx=JX,sx=zX,ox=230,_x={init:function(){this.setColour(ox),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.digital),"PIN"),this.setOutput(!0)}},px={init:function(){this.setColour(ox),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.digital_pin),"PIN"),this.setOutput(!0,Number)}},ax={init:function(){this.setColour(ox),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.input_pin),"PIN"),this.setOutput(!0,Number)}},ux={init:function(){this.setColour(ox),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.output_pin),"PIN"),this.setOutput(!0,Number)}},rx={init:function(){this.setColour(ox),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.espnow_channel),"PIN"),this.setOutput(!0,Number)}},lx={init:function(){this.setColour(ox),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.haskylens_model),"PIN"),this.setOutput(!0,Number)}},dx={init:function(){this.setColour(ox),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.pwm_input),"PIN"),this.setOutput(!0)}},Ix={init:function(){this.setColour(ox),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.analog_input),"PIN"),this.setOutput(!0)}},Tx={init:function(){this.setColour(ox),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.pwm_output),"PIN"),this.setOutput(!0)}},hx={init:function(){this.setColour(ox),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.analog_output),"PIN"),this.setOutput(!0)}},Mx={init:function(){this.setColour(ox),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.i2c_A_pin),"PIN"),this.setOutput(!0,Number)}},mx={init:function(){this.setColour(ox),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.i2c_B_pin),"PIN"),this.setOutput(!0,Number)}},Ox={init:function(){this.setColour(ox),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.spi_A_pin),"PIN"),this.setOutput(!0,Number)}},Ex={init:function(){this.setColour(ox),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.spi_B_pin),"PIN"),this.setOutput(!0,Number)}},Rx={init:function(){this.setColour(ox),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.spi_C_pin),"PIN"),this.setOutput(!0,Number)}},cx={init:function(){this.setColour(ox),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.spi_D_pin),"PIN"),this.setOutput(!0,Number)}},gx={init:function(){this.setColour(ox),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.analog),"PIN"),this.setOutput(!0)}},Cx={init:function(){this.setColour(ox),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.analog_pin),"PIN"),this.setOutput(!0,Number)}},Sx={init:function(){this.setColour(ox),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.dac),"PIN"),this.setOutput(!0)}},Ax={init:function(){this.setColour(ox),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.dac_pin),"PIN"),this.setOutput(!0,Number)}},Lx={init:function(){this.setColour(ox),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.button),"PIN"),this.setOutput(!0,Number)}},Nx={init:function(){this.setColour(ox),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.buttonB),"PIN"),this.setOutput(!0,Number)}},Dx={init:function(){this.setColour(ox),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.pwm),"PIN"),this.setOutput(!0)}},fx={init:function(){this.setColour(ox),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.pwm_pin),"PIN"),this.setOutput(!0,Number)}},Fx={init:function(){this.setColour(ox),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.touch_pin),"PIN"),this.setOutput(!0,Number)}},Px={init:function(){this.setColour(ox),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.touch),"PIN"),this.setOutput(!0)}},vx={init:function(){this.setColour(ox),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.serial_pin),"PIN"),this.setOutput(!0,Number)}},Yx={init:function(){this.setColour(ox),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.builtinimg),"PIN"),this.setOutput(!0,"esp32_image")}},Xx={init:function(){this.setColour(ox),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.builtinimg_extern),"PIN"),this.setOutput(!0,"esp32_image")}},xx={init:function(){this.setColour(ox),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.imglist),"PIN"),this.setOutput(!0)}},bx={init:function(){this.setColour(ox),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.playlist),"PIN"),this.setOutput(!0)}},Vx={init:function(){this.setColour(ox),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.playlist_extern),"PIN"),this.setOutput(!0)}},yx={init:function(){this.setColour(ox),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.exlcdh),"PIN"),this.setOutput(!0,Number)}},Bx={init:function(){this.setColour(ox),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.exlcdv),"PIN"),this.setOutput(!0,Number)}},Gx={init:function(){this.setColour(ox),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.axis),"PIN"),this.setOutput(!0,Number)}},Ux={init:function(){this.setColour(ox),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.brightness),"PIN"),this.setOutput(!0,Number)}},wx={init:function(){this.setColour(ox),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.tts_voice),"PIN"),this.setOutput(!0,Number)}},kx={init:function(){this.setColour(ox),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.tts_builtin_music),"PIN"),this.setOutput(!0,Number)}},Hx={init:function(){this.setColour(ox),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.tts_bgmusic),"PIN"),this.setOutput(!0,Number)}},Wx={init:function(){this.setColour(ox),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.tone_notes),"PIN"),this.setOutput(!0,Number)}},Kx={init:function(){this.setColour(ox),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.radio_power),"PIN"),this.setOutput(!0,Number)}},Jx={init:function(){this.setColour(ox),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.radio_datarate),"PIN"),this.setOutput(!0,Number)}},zx={init:function(){this.setColour(ox),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.one_more),"PIN"),this.setOutput(!0)}},qx={init:function(){this.setColour(ox),this.appendDummyInput("").appendField(new mt.FieldDropdown(Ot.Profile.default.digital_dot),"PIN"),this.setOutput(!0,Number)}},Qx=function(t,e){return["HIGH"==this.getFieldValue("BOOL")?"1":"0",e.ORDER_ATOMIC]},jx=function(t,e){e.definitions_.import_machine="import machine";var i="";return i+=e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".value("+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"},Zx=function(t,e){e.definitions_.import_machine="import machine";return[e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".value()",e.ORDER_ATOMIC]},$x=function(t,e){return e.definitions_.import_machine="import machine",e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".duty("+e.valueToCode(this,"NUM",e.ORDER_ATOMIC)+")\n"},tb=function(t,e){return e.definitions_.import_machine="import machine",e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".write("+e.valueToCode(this,"NUM",e.ORDER_ATOMIC)+")\n"},eb=function(t,e){e.definitions_.import_machine="import machine";var i=e.valueToCode(this,"PIN",e.ORDER_ATOMIC),n=e.valueToCode(this,"NUM",e.ORDER_ATOMIC);return i+".set_analog_"+this.getFieldValue("key")+"("+n+")\n"},ib=function(t,e){return e.definitions_.import_machine="import machine",e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".freq("+e.valueToCode(this,"NUM",e.ORDER_ATOMIC)+")\n"},nb=function(t,e){return e.definitions_.import_machine="import machine",[e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".read()",e.ORDER_ATOMIC]},sb=function(t,e){return e.definitions_.import_machine="import machine",[e.valueToCode(this,"pin",e.ORDER_ATOMIC)+".read()",e.ORDER_ATOMIC]},ob=function(t,e){e.definitions_.import_machine="import machine";var i=e.valueToCode(this,"PIN",e.ORDER_ATOMIC),n=this.getFieldValue("mode");return"machine.Pin("+i+").irq(handler = "+e.valueToCode(this,"DO",e.ORDER_ATOMIC)+", trigger = "+n+")\n"},_b=function(t,e){e.definitions_.import_machine="import machine";var i=this.getFieldValue("PIN_OBJ")||"pin#",n=e.valueToCode(this,"PIN",e.ORDER_ATOMIC),s=this.getFieldValue("MODE");return("pin#"==i?"pin"+n:e.variableDB_.getName(i,mt.Variables.NAME_TYPE))+" = machine.Pin("+n+", "+s+")\n"},pb=function(t,e){e.definitions_.import_machine="import machine";var i=this.getFieldValue("PIN_OBJ")||"pwm#",n=e.valueToCode(this,"PIN",e.ORDER_ATOMIC);return("pwm#"==i?"pwm"+n:e.variableDB_.getName(i,mt.Variables.NAME_TYPE))+" = machine.PWM(machine.Pin("+n+"))\n"},ab=function(t,e){e.definitions_.import_machine="import machine";var i=this.getFieldValue("PIN_OBJ")||"dac#",n=e.valueToCode(this,"PIN",e.ORDER_ATOMIC);return("dac#"==i?"dac"+n:e.variableDB_.getName(i,mt.Variables.NAME_TYPE))+" = machine.DAC(machine.Pin("+n+"))\n"},ub=function(t,e){e.definitions_.import_machine="import machine";var i=this.getFieldValue("PIN_OBJ")||"adc#",n=e.valueToCode(this,"PIN",e.ORDER_ATOMIC);return("adc#"==i?"adc"+n:e.variableDB_.getName(i,mt.Variables.NAME_TYPE))+" = machine.ADC(machine.Pin("+n+"))\n"},rb=function(t,e){return e.definitions_.import_machine="import machine",e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".atten("+this.getFieldValue("atten")+")\n"},lb=function(t,e){e.definitions_.import_machine="import machine";var i=this.getFieldValue("PIN_OBJ")||"tc#",n=e.valueToCode(this,"PIN",e.ORDER_ATOMIC);return("tc#"==i?"tc"+n:e.variableDB_.getName(i,mt.Variables.NAME_TYPE))+" = machine.TouchPad(machine.Pin("+n+"))\n"},db=function(t,e){return[this.getFieldValue("PIN"),e.ORDER_ATOMIC]},Ib=db,Tb=db,hb=db,Mb=db,mb=db,Ob=db,Eb=db,Rb=db,cb=db,gb=db,Cb=db,Sb=db,Ab=db,Lb=db,Nb=db,Db=db,fb=db,Fb=db,Pb=db,vb=db,Yb=db,Xb=db,xb=db,bb=db,Vb=db,yb=db,Bb=db,Gb=db,Ub=db,wb=db,kb=db,Hb=db,Wb=db,Kb=db,Jb=db,zb=db,qb=db,Qb=db,jb=db,Zb=db,$b=db,tV=db,eV=db,iV=db;Object.assign(mt.Variables,Rt),Object.assign(mt.Procedures,Wn),mt.Python=_u,mt.generator=_u,Ot.Profile.default={},Object.assign(Ot.Profile,bX),Object.assign(Ot.Profile.default,bX["MixGo CE"]),Object.assign(mt.Blocks,e,i,n,s,o,_,p,a,u,r,l,d,I,y,W,H,X,B,K,f,k,w,U,G,F,D,N,b,x,V,P,v,Y,It,Tt),Object.assign(mt.Python.forBlock,T,h,M,m,O,E,R,c,g,C,S,A,L,st,lt,rt,tt,ot,dt,q,ut,at,pt,_t,Q,z,J,it,et,nt,j,Z,$,ht,Mt)})(); \ No newline at end of file diff --git a/boards/default/micropython_esp32s2/styles/main.c124fb9c.css b/boards/default/micropython_esp32s2/styles/main.31d1eaa2.css similarity index 100% rename from boards/default/micropython_esp32s2/styles/main.c124fb9c.css rename to boards/default/micropython_esp32s2/styles/main.31d1eaa2.css diff --git a/boards/default/micropython_esp32s3/examples/spaL08kpMjzN/x41WSrAxF71W.mix b/boards/default/micropython_esp32s3/examples/MixGo Nova/01-1-快速入门-你好世界.mix similarity index 100% rename from boards/default/micropython_esp32s3/examples/spaL08kpMjzN/x41WSrAxF71W.mix rename to boards/default/micropython_esp32s3/examples/MixGo Nova/01-1-快速入门-你好世界.mix diff --git a/boards/default/micropython_esp32s3/examples/spaL08kpMjzN/bK5kY2I5LWmg.mix b/boards/default/micropython_esp32s3/examples/MixGo Nova/01-2-快速入门-你好世界2.mix similarity index 100% rename from boards/default/micropython_esp32s3/examples/spaL08kpMjzN/bK5kY2I5LWmg.mix rename to boards/default/micropython_esp32s3/examples/MixGo Nova/01-2-快速入门-你好世界2.mix diff --git a/boards/default/micropython_esp32s3/examples/spaL08kpMjzN/e-iJ94EI20CB.mix b/boards/default/micropython_esp32s3/examples/MixGo Nova/02-1-快速入门-跳动的心.mix similarity index 100% rename from boards/default/micropython_esp32s3/examples/spaL08kpMjzN/e-iJ94EI20CB.mix rename to boards/default/micropython_esp32s3/examples/MixGo Nova/02-1-快速入门-跳动的心.mix diff --git a/boards/default/micropython_esp32s3/examples/spaL08kpMjzN/0tf0NL2QIf83.mix b/boards/default/micropython_esp32s3/examples/MixGo Nova/02-2-快速入门-为你心动.mix similarity index 100% rename from boards/default/micropython_esp32s3/examples/spaL08kpMjzN/0tf0NL2QIf83.mix rename to boards/default/micropython_esp32s3/examples/MixGo Nova/02-2-快速入门-为你心动.mix diff --git a/boards/default/micropython_esp32s3/examples/spaL08kpMjzN/siBFg3T4u82Y.mix b/boards/default/micropython_esp32s3/examples/MixGo Nova/03-1-快速入门-心随我动.mix similarity index 100% rename from boards/default/micropython_esp32s3/examples/spaL08kpMjzN/siBFg3T4u82Y.mix rename to boards/default/micropython_esp32s3/examples/MixGo Nova/03-1-快速入门-心随我动.mix diff --git a/boards/default/micropython_esp32s3/examples/spaL08kpMjzN/6sxoFcwWmpxQ.mix b/boards/default/micropython_esp32s3/examples/MixGo Nova/03-2-快速入门-心随我动2.mix similarity index 100% rename from boards/default/micropython_esp32s3/examples/spaL08kpMjzN/6sxoFcwWmpxQ.mix rename to boards/default/micropython_esp32s3/examples/MixGo Nova/03-2-快速入门-心随我动2.mix diff --git a/boards/default/micropython_esp32s3/examples/spaL08kpMjzN/WTXHzHc1EaMe.mix b/boards/default/micropython_esp32s3/examples/MixGo Nova/04-1-快速入门-流动的灯.mix similarity index 100% rename from boards/default/micropython_esp32s3/examples/spaL08kpMjzN/WTXHzHc1EaMe.mix rename to boards/default/micropython_esp32s3/examples/MixGo Nova/04-1-快速入门-流动的灯.mix diff --git a/boards/default/micropython_esp32s3/examples/spaL08kpMjzN/luEYbAUPAyaA.mix b/boards/default/micropython_esp32s3/examples/MixGo Nova/04-2-快速入门-流动的灯2.mix similarity index 100% rename from boards/default/micropython_esp32s3/examples/spaL08kpMjzN/luEYbAUPAyaA.mix rename to boards/default/micropython_esp32s3/examples/MixGo Nova/04-2-快速入门-流动的灯2.mix diff --git a/boards/default/micropython_esp32s3/examples/spaL08kpMjzN/jDxwGSvQK9oc.mix b/boards/default/micropython_esp32s3/examples/MixGo Nova/05-1-过程控制-双键开关.mix similarity index 100% rename from boards/default/micropython_esp32s3/examples/spaL08kpMjzN/jDxwGSvQK9oc.mix rename to boards/default/micropython_esp32s3/examples/MixGo Nova/05-1-过程控制-双键开关.mix diff --git a/boards/default/micropython_esp32s3/examples/spaL08kpMjzN/Z7wvmTL_Mva2.mix b/boards/default/micropython_esp32s3/examples/MixGo Nova/05-2-过程控制-单键开关.mix similarity index 100% rename from boards/default/micropython_esp32s3/examples/spaL08kpMjzN/Z7wvmTL_Mva2.mix rename to boards/default/micropython_esp32s3/examples/MixGo Nova/05-2-过程控制-单键开关.mix diff --git a/boards/default/micropython_esp32s3/examples/spaL08kpMjzN/rCWebX-xC9DT.mix b/boards/default/micropython_esp32s3/examples/MixGo Nova/05-3-过程控制-IPO概念.mix similarity index 100% rename from boards/default/micropython_esp32s3/examples/spaL08kpMjzN/rCWebX-xC9DT.mix rename to boards/default/micropython_esp32s3/examples/MixGo Nova/05-3-过程控制-IPO概念.mix diff --git a/boards/default/micropython_esp32s3/examples/spaL08kpMjzN/ZnfHO4V6wT9S.mix b/boards/default/micropython_esp32s3/examples/MixGo Nova/06-1-过程控制-声音采集.mix similarity index 100% rename from boards/default/micropython_esp32s3/examples/spaL08kpMjzN/ZnfHO4V6wT9S.mix rename to boards/default/micropython_esp32s3/examples/MixGo Nova/06-1-过程控制-声音采集.mix diff --git a/boards/default/micropython_esp32s3/examples/spaL08kpMjzN/87xZNVSTv5Eg.mix b/boards/default/micropython_esp32s3/examples/MixGo Nova/06-2-过程控制-看见声音.mix similarity index 100% rename from boards/default/micropython_esp32s3/examples/spaL08kpMjzN/87xZNVSTv5Eg.mix rename to boards/default/micropython_esp32s3/examples/MixGo Nova/06-2-过程控制-看见声音.mix diff --git a/boards/default/micropython_esp32s3/examples/spaL08kpMjzN/VxVKsTZ-aA7J.mix b/boards/default/micropython_esp32s3/examples/MixGo Nova/07-1-过程控制-光强采集.mix similarity index 100% rename from boards/default/micropython_esp32s3/examples/spaL08kpMjzN/VxVKsTZ-aA7J.mix rename to boards/default/micropython_esp32s3/examples/MixGo Nova/07-1-过程控制-光强采集.mix diff --git a/boards/default/micropython_esp32s3/examples/spaL08kpMjzN/qMnDxP1KYyQD.mix b/boards/default/micropython_esp32s3/examples/MixGo Nova/07-2-过程控制-自动补光.mix similarity index 100% rename from boards/default/micropython_esp32s3/examples/spaL08kpMjzN/qMnDxP1KYyQD.mix rename to boards/default/micropython_esp32s3/examples/MixGo Nova/07-2-过程控制-自动补光.mix diff --git a/boards/default/micropython_esp32s3/examples/spaL08kpMjzN/KCJLca0vfj94.mix b/boards/default/micropython_esp32s3/examples/MixGo Nova/08-1-过程控制-接近检测.mix similarity index 100% rename from boards/default/micropython_esp32s3/examples/spaL08kpMjzN/KCJLca0vfj94.mix rename to boards/default/micropython_esp32s3/examples/MixGo Nova/08-1-过程控制-接近检测.mix diff --git a/boards/default/micropython_esp32s3/examples/spaL08kpMjzN/K5Sf-kL172z5.mix b/boards/default/micropython_esp32s3/examples/MixGo Nova/08-2-过程控制-入侵报警.mix similarity index 100% rename from boards/default/micropython_esp32s3/examples/spaL08kpMjzN/K5Sf-kL172z5.mix rename to boards/default/micropython_esp32s3/examples/MixGo Nova/08-2-过程控制-入侵报警.mix diff --git a/boards/default/micropython_esp32s3/examples/spaL08kpMjzN/WTWqNQ8RU2Ud.mix b/boards/default/micropython_esp32s3/examples/MixGo Nova/09-1-输入输出-加速度.mix similarity index 100% rename from boards/default/micropython_esp32s3/examples/spaL08kpMjzN/WTWqNQ8RU2Ud.mix rename to boards/default/micropython_esp32s3/examples/MixGo Nova/09-1-输入输出-加速度.mix diff --git a/boards/default/micropython_esp32s3/examples/spaL08kpMjzN/k4rVi2Xkl0pS.mix b/boards/default/micropython_esp32s3/examples/MixGo Nova/09-2-输入输出-平衡仪.mix similarity index 100% rename from boards/default/micropython_esp32s3/examples/spaL08kpMjzN/k4rVi2Xkl0pS.mix rename to boards/default/micropython_esp32s3/examples/MixGo Nova/09-2-输入输出-平衡仪.mix diff --git a/boards/default/micropython_esp32s3/examples/spaL08kpMjzN/D6STOxOWIWL8.mix b/boards/default/micropython_esp32s3/examples/MixGo Nova/10-1-输入输出-温湿度.mix similarity index 100% rename from boards/default/micropython_esp32s3/examples/spaL08kpMjzN/D6STOxOWIWL8.mix rename to boards/default/micropython_esp32s3/examples/MixGo Nova/10-1-输入输出-温湿度.mix diff --git a/boards/default/micropython_esp32s3/examples/spaL08kpMjzN/flM_BeyF8FQD.mix b/boards/default/micropython_esp32s3/examples/MixGo Nova/10-2-输入输出-地磁金属探测.mix similarity index 100% rename from boards/default/micropython_esp32s3/examples/spaL08kpMjzN/flM_BeyF8FQD.mix rename to boards/default/micropython_esp32s3/examples/MixGo Nova/10-2-输入输出-地磁金属探测.mix diff --git a/boards/default/micropython_esp32s3/examples/spaL08kpMjzN/CWP4dJheZFNE.mix b/boards/default/micropython_esp32s3/examples/MixGo Nova/11-1-输入输出-数字触摸.mix similarity index 100% rename from boards/default/micropython_esp32s3/examples/spaL08kpMjzN/CWP4dJheZFNE.mix rename to boards/default/micropython_esp32s3/examples/MixGo Nova/11-1-输入输出-数字触摸.mix diff --git a/boards/default/micropython_esp32s3/examples/spaL08kpMjzN/w60HVu-6Dep1.mix b/boards/default/micropython_esp32s3/examples/MixGo Nova/11-2-输入输出-模拟触摸.mix similarity index 100% rename from boards/default/micropython_esp32s3/examples/spaL08kpMjzN/w60HVu-6Dep1.mix rename to boards/default/micropython_esp32s3/examples/MixGo Nova/11-2-输入输出-模拟触摸.mix diff --git a/boards/default/micropython_esp32s3/examples/spaL08kpMjzN/uS-sBOb5XCIE.mix b/boards/default/micropython_esp32s3/examples/MixGo Nova/12-1-输入输出-实时时钟.mix similarity index 100% rename from boards/default/micropython_esp32s3/examples/spaL08kpMjzN/uS-sBOb5XCIE.mix rename to boards/default/micropython_esp32s3/examples/MixGo Nova/12-1-输入输出-实时时钟.mix diff --git a/boards/default/micropython_esp32s3/examples/spaL08kpMjzN/PFgXAkebBnua.mix b/boards/default/micropython_esp32s3/examples/MixGo Nova/12-2-输入输出-实时时钟2.mix similarity index 100% rename from boards/default/micropython_esp32s3/examples/spaL08kpMjzN/PFgXAkebBnua.mix rename to boards/default/micropython_esp32s3/examples/MixGo Nova/12-2-输入输出-实时时钟2.mix diff --git a/boards/default/micropython_esp32s3/examples/spaL08kpMjzN/WLqYAgO3pdOM.mix b/boards/default/micropython_esp32s3/examples/MixGo Nova/13-1-逻辑计算-手速测试.mix similarity index 100% rename from boards/default/micropython_esp32s3/examples/spaL08kpMjzN/WLqYAgO3pdOM.mix rename to boards/default/micropython_esp32s3/examples/MixGo Nova/13-1-逻辑计算-手速测试.mix diff --git a/boards/default/micropython_esp32s3/examples/spaL08kpMjzN/XrW2uX2Zptan.mix b/boards/default/micropython_esp32s3/examples/MixGo Nova/13-2-逻辑计算-手速测试2.mix similarity index 100% rename from boards/default/micropython_esp32s3/examples/spaL08kpMjzN/XrW2uX2Zptan.mix rename to boards/default/micropython_esp32s3/examples/MixGo Nova/13-2-逻辑计算-手速测试2.mix diff --git a/boards/default/micropython_esp32s3/examples/spaL08kpMjzN/pq3VHI8-c2RW.mix b/boards/default/micropython_esp32s3/examples/MixGo Nova/14-1-逻辑计算-反应测试.mix similarity index 100% rename from boards/default/micropython_esp32s3/examples/spaL08kpMjzN/pq3VHI8-c2RW.mix rename to boards/default/micropython_esp32s3/examples/MixGo Nova/14-1-逻辑计算-反应测试.mix diff --git a/boards/default/micropython_esp32s3/examples/spaL08kpMjzN/GSYCNfaDc28O.mix b/boards/default/micropython_esp32s3/examples/MixGo Nova/14-2-逻辑计算-反应测试2.mix similarity index 100% rename from boards/default/micropython_esp32s3/examples/spaL08kpMjzN/GSYCNfaDc28O.mix rename to boards/default/micropython_esp32s3/examples/MixGo Nova/14-2-逻辑计算-反应测试2.mix diff --git a/boards/default/micropython_esp32s3/examples/spaL08kpMjzN/tAzlGTSOl3ry.mix b/boards/default/micropython_esp32s3/examples/MixGo Nova/15-1-逻辑计算-简单打地鼠.mix similarity index 100% rename from boards/default/micropython_esp32s3/examples/spaL08kpMjzN/tAzlGTSOl3ry.mix rename to boards/default/micropython_esp32s3/examples/MixGo Nova/15-1-逻辑计算-简单打地鼠.mix diff --git a/boards/default/micropython_esp32s3/examples/spaL08kpMjzN/aITWlr5gYzj1.mix b/boards/default/micropython_esp32s3/examples/MixGo Nova/15-2-逻辑计算-计时打地鼠.mix similarity index 100% rename from boards/default/micropython_esp32s3/examples/spaL08kpMjzN/aITWlr5gYzj1.mix rename to boards/default/micropython_esp32s3/examples/MixGo Nova/15-2-逻辑计算-计时打地鼠.mix diff --git a/boards/default/micropython_esp32s3/examples/spaL08kpMjzN/j9Qp54T2m64C.mix b/boards/default/micropython_esp32s3/examples/MixGo Nova/16-1-逻辑计算-开始打地鼠.mix similarity index 100% rename from boards/default/micropython_esp32s3/examples/spaL08kpMjzN/j9Qp54T2m64C.mix rename to boards/default/micropython_esp32s3/examples/MixGo Nova/16-1-逻辑计算-开始打地鼠.mix diff --git a/boards/default/micropython_esp32s3/examples/spaL08kpMjzN/sd_SD9Jm9Wsp.mix b/boards/default/micropython_esp32s3/examples/MixGo Nova/16-2-逻辑计算-循环打地鼠.mix similarity index 100% rename from boards/default/micropython_esp32s3/examples/spaL08kpMjzN/sd_SD9Jm9Wsp.mix rename to boards/default/micropython_esp32s3/examples/MixGo Nova/16-2-逻辑计算-循环打地鼠.mix diff --git a/boards/default/micropython_esp32s3/examples/spaL08kpMjzN/4aCX3jmeyUyR.mix b/boards/default/micropython_esp32s3/examples/MixGo Nova/17-0-复杂控制-非中断效果.mix similarity index 100% rename from boards/default/micropython_esp32s3/examples/spaL08kpMjzN/4aCX3jmeyUyR.mix rename to boards/default/micropython_esp32s3/examples/MixGo Nova/17-0-复杂控制-非中断效果.mix diff --git a/boards/default/micropython_esp32s3/examples/spaL08kpMjzN/7EtYEaaF5M8E.mix b/boards/default/micropython_esp32s3/examples/MixGo Nova/17-1-复杂控制-双键中断.mix similarity index 100% rename from boards/default/micropython_esp32s3/examples/spaL08kpMjzN/7EtYEaaF5M8E.mix rename to boards/default/micropython_esp32s3/examples/MixGo Nova/17-1-复杂控制-双键中断.mix diff --git a/boards/default/micropython_esp32s3/examples/spaL08kpMjzN/MiZZhu34-Tyx.mix b/boards/default/micropython_esp32s3/examples/MixGo Nova/17-2-复杂控制-单键中断.mix similarity index 100% rename from boards/default/micropython_esp32s3/examples/spaL08kpMjzN/MiZZhu34-Tyx.mix rename to boards/default/micropython_esp32s3/examples/MixGo Nova/17-2-复杂控制-单键中断.mix diff --git a/boards/default/micropython_esp32s3/examples/spaL08kpMjzN/WobxgIvbS8pO.mix b/boards/default/micropython_esp32s3/examples/MixGo Nova/18-1-复杂控制-定时计时.mix similarity index 100% rename from boards/default/micropython_esp32s3/examples/spaL08kpMjzN/WobxgIvbS8pO.mix rename to boards/default/micropython_esp32s3/examples/MixGo Nova/18-1-复杂控制-定时计时.mix diff --git a/boards/default/micropython_esp32s3/examples/spaL08kpMjzN/CKuhx-72Z5m9.mix b/boards/default/micropython_esp32s3/examples/MixGo Nova/18-2-复杂控制-循环计时.mix similarity index 100% rename from boards/default/micropython_esp32s3/examples/spaL08kpMjzN/CKuhx-72Z5m9.mix rename to boards/default/micropython_esp32s3/examples/MixGo Nova/18-2-复杂控制-循环计时.mix diff --git a/boards/default/micropython_esp32s3/examples/spaL08kpMjzN/hJGbUMEUa-D7.mix b/boards/default/micropython_esp32s3/examples/MixGo Nova/19-1-复杂控制-多线程.mix similarity index 100% rename from boards/default/micropython_esp32s3/examples/spaL08kpMjzN/hJGbUMEUa-D7.mix rename to boards/default/micropython_esp32s3/examples/MixGo Nova/19-1-复杂控制-多线程.mix diff --git a/boards/default/micropython_esp32s3/examples/spaL08kpMjzN/UQ_dPe1euAS6.mix b/boards/default/micropython_esp32s3/examples/MixGo Nova/19-2-复杂控制-多线程与中断.mix similarity index 100% rename from boards/default/micropython_esp32s3/examples/spaL08kpMjzN/UQ_dPe1euAS6.mix rename to boards/default/micropython_esp32s3/examples/MixGo Nova/19-2-复杂控制-多线程与中断.mix diff --git a/boards/default/micropython_esp32s3/examples/spaL08kpMjzN/fS15ejySXLCp.mix b/boards/default/micropython_esp32s3/examples/MixGo Nova/20-1-复杂控制-异常.mix similarity index 100% rename from boards/default/micropython_esp32s3/examples/spaL08kpMjzN/fS15ejySXLCp.mix rename to boards/default/micropython_esp32s3/examples/MixGo Nova/20-1-复杂控制-异常.mix diff --git a/boards/default/micropython_esp32s3/examples/spaL08kpMjzN/ny-xhUGiXnhD.mix b/boards/default/micropython_esp32s3/examples/MixGo Nova/20-2-复杂控制-异常处理.mix similarity index 100% rename from boards/default/micropython_esp32s3/examples/spaL08kpMjzN/ny-xhUGiXnhD.mix rename to boards/default/micropython_esp32s3/examples/MixGo Nova/20-2-复杂控制-异常处理.mix diff --git a/boards/default/micropython_esp32s3/examples/spaL08kpMjzN/VUk8vKPvoubB.mix b/boards/default/micropython_esp32s3/examples/MixGo Nova/21-1-射频识别-读取测试.mix similarity index 100% rename from boards/default/micropython_esp32s3/examples/spaL08kpMjzN/VUk8vKPvoubB.mix rename to boards/default/micropython_esp32s3/examples/MixGo Nova/21-1-射频识别-读取测试.mix diff --git a/boards/default/micropython_esp32s3/examples/spaL08kpMjzN/BrVLyJMKXmyz.mix b/boards/default/micropython_esp32s3/examples/MixGo Nova/21-2-射频识别-读取卡号.mix similarity index 100% rename from boards/default/micropython_esp32s3/examples/spaL08kpMjzN/BrVLyJMKXmyz.mix rename to boards/default/micropython_esp32s3/examples/MixGo Nova/21-2-射频识别-读取卡号.mix diff --git a/boards/default/micropython_esp32s3/examples/spaL08kpMjzN/0iJY_sZn5jnf.mix b/boards/default/micropython_esp32s3/examples/MixGo Nova/22-1-射频识别-写卡测试.mix similarity index 100% rename from boards/default/micropython_esp32s3/examples/spaL08kpMjzN/0iJY_sZn5jnf.mix rename to boards/default/micropython_esp32s3/examples/MixGo Nova/22-1-射频识别-写卡测试.mix diff --git a/boards/default/micropython_esp32s3/examples/spaL08kpMjzN/t43CgO-gyp2y.mix b/boards/default/micropython_esp32s3/examples/MixGo Nova/22-2-射频识别-持续写卡.mix similarity index 100% rename from boards/default/micropython_esp32s3/examples/spaL08kpMjzN/t43CgO-gyp2y.mix rename to boards/default/micropython_esp32s3/examples/MixGo Nova/22-2-射频识别-持续写卡.mix diff --git a/boards/default/micropython_esp32s3/examples/spaL08kpMjzN/EuMSzNpPXYcx.mix b/boards/default/micropython_esp32s3/examples/MixGo Nova/23-1-蓝牙通讯-主机模式.mix similarity index 100% rename from boards/default/micropython_esp32s3/examples/spaL08kpMjzN/EuMSzNpPXYcx.mix rename to boards/default/micropython_esp32s3/examples/MixGo Nova/23-1-蓝牙通讯-主机模式.mix diff --git a/boards/default/micropython_esp32s3/examples/spaL08kpMjzN/FC4Pel0yCDim.mix b/boards/default/micropython_esp32s3/examples/MixGo Nova/23-1-蓝牙通讯-从机模式.mix similarity index 100% rename from boards/default/micropython_esp32s3/examples/spaL08kpMjzN/FC4Pel0yCDim.mix rename to boards/default/micropython_esp32s3/examples/MixGo Nova/23-1-蓝牙通讯-从机模式.mix diff --git a/boards/default/micropython_esp32s3/examples/spaL08kpMjzN/BauO5qjy9SYS.mix b/boards/default/micropython_esp32s3/examples/MixGo Nova/24-1-无线广播-通讯测试.mix similarity index 100% rename from boards/default/micropython_esp32s3/examples/spaL08kpMjzN/BauO5qjy9SYS.mix rename to boards/default/micropython_esp32s3/examples/MixGo Nova/24-1-无线广播-通讯测试.mix diff --git a/boards/default/micropython_esp32s3/examples/spaL08kpMjzN/SotT5LP22ao9.mix b/boards/default/micropython_esp32s3/examples/MixGo Nova/24-2-无线广播-防丢检测.mix similarity index 100% rename from boards/default/micropython_esp32s3/examples/spaL08kpMjzN/SotT5LP22ao9.mix rename to boards/default/micropython_esp32s3/examples/MixGo Nova/24-2-无线广播-防丢检测.mix diff --git a/boards/default/micropython_esp32s3/examples/spaL08kpMjzN/EdnCkcpnfpKR.mix b/boards/default/micropython_esp32s3/examples/MixGo Nova/25-1-红外遥控-收发测试.mix similarity index 100% rename from boards/default/micropython_esp32s3/examples/spaL08kpMjzN/EdnCkcpnfpKR.mix rename to boards/default/micropython_esp32s3/examples/MixGo Nova/25-1-红外遥控-收发测试.mix diff --git a/boards/default/micropython_esp32s3/examples/spaL08kpMjzN/jqG-L05ZMHV5.mix b/boards/default/micropython_esp32s3/examples/MixGo Nova/25-2-红外遥控-遥控点灯.mix similarity index 100% rename from boards/default/micropython_esp32s3/examples/spaL08kpMjzN/jqG-L05ZMHV5.mix rename to boards/default/micropython_esp32s3/examples/MixGo Nova/25-2-红外遥控-遥控点灯.mix diff --git a/boards/default/micropython_esp32s3/examples/spaL08kpMjzN/BNUFk_p1vtLW.mix b/boards/default/micropython_esp32s3/examples/MixGo Nova/26-1-红外遥控-学习编码.mix similarity index 100% rename from boards/default/micropython_esp32s3/examples/spaL08kpMjzN/BNUFk_p1vtLW.mix rename to boards/default/micropython_esp32s3/examples/MixGo Nova/26-1-红外遥控-学习编码.mix diff --git a/boards/default/micropython_esp32s3/examples/spaL08kpMjzN/Zb5fpYUH1jOm.mix b/boards/default/micropython_esp32s3/examples/MixGo Nova/26-2-红外遥控-万能遥控.mix similarity index 100% rename from boards/default/micropython_esp32s3/examples/spaL08kpMjzN/Zb5fpYUH1jOm.mix rename to boards/default/micropython_esp32s3/examples/MixGo Nova/26-2-红外遥控-万能遥控.mix diff --git a/boards/default/micropython_esp32s3/examples/spaL08kpMjzN/pLU-XJHG3ZqJ.mix b/boards/default/micropython_esp32s3/examples/MixGo Nova/27-1-红外接近-挥手速度.mix similarity index 100% rename from boards/default/micropython_esp32s3/examples/spaL08kpMjzN/pLU-XJHG3ZqJ.mix rename to boards/default/micropython_esp32s3/examples/MixGo Nova/27-1-红外接近-挥手速度.mix diff --git a/boards/default/micropython_esp32s3/examples/spaL08kpMjzN/so_LgFUBKRWX.mix b/boards/default/micropython_esp32s3/examples/MixGo Nova/27-2-红外接近-双挥手速度.mix similarity index 100% rename from boards/default/micropython_esp32s3/examples/spaL08kpMjzN/so_LgFUBKRWX.mix rename to boards/default/micropython_esp32s3/examples/MixGo Nova/27-2-红外接近-双挥手速度.mix diff --git a/boards/default/micropython_esp32s3/examples/spaL08kpMjzN/3rS2ASPndUR3.mix b/boards/default/micropython_esp32s3/examples/MixGo Nova/28-1-红外接近-双门人数统计.mix similarity index 100% rename from boards/default/micropython_esp32s3/examples/spaL08kpMjzN/3rS2ASPndUR3.mix rename to boards/default/micropython_esp32s3/examples/MixGo Nova/28-1-红外接近-双门人数统计.mix diff --git a/boards/default/micropython_esp32s3/examples/spaL08kpMjzN/0u5H7K49wtbf.mix b/boards/default/micropython_esp32s3/examples/MixGo Nova/28-2-红外接近-单门人数统计.mix similarity index 100% rename from boards/default/micropython_esp32s3/examples/spaL08kpMjzN/0u5H7K49wtbf.mix rename to boards/default/micropython_esp32s3/examples/MixGo Nova/28-2-红外接近-单门人数统计.mix diff --git a/boards/default/micropython_esp32s3/examples/spaL08kpMjzN/hpMVGcmBfXin.mix b/boards/default/micropython_esp32s3/examples/MixGo Nova/29-1-物联网-简单数据定时上报.mix similarity index 100% rename from boards/default/micropython_esp32s3/examples/spaL08kpMjzN/hpMVGcmBfXin.mix rename to boards/default/micropython_esp32s3/examples/MixGo Nova/29-1-物联网-简单数据定时上报.mix diff --git a/boards/default/micropython_esp32s3/examples/spaL08kpMjzN/h1ygMRDTQXbC.mix b/boards/default/micropython_esp32s3/examples/MixGo Nova/29-2-物联网-复杂数据定时上报.mix similarity index 100% rename from boards/default/micropython_esp32s3/examples/spaL08kpMjzN/h1ygMRDTQXbC.mix rename to boards/default/micropython_esp32s3/examples/MixGo Nova/29-2-物联网-复杂数据定时上报.mix diff --git a/boards/default/micropython_esp32s3/examples/spaL08kpMjzN/n0RCAlZYAXcp.mix b/boards/default/micropython_esp32s3/examples/MixGo Nova/30-1-物联网-简单数据按需上报.mix similarity index 100% rename from boards/default/micropython_esp32s3/examples/spaL08kpMjzN/n0RCAlZYAXcp.mix rename to boards/default/micropython_esp32s3/examples/MixGo Nova/30-1-物联网-简单数据按需上报.mix diff --git a/boards/default/micropython_esp32s3/examples/spaL08kpMjzN/KZOaVuS6F2jF.mix b/boards/default/micropython_esp32s3/examples/MixGo Nova/30-2-物联网-高级数据按需上报.mix similarity index 100% rename from boards/default/micropython_esp32s3/examples/spaL08kpMjzN/KZOaVuS6F2jF.mix rename to boards/default/micropython_esp32s3/examples/MixGo Nova/30-2-物联网-高级数据按需上报.mix diff --git a/boards/default/micropython_esp32s3/examples/spaL08kpMjzN/PML8ASaXgM2i.mix b/boards/default/micropython_esp32s3/examples/MixGo Nova/31-1-物联网-单主题数据订阅.mix similarity index 100% rename from boards/default/micropython_esp32s3/examples/spaL08kpMjzN/PML8ASaXgM2i.mix rename to boards/default/micropython_esp32s3/examples/MixGo Nova/31-1-物联网-单主题数据订阅.mix diff --git a/boards/default/micropython_esp32s3/examples/spaL08kpMjzN/eqdpt6K1jbC7.mix b/boards/default/micropython_esp32s3/examples/MixGo Nova/31-2-物联网-单主题数据订阅2.mix similarity index 100% rename from boards/default/micropython_esp32s3/examples/spaL08kpMjzN/eqdpt6K1jbC7.mix rename to boards/default/micropython_esp32s3/examples/MixGo Nova/31-2-物联网-单主题数据订阅2.mix diff --git a/boards/default/micropython_esp32s3/examples/spaL08kpMjzN/m82lixdqqoMx.mix b/boards/default/micropython_esp32s3/examples/MixGo Nova/32-1-物联网-多主题数据订.mix similarity index 100% rename from boards/default/micropython_esp32s3/examples/spaL08kpMjzN/m82lixdqqoMx.mix rename to boards/default/micropython_esp32s3/examples/MixGo Nova/32-1-物联网-多主题数据订.mix diff --git a/boards/default/micropython_esp32s3/examples/spaL08kpMjzN/LW3Ej0lt94ey.mix b/boards/default/micropython_esp32s3/examples/MixGo Nova/32-2-物联网-多主题数据订2.mix similarity index 100% rename from boards/default/micropython_esp32s3/examples/spaL08kpMjzN/LW3Ej0lt94ey.mix rename to boards/default/micropython_esp32s3/examples/MixGo Nova/32-2-物联网-多主题数据订2.mix diff --git a/boards/default/micropython_esp32s3/examples/spaL08kpMjzN/iCA8w9TQUHSJ.mix b/boards/default/micropython_esp32s3/examples/MixGo Nova/33-1-课堂互动-自由签到.mix similarity index 100% rename from boards/default/micropython_esp32s3/examples/spaL08kpMjzN/iCA8w9TQUHSJ.mix rename to boards/default/micropython_esp32s3/examples/MixGo Nova/33-1-课堂互动-自由签到.mix diff --git a/boards/default/micropython_esp32s3/examples/spaL08kpMjzN/OmkzHeP1zWzx.mix b/boards/default/micropython_esp32s3/examples/MixGo Nova/33-2-课堂互动-按需签到.mix similarity index 100% rename from boards/default/micropython_esp32s3/examples/spaL08kpMjzN/OmkzHeP1zWzx.mix rename to boards/default/micropython_esp32s3/examples/MixGo Nova/33-2-课堂互动-按需签到.mix diff --git a/boards/default/micropython_esp32s3/examples/spaL08kpMjzN/DbEkDCzfl7jN.mix b/boards/default/micropython_esp32s3/examples/MixGo Nova/34-1-课堂互动-一人抢答.mix similarity index 100% rename from boards/default/micropython_esp32s3/examples/spaL08kpMjzN/DbEkDCzfl7jN.mix rename to boards/default/micropython_esp32s3/examples/MixGo Nova/34-1-课堂互动-一人抢答.mix diff --git a/boards/default/micropython_esp32s3/examples/spaL08kpMjzN/TQlNSWk-q_59.mix b/boards/default/micropython_esp32s3/examples/MixGo Nova/34-2-课堂互动-多人抢答.mix similarity index 100% rename from boards/default/micropython_esp32s3/examples/spaL08kpMjzN/TQlNSWk-q_59.mix rename to boards/default/micropython_esp32s3/examples/MixGo Nova/34-2-课堂互动-多人抢答.mix diff --git a/boards/default/micropython_esp32s3/examples/spaL08kpMjzN/8YQ-b86-HrZ4.mix b/boards/default/micropython_esp32s3/examples/MixGo Nova/35-1-课堂互动-单选答题.mix similarity index 100% rename from boards/default/micropython_esp32s3/examples/spaL08kpMjzN/8YQ-b86-HrZ4.mix rename to boards/default/micropython_esp32s3/examples/MixGo Nova/35-1-课堂互动-单选答题.mix diff --git a/boards/default/micropython_esp32s3/examples/spaL08kpMjzN/hmTzIO---HSA.mix b/boards/default/micropython_esp32s3/examples/MixGo Nova/35-2-课堂互动-多选答题.mix similarity index 100% rename from boards/default/micropython_esp32s3/examples/spaL08kpMjzN/hmTzIO---HSA.mix rename to boards/default/micropython_esp32s3/examples/MixGo Nova/35-2-课堂互动-多选答题.mix diff --git a/boards/default/micropython_esp32s3/examples/spaL08kpMjzN/uCQjoiliEAF4.mix b/boards/default/micropython_esp32s3/examples/MixGo Nova/36-1-课堂互动-点名答题.mix similarity index 100% rename from boards/default/micropython_esp32s3/examples/spaL08kpMjzN/uCQjoiliEAF4.mix rename to boards/default/micropython_esp32s3/examples/MixGo Nova/36-1-课堂互动-点名答题.mix diff --git a/boards/default/micropython_esp32s3/examples/spaL08kpMjzN/ixn2yBQ9Obwb.mix b/boards/default/micropython_esp32s3/examples/MixGo Nova/36-2-课堂互动-多人点答.mix similarity index 100% rename from boards/default/micropython_esp32s3/examples/spaL08kpMjzN/ixn2yBQ9Obwb.mix rename to boards/default/micropython_esp32s3/examples/MixGo Nova/36-2-课堂互动-多人点答.mix diff --git a/boards/default/micropython_esp32s3/examples/spaL08kpMjzN/DgUde-qzHDhC.mix b/boards/default/micropython_esp32s3/examples/MixGo Nova/37-1-文件操作-列出文件.mix similarity index 100% rename from boards/default/micropython_esp32s3/examples/spaL08kpMjzN/DgUde-qzHDhC.mix rename to boards/default/micropython_esp32s3/examples/MixGo Nova/37-1-文件操作-列出文件.mix diff --git a/boards/default/micropython_esp32s3/examples/spaL08kpMjzN/o9SJa9CSpLqd.mix b/boards/default/micropython_esp32s3/examples/MixGo Nova/37-2-文件操作-列出文件2.mix similarity index 100% rename from boards/default/micropython_esp32s3/examples/spaL08kpMjzN/o9SJa9CSpLqd.mix rename to boards/default/micropython_esp32s3/examples/MixGo Nova/37-2-文件操作-列出文件2.mix diff --git a/boards/default/micropython_esp32s3/examples/spaL08kpMjzN/Oz43p97RhtSV.mix b/boards/default/micropython_esp32s3/examples/MixGo Nova/38-1-文件操作-文件读写.mix similarity index 100% rename from boards/default/micropython_esp32s3/examples/spaL08kpMjzN/Oz43p97RhtSV.mix rename to boards/default/micropython_esp32s3/examples/MixGo Nova/38-1-文件操作-文件读写.mix diff --git a/boards/default/micropython_esp32s3/examples/spaL08kpMjzN/oZ0XuoTxtfNl.mix b/boards/default/micropython_esp32s3/examples/MixGo Nova/38-2-文件操作-文件读写2.mix similarity index 100% rename from boards/default/micropython_esp32s3/examples/spaL08kpMjzN/oZ0XuoTxtfNl.mix rename to boards/default/micropython_esp32s3/examples/MixGo Nova/38-2-文件操作-文件读写2.mix diff --git a/boards/default/micropython_esp32s3/examples/spaL08kpMjzN/89iWLS-yEmRG.mix b/boards/default/micropython_esp32s3/examples/MixGo Nova/39-1-文件操作-录音播放.mix similarity index 100% rename from boards/default/micropython_esp32s3/examples/spaL08kpMjzN/89iWLS-yEmRG.mix rename to boards/default/micropython_esp32s3/examples/MixGo Nova/39-1-文件操作-录音播放.mix diff --git a/boards/default/micropython_esp32s3/examples/spaL08kpMjzN/bcunn6nYyFdF.mix b/boards/default/micropython_esp32s3/examples/MixGo Nova/39-1-文件操作-录音播放2.mix similarity index 100% rename from boards/default/micropython_esp32s3/examples/spaL08kpMjzN/bcunn6nYyFdF.mix rename to boards/default/micropython_esp32s3/examples/MixGo Nova/39-1-文件操作-录音播放2.mix diff --git a/boards/default/micropython_esp32s3/examples/spaL08kpMjzN/gu_pzQ88rT88.mix b/boards/default/micropython_esp32s3/examples/MixGo Nova/40-1-文件操作-SD录音播放2.mix similarity index 100% rename from boards/default/micropython_esp32s3/examples/spaL08kpMjzN/gu_pzQ88rT88.mix rename to boards/default/micropython_esp32s3/examples/MixGo Nova/40-1-文件操作-SD录音播放2.mix diff --git a/boards/default/micropython_esp32s3/examples/spaL08kpMjzN/6gPGSjzc3pvl.mix b/boards/default/micropython_esp32s3/examples/MixGo Nova/40-2-文件操作-SD采集重现.mix similarity index 100% rename from boards/default/micropython_esp32s3/examples/spaL08kpMjzN/6gPGSjzc3pvl.mix rename to boards/default/micropython_esp32s3/examples/MixGo Nova/40-2-文件操作-SD采集重现.mix diff --git a/boards/default/micropython_esp32s3/examples/map.json b/boards/default/micropython_esp32s3/examples/map.json index a66dfb57..8a6f05dc 100644 --- a/boards/default/micropython_esp32s3/examples/map.json +++ b/boards/default/micropython_esp32s3/examples/map.json @@ -1,334 +1,334 @@ { - "spaL08kpMjzN": { - "WTXHzHc1EaMe.mix": { + "MixGo Nova": { + "01-1-快速入门-你好世界.mix": { "__file__": true, - "__name__": "-0OlaPMaCEEq.mix" + "__name__": "01-1-快速入门-你好世界.mix" }, - "EdnCkcpnfpKR.mix": { + "01-2-快速入门-你好世界2.mix": { "__file__": true, - "__name__": "-8nofD51s0hm.mix" + "__name__": "01-2-快速入门-你好世界2.mix" }, - "t43CgO-gyp2y.mix": { + "02-1-快速入门-跳动的心.mix": { "__file__": true, - "__name__": "-lxRuxrc0piM.mix" + "__name__": "02-1-快速入门-跳动的心.mix" }, - "KZOaVuS6F2jF.mix": { + "02-2-快速入门-为你心动.mix": { "__file__": true, - "__name__": "-PnBDpIQb0yU.mix" + "__name__": "02-2-快速入门-为你心动.mix" }, - "OmkzHeP1zWzx.mix": { + "03-1-快速入门-心随我动.mix": { "__file__": true, - "__name__": "-x67vvX1xCTk.mix" + "__name__": "03-1-快速入门-心随我动.mix" }, - "6gPGSjzc3pvl.mix": { + "03-2-快速入门-心随我动2.mix": { "__file__": true, - "__name__": "3PcGpC5Y1IDz.mix" + "__name__": "03-2-快速入门-心随我动2.mix" }, - "89iWLS-yEmRG.mix": { + "04-1-快速入门-流动的灯.mix": { "__file__": true, - "__name__": "3Vm2fpgw3t6R.mix" + "__name__": "04-1-快速入门-流动的灯.mix" }, - "87xZNVSTv5Eg.mix": { + "04-2-快速入门-流动的灯2.mix": { "__file__": true, - "__name__": "3WIjolaXWro3.mix" + "__name__": "04-2-快速入门-流动的灯2.mix" }, - "ixn2yBQ9Obwb.mix": { + "05-1-过程控制-双键开关.mix": { "__file__": true, - "__name__": "4KNHReSnJe0e.mix" + "__name__": "05-1-过程控制-双键开关.mix" }, - "KCJLca0vfj94.mix": { + "05-2-过程控制-单键开关.mix": { "__file__": true, - "__name__": "6OTs3lq7hZof.mix" + "__name__": "05-2-过程控制-单键开关.mix" }, - "CWP4dJheZFNE.mix": { + "05-3-过程控制-IPO概念.mix": { "__file__": true, - "__name__": "6QrzhLPGeTKk.mix" + "__name__": "05-3-过程控制-IPO概念.mix" }, - "bK5kY2I5LWmg.mix": { + "06-1-过程控制-声音采集.mix": { "__file__": true, - "__name__": "77y5CO8PtQTw.mix" + "__name__": "06-1-过程控制-声音采集.mix" }, - "0u5H7K49wtbf.mix": { + "06-2-过程控制-看见声音.mix": { "__file__": true, - "__name__": "7E7TSeqXiU35.mix" + "__name__": "06-2-过程控制-看见声音.mix" }, - "j9Qp54T2m64C.mix": { + "07-1-过程控制-光强采集.mix": { "__file__": true, - "__name__": "7KwdP4Ym0Xev.mix" + "__name__": "07-1-过程控制-光强采集.mix" }, - "o9SJa9CSpLqd.mix": { + "07-2-过程控制-自动补光.mix": { "__file__": true, - "__name__": "8vKl-_3oSlEV.mix" + "__name__": "07-2-过程控制-自动补光.mix" }, - "LW3Ej0lt94ey.mix": { + "08-1-过程控制-接近检测.mix": { "__file__": true, - "__name__": "A-qrl2Caci5v.mix" + "__name__": "08-1-过程控制-接近检测.mix" }, - "fS15ejySXLCp.mix": { + "08-2-过程控制-入侵报警.mix": { "__file__": true, - "__name__": "a0AxXqvQOphc.mix" + "__name__": "08-2-过程控制-入侵报警.mix" }, - "gu_pzQ88rT88.mix": { + "09-1-输入输出-加速度.mix": { "__file__": true, - "__name__": "a9hFvw9uNUIT.mix" + "__name__": "09-1-输入输出-加速度.mix" }, - "MiZZhu34-Tyx.mix": { + "09-2-输入输出-平衡仪.mix": { "__file__": true, - "__name__": "ABPsCi_VkRW6.mix" + "__name__": "09-2-输入输出-平衡仪.mix" }, - "luEYbAUPAyaA.mix": { + "10-1-输入输出-温湿度.mix": { "__file__": true, - "__name__": "AcHuGvV0Ds5T.mix" + "__name__": "10-1-输入输出-温湿度.mix" }, - "PML8ASaXgM2i.mix": { + "10-2-输入输出-地磁金属探测.mix": { "__file__": true, - "__name__": "aiLfd5fw1YRh.mix" + "__name__": "10-2-输入输出-地磁金属探测.mix" }, - "7EtYEaaF5M8E.mix": { + "11-1-输入输出-数字触摸.mix": { "__file__": true, - "__name__": "anZoph4QQ_Wv.mix" + "__name__": "11-1-输入输出-数字触摸.mix" }, - "0iJY_sZn5jnf.mix": { + "11-2-输入输出-模拟触摸.mix": { "__file__": true, - "__name__": "BCB8BqMwLtU3.mix" + "__name__": "11-2-输入输出-模拟触摸.mix" }, - "iCA8w9TQUHSJ.mix": { + "12-1-输入输出-实时时钟.mix": { "__file__": true, - "__name__": "Bo41w2kiEjQO.mix" + "__name__": "12-1-输入输出-实时时钟.mix" }, - "GSYCNfaDc28O.mix": { + "12-2-输入输出-实时时钟2.mix": { "__file__": true, - "__name__": "c-i8SaM97Y6b.mix" + "__name__": "12-2-输入输出-实时时钟2.mix" }, - "tAzlGTSOl3ry.mix": { + "13-1-逻辑计算-手速测试.mix": { "__file__": true, - "__name__": "c9Y4ZJ4xMbMf.mix" + "__name__": "13-1-逻辑计算-手速测试.mix" }, - "x41WSrAxF71W.mix": { + "13-2-逻辑计算-手速测试2.mix": { "__file__": true, - "__name__": "cI4qB37Um_aC.mix" + "__name__": "13-2-逻辑计算-手速测试2.mix" }, - "WLqYAgO3pdOM.mix": { + "14-1-逻辑计算-反应测试.mix": { "__file__": true, - "__name__": "e3jmlfppLF-q.mix" + "__name__": "14-1-逻辑计算-反应测试.mix" }, - "hmTzIO---HSA.mix": { + "14-2-逻辑计算-反应测试2.mix": { "__file__": true, - "__name__": "eiII9fI-fW6J.mix" + "__name__": "14-2-逻辑计算-反应测试2.mix" }, - "siBFg3T4u82Y.mix": { + "15-1-逻辑计算-简单打地鼠.mix": { "__file__": true, - "__name__": "eMvlN9mjH5yz.mix" + "__name__": "15-1-逻辑计算-简单打地鼠.mix" }, - "Z7wvmTL_Mva2.mix": { + "15-2-逻辑计算-计时打地鼠.mix": { "__file__": true, - "__name__": "etsojWR-1hVf.mix" + "__name__": "15-2-逻辑计算-计时打地鼠.mix" }, - "jDxwGSvQK9oc.mix": { + "16-1-逻辑计算-开始打地鼠.mix": { "__file__": true, - "__name__": "f27RM85F2Q5E.mix" + "__name__": "16-1-逻辑计算-开始打地鼠.mix" }, - "aITWlr5gYzj1.mix": { + "16-2-逻辑计算-循环打地鼠.mix": { "__file__": true, - "__name__": "F5L18Gdw9GvH.mix" + "__name__": "16-2-逻辑计算-循环打地鼠.mix" }, - "hJGbUMEUa-D7.mix": { + "17-0-复杂控制-非中断效果.mix": { "__file__": true, - "__name__": "FmAYbH3ge82u.mix" + "__name__": "17-0-复杂控制-非中断效果.mix" }, - "ZnfHO4V6wT9S.mix": { + "17-1-复杂控制-双键中断.mix": { "__file__": true, - "__name__": "fzHyx3IHrOWn.mix" + "__name__": "17-1-复杂控制-双键中断.mix" }, - "m82lixdqqoMx.mix": { + "17-2-复杂控制-单键中断.mix": { "__file__": true, - "__name__": "GedGHL9yoFCq.mix" + "__name__": "17-2-复杂控制-单键中断.mix" }, - "so_LgFUBKRWX.mix": { + "18-1-复杂控制-定时计时.mix": { "__file__": true, - "__name__": "GnM48D08pnpb.mix" + "__name__": "18-1-复杂控制-定时计时.mix" }, - "w60HVu-6Dep1.mix": { + "18-2-复杂控制-循环计时.mix": { "__file__": true, - "__name__": "HXeS8900PKNh.mix" + "__name__": "18-2-复杂控制-循环计时.mix" }, - "4aCX3jmeyUyR.mix": { + "19-1-复杂控制-多线程.mix": { "__file__": true, - "__name__": "H_zt56ypU9FJ.mix" + "__name__": "19-1-复杂控制-多线程.mix" }, - "bcunn6nYyFdF.mix": { + "19-2-复杂控制-多线程与中断.mix": { "__file__": true, - "__name__": "IFW1dXRN09ro.mix" + "__name__": "19-2-复杂控制-多线程与中断.mix" }, - "WTWqNQ8RU2Ud.mix": { + "20-1-复杂控制-异常.mix": { "__file__": true, - "__name__": "ih5tejIeRw2S.mix" + "__name__": "20-1-复杂控制-异常.mix" }, - "K5Sf-kL172z5.mix": { + "20-2-复杂控制-异常处理.mix": { "__file__": true, - "__name__": "J0mdfpAktkhj.mix" + "__name__": "20-2-复杂控制-异常处理.mix" }, - "uS-sBOb5XCIE.mix": { + "21-1-射频识别-读取测试.mix": { "__file__": true, - "__name__": "jii1Pq58YsdJ.mix" + "__name__": "21-1-射频识别-读取测试.mix" }, - "oZ0XuoTxtfNl.mix": { + "21-2-射频识别-读取卡号.mix": { "__file__": true, - "__name__": "K8xQLClM27dI.mix" + "__name__": "21-2-射频识别-读取卡号.mix" }, - "ny-xhUGiXnhD.mix": { + "22-1-射频识别-写卡测试.mix": { "__file__": true, - "__name__": "KllvE5vuq0ed.mix" + "__name__": "22-1-射频识别-写卡测试.mix" }, - "hpMVGcmBfXin.mix": { + "22-2-射频识别-持续写卡.mix": { "__file__": true, - "__name__": "KOdE_XHgUrBv.mix" + "__name__": "22-2-射频识别-持续写卡.mix" }, - "TQlNSWk-q_59.mix": { + "23-1-蓝牙通讯-主机模式.mix": { "__file__": true, - "__name__": "L2OQkCmUy8zz.mix" + "__name__": "23-1-蓝牙通讯-主机模式.mix" }, - "Zb5fpYUH1jOm.mix": { + "23-1-蓝牙通讯-从机模式.mix": { "__file__": true, - "__name__": "lanJsewgtLd0.mix" + "__name__": "23-1-蓝牙通讯-从机模式.mix" }, - "PFgXAkebBnua.mix": { + "24-1-无线广播-通讯测试.mix": { "__file__": true, - "__name__": "lXKRjqCf4swy.mix" + "__name__": "24-1-无线广播-通讯测试.mix" }, - "jqG-L05ZMHV5.mix": { + "24-2-无线广播-防丢检测.mix": { "__file__": true, - "__name__": "lz86sCvbyAtz.mix" + "__name__": "24-2-无线广播-防丢检测.mix" }, - "0tf0NL2QIf83.mix": { + "25-1-红外遥控-收发测试.mix": { "__file__": true, - "__name__": "Md6RcFLtxBqf.mix" + "__name__": "25-1-红外遥控-收发测试.mix" }, - "8YQ-b86-HrZ4.mix": { + "25-2-红外遥控-遥控点灯.mix": { "__file__": true, - "__name__": "mFiT48mja23B.mix" + "__name__": "25-2-红外遥控-遥控点灯.mix" }, - "e-iJ94EI20CB.mix": { + "26-1-红外遥控-学习编码.mix": { "__file__": true, - "__name__": "Mt1fsU_Lw9Q2.mix" + "__name__": "26-1-红外遥控-学习编码.mix" }, - "k4rVi2Xkl0pS.mix": { + "26-2-红外遥控-万能遥控.mix": { "__file__": true, - "__name__": "musV2cL_WjOi.mix" + "__name__": "26-2-红外遥控-万能遥控.mix" }, - "uCQjoiliEAF4.mix": { + "27-1-红外接近-挥手速度.mix": { "__file__": true, - "__name__": "NBRJVliJ9TF1.mix" + "__name__": "27-1-红外接近-挥手速度.mix" }, - "XrW2uX2Zptan.mix": { + "27-2-红外接近-双挥手速度.mix": { "__file__": true, - "__name__": "oxBVpDc0lr3z.mix" + "__name__": "27-2-红外接近-双挥手速度.mix" }, - "rCWebX-xC9DT.mix": { + "28-1-红外接近-双门人数统计.mix": { "__file__": true, - "__name__": "piXDjFwsbMJf.mix" + "__name__": "28-1-红外接近-双门人数统计.mix" }, - "DgUde-qzHDhC.mix": { + "28-2-红外接近-单门人数统计.mix": { "__file__": true, - "__name__": "PVXdaRCdBDqm.mix" + "__name__": "28-2-红外接近-单门人数统计.mix" }, - "eqdpt6K1jbC7.mix": { + "29-1-物联网-简单数据定时上报.mix": { "__file__": true, - "__name__": "R4W5FsXnFukp.mix" + "__name__": "29-1-物联网-简单数据定时上报.mix" }, - "BNUFk_p1vtLW.mix": { + "29-2-物联网-复杂数据定时上报.mix": { "__file__": true, - "__name__": "suwQdfx5b10C.mix" + "__name__": "29-2-物联网-复杂数据定时上报.mix" }, - "WobxgIvbS8pO.mix": { + "30-1-物联网-简单数据按需上报.mix": { "__file__": true, - "__name__": "tFgEa1qeYJXj.mix" + "__name__": "30-1-物联网-简单数据按需上报.mix" }, - "UQ_dPe1euAS6.mix": { + "30-2-物联网-高级数据按需上报.mix": { "__file__": true, - "__name__": "Tkd2W_dSMeZr.mix" + "__name__": "30-2-物联网-高级数据按需上报.mix" }, - "Oz43p97RhtSV.mix": { + "31-1-物联网-单主题数据订阅.mix": { "__file__": true, - "__name__": "tXAA8axevy2D.mix" + "__name__": "31-1-物联网-单主题数据订阅.mix" }, - "BauO5qjy9SYS.mix": { + "31-2-物联网-单主题数据订阅2.mix": { "__file__": true, - "__name__": "t_io3x4RYH24.mix" + "__name__": "31-2-物联网-单主题数据订阅2.mix" }, - "pq3VHI8-c2RW.mix": { + "32-1-物联网-多主题数据订.mix": { "__file__": true, - "__name__": "uhMIo6c4jwVX.mix" + "__name__": "32-1-物联网-多主题数据订.mix" }, - "VxVKsTZ-aA7J.mix": { + "32-2-物联网-多主题数据订2.mix": { "__file__": true, - "__name__": "UkNwBi6sqB43.mix" + "__name__": "32-2-物联网-多主题数据订2.mix" }, - "h1ygMRDTQXbC.mix": { + "33-1-课堂互动-自由签到.mix": { "__file__": true, - "__name__": "uVNh3Q_7UDlX.mix" + "__name__": "33-1-课堂互动-自由签到.mix" }, - "qMnDxP1KYyQD.mix": { + "33-2-课堂互动-按需签到.mix": { "__file__": true, - "__name__": "UWo-ARFCnj9I.mix" + "__name__": "33-2-课堂互动-按需签到.mix" }, - "3rS2ASPndUR3.mix": { + "34-1-课堂互动-一人抢答.mix": { "__file__": true, - "__name__": "V6eY5i8p9EiM.mix" + "__name__": "34-1-课堂互动-一人抢答.mix" }, - "BrVLyJMKXmyz.mix": { + "34-2-课堂互动-多人抢答.mix": { "__file__": true, - "__name__": "WhPnPxUMcXHH.mix" + "__name__": "34-2-课堂互动-多人抢答.mix" }, - "flM_BeyF8FQD.mix": { + "35-1-课堂互动-单选答题.mix": { "__file__": true, - "__name__": "WhuptI2hxMrp.mix" + "__name__": "35-1-课堂互动-单选答题.mix" }, - "FC4Pel0yCDim.mix": { + "35-2-课堂互动-多选答题.mix": { "__file__": true, - "__name__": "WP0-EXHPnsFX.mix" + "__name__": "35-2-课堂互动-多选答题.mix" }, - "6sxoFcwWmpxQ.mix": { + "36-1-课堂互动-点名答题.mix": { "__file__": true, - "__name__": "xfCIW0EbPEop.mix" + "__name__": "36-1-课堂互动-点名答题.mix" }, - "pLU-XJHG3ZqJ.mix": { + "36-2-课堂互动-多人点答.mix": { "__file__": true, - "__name__": "xuXXVS4Xbjvn.mix" + "__name__": "36-2-课堂互动-多人点答.mix" }, - "CKuhx-72Z5m9.mix": { + "37-1-文件操作-列出文件.mix": { "__file__": true, - "__name__": "Y0dm6Ghcl4eH.mix" + "__name__": "37-1-文件操作-列出文件.mix" }, - "DbEkDCzfl7jN.mix": { + "37-2-文件操作-列出文件2.mix": { "__file__": true, - "__name__": "y1w3yUhQT5mY.mix" + "__name__": "37-2-文件操作-列出文件2.mix" }, - "n0RCAlZYAXcp.mix": { + "38-1-文件操作-文件读写.mix": { "__file__": true, - "__name__": "ywFgxI0hERyz.mix" + "__name__": "38-1-文件操作-文件读写.mix" }, - "SotT5LP22ao9.mix": { + "38-2-文件操作-文件读写2.mix": { "__file__": true, - "__name__": "Za76xc3CEQra.mix" + "__name__": "38-2-文件操作-文件读写2.mix" }, - "EuMSzNpPXYcx.mix": { + "39-1-文件操作-录音播放.mix": { "__file__": true, - "__name__": "zwm_LXY_rNkj.mix" + "__name__": "39-1-文件操作-录音播放.mix" }, - "VUk8vKPvoubB.mix": { + "39-1-文件操作-录音播放2.mix": { "__file__": true, - "__name__": "ZwPV_HvJovlh.mix" + "__name__": "39-1-文件操作-录音播放2.mix" }, - "D6STOxOWIWL8.mix": { + "40-1-文件操作-SD录音播放2.mix": { "__file__": true, - "__name__": "_mgDJNngQq29.mix" + "__name__": "40-1-文件操作-SD录音播放2.mix" }, - "sd_SD9Jm9Wsp.mix": { + "40-2-文件操作-SD采集重现.mix": { "__file__": true, - "__name__": "_Uf2vpVvSp7x.mix" + "__name__": "40-2-文件操作-SD采集重现.mix" }, "__file__": false, - "__name__": "wJmk17OsKBWA" + "__name__": "MixGo Nova" } } diff --git a/boards/default/micropython_esp32s3/index.xml b/boards/default/micropython_esp32s3/index.xml index 0920492d..c7cded1b 100644 --- a/boards/default/micropython_esp32s3/index.xml +++ b/boards/default/micropython_esp32s3/index.xml @@ -1 +1 @@ -02000attachInterrupt_funcattachInterrupt_func10,1,2,3051iDIVIDE10Exception as eetestThreadtestThreadWHILETRUEHello Mixly from Thread!ms10timtim1000tim_callbacktim_callback5000200090x151100a10.998124.829971100101010001100501100110000x2x0,1,2,30,1,2,30,1,2,3xMixlyHelloMixly65axMixlyMixly0Mixly02MixlyMixlyHello,mixlyl--mylistHello,mixlymixlymixpyI love mixly!I love mixlyRandom No. is {}int1100input('1+2*3')mylist1,2,3,4,5mylist0mylist02mylistmylistmylist0mylist00mylist00mylist0mylist0mylist0mylistmylistmylistx0,1,2,30,1,2,3mytup1,2,3,4,5mytup0mytup02mytupmytupmytupmytup0mytupmytup1mytup2xmydictmydictkeymydictkey0mydictkey0mydictkeymydictkeymydictkey0mydictmydictmydictmydictxmydict{"name":"Mixly","color":"green"}s11,2,3,4,5s1s1s1s2s1s2s10s1Mixlys1s2xMixlyMixlyMixly,HelloMixlyprompt02MixlyMixly0XFF00FFcodebMixlyMixly1attachInterrupt_funcattachInterrupt_funcrfid00Mixly0Mixly2022711420452023,1,1,12,0,0180291001001004401000/sd/1.wav5/sd/1.wavhttps://gitee.com/dahanzimin/test/raw/master/wav/8.wav000000000010001000001#ffffff255,255,0Mixly0Mixly0010#ffffff255,255,0MixlyMixly0550#ffffff255,255,0MixlyMixly5500#ffffff255,255,00020#ffffff255,255,0005050#ffffff255,255,020202015#ffffff255,255,0606040#ffffff255,255,010000#ffffff255,255,00.5#ffffff255,255,0new_clock16012040#ffffff255,255,0new_clock806440#ffffff255,255,0new_clocknew_clock8200new_clocknew_clock0x0000000,0,0wifinamewifipassword8080AUTH TOKEN0_value02000notify0Your Target Emailsubjectbodycolor#FF0000wifinamewifipasswordmixio.mixly.cnmixio.mixly.cnA1B2C3mixio.mixly.cnusernamepasswordMyProjecttopicmsgtopicmethodmethodEQmsg1content"long""lat""message"012content"key1""key2""key3"012http://mixio.mixly.cn/time.phpmixio.mixly.cnwifinamewifipasswordcsub_cb31444082183.230.40.3914109261n63JySRowo13ZLDBKw6y896E0=MixlyRobotsub_cbEQmsg1ciot_dict"tc"tc0ciot_dictccwifinamewifipasswordclientEnter Your API_KEYEnter Your SECRET_KEYclient1clientS72099北京今天天气如何?wifinamewifipasswordSfsxo7MfAaNO1U_Pq北京Sfsxo7MfAaNO1U_Pq北京1Sfsxo7MfAaNO1U_Pq北京24ble_cble_pMixlyble_cble_cMixlyble_cble_xble_xble_xMixlyble_xble_xble_methodble_methodEQdataMixlyhandlehandle_methodhandle_methodkey1key2key3keyx1620000211000009000,4500,563,5630x1234callbackcmdaddrrawpulsesi2c2221100000i2c00i2c00i2ci2ci2cspi200000045spi200000buf50spi10spi100xffspibufspibuf0xffspi12345spi12345buf1Mixlyow12owowow12345ow12345owmy_now0my_nowmy_nowmy_nowFFFFFFFFFFFFmixlymy_nowmy_nowcbcbEQmsg1spi10000004512spi8my_lora433.925716my_loramy_loramy_loraMixlyi2c_extend45100000xsensori2c_extendxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorspi10000004512spi8ysensorysensor0ysensor0ysensor0Mixlyysensor0Mixlyysensorysensorysensor39,119.96,31.67ysensorysensorstation45ps2_handle24512ps2_handle50ps2_handleps2_handlews_wr123ws_wrws_wrws_wr360010zsensorzsensorzsensorzsensormidi0midi440midi4401000midimidimidi4120midimidirgb04rgb0000rgb000rgb100100i2c_extend45400000Motori2c_extendMotor100Motor1024102402ttsttsttsttstts你好米思齐100100i2c_extend45400000matrixi2c_extendmatrixmatrixmatrixMixly0matrixMixlymatrixMixly500matrixMixlymatrixMixly500matrixmatrix>matrixmatrix1matrixmatrixmatrix0.5matrixmatrixi2c_extend45100000dispi2c_extenddisp2333dispdisp1i2c_extend45100000lcdi2c_extend0x27lcdMixly00lcdMixly005lcdlcdi2c_extend45100000oledi2c_extend0x3coledoled001oledMixlyoledMixly0010oledMixlyoledMixly0550oledMixlyoledMixly5500oled0020oled005050oled20202015oled1oled00oled00oledspi10000001246spi45tft_st7789135240tft_st7789001#ffffff255,255,0tft_st7789Mixly0050#ffffff255,255,0tft_st7789Mixly0550#ffffff255,255,0tft_st7789Mixly5500#ffffff255,255,0tft_st7789004040#ffffff255,255,0tft_st778912ai_sensorai_sensor98ai_sensor255,255,00,0,255ai_sensor'ni-hao','hong-se','lv-se','lan-se','bai-se','hei-se'0.1ai_sensor1.wav5ai_sensor1.wav100ai_sensorinfoai_sensorqrcodeinfoai_sensorbarcodeinfoai_sensortaginfoai_sensor25002525lineinfoai_sensor35002100circleinfoai_sensor10000rectinfoai_sensorinfoinfoai_sensorcolor_lab101colorsai_sensor'猫','狗','笔记本','笔'mixgo5自模型训练infoai_sensor'猫','狗','笔记本','笔'mixgo自模型识别objectsinfoai_sensor0.1606, 0.3562, 0.4712, 0.9568, 0.9877, 1.9108, 1.8761, 3.5310, 3.4423, 5.6823/sd/masks.kmodel外部模型加载objects12ai_sensorai_sensor98ai_sensor255,255,00,0,255ai_sensor1.wav5ai_sensor1.wav100infoai_sensorlicensePlateinfoai_sensorfaceinfoai_sensor20objectsai_sensorinfoai_sensorqrcodeinfoai_sensorbarcodeinfoai_sensortaginfoai_sensor25002525lineinfoai_sensor35002100circleinfoai_sensor10000rectinfoai_sensorinfoinfoai_sensorcolor_lab101colorsspi46sdsd/sdfilename.txtfMixlyfff0fffpathpathfilename.txtsrcname.txtdstname.txtpathff0wifinamewifipasswordwlanwlanwlanwlanwlan127.16.0.801234567wlanwlanwlanwlanwlan127.16.0.81connect_wifiwlanAPwlanTruewlanwlanSmallCabbage1WHILETRUEEQ0wlan0.0.0.0ms1000TRUEss0.0.0.080s192.168.0.180s5ss1024sbMixlyresponses1024sbMixlyresponse127.0.0.180sntp.aliyun.com \ No newline at end of file +02000attachInterrupt_funcattachInterrupt_func10,1,2,3051iDIVIDE10Exception as eetestThreadtestThreadWHILETRUEHello Mixly from Thread!ms10timtim1000tim_callbacktim_callback5000200090x151100a10.998124.829971100101010001100501100110000x2x0,1,2,30,1,2,30,1,2,3xMixlyHelloMixly65axMixlyMixly0Mixly02MixlyMixlyHello,mixlyl--mylistHello,mixlymixlymixpyI love mixly!I love mixlyRandom No. is {}int1100input('1+2*3')mylist1,2,3,4,5mylist0mylist02mylistmylistmylist0mylist00mylist00mylist0mylist0mylist0mylistmylistmylistx0,1,2,30,1,2,3mytup1,2,3,4,5mytup0mytup02mytupmytupmytupmytup0mytupmytup1mytup2xmydictmydictkeymydictkey0mydictkey0mydictkeymydictkeymydictkey0mydictmydictmydictmydictxmydict{"name":"Mixly","color":"green"}s11,2,3,4,5s1s1s1s2s1s2s10s1Mixlys1s2xMixlyMixlyMixly,HelloMixlyprompt02MixlyMixly0XFF00FFcodebMixlyMixly1attachInterrupt_funcattachInterrupt_funcrfid00Mixly0Mixly2022711420452023,1,1,12,0,0180291001001004401000/sd/1.wav5/sd/1.wavhttps://gitee.com/dahanzimin/test/raw/master/wav/8.wav000000000010001000001#ffffff255,255,0Mixly0Mixly0010#ffffff255,255,0MixlyMixly0550#ffffff255,255,0MixlyMixly5500#ffffff255,255,00020#ffffff255,255,0005050#ffffff255,255,020202015#ffffff255,255,0606040#ffffff255,255,010000#ffffff255,255,00.5#ffffff255,255,0new_clock16012040#ffffff255,255,0new_clock806440#ffffff255,255,0new_clocknew_clock8200new_clocknew_clock0x0000000,0,0wifinamewifipassword8080AUTH TOKEN0_value02000notify0Your Target Emailsubjectbodycolor#FF0000wifinamewifipasswordmixio.mixly.cnmixio.mixly.cnA1B2C3mixio.mixly.cnusernamepasswordMyProjecttopicmsgtopicmethodmethodEQmsg1content"long""lat""message"012content"key1""key2""key3"012http://mixio.mixly.cn/time.phpmixio.mixly.cnwifinamewifipasswordcsub_cb31444082183.230.40.3914109261n63JySRowo13ZLDBKw6y896E0=MixlyRobotsub_cbEQmsg1ciot_dict"tc"tc0ciot_dictccwifinamewifipasswordclientEnter Your API_KEYEnter Your SECRET_KEYclient1clientS72099北京今天天气如何?wifinamewifipasswordSfsxo7MfAaNO1U_Pq北京Sfsxo7MfAaNO1U_Pq北京1Sfsxo7MfAaNO1U_Pq北京24ble_cble_pMixlyble_cble_cMixlyble_cble_xble_xble_xMixlyble_xble_xble_methodble_methodEQdataMixlyhandlehandle_methodhandle_methodkey1key2key3keyx1620000211000009000,4500,563,5630x1234callbackcmdaddrrawpulsesi2c2221100000i2c00i2c00i2ci2ci2cspi200000045spi200000buf50spi10spi100xffspibufspibuf0xffspi12345spi12345buf1Mixlyow12owowow12345ow12345owmy_now0my_nowmy_nowmy_nowFFFFFFFFFFFFmixlymy_nowmy_nowcbcbEQmsg1spi10000004512spi8my_lora433.925716my_loramy_loramy_loraMixlyi2c_extend45100000xsensori2c_extendxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorspi10000004512spi8ysensorysensor0ysensor0ysensor0Mixlyysensor0Mixlyysensorysensorysensor39,119.96,31.67ysensorysensorstation45ps2_handle24512ps2_handle50ps2_handleps2_handlews_wr123ws_wrws_wrws_wr360010zsensorzsensorzsensorzsensormidi0midi440midi4401000midimidimidi4120midimidirgb04rgb0000rgb000rgb100100i2c_extend45400000Motori2c_extendMotor100Motor1024102402ttsttsttsttstts你好米思齐100100i2c_extend45400000matrixi2c_extendmatrixmatrixmatrixMixly0matrixMixlymatrixMixly500matrixMixlymatrixMixly500matrixmatrix>matrixmatrix1matrixmatrixmatrix0.5matrixmatrixi2c_extend45100000dispi2c_extenddisp2333dispdisp1i2c_extend45100000lcdi2c_extend0x27lcdMixly00lcdMixly005lcdlcdi2c_extend45100000oledi2c_extend0x3coledoled001oledMixlyoledMixly0010oledMixlyoledMixly0550oledMixlyoledMixly5500oled0020oled005050oled20202015oled1oled00oled00oledspi10000001246spi45tft_st7789135240tft_st7789001#ffffff255,255,0tft_st7789Mixly0050#ffffff255,255,0tft_st7789Mixly0550#ffffff255,255,0tft_st7789Mixly5500#ffffff255,255,0tft_st7789004040#ffffff255,255,0tft_st778912ai_sensorai_sensor98ai_sensor255,255,00,0,255ai_sensor'ni-hao','hong-se','lv-se','lan-se','bai-se','hei-se'0.1ai_sensor1.wav5ai_sensor1.wav100ai_sensorinfoai_sensorqrcodeinfoai_sensorbarcodeinfoai_sensortaginfoai_sensor25002525lineinfoai_sensor35002100circleinfoai_sensor10000rectinfoai_sensorinfoinfoai_sensorcolor_lab101colorsai_sensor'猫','狗','笔记本','笔'mixgo5自模型训练infoai_sensor'猫','狗','笔记本','笔'mixgo自模型识别objectsinfoai_sensor0.1606, 0.3562, 0.4712, 0.9568, 0.9877, 1.9108, 1.8761, 3.5310, 3.4423, 5.6823/sd/masks.kmodel外部模型加载objects12ai_sensorai_sensor98ai_sensor255,255,00,0,255ai_sensor1.wav5ai_sensor1.wav100infoai_sensorlicensePlateinfoai_sensorfaceinfoai_sensor20objectsai_sensorinfoai_sensorqrcodeinfoai_sensorbarcodeinfoai_sensortaginfoai_sensor25002525lineinfoai_sensor35002100circleinfoai_sensor10000rectinfoai_sensorinfoinfoai_sensorcolor_lab101colorsspi46sdsd/sdfilename.txtfMixlyfff0fffpathpathfilename.txtsrcname.txtdstname.txtpathff0wifinamewifipasswordwlanwlanwlanwlanwlan127.16.0.801234567wlanwlanwlanwlanwlan127.16.0.81connect_wifiwlanAPwlanTruewlanwlanSmallCabbage1WHILETRUEEQ0wlan0.0.0.0ms1000TRUEss0.0.0.080s192.168.0.180s5ss1024sbMixlyresponses1024sbMixlyresponse127.0.0.180sntp.aliyun.com \ No newline at end of file diff --git a/boards/default/micropython_esp32s3/main.bundle.js b/boards/default/micropython_esp32s3/main.bundle.js index fc0fd19e..3d2475b3 100644 --- a/boards/default/micropython_esp32s3/main.bundle.js +++ b/boards/default/micropython_esp32s3/main.bundle.js @@ -18,4 +18,4 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -class Et{constructor(t,e){if(this.variablePrefix_=e||"",this.reservedDict_=Object.create(null),t)for(var i=t.split(","),n=0;n0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?i[s]=e.getInputTargetBlock("IF"+s).previousConnection:i[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?n[s]=e.getInputTargetBlock("DO"+s).previousConnection:n[s]=null,this.removeInput("DO"+s);this.elseifCount_=parseInt(t.getAttribute("elseif"),10),this.elseCount_=parseInt(t.getAttribute("else"),10);for(s=1;s<=this.elseifCount_;s++)this.appendValueInput("IF"+s).setCheck([Boolean,Number]).appendField(ht.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+s).appendField(ht.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(ht.Msg.CONTROLS_IF_MSG_ELSE);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"IF"+s);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_if_if");e.initSvg();for(var i=e.getInput("STACK").connection,n=1;n<=this.elseifCount_;n++){var s=t.newBlock("controls_if_elseif");s.initSvg(),i.connect(s.previousConnection),i=s.nextConnection}if(this.elseCount_){var o=t.newBlock("controls_if_else");o.initSvg(),i.connect(o.previousConnection)}return e},compose:function(t){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var e=this.elseifCount_;e>0;e--)this.removeInput("IF"+e),this.removeInput("DO"+e);this.elseifCount_=0;for(var i=t.getInputTargetBlock("STACK"),n=[null],s=[null],o=null;i;){switch(i.type){case"controls_if_elseif":this.elseifCount_++,n.push(i.valueConnection_),s.push(i.statementConnection_);break;case"controls_if_else":this.elseCount_++,o=i.statementConnection_;break;default:throw Error("Unknown block type: "+i.type)}i=i.nextConnection&&i.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(n,s,o)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),i=1;e;){switch(e.type){case"controls_if_elseif":var n=this.getInput("IF"+i),s=this.getInput("DO"+i);e.valueConnection_=n&&n.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,i++;break;case"controls_if_else":s=this.getInput("ELSE");e.statementConnection_=s&&s.connection.targetConnection;break;default:throw"Unknown block type."}e=e.nextConnection&&e.nextConnection.targetBlock()}},rebuildShape_:function(){var t=[null],e=[null],i=null;this.getInput("ELSE")&&(i=this.getInput("ELSE").connection.targetConnection);for(var n=1;this.getInput("IF"+n);){var s=this.getInput("IF"+n),o=this.getInput("DO"+n);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(o.connection.targetConnection),n++}this.updateShape_(),this.reconnectChildBlocks_(t,e,i)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var t=1;this.getInput("IF"+t);)this.removeInput("IF"+t),this.removeInput("DO"+t),t++;for(t=1;t<=this.elseifCount_;t++)this.appendValueInput("IF"+t).setCheck([Number,Boolean]).appendField(ht.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+t).appendField(ht.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(ht.Msg.CONTROLS_IF_MSG_ELSE)},reconnectChildBlocks_:function(t,e,i){for(var n=1;n<=this.elseifCount_;n++)t[n]&&t[n].reconnect(this,"IF"+n),e[n]&&e[n].reconnect(this,"DO"+n);i&&i.reconnect(this,"ELSE")}},xt={init:function(){this.setColour(Dt),this.appendValueInput("FROM").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.PYTHON_RANGE).appendField(ht.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.PYTHON_RANGE_STEP),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(ht.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},Xt={init:function(){this.setColour(Dt),this.appendValueInput("LIST").setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.CONTROLS_FOREACH_INPUT),this.appendValueInput("VAR").appendField(ht.Msg.CONTROLS_FOREACH_INPUT_ITEM),this.appendStatementInput("DO").appendField(ht.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip((function(){return ht.Msg.CONTROLS_FOR_TOOLTIP.replace("“%1”","")}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ht.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},bt={init:function(){this.setColour(Dt),this.appendValueInput("BOOL").setCheck([Boolean,Number]).appendField(ht.Msg.MIXLY_MICROBIT_JS_CURRENT).appendField(new ht.FieldDropdown(this.OPERATORS),"MODE"),this.appendStatementInput("DO").appendField(ht.Msg.LANG_CONTROLS_WHILEUNTIL_TITLE_REPEAT+ht.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return{WHILE:ht.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_WHILE,UNTIL:ht.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL}[e]}))}},Vt={init:function(){this.setColour(Dt),this.appendDummyInput().appendField(ht.Msg.MIXLY_PYTHON_TRY),this.appendStatementInput("try"),this.appendValueInput("IF1").appendField(ht.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO1").appendField(""),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new ht.icons.MutatorIcon(["controls_except","controls_finally"],this)),this.setTooltip(ht.Msg.MIXLY_MIXPY_CONTROL_TRY_TOOLTIP),this.elseifCount_=1,this.elseCount_=0},mutationToDom:function(){if(!this.elseifCount_&&!this.elseCount_)return null;var t=document.createElement("mutation");return this.elseifCount_&&t.setAttribute("elseif",this.elseifCount_),this.elseCount_&&t.setAttribute("else",1),t},domToMutation:function(t){var e=this,i=[],n=[];this.elseCount_&&this.removeInput("ELSE");for(var s=this.elseifCount_;s>0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?i[s]=e.getInputTargetBlock("IF"+s).previousConnection:i[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?n[s]=e.getInputTargetBlock("DO"+s).previousConnection:n[s]=null,this.removeInput("DO"+s);this.elseifCount_=parseInt(t.getAttribute("elseif"),10),this.elseCount_=parseInt(t.getAttribute("else"),10);for(s=1;s<=this.elseifCount_;s++)this.appendValueInput("IF"+s).setCheck([Boolean,Number]).appendField(ht.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+s).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(ht.Msg.MIXLY_PYTHON_FINALLY);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"IF"+s);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_try");e.initSvg();for(var i=e.getInput("STACK").connection,n=1;n<=this.elseifCount_;n++){var s=t.newBlock("controls_except");s.initSvg(),i.connect(s.previousConnection),i=s.nextConnection}if(this.elseCount_){var o=t.newBlock("controls_finally");o.initSvg(),i.connect(o.previousConnection)}return e},compose:function(t){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var e=this.elseifCount_;e>0;e--)this.removeInput("IF"+e),this.removeInput("DO"+e);this.elseifCount_=0;for(var i=t.getInputTargetBlock("STACK"),n=[null],s=[null],o=null;i;){switch(i.type){case"controls_except":this.elseifCount_++,n.push(i.valueConnection_),s.push(i.statementConnection_);break;case"controls_finally":this.elseCount_++,o=i.statementConnection_;break;default:throw Error("Unknown block type: "+i.type)}i=i.nextConnection&&i.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(n,s,o)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),i=1;e;){switch(e.type){case"controls_except":var n=this.getInput("IF"+i),s=this.getInput("DO"+i);e.valueConnection_=n&&n.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,i++;break;case"controls_finally":s=this.getInput("ELSE");e.statementConnection_=s&&s.connection.targetConnection;break;default:throw"Unknown block type."}e=e.nextConnection&&e.nextConnection.targetBlock()}},rebuildShape_:function(){var t=[null],e=[null],i=null;this.getInput("ELSE")&&(i=this.getInput("ELSE").connection.targetConnection);for(var n=1;this.getInput("IF"+n);){var s=this.getInput("IF"+n),o=this.getInput("DO"+n);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(o.connection.targetConnection),n++}this.updateShape_(),this.reconnectChildBlocks_(t,e,i)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var t=1;this.getInput("IF"+t);)this.removeInput("IF"+t),this.removeInput("DO"+t),t++;for(t=1;t<=this.elseifCount_;t++)this.appendValueInput("IF"+t).setCheck([Number,Boolean]).appendField(ht.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+t).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(ht.Msg.MIXLY_PYTHON_FINALLY)},reconnectChildBlocks_:function(t,e,i){for(var n=1;n<=this.elseifCount_;n++)t[n]&&t[n].reconnect(this,"IF"+n),e[n]&&e[n].reconnect(this,"DO"+n);i&&i.reconnect(this,"ELSE")}},yt={init:function(){this.setColour(Dt);var t=new ht.FieldDropdown(this.OPERATORS);this.appendDummyInput().appendField(t,"FLOW").appendField(ht.Msg.LANG_CONTROLS_FLOW_STATEMENTS_INPUT_OFLOOP),this.setPreviousStatement(!0),this.setTooltip(ht.Msg.MIXLY_PYTHON_CONTROLS_FLOW_STATEMENTS_TOOLTIP);var e=this;this.setTooltip((function(){var t=e.getFieldValue("FLOW");return{BREAK:ht.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK,CONTINUE:ht.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE}[t]}))},onchange:function(){if(this.workspace){var t=!1,e=this;do{if("controls_repeat"==e.type||"controls_for"==e.type||"controls_forEach"==e.type||"controls_repeat_ext"==e.type||"controls_whileUntil"==e.type||"do_while"==e.type){t=!0;break}e=e.getSurroundParent()}while(e);t?this.setWarningText(null):this.setWarningText(ht.Msg.LANG_CONTROLS_FLOW_STATEMENTS_WARNING)}}},Bt={init:function(){this.setColour(Dt),this.appendDummyInput().appendField(ht.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new ht.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(ht.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return ht.Msg.CONTROLS_FOR_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ht.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Gt={init:function(){this.setColour(Dt),this.appendDummyInput().appendField(ht.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new ht.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(ht.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return ht.Msg.MIXLY_PYTHON_CONTROLS_FOR_RANGE_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ht.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}};bt.OPERATORS=[[ht.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"WHILE"],[ht.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"UNTIL"]],yt.OPERATORS=[[ht.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK,"BREAK"],[ht.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE,"CONTINUE"]];const Ut={init:function(){this.setColour(Dt),this.appendDummyInput().appendField(ht.Msg.CONTROLS_IF_IF_TITLE_IF),this.appendStatementInput("STACK"),this.setTooltip(ht.Msg.CONTROLS_IF_IF_TOOLTIP),this.contextMenu=!1}},wt={init:function(){this.setColour(Dt),this.appendDummyInput().appendField(ht.Msg.CONTROLS_IF_ELSEIF_TITLE_ELSEIF),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ht.Msg.CONTROLS_IF_ELSEIF_TOOLTIP),this.contextMenu=!1}},kt={init:function(){this.setColour(Dt),this.appendDummyInput().appendField(ht.Msg.CONTROLS_IF_ELSE_TITLE_ELSE),this.setPreviousStatement(!0),this.setTooltip(ht.Msg.CONTROLS_IF_ELSE_TOOLTIP),this.contextMenu=!1}},Ht={init:function(){this.setColour(Dt),this.appendDummyInput().appendField("try"),this.appendStatementInput("STACK"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.contextMenu=!1}},Wt={init:function(){this.setColour(Dt),this.appendDummyInput().appendField(ht.Msg.MIXLY_PYTHON_EXCEPT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.contextMenu=!1,this.setTooltip(ht.Msg.MIXLY_MIXPY_CONTROL_EXCEPT_TOOLTIP)}},Kt={init:function(){this.setColour(Dt),this.appendDummyInput().appendField(ht.Msg.MIXLY_PYTHON_FINALLY),this.setPreviousStatement(!0),this.contextMenu=!1,this.setTooltip(ht.Msg.MIXLY_MIXPY_CONTROL_FINALLY_TOOLTIP)}},Jt={init:function(){this.jsonInit({message0:ht.Msg.CONTROLS_REPEAT_TITLE,args0:[{type:"input_value",name:"TIMES"}],previousStatement:null,nextStatement:null,colour:Dt,tooltip:ht.Msg.CONTROLS_REPEAT_TOOLTIP,helpUrl:ht.Msg.CONTROLS_REPEAT_HELPURL}),this.appendStatementInput("DO")}},Qt={init:function(){this.setColour(Dt),this.appendValueInput("BOOL").appendField("lambda"),this.appendStatementInput("DO").appendField(ht.Msg.MIXLY_STAT),this.setOutput(!0)}},zt={init:function(){this.setColour(Dt),this.appendDummyInput().appendField(ht.Msg.MIXLY_PYTHON_PASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ht.Msg.MIXLY_PYTHON_CONTROLS_PASS_TOOLTIP)}},qt={init:function(){this.setColour(Dt),this.appendDummyInput().appendField(ht.Msg.MIXLY_PYTHON_CONTROLS_THREAD_START),this.appendValueInput("callback").appendField(ht.Msg.MIXLY_PYTHON_CONTROLS_THREAD_USE),this.appendValueInput("VAR").appendField(ht.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_PYTHON_CONTROLS_THREAD_TOOLTIP)}},jt={init:function(){this.appendDummyInput().appendField(ht.Msg.CONTROLS_REPEAT_TITLE_REPEAT+ht.Msg.MIXLY_DO),this.appendStatementInput("input_data").setCheck(null),this.appendValueInput("select_data").setCheck(null).appendField(ht.Msg.CONTROLS_OPERATOR_UNTIL).appendField(new ht.FieldDropdown([[ht.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"true"],[ht.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"false"]]),"type"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Dt),this.setTooltip("do-while loop"),this.setHelpUrl("")}},Zt={init:function(){this.setColour(Dt),this.appendDummyInput().appendField(ht.Msg.MIXLY_OP_GARBAGE_COLLECT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},$t={init:function(){this.setColour(Dt),this.appendDummyInput().appendField(ht.Msg.MIXLY_GET_MEM_ALLOC),this.setOutput(!0)}},te={init:function(){this.setColour(Dt),this.appendDummyInput().appendField(ht.Msg.MIXLY_GET_MEM_FREE),this.setOutput(!0)}},ee=230;ht.FieldTextInput.math_number_validator=function(t){return String(t)},ht.FieldTextInput.math_number_validator_include_blank=function(t){if(""===t)return"";return/^-?(0X|0x|0O|0o|0B|0b)?[a-fA-F0-9]{1,}(\.[a-fA-F0-9]+)?$/.test(t)?String(t):null};const ie={init:function(){this.setColour(ee),this.appendDummyInput().appendField(new ht.FieldTextInput("0",ht.FieldTextInput.math_number_validator),"NUM"),this.setOutput(!0,Number),this.setTooltip(ht.Msg.MATH_NUMBER_TOOLTIP)}},ne={init:function(){this.setColour(ee);this.appendDummyInput("").appendField(ht.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new ht.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:ht.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_TOOLTIP,e:ht.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_TOOLTIP}[e]}))}},se={init:function(){this.setColour(ee);this.appendDummyInput("").appendField(ht.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new ht.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:ht.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_MP_TOOLTIP,e:ht.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_MP_TOOLTIP}[e]}))}},oe={init:function(){this.setColour(ee),this.setOutput(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new ht.FieldDropdown([["+","ADD"],["-","MINUS"],["×","MULTIPLY"],["÷","DIVIDE"],["%","QUYU"],["//","ZHENGCHU"],["**","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:ht.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:ht.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:ht.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:ht.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:ht.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:ht.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:ht.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},_e={init:function(){this.setColour(ee),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new ht.FieldDropdown([["+=","ADD"],["-=","MINUS"],["×=","MULTIPLY"],["÷=","DIVIDE"],["%=","QUYU"],["//=","ZHENGCHU"],["**=","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:ht.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:ht.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:ht.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:ht.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:ht.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:ht.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:ht.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},pe={init:function(){this.setColour(ee),this.setOutput(!0,Number),this.appendValueInput("A").setCheck(Number),this.appendValueInput("B").setCheck(Number).appendField(new ht.FieldDropdown([["&","&"],["|","|"],[">>",">>"],["<<","<<"]]),"OP"),this.setInputsInline(!0),this.setTooltip("位运算")}},ae={init:function(){this.setColour(ee),this.setOutput(!0,Number),this.appendValueInput("NUM").setCheck(Number).appendField(new ht.FieldDropdown([["sin","SIN"],["cos","COS"],["tan","TAN"],["asin","ASIN"],["acos","ACOS"],["atan","ATAN"],["-","-"],["ln","LN"],["log10","LOG10"],["e^","EXP"],["10^","POW10"]]),"OP");var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{SIN:ht.Msg.MATH_TRIG_TOOLTIP_SIN,COS:ht.Msg.MATH_TRIG_TOOLTIP_COS,TAN:ht.Msg.MATH_TRIG_TOOLTIP_TAN,ASIN:ht.Msg.MATH_TRIG_TOOLTIP_ASIN,ACOS:ht.Msg.MATH_TRIG_TOOLTIP_ACOS,ATAN:ht.Msg.MATH_TRIG_TOOLTIP_ATAN,LN:ht.Msg.MATH_SINGLE_TOOLTIP_LN}[e]}))}},ue={init:function(){var t=[[ht.Msg.MATH_BIN,"bin"],[ht.Msg.MATH_OCT,"oct"],[ht.Msg.MATH_HEX,"hex"]];this.setColour(ee),this.setOutput(!0,String),this.appendValueInput("NUM").setCheck(Number).appendField(new ht.FieldDropdown(t),"OP");var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{bin:ht.Msg.MATH_DEC_TOOLTIP_BIN,oct:ht.Msg.MATH_DEC_TOOLTIP_OCT,hex:ht.Msg.MATH_DEC_TOOLTIP_HEX}[t]}))}},re={init:function(){var t=[[ht.Msg.LANG_MATH_TO_ROUND,"round"],[ht.Msg.LANG_MATH_TO_CEIL,"ceil"],[ht.Msg.LANG_MATH_TO_FLOOR,"floor"],[ht.Msg.MATH_ABS,"fabs"],[ht.Msg.MATH_SQRT,"sqrt"]];this.setColour(ee),this.appendValueInput("A").setCheck(Number).appendField(new ht.FieldDropdown(t),"OP"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{sqrt:ht.Msg.MATH_SINGLE_TOOLTIP_ROOT,fabs:ht.Msg.MATH_SINGLE_TOOLTIP_ABS,sq:ht.Msg.MATH_SINGLE_TOOLTIP_SQ,round:ht.Msg.MATH_SINGLE_TOOLTIP_ROUND,ceil:ht.Msg.MATH_SINGLE_TOOLTIP_CEIL,floor:ht.Msg.MATH_SINGLE_TOOLTIP_FLOOR}[t]}))}},le={init:function(){var t=[[ht.Msg.MIXLY_MAX,"max"],[ht.Msg.MIXLY_MIN,"min"]];this.setColour(ee),this.appendValueInput("A").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(new ht.FieldDropdown(t),"OP").appendField("("),this.appendValueInput("B").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(","),this.appendDummyInput("").setAlign(ht.inputs.Align.RIGHT).appendField(")"),this.setInputsInline(!0),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{max:ht.Msg.MIXLY_TOOLTIP_MATH_MAX,min:ht.Msg.MIXLY_TOOLTIP_MATH_MIN}[t]}))}},de={init:function(){var t=[[ht.Msg.MATH_TWO,"two"],[ht.Msg.MATH_EIGHT,"eight"],[ht.Msg.MATH_TEN,"ten"],[ht.Msg.MATH_SIXTEEN,"sixteen"]];this.setColour(ee),this.appendDummyInput("").appendField(ht.Msg.MATH_BA),this.appendValueInput("NUM").appendField(new ht.FieldDropdown(t),"OP").appendField(ht.Msg.MATH_JinZhi).setCheck(Number),this.appendDummyInput("").appendField(ht.Msg.MATH_ZHW).appendField(new ht.FieldDropdown(t),"OP2").appendField(ht.Msg.MATH_JinZhi),this.setFieldValue("ten","OP2"),this.setOutput(!0),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP"),i={two:ht.Msg.MATH_Before_two,eight:ht.Msg.MATH_Before_eight,ten:ht.Msg.MATH_Before_ten,sixteen:ht.Msg.MATH_Before_sixteen},n=e.getFieldValue("OP2"),s={two:ht.Msg.MATH_Behind_two,eight:ht.Msg.MATH_Behind_eight,ten:ht.Msg.MATH_Behind_ten,sixteen:ht.Msg.MATH_Behind_sixteen};return i[t]+s[n]}))}},Ie={init:function(){var t=[[ht.Msg.LANG_MATH_INT,"int"],[ht.Msg.LANG_MATH_FLOAT,"float"]];this.setColour(ee),this.setOutput(!0,Number),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_RANDOM).appendField(new ht.FieldDropdown(t),"TYPE"),this.appendValueInput("FROM").setCheck(Number).appendField(ht.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.LANG_MATH_RANDOM_INT_INPUT_TO),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TYPE"),i={int:ht.Msg.LANG_MATH_INT,float:ht.Msg.LANG_MATH_FLOAT_RANDOM};return ht.Msg.MATH_RANDOM_INT_TOOLTIP+i[t]}))}},Te={init:function(){this.setColour(ee),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number).appendField(ht.Msg.LANG_MATH_CONSTRAIN_INPUT_CONSTRAIN),this.appendValueInput("LOW").setCheck(Number).appendField(ht.Msg.LANG_MATH_CONSTRAIN_INPUT_LOW),this.appendValueInput("HIGH").setCheck(Number).appendField(ht.Msg.LANG_MATH_CONSTRAIN_INPUT_HIGH),this.setInputsInline(!0),this.setTooltip(ht.Msg.MATH_CONSTRAIN_TOOLTIP)}},he={init:function(){this.setColour(ee),this.appendValueInput("NUM",Number).appendField(ht.Msg.MIXLY_MAP).setCheck(Number),this.appendValueInput("fromLow",Number).appendField(ht.Msg.MIXLY_MAP_FROM).setCheck(Number),this.appendValueInput("fromHigh",Number).appendField(",").setCheck(Number),this.appendValueInput("toLow",Number).appendField(ht.Msg.MIXLY_MAP_TO).setCheck(Number),this.appendValueInput("toHigh",Number).appendField(",").setCheck(Number),this.appendDummyInput("").appendField("]"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(ht.Msg.MIXLY_TOOLTIP_MATH_MAP)}},Me={init:function(){this.setColour(ee),this.appendDummyInput().appendField(new ht.FieldTextInput("0",ht.FieldTextInput.math_number_validator_include_blank),"NUM"),this.setOutput(!0),this.setTooltip(ht.Msg.MATH_NUMBER_TOOLTIP)}},me={init:function(){this.setColour(ee),this.appendValueInput("NUM").setCheck(Number).appendField(ht.Msg.LANG_MATH_RANDOM_SEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ht.Msg.MIXLY_TOOLTIP_MATH_RANDOM_SEED)}},Oe={init:function(){this.setColour(ee),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number),this.appendValueInput("VAR").setCheck(Number).appendField(ht.Msg.MATH_ROUND).appendField(ht.Msg.TEXT_KEEP),this.appendDummyInput().appendField(ht.Msg.TEXT_DECIMAL),this.setInputsInline(!0),this.setTooltip(ht.Msg.MATH_ROUND_NEW_TOOLTIP)}},Ee={init:function(){var t=[[ht.Msg.MIXLY_TO_INT,"int"],[ht.Msg.MIXLY_TO_FLOAT,"float"],[ht.Msg.MIXLY_TO_BITES,"b"]];this.setColour(ee),this.appendValueInput("VAR").appendField(new ht.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:ht.Msg.MIXLY_PYTHON_TOOLTIP_TOINT,float:ht.Msg.MIXLY_PYTHON_TOOLTIP_TOFLOAT,b:ht.Msg.MIXLY_TOOLTIP_TEXT_TOBYTE}[t]}))}},Re={init:function(){var t=[[ht.Msg.MIXLY_TO_INT,"int"],[ht.Msg.MIXLY_TO_FLOAT,"float"]];this.setColour(ee),this.appendValueInput("VAR").appendField(new ht.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:ht.Msg.MIXLY_TOOLTIP_TEXT_TOINT,float:ht.Msg.MIXLY_TOOLTIP_TEXT_TOFLOAT}[t]}))}},ce=he,ge=160,Ce={init:function(){this.setColour(ge),this.appendDummyInput().appendField(this.newQuote_(!0)).appendField(new ht.FieldTextInput(""),"TEXT").appendField(this.newQuote_(!1)),this.setOutput(!0,String),this.setTooltip(ht.Msg.TEXT_TEXT_TOOLTIP)},newQuote_:function(t){if(t==this.RTL)var e="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAKCAQAAAAqJXdxAAAAqUlEQVQI1z3KvUpCcRiA8ef9E4JNHhI0aFEacm1o0BsI0Slx8wa8gLauoDnoBhq7DcfWhggONDmJJgqCPA7neJ7p934EOOKOnM8Q7PDElo/4x4lFb2DmuUjcUzS3URnGib9qaPNbuXvBO3sGPHJDRG6fGVdMSeWDP2q99FQdFrz26Gu5Tq7dFMzUvbXy8KXeAj57cOklgA+u1B5AoslLtGIHQMaCVnwDnADZIFIrXsoXrgAAAABJRU5ErkJggg==";else e="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAKCAQAAAAqJXdxAAAAn0lEQVQI1z3OMa5BURSF4f/cQhAKjUQhuQmFNwGJEUi0RKN5rU7FHKhpjEH3TEMtkdBSCY1EIv8r7nFX9e29V7EBAOvu7RPjwmWGH/VuF8CyN9/OAdvqIXYLvtRaNjx9mMTDyo+NjAN1HNcl9ZQ5oQMM3dgDUqDo1l8DzvwmtZN7mnD+PkmLa+4mhrxVA9fRowBWmVBhFy5gYEjKMfz9AylsaRRgGzvZAAAAAElFTkSuQmCC";return new ht.FieldImage(e,12,12,'"')}},Se={init:function(){this.setColour(ge),this.appendDummyInput().appendField(this.newQuote_(!0)).appendField(new ht.FieldMultilineInput("Hello\nMixly"),"VALUE").appendField(this.newQuote_(!1)),this.setOutput(!0,String),this.setTooltip(ht.Msg.TEXT_LINES_TOOLTIP)},newQuote_:function(t){if(t==this.RTL)var e="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAKCAQAAAAqJXdxAAAAqUlEQVQI1z3KvUpCcRiA8ef9E4JNHhI0aFEacm1o0BsI0Slx8wa8gLauoDnoBhq7DcfWhggONDmJJgqCPA7neJ7p934EOOKOnM8Q7PDElo/4x4lFb2DmuUjcUzS3URnGib9qaPNbuXvBO3sGPHJDRG6fGVdMSeWDP2q99FQdFrz26Gu5Tq7dFMzUvbXy8KXeAj57cOklgA+u1B5AoslLtGIHQMaCVnwDnADZIFIrXsoXrgAAAABJRU5ErkJggg==";else e="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAKCAQAAAAqJXdxAAAAn0lEQVQI1z3OMa5BURSF4f/cQhAKjUQhuQmFNwGJEUi0RKN5rU7FHKhpjEH3TEMtkdBSCY1EIv8r7nFX9e29V7EBAOvu7RPjwmWGH/VuF8CyN9/OAdvqIXYLvtRaNjx9mMTDyo+NjAN1HNcl9ZQ5oQMM3dgDUqDo1l8DzvwmtZN7mnD+PkmLa+4mhrxVA9fRowBWmVBhFy5gYEjKMfz9AylsaRRgGzvZAAAAAElFTkSuQmCC";return new ht.FieldImage(e,12,12,'"')}};ht.FieldTextInput.char_validator=function(t){if(t.length>1&&"\\"===t.charAt(0)){var e=t.charAt(1);if("0"===e||"b"===e||"f"===e||"n"===e||"r"===e||"t"===e||"\\"===e||"'"===e)return String(t).substring(0,2);if("x"===e&&"0"===t.charAt(2)&&"B"===t.charAt(3))return String(t).substring(0,4)}return String(t).substring(0,1)};const Ae={init:function(){this.setColour(ge),this.appendDummyInput().appendField(this.newQuote_(!0)).appendField(new ht.FieldTextInput("",ht.FieldTextInput.char_validator),"TEXT").appendField(this.newQuote_(!1)),this.setOutput(!0,Number),this.setTooltip(ht.Msg.TEXT_CHAR_TOOLTIP)},newQuote_:function(t){if(1==t)var e="../../media/quote2.png";else e="../../media/quote3.png";return new ht.FieldImage(e,7,12,'"')}},Le={init:function(){this.setColour(ge),this.appendValueInput("A").setCheck([String,Number]),this.appendValueInput("B").setCheck([String,Number]).appendField(ht.Msg.MIXLY_TEXT_JOIN),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(ht.Msg.MIXLY_TOOLTIP_TEXT_JOIN)}},Ne={init:function(){this.setColour(ge),this.appendValueInput("VAR").setCheck(Number).appendField(ht.Msg.MIXLY_TOCHAR),this.setOutput(!0,String),this.setTooltip(ht.Msg.MIXLY_TOOLTIP_TEXT_TOCHAR)}},De={init:function(){this.setColour(ge),this.appendValueInput("VAR").setCheck(String).appendField(ht.Msg.MIXLY_TOASCII),this.setOutput(!0,Number),this.setTooltip(ht.Msg.MIXLY_TOOLTIP_TEXT_TOASCII)}},fe={init:function(){this.setColour(ge),this.appendValueInput("VAR").appendField(ht.Msg.MIXLY_TOSTRING),this.setOutput(!0,String),this.setTooltip(ht.Msg.MIXLY_PYTHON_TOOLTIP_TOTEXT)}},Pe={init:function(){this.setColour(ge),this.appendValueInput("VAR").appendField(ht.Msg.MIXLY_LENGTH),this.setOutput(!0,Number),this.setTooltip(ht.Msg.MIXLY_TOOLTIP_TEXT_LENGTH)}},Fe={init:function(){this.WHERE_OPTIONS=[[ht.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[ht.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[ht.Msg.TEXT_GET_INDEX_RANDOM+1+ht.Msg.TEXT_CHARAT2,"RANDOM"]],this.setHelpUrl(ht.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(ge),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number),this.appendDummyInput().appendField(ht.Msg.LISTS_GET_INDEX_GET,"MODE"),ht.Msg.LISTS_GET_INDEX_TAIL&&this.appendDummyInput("TAIL").appendField(ht.Msg.LISTS_GET_INDEX_TAIL),this.setInputsInline(!0),this.setOutput(!0),this.updateAt_(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=t.getFieldValue("WHERE"),n="";switch(e+" "+i){case"GET FROM_START":case"GET FROM_END":n=ht.Msg.LISTS_GET_INDEX_TOOLTIP_GET_FROM;break;case"GET RANDOM":n=ht.Msg.LISTS_GET_INDEX_TOOLTIP_GET_RANDOM;break;case"GET_REMOVE FROM_START":case"GET_REMOVE FROM_END":n=ht.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM;break;case"GET_REMOVE RANDOM":n=ht.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM}return"FROM_START"!=i&&"FROM_END"!=i||(n+=" "+ht.Msg.LISTS_INDEX_FROM_START_TOOLTIP.replace("%1",ht.Msg.ONE_BASED_INDEXING?"#1":"#0")),n}));var e=this;this.setTooltip((function(){var t=e.getFieldValue("WHERE"),i={FROM_START:ht.Msg.LISTS_GET_INDEX_FROM_START,FROM_END:ht.Msg.LISTS_GET_INDEX_FROM_END,RANDOM:ht.Msg.TEXT_GET_INDEX_RANDOM};return ht.Msg.PROCEDURES_DEFRETURN_RETURN+ht.Msg.MIXLY_MICROBIT_TYPE_STRING+i[t]+"n"+ht.Msg.TEXT_CHARAT2}))},mutationToDom:function(){var t=document.createElement("mutation");t.setAttribute("statement",!this.outputConnection);var e=this.getInput("AT").type==ht.INPUT_VALUE;return t.setAttribute("at",e),t},domToMutation:function(t){var e="true"==t.getAttribute("statement");this.updateStatement_(e),t="false"!=t.getAttribute("at"),this.updateAt_(t)},updateStatement_:function(t){t!=!this.outputConnection&&(this.unplug(!0,!0),t?(this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)):(this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)))},updateAt_:function(t){this.removeInput("AT"),this.removeInput("ORDINAL",!0),t?(this.appendValueInput("AT").setCheck(Number),ht.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL").appendField(ht.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT");var e=new ht.FieldDropdown(this.WHERE_OPTIONS,(function(e){var i="FROM_START"==e||"FROM_END"==e;if(i!=t){var n=this.sourceBlock_;return n.updateAt_(i),n.setFieldValue(e,"WHERE"),null}}));this.getInput("AT").appendField(e,"WHERE"),ht.Msg.LISTS_GET_INDEX_TAIL&&this.moveInputBefore("TAIL",null)}},ve={init:function(){this.setHelpUrl(ht.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(ge),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number).appendField(ht.Msg.LISTS_GET_INDEX_GET+" "+ht.Msg.LISTS_GET_INDEX_FROM_START),this.appendDummyInput().appendField(ht.Msg.TEXT_CHARAT2),this.setOutput(!0),this.setTooltip(ht.Msg.PROCEDURES_DEFRETURN_RETURN+ht.Msg.MIXLY_MICROBIT_TYPE_STRING+ht.Msg.LISTS_GET_INDEX_FROM_START+"n"+ht.Msg.TEXT_CHARAT2)}},Ye={init:function(){this.setHelpUrl(ht.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(ge),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput().appendField(ht.Msg.TEXT_RANDOM_CHAR),this.setOutput(!0),this.setTooltip(ht.Msg.TEXT_RANDOM_CHAR_TOOLTIP)}},xe={init:function(){this.WHERE_OPTIONS_1=[[ht.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[ht.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[ht.Msg.LISTS_GET_SUBLIST_START_FIRST,"FIRST"]],this.WHERE_OPTIONS_2=[[ht.Msg.LISTS_GET_SUBLIST_END_FROM_START,"FROM_START"],[ht.Msg.LISTS_GET_SUBLIST_END_FROM_END,"FROM_END"],[ht.Msg.LISTS_GET_SUBLIST_END_LAST,"LAST"]],this.setHelpUrl(ht.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(ge),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput("").appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput("AT1"),this.appendDummyInput("AT2"),this.setInputsInline(!0),this.setOutput(!0,"List"),this.updateAt_(1,!0),this.updateAt_(2,!0),this.setTooltip(ht.Msg._GET_TEXT_SUBLIST_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT1").type==ht.INPUT_VALUE;t.setAttribute("at1",e);var i=this.getInput("AT2").type==ht.INPUT_VALUE;return t.setAttribute("at2",i),t},domToMutation:function(t){var e="true"==t.getAttribute("at1"),i="true"==t.getAttribute("at2");this.updateAt_(1,e),this.updateAt_(2,i)},updateAt_:function(t,e){this.removeInput("AT"+t),this.removeInput("ORDINAL"+t,!0),e?(this.appendValueInput("AT"+t).setCheck(Number),ht.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL"+t).appendField(ht.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT"+t);var i=new ht.FieldDropdown(this["WHERE_OPTIONS_"+t],(function(i){var n="FROM_START"==i||"FROM_END"==i;if(n!=e){var s=this.sourceBlock_;return s.updateAt_(t,n),s.setFieldValue(i,"WHERE"+t),null}}));this.getInput("AT"+t).appendField(i,"WHERE"+t),1==t&&(this.moveInputBefore("AT1","AT2"),this.getInput("ORDINAL1")&&this.moveInputBefore("ORDINAL1","AT2"))}},Xe={init:function(){this.setHelpUrl(ht.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(ge),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT1").appendField(ht.Msg.LISTS_GET_INDEX_GET+" "+ht.Msg.LISTS_GET_INDEX_FROM_START),this.appendValueInput("AT2").appendField(ht.Msg.LISTS_GET_SUBLIST_END_FROM_START),this.appendDummyInput().appendField(ht.Msg.TEXT_CHARAT2),this.setInputsInline(!0),this.setOutput(!0,["List",String]),this.setTooltip(ht.Msg._GET_TEXT_SUBLIST_TOOLTIP)}},be={init:function(){var t=[[ht.Msg.MIXLY_EQUALS,"==="],[ht.Msg.MIXLY_STARTSWITH,"startswith"],[ht.Msg.MIXLY_ENDSWITH,"endswith"]];this.setColour(ge),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(new ht.FieldDropdown(t),"DOWHAT").setCheck(String),this.setOutput(!0,[Boolean,Number]),this.setInputsInline(!0)}},Ve={init:function(){this.setColour(ge),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(ht.Msg.MIXLY_COMPARETO).setCheck(String),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_COMPARETO_HELP)}},ye={init:function(){var t=[[ht.Msg.TEXT_UPPER,"upper"],[ht.Msg.TEXT_TITLE,"title"],[ht.Msg.TEXT_CAPITALIZE,"capitalize"],[ht.Msg.TEXT_SWAPCASE,"swapcase"],[ht.Msg.TEXT_LOWER,"lower"]];this.setColour(ge),this.appendValueInput("VAR").appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new ht.FieldDropdown(t),"CAPITAL").setCheck(String),this.setOutput(!0,String);var e=this;this.setTooltip((function(){var t=e.getFieldValue("CAPITAL");return{upper:ht.Msg.MIXLY_MIXPY_TEXT_UPPER_TOOLTIP,title:ht.Msg.MIXLY_MIXPY_TEXT_TITLE_TOOLTIP,swapcase:ht.Msg.MIXLY_MIXPY_TEXT_SWAPCASE_TOOLTIP,capitalize:ht.Msg.MIXLY_MIXPY_TEXT_CAPITALIZE_TOOLTIP,lower:ht.Msg.MIXLY_MIXPY_TEXT_LOWER_TOOLTIP}[t]}))}},Be={init:function(){var t=[[ht.Msg.TEXT_LJUST,"ljust"],[ht.Msg.TEXT_CENTER,"center"],[ht.Msg.TEXT_RJUST,"rjust"]];this.setColour(ge),this.appendValueInput("VAR").appendField(new ht.FieldDropdown(t),"CENTER").setCheck(String),this.appendValueInput("WID").appendField(ht.Msg.MIXLY_WIDTH).setCheck(Number),this.appendValueInput("Symbol").appendField(ht.Msg.MIXLY_RECT_Fill).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(ht.Msg.MIXLY_MIXPY_TEXT_CENTER_TOOLTIP)}},Ge={init:function(){this.setColour(ge),this.appendValueInput("VAR").appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).setCheck(String),this.appendValueInput("STR").appendField(ht.Msg.MIXLY_MID+ht.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER).setCheck(String),this.appendDummyInput().appendField(ht.Msg.MIXLY_LIST_INDEX),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(ht.Msg.MIXLY_MIXPY_TEXT_FIND_TOOLTIP)}},Ue={init:function(){this.setColour(ge),this.appendValueInput("VAR").appendField(ht.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_USE_STR).setCheck(String),this.appendValueInput("LIST").appendField(ht.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_SEQ).setCheck("List","Tuple","Set","Dict"),this.appendDummyInput().appendField(ht.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_GET_STR),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(ht.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_TOOLTIP)}},we={init:function(){this.setColour(ge),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("STR1").appendField(ht.Msg.MIXLY_MIXPY_REPLACE).setCheck(String),this.appendValueInput("STR2").appendField(ht.Msg.LISTS_SET_INDEX_INPUT_TO).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(ht.Msg.MIXLY_MIXPY_TEXT_REPLACE_TOOLTIP)}},ke={init:function(){this.setColour(ge),this.appendValueInput("VAR"),this.appendValueInput("VAL").appendField(ht.Msg.LIST_SPLIT_AS),this.appendDummyInput("").appendField(ht.Msg.LIST_SPLIT),this.setOutput(!0,"List"),this.setTooltip(ht.Msg.MIXLY_MIXPY_TEXT_SPLIT_TOOLTIP),this.setInputsInline(!0)}},He={init:function(){var t=[[ht.Msg.TEXT_TRIM_BOTH,"strip"],[ht.Msg.TEXT_TRIM_LEFT,"lstrip"],[ht.Msg.TEXT_TRIM_RIGHT,"rstrip"]];this.setColour(ge),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(ht.Msg.TEXT_STRIM),this.appendDummyInput("").appendField(new ht.FieldDropdown(t),"TOWHAT"),this.appendDummyInput("").appendField(ht.Msg.TEXT_BLANK),this.setOutput(!0,String),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{strip:ht.Msg.TEXT_TRIM_BOTH_TOOLTIP,lstrip:ht.Msg.TEXT_TRIM_LEFT_TOOLTIP,rstrip:ht.Msg.TEXT_TRIM_RIGHT_TOOLTIP}[t]}))}},We={init:function(){this.setColour(ge),this.appendDummyInput("").appendField(ht.Msg.MIXLY_MICROPYTHON_FORMAT),this.appendDummyInput("").appendField(new ht.FieldTextInput("str"),"VAR"),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new ht.icons.MutatorIcon(["text_create_with_item"],this)),this.setOutput(!0),this.setTooltip(ht.Msg.MIXLY_MIXPY_TEXT_FORMAT_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("text_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ht.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Ui={init:function(){this.setColour(Bi),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(ht.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},wi={init:function(){this.setColour(Bi),this.appendDummyInput().appendField(ht.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ht.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},ki={init:function(){this.setColour(Bi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(ht.Msg.DICT_KEYS),this.setTooltip(ht.Msg.DICTS_KEYS_TOOLTIP),this.setOutput(!0,"List")}},Hi={init:function(){this.setColour(Bi),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(ht.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(ht.Msg.DICTS_ADD_VALUE),this.setOutput(!0),this.setTooltip(ht.Msg.DICTS_GET_TOOLTIP)}},Wi={init:function(){this.setColour(Bi),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(ht.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(ht.Msg.DICTS_ADD_VALUE),this.appendValueInput("VAR").appendField(ht.Msg.DICTS_DEFAULT_VALUE),this.setOutput(!0),this.setTooltip(ht.Msg.DICTS_GET_DEFAULT_TOOLTIP)}},Ki={init:function(){this.setColour(Bi),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(ht.Msg.DICTS_ADD),this.appendDummyInput(),this.appendValueInput("VAR").appendField(ht.Msg.DICTS_ADD_VALUE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ht.Msg.DICTS_ADD_OR_CHANGE_TOOLTIP)}},Ji={init:function(){this.setColour(Bi),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(ht.Msg.DICTS_DELETE_IN),this.appendDummyInput("").appendField(ht.Msg.DICTS_DELETE_VALUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ht.Msg.DICTS_DELETE_TOOLTIP)}},Qi={init:function(){this.setColour(Bi),this.appendValueInput("DICT2").setCheck("Dict").appendField(ht.Msg.MAKE_DICT),this.appendValueInput("DICT").setCheck("Dict").appendField(ht.Msg.DICT_UPDATE),this.appendDummyInput("").appendField(ht.Msg.MIXLY_MID),this.setTooltip(ht.Msg.DICTS_UPDATE_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},zi={init:function(){this.setColour(Bi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(ht.Msg.DICT_CLEAR),this.setTooltip(ht.Msg.DICTS_CLEAR_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},qi={init:function(){this.setColour(Bi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(ht.Msg.DICT_ITEMS),this.setTooltip(ht.Msg.DICTS_ITEMS_TOOLTIP),this.setOutput(!0,"List")}},ji={init:function(){this.setColour(Bi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(ht.Msg.DICT_VALUES),this.setTooltip(ht.Msg.DICTS_VALUES_TOOLTIP),this.setOutput(!0,"List")}},Zi={init:function(){this.setColour(Bi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(ht.Msg.MIXLY_LENGTH),this.setTooltip(ht.Msg.DICT_LENGTH_TOOLTIP),this.setOutput(!0,Number)}},$i={init:function(){this.setColour(Bi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(ht.Msg.DICT_DELDICT),this.setTooltip(ht.Msg.DICTS_DEL_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},tn={init:function(){this.MODE=[[ht.Msg.DICTS_ADD_OR_CHANGE,"INSERT"],[ht.Msg.MIXLY_MICROBIT_JS_DELETE_VAR,"DELETE"]],this.setHelpUrl(ht.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(Bi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("AT2"),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(ht.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).appendField(ht.Msg.DICTS_ADD_VALUE),this.updateAt_(!0),this.setInputsInline(!0),this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e="";switch(t.getFieldValue("WHERE")){case"INSERT":e=ht.Msg.DICTS_ADD_TOOLTIP;break;case"DELETE":e=ht.Msg.DICTS_DELETE_TOOLTIP}return e}))},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT2").type==ht.INPUT_VALUE;return t.setAttribute("at2",e),t},domToMutation:function(t){var e="true"==t.getAttribute("at2");this.updateAt_(e)},updateAt_:function(t){this.removeInput("AT2"),this.removeInput("ORDINAL",!0),t?this.appendValueInput("AT2").setCheck(Number):this.appendDummyInput("AT2");var e=new ht.FieldDropdown(this.MODE,(function(e){var i="INSERT"==e;if(i!=t){var n=this.sourceBlock_;return n.updateAt_(i),n.setFieldValue(e,"WHERE"),null}}));this.getInput("AT2").appendField(e,"WHERE")}},en={init:function(){this.setColour(Bi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(ht.Msg.blockpy_DICT_POP),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(ht.Msg.DICTS_ADD_VALUE),this.setTooltip(ht.Msg.DICT_POP_TOOLTIP),this.setInputsInline(!0),this.setOutput(!0)}},nn={init:function(){this.setColour(Bi),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(ht.Msg.DICTS_SET_DEFAULT),this.appendDummyInput("").appendField(ht.Msg.DICTS_DEFAULT_VALUE),this.appendValueInput("VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ht.Msg.DICTS_SETDEFAULT_TOOLTIP)}},sn={init:function(){this.setColour(Bi),this.appendDummyInput("").appendField(new ht.FieldLabel(ht.Msg.MIXLY_MICROBIT_TYPE_DICT),"TIP").appendField(" "),this.itemCount_=3,this.updateShape_(),this.setOutput(!0,"Dict"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setMutator(new ht.icons.MutatorIcon(["dicts_create_with_item"],this)),this.setTooltip(ht.Msg.DICTS_CREATE_WITH_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("dicts_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ht.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},on={init:function(){this.setColour(Bi),this.appendValueInput("VAR").appendField(ht.Msg.MIXLY_TODICT),this.setOutput(!0),this.setTooltip(ht.Msg.MIXLY_PYTHON_TOOLTIP_TODICT)}},_n={init:function(){this.setColour(Bi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(ht.Msg.MIXLY_TO_JSON),this.setTooltip(ht.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0,Number)}},pn={init:function(){this.setColour(Bi),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(ht.Msg.MIXLY_CONVERT_TO_JSON),this.setTooltip(ht.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0,Number)}},an=210,un={init:function(){var t=ht.RTL?[["=","EQ"],["≠","NEQ"],[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["=","EQ"],["≠","NEQ"],["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(an),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new ht.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{EQ:ht.Msg.LOGIC_COMPARE_TOOLTIP_EQ,NEQ:ht.Msg.LOGIC_COMPARE_TOOLTIP_NEQ,LT:ht.Msg.LOGIC_COMPARE_TOOLTIP_LT,LTE:ht.Msg.LOGIC_COMPARE_TOOLTIP_LTE,GT:ht.Msg.LOGIC_COMPARE_TOOLTIP_GT,GTE:ht.Msg.LOGIC_COMPARE_TOOLTIP_GTE}[t]})),this.prevBlocks_=[null,null]}},rn={init:function(){var t=ht.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]],e=ht.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(an),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new ht.FieldDropdown(t),"OP1"),this.appendValueInput("C").appendField(new ht.FieldDropdown(e),"OP2"),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_PYTHON_LOGIC_COMPARE_CONTINOUS_TOOLTIP)}},ln={init:function(){var t=[[ht.Msg.LOGIC_OPERATION_AND,"AND"],[ht.Msg.LOGIC_OPERATION_OR,"OR"],[ht.Msg.LOGIC_OPERATION_NOR,"NOR"],[ht.Msg.LOGIC_OPERATION_XOR,"XOR"]];this.setColour(an),this.setOutput(!0,Boolean),this.appendValueInput("A").setCheck([Boolean,Number]),this.appendValueInput("B").setCheck([Boolean,Number]).appendField(new ht.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{AND:ht.Msg.LOGIC_OPERATION_TOOLTIP_AND,OR:ht.Msg.LOGIC_OPERATION_TOOLTIP_OR,NOR:ht.Msg.LOGIC_OPERATION_TOOLTIP_NOR,XOR:ht.Msg.LOGIC_OPERATION_TOOLTIP_XOR}[t]}))}},dn={init:function(){this.setColour(an),this.setOutput(!0,Boolean),this.appendValueInput("BOOL").setCheck([Number,Boolean]).appendField(ht.Msg.LOGIC_NEGATE_TITLE),this.setTooltip(ht.Msg.LOGIC_NEGATE_TOOLTIP)}},In={init:function(){var t=[[ht.Msg.LOGIC_BOOLEAN_TRUE,"TRUE"],[ht.Msg.LOGIC_BOOLEAN_FALSE,"FALSE"]];this.setColour(an),this.setOutput(!0,Boolean),this.appendDummyInput().appendField(new ht.FieldDropdown(t),"BOOL"),this.setTooltip(ht.Msg.LOGIC_BOOLEAN_TOOLTIP)}},Tn={init:function(){this.setColour(an),this.setOutput(!0),this.appendDummyInput().appendField(ht.Msg.LOGIC_NULL),this.setTooltip(ht.Msg.LOGIC_NULL_TOOLTIP)}},hn={init:function(){this.setColour(an),this.appendValueInput("A"),this.appendValueInput("B").appendField(ht.Msg.LOGIC_TERNARY_IF_TRUE),this.appendValueInput("C").appendField(ht.Msg.LOGIC_TERNARY_IF_FALSE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_TOOLTIP_LOGIT_TRUEORFALSE)}},Mn={init:function(){var t=[[ht.Msg.TEXT_APPEND_TO,"in"],[ht.Msg.MIXLY_PYTHON_LOGIC_IS_NOT_IN,"not in"]];this.setColour(an),this.appendValueInput("A"),this.appendValueInput("B").setCheck([String,"List"]).appendField(new ht.FieldDropdown(t),"BOOL"),this.appendDummyInput("").appendField(ht.Msg.MICROBIT_LOGIC_IS_IN),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(ht.Msg.IN)}},mn={init:function(){var t=[[ht.Msg.MIXLY_PYTHON_LOGIC_IS,"is"],[ht.Msg.MIXLY_PYTHON_LOGIC_IS_NOT,"is not"]];this.setColour(an),this.appendValueInput("A"),this.appendValueInput("B").appendField(new ht.FieldDropdown(t),"BOOL"),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_PYTHON_LOGIC_IS_TOOLTIP)}},On={init:function(){this.setColour(an),this.appendValueInput("VAR").appendField(ht.Msg.MIXLY_TOBOOL),this.setOutput(!0,Boolean),this.setTooltip(ht.Msg.MIXLY_PYTHON_TOOLTIP_TOBOOL)}},En={init:function(){this.setColour(0),this.appendValueInput("fn").setCheck(String).appendField(ht.Msg.MIXLY_PYTHON_STORAGE_OPEN_FILE_WITH_OS+"(For Windows)"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Rn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[ht.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[ht.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[ht.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendValueInput("FILE").appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_AS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=ht.Msg.MIXLY_USE,n=ht.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=ht.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,o=ht.Msg.MIXLY_BELONG;return i+{r:ht.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:ht.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:ht.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:ht.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+o+n+s}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ht.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},cn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[ht.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[ht.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[ht.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=ht.Msg.MIXLY_USE,n=ht.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=ht.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,o=ht.Msg.MIXLY_BELONG,_=ht.Msg.PY_STORAGE_FILE_OBJECT;return i+{r:ht.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:ht.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:ht.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:ht.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+o+n+s+_}))}},gn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE);this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[ht.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[ht.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[ht.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendDummyInput().appendField(ht.Msg.MIXPY_TEXT_ENCODE).appendField(new ht.FieldDropdown([["ANSI","ANSI"],["gbk","gbk"],["utf-8","utf-8"]]),"CODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=ht.Msg.MIXLY_USE,n=ht.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=ht.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,o=ht.Msg.MIXLY_BELONG,_=ht.Msg.PY_STORAGE_FILE_OBJECT;return i+{r:ht.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:ht.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:ht.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:ht.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+o+n+s+_}))}},Cn={init:function(){this.setColour(0),this.appendValueInput("data").setCheck(String).appendField(ht.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendValueInput("FILE").appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE+ht.Msg.MIXLY_MICROBIT_TYPE_STRING+ht.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE)}},Sn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL,"read"],[ht.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE,"readline"],[ht.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES,"readlines"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String)}},An={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,"read"],[ht.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,"readline"],[ht.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE,"readlines"]]),"MODE"),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=ht.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE,n=ht.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER;return i+{read:ht.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,readline:ht.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,readlines:ht.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE}[e]+"x"+n}))}},Ln={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.setNextStatement(!0),this.appendValueInput("SIZE").setCheck(Number).appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(ht.Msg.MICROBIT_PYTHON_TYPE)}},Nn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(ht.Msg.HTML_FILE),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean),this.setTooltip(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT1)}},Dn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_FILENAME),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILENAME)}},fn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE)}},Pn={init:function(){this.setColour(0),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES)}};ht.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE;const Fn={init:function(){this.setColour(0),this.appendDummyInput().appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE,"remove"],[ht.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_DIRS,"removedirs"]]),"MODE"),this.appendValueInput("FILE").setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE)}},vn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE+ht.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE)}},Yn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_RETURN_FILE),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_PRESENT_LOCATION),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_TELL)}},xn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION),this.appendDummyInput().appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,"start"],[ht.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,"current"],[ht.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END,"end"]]),"MODE"),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=ht.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION+ht.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION,n=ht.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER,s=ht.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET;return i+" "+{start:ht.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,current:ht.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,end:ht.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END}[e]+s+"x"+n}))}},Xn={init:function(){this.setColour(0),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR)}},bn={init:function(){this.setColour(0),this.appendValueInput("PATH").setCheck(String).appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH),this.appendDummyInput().appendField(ht.Msg.MIXLY_ESP32_SET),this.appendDummyInput().appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,"mkdir"],[ht.Msg.MIXLY_MICROBIT_PY_STORAGE_MAKEDIRS,"makedirs"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return ht.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH+"x"+ht.Msg.MIXLY_ESP32_SET+{mkdir:ht.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,makedirs:ht.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},Vn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME),this.appendValueInput("NEWFILE").setCheck(String).appendField(ht.Msg.MIXLY_AS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME)}},yn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR)}},Bn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT),this.appendDummyInput().appendField(new ht.FieldDropdown([[ht.Msg.HTML_FILE,"isfile"],[ht.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_DIR,"isdir"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean);let t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return ht.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH+"x"+ht.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT+{isfile:ht.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,isdir:ht.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},Gn={init:function(){this.setColour(0),this.appendValueInput("SPISUB").appendField(ht.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("SUB").appendField(ht.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(ht.Msg.MIXLY_SETUP+ht.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(ht.Msg.MIXLY_SD_CARD),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Un={init:function(){this.setColour(0),this.appendValueInput("VAR").appendField(ht.Msg.MIXLY_SD_CARD),this.appendValueInput("DIR").setCheck(String).appendField(ht.Msg.MIXLY_SDCARD_MOUNT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip()}},wn={};wn.NAME_TYPE=ht.PROCEDURE_CATEGORY_NAME,wn.allProcedures=function(t){for(var e=t.getAllBlocks(!1),i=[],n=[],s=0;s"),this.appendValueInput("style").appendField(ht.Msg.MIXLY_AIP_ATTR).setAlign(ht.inputs.Align.RIGHT),this.appendStatementInput("DO").appendField(""),this.setInputsInline(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Vs={init:function(){this.setColour(Fs),this.appendDummyInput().appendField(ht.Msg.HTML_STYLE),this.appendStatementInput("STYLE"),this.setOutput(!0)}},ys={init:function(){this.setColour(Fs),this.appendDummyInput().appendField(ht.Msg.HTML_FORM_CONTENT).appendField(new ht.FieldDropdown([[ht.Msg.HTML_TEXT,"text"],[ht.Msg.HTML_EMAIL,"email"],[ht.Msg.HTML_NUMBER,"number"],[ht.Msg.HTML_PASSWORD,"password"],[ht.Msg.HTML_CHECKBOX,"checkbox"],[ht.Msg.HTML_RADIOBUTTON,"radiobutton"],[ht.Msg.HTML_BUTTON,"button"],[ht.Msg.HTML_COLOUR,"colour"],[ht.Msg.HTML_DATE,"date"],[ht.Msg.HTML_LOCALTIME,"local time"],[ht.Msg.HTML_FILE,"file"],[ht.Msg.HTML_HIDDEN,"hidden"],[ht.Msg.HTML_IMAGE,"image"],[ht.Msg.HTML_MONTH,"month"],[ht.Msg.HTML_RANGE,"range"],[ht.Msg.HTML_RESET,"reset"],[ht.Msg.HTML_SEARCH,"search"],[ht.Msg.HTML_SUBMIT,"submit"],[ht.Msg.HTML_TELEPHONENUMBER,"telephone number"],[ht.Msg.HTML_TIME,"time"],[ht.Msg.HTML_URL,"url"],[ht.Msg.HTML_WEEK,"week"]]),"LEVEL"),this.appendDummyInput().appendField(ht.Msg.HTML_NAME).appendField(new ht.FieldTextInput("car"),"NAME"),this.appendDummyInput().appendField(ht.Msg.HTML_VALUE).appendField(new ht.FieldTextInput("go"),"VALUE"),this.appendValueInput("style").appendField(ht.Msg.MIXLY_AIP_ATTR).setAlign(ht.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Bs={init:function(){this.setColour(Fs),this.appendDummyInput().appendField(new ht.FieldTextInput("property"),"KEY").appendField(":").appendField(new ht.FieldTextInput("value"),"VALUE"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Gs={init:function(){this.setColour(Fs),this.appendDummyInput().appendField(new ht.FieldTextInput("property"),"KEY").appendField(":").appendField(new ht.FieldColour("#ff0000"),"RGB_LED_COLOR"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Us={init:function(){this.setColour(Fs),this.appendDummyInput().appendField(ht.Msg.HTML_TEXT).appendField(new ht.FieldTextInput("text"),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},ws=160,ks={init:function(){this.setColour(ws),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Tabular Abstraction:"),this.appendDummyInput().appendField(new ht.FieldTable(""),"TEXT")}},Hs={init:function(){this.setColour(ws),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Code Block:"),this.appendDummyInput().appendField(new ht.FieldMultilineInput(""),"TEXT")}},Ws={init:function(){this.setColour(ws),this.appendDummyInput().appendField("Code Expression:"),this.appendDummyInput().appendField(new ht.FieldMultilineInput(""),"TEXT"),this.setOutput(!0)}},Ks={init:function(){this.setColour(ws),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("VALUE").appendField(""),this.setInputsInline(!1)}},Js={init:function(){this.setColour(ws),this.appendDummyInput().appendTitle("Comment:").appendTitle(new ht.FieldTextInput(""),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("This comment will be ignored by Python")}},Qs={init:function(){this.setColour(ws),this.appendValueInput("VALUE").appendField(ht.Msg.TYPE_CHECK),this.setInputsInline(!1),this.setOutput(!0,"Type")}},zs={init:function(){this.setColour(ws),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new ht.icons.MutatorIcon(["text_print_multiple_item"],this)),this.setTooltip(ht.Msg.TEXT_PRINT_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=ht.Block.obtain(t,"text_print_multiple_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n= stop:"," yield start"," start -= abs(step)"])};if(t=function(t,e,i){return"("+t+" <= "+e+") and "+a()+"("+t+", "+e+", "+i+") or "+u()+"("+t+", "+e+", "+i+")"},ht.isNumber(n)&&ht.isNumber(s)&&ht.isNumber(o))n=parseFloat(n),s=parseFloat(s),o=Math.abs(parseFloat(o)),0==n%1&&0==s%1&&0==o%1?(n<=s?(s++,t=0==n&&1==o?s:n+", "+s,1!=o&&(t+=", "+o)):t=n+", "+--s+", -"+o,t="range("+t+")"):(t=n",GTE:">="};const vp=function(t,e){var i=this.getFieldValue("OP"),n="&&"==i?e.ORDER_LOGICAL_AND:e.ORDER_LOGICAL_OR,s=e.valueToCode(this,"A",n)||"False",o=e.valueToCode(this,"B",n)||"False";if("AND"==i)var _=s+" and "+o;else if("OR"==i)_=s+" or "+o;else if("NOR"==i)_="not("+s+"^"+o+")";else _=s+"^"+o;return[_,n]},Yp=function(t,e){var i=e.ORDER_UNARY_PREFIX;return["not "+(e.valueToCode(this,"BOOL",i)||"False"),i]},xp=function(t,e){return["TRUE"==this.getFieldValue("BOOL")?"True":"False",e.ORDER_ATOMIC]},Xp=function(t,e){return["None",e.ORDER_ATOMIC]},bp=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"False";return["("+(e.valueToCode(this,"B",e.ORDER_ATOMIC)||"False")+" if "+i+" else "+(e.valueToCode(this,"C",e.ORDER_ATOMIC)||"False")+")",e.ORDER_ATOMIC]},Vp=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",n=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[i+" "+this.getFieldValue("BOOL")+" "+n,e.ORDER_ATOMIC]},yp=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",n=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[i+" "+this.getFieldValue("BOOL")+" "+n,e.ORDER_ATOMIC]},Bp=function(t,e){return["bool("+(e.valueToCode(this,"VAR",e.ORDER_ATOMIC)||"0")+")",e.ORDER_ATOMIC]},Gp=function(t,e){return e.definitions_.import_os="import os","os.startfile("+e.valueToCode(this,"fn",e.ORDER_ATOMIC)+")\n"},Up=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+" = open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')\n"},wp=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')",e.ORDER_ATOMIC]},kp=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"', encoding=\""+this.getFieldValue("CODE")+'")',e.ORDER_ATOMIC]},Hp=function(t,e){var i=e.valueToCode(this,"data",e.ORDER_ATOMIC);return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".write("+i+")\n"},Wp=function(t,e){var i=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+i+"()",e.ORDER_ATOMIC]},Kp=function(t,e){var i=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+i+"("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Jp=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".readline("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Qp=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".writable()",e.ORDER_ATOMIC]},zp=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".name()",e.ORDER_ATOMIC]},qp=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".close()\n"},jp=function(t,e){e.definitions_.import_os="import os";return["os.listdir()",e.ORDER_ATOMIC]},Zp=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},$p=function(t,e){return e.definitions_.import_os="import os",["os.path.getsize("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},ta=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".tell()",e.ORDER_ATOMIC]},ea=function(t,e){var i=this.getFieldValue("MODE"),n=0;return n="start"==i?0:"current"==i?1:2,e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".seek("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+","+n+")\n"},ia=function(t,e){return e.definitions_.import_os="import os","os.chdir("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},na=function(t,e){e.definitions_.import_os="import os";return["os.getcwd()",e.ORDER_ATOMIC]},sa=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"PATH",e.ORDER_ATOMIC)+")\n"},oa=function(t,e){return e.definitions_.import_os="import os","os.rename("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+","+e.valueToCode(this,"NEWFILE",e.ORDER_ATOMIC)+")\n"},_a=function(t,e){e.definitions_.import_os="import os";var i=e.valueToCode(this,"FILE",e.ORDER_ATOMIC);return["os."+this.getFieldValue("MODE")+"("+i+")",e.ORDER_ATOMIC]},pa=function(t,e){return e.definitions_.import_os="import os",e.definitions_.import_sdcard="import sdcard",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+" = sdcard.SDCard("+e.valueToCode(this,"SPISUB",e.ORDER_ATOMIC)+","+e.valueToCode(this,"PINSUB",e.ORDER_ATOMIC)+")\n"},aa=function(t,e){return e.definitions_.import_os="import os",e.definitions_.import_sdcard="import sdcard","os.mount("+e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+","+e.valueToCode(this,"DIR",e.ORDER_ATOMIC)+")\n"},ua=function(t,e){var i=e.variableDB_.getName(this.getFieldValue("NAME"),ht.Procedures.NAME_TYPE),n=e.statementToCode(this,"STACK")||" pass\n";e.INFINITE_LOOP_TRAP&&(n=e.INFINITE_LOOP_TRAP.replace(/%1/g,"'"+this.id+"'")+n);var s=e.valueToCode(this,"RETURN",e.ORDER_NONE)||"";s&&(s=" return "+s+"\n");for(var o=[],_=0;_\n\n\n\t\n"+e.statementToCode(this,"HEAD")+"\n\n"+e.statementToCode(this,"BODY")+"\n\n'''",e.ORDER_ATOMIC]},ka=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");return"\n"+i+"\n"},Ha=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");if("head"==n)var s="<"+n+'>\n\t\n'+i+"\n";else s="<"+n+">\n"+i+"\n";return s},Wa=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");return"<"+n+">\n"+i+"\n"},Ka=function(t,e){var i=e.statementToCode(this,"DO"),n=e.valueToCode(this,"style"),s=this.getFieldValue("LEVEL");return"<"+s+" "+n+" >\n"+i+"\n"},Ja=function(t,e){return['style="'+e.statementToCode(this,"STYLE")+'"',e.ORDER_ATOMIC]},Qa=function(t,e){return'"},za=function(){return this.getFieldValue("KEY")+":"+this.getFieldValue("VALUE")+";"},qa=function(){return this.getFieldValue("TEXT")+"\n"},ja=function(t){return t.getFieldValue("TEXT")+"\n"},Za=function(t,e){return[t.getFieldValue("TEXT"),e.ORDER_ATOMIC]},$a=function(t,e){return(e.valueToCode(t,"VALUE",e.ORDER_ATOMIC)||"")+"\n"},tu=function(){return""},eu=function(t,e){return["type("+(e.valueToCode(t,"VALUE",e.ORDER_MEMBER)||"___")+")",e.ORDER_ATOMIC]},iu=function(t,e){for(var i=t.getFieldValue("NAME"),n=t.hasReturn_,s=new Array(t.itemCount_),o=0;o0?e.join("\n")+"\n"+n.join("\n")+"\n"+s.join("")+"\n"+t+"while True:\n"+o.join("")+_.join("\n"):e.join("\n")+"\n"+n.join("\n")+"\n"+s.join("")+"\n"+t+_.join("\n")},su.scrubNakedValue=function(t){return t+"\n"},su.quote_=function(t){var e="'";return-1!==(t=t.replace(/\\/g,"\\\\").replace(/\n/g,"\\\n")).indexOf("'")&&(-1===t.indexOf('"')?e='"':t=t.replace(/'/g,"\\'")),e+t+e},su.multiline_quote_=function(t){return"'''"+(t=t.replace(/'''/g,"\\'\\'\\'"))+"'''"},su.scrub_=function(t,e,i){var n="";if(!t.outputConnection||!t.outputConnection.targetConnection){(o=t.getCommentText())&&(o=ht.utils.string.wrap(o,su.COMMENT_WRAP-3),n+=su.prefixLines(o+"\n","# "));for(var s=0;s0?"int("+p+" + "+s+")":s<0?"int("+p+" - "+-s+")":"int("+p+")",n&&(p="-"+p)),p};const ou="#74A55B",_u={init:function(){this.setColour(ou),this.appendDummyInput("").appendField(ht.Msg.MIXLY_MIDI),this.appendValueInput("SUB").appendField(ht.Msg.MIXLY_SETUP).setCheck("var"),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(ht.Msg.MIXLY_RGB_PIN_COUNT)}},pu={init:function(){this.setColour(ou),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(ht.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(ht.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ht.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},au={init:function(){this.setColour(ou),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(ht.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(ht.Msg.MIXLY_FREQUENCY),this.appendValueInput("time").setCheck(Number).appendField(ht.Msg.MIXLY_DURATION),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ht.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE2)}},uu={init:function(){this.setColour(ou),this.appendValueInput("SUB"),this.appendValueInput("LIST").appendField(ht.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS)}},ru={init:function(){this.setColour(ou),this.appendValueInput("SUB"),this.appendValueInput("TICKS").setCheck(Number).appendField(ht.Msg.MIXLY_MICROBIT_JS_SET_TEMPO).appendField(ht.Msg.MICROBIT_ACTUATOR_ticks),this.appendValueInput("BPM").setCheck(Number).appendField(ht.Msg.MIXLY_SPEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_MUSIC_SET_TEMPO)}},lu={init:function(){this.setColour(ou),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_Get_current_tempo),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_MUSIC_GET_TEMPO)}},du={init:function(){this.setColour(ou),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_Reset_music),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_MUSIC_RESET)}},Iu={init:function(){this.setColour(ou),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(ht.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Tu={init:function(){this.setColour(ou),this.appendDummyInput().appendField(ht.Msg.MIXLY_SETTING).appendField(ht.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(ht.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("bright").appendField(ht.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_EXTERN_LED_SETONOFF)}},hu={init:function(){this.setColour(ou),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(ht.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(ht.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(ht.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_EXTERN_LED_GETONOFF)}},Mu={init:function(){this.setColour(ou),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(ht.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(ht.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(ht.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_EXTERN_LED_GETONOFF)}},mu={init:function(){this.setColour(ou),this.appendDummyInput().appendField(ht.Msg.MIXLY_SETTING).appendField(ht.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(ht.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("bright").appendField(ht.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_EXTERN_LED_SETBRIGHT)}},Ou={init:function(){this.setColour(ou),this.appendValueInput("VAR").appendField(ht.Msg.MIXLY_SETUP+ht.Msg.MIXLY_SERVO),this.appendValueInput("PIN",Number).appendField(ht.Msg.MIXLY_PIN),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Eu={init:function(){this.setColour(ou),this.appendValueInput("PIN",Number).appendField(ht.Msg.MIXLY_SERVO).appendField(ht.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("DEGREE",Number).setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_DEGREE_0_180),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_SERVO_MOVE)}},Ru={init:function(){this.setColour(ou),this.appendValueInput("VAR").appendField("360°"+ht.Msg.MIXLY_SERVO),this.appendValueInput("SPEED",Number).setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_SETTING+ht.Msg.blockpy_turtle_rotate+ht.Msg.MIXLY_SPEED+" (-10~10)"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_SERVO_360_TOOLTIP)}},cu={init:function(){this.setColour(ou),this.appendValueInput("PIN",Number).appendField("180°"+ht.Msg.MIXLY_SERVO).appendField(ht.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_SERVO_MOVE)}},gu={init:function(){this.setColour(ou),this.appendValueInput("PIN",Number).appendField("360°"+ht.Msg.MIXLY_SERVO).appendField(ht.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_SERVO_SPEED_TOOLIPS)}},Cu={init:function(){this.setColour(ou),this.appendValueInput("PIN",Number).appendField("180°"+ht.Msg.MIXLY_SERVO).appendField(ht.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(ht.Msg.MIXLY_GET+ht.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setOutput(!0,Number),this.setInputsInline(!0)}},Su={init:function(){this.setColour(ou),this.appendValueInput("PIN",Number).appendField("360°"+ht.Msg.MIXLY_SERVO).appendField(ht.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(ht.Msg.MIXLY_GET+ht.Msg.MIXLY_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},Au={init:function(){this.setColour(ou),this.appendValueInput("SUB").appendField("初始化").setCheck("var"),this.appendDummyInput().appendField("电机驱动"),this.appendDummyInput().appendField("地址").appendField(new ht.FieldDropdown([["A","ms32006.ADDRESS_A"],["B","ms32006.ADDRESS_B"]]),"mode"),this.appendValueInput("SUB1").setCheck("var").setAlign(ht.inputs.Align.RIGHT).appendField("通信"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("初始化MS32006电机驱动,使用I2C通信")}},Lu={init:function(){this.setColour(ou),this.appendValueInput("SUB").appendField("直流电机").setCheck("var"),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_Direction).appendField(new ht.FieldDropdown([[ht.Msg.CLOCKWISE,"ms32006.MOT_CW"],[ht.Msg.ANTI_CLOCKWISE,"ms32006.MOT_CCW"],[ht.Msg.MOTOR_N,"ms32006.MOT_N"],[ht.Msg.MOTOR_P,"ms32006.MOT_P"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_STEPPER_SET_SPEED),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("设置直流电机的状态及转速(0-100)")}},Nu={init:function(){this.setColour(ou),this.appendValueInput("SUB").appendField("步进电机").setCheck("var"),this.appendDummyInput().appendField("选择").appendField(new ht.FieldDropdown([["A","ms32006.MOT_A"],["B","ms32006.MOT_B"]]),"mode"),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_Direction).appendField(new ht.FieldDropdown([[ht.Msg.CLOCKWISE,"ms32006.MOT_CW"],[ht.Msg.ANTI_CLOCKWISE,"ms32006.MOT_CCW"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField("转速"),this.appendValueInput("steps").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField("步数"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("设置步进电机的状态、转速、步数(0-2047)")}},Du={init:function(){this.setColour(ou),this.appendDummyInput("").appendField(ht.Msg.MIXLY_RGB),this.appendValueInput("SUB").appendField(ht.Msg.MIXLY_SETUP).setCheck("var"),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_PIN),this.appendValueInput("LEDCOUNT").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_RGB_COUNT),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(ht.Msg.MIXLY_RGB_PIN_COUNT)}},fu={init:function(){this.setColour(ou),this.appendDummyInput("").appendField(ht.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("_LED_").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(ht.Msg.MIXLY_RGB_NUM_R_G_B_MP)}},Pu={init:function(){this.setColour(ou),this.appendDummyInput("").appendField(ht.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("RVALUE").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(ht.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},Fu={init:function(){this.setColour(ou),this.appendDummyInput("").appendField(ht.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(ht.Msg.MIXLY_ESP32_RGB_WRITE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(ht.Msg.MIXLY_ESP32_MUSIC_WRI)}},vu={init:function(){this.setColour(ou),this.appendDummyInput("").appendField(ht.Msg.CONTROLS_FOR_INPUT_WITH+"uart").appendField(new ht.FieldDropdown([["uart1","uart1"],["uart2","uart2"]]),"key"),this.appendValueInput("SUB").appendField(ht.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(ht.Msg.MIXLY_SETUP+ht.Msg.LISTS_SET_INDEX_INPUT_TO+"SYN6288"+ht.Msg.MIXLY_AipSpeech_synthesis),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setFieldValue("LTR308","key")}},Yu={init:function(){this.setColour(ou),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("VOICE").setCheck(Number).appendField(ht.Msg.MIXLY_SET_VOLUME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_SET_VOLUME_TOOLTIP)}},xu={init:function(){this.setColour(ou),this.appendValueInput("SUB").appendField("SYN6288"),this.appendDummyInput().appendField(ht.Msg.MIXLY_GET_VOLUME),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_SET_VOLUME_TOOLTIP)}},Xu={init:function(){this.setColour(ou),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("VOICE").setCheck(Number).appendField(ht.Msg.MIXLY_PLAY_HINTS),this.appendDummyInput().appendField(ht.Msg.MIXLY_PROGRAM_BLOCK).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[ht.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"mode"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_PLAY_HINTS_TOOLTIP)}},bu={init:function(){this.setColour(ou),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("data").setCheck(String).appendField(ht.Msg.MIXLY_AipSpeech_synthesis),this.appendValueInput("VOICE").setCheck(Number).appendField(ht.Msg.MIXLY_BACKGROUND_MUSIC),this.appendDummyInput().appendField(ht.Msg.MIXLY_PROGRAM_BLOCK).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[ht.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"mode"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_PLAY_TTS_TOOLTIP)}},Vu={init:function(){this.setColour(ou),this.appendDummyInput("").appendField(new ht.FieldDropdown(Mt.Profile.default.extern_addr),"PIN"),this.setOutput(!0,Number)}},yu={init:function(){this.setColour(ou),this.appendDummyInput().appendField(ht.Msg.ME_GO_MOTOR_EXTERN+ht.Msg.MIXLY_MOTOR).appendField(ht.Msg.PIN_NUMBERING).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_LEFT,"0"],[ht.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_MIXBOT_MOTOR_EXTERN_TOOLTIP)}},Bu={init:function(){this.setColour(ou),this.appendDummyInput().appendField(ht.Msg.ME_GO_MOTOR_EXTERN+ht.Msg.MIXLY_MOTOR).appendField(ht.Msg.PIN_NUMBERING).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_LEFT,"0"],[ht.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_GET+ht.Msg.MIXLY_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},Gu={init:function(){this.setColour(ou),this.appendDummyInput().appendField(ht.Msg.ME_GO_MOTOR_EXTERN+ht.Msg.MIXLY_TRAFFIC_LIGHT).appendField(ht.Msg.PIN_NUMBERING).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_LEFT,"0"],[ht.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.LISTS_SET_INDEX_SET).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_MICROBIT_Turn_off_display,"0"],[ht.Msg.MIXLY_TRAFFIC_LIGHT_RED_ON,"1"],[ht.Msg.MIXLY_TRAFFIC_LIGHT_RED_BLINK,"2"],[ht.Msg.MIXLY_TRAFFIC_LIGHT_YELLOW_ON,"3"],[ht.Msg.MIXLY_TRAFFIC_LIGHT_YELLOW_BLINK,"4"],[ht.Msg.MIXLY_TRAFFIC_LIGHT_GREEN_ON,"5"],[ht.Msg.MIXLY_TRAFFIC_LIGHT_GREEN_BLINK,"6"]]),"light"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Uu={init:function(){this.setColour(ou),this.appendDummyInput().appendField(ht.Msg.ME_GO_MOTOR_EXTERN).appendField(new ht.FieldDropdown([[ht.Msg.COLOUR_RGB_WHITE,"W"],[ht.Msg.COLOUR_RGB_RED,"R"],[ht.Msg.COLOUR_RGB_YELLOW,"Y"],[ht.Msg.COLOUR_RGB_GREEN,"G"],[ht.Msg.COLOUR_RGB_BLUE,"B"]]),"color").appendField("LED").appendField(ht.Msg.PIN_NUMBERING).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_LEFT,"0"],[ht.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendValueInput("value").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.BRIGHTNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},wu={init:function(){this.setColour(ou),this.appendDummyInput().appendField(ht.Msg.ME_GO_MOTOR_EXTERN).appendField(new ht.FieldDropdown([[ht.Msg.COLOUR_RGB_WHITE,"W"],[ht.Msg.COLOUR_RGB_RED,"R"],[ht.Msg.COLOUR_RGB_YELLOW,"Y"],[ht.Msg.COLOUR_RGB_GREEN,"G"],[ht.Msg.COLOUR_RGB_BLUE,"B"]]),"color").appendField("LED").appendField(ht.Msg.PIN_NUMBERING).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_LEFT,"0"],[ht.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(ht.Msg.MIXLY_GET+ht.Msg.BRIGHTNESS),this.setOutput(!0,Number),this.setInputsInline(!0)}},ku={init:function(){this.setColour(ou),this.appendDummyInput().appendField(ht.Msg.ME_GO_MOTOR_EXTERN+ht.Msg.MIXLY_SERVO_MOTOR).appendField(ht.Msg.PIN_NUMBERING).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_LEFT,"0"],[ht.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(ht.Msg.MIXLY_GET).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"[0]"],[ht.Msg.MIXLY_SPEED,"[1]"],[ht.Msg.MATH_SINGLE_OP_ABSOLUTE+ht.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"[2]"],[ht.Msg.MIXLY_RELATIVE+ht.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"[3]"],[ht.Msg.MIXLY_MIXBOT_SERVO_BLOCK_OR_NOT,"[4]"],[ht.Msg.MIXLY_MIXBOT_SERVO_FINISH_OR_NOT,"[5]"],[ht.Msg.MIXLY_ALL,""]]),"status"),this.setOutput(!0,Number),this.setInputsInline(!0)}},Hu={init:function(){this.setColour(ou),this.appendDummyInput().appendField(ht.Msg.ME_GO_MOTOR_EXTERN+ht.Msg.MIXLY_SERVO_MOTOR).appendField(ht.Msg.PIN_NUMBERING).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_LEFT,"0"],[ht.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(ht.Msg.MIXLY_MIXBOT_SERVO_SET_STOP_MODE).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_KEEP,"0"],[ht.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_COAST,"1"],[ht.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_BRAKE,"2"]]),"status"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Wu={init:function(){this.setColour(ou),this.appendDummyInput().appendField(ht.Msg.ME_GO_MOTOR_EXTERN+ht.Msg.MIXLY_SERVO_MOTOR).appendField(ht.Msg.PIN_NUMBERING).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_LEFT,"0"],[ht.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(ht.Msg.MIXLY_STOP),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Ku={init:function(){this.setColour(ou),this.appendDummyInput().appendField(ht.Msg.ME_GO_MOTOR_EXTERN+ht.Msg.MIXLY_SERVO_MOTOR).appendField(ht.Msg.MATH_SINGLE_OP_ABSOLUTE+ht.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+ht.Msg.MSG.run).appendField(ht.Msg.PIN_NUMBERING).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_LEFT,"0"],[ht.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(ht.Msg.MIXLY_MODE).setAlign(ht.inputs.Align.RIGHT).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_SPEED+ht.Msg.MIXLY_MODE,"0"],[ht.Msg.MIXLY_MICROBIT_JS_BLE_POWER+ht.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(ht.inputs.Align.RIGHT).appendField("%"),this.appendDummyInput().appendField(ht.Msg.MIXLY_MIXBOT_SERVO_TURN_DIRECTION).setAlign(ht.inputs.Align.RIGHT).appendField(new ht.FieldDropdown([[ht.Msg.CLOCKWISE,"0"],[ht.Msg.MIXLY_MIXBOT_SERVO_NEAREST_PATH,"1"],[ht.Msg.ANTI_CLOCKWISE,"2"]]),"direction"),this.appendValueInput("angle").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_DISPLAY_MATRIX_ROTATE+ht.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_MIXBOT_SERVO_ABSOLUTE_ANGLE_TOOLTIP)}},Ju={init:function(){this.setColour(ou),this.appendDummyInput().appendField(ht.Msg.ME_GO_MOTOR_EXTERN+ht.Msg.MIXLY_SERVO_MOTOR).appendField(ht.Msg.MIXLY_RELATIVE+ht.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+ht.Msg.MSG.run).appendField(ht.Msg.PIN_NUMBERING).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_LEFT,"0"],[ht.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(ht.Msg.MIXLY_MIXBOT_SERVO_RELATIVE_ORIGIN_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Qu={init:function(){this.setColour(ou),this.appendDummyInput().appendField(ht.Msg.ME_GO_MOTOR_EXTERN+ht.Msg.MIXLY_SERVO_MOTOR).appendField(ht.Msg.MIXLY_RELATIVE+ht.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+ht.Msg.MSG.run).appendField("("+ht.Msg.MIXLY_MIXBOT_SERVO_LIKE_ENCODING_MOTOR+")").appendField(ht.Msg.PIN_NUMBERING).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_LEFT,"0"],[ht.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(ht.Msg.MIXLY_MODE).setAlign(ht.inputs.Align.RIGHT).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_SPEED+ht.Msg.MIXLY_MODE,"0"],[ht.Msg.MIXLY_MICROBIT_JS_BLE_POWER+ht.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(ht.inputs.Align.RIGHT).appendField("%"),this.appendValueInput("angle").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_DISPLAY_MATRIX_ROTATE+ht.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_MIXBOT_SERVO_RELATIVE_ANGLE_TOOLTIP)}},zu={init:function(){this.setColour(ou),this.appendDummyInput().appendField(ht.Msg.ME_GO_MOTOR_EXTERN+ht.Msg.MIXLY_SERVO_MOTOR).appendField(ht.Msg.MIXLY_RELATIVE+ht.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+ht.Msg.MSG.run).appendField("("+ht.Msg.MIXLY_MIXBOT_SERVO_LIKE_ORDINARY_MOTOR+")").appendField(ht.Msg.PIN_NUMBERING).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_LEFT,"0"],[ht.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(ht.Msg.MIXLY_MODE).setAlign(ht.inputs.Align.RIGHT).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_SPEED+ht.Msg.MIXLY_MODE,"0"],[ht.Msg.MIXLY_MICROBIT_JS_BLE_POWER+ht.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(ht.inputs.Align.RIGHT).appendField("%"),this.appendDummyInput().appendField(ht.Msg.MIXLY_MIXBOT_SERVO_TURN_DIRECTION).setAlign(ht.inputs.Align.RIGHT).appendField(new ht.FieldDropdown([[ht.Msg.CLOCKWISE,"0"],[ht.Msg.ANTI_CLOCKWISE,"2"]]),"direction"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},qu={init:function(){this.setColour(ou),this.appendDummyInput().appendField(ht.Msg.MIXBOT).appendField(ht.Msg.ME_GO_MOTOR_EXTERN).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_MOTOR,"ext_motor"],[ht.Msg.MIXLY_TRAFFIC_LIGHT,"ext_traffic"],[ht.Msg.COLOUR_RGB_WHITE+"LED","W_LED"],[ht.Msg.COLOUR_RGB_RED+"LED","R_LED"],[ht.Msg.COLOUR_RGB_YELLOW+"LED","Y_LED"],[ht.Msg.COLOUR_RGB_GREEN+"LED","G_LED"],[ht.Msg.COLOUR_RGB_BLUE+"LED","B_LED"],[ht.Msg.MIXLY_SERVO_MOTOR,"ext_servo"]]),"name"),this.appendDummyInput().appendField(ht.Msg.MIXLY_MIXBOT_EXTERN_GET_ADDR),this.setOutput(!0),this.setInputsInline(!0)}},ju={init:function(){this.setColour(ou),this.appendDummyInput().appendField(ht.Msg.MIXBOT).appendField(ht.Msg.ME_GO_MOTOR_EXTERN).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_MOTOR,"ext_motor"],[ht.Msg.MIXLY_TRAFFIC_LIGHT,"ext_traffic"],[ht.Msg.COLOUR_RGB_WHITE+"LED","W_LED"],[ht.Msg.COLOUR_RGB_RED+"LED","R_LED"],[ht.Msg.COLOUR_RGB_YELLOW+"LED","Y_LED"],[ht.Msg.COLOUR_RGB_GREEN+"LED","G_LED"],[ht.Msg.COLOUR_RGB_BLUE+"LED","B_LED"],[ht.Msg.MIXLY_SERVO_MOTOR,"ext_servo"]]),"name"),this.appendDummyInput().appendField(ht.Msg.MIXLY_MIXBOT_EXTERN_SET_ADDR),this.appendValueInput("old").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE),this.appendValueInput("new").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_UPDATE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Zu="#6C9858",$u={init:function(){this.setColour(Zu),this.appendDummyInput("").appendField(new ht.FieldDropdown([["L1","1"],["L2","2"]]),"op"),this.setOutput(!0)}},tr={init:function(){this.setColour(Zu),this.appendDummyInput("").appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_ESP32_ON,"1"],[ht.Msg.MIXLY_ESP32_OFF,"0"],[ht.Msg.MIXLY_ESP32_TOGGLE,"-1"]]),"flag"),this.setOutput(!0),this.setTooltip(ht.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW)}},er={init:function(){this.setColour(Zu),this.appendDummyInput().appendField(ht.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(ht.Msg.MIXLY_BUILDIN_LED),this.appendValueInput("bright").appendField(ht.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_LED_SETONOFF)}},ir={init:function(){this.setColour(Zu),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("led").appendField(ht.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput().appendField(ht.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_LED_GETONOFF)}},nr={init:function(){this.setColour(Zu),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("led").appendField(ht.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput().appendField(ht.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_LED_GETONOFF)}},sr={init:function(){this.setColour(Zu),this.appendDummyInput().appendField(ht.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(ht.Msg.MIXLY_BUILDIN_LED),this.appendValueInput("bright").appendField(ht.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_SETTING+ht.Msg.MIXLY_BUILDIN_LED+ht.Msg.MIXLY_BRIGHTNESS+"(0-100%)")}},or={init:function(){this.setColour(Zu),this.appendDummyInput().appendField(ht.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(ht.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput("").appendField(ht.Msg.MIXLY_LCD_SETCOLOR).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_LIGHT_OFF,"0"],[ht.Msg.MIXLY_LIGHT_RED,"1"],[ht.Msg.MIXLY_LIGHT_GREEN,"2"],[ht.Msg.MIXLY_LIGHT_BLUE,"3"],[ht.Msg.MIXLY_LIGHT_YELLOW,"4"],[ht.Msg.MIXLY_LIGHT_CYAN,"5"],[ht.Msg.MIXLY_LIGHT_PURPLE,"6"],[ht.Msg.MIXLY_LIGHT_WHITE,"7"]]),"colorvalue"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip()}},_r={init:function(){this.setColour(Zu),this.appendDummyInput().appendField(ht.Msg.MIXLY_SETTING).appendField(ht.Msg.MIXLY_BUILDIN_LED).appendField(new ht.FieldDropdown([[ht.Msg.COLOUR_RGB_RED,"r"],[ht.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendValueInput("bright").appendField(ht.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_LED_SETONOFF)}},pr={init:function(){this.setColour(Zu),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(ht.Msg.MIXLY_BUILDIN_LED).appendField(new ht.FieldDropdown([[ht.Msg.COLOUR_RGB_RED,"r"],[ht.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendDummyInput().appendField(ht.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_LED_GETONOFF)}},ar={init:function(){this.setColour(Zu),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(ht.Msg.MIXLY_BUILDIN_LED).appendField(new ht.FieldDropdown([[ht.Msg.COLOUR_RGB_RED,"r"],[ht.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendDummyInput().appendField(ht.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_LED_GETONOFF)}},ur={init:function(){this.setColour(Zu),this.appendDummyInput().appendField(ht.Msg.MIXLY_SETTING).appendField(ht.Msg.MIXLY_BUILDIN_LED).appendField(new ht.FieldDropdown([[ht.Msg.COLOUR_RGB_RED,"r"],[ht.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendValueInput("bright").appendField(ht.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_SETTING+ht.Msg.MIXLY_BUILDIN_LED+ht.Msg.MIXLY_BRIGHTNESS+"(0-10)")}},rr={init:function(){this.setColour(Zu),this.appendDummyInput("").appendField(new ht.FieldDropdown([["L1","20"],["L2","21"]]),"op"),this.setOutput(!0)}},lr={init:function(){this.setColour(Zu),this.appendDummyInput("").appendField(ht.Msg.MIXLY_RGB),this.appendValueInput("_LED_").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);switch(Mt.Boards.getSelectedBoardKey()){case"micropython:esp32c3:mixgo_cc":case"micropython:esp32s2:mixgo_ce":this.setTooltip(ht.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOCC);break;case"micropython:esp32c3:mixgo_me":default:this.setTooltip(ht.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOME);break;case"micropython:esp32:mPython":this.setTooltip(ht.Msg.MIXLY_RGB_NUM_R_G_B_MPYTHON)}}},dr={init:function(){this.setColour(Zu),this.appendDummyInput("").appendField(ht.Msg.MIXLY_RGB),this.appendValueInput("RVALUE").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(ht.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},Ir={init:function(){this.setColour(Zu),this.appendDummyInput("").appendField(ht.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(ht.Msg.MIXLY_RAINBOW),this.appendValueInput("time").setCheck(Number).appendField(ht.Msg.MIXLY_DURATION).appendField(ht.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},Tr={init:function(){this.setColour(Zu),this.appendDummyInput("").appendField(ht.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(ht.Msg.MIXLY_CHASE),this.appendValueInput("RVALUE").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_RGB_B),this.appendValueInput("time").setCheck(Number).appendField(ht.Msg.PYTHON_RANGE_STEP).appendField(ht.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},hr={init:function(){this.setColour(Zu),this.appendDummyInput("").appendField(ht.Msg.MIXLY_RGB),this.appendDummyInput().appendField(ht.Msg.MIXLY_ESP32_RGB_WRITE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(ht.Msg.MIXLY_ESP32_MUSIC_WRI)}},Mr={init:function(){this.setColour(Zu),this.appendDummyInput("").appendField(ht.Msg.MIXLY_RGB),this.appendValueInput("_LED_").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);switch(Mt.Boards.getSelectedBoardKey()){case"micropython:esp32c3:mixgocc":this.setTooltip(ht.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOCC);break;case"micropython:esp32c3:mixgome":default:this.setTooltip(ht.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOME);break;case"micropython:esp32:mPython":this.setTooltip(ht.Msg.MIXLY_RGB_NUM_R_G_B_MPYTHON)}}},mr={init:function(){this.setColour(Zu),this.appendDummyInput("").appendField(ht.Msg.MIXLY_RGB),this.appendValueInput("RVALUE").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(ht.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},Or={init:function(){this.setColour(Zu),this.appendDummyInput("").appendField(ht.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(ht.Msg.MIXLY_CHASE),this.appendValueInput("RVALUE").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_RGB_B),this.appendValueInput("time").setCheck(Number).appendField(ht.Msg.PYTHON_RANGE_STEP).appendField(ht.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},Er={init:function(){this.setColour(Zu),this.appendValueInput("TICKS").setCheck(Number).appendField(ht.Msg.MIXLY_MICROBIT_JS_SET_TEMPO).appendField(ht.Msg.MICROBIT_ACTUATOR_ticks),this.appendValueInput("BPM").setCheck(Number).appendField(ht.Msg.MIXLY_SPEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_MUSIC_SET_TEMPO)}},Rr={init:function(){this.setColour(Zu),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_Get_current_tempo),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_MUSIC_GET_TEMPO)}},cr={init:function(){this.setColour(Zu),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_Reset_music),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_MUSIC_RESET)}},gr={init:function(){this.setColour(Zu),this.appendDummyInput().appendField(ht.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(ht.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ht.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},Cr={init:function(){this.setColour(Zu),this.appendDummyInput().appendField(ht.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(ht.Msg.MIXLY_FREQUENCY),this.appendValueInput("time").setCheck(Number).appendField(ht.Msg.MIXLY_DURATION),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ht.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE2)}},Sr={init:function(){this.setColour(Zu),this.appendDummyInput().appendField(ht.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Ar={init:function(){this.setColour(Zu),this.appendValueInput("LIST").appendField(ht.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS)}},Lr={init:function(){this.setColour(Zu),this.appendDummyInput().appendField(ht.Msg.MOTOR_DC).appendField(new ht.FieldDropdown([["1","1"],["2","2"],["3","3"]]),"wheel"),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_Direction).appendField(new ht.FieldDropdown([[ht.Msg.CLOCKWISE,"CW"],[ht.Msg.ANTI_CLOCKWISE,"CCW"],[ht.Msg.MOTOR_P,"P"],[ht.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Nr={init:function(){this.setColour(Zu),this.appendDummyInput().appendField("MixGo Car").appendField(new ht.FieldDropdown([[ht.Msg.blockpy_forward,"F"],[ht.Msg.blockpy_backward,"B"],[ht.Msg.blockpy_left,"L"],[ht.Msg.blockpy_right,"R"]]),"VAR"),this.appendValueInput("speed").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Dr={init:function(){this.setColour(Zu),this.appendDummyInput("").appendField("MixGo Car").appendField(new ht.FieldDropdown([[ht.Msg.MOTOR_P,"P"],[ht.Msg.MOTOR_N,"N"]]),"VAR"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},fr={init:function(){this.setColour(Zu),this.appendDummyInput().appendField(ht.Msg.MOTOR_DC).appendField(new ht.FieldDropdown([[ht.Msg.MIXLYCAR_WHEEL_LEFT,"L"],[ht.Msg.MIXLYCAR_WHEEL_RIGHT,"R"]]),"wheel"),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_Direction).appendField(new ht.FieldDropdown([[ht.Msg.CLOCKWISE,"CW"],[ht.Msg.ANTI_CLOCKWISE,"CCW"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Pr={init:function(){this.setColour(Zu),this.appendDummyInput().appendField(ht.Msg.MOTOR_DC).appendField(new ht.FieldDropdown([[ht.Msg.MIXLYCAR_WHEEL_LEFT,"L"],[ht.Msg.MIXLYCAR_WHEEL_RIGHT,"R"]]),"wheel"),this.appendDummyInput().appendField(ht.Msg.MIXLY_STOP).appendField(new ht.FieldDropdown([[ht.Msg.MOTOR_P,"P"],[ht.Msg.MOTOR_N,"N"]]),"direction"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Fr={init:function(){this.setColour(Zu),this.appendDummyInput().appendField(ht.Msg.MIXLY_MIXBOT_MOTOR_STATUS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_MIXBOT_MOTOR_STATUS_TOOLTIP)}},vr={init:function(){this.setColour(Zu),this.appendDummyInput().appendField(ht.Msg.MIXBOT).appendField(new ht.FieldDropdown([[ht.Msg.blockpy_forward,"F"],[ht.Msg.blockpy_backward,"B"],[ht.Msg.blockpy_left,"L"],[ht.Msg.blockpy_right,"R"]]),"VAR"),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"PWR"],[ht.Msg.MIXLY_SPEED,"SPEED"],[ht.Msg.MIXLY_MIXBOT_MOTOR_TURNS,"TURNS"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_MIXBOT_MOVE_TOOLTIP)}},Yr={init:function(){this.setColour(Zu),this.appendDummyInput().appendField(ht.Msg.MIXBOT).appendField(new ht.FieldDropdown([[ht.Msg.MOTOR_P,"P"],[ht.Msg.MOTOR_N,"N"]]),"VAR"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},xr={init:function(){this.setColour(Zu),this.appendDummyInput().appendField(ht.Msg.MIXBOT).appendField(ht.Msg.MIXLY_MOTOR).appendField(new ht.FieldDropdown([[ht.Msg.TEXT_TRIM_LEFT,"1"],[ht.Msg.TEXT_TRIM_RIGHT,"2"],[ht.Msg.TEXT_TRIM_BOTH,"0"]]),"wheel"),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"PWR"],[ht.Msg.MIXLY_SPEED,"SPEED"],[ht.Msg.MIXLY_MIXBOT_MOTOR_TURNS,"TURNS"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_MIXBOT_MOVE_TOOLTIP)}},Xr={init:function(){this.setColour(Zu),this.appendDummyInput().appendField(ht.Msg.MIXLY_MIXBOT_BUZZER),this.appendDummyInput().appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_ON,"0"],[ht.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_OFF,"1"]]),"on_off"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},br={init:function(){this.setColour(Zu),this.appendDummyInput().appendField(ht.Msg.BITBOT).appendField(new ht.FieldDropdown([[ht.Msg.blockpy_forward,"F"],[ht.Msg.blockpy_backward,"B"],[ht.Msg.blockpy_left,"L"],[ht.Msg.blockpy_right,"R"]]),"VAR"),this.appendValueInput("speed").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Vr={init:function(){this.setColour(Zu),this.appendDummyInput().appendField(ht.Msg.BITBOT).appendField(new ht.FieldDropdown([[ht.Msg.MOTOR_P,"P"],[ht.Msg.MOTOR_N,"N"]]),"VAR"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},yr={init:function(){this.setColour(Zu),this.appendDummyInput().appendField(ht.Msg.BITBOT).appendField(ht.Msg.MIXLY_MOTOR).appendField(new ht.FieldDropdown([[ht.Msg.TEXT_TRIM_LEFT,"0"],[ht.Msg.TEXT_TRIM_RIGHT,"1"]]),"wheel"),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_Direction).appendField(new ht.FieldDropdown([[ht.Msg.CLOCKWISE,"CW"],[ht.Msg.ANTI_CLOCKWISE,"CCW"],[ht.Msg.MOTOR_P,"P"],[ht.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Br={init:function(){this.setColour(Zu),this.appendValueInput("bright").appendField(ht.Msg.MIXLY_MIXBOT_SOUND_SET_LOUDNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_LED_SETONOFF)}},Gr={init:function(){this.setColour(Zu),this.appendDummyInput().appendField(ht.Msg.MIXLY_MIXBOT_SOUND_LOUDNESS+"(%)"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_LED_GETONOFF)}},Ur={init:function(){this.setColour(Zu),this.appendValueInput("bright").appendField(ht.Msg.MIXLY_SETTING+ht.Msg.MIXLY_MIXBOT_BUZZER+ht.Msg.MIXLY_MP3_VOL),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_LED_SETONOFF)}},wr={init:function(){this.setColour(Zu),this.appendDummyInput().appendField(ht.Msg.MIXLY_GET+ht.Msg.MIXLY_MIXBOT_BUZZER+ht.Msg.MIXLY_MP3_VOL+"(%)"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_LED_GETONOFF)}},kr={init:function(){this.setColour(Zu),this.appendValueInput("PATH").appendField(ht.Msg.MIXLY_RECORD_AUDIO).appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.appendValueInput("TIME").setCheck(Number).appendField(ht.Msg.MIXLY_GET_PRESSES_TIME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Hr={init:function(){this.setColour(Zu),this.appendValueInput("PATH").appendField(ht.Msg.MIXLY_PLAY_AUDIO).appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Wr={init:function(){this.setColour(Zu),this.appendValueInput("PATH").appendField(ht.Msg.MIXLY_PLAY_ONLINE_AUDIO).appendField("URL"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Kr={init:function(){this.setColour(Zu),this.appendDummyInput().appendField(ht.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(ht.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ht.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},Jr={init:function(){this.setColour(Zu),this.appendDummyInput().appendField(ht.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Qr={init:function(){this.setColour(Zu),this.appendDummyInput().appendField(ht.Msg.LISTS_SET_INDEX_SET+ht.Msg.ME_GO_MOTOR_EXTERN).appendField(ht.Msg.PIN_NUMBERING).appendField(new ht.FieldDropdown([["1","1"],["2","2"]]),"index"),this.appendValueInput("duty").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.blynk_IOT_IR_POWER+ht.Msg.MIXLY_PINMODEOUT),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip()}},zr={init:function(){this.setColour(Zu),this.appendDummyInput().appendField(ht.Msg.MIXLY_GET+ht.Msg.ME_GO_MOTOR_EXTERN).appendField(ht.Msg.PIN_NUMBERING).appendField(new ht.FieldDropdown([["1","1"],["2","2"]]),"index"),this.appendDummyInput().setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.blynk_IOT_IR_POWER+ht.Msg.MIXLY_PINMODEOUT+ht.Msg.MIXLY_DUTY_RATIO),this.setOutput(!0,Number),this.setInputsInline(!0)}},qr={init:function(){this.setColour(Zu),this.appendDummyInput().appendField(ht.Msg.LISTS_SET_INDEX_SET+ht.Msg.ME_GO_MOTOR_EXTERN).appendField(ht.Msg.MIXLY_ALL+ht.Msg.PIN_NUMBERING),this.appendValueInput("duty").setCheck(Number).setAlign(ht.ALIGN_RIGHT).appendField(ht.Msg.blynk_IOT_IR_POWER+ht.Msg.MIXLY_PINMODEOUT+ht.Msg.MIXLY_FREQUENCY),this.appendDummyInput().appendField("Hz"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_MIXBOT_MOTOR_EXTERN_TOOLTIP)}},jr="#90A244",Zr={init:function(){this.setColour(jr),this.appendDummyInput("").appendField(ht.Msg.CONTROLS_FOR_INPUT_WITH+"uart").appendField(new ht.FieldDropdown([["uart1","uart1"],["uart2","uart2"]]),"key"),this.appendValueInput("SUB").appendField(ht.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(ht.Msg.MIXLY_SETUP+ht.Msg.LISTS_SET_INDEX_INPUT_TO+"MixGo AI"+ht.Msg.MSG.catSensor),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},$r={init:function(){this.setColour(jr),this.appendValueInput("VAR").appendField(ht.Msg.MIXLY_QR_CODE+ht.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(ht.Msg.MIXLY_ALL_CODE_ANALYSIS),this.appendDummyInput().appendField(ht.Msg.MIXLY_GET).appendField(new ht.FieldDropdown([[ht.Msg.OLED_STRING,"info1"],[ht.Msg.MIXLY_POSITION_XY+"-xywh","rect"],["x"+ht.Msg.MIXLY_POSITION_XY,"rect[0]"],["y"+ht.Msg.MIXLY_POSITION_XY,"rect[1]"],["w"+ht.Msg.MIXLY_POSITION_XY,"rect[2]"],["h"+ht.Msg.MIXLY_POSITION_XY,"rect[3]"],[ht.Msg.MICROPYTHON_HUSKYLENS_X_CENTERED+ht.Msg.MIXLY_POSITION_XY,"xc"],[ht.Msg.MICROPYTHON_HUSKYLENS_Y_CENTERED+ht.Msg.MIXLY_POSITION_XY,"yc"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_AI_SENSOR_QR_CODE_TOOLTIP)}},tl={init:function(){this.setColour(jr),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(ht.Msg.MIXLY_GET).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_QR_CODE+ht.Msg.MIXPY_OBJECT,"qrcode"],[ht.Msg.MIXLY_BAR_CODE+ht.Msg.MIXPY_OBJECT,"barcode"],[ht.Msg.MIXLY_TAG+ht.Msg.MIXPY_OBJECT,"apriltag"]]),"TYPE"),this.appendDummyInput().appendField(ht.Msg.MIXLY_ANALYSIS_RESULT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip()}},el={init:function(){this.setColour(jr),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ht.Msg.MIXLY_QR_CODE_RECOGNTITION),this.appendDummyInput().setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.PROCEDURES_DEFRETURN_RETURN+"[qrcode]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_AI_SENSOR_QR_CODE_RECOGNTITION_TOOLTIP)}},il={init:function(){this.setColour(jr),this.appendValueInput("SUB"),this.appendValueInput("RX").appendField(ht.Msg.MIXLY_SETTING+ht.Msg.MIXLY_ETHERNET_CLINET_PORT).appendField("RX#").setCheck(Number).setAlign(ht.inputs.Align.RIGHT),this.appendValueInput("TX").appendField("TX#").setCheck(Number).setAlign(ht.inputs.Align.RIGHT),this.appendDummyInput().appendField(ht.Msg.SOFT_RESET+ht.Msg.MIXLY_ESP32_RGB_WRITE).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[ht.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"mode"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_AI_SENSOR_CONFIG_TOOLTIP)}},nl={init:function(){this.setColour(jr),this.appendValueInput("SUB"),this.appendValueInput("led1").appendField(ht.Msg.MIXLY_SETTING).appendField("RGB1").setCheck(Number).setAlign(ht.inputs.Align.RIGHT),this.appendValueInput("led2").appendField("RGB2").setCheck(Number).setAlign(ht.inputs.Align.RIGHT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_AI_SENSOR_CONFIG_TOOLTIP)}},sl={init:function(){this.setColour(jr),this.appendValueInput("VAR").appendField(ht.Msg.MIXLY_BAR_CODE+ht.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(ht.Msg.MIXLY_ALL_CODE_ANALYSIS),this.appendDummyInput().appendField(ht.Msg.MIXLY_GET).appendField(new ht.FieldDropdown([[ht.Msg.OLED_STRING,"info1"],[ht.Msg.MIXLY_POSITION_XY+"-xywh","rect"],["x"+ht.Msg.MIXLY_POSITION_XY,"rect[0]"],["y"+ht.Msg.MIXLY_POSITION_XY,"rect[1]"],["w"+ht.Msg.MIXLY_POSITION_XY,"rect[2]"],["h"+ht.Msg.MIXLY_POSITION_XY,"rect[3]"],[ht.Msg.MICROPYTHON_HUSKYLENS_X_CENTERED+ht.Msg.MIXLY_POSITION_XY,"xc"],[ht.Msg.MICROPYTHON_HUSKYLENS_Y_CENTERED+ht.Msg.MIXLY_POSITION_XY,"yc"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_AI_SENSOR_BAR_CODE_TOOLTIP)}},ol={init:function(){this.setColour(jr),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ht.Msg.MIXLY_BAR_CODE_RECOGNTITION),this.appendDummyInput().setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.PROCEDURES_DEFRETURN_RETURN+"[barcode]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_AI_SENSOR_BAR_CODE_RECOGNTITION_TOOLTIP)}},_l={init:function(){this.setColour(jr),this.appendValueInput("VAR").appendField(ht.Msg.MIXLY_TAG+ht.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(ht.Msg.MIXLY_ALL_CODE_ANALYSIS),this.appendDummyInput().appendField(ht.Msg.MIXLY_GET).appendField(new ht.FieldDropdown([[ht.Msg.OLED_STRING,"info1"],[ht.Msg.blockpy_turtle_rotate+ht.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"info2"],[ht.Msg.MIXLY_POSITION_XY+"-xywh","rect"],["x"+ht.Msg.MIXLY_POSITION_XY,"rect[0]"],["y"+ht.Msg.MIXLY_POSITION_XY,"rect[1]"],["w"+ht.Msg.MIXLY_POSITION_XY,"rect[2]"],["h"+ht.Msg.MIXLY_POSITION_XY,"rect[3]"],[ht.Msg.MICROPYTHON_HUSKYLENS_X_CENTERED+ht.Msg.MIXLY_POSITION_XY,"xc"],[ht.Msg.MICROPYTHON_HUSKYLENS_Y_CENTERED+ht.Msg.MIXLY_POSITION_XY,"yc"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_AI_SENSOR_TAG_TOOLTIP)}},pl={init:function(){this.setColour(jr),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ht.Msg.MIXLY_TAG_RECOGNTITION),this.appendDummyInput().setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.PROCEDURES_DEFRETURN_RETURN+"[tag]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_AI_SENSOR_TAG_RECOGNTITION_TOOLTIP)}},al={init:function(){this.setColour(jr),this.appendValueInput("VAR").appendField(ht.Msg.MIXLY_LINE+ht.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(ht.Msg.MIXLY_ALL_CODE_ANALYSIS),this.appendDummyInput().appendField(ht.Msg.MIXLY_GET).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_LINE_ANGLE,"info1"],[ht.Msg.MIXLY_POSITION_XY+"-x1x2y1y2","rect"],["x1"+ht.Msg.MIXLY_POSITION_XY,"rect[0]"],["x2"+ht.Msg.MIXLY_POSITION_XY,"rect[1]"],["y1"+ht.Msg.MIXLY_POSITION_XY,"rect[2]"],["y2"+ht.Msg.MIXLY_POSITION_XY,"rect[3]"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_AI_SENSOR_LINE_TOOLTIP)}},ul={init:function(){this.setColour(jr),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ht.Msg.MIXLY_LINE_RECOGNTITION),this.appendValueInput("VAR1").appendField(ht.Msg.MIXLY_ESP32_THRESHOLD).setCheck(Number).setAlign(ht.inputs.Align.RIGHT),this.appendValueInput("VAR2").appendField(ht.Msg.MIXLY_LINE_RECOGNTITION_ANGLE).setCheck(Number).setAlign(ht.inputs.Align.RIGHT),this.appendValueInput("VAR3").appendField(ht.Msg.MIXLY_LINE_RECOGNTITION_SLOPE).setCheck(Number).setAlign(ht.inputs.Align.RIGHT),this.appendDummyInput().setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.PROCEDURES_DEFRETURN_RETURN+"[line]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_AI_SENSOR_LINE_RECOGNTITION_TOOLTIP)}},rl={init:function(){this.setColour(jr),this.appendValueInput("VAR").appendField(ht.Msg.MIXLY_CIRCLE+ht.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(ht.Msg.MIXLY_ALL_CODE_ANALYSIS),this.appendDummyInput().appendField(ht.Msg.MIXLY_GET).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_CIRCLE_AREA,"info1"],[ht.Msg.MIXLY_POSITION_XY+"-xywh","rect"],["x"+ht.Msg.MIXLY_POSITION_XY,"rect[0]"],["y"+ht.Msg.MIXLY_POSITION_XY,"rect[1]"],["w"+ht.Msg.MIXLY_POSITION_XY,"rect[2]"],["h"+ht.Msg.MIXLY_POSITION_XY,"rect[3]"],[ht.Msg.MICROPYTHON_HUSKYLENS_X_CENTERED+ht.Msg.MIXLY_POSITION_XY,"xc"],[ht.Msg.MICROPYTHON_HUSKYLENS_Y_CENTERED+ht.Msg.MIXLY_POSITION_XY,"yc"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_AI_SENSOR_CIRCLE_TOOLTIP)}},ll={init:function(){this.setColour(jr),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ht.Msg.MIXLY_CIRCLE_RECOGNTITION),this.appendValueInput("VAR1").appendField(ht.Msg.MIXLY_ESP32_THRESHOLD).setCheck(Number).setAlign(ht.inputs.Align.RIGHT),this.appendValueInput("VAR2").appendField(ht.Msg.MIXLY_CIRCLE_RECOGNTITION_MIN).setCheck(Number).setAlign(ht.inputs.Align.RIGHT),this.appendValueInput("VAR3").appendField(ht.Msg.MIXLY_CIRCLE_RECOGNTITION_MAX).setCheck(Number).setAlign(ht.inputs.Align.RIGHT),this.appendDummyInput().setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.PROCEDURES_DEFRETURN_RETURN+"[circle]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_AI_SENSOR_CIRCLE_RECOGNTITION_TOOLTIP)}},dl={init:function(){this.setColour(jr),this.appendValueInput("VAR").appendField(ht.Msg.MIXLY_RECT+ht.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(ht.Msg.MIXLY_ALL_CODE_ANALYSIS),this.appendDummyInput().appendField(ht.Msg.MIXLY_GET).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_CIRCLE_AREA,"info1"],[ht.Msg.MIXLY_POSITION_XY+"-xywh","rect"],["x"+ht.Msg.MIXLY_POSITION_XY,"rect[0]"],["y"+ht.Msg.MIXLY_POSITION_XY,"rect[1]"],["w"+ht.Msg.MIXLY_POSITION_XY,"rect[2]"],["h"+ht.Msg.MIXLY_POSITION_XY,"rect[3]"],[ht.Msg.MICROPYTHON_HUSKYLENS_X_CENTERED+ht.Msg.MIXLY_POSITION_XY,"xc"],[ht.Msg.MICROPYTHON_HUSKYLENS_Y_CENTERED+ht.Msg.MIXLY_POSITION_XY,"yc"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_AI_SENSOR_RECT_TOOLTIP)}},Il={init:function(){this.setColour(jr),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ht.Msg.MIXLY_RECT_RECOGNTITION),this.appendValueInput("VAR1").appendField(ht.Msg.MIXLY_ESP32_THRESHOLD).setCheck(Number).setAlign(ht.inputs.Align.RIGHT),this.appendDummyInput().setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.PROCEDURES_DEFRETURN_RETURN+"[rect]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_AI_SENSOR_COLOR_RECOGNTITION_TOOLTIP)}},Tl={init:function(){this.setColour(jr),this.appendValueInput("VAR").appendField(ht.Msg.HTML_COLOUR+ht.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(ht.Msg.MIXLY_COLOR_ANALYSIS),this.appendDummyInput().appendField(ht.Msg.MIXLY_GET).appendField(new ht.FieldDropdown([["RGB"+ht.Msg.HTML_COLOUR,"[0]"],["LAB"+ht.Msg.MIXLY_COLOR_LAB,"[1]"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_AI_SENSOR_COLOR_TOOLTIP)}},hl={init:function(){this.setColour(jr),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ht.Msg.MIXLY_COLOR_RECOGNTITION),this.appendDummyInput().setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.PROCEDURES_DEFRETURN_RETURN+"color"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_AI_SENSOR_COLOR_RECOGNTITION_TOOLTIP)}},Ml={init:function(){this.setColour(jr),this.appendValueInput("VAR").appendField(ht.Msg.MIXLY_COLOR_CHASE+ht.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(ht.Msg.MIXLY_COLOR_CHASE_ANALYSIS),this.appendDummyInput().appendField(ht.Msg.MIXLY_GET).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_CIRCLE_AREA,"info1"],[ht.Msg.MIXLY_POSITION_XY+"-xywh","rect"],["x"+ht.Msg.MIXLY_POSITION_XY,"rect[0]"],["y"+ht.Msg.MIXLY_POSITION_XY,"rect[1]"],["w"+ht.Msg.MIXLY_POSITION_XY,"rect[2]"],["h"+ht.Msg.MIXLY_POSITION_XY,"rect[3]"],[ht.Msg.MICROPYTHON_HUSKYLENS_X_CENTERED+ht.Msg.MIXLY_POSITION_XY,"xc"],[ht.Msg.MICROPYTHON_HUSKYLENS_Y_CENTERED+ht.Msg.MIXLY_POSITION_XY,"yc"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_AI_SENSOR_CIRCLE_TOOLTIP)}},ml={init:function(){this.setColour(jr),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ht.Msg.MIXLY_COLOR_CHASE),this.appendValueInput("VAR1").appendField("LAB"+ht.Msg.MIXLY_COLOR_LAB).setAlign(ht.inputs.Align.RIGHT),this.appendValueInput("VAR2").appendField(ht.Msg.MIXLY_ESP32_THRESHOLD).setCheck(Number).setAlign(ht.inputs.Align.RIGHT),this.appendValueInput("VAR3").appendField(ht.Msg.MIXLY_COLOR_CHASE_MERGE).setCheck(Number).setAlign(ht.inputs.Align.RIGHT),this.appendDummyInput().setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.PROCEDURES_DEFRETURN_RETURN+"[colors]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_AI_SENSOR_CIRCLE_RECOGNTITION_TOOLTIP)}},Ol={init:function(){this.setColour(jr),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ht.Msg.MIXLY_LOCAL_TRAIN),this.appendValueInput("VAR1").appendField(ht.Msg.MIXLY_OBJECT_LIST).setAlign(ht.inputs.Align.RIGHT),this.appendValueInput("VAR2").appendField(ht.Msg.MICROPYTHON_HUSKYLENS_SAVE_AS+ht.Msg.MIXLY_MODEL_NAME).setAlign(ht.inputs.Align.RIGHT),this.appendValueInput("VAR3").appendField(ht.Msg.MIXLY_TRAIN_TIME).setAlign(ht.inputs.Align.RIGHT),this.appendValueInput("VAR4").appendField(ht.Msg.MIXLY_AipNlp_Topic_Title).setAlign(ht.inputs.Align.RIGHT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_AI_SENSOR_LOCAL_TRAIN_TOOLTIP)}},El={init:function(){this.setColour(jr),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ht.Msg.MIXLY_LOCAL_CLASS),this.appendValueInput("VAR1").appendField(ht.Msg.MIXLY_OBJECT_LIST).setAlign(ht.inputs.Align.RIGHT),this.appendValueInput("VAR2").appendField(ht.Msg.MIXLY_MODEL_NAME).setAlign(ht.inputs.Align.RIGHT),this.appendValueInput("VAR4").appendField(ht.Msg.MIXLY_AipNlp_Topic_Title).setAlign(ht.inputs.Align.RIGHT),this.appendDummyInput().setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.PROCEDURES_DEFRETURN_RETURN+"[objects]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_AI_SENSOR_MODEL_NAME_TOOLTIP)}},Rl={init:function(){this.setColour(jr),this.appendValueInput("VAR").appendField(ht.Msg.MIXLY_LOCAL_CLASS+ht.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(ht.Msg.MIXLY_COLOR_CHASE_ANALYSIS),this.appendDummyInput().appendField(ht.Msg.MIXLY_GET).appendField(new ht.FieldDropdown([["ID","info1"],[ht.Msg.MIXLY_CONFIDENCE_DEGREE,"info2"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_AI_SENSOR_LOCAL_CLASS_TOOLTIP)}},cl={init:function(){this.setColour(jr),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ht.Msg.MIXLY_MUSIC_RECORD),this.appendValueInput("VAR1").appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH).setAlign(ht.inputs.Align.RIGHT),this.appendValueInput("VAR2").appendField(ht.Msg.MIXPY_AI_AUDIO_TIME).setAlign(ht.inputs.Align.RIGHT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_AI_SENSOR_MUSIC_RECORD_TOOLTIP)}},gl={init:function(){this.setColour(jr),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ht.Msg.MIXLY_MUSIC_PLAY),this.appendValueInput("VAR1").appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH).setAlign(ht.inputs.Align.RIGHT),this.appendValueInput("VAR2").appendField(ht.Msg.MIXLY_MP3_VOL).setAlign(ht.inputs.Align.RIGHT),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Cl={init:function(){this.setColour(jr),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ht.Msg.MIXLY_YOLO_RECOGNIZE),this.appendValueInput("VAR1").appendField(ht.Msg.MIXLY_ANCHOR).setAlign(ht.inputs.Align.RIGHT),this.appendValueInput("VAR2").appendField(ht.Msg.MIXLY_MODEL_PATH).setAlign(ht.inputs.Align.RIGHT),this.appendValueInput("VAR4").appendField(ht.Msg.MIXLY_AipNlp_Topic_Title).setAlign(ht.inputs.Align.RIGHT),this.appendDummyInput().setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.PROCEDURES_DEFRETURN_RETURN+"[objects]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_AI_SENSOR_YOLO_RECOGNIZE_TOOLTIP)}},Sl={init:function(){this.setColour(jr),this.appendValueInput("VAR").appendField(ht.Msg.MIXLY_YOLO_RECOGNIZE+ht.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(ht.Msg.MIXLY_COLOR_CHASE_ANALYSIS),this.appendDummyInput().appendField(ht.Msg.MIXLY_GET).appendField(new ht.FieldDropdown([["ID","info1"],[ht.Msg.MIXLY_CONFIDENCE_DEGREE,"info2"],[ht.Msg.MIXLY_POSITION_XY+"-xywh","rect"],["x"+ht.Msg.MIXLY_POSITION_XY,"rect[0]"],["y"+ht.Msg.MIXLY_POSITION_XY,"rect[1]"],["w"+ht.Msg.MIXLY_POSITION_XY,"rect[2]"],["h"+ht.Msg.MIXLY_POSITION_XY,"rect[3]"],[ht.Msg.MICROPYTHON_HUSKYLENS_X_CENTERED+ht.Msg.MIXLY_POSITION_XY,"xc"],[ht.Msg.MICROPYTHON_HUSKYLENS_Y_CENTERED+ht.Msg.MIXLY_POSITION_XY,"yc"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_AI_SENSOR_YOLO_RECOGNIZE_RESULT_TOOLTIP)}},Al={init:function(){this.setColour(jr),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ht.Msg.MIXLY_AipSpeech_asr),this.appendValueInput("VAR1").appendField(ht.Msg.MIXLY_AI_SENSOR_ASR_RECOGNISE_CORPUS).setAlign(ht.inputs.Align.RIGHT),this.appendValueInput("VAR2").appendField(ht.Msg.MIXLY_ESP32_THRESHOLD).setAlign(ht.inputs.Align.RIGHT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_AI_SENSOR_ASR_RECOGNISE_TOOLTIP)}},Ll={init:function(){this.setColour(jr),this.appendValueInput("VAR").appendField(ht.Msg.MIXLY_LICENSEPLATE+ht.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(ht.Msg.MIXLY_ALL_CODE_ANALYSIS),this.appendDummyInput().appendField(ht.Msg.MIXLY_GET).appendField(new ht.FieldDropdown([["ID","info1"],[ht.Msg.MIXLY_POSITION_XY+"-xywh","rect"],["x"+ht.Msg.MIXLY_POSITION_XY,"rect[0]"],["y"+ht.Msg.MIXLY_POSITION_XY,"rect[1]"],["w"+ht.Msg.MIXLY_POSITION_XY,"rect[2]"],["h"+ht.Msg.MIXLY_POSITION_XY,"rect[3]"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_AI_SENSOR_LICENSEPLATE_TOOLTIP)}},Nl={init:function(){this.setColour(jr),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ht.Msg.MIXLY_AipOcr_licensePlate),this.appendDummyInput().setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.PROCEDURES_DEFRETURN_RETURN+"[licensePlate]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_AI_SENSOR_LICENSEPLATE_RECOGNTITION_TOOLTIP)}},Dl={init:function(){this.setColour(jr),this.appendValueInput("VAR").appendField(ht.Msg.MIXLY_FACE+ht.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(ht.Msg.MIXLY_ALL_CODE_ANALYSIS),this.appendDummyInput().appendField(ht.Msg.MIXLY_GET).appendField(new ht.FieldDropdown([["ID","info1"],[ht.Msg.MIXLY_CONFIDENCE_DEGREE,"info2"],[ht.Msg.MIXLY_POSITION_XY+"-xywh","rect"],["x"+ht.Msg.MIXLY_POSITION_XY,"rect[0]"],["y"+ht.Msg.MIXLY_POSITION_XY,"rect[1]"],["w"+ht.Msg.MIXLY_POSITION_XY,"rect[2]"],["h"+ht.Msg.MIXLY_POSITION_XY,"rect[3]"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_AI_SENSOR_FACE_TOOLTIP)}},fl={init:function(){this.setColour(jr),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ht.Msg.MIXLY_AipFace),this.appendDummyInput().setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.PROCEDURES_DEFRETURN_RETURN+"[face]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_AI_SENSOR_BAR_FACE_CLASSIFIER_TOOLTIP)}},Pl={init:function(){this.setColour(jr),this.appendValueInput("VAR").appendField(ht.Msg.MIXLY_20OBJECTS+ht.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(ht.Msg.MIXLY_ALL_CODE_ANALYSIS),this.appendDummyInput().appendField(ht.Msg.MIXLY_GET).appendField(new ht.FieldDropdown([["ID","info1"],[ht.Msg.MIXLY_CONFIDENCE_DEGREE,"info2"],[ht.Msg.MIXLY_POSITION_XY+"-xywh","rect"],["x"+ht.Msg.MIXLY_POSITION_XY,"rect[0]"],["y"+ht.Msg.MIXLY_POSITION_XY,"rect[1]"],["w"+ht.Msg.MIXLY_POSITION_XY,"rect[2]"],["h"+ht.Msg.MIXLY_POSITION_XY,"rect[3]"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_AI_SENSOR_20OBJECTS_TOOLTIP)}},Fl={init:function(){this.setColour(jr),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ht.Msg.MIXLY_FIND_20OBJECTS),this.appendDummyInput().setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.PROCEDURES_DEFRETURN_RETURN+"[20objects]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_AI_SENSOR_BAR_FIND_20OBJECTS_TOOLTIP)}},vl={init:function(){this.setColour(205),this.appendDummyInput("").appendField(ht.Msg.MIXLY_SETUP).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_AipSpeech_asr,"ASR"],[ht.Msg.MIXLY_AI_UNIT,"UNIT"]]),"CTYPE"),this.appendValueInput("SUB").appendField(ht.Msg.MIXLY_Client).setAlign(ht.inputs.Align.RIGHT),this.appendValueInput("API_KEY").appendField("API_KEY").setAlign(ht.inputs.Align.RIGHT),this.appendValueInput("SECRET_KEY").appendField("SECRET_KEY").setAlign(ht.inputs.Align.RIGHT),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Yl={init:function(){this.setColour(205),this.appendValueInput("SUB").appendField(ht.Msg.MIXLY_AI_UNIT).appendField(ht.Msg.MIXLY_Client).setAlign(ht.inputs.Align.RIGHT),this.appendValueInput("ID").appendField("ID").setAlign(ht.inputs.Align.RIGHT),this.appendValueInput("STR").appendField(ht.Msg.OLED_STRING).setAlign(ht.inputs.Align.RIGHT),this.setInputsInline(!0),this.setOutput(!0)}},xl={init:function(){this.setColour(205),this.appendValueInput("SUB").appendField(ht.Msg.MIXLY_AipSpeech_asr).appendField(ht.Msg.MIXLY_Client).setAlign(ht.inputs.Align.RIGHT),this.appendValueInput("FILE").appendField(ht.Msg.MIXPY_AI_AUDIO_TIME).setAlign(ht.inputs.Align.RIGHT),this.appendDummyInput("").appendField(ht.Msg.MIXLY_LANGUAGE).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_AI_LANGUAGE_CHINESE,"1537"],[ht.Msg.MIXLY_AI_LANGUAGE_ENGLISH,"1737"],[ht.Msg.MIXLY_AI_LANGUAGE_CANTONESE,"1637"]]),"LANGUAGE"),this.setInputsInline(!0),this.setOutput(!0)}},Xl="#2FAD7A",bl={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:Xl,helpUrl:ht.Msg.MPYTHON_BLYNK_TERMINAL_WIDGET_VPIN_HELPURL,tooltip:ht.Msg.MPYTHON_BLYNK_TERMINAL_WIDGET_VPIN_TOOLTIP,message0:ht.Msg.MPYTHON_BLYNK_TERMINAL_WIDGET_VPIN_MESSAGE0,args0:[{check:Number,type:"input_value",name:"virtual_pin"}]})}},Vl={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:Xl,helpUrl:ht.Msg.MPYTHON_BLYNK_SYNC_VIRTUAL_HELPURL,tooltip:ht.Msg.MPYTHON_BLYNK_SYNC_VIRTUAL_TOOLTIP,message0:ht.Msg.MPYTHON_BLYNK_SYNC_VIRTUAL_MESSAGE0,args0:[{check:Number,type:"input_value",name:"virtual_pin"}]})}},yl={init:function(){this.jsonInit({inputsInline:!0,colour:Xl,helpUrl:ht.Msg.MPYTHON_BLYNK_ON_DISCONNECTED_HELPURL,tooltip:ht.Msg.MPYTHON_BLYNK_ON_DISCONNECTED_TOOLTIP,message0:ht.Msg.MPYTHON_BLYNK_ON_DISCONNECTED_MESSAGE0}),this.appendStatementInput("DO").appendField(ht.CONTROLS_REPEAT_INPUT_DO)}},Bl={init:function(){this.jsonInit({inputsInline:!0,colour:Xl,helpUrl:ht.Msg.MPYTHON_BLYNK_ON_CONNECTED_HELPURL,tooltip:ht.Msg.MPYTHON_BLYNK_ON_CONNECTED_TOOLTIP,message0:ht.Msg.MPYTHON_BLYNK_ON_CONNECTED_MESSAGE0}),this.appendStatementInput("DO").appendField(ht.CONTROLS_REPEAT_INPUT_DO)}},Gl={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:Xl,helpUrl:ht.Msg.MPYTHON_BLYNKTIMER_RUN_HELPURL,tooltip:ht.Msg.MPYTHON_BLYNKTIMER_RUN_TOOLTIP,message0:ht.Msg.MPYTHON_BLYNKTIMER_RUN_MESSAGE0})}},Ul={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:Xl,helpUrl:ht.Msg.MPYTHON_BLYNK_RUN_HELPURL,tooltip:ht.Msg.MPYTHON_BLYNK_RUN_TOOLTIP,message0:ht.Msg.MPYTHON_BLYNK_RUN_MESSAGE0})}},wl={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:Xl,helpUrl:ht.Msg.MPYTHON_BLYNK_APP_NOTIFY_HELPURL,tooltip:ht.Msg.MPYTHON_BLYNK_APP_NOTIFY_TOOLTIP,message0:ht.Msg.MPYTHON_BLYNK_APP_NOTIFY_MESSAGE0,args0:[{check:String,type:"input_value",name:"notification"}]})}},kl={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:Xl,helpUrl:ht.Msg.MPYTHON_BLYNK_STOP_TIMERS_HELPURL,tooltip:ht.Msg.MPYTHON_BLYNKTIMER_TOOLTIP,message0:ht.Msg.MPYTHON_BLYNK_STOP_TIMERS_MESSAGE0,args0:[{check:Number,type:"input_value",name:"timer_num"}]})}},Hl={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:Xl,helpUrl:ht.Msg.MPYTHON_BLYNK_SET_PROPERTY_HELPURL,tooltip:ht.Msg.MPYTHON_BLYNK_SET_PROPERTY_TOOLTIP,message0:ht.Msg.MPYTHON_BLYNK_SET_PROPERTY_MESSAGE0,args0:[{check:String,type:"input_value",name:"attribute_name"},{type:"input_value",name:"attribute_value"}]})}},Wl={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:Xl,helpUrl:ht.Msg.MPYTHON_BLYNK_EMAIL_HELPURL,tooltip:ht.Msg.MPYTHON_BLYNK_EMAIL_TOOLTIP,message0:ht.Msg.MPYTHON_BLYNK_EMAIL_MESSAGE0,args0:[{check:String,type:"input_value",name:"TargetEmail"},{check:String,type:"input_value",name:"subject"},{check:String,type:"input_value",name:"body"}]})}},Kl={init:function(){this.jsonInit({inputsInline:!0,output:null,colour:Xl,helpUrl:ht.Msg.MPYTHON_BLYNK_GET_TIMERS_HELPURL,tooltip:ht.Msg.MPYTHON_BLYNK_GET_TIMERS_TOOLTIP,message0:ht.Msg.MPYTHON_BLYNK_GET_TIMERS_MESSAGE0})}},Jl={init:function(){this.jsonInit({message0:ht.Msg.MPYTHON_BLYNKTIMER_MESSAGE0,colour:Xl,helpUrl:ht.Msg.MPYTHON_BLYNKTIMER_HELPURL,tooltip:ht.Msg.MPYTHON_BLYNKTIMER_TOOLTIP,args0:[{check:Number,type:"input_value",name:"Num"},{options:[[ht.Msg.MIXLY_PYTHON_PERIODIC,"False"],[ht.Msg.MIXLY_PYTHON_ONE_SHOT,"True"]],type:"field_dropdown",name:"Timer_mode"},{check:Number,type:"input_value",name:"period"}]}),this.appendStatementInput("DO").appendField(ht.CONTROLS_REPEAT_INPUT_DO)}},Ql={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:Xl,helpUrl:ht.Msg.MPYTHON_BLYNK_SENSOR_DATA_TO_APP_HELPURL,tooltip:ht.Msg.MPYTHON_BLYNK_SENSOR_DATA_TO_APP_TOOLTIP,message0:ht.Msg.MPYTHON_BLYNK_SENSOR_DATA_TO_APP_MESSAGE0,args0:[{type:"input_value",name:"sensor_data"},{check:Number,type:"input_value",name:"virtual_pin"}]})}},zl={init:function(){this.jsonInit({inputsInline:!0,colour:Xl,helpUrl:ht.Msg.MPYTHON_BLYNK_APP_DATA_HELPURL,tooltip:ht.Msg.MPYTHON_BLYNK_SENSOR_DATA_TO_APP_TOOLTIP,message0:ht.Msg.MPYTHON_BLYNK_APP_DATA_MESSAGE0,args0:[{check:Number,type:"input_value",name:"virtual_pin"},{type:"input_value",name:"virtual_pin_val"}]}),this.appendStatementInput("DO").appendField(ht.CONTROLS_REPEAT_INPUT_DO)}},ql={init:function(){this.jsonInit({nextStatement:null,previousStatement:null,colour:Xl,helpUrl:ht.Msg.MPYTHON_BLYNK_SETUP_HELPURL,tooltip:ht.Msg.MPYTHON_BLYNK_SETUP_TOOLTIP,message0:ht.Msg.MPYTHON_BLYNK_SETUP_MESSAGE0,args0:[{type:"input_dummy"},{check:String,type:"input_value",name:"server"},{check:Number,type:"input_value",name:"port"},{check:String,type:"input_value",name:"auth"}]})}},jl=140,Zl={init:function(){this.setColour(jl),this.appendDummyInput().appendField(ht.Msg.MIXLY_LED_ON_BOARD+"I2C"),this.setOutput(!0),this.setInputsInline(!0)}},$l={init:function(){this.setColour(jl),this.appendDummyInput().appendField(ht.Msg.MIXLY_LED_ON_BOARD+"SPI"),this.setOutput(!0),this.setInputsInline(!0)}},td={init:function(){this.setColour(jl),this.appendValueInput("SUB").appendField("I2C "+ht.Msg.MIXLY_SETUP).setCheck("var"),this.appendValueInput("TX",Number).appendField("SCL").setCheck(Number).setAlign(ht.inputs.Align.RIGHT),this.appendValueInput("RX",Number).appendField("SDA").setCheck(Number).setAlign(ht.inputs.Align.RIGHT),this.appendValueInput("freq").setCheck(Number).appendField(ht.Msg.MIXLY_FREQUENCY).setAlign(ht.inputs.Align.RIGHT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_I2C_INIT)}},ed={init:function(){this.setColour(jl),this.appendValueInput("VAR").appendField("I2C").setCheck("var"),this.appendValueInput("address").setCheck(Number).appendField(ht.Msg.MIXLY_ESP32_RNUMBER),this.appendValueInput("data").setCheck(Number).appendField(ht.Msg.LANG_MATH_BYTE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_MICROBIT_JS_I2C_READ)}},id={init:function(){this.setColour(jl),this.appendValueInput("VAR").appendField("I2C").setCheck("var"),this.appendValueInput("address").setCheck(Number).appendField(ht.Msg.MIXLY_ESP32_WNUMBER),this.appendValueInput("data").setCheck(Number).appendField(ht.Msg.MIXLY_MICROBIT_JS_I2C_VALUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_MICROBIT_JS_I2C_WRITE)}},nd={init:function(){this.setColour(jl),this.appendValueInput("VAR").appendField("I2C").setCheck("var"),this.appendDummyInput().appendField(ht.Msg.MIXLY_ESP32_I2C_SCAN1+ht.Msg.MIXLY_ESP32_I2C_SCAN2),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_I2C_SCAN)}},sd={init:function(){this.setColour(jl),this.appendValueInput("VAR").setCheck("var").appendField(ht.Msg.MIXLY_ESP32_SPI_INIT),this.appendValueInput("freq").setCheck(Number).appendField(ht.Msg.MIXLY_SERIAL_BEGIN),this.appendValueInput("sck").setCheck(Number).appendField("SCK"),this.appendValueInput("mosi").setCheck(Number).appendField("MOSI"),this.appendValueInput("miso").setCheck(Number).appendField("MISO"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_SPI_INIT_TOOLTIP)}},od={init:function(){this.setColour(jl),this.appendValueInput("VAR").setCheck("var").appendField("SPI"),this.appendValueInput("data").setCheck(Number).appendField(ht.Msg.MIXLY_SETTING+ht.Msg.MIXLY_SERIAL_BEGIN),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_SPI_SET)}},_d={init:function(){this.setColour(jl),this.appendValueInput("VAR").setCheck("var").appendField("SPI"),this.appendValueInput("data").setCheck(Number).appendField(ht.Msg.MIXLY_ESP32_SET+ht.Msg.MIXLY_ESP32_SPI_BUFFER),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_SPI_BUFFER_SET)}},pd={init:function(){this.setColour(jl),this.appendValueInput("VAR").setCheck("var").appendField("SPI"),this.appendValueInput("data").setCheck(Number).appendField(ht.Msg.MIXLY_SERIAL_READ),this.appendDummyInput("").appendField(ht.Msg.MIXLY_4DIGITDISPLAY_NOMBER2+ht.Msg.LANG_MATH_BYTE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_SPI_READ)}},ad={init:function(){this.setColour(jl),this.appendValueInput("VAR").setCheck("var").appendField("SPI"),this.appendValueInput("data").setCheck(Number).appendField(ht.Msg.MIXLY_SERIAL_READ),this.appendDummyInput("").appendField(ht.Msg.MIXLY_4DIGITDISPLAY_NOMBER2+ht.Msg.LANG_MATH_BYTE+" "+ht.Msg.MIXLY_ESP32_SPI_OUTPUT),this.appendValueInput("val").setCheck(Number),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_SPI_READ_OUTPUT)}},ud={init:function(){this.setColour(jl),this.appendValueInput("VAR").setCheck("var").appendField("SPI"),this.appendValueInput("data").setCheck("var").appendField(ht.Msg.MIXLY_SERIAL_READ+ht.Msg.MIXLY_ESP32_SPI_BUFFER),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_SPI_READINTO)}},rd={init:function(){this.setColour(jl),this.appendValueInput("VAR").setCheck("var").appendField("SPI"),this.appendValueInput("data").setCheck("var").appendField(ht.Msg.MIXLY_SERIAL_READ+ht.Msg.MIXLY_ESP32_SPI_BUFFER),this.appendValueInput("val").setCheck(Number).appendField(ht.Msg.MIXLY_ESP32_SPI_OUTPUT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_SPI_READINTO_OUTPUT)}},ld={init:function(){this.setColour(jl),this.appendValueInput("VAR").setCheck("var").appendField("SPI"),this.appendValueInput("data").setCheck(String).appendField(ht.Msg.MIXLY_ESP32_WRITE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_SPI_WRITE)}},dd={init:function(){this.setColour(jl),this.appendValueInput("VAR").setCheck("var").appendField("SPI"),this.appendValueInput("data").setCheck(String).appendField(ht.Msg.MIXLY_ESP32_WRITE),this.appendValueInput("val").setCheck("var").appendField(ht.Msg.MIXLY_ESP32_BUFFER_READ),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_SPI_WRITE_READINTO)}},Id={init:function(){this.setColour(jl),this.appendValueInput("VAR").setCheck("var").appendField("I2C"),this.appendDummyInput().appendField(ht.Msg.MIXLY_ESP32_READ),this.setOutput(!0,Number)}},Td={init:function(){this.setColour(jl),this.appendValueInput("VAR").setCheck("var").appendField("I2C"),this.appendDummyInput().appendField(ht.Msg.MIXLY_ESP32_READ+ht.Msg.MIXLY_ESP32_SUCCESS),this.setOutput(!0,Boolean),this.setTooltip(ht.Msg.MIXLY_ESP32_I2C_AVAILABLE)}},hd={init:function(){this.setColour(jl),this.appendValueInput("PIN",Number).appendField(ht.Msg.MIXLY_I2C_SLAVE_ONRECEIVE).setCheck(Number),this.appendStatementInput("DO").appendField(ht.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Md={init:function(){this.setColour(jl),this.appendValueInput("VAR").setCheck("var").appendField("OneWire "+ht.Msg.MIXLY_SETUP),this.appendValueInput("BUS").setCheck(Number).appendField(ht.Msg.MIXLY_PIN),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_OW_INIT)}},md={init:function(){this.setColour(jl),this.appendValueInput("VAR").setCheck("var").appendField("OneWire"),this.appendDummyInput().appendField(ht.Msg.MIXLY_ESP32_ONEWIRE_SCAN),this.setOutput(!0,"List"),this.setTooltip(ht.Msg.MIXLY_ESP32_OW_SCAN)}},Od={init:function(){this.setColour(jl),this.appendValueInput("VAR").setCheck("var").appendField("OneWire"),this.appendDummyInput().appendField(ht.Msg.MIXLY_ESP32_ONEWIRE_READ),this.setOutput(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_OW_READ)}},Ed={init:function(){this.setColour(jl),this.appendValueInput("VAR").setCheck("var").appendField("OneWire"),this.appendDummyInput("").appendField(ht.Msg.MIXLY_ESP32_WRITE).appendField(new ht.FieldDropdown([[ht.Msg.LANG_MATH_STRING,"write"],[ht.Msg.LANG_MATH_BYTE,"writebyte"]]),"op"),this.appendValueInput("byte").setCheck([Number,String]),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_OW_WRITE)}},Rd={init:function(){this.setColour(jl),this.appendValueInput("VAR").appendField("OneWire").setCheck("var"),this.appendValueInput("byte").setCheck(String).appendField(ht.Msg.LISTS_SET_INDEX_SET).appendField("ROM"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_OW_SELECT)}},cd={init:function(){this.setColour(jl),this.appendValueInput("VAR").appendField("OneWire").setCheck("var"),this.appendDummyInput().appendField(ht.Msg.blockpy_turtle_reset),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_OW_RESET)}},gd={init:function(){this.setColour(jl),this.appendValueInput("PIN").appendField(ht.Msg.MIXLY_SETUP+ht.Msg.MIXLY_IR_RECEIVE),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROPYTHON_SOCKET_TYPE).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_IR_INPUT1,"8"],[ht.Msg.MIXLY_IR_INPUT2,"16"],[ht.Msg.MIXLY_IR_INPUT3,"0"],[ht.Msg.MIXLY_TR_SEND_RC,"RC5"]]),"type"),this.appendValueInput("SUB").appendField(ht.Msg.CONTROLS_REPEAT_INPUT_DO+ht.Msg.MIXLY_ESP32_ONENET_SUB),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Cd={init:function(){this.setColour(jl),this.appendDummyInput().appendField(ht.Msg.MIXlY_RECV_FUN),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_IR_CMD_CODE,"0"],[ht.Msg.MIXLY_IR_ADDR_CODE,"1"],[ht.Msg.MIXLY_IR_RAW_CODE,"2"],[ht.Msg.MIXLY_IR_PULSE,"3"]]),"index"),this.setOutput(!0),this.setInputsInline(!0)}},Sd={init:function(){this.setColour(jl),this.appendDummyInput().appendField(ht.Msg.MIXlY_RECV_FUN).appendField(new ht.FieldDropdown([[ht.Msg.MILY_PAUSE,"True"],[ht.Msg.MIXLY_RECOVER,"False"]]),"en"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Ad={init:function(){this.setColour(jl),this.appendDummyInput().appendField(ht.Msg.MIXlY_RECV_FUN),this.appendDummyInput().appendField(ht.Msg.MIXLY_IR_WHETHER_RECV),this.setOutput(!0),this.setInputsInline(!0)}},Ld={init:function(){this.setColour(jl),this.appendValueInput("time").appendField(ht.Msg.MIXlY_RECV_FUN).appendField(ht.Msg.MIXLY_IR_TIMEOUT),this.appendDummyInput().appendField(ht.Msg.MIXLY_MILLISECOND),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Nd={init:function(){this.setColour(jl),this.appendValueInput("PIN").appendField(ht.Msg.MIXLY_SETUP+ht.Msg.MIXLY_IR_SEND).appendField(ht.Msg.MIXLY_PIN),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROPYTHON_SOCKET_TYPE).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_IR_SEND_samsung1,"False"],[ht.Msg.MIXLY_IR_SEND_samsung2,"True"],[ht.Msg.MIXLY_TR_SEND_RC,"RC5"]]),"type").appendField(ht.Msg.MIXLY_MICROBIT_JS_BLE_POWER),this.appendValueInput("power"),this.appendDummyInput().appendField(ht.Msg.MATH_QUYU_SYMBOL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Dd={init:function(){this.setColour(jl),this.appendDummyInput().appendField(ht.Msg.MIXLY_IR_SEND),this.appendValueInput("cmd").appendField(ht.Msg.MIXLY_IR_CMD_CODE),this.appendValueInput("addr").appendField(ht.Msg.MIXLY_IR_ADDR_CODE),this.appendValueInput("toggle").appendField(ht.Msg.MIXLY_CONTROL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_TRANSMIT_CONVEN_DATA)}},fd={init:function(){this.setColour(jl),this.appendDummyInput().appendField(ht.Msg.MIXLY_IR_SEND),this.appendValueInput("LIST").appendField(ht.Msg.MIXLY_IR_PULSE).setAlign(ht.inputs.Align.RIGHT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Pd={init:function(){this.setColour(jl),this.appendDummyInput().appendField(ht.Msg.MIXLY_IR_SEND),this.appendValueInput("raw").appendField(ht.Msg.MIXLY_IR_RAW_CODE).setAlign(ht.inputs.Align.RIGHT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Fd={init:function(){this.setColour(jl),this.appendDummyInput().appendField(ht.Msg.MIXLY_IR_TRANSMIT_DONE),this.setOutput(!0),this.setInputsInline(!0)}},vd={init:function(){this.setColour(jl),this.appendValueInput("VAR").appendField(ht.Msg.MSG.catBLE).setCheck("var"),this.appendDummyInput().appendField(ht.Msg.MSG.catEthernet_init+ht.Msg.MIXLY_MICROBIT_PY_STORAGE_AS+ht.Msg.MSG.catBLE_UART),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Yd={init:function(){this.setColour(jl),this.appendValueInput("VAR").appendField(ht.Msg.MSG.catBLE).setCheck("var"),this.appendDummyInput().appendField(ht.Msg.MSG.catEthernet_init+ht.Msg.MIXLY_MICROBIT_PY_STORAGE_AS+ht.Msg.MSG.catBLE_HID),this.appendValueInput("data").setCheck(String).appendField(ht.Msg.HTML_NAME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},xd={init:function(){this.setColour(jl),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(ht.Msg.MIXLY_ESP32_ONEWIRE_SCAN+ht.Msg.MSG.catBLE),this.setOutput(!0),this.setInputsInline(!0)}},Xd={init:function(){this.setColour(jl),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(ht.Msg.MIXLY_MIXGO_ESPNOW_MAC),this.setOutput(!0),this.setInputsInline(!0)}},bd={init:function(){this.setColour(jl),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(ht.Msg.MIXLY_TEXT_JOIN+ht.Msg.MSG.catBLE).appendField(new ht.FieldDropdown([[ht.Msg.HTML_NAME,"name"],[ht.Msg.MIXLY_ETHERNET_MAC_ADDRESS,"mac"]]),"mode"),this.appendValueInput("data").setCheck(String),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Vd={init:function(){this.setColour(jl),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(ht.Msg.MIXLY_ESP32_DISCONNECT_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},yd={init:function(){this.setColour(jl),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(ht.Msg.MSG.catBLE+ht.Msg.MIXLY_SEND_DATA),this.appendValueInput("data").appendField(ht.Msg.HTML_BODY),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Bd={init:function(){this.setColour(jl),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(ht.Msg.MSG.catBLE+ht.Msg.MIXLY_EMQX_IS_CONNECT),this.setOutput(!0),this.setInputsInline(!0)}},Gd={init:function(){this.setColour(jl),this.appendValueInput("VAR").setCheck("var"),this.appendValueInput("METHOD").appendField(ht.Msg.MIXLY_MIXGO_ESPNOW_RECV).appendField(ht.Msg.CONTROLS_REPEAT_INPUT_DO+ht.Msg.MIXLY_ESP32_ONENET_SUB),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Ud={init:function(){this.setColour(jl),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(ht.Msg.MIXLY_MIXGO_ESPNOW_RECV),this.setOutput(!0),this.setInputsInline(!0)}},wd={init:function(){this.setColour(jl),this.appendValueInput("VAR").setCheck("var").appendField(ht.Msg.MIXLY_BLE_HANDLE),this.appendValueInput("METHOD").appendField(ht.Msg.MIXLY_MIXGO_ESPNOW_RECV).appendField(ht.Msg.CONTROLS_REPEAT_INPUT_DO+ht.Msg.MIXLY_ESP32_ONENET_SUB),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},kd={init:function(){this.setColour(jl),this.appendValueInput("VAR").setCheck("var").appendField("ESPnow "+ht.Msg.MIXLY_SETUP),this.appendValueInput("CHNL").setCheck(Number).appendField(ht.Msg.MIXLY_MP_ESPNOW_CHANNEL),this.appendDummyInput("").appendField(ht.Msg.MIXLY_TX_POWER).appendField(new ht.FieldDropdown([["20","20"],["18","18"],["16","16"],["15","15"],["14","14"],["13","13"],["11","11"],["8","8"],["7","7"],["5","5"],["2","2"]]),"op"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Hd={init:function(){this.setColour(jl),this.appendValueInput("VAR").setCheck("var").appendField("ESPnow "+ht.Msg.MIXLY_SETUP),this.appendValueInput("CHNL").setCheck(Number).appendField(ht.Msg.MIXLY_MP_ESPNOW_CHANNEL),this.appendValueInput("DB").setCheck(Number).appendField(ht.Msg.MIXLY_MICROBIT_JS_BLE_POWER),this.appendDummyInput().appendField("db"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_MP_ESPNOW_INIT_TOOLTIP)}},Wd={init:function(){this.setColour(jl),this.appendValueInput("VAR").setCheck("var").appendField("ESPnow "),this.appendDummyInput().appendField(ht.Msg.MIXLY_MIXGO_ESPNOW_MAC),this.setOutput(!0),this.setInputsInline(!0)}},Kd={init:function(){this.setColour(jl),this.appendValueInput("VAR").setCheck("var").appendField("ESPnow "),this.appendDummyInput().appendField(ht.Msg.MIXLY_MIXGO_ESPNOW_INFO),this.setOutput(!0),this.setInputsInline(!0)}},Jd={init:function(){this.setColour(jl),this.appendValueInput("VAR").setCheck("var").appendField("ESPnow "),this.appendDummyInput().appendField(ht.Msg.MIXLY_MIXGO_ESPNOW_RECV),this.appendDummyInput().appendField(new ht.FieldDropdown([["("+ht.Msg.MIXLY_ETHERNET_MAC_ADDRESS+", "+ht.Msg.OLED_STRING+")",""],[ht.Msg.MIXLY_ETHERNET_MAC_ADDRESS,"[0]"],[ht.Msg.OLED_STRING,"[1]"]]),"mode"),this.setOutput(!0),this.setInputsInline(!0)}},Qd={init:function(){this.setColour(jl),this.appendValueInput("VAR").setCheck("var").appendField("ESPnow "),this.appendValueInput("mac").appendField(ht.Msg.MIXLY_MIXGO_ESPNOW_SEND_MAC),this.appendValueInput("content").appendField(ht.Msg.MIXLY_MIXGO_ESPNOW_SEND),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_MIXGO_ESPNOW_SEND_TOOLTIP)}},zd={init:function(){this.setColour(jl),this.appendValueInput("VAR").setCheck("var").appendField("ESPnow "),this.appendValueInput("METHOD").appendField(ht.Msg.MIXLY_EMQX_SET_METHOD),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},qd={init:function(){this.setColour(jl),this.appendDummyInput().appendField(ht.Msg.MIXLY_MP_ESPNOW_RADIO_INIT),this.appendValueInput("CHNL").setCheck(Number),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},jd={init:function(){this.setColour(jl),this.appendDummyInput().appendField(ht.Msg.MIXLY_SETTING+ht.Msg.MIXLY_MP_ESPNOW_RADIO+ht.Msg.MIXLY_TX_POWER).appendField(new ht.FieldDropdown([["20","20"],["18","18"],["16","16"],["15","15"],["14","14"],["13","13"],["11","11"],["8","8"],["7","7"],["5","5"],["2","2"]]),"op"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Zd={init:function(){this.setColour(jl),this.appendDummyInput().appendField(ht.Msg.MIXLY_MP_ESPNOW_RADIO_INIT),this.appendValueInput("CHNL").setCheck(Number),this.appendValueInput("DB").setCheck(Number).appendField(ht.Msg.MIXLY_MICROBIT_JS_BLE_POWER),this.appendDummyInput().appendField("db"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_MP_ESPNOW_RADIO_INIT_TOOLTIP)}},$d={init:function(){this.setColour(jl),this.appendDummyInput().appendField(ht.Msg.MIXLY_MP_ESPNOW_RADIO),this.appendDummyInput().appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_ON,"True"],[ht.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_OFF,"False"]]),"on_off"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},tI={init:function(){this.setColour(jl),this.appendDummyInput().appendField(ht.Msg.MIXLY_MP_ESPNOW_RADIO).appendField(ht.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.appendValueInput("send").setCheck(String),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_MIXGO_ESPNOW_SEND_TOOLTIP)}},eI={init:function(){this.setColour(jl),this.appendDummyInput().appendField(ht.Msg.MIXLY_MP_ESPNOW_RADIO).appendField(ht.Msg.MIXLY_MIXGO_ESPNOW_RECV),this.setOutput(!0),this.setInputsInline(!0)}},iI={init:function(){this.setColour(jl),this.appendDummyInput().appendField(ht.Msg.MIXLY_MP_ESPNOW_RADIO_RECEIVED_MSG),this.setOutput(!0),this.setInputsInline(!0)}},nI={init:function(){this.setColour(jl),this.appendDummyInput().appendField(ht.Msg.MIXLY_MP_ESPNOW_RADIO_MSG_RECEIVED),this.appendStatementInput("DO").appendField(ht.Msg.MIXLY_DO),this.setPreviousStatement(!1),this.setNextStatement(!1)}},sI={init:function(){this.setColour(jl),this.appendDummyInput().appendField(ht.Msg.MIXLY_MP_ESPNOW_RADIO_MSG_RECEIVED_CERTAIN).appendField('"').appendField(new ht.FieldTextInput("on"),"msg").appendField('"'),this.appendStatementInput("DO").appendField(ht.Msg.MIXLY_DO),this.setPreviousStatement(!1),this.setNextStatement(!1)}},oI={init:function(){this.setColour(jl),this.appendDummyInput().appendField(ht.Msg.MIXLY_MP_ESPNOW_RADIO_MSG_RECEIVED),this.appendStatementInput("DO").appendField(ht.Msg.MIXLY_DO),this.setPreviousStatement(!1),this.setNextStatement(!1)}},_I={init:function(){this.setColour(jl),this.appendDummyInput().appendField(ht.Msg.MIXLY_MP_ESPNOW_RADIO_MSG_RECEIVED_CERTAIN).appendField('"').appendField(new ht.FieldTextInput("on"),"msg").appendField('"'),this.appendStatementInput("DO").appendField(ht.Msg.MIXLY_DO),this.setPreviousStatement(!1),this.setNextStatement(!1)}},pI={init:function(){this.setColour(jl),this.appendValueInput("SUB").appendField("Lora"+ht.Msg.MIXLY_SETUP).setCheck("var"),this.appendValueInput("SPISUB").appendField(ht.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("frequency").appendField(ht.Msg.MIXLY_FREQUENCY),this.appendValueInput("rate").appendField(ht.Msg.MIXLY_CODE_RATE),this.appendValueInput("factor").appendField(ht.Msg.MIXLY_SPREADING_FACTOR),this.appendValueInput("power").appendField(ht.Msg.MIXLY_TX_POWER),this.appendDummyInput().appendField(ht.Msg.MIXLY_SIGNAL_BANDWIDTH).appendField(new ht.FieldDropdown([["7800","7800"],["10400","10400"],["15600","15600"],["20800","20800"],["31250","31250"],["41700","41700"],["62500","62500"],["125000","125000"],["250000","250000"],["500000","500000"]]),"bandwidth"),this.setFieldValue("125000","bandwidth"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(ht.Msg.MIXLY_LORA_INIT_TOOLTIP)}},aI={init:function(){this.setColour(jl),this.appendValueInput("VAR").setCheck("var").appendField("Lora "),this.appendDummyInput().appendField(ht.Msg.MIXLY_GET+ht.Msg.MIXLY_PACKAGE).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_SIGNAL_STRENGTH,"packet_rssi"],[ht.Msg.MIXLY_SIGNAL_NOISE_RATE,"packet_snr"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},uI={init:function(){this.setColour(jl),this.appendValueInput("VAR").setCheck("var").appendField("Lora "),this.appendDummyInput().appendField(ht.Msg.MIXLY_SEND_DATA),this.appendValueInput("data").setCheck(String).appendField(ht.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},rI={init:function(){this.setColour(jl),this.appendValueInput("VAR").setCheck("var").appendField("Lora "),this.appendDummyInput().appendField(ht.Msg.MIXLY_MIXGO_ESPNOW_RECV),this.setOutput(!0,String),this.setInputsInline(!0)}},lI={init:function(){this.setColour(jl),this.appendValueInput("DOMAIN").appendField(ht.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(ht.Msg.blockpy_REQUESTS_GET).appendField(new ht.FieldTextInput("response"),"VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ht.Msg.blockpy_REQUESTS_GET_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ht.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},dI={init:function(){this.appendValueInput("VAL");var t=[[ht.Msg.blockpy_REQUESTS_GET_ATTR_HEADER,"headers"],[ht.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE,"status_code"],[ht.Msg.blockpy_REQUESTS_GET_ATTR_TEXT,"text"],[ht.Msg.blockpy_REQUESTS_GET_ATTR_COOKIES,"cookies"],[ht.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT,"content"]];this.setColour(jl),this.appendDummyInput("").appendField(ht.Msg.MIXLY_MICROBIT_JS_GET).appendField(new ht.FieldDropdown(t),"ATTR"),this.setInputsInline(!0),this.setOutput(!0,String);var e=this;this.setTooltip((function(){var t=e.getFieldValue("DIR");return{clear:ht.Msg.MIXLY_TOOLTIP_TURTEL_CLEAR,reset:ht.Msg.MIXLY_TOOLTIP_TURTEL_RESET,home:ht.Msg.MIXLY_TOOLTIP_TURTEL_HOME}[t]}))}},II={init:function(){this.appendValueInput("VAR").appendField(ht.Msg.DISPLAY_IMAGE_LET2).setCheck(String);this.setColour(jl),this.appendDummyInput("").appendField(ht.Msg.blockpy_CONDUCT).appendField(new ht.FieldDropdown([["get","get"],["post","post"],["put","put"],["delete","delete"],["head","head"],["option","option"]]),"DIR"),this.appendDummyInput("").appendField(ht.Msg.blockpy_REQUESTS),this.setOutput(!0),this.setInputsInline(!0)}},TI=td,hI=ed,MI=id,mI=nd,OI=sd,EI=od,RI=_d,cI=pd,gI=ad,CI=ud,SI=rd,AI=ld,LI=dd,NI=Id,DI=Td,fI=120;({init:function(){this.setColour(fI),this.appendValueInput("BOOL").setCheck([Boolean,Number]).appendField(ht.Msg.LANG_CONTROLS_WHILEUNTIL_TITLE_REPEAT).appendField(new ht.FieldDropdown(this.OPERATORS),"MODE"),this.appendStatementInput("DO").appendField(ht.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return{WHILE:ht.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_WHILE,UNTIL:ht.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL}[e]}))}}).OPERATORS=[[ht.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"WHILE"],[ht.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"UNTIL"]];({init:function(){this.setColour(fI);var t=new ht.FieldDropdown(this.OPERATORS);this.appendDummyInput().appendField(t,"FLOW").appendField(ht.Msg.LANG_CONTROLS_FLOW_STATEMENTS_INPUT_OFLOOP),this.setPreviousStatement(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("FLOW");return{BREAK:ht.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK,CONTINUE:ht.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE}[t]}))},onchange:function(){if(this.workspace){var t=!1,e=this;do{if("controls_repeat"==e.type||"controls_for"==e.type||"controls_forEach"==e.type||"controls_repeat_ext"==e.type||"controls_whileUntil"==e.type){t=!0;break}e=e.getSurroundParent()}while(e);t?this.setWarningText(null):this.setWarningText(ht.Msg.LANG_CONTROLS_FLOW_STATEMENTS_WARNING)}}}).OPERATORS=[[ht.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK,"BREAK"],[ht.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE,"CONTINUE"]];const PI="5BA5A5",FI={init:function(){this.setColour(PI),this.appendValueInput("I2CSUB").appendField(ht.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(ht.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(ht.Msg.MIXLY_SETUP+ht.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new ht.FieldDropdown([["32x12 Matrix","32x12 Matrix"],["16x8 Matrix","16x8 Matrix"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},vI={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(PI),this.appendValueInput("data").setCheck([String,"esp32_image","List","Tuple"]).appendField(ht.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.OLED_BITMAP_OR_STRING)}},YI={init:function(){this.setColour(PI),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("data").setCheck(String).appendField(ht.Msg.OLED_DRAWSTR),this.appendValueInput("space").setCheck(Number).appendField(ht.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendDummyInput("").appendField(ht.Msg.TEXT_CENTER).appendField(new ht.FieldDropdown([[ht.Msg.MICROPYTHON_DISPLAY_YES,"True"],[ht.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"center"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY)}},xI={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(PI),this.appendValueInput("data").setCheck(String).appendField(ht.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},XI={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(PI),this.appendValueInput("data").setCheck(String).appendField(ht.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.appendValueInput("space").setCheck(Number).appendField(ht.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendValueInput("time").setCheck(Number).appendField(ht.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_SCROLL_IMAGE_OR_STRING_DELAY)}},bI={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(PI),this.appendValueInput("data").setCheck(String).appendField(ht.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},VI={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(PI),this.appendValueInput("data").setCheck(String).appendField(ht.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.appendValueInput("time").setCheck(Number).appendField(ht.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},yI={init:function(){var t=[[ht.Msg.MIXLY_UP,"shift_up"],[ht.Msg.MIXLY_DOWN,"shift_down"],[ht.Msg.MIXLY_LEFT,"shift_left"],[ht.Msg.MIXLY_RIGHT,"shift_right"]];this.appendValueInput("SUB").setCheck("var"),this.setColour(PI),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.appendDummyInput("").appendField(ht.Msg.DISPLAY_IMAGE_LET),this.appendDummyInput("").appendField(ht.Msg.DISPLAY_IMAGE_LET2).appendField(new ht.FieldDropdown(t),"OP"),this.appendValueInput("val").appendField(ht.Msg.DISPLAY_IMAGE_SHIFT).setCheck(Number),this.appendDummyInput("").appendField(ht.Msg.DISPLAY_IMAGE_UNIT);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP"),i=ht.Msg.DISPLAY_IMAGE_LET,n=ht.Msg.DISPLAY_IMAGE_LET2,s=ht.Msg.DISPLAY_IMAGE_LET3;return i+n+{up:ht.Msg.MIXLY_UP,down:ht.Msg.MIXLY_DOWN,left:ht.Msg.MIXLY_LEFT,right:ht.Msg.MIXLY_RIGHT}[t]+s}))}},BI={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(PI),this.appendValueInput("x").setCheck(Number).appendField(ht.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(ht.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendDummyInput().appendField(ht.Msg.MIXLY_ESP32_JS_MONITOR_GET_POINT),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(ht.Msg.MIXLY_ESP32_JS_MONITOR_BRIGHTNESS)}},GI={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(PI),this.appendValueInput("x").setCheck(Number).appendField(ht.Msg.MIXLY_ESP32_JS_MONITOR_SET_BRIGHTNESS).appendField(ht.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(ht.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendValueInput("STAT").setCheck([Number,Boolean]),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL)}},UI={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(PI),this.appendDummyInput().appendField(ht.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(ht.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS)}},wI={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(PI),this.appendValueInput("x").setCheck(Number).appendField(ht.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS+" 0.0-1.0")}},kI={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(PI),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_Clear_display),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_MICROBIT_Clear_display)}},HI={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(PI),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_Built_in_image1).appendField(new ht.FieldDropdown([["HEART","HEART"],["HEART_SMALL","HEART_SMALL"],["HAPPY","HAPPY"],["SAD","SAD"],["SMILE","SMILE"],["SILLY","SILLY"],["FABULOUS","FABULOUS"],["SURPRISED","SURPRISED"],["ASLEEP","ASLEEP"],["ANGRY","ANGRY"],["CONFUSED","CONFUSED"],["NO","NO"],["YES","YES"]]),"image"),this.setOutput(!0,"esp32_image"),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_MICROBIT_Clear_display)}},WI={init:function(){var t=[[ht.Msg.MICROBIT_DISPLAY_UNION,"add"],[ht.Msg.MICROBIT_DISPLAY_MINUS,"sub"]];this.appendValueInput("SUB").setCheck("var"),this.setColour(PI),this.setOutput(!0,"esp32_image"),this.appendValueInput("A").appendField(ht.Msg.MICROBIT_DISPLAY_MERGE_SHAPE),this.appendValueInput("B").appendField(new ht.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{"+":ht.Msg.MIXLY_MICROBIT_image_add,"-":ht.Msg.MIXLY_MICROBIT_image_reduce}[t]}))}},KI={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(PI),this.appendValueInput("A").setCheck("esp32_image").appendField(ht.Msg.MIXLY_MICROBIT_Invert_image1),this.setInputsInline(!0),this.setOutput(!0,"esp32_image")}},JI={init:function(){this.setColour(PI),this.appendValueInput("I2CSUB").appendField(ht.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(ht.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendValueInput("row").appendField(ht.Msg.MIXLY_SETUP+ht.Msg.LISTS_SET_INDEX_INPUT_TO+"OLED").setCheck(Number),this.appendValueInput("column").appendField("X").setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip()}},QI={init:function(){this.appendValueInput("VAR").appendField(ht.Msg.OLED).setCheck("var"),this.appendValueInput("Text_line1","String").setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.OLEDDISPLAY+ht.Msg.line1),this.appendValueInput("Text_line2","String").setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.line2),this.appendValueInput("Text_line3","String").setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.line3),this.appendValueInput("Text_line4","String").setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.line4),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(PI),this.setTooltip(ht.Msg.MIXLY_DF_LCD+ht.Msg.OLEDDISPLAY+ht.Msg.MIXLY_MICROBIT_TYPE_STRING)}},zI={init:function(){var t=[[ht.Msg.MIXLY_HEIGHT,"height"],[ht.Msg.MIXLY_WIDTH,"width"]];this.setColour(PI),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+ht.Msg.MIXLY_MICROBIT_IMAGE),this.appendValueInput("VAR").setCheck("esp32_image"),this.appendDummyInput("").appendField(new ht.FieldDropdown(t),"OP"),this.setInputsInline(!0),this.setOutput(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return ht.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+ht.Msg.MIXLY_MICROBIT_IMAGE+{height:ht.Msg.MIXLY_HEIGHT,width:ht.Msg.MIXLY_WIDTH}[t]}))}},qI={init:function(){var t=[[ht.Msg.MIXLY_4DIGITDISPLAY_ON,"1"],[ht.Msg.MIXLY_4DIGITDISPLAY_OFF,"0"]];this.setColour(PI),this.appendValueInput("VAR").appendField(ht.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(ht.Msg.MIXLY_RECT).appendField(new ht.FieldDropdown(t),"OP"),this.jsonInit({message0:ht.Msg.MIXLY_MICROBIT_SHOW_RECT,args0:[{check:Number,type:"input_value",name:"x"},{check:Number,type:"input_value",name:"y"},{check:Number,type:"input_value",name:"width"},{check:Number,type:"input_value",name:"height"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"fill"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(ht.Msg.MIXLY_OLED_RECT)}},jI={init:function(){this.setColour(PI),this.appendValueInput("VAR").appendField(ht.Msg.OLED).setCheck("var"),this.appendDummyInput().appendField(ht.Msg.MIXLY_DISPLAY_DRAW).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_DISPLAY_RLINE,"hline"],[ht.Msg.MIXLY_DISPLAY_VLINE,"vline"]]),"direction"),this.jsonInit({message0:ht.Msg.MIXLY_MICROBIT_SHOW_LINE,args0:[{check:Number,type:"input_value",name:"x"},{check:Number,type:"input_value",name:"y"},{check:Number,type:"input_value",name:"length"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(ht.Msg.MIXLY_OLED_LINE)}},ZI={init:function(){this.setColour(PI),this.appendValueInput("VAR").appendField(ht.Msg.OLED).setCheck("var"),this.jsonInit({message0:ht.Msg.MIXLY_MICROBIT_SHOW_LINE_ARBITRARILY,args0:[{check:Number,type:"input_value",name:"x1"},{check:Number,type:"input_value",name:"y1"},{check:Number,type:"input_value",name:"x2"},{check:Number,type:"input_value",name:"y2"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(ht.Msg.MIXLY_OLED_LINE_ARBIT)}},$I={init:function(){this.setColour(PI),this.appendDummyInput().appendField(ht.Msg.MIXLY_ESP32_MONITOR_GET_SCREEN_IMAGE),this.setInputsInline(!0),this.setOutput(!0,"esp32_image"),this.setTooltip(ht.Msg.MIXLY_ESP32_MONITOR_GET_SCREEN_IMAGE_TOOLTIP)}},tT={init:function(){this.setColour(PI),this.appendValueInput("x").setCheck(Number).appendField(ht.Msg.MIXLY_ESP32_JS_MONITOR_SET_BLINK_RATE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_JS_MONITOR_SET_BLINK_RATE)}},eT={init:function(){this.setColour(PI),this.appendDummyInput("").appendField(ht.Msg.MIXLY_RGB),this.appendValueInput("_LED_").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_RGB_NUM),this.appendDummyInput("").appendField(ht.Msg.LISTS_SET_INDEX_SET+ht.Msg.MIXLY_MICROBIT_PY_STORAGE_AS).appendField(new ht.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),"FIELDNAME"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(ht.Msg.MIXLY_RGB_NUM_R_G_B)}},iT={init:function(){this.setColour(PI),this.appendDummyInput("").appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_ESP32_ON,"ON"],[ht.Msg.MIXLY_ESP32_OFF,"OFF"]]),"ONOFF"),this.setOutput(!0,Boolean),this.setTooltip(ht.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW)}},nT={init:function(){this.setColour(PI),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_LCD_STAT_CLEAR,"0"],[ht.Msg.MIXLY_HANDBIT_DISLPAY_OLED_FILL,"1"]]),"key"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i={0:ht.Msg.MIXLY_LCD_STAT_CLEAR,1:ht.Msg.MIXLY_HANDBIT_DISLPAY_OLED_FILL};return ht.Msg.MIXLY_DF_LCD+i[e]}))}},sT={init:function(){this.setColour(PI),this.setOutput(!0,"Tuple"),this.appendDummyInput().appendField(ht.Msg.MIXLY_ESP32_DISPLAY_ANIMATE).appendField(new ht.FieldDropdown([["ALL_CLOCKS","ALL_CLOCKS"],["ALL_ARROWS","ALL_ARROWS"]]),"ANIMATION")}},oT={init:function(){var t=[[ht.Msg.MIXLY_4DIGITDISPLAY_ON,"1"],[ht.Msg.MIXLY_4DIGITDISPLAY_OFF,"0"]];this.setColour(PI),this.appendValueInput("VAR").appendField(ht.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(ht.Msg.MIXLY_MIXPY_TURTLE_DRAW_CIRCLE).appendField(new ht.FieldDropdown(t),"OP"),this.jsonInit({message0:ht.Msg.MIXLY_HANBIT_SHOW_CIRCLE,args0:[{check:Number,type:"input_value",name:"x"},{check:Number,type:"input_value",name:"y"},{check:Number,type:"input_value",name:"r"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"fill"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(ht.Msg.MIXLY_MIXPY_TURTLE_DRAW_CIRCLE)}},_T={init:function(){var t=[[ht.Msg.MIXLY_4DIGITDISPLAY_ON,"1"],[ht.Msg.MIXLY_4DIGITDISPLAY_OFF,"0"]];this.setColour(PI),this.appendValueInput("VAR").appendField(ht.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(ht.Msg.MIXLY_DISPLAY_DRAW+ht.Msg.MIXLY_HANBIT_DRAW_TRIANGLE).appendField(new ht.FieldDropdown(t),"OP"),this.jsonInit({message0:ht.Msg.MIXLY_HANBIT_SHOW_triangle,args0:[{check:Number,type:"input_value",name:"x0"},{check:Number,type:"input_value",name:"y0"},{check:Number,type:"input_value",name:"x1"},{check:Number,type:"input_value",name:"y1"},{check:Number,type:"input_value",name:"x2"},{check:Number,type:"input_value",name:"y2"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"fill"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(ht.Msg.MIXLY_DISPLAY_DRAW+ht.Msg.MIXLY_HANBIT_DRAW_TRIANGLE)}},pT={init:function(){this.setColour("#555555"),this.appendDummyInput("").appendField(ht.Msg.MIXGO_ONBOARDDISPLAY_HELP),this.setInputsInline(!0),this.setTooltip("")}},aT={init:function(){this.setColour(PI),this.appendValueInput("VAR").appendField(ht.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(ht.Msg.OLED_BITMAP),this.appendValueInput("START_X",Number).appendField(ht.Msg.OLED_START_X).setCheck(Number),this.appendValueInput("START_Y",Number).appendField(ht.Msg.OLED_START_Y).setCheck(Number),this.appendValueInput("bitmap_name",String).appendField(ht.Msg.OLED_BITMAP_NAME),this.appendValueInput("WIDTH",Number).appendField(ht.Msg.MIXLY_WIDTH).setCheck(Number),this.appendValueInput("HEIGHT",Number).appendField(ht.Msg.MIXLY_HEIGHT).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ht.Msg.OLED_SHOW_BMP_TOOLTIP)}},uT={init:function(){this.setColour(PI),this.appendValueInput("VAR").appendField(ht.Msg.OLED),this.appendDummyInput("").appendField(ht.Msg.OLED_DRAWPIXEL),this.appendValueInput("POS_X").appendField(ht.Msg.OLED_POSX),this.appendValueInput("POS_Y").appendField(ht.Msg.OLED_POSY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ht.Msg.OLED_DRAW_PIXE_TOOLTIP)}},rT={init:function(){this.setColour(PI),this.appendValueInput("I2CSUB").appendField(ht.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(ht.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(ht.Msg.MIXLY_SETUP+ht.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new ht.FieldDropdown([["TM1650","TM1650"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return ht.Msg.MIXLY_ESP32_SENSOR_USE_I2C_TOOLTIP+{TM1650:"TM1650"}[e]}))}},lT={init:function(){this.setColour(PI),this.appendDummyInput().appendField(ht.Msg.MIXLY_4DIGITDISPLAY).appendField(new ht.FieldDropdown([["TM1650","tm1650"]]),"TYPE"),this.appendValueInput("VAR"),this.appendDummyInput().appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_ON,"on"],[ht.Msg.MIXLY_OFF,"off"],[ht.Msg.MIXLY_LCD_STAT_CLEAR,"clear"]]),"STAT"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(ht.Msg.MIXLY_TOOLTIP_4digitdisplay_power)}},dT={init:function(){this.setColour(PI),this.appendDummyInput().appendField(ht.Msg.MIXLY_4DIGITDISPLAY).appendField(new ht.FieldDropdown([["TM1650","tm1650"]]),"TYPE"),this.appendValueInput("VAR"),this.appendValueInput("VALUE").setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_MICROBIT_JS_MONITOR_SHOW_NUMBER),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},IT={init:function(){this.setColour(PI),this.appendDummyInput().appendField(ht.Msg.MIXLY_4DIGITDISPLAY).appendField(new ht.FieldDropdown([["TM1650","tm1650"]]),"TYPE"),this.appendValueInput("VAR"),this.appendValueInput("NO").appendField(ht.Msg.MIXLY_4DIGITDISPLAY_NOMBER1),this.appendValueInput("STAT").appendField(ht.Msg.MIXLY_4DIGITDISPLAY_NOMBER2+ht.Msg.MIXLY_4DIGITDISPLAY_DOT),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(ht.Msg.MIXLY_TOOLTIP_4digitdisplay_showDot)}},TT={init:function(){this.setColour(PI),this.appendDummyInput().appendField(ht.Msg.MIXLY_4DIGITDISPLAY).appendField(new ht.FieldDropdown([["TM1650","tm1650"]]),"TYPE"),this.appendValueInput("VAR"),this.appendValueInput("VALUE").setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_MICROBIT_JS_MONITOR_SET_BRIGHTNESS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(ht.Msg.MIXLY_4DIGITDISPLAY_4DIGITDISPLAY_BRIGHTNESS_TOOLTIP)}},hT={init:function(){this.setColour(PI),this.appendValueInput("SPISUB").appendField(ht.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINDC").appendField("DC"),this.appendValueInput("PINCS").appendField("CS"),this.appendValueInput("SUB").appendField(ht.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(ht.Msg.MIXLY_SETUP+ht.Msg.LISTS_SET_INDEX_INPUT_TO+ht.Msg.MSG.catTFT),this.appendValueInput("WIDTH").appendField(ht.Msg.MIXLY_WIDTH).setCheck(Number),this.appendValueInput("HEIGHT").appendField(ht.Msg.MIXLY_HEIGHT).setCheck(Number),this.appendDummyInput("").appendField(ht.Msg.blockpy_turtle_rotate).appendField(new ht.FieldDropdown([[ht.Msg.MICROPYTHON_DISPLAY_NO,"0"],[ht.Msg.ANTI_CLOCKWISE+"90°","1"],[ht.Msg.ANTI_CLOCKWISE+"180°","2"],[ht.Msg.ANTI_CLOCKWISE+"270°","3"]]),"rotate"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},MT={init:function(){this.setColour(PI),this.appendValueInput("SUB").appendField(ht.Msg.MSG.catTFT),this.appendValueInput("data").appendField(ht.Msg.OLED_BITMAP),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(ht.Msg.MIXLY_MICROBIT_JS_NUMBER),this.appendValueInput("VAR").appendField(ht.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.OLED_BITMAP_OR_STRING)}},mT={init:function(){this.setColour(PI);let t=new ht.FieldColour("#f00",null,{colourOptions:["#f00","#000"],columns:2});this.appendDummyInput("").setAlign(ht.inputs.Align.RIGHT).appendField(t,"COLOR"),this.setInputsInline(!0),this.setOutput(!0,String)}},OT={init:function(){this.setColour(PI),this.appendValueInput("SUB").appendField(ht.Msg.MSG.catTFT),this.appendValueInput("data").setCheck(String).appendField(ht.Msg.OLED_DRAWSTR),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(ht.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(ht.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendDummyInput("").appendField(ht.Msg.TEXT_CENTER).appendField(new ht.FieldDropdown([[ht.Msg.MICROPYTHON_DISPLAY_YES,"True"],[ht.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"center"),this.appendValueInput("VAR").appendField(ht.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY)}},ET={init:function(){this.setColour(PI),this.appendValueInput("SUB").appendField(ht.Msg.MSG.catTFT),this.appendValueInput("data").setCheck(String).appendField(ht.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(ht.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(ht.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendValueInput("time").setCheck(Number).appendField(ht.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.appendValueInput("VAR").appendField(ht.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_SCROLL_IMAGE_OR_STRING_DELAY)}},RT={init:function(){this.setColour(PI),this.appendValueInput("SUB").appendField(ht.Msg.MSG.catTFT),this.appendValueInput("data").setCheck(String).appendField(ht.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.appendValueInput("size").setCheck(Number).appendField(ht.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("time").setCheck(Number).appendField(ht.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.appendValueInput("VAR").appendField(ht.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},cT={init:function(){this.setColour(PI),this.appendValueInput("SUB").setCheck("var").appendField(ht.Msg.MSG.catTFT),this.appendDummyInput().appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_LCD_STAT_CLEAR,"BLACK"],[ht.Msg.MIXLY_HANDBIT_DISLPAY_OLED_FILL,"WHITE"]]),"key"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i={0:ht.Msg.MIXLY_LCD_STAT_CLEAR,1:ht.Msg.MIXLY_HANDBIT_DISLPAY_OLED_FILL};return ht.Msg.MIXLY_DF_LCD+i[e]}))}},gT={init:function(){this.setColour(PI),this.appendValueInput("SUB").appendField(ht.Msg.MSG.catTFT).setCheck("var"),this.jsonInit({message0:ht.Msg.MIXLY_MICROBIT_SHOW_LINE_ARBITRARILY,args0:[{check:Number,type:"input_value",name:"x1"},{check:Number,type:"input_value",name:"y1"},{check:Number,type:"input_value",name:"x2"},{check:Number,type:"input_value",name:"y2"}]}),this.appendValueInput("VAR").appendField(ht.Msg.HTML_COLOUR),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(ht.Msg.MIXLY_OLED_LINE_ARBIT)}},CT={init:function(){this.setColour(PI),this.appendValueInput("I2CSUB").appendField(ht.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(ht.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(ht.Msg.MIXLY_SETUP+ht.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new ht.FieldDropdown([["LCD1602","16"],["LCD2004","20"]]),"key"),this.appendValueInput("ADDR").setCheck(Number).appendField(ht.Msg.MQTT_SERVER_ADD),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return ht.Msg.MIXLY_SETUP+{16:"LCD1602",20:"LCD2004"}[e]}))}},ST={init:function(){this.setColour(PI),this.appendValueInput("SUB").appendField(ht.Msg.MSG.catLCD),this.appendValueInput("data").setCheck(String).appendField(ht.Msg.OLED_DRAWSTR),this.appendValueInput("x").setCheck(Number).appendField(ht.Msg.array2_cols),this.appendValueInput("y").setCheck(Number).appendField(ht.Msg.array2_rows),this.appendDummyInput("").appendField(ht.Msg.TEXT_CENTER).appendField(new ht.FieldDropdown([[ht.Msg.MICROPYTHON_DISPLAY_YES,"True"],[ht.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"center"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY)}},AT={init:function(){this.setColour(PI),this.appendValueInput("SUB").appendField(ht.Msg.MSG.catLCD),this.appendValueInput("data").setCheck(String).appendField(ht.Msg.MIXLY_SERIAL_PRINT+ht.Msg.OLED_DRAWSTR),this.appendValueInput("x").setCheck(Number).appendField(ht.Msg.array2_cols),this.appendValueInput("y").setCheck(Number).appendField(ht.Msg.array2_rows),this.appendValueInput("time").setCheck(Number).appendField(ht.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},LT={init:function(){this.setColour(PI),this.appendValueInput("SUB").setCheck("var").appendField(ht.Msg.MSG.catLCD),this.appendDummyInput().appendField(ht.Msg.TFT_Brightness).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_MICROBIT_Turn_on_display,"1"],[ht.Msg.MIXLY_MICROBIT_Turn_off_display,"0"]]),"key"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i={1:ht.Msg.MIXLY_MICROBIT_Turn_on_display,0:ht.Msg.MIXLY_MICROBIT_Turn_off_display};return ht.Msg.MSG.catLCD+ht.Msg.TFT_Brightness+i[e]}))}},NT={init:function(){this.appendValueInput("SUB").setCheck("var").appendField(ht.Msg.MSG.catLCD),this.setColour(PI),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_Clear_display),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_MICROBIT_Clear_display)}},DT={init:function(){this.setColour(PI),this.appendValueInput("I2CSUB").appendField(ht.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(ht.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(ht.Msg.MIXLY_SETUP+ht.Msg.LISTS_SET_INDEX_INPUT_TO+"oled128x64"),this.appendValueInput("ADDR").setCheck(Number).appendField(ht.Msg.MQTT_SERVER_ADD),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return ht.Msg.MIXLY_SETUP+{16:"LCD1602",20:"LCD2004"}[e]}))}},fT={init:function(){this.setColour(PI),this.appendValueInput("SUB").setCheck("var").appendField(ht.Msg.MSG.catOLED),this.appendValueInput("data").appendField(ht.Msg.OLED_BITMAP),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.OLED_BITMAP_OR_STRING)}},PT={init:function(){this.setColour(PI),this.appendValueInput("SUB").setCheck("var").appendField(ht.Msg.MSG.catOLED),this.appendValueInput("data").appendField(ht.Msg.OLED_BITMAP),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(ht.Msg.MIXLY_MICROBIT_JS_NUMBER),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.OLED_BITMAP_OR_STRING)}},FT={init:function(){this.setColour(PI),this.appendValueInput("SUB").setCheck("var").appendField(ht.Msg.MSG.catOLED),this.appendValueInput("data").setCheck([String,"esp32_image","List","Tuple"]).appendField(ht.Msg.OLED_DRAWSTR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.OLED_BITMAP_OR_STRING)}},vT={init:function(){this.setColour(PI),this.appendValueInput("SUB").setCheck("var").appendField(ht.Msg.MSG.catOLED),this.appendValueInput("data").setCheck(String).appendField(ht.Msg.OLED_DRAWSTR),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(ht.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(ht.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendDummyInput("").appendField(ht.Msg.TEXT_CENTER).appendField(new ht.FieldDropdown([[ht.Msg.MICROPYTHON_DISPLAY_YES,"True"],[ht.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"center"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY)}},YT={init:function(){this.setColour(PI),this.appendValueInput("SUB").setCheck("var").appendField(ht.Msg.MSG.catOLED),this.appendValueInput("data").setCheck(String).appendField(ht.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},xT={init:function(){this.setColour(PI),this.appendValueInput("SUB").setCheck("var").appendField(ht.Msg.MSG.catOLED),this.appendValueInput("data").setCheck(String).appendField(ht.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(ht.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(ht.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendValueInput("time").setCheck(Number).appendField(ht.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_SCROLL_IMAGE_OR_STRING_DELAY)}},XT={init:function(){this.setColour(PI),this.appendValueInput("SUB").setCheck("var").appendField(ht.Msg.MSG.catOLED),this.appendValueInput("data").setCheck(String).appendField(ht.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},bT={init:function(){this.setColour(PI),this.appendValueInput("SUB").setCheck("var").appendField(ht.Msg.MSG.catOLED),this.appendValueInput("data").setCheck(String).appendField(ht.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.appendValueInput("size").setCheck(Number).appendField(ht.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("time").setCheck(Number).appendField(ht.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},VT={init:function(){var t=[[ht.Msg.MIXLY_UP,"shift_up"],[ht.Msg.MIXLY_DOWN,"shift_down"],[ht.Msg.MIXLY_LEFT,"shift_left"],[ht.Msg.MIXLY_RIGHT,"shift_right"]];this.setColour(PI),this.appendValueInput("SUB").setCheck("var").appendField(ht.Msg.MSG.catOLED),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.appendDummyInput("").appendField(ht.Msg.DISPLAY_IMAGE_LET),this.appendDummyInput("").appendField(ht.Msg.DISPLAY_IMAGE_LET2).appendField(new ht.FieldDropdown(t),"OP"),this.appendValueInput("val").appendField(ht.Msg.DISPLAY_IMAGE_SHIFT).setCheck(Number),this.appendDummyInput("").appendField(ht.Msg.DISPLAY_IMAGE_UNIT);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP"),i=ht.Msg.DISPLAY_IMAGE_LET,n=ht.Msg.DISPLAY_IMAGE_LET2,s=ht.Msg.DISPLAY_IMAGE_LET3;return i+n+{up:ht.Msg.MIXLY_UP,down:ht.Msg.MIXLY_DOWN,left:ht.Msg.MIXLY_LEFT,right:ht.Msg.MIXLY_RIGHT}[t]+s}))}},yT={init:function(){this.setColour(PI),this.appendValueInput("SUB").setCheck("var").appendField(ht.Msg.MSG.catOLED),this.appendValueInput("x").setCheck(Number).appendField(ht.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(ht.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendDummyInput().appendField(ht.Msg.MIXLY_ESP32_JS_MONITOR_GET_POINT),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(ht.Msg.MIXLY_ESP32_JS_MONITOR_BRIGHTNESS)}},BT={init:function(){this.setColour(PI),this.appendValueInput("SUB").setCheck("var").appendField(ht.Msg.MSG.catOLED),this.appendValueInput("x").setCheck(Number).appendField(ht.Msg.MIXLY_ESP32_JS_MONITOR_SET_BRIGHTNESS).appendField(ht.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(ht.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendValueInput("STAT").setCheck([Number,Boolean]),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL)}},GT={init:function(){this.setColour(PI),this.appendValueInput("SUB").setCheck("var").appendField(ht.Msg.MSG.catOLED),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_Clear_display),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_MICROBIT_Clear_display)}},UT={init:function(){this.jsonInit({colour:PI,args0:[{name:"SUB",type:"input_value"},{name:"state",options:[[ht.Msg.MPYTHON_DISPLAY_MODE_1,"1"],[ht.Msg.MPYTHON_DISPLAY_MODE_0,"0"]],type:"field_dropdown"},{name:"shape",options:[[ht.Msg.MPYTHON_DISPLAY_HOLLOW,"rect"],[ht.Msg.MPYTHON_DISPLAY_SOLID,"fill_rect"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"w",type:"input_value"},{name:"h",type:"input_value"}],inputsInline:!0,helpUrl:ht.Msg.mpython_HELPURL,tooltip:ht.Msg.MPYTHON_DISPLAY_SHAPE_RECT_TOOLTIP,message0:ht.Msg.MPYTHON_DISPLAY_SHAPE_RECT_MESSAGE1,nextStatement:null,previousStatement:null})}},wT={init:function(){this.jsonInit({colour:PI,args0:[{name:"SUB",type:"input_value"},{name:"state",options:[[ht.Msg.MPYTHON_DISPLAY_MODE_1,"1"],[ht.Msg.MPYTHON_DISPLAY_MODE_0,"0"]],type:"field_dropdown"},{name:"dir_h_v",options:[[ht.Msg.mpython_vertical,"0"],[ht.Msg.mpython_horizontal,"1"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"length",type:"input_value"}],inputsInline:!0,helpUrl:ht.Msg.mpython_HELPURL,tooltip:ht.Msg.MPYTHON_DISPLAY_HVLINE_TOOLTIP,message0:ht.Msg.MPYTHON_DISPLAY_HVLINE_MESSAGE1,nextStatement:null,previousStatement:null})}},kT={init:function(){this.jsonInit({colour:PI,args0:[{name:"SUB",type:"input_value"},{name:"state",options:[[ht.Msg.mpython_display_hline_1,"1"],[ht.Msg.mpython_display_hline_0,"0"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x1",type:"input_value"},{name:"y1",type:"input_value"},{name:"x2",type:"input_value"},{name:"y2",type:"input_value"}],inputsInline:!0,helpUrl:ht.Msg.mpython_HELPURL,tooltip:ht.Msg.mpython_display_line_TOOLTIP,message0:ht.Msg.mpython_display_line_MESSAGE1,nextStatement:null,previousStatement:null})}},HT="#569A98",WT={init:function(){this.setColour(HT),this.appendValueInput("data").setCheck([String,"esp32_image","List","Tuple"]).appendField(ht.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),"micropython:esp32:mixbot"==Mt.Boards.getSelectedBoardKey()&&this.setTooltip(ht.Msg.MIXLY_MIXBOT_SHOW_SCROLL_STRING_TOOLTIP)}},KT={init:function(){this.setColour(HT),this.appendValueInput("data").setCheck(String).appendField(ht.Msg.OLED_DRAWSTR),this.appendValueInput("space").setCheck(Number).appendField(ht.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendDummyInput("").appendField(ht.Msg.TEXT_CENTER).appendField(new ht.FieldDropdown([[ht.Msg.MICROPYTHON_DISPLAY_YES,"True"],[ht.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"center"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},JT={init:function(){this.setColour(HT),this.appendValueInput("data").setCheck(String).appendField(ht.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},QT={init:function(){this.setColour(HT),this.appendValueInput("data").setCheck(String).appendField(ht.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.appendValueInput("space").setCheck(Number).appendField(ht.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendValueInput("time").setCheck(Number).appendField(ht.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},zT={init:function(){this.setColour(HT),this.appendValueInput("data").setCheck(String).appendField(ht.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},qT={init:function(){this.setColour(HT),this.appendValueInput("data").setCheck(String).appendField(ht.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.appendValueInput("time").setCheck(Number).appendField(ht.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},jT={init:function(){this.appendDummyInput("").appendField(ht.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<12;t++){let e=this.appendDummyInput();for(let i=0;i<32;i++)e.appendField(new ht.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.setOutput(!0),this.setColour(HT),this.setTooltip(ht.Msg.MIXLY_MICROBIT_Create_image1)}},ZT={init:function(){this.jsonInit({colour:HT,args0:[{name:"image",options:[["HEART","HEART"],["HEART_SMALL","HEART_SMALL"],["HAPPY","HAPPY"],["SAD","SAD"],["SMILE","SMILE"],["SILLY","SILLY"],["FABULOUS","FABULOUS"],["SURPRISED","SURPRISED"],["ASLEEP","ASLEEP"],["ANGRY","ANGRY"],["CONFUSED","CONFUSED"],["NO","NO"],["YES","YES"]],type:"field_dropdown"}],output:["esp32_image","List"],helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/image.html#attributes",tooltip:ht.Msg.MIXLY_MICROBIT_Built_in_image1,message0:ht.Msg.MIXLY_MICROBIT_Built_in_image})}},$T={init:function(){this.jsonInit({colour:HT,args0:[{name:"image",options:[["HEART","HEART"],["HEART_SMALL","HEART_SMALL"],["HAPPY","HAPPY"],["SAD","SAD"],["SMILE","SMILE"],["SILLY","SILLY"],["FABULOUS","FABULOUS"],["SURPRISED","SURPRISED"],["ASLEEP","ASLEEP"],["ANGRY","ANGRY"],["CONFUSED","CONFUSED"],["NO","NO"],["YES","YES"],["LEFT_ARROW","LEFT_ARROW"],["RIGHT_ARROW","RIGHT_ARROW"],["DRESS","DRESS"],["TRANSFORMERS","TRANSFORMERS"],["SCISSORS","SCISSORS"],["EXIT","EXIT"],["TREE","TREE"],["PACMAN","PACMAN"],["TARGET","TARGET"],["TSHIRT","TSHIRT"],["ROLLERSKATE","ROLLERSKATE"],["DUCK","DUCK"],["HOUSE","HOUSE"],["TORTOISE","TORTOISE"],["BUTTERFLY","BUTTERFLY"],["STICKFIGURE","STICKFIGURE"],["GHOST","GHOST"],["PITCHFORK","PITCHFORK"],["MUSIC_QUAVERS","MUSIC_QUAVERS"],["MUSIC_QUAVER","MUSIC_QUAVER"],["MUSIC_CROTCHET","MUSIC_CROTCHET"],["COW","COW"],["RABBIT","RABBIT"],["SQUARE_SMALL","SQUARE_SMALL"],["SQUARE","SQUARE"],["DIAMOND_SMALL","DIAMOND_SMALL"],["DIAMOND","DIAMOND"],["CHESSBOARD","CHESSBOARD"],["TRIANGLE_LEFT","TRIANGLE_LEFT"],["TRIANGLE","TRIANGLE"],["SNAKE","SNAKE"],["UMBRELLA","UMBRELLA"],["SKULL","SKULL"],["GIRAFFE","GIRAFFE"],["SWORD","SWORD"]],type:"field_dropdown"}],output:["esp32_image","List"],helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/image.html#attributes",tooltip:ht.Msg.MIXLY_MICROBIT_Built_in_image1,message0:ht.Msg.MIXLY_MICROBIT_Built_in_image})}},th={init:function(){var t=[[ht.Msg.MICROBIT_DISPLAY_UNION,"add"],[ht.Msg.MICROBIT_DISPLAY_MINUS,"sub"]];this.setColour(HT),this.setOutput(!0,"esp32_image"),this.appendValueInput("A").appendField(ht.Msg.MICROBIT_DISPLAY_MERGE_SHAPE),this.appendValueInput("B").appendField(new ht.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{"+":ht.Msg.MIXLY_MICROBIT_image_add,"-":ht.Msg.MIXLY_MICROBIT_image_reduce}[t]}))}},eh={init:function(){this.setColour(HT),this.appendValueInput("A").setCheck("esp32_image").appendField(ht.Msg.MIXLY_MICROBIT_Invert_image1),this.setInputsInline(!0),this.setOutput(!0,"esp32_image")}},ih={init:function(){var t=[[ht.Msg.MIXLY_UP,"shift_up"],[ht.Msg.MIXLY_DOWN,"shift_down"],[ht.Msg.MIXLY_LEFT,"shift_left"],[ht.Msg.MIXLY_RIGHT,"shift_right"]];this.setColour(HT),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.appendDummyInput("").appendField(ht.Msg.DISPLAY_IMAGE_LET),this.appendDummyInput("").appendField(ht.Msg.DISPLAY_IMAGE_LET2).appendField(new ht.FieldDropdown(t),"OP"),this.appendValueInput("val").appendField(ht.Msg.DISPLAY_IMAGE_SHIFT).setCheck(Number),this.appendDummyInput("").appendField(ht.Msg.DISPLAY_IMAGE_UNIT);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP"),i=ht.Msg.DISPLAY_IMAGE_LET,n=ht.Msg.DISPLAY_IMAGE_LET2,s=ht.Msg.DISPLAY_IMAGE_LET3;return i+n+{shift_up:ht.Msg.MIXLY_UP,shift_down:ht.Msg.MIXLY_DOWN,shift_left:ht.Msg.MIXLY_LEFT,shift_right:ht.Msg.MIXLY_RIGHT}[t]+s}))}},nh={init:function(){this.setColour(HT),this.appendValueInput("x").setCheck(Number).appendField(ht.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(ht.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendDummyInput().appendField(ht.Msg.MIXLY_ESP32_JS_MONITOR_GET_POINT),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(ht.Msg.MIXLY_ESP32_JS_MONITOR_BRIGHTNESS)}},sh={init:function(){this.setColour(HT),this.appendValueInput("x").setCheck(Number).appendField(ht.Msg.MIXLY_ESP32_JS_MONITOR_SET_BRIGHTNESS).appendField(ht.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(ht.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendValueInput("STAT").setCheck([Number,Boolean]),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL)}},oh={init:function(){this.setColour(HT),this.appendDummyInput().appendField(ht.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(ht.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS)}},_h={init:function(){this.setColour(HT),this.appendValueInput("x").setCheck(Number).appendField(ht.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS+" 0.0-1.0")}},ph={init:function(){this.setColour(HT),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_Clear_display),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_MICROBIT_Clear_display)}},ah={init:function(){this.appendDummyInput("").appendField(ht.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<5;t++){let e=this.appendDummyInput();for(let i=0;i<8;i++)e.appendField(new ht.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.setOutput(!0),this.setColour(HT),this.setTooltip(ht.Msg.MIXLY_MICROBIT_Create_image1)}},uh={init:function(){this.appendDummyInput("").appendField(ht.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<8;t++){let e=this.appendDummyInput();for(let i=0;i<12;i++)e.appendField(new ht.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.setOutput(!0),this.setColour(HT),this.setTooltip(ht.Msg.MIXLY_MICROBIT_Create_image1)}},rh={init:function(){this.appendDummyInput("").appendField(ht.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<8;t++){let e=this.appendDummyInput();for(let i=0;i<16;i++)e.appendField(new ht.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.setOutput(!0,"esp32_image"),this.setColour(HT),this.setTooltip(ht.Msg.MIXLY_MICROBIT_Create_image1)}},lh={init:function(){var t=[["4x5"+ht.Msg.MIXGO_ME_DISPLAY_HORIZONTAL,"'4x5'"],["5x5"+ht.Msg.MIXGO_ME_DISPLAY_HORIZONTAL,"'5x5'"],["5x8"+ht.Msg.MIXGO_ME_DISPLAY_VERTICAL,"'5x8'"]];this.setColour(HT),this.appendDummyInput().appendField(ht.Msg.OLED_SET_FONT).appendField(new ht.FieldDropdown(t),"OP"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},dh={init:function(){this.setColour(HT),this.appendValueInput("data").appendField(ht.Msg.OLED_BITMAP),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.OLED_BITMAP_OR_STRING)}},Ih={init:function(){this.setColour(HT),this.appendValueInput("data").appendField(ht.Msg.OLED_BITMAP),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(ht.Msg.MIXLY_MICROBIT_JS_NUMBER),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.OLED_BITMAP_OR_STRING)}},Th={init:function(){this.setColour(HT),this.appendValueInput("data").setCheck([String,"esp32_image","List","Tuple"]).appendField(ht.Msg.OLED_DRAWSTR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.OLED_BITMAP_OR_STRING)}},hh={init:function(){this.setColour(HT),this.appendValueInput("data").setCheck(String).appendField(ht.Msg.OLED_DRAWSTR),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(ht.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(ht.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendDummyInput("").appendField(ht.Msg.TEXT_CENTER).appendField(new ht.FieldDropdown([[ht.Msg.MICROPYTHON_DISPLAY_YES,"True"],[ht.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"center"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY)}},Mh={init:function(){this.setColour(HT),this.appendValueInput("data").setCheck(String).appendField(ht.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(ht.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(ht.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendValueInput("time").setCheck(Number).appendField(ht.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_SCROLL_IMAGE_OR_STRING_DELAY)}},mh={init:function(){this.setColour(HT),this.appendValueInput("data").setCheck(String).appendField(ht.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.appendValueInput("size").setCheck(Number).appendField(ht.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("time").setCheck(Number).appendField(ht.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Oh={init:function(){this.setColour(HT),this.appendValueInput("x").setCheck(Number).appendField(ht.Msg.MIXLY_ESP32_JS_MONITOR_SET_BRIGHTNESS).appendField(ht.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(ht.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendValueInput("STAT").setCheck([Number,Boolean]),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL)}},Eh={init:function(){this.jsonInit({colour:HT,args0:[{name:"state",options:[[ht.Msg.MPYTHON_DISPLAY_MODE_1,"1"],[ht.Msg.MPYTHON_DISPLAY_MODE_0,"0"]],type:"field_dropdown"},{name:"shape",options:[[ht.Msg.MPYTHON_DISPLAY_HOLLOW,"rect"],[ht.Msg.MPYTHON_DISPLAY_SOLID,"fill_rect"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"w",type:"input_value"},{name:"h",type:"input_value"}],inputsInline:!0,helpUrl:ht.Msg.mpython_HELPURL,tooltip:ht.Msg.MPYTHON_DISPLAY_SHAPE_RECT_TOOLTIP,message0:ht.Msg.MPYTHON_DISPLAY_SHAPE_RECT_MESSAGE0,nextStatement:null,previousStatement:null})}},Rh={init:function(){this.jsonInit({colour:HT,args0:[{name:"state",options:[[ht.Msg.MPYTHON_DISPLAY_MODE_1,"1"],[ht.Msg.MPYTHON_DISPLAY_MODE_0,"0"]],type:"field_dropdown"},{name:"dir_h_v",options:[[ht.Msg.mpython_vertical,"0"],[ht.Msg.mpython_horizontal,"1"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"length",type:"input_value"}],inputsInline:!0,helpUrl:ht.Msg.mpython_HELPURL,tooltip:ht.Msg.MPYTHON_DISPLAY_HVLINE_TOOLTIP,message0:ht.Msg.MPYTHON_DISPLAY_HVLINE_MESSAGE0,nextStatement:null,previousStatement:null})}},ch={init:function(){this.jsonInit({colour:HT,args0:[{name:"state",options:[[ht.Msg.mpython_display_hline_1,"1"],[ht.Msg.mpython_display_hline_0,"0"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x1",type:"input_value"},{name:"y1",type:"input_value"},{name:"x2",type:"input_value"},{name:"y2",type:"input_value"}],inputsInline:!0,helpUrl:ht.Msg.mpython_HELPURL,tooltip:ht.Msg.mpython_display_line_TOOLTIP,message0:ht.Msg.mpython_display_line_MESSAGE0,nextStatement:null,previousStatement:null})}},gh={init:function(){this.jsonInit({colour:HT,args0:[{type:"field_label",name:"size_image",text:ht.Msg.MIXLY_MICROBIT_Built_in_image1},{name:"path",options:[["Heart","Heart"],["Angry","Angry"],["Bored","Bored"],["Confused","Confused"],["Happy","Happy"],["Paper","Paper"],["Rock","Rock"],["Sad","Sad"],["Scissors","Scissors"],["Silly","Silly"],["Sleep","Sleep"],["Small_heart","Small_heart"],["Small_paper","Small_paper"],["Small_rock","Small_rock"],["Small_scissors","Small_scissors"],["Smile","Smile"],["Surprise","Surprise"],["Wonderful","Wonderful"],["Eyes_Angry","Eyes_Angry"],["Awake","Awake"],["Black_eye","Black_eye"],["Bottom_left","Bottom_left"],["Bottom_right","Bottom_right"],["Crazy_1","Crazy_1"],["Crazy_2","Crazy_2"],["Disappointed","Disappointed"],["Dizzy","Dizzy"],["Down","Down"],["Evil","Evil"],["Hurt","Hurt"],["Knocked_out","Knocked_out"],["Love","Love"],["Middle_left","Middle_left"],["Middle_right","Middle_right"],["Neutral","Neutral"],["Nuclear","Nuclear"],["Pinch_left","Pinch_left"],["Pinch_middle","Pinch_middle"],["Pinch_right","Pinch_right"],["Tear","Tear"],["Tired_left","Tired_left"],["Tired_middle","Tired_middle"],["Tired_right","Tired_right"],["Toxic","Toxic"],["Up","Up"],["Winking","Winking"],["Accept","Accept"],["Backward","Backward"],["Decline","Decline"],["Forward","Forward"],["Left","Left"],["No_go","No_go"],["Question_mark","Question_mark"],["Right","Right"],["Stop_1","Stop_1"],["Stop_2","Stop_2"],["Thumbs_down","Thumbs_down"],["Thumbs_up","Thumbs_up"],["Warning","Warning"],["Bomb","Bomb"],["Boom","Boom"],["Fire","Fire"],["Flowers","Flowers"],["Forest","Forest"],["Lightning","Lightning"],["Light_off","Light_off"],["Light_on","Light_on"],["Night","Night"],["Pirate","Pirate"],["Snow","Snow"],["Target","Target"],["Bar_0","Bar_0"],["Bar_1","Bar_1"],["Bar_2","Bar_2"],["Bar_3","Bar_3"],["Bar_4","Bar_4"],["Dial_0","Dial_0"],["Dial_1","Dial_1"],["Dial_2","Dial_2"],["Dial_3","Dial_3"],["Dial_4","Dial_4"],["Dots_0","Dots_0"],["Dots_1","Dots_1"],["Dots_2","Dots_2"],["Dots_3","Dots_3"],["Hourglass_0","Hourglass_0"],["Hourglass_1","Hourglass_1"],["Hourglass_2","Hourglass_2"],["Timer_0","Timer_0"],["Timer_1","Timer_1"],["Timer_2","Timer_2"],["Timer_3","Timer_3"],["Timer_4","Timer_4"],["Water_level_0","Water_level_0"],["Water_level_1","Water_level_1"],["Water_level_2","Water_level_2"],["Water_level_3","Water_level_3"]],type:"field_dropdown"}],output:"String",helpUrl:"",tooltip:"",message0:"%1 %2"})}},Ch={init:function(){this.appendDummyInput("").appendField(ht.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<5;t++){let e=this.appendDummyInput();for(let i=0;i<5;i++)e.appendField(new ht.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.setOutput(!0),this.setColour(HT),this.setTooltip(ht.Msg.MIXLY_MICROBIT_Create_image1)}},Sh={init:function(){this.setColour(HT),this.appendDummyInput().appendField(ht.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(ht.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS)}},Ah={init:function(){this.setColour(HT),this.appendDummyInput().appendField(ht.Msg.MIXLY_MIXBOT_AMBIENTBRIGHT),this.setInputsInline(!0),this.setOutput(!0,Number)}},Lh={init:function(){this.setColour(HT),this.appendValueInput("x").setCheck(Number).appendField(ht.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS+" 0.0-1.0")}},Nh={init:function(){var t=[[ht.Msg.mixpy_PL_PIE_SHADOW_N,"0"],[ht.Msg.CLOCKWISE+"90"+ht.Msg.blockpy_setheading_degree,"1"],[ht.Msg.CLOCKWISE+"180"+ht.Msg.blockpy_setheading_degree,"2"],[ht.Msg.CLOCKWISE+"270"+ht.Msg.blockpy_setheading_degree,"3"]];this.setColour(HT),this.appendDummyInput().appendField(ht.Msg.MIXLY_MIXBOT_SCREEN_ROTATE).appendField(new ht.FieldDropdown(t),"OP"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Dh={init:function(){this.appendDummyInput("").appendField(ht.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<12;t++){let e=this.appendDummyInput();for(let i=0;i<12;i++)e.appendField(new ht.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.setOutput(!0),this.setColour(HT),this.setTooltip(ht.Msg.MIXLY_MICROBIT_Create_image1)}},fh={init:function(){this.setColour(HT),this.appendValueInput("data").appendField(ht.Msg.OLED_BITMAP),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.OLED_BITMAP_OR_STRING)}},Ph={init:function(){this.setColour(HT),this.appendValueInput("data").appendField(ht.Msg.OLED_BITMAP),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(ht.Msg.MIXLY_MICROBIT_JS_NUMBER),this.appendValueInput("VAR").appendField(ht.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.OLED_BITMAP_OR_STRING)}},Fh={init:function(){this.setColour(HT),this.appendValueInput("data").setCheck(String).appendField(ht.Msg.OLED_DRAWSTR),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(ht.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(ht.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendDummyInput("").appendField(ht.Msg.TEXT_CENTER).appendField(new ht.FieldDropdown([[ht.Msg.MICROPYTHON_DISPLAY_YES,"True"],[ht.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"center"),this.appendValueInput("VAR").appendField(ht.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY)}},vh={init:function(){this.setColour(HT),this.appendValueInput("data").setCheck(String).appendField(ht.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Yh={init:function(){this.setColour(HT),this.appendValueInput("data").setCheck(String).appendField(ht.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(ht.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(ht.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendValueInput("time").setCheck(Number).appendField(ht.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.appendValueInput("VAR").appendField(ht.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_SCROLL_IMAGE_OR_STRING_DELAY)}},xh={init:function(){this.setColour(HT),this.appendValueInput("data").setCheck(String).appendField(ht.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Xh={init:function(){this.setColour(HT),this.appendValueInput("data").setCheck(String).appendField(ht.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.appendValueInput("size").setCheck(Number).appendField(ht.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("time").setCheck(Number).appendField(ht.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.appendValueInput("VAR").appendField(ht.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},bh={init:function(){this.jsonInit({colour:HT,args0:[{name:"shape",options:[[ht.Msg.MPYTHON_DISPLAY_HOLLOW,"rect"],[ht.Msg.MPYTHON_DISPLAY_SOLID,"fill_rect"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"w",type:"input_value"},{name:"h",type:"input_value"},{name:"VAR",type:"input_value"}],inputsInline:!0,helpUrl:ht.Msg.mpython_HELPURL,tooltip:ht.Msg.MPYTHON_DISPLAY_SHAPE_RECT_TOOLTIP,message0:ht.Msg.ONBOARD_TFT_DISPLAY_SHAPE_RECT_MESSAGE0,nextStatement:null,previousStatement:null})}},Vh={init:function(){this.jsonInit({colour:HT,args0:[{name:"dir_h_v",options:[[ht.Msg.mpython_vertical,"0"],[ht.Msg.mpython_horizontal,"1"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"length",type:"input_value"},{name:"VAR",type:"input_value"}],inputsInline:!0,helpUrl:ht.Msg.mpython_HELPURL,tooltip:ht.Msg.MPYTHON_DISPLAY_HVLINE_TOOLTIP,message0:ht.Msg.ONBOARD_TFT_DISPLAY_HVLINE_MESSAGE0,nextStatement:null,previousStatement:null})}},yh={init:function(){this.jsonInit({colour:HT,args0:[{type:"input_dummy"},{name:"x1",type:"input_value"},{name:"y1",type:"input_value"},{name:"x2",type:"input_value"},{name:"y2",type:"input_value"},{name:"VAR",type:"input_value"}],inputsInline:!0,helpUrl:ht.Msg.mpython_HELPURL,tooltip:ht.Msg.mpython_display_line_TOOLTIP,message0:ht.Msg.mpython_display_line_MESSAGE0,nextStatement:null,previousStatement:null})}},Bh={init:function(){var t=[[ht.Msg.MIXLY_UP,"shift_up"],[ht.Msg.MIXLY_DOWN,"shift_down"],[ht.Msg.MIXLY_LEFT,"shift_left"],[ht.Msg.MIXLY_RIGHT,"shift_right"]];this.setColour(HT),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.appendDummyInput("").appendField(ht.Msg.DISPLAY_IMAGE_LET),this.appendDummyInput("").appendField(ht.Msg.DISPLAY_IMAGE_LET2).appendField(new ht.FieldDropdown(t),"OP"),this.appendValueInput("val").appendField(ht.Msg.DISPLAY_IMAGE_SHIFT).setCheck(Number),this.appendDummyInput("").appendField(ht.Msg.DISPLAY_IMAGE_UNIT);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP"),i=ht.Msg.DISPLAY_IMAGE_LET,n=ht.Msg.DISPLAY_IMAGE_LET2,s=ht.Msg.DISPLAY_IMAGE_LET3;return i+n+{up:ht.Msg.MIXLY_UP,down:ht.Msg.MIXLY_DOWN,left:ht.Msg.MIXLY_LEFT,right:ht.Msg.MIXLY_RIGHT}[t]+s}))}},Gh={init:function(){this.setColour(HT),this.appendDummyInput("").appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("x").setCheck(Number).appendField(ht.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(ht.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendDummyInput().appendField(ht.Msg.HTML_COLOUR),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(ht.Msg.MIXLY_ESP32_JS_MONITOR_BRIGHTNESS)}},Uh={init:function(){this.setColour(HT),this.appendValueInput("x").setCheck(Number).appendField(ht.Msg.MIXLY_LCD_SETCOLOR).appendField(ht.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(ht.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendValueInput("VAR").appendField(ht.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL)}},wh={init:function(){this.setColour(HT),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_Clear_display),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_MICROBIT_Clear_display)}},kh={init:function(){this.setColour(HT),this.appendDummyInput().appendField(ht.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(ht.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS)}},Hh={init:function(){this.setColour(HT),this.appendValueInput("x").setCheck(Number).appendField(ht.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS+" 0.0-1.0")}},Wh={init:function(){this.setColour(HT),this.appendValueInput("VAR").appendField(ht.Msg.MIXLY_SCREEN_FILL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Kh={init:function(){this.setColour(HT),this.appendValueInput("SUB").appendField(ht.Msg.MIXLY_INIT_CLOCK),this.appendDummyInput().appendField(ht.Msg.MIXLY_CENTER_POS),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(ht.Msg.OLED_CIRCLE_RADIUS),this.appendValueInput("VAR").appendField(ht.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Jh={init:function(){this.setColour(HT),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ht.Msg.GET_RTCTIME),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Qh={init:function(){this.setColour(HT),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ht.Msg.SET_TIME),this.appendValueInput("h").setCheck(Number).appendField(ht.Msg.MIXLY_HOUR),this.appendValueInput("m").setCheck(Number).appendField(ht.Msg.MIXLY_MINUTE),this.appendValueInput("s").setCheck(Number).appendField(ht.Msg.MIXLY_SECOND),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},zh={init:function(){this.setColour(HT),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ht.Msg.DRAW_CLOCK),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},qh={init:function(){this.setColour(HT),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ht.Msg.CLEAR_CLOCK),this.appendValueInput("VAR").appendField(ht.Msg.MIXLY_STM32_TFT_BACKGROUND_COLOR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},jh={init:function(){this.jsonInit({colour:HT,args0:[{name:"shape",options:[[ht.Msg.MPYTHON_DISPLAY_HOLLOW,"False"],[ht.Msg.MPYTHON_DISPLAY_SOLID,"True"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"r",type:"input_value"},{name:"VAR",type:"input_value"}],inputsInline:!0,helpUrl:ht.Msg.mpython_HELPURL,message0:ht.Msg.ONBOARD_TFT_DISPLAY_SHAPE_CIRCLE_MESSAGE0,nextStatement:null,previousStatement:null})}},Zh="#777777",$h={init:function(){this.setColour(Zh),this.appendDummyInput("").appendField("from ").appendField(new ht.FieldTextInput("ESP32"),"path").appendField(" import ").appendField(new ht.FieldTextInput("*"),"module"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},tM={init:function(){this.setColour(Zh),this.appendDummyInput("").appendField("import ").appendField(new ht.FieldTextInput("module"),"module"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},eM={init:function(){this.setColour(Zh),this.appendDummyInput("").appendField(new ht.FieldTextInput("my_function"),"NAME"),this.itemCount_=1,this.arguments_=["x"],this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new ht.icons.MutatorIcon(["factory_create_with_item"],this))},mutationToDom:function(){var t=document.createElement("mutation");t.setAttribute("items",this.itemCount_);for(var e=0;ee?t[e]:'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ht.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},wM={init:function(){this.setColour(XM),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(ht.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},kM={init:function(){this.setColour(XM),this.appendDummyInput().appendField(ht.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ht.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},HM={init:function(){this.setColour(XM),this.appendDummyInput().appendField(ht.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ht.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},WM={init:function(){this.setColour(XM),this.appendDummyInput().appendField(ht.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").setCheck(String).appendField(ht.Msg.MIXLY_EMQX_SERVER).setAlign(ht.inputs.Align.RIGHT),this.appendValueInput("USERNAME").setCheck(String).appendField(ht.Msg.MIXLY_WIFI_USERNAME).setAlign(ht.inputs.Align.RIGHT),this.appendValueInput("PASSWORD").setCheck(String).appendField(ht.Msg.MIXLY_IOT_PASSWORD).setAlign(ht.inputs.Align.RIGHT),this.appendValueInput("PROJECT").setCheck(String).appendField(ht.Msg.MIXLY_EMQX_PROJECT).setAlign(ht.inputs.Align.RIGHT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},KM={init:function(){this.setColour(XM),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(ht.Msg.MIXLY_EMQX_PUBLISH_NEW).appendField(ht.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MSG").appendField(ht.Msg.HTML_BODY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_IOT_EMQX_PUBLISH_TOOLTIP)}},JM={init:function(){this.setColour(XM),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(ht.Msg.MIXLY_EMQX_SUBSCRIBE+ht.Msg.MIXLY_MICROBIT_MSG).appendField(ht.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("METHOD").appendField(ht.Msg.MIXLY_EMQX_SET_METHOD),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_IOT_EMQX_SUBSCRIBE_TOOLTIP)}},QM={init:function(){this.setColour(XM),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(ht.Msg.MIXLY_ESP32_DISCONNECT_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},zM={init:function(){this.setColour(XM),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(ht.Msg.MIXLY_EMQX_CONNECT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},qM={init:function(){this.setColour(XM),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(ht.Msg.MIXLY_ESP32_CHECK_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},jM={init:function(){this.setColour(XM),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROPYTHON_FORMAT).appendField(ht.Msg.MQTT_Topic),this.setInputsInline(!0),this.setOutput(!0)}},ZM={init:function(){this.setColour(XM),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROPYTHON_FORMAT).appendField(ht.Msg.MIXLY_EMQX_PUBLISH_MSG),this.setInputsInline(!0),this.setOutput(!0)}},$M={init:function(){this.setColour(XM),this.appendValueInput("VAR").appendField(ht.Msg.MIXLY_ESP32_IOT_MAP_FORMATING),this.setOutput(!0)}},tm={init:function(){this.setColour(XM),this.appendValueInput("VAR").appendField(ht.Msg.MIXLY_MICROPYTHON_FORMAT+"(Json)"),this.setOutput(!0)}},em={init:function(){this.setColour(XM),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(ht.Msg.MIXLY_EMQX_PING),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_IOT_EMQX_PING_TOOLTIP)}},im={init:function(){this.setColour(XM),this.appendDummyInput().appendField("MixIO").appendField(ht.Msg.MIXLY_GET_NTP),this.appendValueInput("addr").appendField(ht.Msg.blynk_SERVER_ADD),this.setInputsInline(!0),this.setOutput(!0)}},nm={init:function(){this.setColour(XM),this.appendDummyInput().appendField(ht.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").appendField(ht.Msg.MIXLY_EMQX_SERVER).setAlign(ht.inputs.Align.RIGHT),this.appendValueInput("KEY").appendField(ht.Msg.CONTROLS_FOR_INPUT_WITH+ht.Msg.MIXLY_MIXIO_SHARE_KEY).setAlign(ht.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},sm={init:function(){this.setColour(XM),this.appendDummyInput().appendField(ht.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").appendField(ht.Msg.MIXLY_EMQX_SERVER).setAlign(ht.inputs.Align.RIGHT),this.appendValueInput("KEY").appendField(ht.Msg.CONTROLS_FOR_INPUT_WITH+"Mixly Key").setAlign(ht.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},om={init:function(){this.VISITOR_ID=Mt.Config.BOARD.visitorId.str32.substring(0,8).toUpperCase(),this.setColour(XM),this.appendDummyInput("").appendField(new ht.FieldTextInput(this.visitorId),"VISITOR_ID"),this.setOutput(!0,null)},onchange:function(){const t=this.getFieldValue("VISITOR_ID");this.VISITOR_ID!==t&&this.setFieldValue(this.VISITOR_ID,"VISITOR_ID")}},_m={init:function(){this.setColour(XM),this.appendDummyInput().appendField("MixIO").appendField(ht.Msg.MSG.catEthernet_clinet),this.setOutput(!0),this.setInputsInline(!0)}},pm={init:function(){this.setColour(XM),this.appendDummyInput().appendField("HTTP"+ht.Msg.MIXLY_Client),this.appendValueInput("addr").appendField(ht.Msg.DISPLAY_IMAGE_LET2),this.appendDummyInput().appendField(ht.Msg.MIXLY_REQUESTS_GET).appendField(ht.Msg.MIXLY_GET_CURRENT_TIME).appendField(ht.Msg.MIXLY_OPEN_DEBUG).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[ht.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},am={init:function(){this.setColour(XM),this.appendDummyInput().appendField("HTTP"+ht.Msg.MIXLY_Client).appendField(ht.Msg.MIXLY_GET).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_REQUESTS_LEN,"client_len"],[ht.Msg.MIXLY_REQUESTS_GET_LEN,"server_len"],[ht.Msg.MIXLY_REQUESTS_MESSAGE,"text"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},um={init:function(){this.setColour(XM),this.appendDummyInput().appendField("MQTT"+ht.Msg.MIXLY_Client),this.appendValueInput("addr").appendField(ht.Msg.MIXLY_CONNECTTO),this.appendDummyInput().appendField(ht.Msg.MIXLY_INIT_SUBSCRIBE).appendField(ht.Msg.MQTT_Topic).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_GET_CURRENT_TIME,""]]),"key").appendField(ht.Msg.MIXLY_OPEN_DEBUG).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[ht.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"key2"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},rm={init:function(){this.setColour(XM),this.appendDummyInput().appendField("MQTT"+ht.Msg.MIXLY_Client).appendField(ht.Msg.MIXLY_GET).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_REQUESTS_LEN,"client_len"],[ht.Msg.MIXLY_REQUESTS_GET_LEN,"server_len"],[ht.Msg.MIXLY_REQUESTS_MESSAGE,"time_msg()"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},lm=bM,dm=VM,Im=yM,Tm=BM,hm=UM,Mm=225,mm={init:function(){this.setColour(Mm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(ht.Msg.MIXLY_NETWORK_INIT),this.appendDummyInput().appendField(ht.Msg.MIXLY_NETWORK_MODE).appendField(new ht.FieldDropdown([["STA","STA"],["AP","AP"]]),"mode"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_NETWORK_INIT_TOOLTIP)}},Om={init:function(){this.setColour(Mm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_NETWORK_WIFI_OPEN,"True"],[ht.Msg.MIXLY_NETWORK_WIFI_CLOSE,"False"]]),"op"),this.appendDummyInput("").appendField(ht.Msg.MIXLY_NETWORK_WIFI_FLAG),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("op"),i=ht.Msg.MIXLY_ESP32_NETWORK_OPEN_TOOLTIP;return{True:ht.Msg.MIXLY_NETWORK_WIFI_OPEN,False:ht.Msg.MIXLY_NETWORK_WIFI_CLOSE}[e]+i}))}},Em={init:function(){this.setColour(Mm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(ht.Msg.MIXLY_NETWORK_WIFI_IS_ACTIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_NETWORK_WIFI_IS_ACTIVE)}},Rm={init:function(){this.setColour(Mm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(ht.Msg.MIXLY_NETWORK_WIFI_SCAN),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip((function(){return ht.Msg.MIXLY_ESP32_NETWORK_SCAN_TOOLTIP+{0:"ssid",1:"bssid",2:"channel",3:"RSSI",4:"authmode",5:"hidden",all:ht.Msg.MIXLY_NETWORK_WIFI_SCAN_ATTRIBUTE}.all}))}},cm={init:function(){this.setColour(Mm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(ht.Msg.MIXLY_ESP32_NETWORK_CONNECT),this.appendValueInput("id").setCheck(String).appendField(ht.Msg.HTML_NAME),this.appendValueInput("password").setCheck(String).appendField(ht.Msg.HTML_PASSWORD),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_NETWORK_CONNECT_TOOLTIP)}},gm={init:function(){this.setColour(Mm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(ht.Msg.MIXLY_NETWORK_WIFI_CONNECT),this.appendDummyInput("").appendField(ht.Msg.MIXLY_SYMBOL_QUESTION),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_NETWORK_WIFI_CONNECT_TOOLTIP)}},Cm={init:function(){this.setColour(Mm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(ht.Msg.MIXLY_ESP32_NETWORK_GET_WIFI),this.appendDummyInput("").appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_ESP32_NETWORK_IP,"0"],[ht.Msg.MIXLY_ESP32_NETWORK_MASK,"1"],[ht.Msg.MIXLY_ESP32_NETWORK_GATEWAY,"2"],["DNS","3"]]),"mode"),this.setOutput(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("mode");return ht.Msg.MIXLY_ESP32_NETWORK_GET_WIFI_TOOLTIP+{0:ht.Msg.MIXLY_ESP32_NETWORK_IP,1:ht.Msg.MIXLY_ESP32_NETWORK_MASK,2:ht.Msg.MIXLY_ESP32_NETWORK_GATEWAY,3:"DNS"}[e]}))}},Sm={init:function(){this.setColour(Mm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(ht.Msg.MIXLY_ESP32_NETWORK_STOP_CONNECT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_NETWORK_STOP_TOOLTIP)}},Am={init:function(){this.setColour(Mm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(ht.Msg.MIXLY_ESP32_NETWORK_GET_WIFI),this.appendDummyInput().appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_NETWORK_WIFI_ESSID,"essid"],[ht.Msg.MIXLY_NETWORK_WIFI_CHANNEL,"channel"]]),"op"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_NETWORK_GET_WIFI_TOOLTIP)}},Lm={init:function(){this.setColour(Mm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(ht.Msg.LISTS_SET_INDEX_SET),this.appendValueInput("essid").setCheck(String).appendField(ht.Msg.MIXLY_NETWORK_WIFI_ESSID),this.appendValueInput("channel").setCheck(Number).appendField(ht.Msg.MIXLY_NETWORK_WIFI_CHANNEL),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_NETWORK_AP_CONNECT_TOOLTIP)}},Nm={init:function(){this.setColour(Mm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(ht.Msg.MIXLY_ESP32_NETWORK_SERVER1),this.appendDummyInput("").appendField(ht.Msg.MIXLY_ESP32_NETWORK_SERVER2),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_NETWORK_SOCKET_CLOSE_TOOLTIP)}},Dm={init:function(){this.setColour(Mm),this.appendValueInput("VAR").appendField(ht.Msg.MIXLY_MICROPYTHON_SOCKET_INIT).setCheck("var"),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROPYTHON_SOCKET_TYPE).appendField(new ht.FieldDropdown([["TCP","TCP"],["UDP","UDP"]]),"mode"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("mode");return ht.Msg.MIXLY_ESP32_NETWORK_SOCKET_INIT_TOOLTIP+{TCP:"TCP",UDP:"UDP"}[e]}))}},fm={init:function(){this.setColour(Mm),this.appendValueInput("VAR").setCheck("var").appendField(ht.Msg.MIXLY_MICROPYTHON_SOCKET_LET_SOCKET),this.appendValueInput("address").appendField(ht.Msg.MIXLY_MICROPYTHON_SOCKET_BIND_TO_ADDRESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_NETWORK_SOCKET_BIND_TOOLTIP)}},Pm={init:function(){this.setColour(Mm),this.appendValueInput("VAR").setCheck("var").appendField(ht.Msg.MIXLY_MICROPYTHON_SOCKET_LET_SOCKET),this.appendValueInput("address").appendField(ht.Msg.MIXLY_MICROPYTHON_SOCKET_CONNECT_TO_ADDRESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_NETWORK_SOCKET_CONNECT_TOOLTIP)}},Fm={init:function(){this.setColour(Mm),this.appendValueInput("VAR").setCheck("var"),this.appendValueInput("queue").setCheck(Number).appendField(ht.Msg.MIXLY_MICROPYTHON_SOCKET_LISTEN).appendField(ht.Msg.MIXLY_MICROPYTHON_SOCKET_QUEUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_NETWORK_SOCKET_LISTEN_TOOLTIP)}},vm={init:function(){this.setColour(Mm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROPYTHON_SOCKET_ACCEPT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_NETWORK_SOCKET_ACCEPT_TOOLTIP)}},Ym={init:function(){this.setColour(Mm),this.appendValueInput("VAR").setCheck("var").appendField("TCP"),this.appendValueInput("size").setCheck(Number).appendField(ht.Msg.MIXLY_MICROPYTHON_SOCKET_RECEIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_NETWORK_SOCKET_RECEIVE_TOOLTIP)}},xm={init:function(){this.setColour(Mm),this.appendValueInput("VAR").setCheck("var").appendField("TCP"),this.appendValueInput("content").appendField(ht.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_NETWORK_SOCKET_SEND_TOOLTIP)}},Xm={init:function(){this.setColour(Mm),this.appendValueInput("VAR").setCheck("var").appendField("UDP"),this.appendValueInput("size").setCheck(Number).appendField(ht.Msg.MIXLY_MICROPYTHON_SOCKET_RECEIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_NETWORK_SOCKET_RECEIVE_FROM_TOOLTIP)}},bm={init:function(){this.setColour(Mm),this.appendValueInput("VAR").setCheck("var").appendField("UDP"),this.appendValueInput("content").appendField(ht.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.appendValueInput("address").appendField(ht.Msg.MIXLY_MICROPYTHON_SOCKET_TO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_NETWORK_SOCKET_SEND_TO_TOOLTIP)}},Vm={init:function(){this.setColour(Mm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROPYTHON_SOCKET_CLOSE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_NETWORK_SOCKET_CLOSE_TOOLTIP)}},ym={init:function(){this.setColour(Mm),this.appendValueInput("DOMAIN").appendField(ht.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(ht.Msg.blockpy_REQUESTS_GET).appendField(new ht.FieldTextInput("response"),"VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ht.Msg.blockpy_REQUESTS_GET_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ht.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Bm={init:function(){this.appendValueInput("VAL");var t=[[ht.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE,"status_code"],[ht.Msg.blockpy_REQUESTS_GET_ATTR_TEXT,"text"],[ht.Msg.blockpy_REQUESTS_GET_ATTR_COOKIES,"cookies"],[ht.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT,"content"]];this.setColour(Mm),this.appendDummyInput("").appendField(ht.Msg.MIXLY_MICROBIT_JS_GET).appendField(new ht.FieldDropdown(t),"ATTR"),this.setInputsInline(!0),this.setOutput(!0,String);var e=this;this.setTooltip((function(){var t=e.getFieldValue("DIR");return{clear:ht.Msg.MIXLY_TOOLTIP_TURTEL_CLEAR,reset:ht.Msg.MIXLY_TOOLTIP_TURTEL_RESET,home:ht.Msg.MIXLY_TOOLTIP_TURTEL_HOME}[t]}))}},Gm={init:function(){this.appendValueInput("VAR").appendField(ht.Msg.DISPLAY_IMAGE_LET2).setCheck(String);this.setColour(Mm),this.appendDummyInput("").appendField(ht.Msg.blockpy_CONDUCT).appendField(new ht.FieldDropdown([["post","post"],["put","put"],["delete","delete"],["head","head"],["option","option"]]),"DIR"),this.appendDummyInput("").appendField(ht.Msg.blockpy_REQUESTS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{forward:ht.Msg.MIXLY_TOOLTIP_TURTEL_FORWARD,backward:ht.Msg.MIXLY_TOOLTIP_TURTEL_BACKWARD}[e]}))}},Um={init:function(){this.setColour(Mm),this.appendDummyInput("").appendField(ht.Msg.MIXLY_GET_NTP+"(NTP)"),this.appendValueInput("data").appendField(ht.Msg.blynk_SERVER_ADD),this.setOutput(!0,"Tuple"),this.setInputsInline(!0)}},wm={init:function(){this.setColour(Mm),this.appendDummyInput("").appendField(new ht.FieldDropdown([["ntp.aliyun.com","ntp.aliyun.com"],["ntp1.aliyun.com","ntp1.aliyun.com"],["ntp2.aliyun.com","ntp2.aliyun.com"],["ntp3.aliyun.com","ntp3.aliyun.com"],["ntp4.aliyun.com","ntp4.aliyun.com"],["ntp5.aliyun.com","ntp5.aliyun.com"],["ntp6.aliyun.com","ntp6.aliyun.com"],["ntp7.aliyun.com","ntp7.aliyun.com"],["time1.cloud.tencent.com","time1.cloud.tencent.com"],["time2.cloud.tencent.com","time2.cloud.tencent.com"],["time3.cloud.tencent.com","time3.cloud.tencent.com"],["time4.cloud.tencent.com","time4.cloud.tencent.com"],["time5.cloud.tencent.com","time5.cloud.tencent.com"]]),"op"),this.setOutput(!0)}},km=100,Hm={init:function(){if("mixgo_nova"==Mt.Boards.getSelectedBoardKey().split(":")[2])var t="Nova G1";this.setColour(km),this.appendDummyInput().appendField(t).appendField(ht.Msg.MIXLY_MIXGO_NOVA_POTENTIAL_NUM),this.setOutput(!0,Number),this.setInputsInline(!0)}},Wm={init:function(){if("mixgo_nova"==Mt.Boards.getSelectedBoardKey().split(":")[2])var t="Nova G1";this.setColour(km),this.appendValueInput("PIN").appendField(t).appendField(ht.Msg.MOTOR_DC).appendField(ht.Msg.LCD_NUMBERING),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_Direction).appendField(new ht.FieldDropdown([[ht.Msg.CLOCKWISE,"CW"],[ht.Msg.ANTI_CLOCKWISE,"CCW"],[ht.Msg.MOTOR_P,"P"],[ht.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Km={init:function(){if("mixgo_nova"==Mt.Boards.getSelectedBoardKey().split(":")[2])var t="Nova G1";this.setColour(km),this.appendValueInput("PIN").appendField(t).appendField(ht.Msg.SET_USB),this.appendValueInput("percent").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_POWER_SUPPLY),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Jm={init:function(){if("mixgo_nova"==Mt.Boards.getSelectedBoardKey().split(":")[2])var t="Nova G1";this.setColour(km),this.appendDummyInput().appendField(t).appendField(ht.Msg.MIXLY_SPK_STATE).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_ON,"True"],[ht.Msg.MIXLY_OFF,"False"]]),"state"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Qm=100,zm={init:function(){var t=Mt.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(Qm),this.appendValueInput("I2CSUB").appendField(ht.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(ht.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(ht.Msg.MIXLY_SETUP+ht.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(e),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},qm={init:function(){var t=Mt.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(Qm),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendDummyInput().appendField(ht.Msg.MIXLY_MIXGO_CAR_BATTERY_LEFT),this.setOutput(!0,Number),this.setInputsInline(!0)}},jm={init:function(){var t=Mt.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(Qm),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendValueInput("PIN").appendField(ht.Msg.MOTOR_DC).appendField(ht.Msg.LCD_NUMBERING),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_Direction).appendField(new ht.FieldDropdown([[ht.Msg.CLOCKWISE,"CW"],[ht.Msg.ANTI_CLOCKWISE,"CCW"],[ht.Msg.MOTOR_P,"P"],[ht.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Zm={init:function(){var t=Mt.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(Qm),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendValueInput("PIN").appendField(ht.Msg.MOTOR_DC).appendField(ht.Msg.LCD_NUMBERING),this.appendDummyInput().appendField(ht.Msg.MIXLY_STEPPER_GET_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},$m={init:function(){var t=Mt.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(Qm),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendValueInput("PIN").appendField("180°"+ht.Msg.MIXLY_SERVO).appendField(ht.Msg.LCD_NUMBERING),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_SERVO_MOVE)}},tO={init:function(){var t=Mt.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(Qm),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendValueInput("PIN").appendField("360°"+ht.Msg.MIXLY_SERVO).appendField(ht.Msg.LCD_NUMBERING),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_SERVO_SPEED_TOOLIPS)}},eO={init:function(){var t=Mt.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(Qm),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendValueInput("PIN").appendField("180°"+ht.Msg.MIXLY_SERVO),this.appendDummyInput().appendField(ht.Msg.MIXLY_GET+ht.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setOutput(!0,Number),this.setInputsInline(!0)}},iO={init:function(){var t=Mt.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(Qm),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendValueInput("PIN").appendField("360°"+ht.Msg.MIXLY_SERVO).appendField(ht.Msg.LCD_NUMBERING),this.appendDummyInput().appendField(ht.Msg.MIXLY_GET+ht.Msg.MIXLY_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},nO="#A58C5B",sO={init:function(){this.setColour(nO),this.appendValueInput("PIN",Number).appendField(ht.Msg.MIXLY_BUTTON).appendField(ht.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(ht.Msg.MIXLY_IS_PRESSED),this.appendValueInput("STAT").appendField(ht.Msg.MIXLY_ELECLEVEL),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_SENOR_IS_PRESSED)}},oO={init:function(){this.setColour(nO),this.appendValueInput("PIN",Number).appendField(ht.Msg.MIXLY_BUTTON).appendField(ht.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(ht.Msg.MIXLY_WAS_PRESSED),this.appendValueInput("STAT").appendField(ht.Msg.MIXLY_ELECLEVEL),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_SENOR_WAS_PRESSED)}},_O={init:function(){this.setColour(nO),this.appendValueInput("PIN",Number).appendField(ht.Msg.MIXLY_BUTTON).appendField(ht.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(ht.Msg.MIXLY_GET_PRESSES),this.appendValueInput("VAR").setCheck(Number).appendField(ht.Msg.MIXLY_GET_PRESSES_TIME),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(ht.Msg.PROCEDURES_DEFRETURN_RETURN+ht.Msg.MIXLY_BUTTON+ht.Msg.MIXLY_GET_PRESSES)}},pO={init:function(){this.setColour(nO),this.appendValueInput("PIN",Number).appendField(ht.Msg.MIXLY_BUTTON).appendField(ht.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(ht.Msg.MIXLY_MODE).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_RISING,"machine.Pin.IRQ_RISING"],[ht.Msg.MIXLY_FALLING,"machine.Pin.IRQ_FALLING"],[ht.Msg.MIXLY_CHANGE,"(machine.Pin.IRQ_RISING | machine.Pin.IRQ_FALLING)"]]),"mode"),this.appendValueInput("DO").appendField(ht.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ht.Msg.MIXLY_TOOLTIP_INOUT_ATTACHINTERRUPT)}},aO={init:function(){this.setColour(nO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput("").appendField(ht.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_MICROBIT_shake,"shake"],[ht.Msg.MIXLY_UP,"up"],[ht.Msg.MIXLY_DOWN,"down"],[ht.Msg.MIXLY_LEFT,"left"],[ht.Msg.MIXLY_RIGHT,"right"],[ht.Msg.MIXLY_MICROBIT_face_up,"face up"],[ht.Msg.MIXLY_MICROBIT_face_down,"face down"],[ht.Msg.MIXLY_MICROBIT_freefall,"freefall"],["3g","3g"],["6g","6g"],["8g","8g"]]),"gesture"),this.appendStatementInput("DO").appendField(ht.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("gesture"),i=ht.Msg.MIXLY_MICROBIT_JS_CURRENT,n=ht.Msg.MSG.catSensor,s=ht.Msg.MIXLY_MICROBIT_JS_STATE,o=ht.Msg.MIXLY_MICROBIT_PERFORMANCE;return i+n+s+{shake:ht.Msg.MIXLY_MICROBIT_shake,up:ht.Msg.MIXLY_UP,down:ht.Msg.MIXLY_DOWN,left:ht.Msg.MIXLY_LEFT,right:ht.Msg.MIXLY_RIGHT,"face up":ht.Msg.MIXLY_MICROBIT_face_up,"face down":ht.Msg.MIXLY_MICROBIT_face_down,freefall:ht.Msg.MIXLY_MICROBIT_freefall,"3g":"3g","6g":"6g","8g":"8g"}[e]+o}))}},uO={init:function(){this.setColour(nO),this.appendValueInput("SUB").appendField(ht.Msg.MIXLY_ADXL345).setCheck("var"),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_JS_ACCELERATION).appendField(new ht.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=ht.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=ht.Msg.MIXLY_MICROBIT_Direction,s=ht.Msg.MIXLY_MICROBIT_JS_ACCELERATION1;return i+{x:"x",y:"y",z:"z","(x,y,z)":ht.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},rO={init:function(){this.setColour(nO),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_JS_LIGHT_LEVEL),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_SENSOR_LIGHT_LEVEL_TOOLTIP)}},lO={init:function(){var t=[[ht.Msg.MIXLY_GETTEMPERATUE,"temperature"],[ht.Msg.MIXLY_GETHUMIDITY,"humidity"]];this.setColour(nO),this.appendValueInput("PIN",Number).appendField(new ht.FieldDropdown([["DHT11","DHT11"],["DHT22","DHT22"]]),"TYPE").appendField(ht.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(new ht.FieldDropdown(t),"WHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("WHAT");return{temperature:ht.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_TEM,relative_humidity:ht.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_HUM,tempandhum:ht.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_TEM_HUM}[t]}))}},dO={init:function(){this.setColour(nO),this.appendDummyInput().appendField(ht.Msg.MIXLY_ESP32_EXTERN_LIGHT),this.appendValueInput("PIN",Number).appendField(ht.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(ht.Msg.MIXLY_ESP32_EXTERN_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(ht.Msg.ESP32_SENSOR_NIXGO_LIGHT_TOOLTIP)}},IO={init:function(){this.setColour(nO),this.appendDummyInput().appendField(ht.Msg.MIXLY_ESP32_EXTERN_SOUND),this.appendValueInput("PIN",Number).appendField(ht.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(ht.Msg.MIXLY_ESP32_EXTERN_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(ht.Msg.ESP32_SENSOR_NIXGO_SOUND_TOOLTIP)}},TO={init:function(){this.setColour(nO),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new ht.FieldDropdown([[ht.Msg.TEXT_TRIM_LEFT,"left"],[ht.Msg.TEXT_TRIM_RIGHT,"right"]]),"direction").appendField(ht.Msg.MIXLY_ESP32_NEAR),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("direction"),i=ht.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP,n=ht.Msg.MIXLY_ESP32_NEAR;return i+{left:ht.Msg.TEXT_TRIM_LEFT,right:ht.Msg.TEXT_TRIM_RIGHT}[e]+n}))}},hO={init:function(){this.setColour(nO),this.appendValueInput("SUB").appendField("BMP280").setCheck("var"),this.appendDummyInput("").appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_GETTEMPERATUE,"get_BMP_temperature()"],[ht.Msg.MIXLY_GETPRESSURE,"get_BMP_pressure()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{"get_BMP_temperature()":ht.Msg.MIXLY_MICROBIT_SENSOR_BMP_temperature_TOOLTIP,"get_BMP_pressure()":ht.Msg.MIXLY_MICROBIT_SENSOR_BMP_press_TOOLTIP}[e]}))}},MO={init:function(){this.setColour(nO),this.appendValueInput("SUB").appendField("SHT20").setCheck("var"),this.appendDummyInput("").appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_GETTEMPERATUE,"get_SHT_temperature()"],[ht.Msg.MIXLY_GETHUMIDITY,"get_SHT_relative_humidity()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{"get_SHT_temperature()":ht.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,"get_SHT_relative_humidity()":ht.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},mO={init:function(){this.setColour(nO),this.appendValueInput("PIN",Number).appendField("DS18x20 "+ht.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(ht.Msg.MIXLY_GETTEMPERATUE),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(ht.Msg.MIXLY_MICROBIT_SENSOR_DS18X20_TOOLTIP)}},OO={init:function(){this.setColour(nO),this.appendDummyInput("").appendField("LM35"+ht.Msg.MIXLY_TEMP),this.appendValueInput("PIN",Number).appendField(ht.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(ht.Msg.MIXLY_GETTEMPERATUE),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(ht.Msg.MIXLY_TOOLTIP_LM35)}},EO={init:function(){this.setColour(nO),this.appendValueInput("I2CSUB").appendField(ht.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(ht.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(ht.Msg.MIXLY_SETUP+ht.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new ht.FieldDropdown([["MPU9250","MPU9250"],["BMP280","BMP280"],["SHT20","SHT20"],["ADXL345","ADXL345"],["LTR308","LTR308"],["LTR381RGB","LTR381RGB"],["HP203X","HP203X"],["SHTC3","SHTC3"],["AHT21","AHT21"],["VL53L0X","VL53L0X"],["QMC5883L","QMC5883L"],["MAX30102","MAX30102"],["APDS9960","APDS9960"],["RFID","RFID"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setFieldValue("LTR308","key")}},RO={init:function(){this.setColour(nO),this.appendDummyInput().appendField(ht.Msg.MIXLY_ESP32_MAX30102+" MAX30102"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(ht.Msg.MIXLY_GET).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_ESP32_MAX30102_IR,"[0]"],[ht.Msg.MIXLY_ESP32_MAX30102_RED,"[1]"],[ht.Msg.MIXLY_ESP32_MAX30102_IR+","+ht.Msg.MIXLY_ESP32_MAX30102_RED,""]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},cO={init:function(){this.setColour(nO),this.appendDummyInput().appendField(ht.Msg.MIXLY_ESP32_APDS9960+" APDS9960"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(ht.Msg.MIXLY_GET).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_ESP32_APDS9960_COLOR,"color"],[ht.Msg.MIXLY_ESP32_APDS9960_GESTURE,"gesture"],[ht.Msg.MIXLY_ESP32_APDS9960_APPROACH,"proximity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},gO={init:function(){this.setColour(nO),this.appendDummyInput().appendField(ht.Msg.MIXLY_ESP32_EXTERN_LIGHT+" LTR308"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(ht.Msg.MIXLY_GET_LIGHT_INTENSITY),this.setOutput(!0,Number),this.setInputsInline(!0)}},CO={init:function(){this.setColour(nO),this.appendValueInput("SUB").appendField(ht.Msg.HTML_COLOUR+ht.Msg.MSG.catSensor+" LTR381RGB").setCheck("var"),this.appendDummyInput("").appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_GET+ht.Msg.HTML_COLOUR,"[2]"],[ht.Msg.MIXLY_GET+ht.Msg.MIXLY_IR_STRENGTH,"[1]"],[ht.Msg.MIXLY_GET+ht.Msg.MIXLY_LIGHT_STRENGTH,"[0]"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},SO={init:function(){this.setColour(nO),this.appendValueInput("SUB").appendField(ht.Msg.MIXLY_EXTERN_LIGHTUV+" LTR390UV").setCheck("var"),this.appendDummyInput().appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_GET_ENV_LIGHT,"E"],[ht.Msg.MIXLY_GET_ULTRAVIOLET,"U"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},AO={init:function(){this.setColour(nO),this.appendDummyInput().appendField(ht.Msg.MIXLY_LASER_RANGE+" VL53L0X"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(ht.Msg.MIXLY_GET_DISTANCE+"(mm)"),this.setOutput(!0,Number),this.setInputsInline(!0)}},LO={init:function(){this.setColour(nO),this.appendValueInput("SUB").appendField(ht.Msg.MIXLY_TEM_HUM+" SHTC3").setCheck("var"),this.appendDummyInput("").appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_GETTEMPERATUE,"temperature"],[ht.Msg.MIXLY_GETHUMIDITY,"humidity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{temperature:ht.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,humidity:ht.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},NO={init:function(){this.setColour(nO),this.appendValueInput("SUB").appendField(ht.Msg.MIXLY_TEM_HUM+" AHT21").setCheck("var"),this.appendDummyInput("").appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_GETTEMPERATUE,"temperature"],[ht.Msg.MIXLY_GETHUMIDITY,"humidity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{temperature:ht.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,relative_humidity:ht.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},DO={init:function(){this.setColour(nO),this.appendValueInput("SUB").appendField(ht.Msg.MIXLY_Altitude+ht.Msg.MSG.catSensor+" HP203X").setCheck("var"),this.appendDummyInput("").appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_GETPRESSURE,"pressure()"],[ht.Msg.MIXLY_GETTEMPERATUE,"temperature()"],[ht.Msg.MIXLY_GET_ALTITUDE,"altitude()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},fO={init:function(){this.setColour(nO),this.appendValueInput("SUB").appendField(ht.Msg.MIXLY_MIXGOPE_FIELD+ht.Msg.MSG.catSensor+" QMC5883L").setCheck("var"),this.appendDummyInput("").appendField(ht.Msg.MIXLY_MICROBIT_JS_GET).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"get_bearing()"],[ht.Msg.MIXLY_TEMPERATURE,"get_temp()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},PO={init:function(){this.setColour(nO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput("").appendField(ht.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_MICROBIT_shake,"shake"],[ht.Msg.MIXLY_UP,"up"],[ht.Msg.MIXLY_DOWN,"down"],[ht.Msg.MIXLY_LEFT,"left"],[ht.Msg.MIXLY_RIGHT,"right"],[ht.Msg.MIXLY_MICROBIT_face_up,"face up"],[ht.Msg.MIXLY_MICROBIT_face_down,"face down"]]),"gesture"),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("gesture"),i=ht.Msg.MIXLY_MICROBIT_JS_CURRENT,n=ht.Msg.MSG.catSensor,s=ht.Msg.MIXLY_MICROBIT_JS_STATE,o=ht.Msg.MIXLY_MICROBIT_PERFORMANCE;return i+n+s+{shake:ht.Msg.MIXLY_MICROBIT_shake,up:ht.Msg.MIXLY_UP,down:ht.Msg.MIXLY_DOWN,left:ht.Msg.MIXLY_LEFT,right:ht.Msg.MIXLY_RIGHT,"face up":ht.Msg.MIXLY_MICROBIT_face_up,"face down":ht.Msg.MIXLY_MICROBIT_face_down}[e]+o}))}},FO={init:function(){this.setColour(nO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_JS_ACCELERATION).appendField(new ht.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=ht.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=ht.Msg.MIXLY_MICROBIT_Direction,s=ht.Msg.MIXLY_MICROBIT_JS_ACCELERATION1;return i+{x:"x",y:"y",z:"z","(x,y,z)":ht.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},vO={init:function(){this.setColour(nO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_JS_GET+ht.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH).appendField(new ht.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=ht.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=ht.Msg.MIXLY_MICROBIT_Direction,s=ht.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH;return i+{x:"x",y:"y",z:"z","(x,y,z)":ht.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},YO={init:function(){this.setColour(nO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+ht.Msg.MIXLY_ESP32_SENOR_GYRO).appendField(new ht.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=ht.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=ht.Msg.MIXLY_MICROBIT_Direction,s=ht.Msg.MIXLY_ESP32_SENOR_GYRO;return i+{x:"x",y:"y",z:"z","(x,y,z)":ht.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},xO={init:function(){this.setColour(nO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS)}},XO={init:function(){this.setColour(nO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(ht.Msg.MIXLY_GETTEMPERATUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_GETTEMPERATUE)}},bO={init:function(){this.setColour(nO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_JS_GET_COMPASS).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH,"strength"],[ht.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"heading"]]),"compass"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("compass");return ht.Msg.MIXLY_MICROBIT_JS_GET_COMPASS+{strength:ht.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH,heading:ht.Msg.MIXLY_MICROBIT_JS_BY_ANGLE}[e]}))}},VO={init:function(){this.setColour(nO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_Reset_COMPASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_MICROBIT_Reset_COMPASS)}},yO={init:function(){this.setColour(nO),this.appendValueInput("SPISUB").appendField(ht.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("SUB").appendField(ht.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(ht.Msg.MIXLY_SETUP+ht.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new ht.FieldDropdown([["RFID","RFID"],["WS-LoRa","Weather"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setFieldValue("RFID","key")}},BO={init:function(){this.setColour(nO),this.appendDummyInput().appendField("RFID"+ht.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(ht.Msg.MIXLY_LIST_INDEX),this.appendDummyInput("").appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_RFID_READ_CARD_UID,"id"],[ht.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL,"content"],[ht.Msg.MIXLY_ALL,"ALL"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},GO={init:function(){this.setColour(nO),this.appendDummyInput().appendField("RFID"+ht.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput("").appendField(ht.Msg.MIXLY_RFID_READ_CARD_UID),this.setOutput(!0,Number),this.setInputsInline(!0)}},UO={init:function(){this.setColour(nO),this.appendDummyInput().appendField("RFID"+ht.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(ht.Msg.MIXLY_LIST_INDEX),this.appendDummyInput("").appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL),this.setOutput(!0,"Tuple"),this.setInputsInline(!0)}},wO={init:function(){this.setColour(nO),this.appendDummyInput().appendField(ht.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(ht.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(ht.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},kO={init:function(){this.setColour(nO),this.appendDummyInput().appendField(ht.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(ht.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(ht.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.appendDummyInput().appendField(ht.Msg.RETURN_SUCCESS_OR_NOT),this.setInputsInline(!0),this.setOutput(!0,Boolean)}},HO={init:function(){this.setColour(nO),this.appendDummyInput().appendField("RFID"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput("").appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_RFID_SCAN_OK,"0"],[ht.Msg.MIXLY_RFID_SCAN_NOTAGERR,"1"],[ht.Msg.MIXLY_RFID_SCAN_ERROR,"2"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},WO={init:function(){this.setColour(nO),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendDummyInput("").appendField(ht.Msg.MIXLY_MICROBIT_JS_GET).appendField(new ht.FieldDropdown([["全部(元组)","data()[0]"],["全部(json)","data()[1]"],["全部(json,附带位置信息)","data()[2]"],["编号","data()[0][0]"],["电量","data()[0][1]"],["风速","data()[0][2]"],["阵风","data()[0][3]"],["风向","data()[0][4]"],["雨量","data()[0][5]"],["温度","data()[0][6]"],["湿度","data()[0][7]"],["光照","data()[0][8]"],["紫外线","data()[0][9]"],["大气压","data()[0][10]"],["信号强度","data()[0][11]"],["信噪比","data()[0][12]"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip("返回气象数据元组 data= (设备id,电池状态,风速m/s,阵风m/s,风向°,雨量mm,温度℃,湿度%,光照Lux,UVI,大气压Pa,信号强度dB,信噪比dB)")}},KO={init:function(){this.setColour(nO),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendDummyInput("").appendField(ht.Msg.MIXLY_SERIAL_AVAILABLE),this.setOutput(!0,Number),this.setInputsInline(!0)}},JO={init:function(){this.setColour(nO),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendValueInput("BASE").appendField("以主题"),this.appendDummyInput("").appendField("串口发送至MixIO"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},QO={init:function(){this.setColour(nO),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.itemCount_=2,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new ht.icons.MutatorIcon(["weather_set_label_item"],this)),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip()},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("weather_set_label_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n>6),i.push(128|63&o)):(2048<=o&&o<=55295||57344<=o&&o<=65535)&&(n+=3,i.push(224|15&o>>12),i.push(128|63&o>>6),i.push(128|63&o))}for(s=0;s>8,255&n].concat(i)}(t,!0),i="",n=0;n=0?"0x700000":["mixgo_zero"].indexOf(n)>=0?"0xE00000":"0x3A0000","32x12 Matrix"==_?(e.definitions_.import_matrix32x12="import matrix32x12",i=s+" = matrix32x12.Matrix("+o+",font_address="+p+")\n"):"16x8 Matrix"==_&&(e.definitions_.import_matrix16x8="import matrix16x8",i=s+" = matrix16x8.Matrix("+o+")\n"),i},sL=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},oL=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",space = "+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+",center = "+this.getFieldValue("center")+")\n"},_L=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},pL=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",delay = "+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},aL=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},uL=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",speed ="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+",space = "+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+")\n"},rL=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".fill(0)\n"+i+".show()\n"},lL=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("OP")+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")\n"},dL=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+"))",e.ORDER_ATOMIC]},IL=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".pixel(int("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+"), int("+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+"), "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"+i+".show()\n"},TL=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".get_brightness()",e.ORDER_ATOMIC]},hL=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".set_brightness("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+")\n"},ML=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("image"),e.ORDER_ATOMIC]},mL=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".map_"+t.getFieldValue("OP")+"("+e.valueToCode(t,"A",e.ORDER_ATOMIC)+","+e.valueToCode(t,"B",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},OL=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".map_invert("+e.valueToCode(t,"A",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},EL=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC);return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+" = ssd1306.SSD1306_I2C("+e.valueToCode(this,"row",e.ORDER_ATOMIC)+","+e.valueToCode(this,"column",e.ORDER_ATOMIC)+","+i+")\n"},RL=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_str("+(e.valueToCode(this,"Text_line1",e.ORDER_ASSIGNMENT)||"''")+","+(e.valueToCode(this,"Text_line2",e.ORDER_ASSIGNMENT)||"''")+","+(e.valueToCode(this,"Text_line3",e.ORDER_ASSIGNMENT)||"''")+","+(e.valueToCode(this,"Text_line4",e.ORDER_ASSIGNMENT)||"''")+")\n"},cL=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_line("+e.valueToCode(this,"x1",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"y1",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"x2",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"y2",e.ORDER_ATOMIC)+", 1)\n"},gL=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),o=e.valueToCode(this,"width",e.ORDER_ATOMIC),_=e.valueToCode(this,"height",e.ORDER_ATOMIC),p="TRUE"==this.getFieldValue("fill")?"True":"False",a=this.getFieldValue("OP");switch(p){case"True":return i+".show_fill_rect("+n+", "+s+", "+o+", "+_+","+a+")\n";case"False":return i+".show_rect("+n+", "+s+", "+o+", "+_+","+a+")\n"}},CL=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),o=e.valueToCode(this,"length",e.ORDER_ATOMIC);return i+".show_"+this.getFieldValue("direction")+"("+n+", "+s+", "+o+", 1)\n"},SL=function(t,e){return["ON"==this.getFieldValue("ONOFF")?"1":"0",e.ORDER_ATOMIC]},AL=function(t,e){e.definitions_.import_matrix="import matrix";var i=t.getFieldValue("OP");return[e.valueToCode(t,"img",e.ORDER_ATOMIC)+".shift_"+i+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},LL=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return e.definitions_.import_ssd1306="import ssd1306",e.definitions_.import_machine="import machine",i+".show_fill("+this.getFieldValue("key")+")\n"},NL=function(t,e){return["matrix.Image."+this.getFieldValue("ANIMATION"),e.ORDER_ATOMIC]},DL=function(t,e){var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),o=e.valueToCode(this,"r",e.ORDER_ATOMIC),_="TRUE"==this.getFieldValue("fill")?"True":"False",p=this.getFieldValue("OP");switch(_){case"True":return i+".show_fill_circle("+n+", "+s+", "+o+", "+p+")\n";case"False":return i+".show_circle("+n+", "+s+", "+o+", "+p+")\n"}},fL=function(t,e){var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var n=e.valueToCode(this,"x0",e.ORDER_ATOMIC),s=e.valueToCode(this,"y0",e.ORDER_ATOMIC),o=e.valueToCode(this,"x1",e.ORDER_ATOMIC),_=e.valueToCode(this,"y1",e.ORDER_ATOMIC),p=e.valueToCode(this,"x2",e.ORDER_ATOMIC),a=e.valueToCode(this,"y2",e.ORDER_ATOMIC),u="TRUE"==this.getFieldValue("fill")?"True":"False",r=this.getFieldValue("OP");switch(u){case"True":return i+".show_fill_triangle("+n+", "+s+", "+o+", "+_+", "+p+", "+a+", "+r+")\n";case"False":return i+".show_triangle("+n+", "+s+", "+o+", "+_+", "+p+", "+a+", "+r+")\n"}},PL=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_bitmap("+e.valueToCode(this,"START_X",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"START_Y",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"bitmap_name",e.ORDER_ATOMIC)+","+e.valueToCode(this,"WIDTH",e.ORDER_ATOMIC)+","+e.valueToCode(this,"HEIGHT",e.ORDER_ATOMIC)+")\n"},FL=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_pixel("+e.valueToCode(this,"POS_X",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"POS_Y",e.ORDER_ATOMIC)+")\n"},vL=function(t,e){var i,n=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),s=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),o=this.getFieldValue("key");return"TM1650"==o?(e.definitions_.import_tm1650="import tm1650",i=n+" = tm1650."+o+"("+s+")\n"):"TM1637"==o&&(e.definitions_.import_tm1637="import tm1637",i=n+" = tm1637."+o+"("+s+")\n"),i},YL=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+"."+this.getFieldValue("STAT")+"()\n"},xL=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".shownum("+e.valueToCode(this,"VALUE",e.ORDER_ATOMIC)+")\n"},XL=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".showDP("+e.valueToCode(this,"NO",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"},bL=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".intensity("+e.valueToCode(this,"VALUE",e.ORDER_ATOMIC)+")\n"},VL=function(t,e){e.definitions_.import_st7789="import st7789";var i=Mt.Boards.getSelectedBoardKey().split(":")[2],n="";n=["mpython","mixgo_pe","mixgo_nova"].indexOf(i)>=0?"0x700000":["mixgo_zero"].indexOf(i)>=0?"0xE00000":"0x3A0000";var s=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),o=e.valueToCode(this,"SPISUB",e.ORDER_ATOMIC),_=e.valueToCode(this,"PINCS",e.ORDER_ATOMIC),p=e.valueToCode(this,"PINDC",e.ORDER_ATOMIC);return s+" = st7789.ST7789("+o+","+e.valueToCode(this,"WIDTH",e.ORDER_ATOMIC)+","+e.valueToCode(this,"HEIGHT",e.ORDER_ATOMIC)+",dc_pin="+p+",cs_pin="+_+",rotation="+this.getFieldValue("rotate")+",font_address="+n+")\n"},yL=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a=i+".image("+n+",x = "+s+",y = "+o+",size = "+_+",color="+p+")\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a=i+".image("+n+",x = "+s+",y = "+o+",size = "+_+",color=0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},BL=function(t,e){var i="0x"+this.getFieldValue("COLOR").slice(1);return["0x"+((16252928&i)>>8|(64512&i)>>5|(255&i)>>3).toString(16),e.ORDER_ATOMIC]},GL=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),u=this.getFieldValue("center");if("0x"==a.slice(0,2))var r=i+".shows("+n+",x = "+s+",y = "+o+",size = "+_+",space = "+p+",center = "+u+",color="+a+")\n";else{const t=a.match(/\d+/g);var l="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");r=i+".shows("+n+",x = "+s+",y = "+o+",size = "+_+",space = "+p+",center = "+u+",color=0x"+((16252928&l)>>8|(64512&l)>>5|(255&l)>>3).toString(16)+")\n"}return r},UL=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==_.slice(0,2))var p=i+".frame("+n+",size = "+s+",delay = "+o+",color="+_+")\n";else{const t=_.match(/\d+/g);var a="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");p=i+".frame("+n+",size = "+s+",delay = "+o+",color=0x"+((16252928&a)>>8|(64512&a)>>5|(255&a)>>3).toString(16)+")\n"}return p},wL=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==a.slice(0,2))var u=i+".scroll("+n+",y = "+s+",size = "+o+",speed ="+_+",space = "+p+",color="+a+")\n";else{const t=a.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u=i+".scroll("+n+",y = "+s+",size = "+o+",speed ="+_+",space = "+p+",color=0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\n"}return u},kL=function(t,e){return e.definitions_.import_st7789="import st7789",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".fill(st7789."+this.getFieldValue("key")+")\n"},HL=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"x1",e.ORDER_ATOMIC),s=e.valueToCode(this,"y1",e.ORDER_ATOMIC),o=e.valueToCode(this,"x2",e.ORDER_ATOMIC),_=e.valueToCode(this,"y2",e.ORDER_ATOMIC),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a=i+".line("+n+", "+s+", "+o+", "+_+", color="+p+")\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a=i+".line("+n+", "+s+", "+o+", "+_+", color=0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},WL=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),s=this.getFieldValue("key"),o=e.valueToCode(this,"ADDR",e.ORDER_ATOMIC);return e.definitions_.import_i2clcd="import i2clcd",i+" = i2clcd.LCD("+n+",lcd_width="+s+",i2c_addr="+o+")\n"},KL=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",column = "+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+",line = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",center = "+this.getFieldValue("center")+")\n"},JL=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".print("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",column = "+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+",line = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",delay="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},QL=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".backlight("+this.getFieldValue("key")+")\n"},zL=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".clear()\n"},qL=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),s=e.valueToCode(this,"ADDR",e.ORDER_ATOMIC),o=Mt.Boards.getSelectedBoardKey().split(":")[2],_="";return _=["mpython","mixgo_pe","mixgo_nova"].indexOf(o)>=0?"0x700000":["mixgo_zero"].indexOf(o)>=0?"0xE00000":"0x3A0000",e.definitions_.import_oled128x64="import oled128x64",i+" = oled128x64.OLED("+n+",address="+s+",font_address="+_+")\n"},jL=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".image("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},ZL=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".image("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",x = "+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+",y = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",size = "+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+")\n"},$L=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},tN=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",x = "+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+",y = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",size = "+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+",space = "+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+",center = "+this.getFieldValue("center")+")\n"},eN=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},iN=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",size = "+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+",delay = "+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},nN=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},sN=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",y = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",size = "+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+",speed ="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+",space = "+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+")\n"},oN=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".fill(0)\n"+i+".show()\n"},_N=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("OP")+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")\n"},pN=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+"))",e.ORDER_ATOMIC]},aN=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".pixel(int("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+"), int("+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+"), "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"+i+".show()\n"},uN=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),o=e.valueToCode(t,"w",e.ORDER_ATOMIC),_=e.valueToCode(t,"h",e.ORDER_ATOMIC),p=t.getFieldValue("state");return i+"."+t.getFieldValue("shape")+"("+n+", "+s+", "+o+", "+_+", "+p+")\n"+i+".show()\n"},rN=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),o=e.valueToCode(t,"length",e.ORDER_ATOMIC),_=t.getFieldValue("state");return i+"."+("0"==t.getFieldValue("dir_h_v")?"v":"h")+"line("+n+", "+s+", "+o+", "+_+")\n"+i+".show()\n"},lN=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".line("+e.valueToCode(t,"x1",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"y1",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"x2",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"y2",e.ORDER_ATOMIC)+", "+t.getFieldValue("state")+")\n"+i+".show()\n"},dN=function(t,e){var i=Mt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix","onboard_matrix.shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},IN=function(t,e){var i=Mt.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),o=this.getFieldValue("center");return"mixgo_zero"==i||"mixgo_nova"==i?(e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft","onboard_tft.shows("+n+",space = "+s+",center = "+o+")\n"):(e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix","onboard_matrix.shows("+n+",space = "+s+",center = "+o+")\n")},TN=function(t,e){var i=Mt.Boards.getSelectedBoardKey().split(":")[2];if("mpython"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var n="onboard_oled.frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";n="onboard_matrix.frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}return n},hN=function(t,e){var i=Mt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix","onboard_matrix.frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",delay = "+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},MN=function(t,e){var i=Mt.Boards.getSelectedBoardKey().split(":")[2];if("mpython"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var n="onboard_oled.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";n="onboard_matrix.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}return n},mN=function(t,e){var i=Mt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix","onboard_matrix.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",speed ="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+",space = "+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+")\n"},ON=function(t,e){var i=Mt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix",["onboard_matrix."+t.getFieldValue("image"),e.ORDER_ATOMIC]},EN=function(t,e){var i=Mt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix",["onboard_matrix."+t.getFieldValue("image"),e.ORDER_ATOMIC]},RN=function(t,e){var i={"#000000":"0","#ff0000":"1"};function n(t){let e="";if(t.length%2==1&&(t="0"+t),t.length<8){let e=8-t.length;for(let i=1;i<=e;i++)t="0"+t}for(let i=1;i<=t.length;i++)i%2==0&&i!==t.length?e=e+t[i-1]+",0x":e+=t[i-1];return"0x"+e}let s=[];for(let e=0;e<12;e++){let o="",_=0,p=0;for(let n=0;n<32;n++)n<8?p=7-n:n<16?p=23-n:n<24?p=39-n:n<32&&(p=55-n),_+=Number(i[t.getFieldValue(e+"-"+n)])*Math.pow(2,31-p);o+=n(_.toString(16)),s.unshift(o)}let o=[];for(let t=0;t>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},ZN=function(t,e){var i=Mt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=this.getFieldValue("center"),u=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==u.slice(0,2))var r="onboard_tft.shows("+n+",x = "+s+",y = "+o+",size = "+_+",space = "+p+",center = "+a+",color="+u+")\n";else{const t=u.match(/\d+/g);var l="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");r="onboard_tft.shows("+n+",x = "+s+",y = "+o+",size = "+_+",space = "+p+",center = "+a+",color=0x"+((16252928&l)>>8|(64512&l)>>5|(255&l)>>3).toString(16)+")\n"}return r},$N=function(t,e){var i=Mt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_tft","onboard_tft.frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",color=0xffff)\n"},tD=function(t,e){var i=Mt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==_.slice(0,2))var p="onboard_tft.frame("+n+",size = "+s+",delay = "+o+",color="+_+")\n";else{const t=_.match(/\d+/g);var a="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");p="onboard_tft.frame("+n+",size = "+s+",delay = "+o+",color=0x"+((16252928&a)>>8|(64512&a)>>5|(255&a)>>3).toString(16)+")\n"}return p},eD=function(t,e){var i=Mt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_tft","onboard_tft.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",color=0xffff)\n"},iD=function(t,e){var i=Mt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==a.slice(0,2))var u="onboard_tft.scroll("+n+",y = "+s+",size = "+o+",speed ="+_+",space = "+p+",color="+a+")\n";else{const t=a.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u="onboard_tft.scroll("+n+",y = "+s+",size = "+o+",speed ="+_+",space = "+p+",color=0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\n"}return u},nD=function(t,e){var i=Mt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),o=e.valueToCode(t,"w",e.ORDER_ATOMIC),_=e.valueToCode(t,"h",e.ORDER_ATOMIC),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),a=t.getFieldValue("shape");if("0x"==p.slice(0,2))var u="onboard_tft."+a+"("+n+", "+s+", "+o+", "+_+", "+p+")\nonboard_tft.show()\n";else{const t=p.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u="onboard_tft."+a+"("+n+", "+s+", "+o+", "+_+", 0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\nonboard_tft.show()\n"}return u},sD=function(t,e){var i=Mt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),o=e.valueToCode(t,"length",e.ORDER_ATOMIC),_=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),p=t.getFieldValue("dir_h_v");if("0x"==_.slice(0,2))var a="onboard_tft."+("0"==p?"v":"h")+"line("+n+", "+s+", "+o+", "+_+")\nonboard_tft.show()\n";else{const t=_.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a="onboard_tft."+("0"==p?"v":"h")+"line("+n+", "+s+", "+o+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\nonboard_tft.show()\n"}return a},oD=function(t,e){var i=Mt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x1",e.ORDER_ATOMIC),s=e.valueToCode(t,"y1",e.ORDER_ATOMIC),o=e.valueToCode(t,"x2",e.ORDER_ATOMIC),_=e.valueToCode(t,"y2",e.ORDER_ATOMIC),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a="onboard_tft.line("+n+", "+s+", "+o+", "+_+", "+p+")\nonboard_tft.show()\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a="onboard_tft.line("+n+", "+s+", "+o+", "+_+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\nonboard_tft.show()\n"}return a},_D=function(t,e){var i=Mt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";return"onboard_tft.fill(0)\nonboard_tft.show()\n"},pD=function(t,e){var i=Mt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft","onboard_tft."+t.getFieldValue("OP")+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")\n"},aD=function(t,e){var i=Mt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft",["hex(onboard_tft.pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+")))",e.ORDER_ATOMIC]},uD=function(t,e){var i=Mt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==o.slice(0,2))var _="onboard_tft.pixel(int("+n+"), int("+s+"), "+o+")\nonboard_tft.show()\n";else{const t=o.match(/\d+/g);var p="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");_="onboard_tft.pixel(int("+n+"), int("+s+"), 0x"+((16252928&p)>>8|(64512&p)>>5|(255&p)>>3).toString(16)+")\nonboard_tft.show()\n"}return _},rD=function(t,e){var i=Mt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";return["onboard_tft.get_brightness()",e.ORDER_ATOMIC]},lD=function(t,e){var i=Mt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft","onboard_tft.set_brightness("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+")\n"},dD=function(t,e){var i=Mt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"VAR",e.ORDER_ASSIGNMENT);if("0x"==n.slice(0,2))var s="onboard_tft.fill("+n+")\nonboard_tft.show()\n";else{const t=n.match(/\d+/g);var o="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");s="onboard_tft.fill(0x"+((16252928&o)>>8|(64512&o)>>5|(255&o)>>3).toString(16)+")\nonboard_tft.show()\n"}return s},ID=function(t,e){var i=Mt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock";var n=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a=_+"=Clock("+n+","+s+","+o+","+p+")\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a=_+"=Clock("+n+","+s+","+o+",0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},TD=function(t,e){var i=Mt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".set_rtctime()\n"},hD=function(t,e){var i=Mt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".set_time("+e.valueToCode(this,"h",e.ORDER_ASSIGNMENT)+","+e.valueToCode(this,"m",e.ORDER_ASSIGNMENT)+","+e.valueToCode(this,"s",e.ORDER_ASSIGNMENT)+")\n"},MD=function(t,e){var i=Mt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".draw_clock()\n"},mD=function(t,e){var i=Mt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock";var n=e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==s.slice(0,2))var o=n+".clear("+s+")\n";else{const t=s.match(/\d+/g);var _="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");o=n+".clear(0x"+((16252928&_)>>8|(64512&_)>>5|(255&_)>>3).toString(16)+")\n"}return o},OD=function(t,e){var i=Mt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),o=e.valueToCode(t,"r",e.ORDER_ATOMIC),_=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),p=t.getFieldValue("shape");if("0x"==_.slice(0,2))var a="onboard_tft.ellipse("+n+", "+s+", "+o+", "+o+", "+_+","+p+")\nonboard_tft.show()\n";else{const t=_.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a="onboard_tft.ellipse("+n+", "+s+", "+o+", "+o+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+","+p+")\nonboard_tft.show()\n"}return a},ED=function(t,e){var i=this.getFieldValue("path"),n=this.getFieldValue("module");return e.definitions_["import_"+i+"_"+n]="from "+i+" import "+n,""},RD=function(t,e){var i=this.getFieldValue("module");return e.definitions_["import_"+i]="import "+i,""},cD=function(t,e){for(var i=this.getFieldValue("NAME"),n=new Array(this.itemCount_),s=0;s {\n"+e.statementToCode(this,"do")+"})\n"},gY=function(){return"control.reset()\n"},CY=function(t,e){return"control.waitMicros("+(e.valueToCode(this,"data",e.ORDER_ATOMIC)||Mt.Profile.default.serial)+")\n"},SY=function(t,e){return"control.raiseEvent("+(e.valueToCode(this,"system_event_bus_source",e.ORDER_ATOMIC)||Mt.Profile.default.serial)+", "+(e.valueToCode(this,"system_event_bus_value",e.ORDER_ATOMIC)||Mt.Profile.default.serial)+")\n"},AY=function(t,e){return"control.onEvent("+(e.valueToCode(this,"system_event_bus_source",e.ORDER_ATOMIC)||Mt.Profile.default.serial)+", "+(e.valueToCode(this,"system_event_bus_value",e.ORDER_ATOMIC)||Mt.Profile.default.serial)+", () => {\n"+e.statementToCode(this,"do")+")\n"},LY=function(t,e){return["control.eventTimestamp()",e.ORDER_ATOMIC]},NY=function(t,e){return["control.eventValue()",e.ORDER_ATOMIC]},DY=function(t,e){return[this.getFieldValue("key"),e.ORDER_ATOMIC]},fY=function(t,e){return[this.getFieldValue("key"),e.ORDER_ATOMIC]},PY=function(t,e){return["control.deviceName()",e.ORDER_ATOMIC]},FY=function(t,e){return["control.deviceSerialNumber()",e.ORDER_ATOMIC]},vY=function(t,e){return"panic("+(e.valueToCode(this,"STATUS_CODE",e.ORDER_ATOMIC)||"1000")+")\n"},YY=function(t,e){switch(e.definitions_.import_time="import time",this.getFieldValue("Time")){case"ms":return["time.ticks_ms()",e.ORDER_ATOMIC];case"us":return["time.ticks_us()",e.ORDER_ATOMIC]}},xY=function(){return"while True:\n pass\n"},XY=function(t,e){return e.definitions_.import_mixgo="import mixgo","reset()\n"},bY=function(t,e){return e.definitions_.import_os="import os","os.uname()"},VY=function(t,e){e.definitions_.import_time="import time";var i=e.valueToCode(this,"DELAY_TIME",e.ORDER_ATOMIC)||"1000";switch(this.getFieldValue("Time")){case"s":return"time.sleep("+i+")\n";case"ms":return"time.sleep_ms("+i+")\n";case"us":return"time.sleep_us("+i+")\n"}},yY=function(t,e){e.definitions_.import_time="import time";var i=e.valueToCode(this,"DELAY_TIME",e.ORDER_ATOMIC)||"1000";switch(this.getFieldValue("Time")){case"s":return"time.sleep("+i+")\n";case"ms":return"time.sleep_ms("+i+")\n";case"us":return"time.sleep_us("+i+")\n"}},BY=function(t,e){return e.definitions_.import_mixgo="import mixgo",(e.valueToCode(this,"VAR",e.ORDER_NONE)||"None")+".init(period = "+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+", mode = Timer."+(e.valueToCode(this,"mode",e.ORDER_NONE)||"None")+", callback = "+(e.valueToCode(this,"callback",e.ORDER_NONE)||"None")+")\n"},GY=function(t,e){return e.definitions_.import_machine="import machine",(e.valueToCode(this,"VAR",e.ORDER_NONE)||"None")+".init(period = "+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+", mode = machine.Timer."+this.getFieldValue("mode")+", callback = "+(e.valueToCode(this,"callback",e.ORDER_NONE)||"None")+")\n"},UY=function(t,e){return e.definitions_.import_time="import time",["time.ticks_diff("+(e.valueToCode(this,"END",e.ORDER_NONE)||"0")+", "+(e.valueToCode(this,"START",e.ORDER_NONE)||"0")+")",e.ORDER_ATOMIC]},wY=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return e.definitions_.import_machine="import machine",i+" = machine.Timer(0)\n"},kY=function(t,e){return e.definitions_.import_machine="import machine","wdt = machine.WDT(timeout= "+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+")\n"},HY=function(t,e){e.definitions_.import_machine="import machine";return"wdt.feed()\n"},WY=function(t,e){e.definitions_.import_machine="import machine";return"machine.reset()\n"},KY=function(t,e){e.definitions_.import_bitbot_onboard_bot51="from bitbot import onboard_bot51";return"onboard_bot51.shutdown()\n"},JY=wY,QY=GY,zY=UY,qY=VY,jY=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api."+this.getFieldValue("mode")+"("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+","+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},ZY=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api."+this.getFieldValue("mode")+"("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+","+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+","+e.valueToCode(this,"day",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},$Y=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api.weather_hourly("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+","+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+","+e.valueToCode(this,"hour",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},tx={};tx["元控青春"]={description:"MicroPython[ESP32C3 MixGo CE]",digital_pin:Mt.Profile.generate(["0-18","21","33-48"]),input_pin:Mt.Profile.generate(["0-18","21","33-48"]),output_pin:Mt.Profile.generate(["0-18","21","33-48"]),pwm_input:Mt.Profile.generate(["0-18","21","33-48"],"pwm","pwm"),analog_input:Mt.Profile.generate(["1-18"],"adc","adc"),pwm_output:Mt.Profile.generate(["0-18","21","33-48"],"pwm","pwm"),analog_output:Mt.Profile.generate(["1-18"],"adc","adc"),espnow_channel:Mt.Profile.generate(["1-13"]),haskylens_model:Mt.Profile.generate(["0-4"]),digital:Mt.Profile.generate(["0-18","21","33-48"],"pin","pin"),pwm_pin:Mt.Profile.generate(["0-18","21","33-48"]),pwm:Mt.Profile.generate(["0-18","21","33-48"],"pwm","pwm"),analog_pin:Mt.Profile.generate(["1-18"]),analog:Mt.Profile.generate(["1-18"],"adc","adc"),touch:Mt.Profile.generate(["1-14"],"tc","tc"),touch_pin:Mt.Profile.generate(["1-14"]),button:[["B1","B1key"],["B2","B2key"],["A1","A1key"],["A2","A2key"],["A3","A3key"],["A4","A4key"]],buttonB:[["B1","B1key"],["B2","B2key"]],axis:Mt.Profile.generate(["0-4"]),exlcdh:Mt.Profile.generate(["0-15"]),exlcdv:Mt.Profile.generate(["0-7"]),brightness:Mt.Profile.generate(["0-9"]),tts_voice:Mt.Profile.generate(["0-16"]),tts_builtin_music:Mt.Profile.generate(["0-47"]),tts_bgmusic:Mt.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["SILLY","onboard_matrix.SILLY"],["FABULOUS","onboard_matrix.FABULOUS"],["SURPRISED","onboard_matrix.SURPRISED"],["ASLEEP","onboard_matrix.ASLEEP"],["ANGRY","onboard_matrix.ANGRY"],["CONFUSED","onboard_matrix.CONFUSED"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"],["LEFT_ARROW","onboard_matrix.LEFT_ARROW"],["RIGHT_ARROW","onboard_matrix.RIGHT_ARROW"],["DRESS","onboard_matrix.DRESS"],["TRANSFORMERS","onboard_matrix.TRANSFORMERS"],["SCISSORS","onboard_matrix.SCISSORS"],["EXIT","onboard_matrix.EXIT"],["TREE","onboard_matrix.TREE"],["PACMAN","onboard_matrix.PACMAN"],["TARGET","onboard_matrix.TARGET"],["TSHIRT","onboard_matrix.TSHIRT"],["ROLLERSKATE","onboard_matrix.ROLLERSKATE"],["DUCK","onboard_matrix.DUCK"],["HOUSE","onboard_matrix.HOUSE"],["TORTOISE","onboard_matrix.TORTOISE"],["BUTTERFLY","onboard_matrix.BUTTERFLY"],["STICKFIGURE","onboard_matrix.STICKFIGURE"],["GHOST","onboard_matrix.GHOST"],["PITCHFORK","onboard_matrix.PITCHFORK"],["MUSIC_QUAVERS","onboard_matrix.MUSIC_QUAVERS"],["MUSIC_QUAVER","onboard_matrix.MUSIC_QUAVER"],["MUSIC_CROTCHET","onboard_matrix.MUSIC_CROTCHET"],["COW","onboard_matrix.COW"],["RABBIT","onboard_matrix.RABBIT"],["SQUARE_SMALL","onboard_matrix.SQUARE_SMALL"],["SQUARE","onboard_matrix.SQUARE"],["DIAMOND_SMALL","onboard_matrix.DIAMOND_SMALL"],["DIAMOND","onboard_matrix.DIAMOND"],["CHESSBOARD","onboard_matrix.CHESSBOARD"],["TRIANGLE_LEFT","onboard_matrix.TRIANGLE_LEFT"],["TRIANGLE","onboard_matrix.TRIANGLE"],["SNAKE","onboard_matrix.SNAKE"],["UMBRELLA","onboard_matrix.UMBRELLA"],["SKULL","onboard_matrix.SKULL"],["GIRAFFE","onboard_matrix.GIRAFFE"],["SWORD","onboard_matrix.SWORD"]],builtinimg_extern:[["HEART","matrix32x12.Matrix.HEART"],["HEART_SMALL","matrix32x12.Matrix.HEART_SMALL"],["HAPPY","matrix32x12.Matrix.HAPPY"],["SAD","matrix32x12.Matrix.SAD"],["SMILE","matrix32x12.Matrix.SMILE"],["SILLY","matrix32x12.Matrix.SILLY"],["FABULOUS","matrix32x12.Matrix.FABULOUS"],["SURPRISED","matrix32x12.Matrix.SURPRISED"],["ASLEEP","matrix32x12.Matrix.ASLEEP"],["ANGRY","matrix32x12.Matrix.ANGRY"],["CONFUSED","matrix32x12.Matrix.CONFUSED"],["NO","matrix32x12.Matrix.NO"],["YES","matrix32x12.Matrix.YES"],["LEFT_ARROW","matrix32x12.Matrix.LEFT_ARROW"],["RIGHT_ARROW","matrix32x12.Matrix.RIGHT_ARROW"],["DRESS","matrix32x12.Matrix.DRESS"],["TRANSFORMERS","matrix32x12.Matrix.TRANSFORMERS"],["SCISSORS","matrix32x12.Matrix.SCISSORS"],["EXIT","matrix32x12.Matrix.EXIT"],["TREE","matrix32x12.Matrix.TREE"],["PACMAN","matrix32x12.Matrix.PACMAN"],["TARGET","matrix32x12.Matrix.TARGET"],["TSHIRT","matrix32x12.Matrix.TSHIRT"],["ROLLERSKATE","matrix32x12.Matrix.ROLLERSKATE"],["DUCK","matrix32x12.Matrix.DUCK"],["HOUSE","matrix32x12.Matrix.HOUSE"],["TORTOISE","matrix32x12.Matrix.TORTOISE"],["BUTTERFLY","matrix32x12.Matrix.BUTTERFLY"],["STICKFIGURE","matrix32x12.Matrix.STICKFIGURE"],["GHOST","matrix32x12.Matrix.GHOST"],["PITCHFORK","matrix32x12.Matrix.PITCHFORK"],["onboard_music_QUAVERS","matrix32x12.Matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","matrix32x12.Matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","matrix32x12.Matrix.onboard_music_CROTCHET"],["COW","matrix32x12.Matrix.COW"],["RABBIT","matrix32x12.Matrix.RABBIT"],["SQUARE_SMALL","matrix32x12.Matrix.SQUARE_SMALL"],["SQUARE","matrix32x12.Matrix.SQUARE"],["DIAMOND_SMALL","matrix32x12.Matrix.DIAMOND_SMALL"],["DIAMOND","matrix32x12.Matrix.DIAMOND"],["CHESSBOARD","matrix32x12.Matrix.CHESSBOARD"],["TRIANGLE_LEFT","matrix32x12.Matrix.TRIANGLE_LEFT"],["TRIANGLE","matrix32x12.Matrix.TRIANGLE"],["SNAKE","matrix32x12.Matrix.SNAKE"],["UMBRELLA","matrix32x12.Matrix.UMBRELLA"],["SKULL","matrix32x12.Matrix.SKULL"],["GIRAFFE","matrix32x12.Matrix.GIRAFFE"],["SWORD","matrix32x12.Matrix.SWORD"]],imglist:[["ALL_CLOCKS","matrix.Image.ALL_CLOCKS"],["ALL_ARROWS","matrix.Image.ALL_ARROWS"]],playlist:[["DADADADUM","spk_midi.DADADADUM"],["ENTERTAINER","spk_midi.ENTERTAINER"],["PRELUDE","spk_midi.PRELUDE"],["ODE","spk_midi.ODE"],["NYAN","spk_midi.NYAN"],["RINGTONE","spk_midi.RINGTONE"],["FUNK","spk_midi.FUNK"],["BLUES","spk_midi.BLUES"],["BIRTHDAY","spk_midi.BIRTHDAY"],["WEDDING","spk_midi.WEDDING"],["FUNERAL","spk_midi.FUNERAL"],["PUNCHLINE","spk_midi.PUNCHLINE"],["PYTHON","spk_midi.PYTHON"],["BADDY","spk_midi.BADDY"],["CHASE","spk_midi.CHASE"],["BA_DING","spk_midi.BA_DING"],["WAWAWAWAA","spk_midi.WAWAWAWAA"],["JUMP_UP","spk_midi.JUMP_UP"],["JUMP_DOWN","spk_midi.JUMP_DOWN"],["POWER_UP","spk_midi.POWER_UP"],["POWER_DOWN","spk_midi.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],tone_notes:[["NOTE_C3","131"],["NOTE_D3","147"],["NOTE_E3","165"],["NOTE_F3","175"],["NOTE_G3","196"],["NOTE_A3","220"],["NOTE_B3","247"],["NOTE_C4","262"],["NOTE_D4","294"],["NOTE_E4","330"],["NOTE_F4","349"],["NOTE_G4","392"],["NOTE_A4","440"],["NOTE_B4","494"],["NOTE_C5","523"],["NOTE_D5","587"],["NOTE_E5","659"],["NOTE_F5","698"],["NOTE_G5","784"],["NOTE_A5","880"],["NOTE_B5","988"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"]]},tx["元控"]={description:"MicroPython[ESP32C3 MixGo CE]",digital_pin:Mt.Profile.generate(["0-18","21","33-48"]),input_pin:Mt.Profile.generate(["0-18","21","33-48"]),output_pin:Mt.Profile.generate(["0-18","21","33-48"]),pwm_input:Mt.Profile.generate(["0-18","21","33-48"],"pwm","pwm"),analog_input:Mt.Profile.generate(["1-18"],"adc","adc"),pwm_output:Mt.Profile.generate(["0-18","21","33-48"],"pwm","pwm"),analog_output:Mt.Profile.generate(["1-18"],"adc","adc"),espnow_channel:Mt.Profile.generate(["1-13"]),haskylens_model:Mt.Profile.generate(["0-4"]),digital:Mt.Profile.generate(["0-18","21","33-48"],"pin","pin"),pwm_pin:Mt.Profile.generate(["0-18","21","33-48"]),pwm:Mt.Profile.generate(["0-18","21","33-48"],"pwm","pwm"),analog_pin:Mt.Profile.generate(["1-18"]),analog:Mt.Profile.generate(["1-18"],"adc","adc"),touch:Mt.Profile.generate(["1-14"],"tc","tc"),touch_pin:Mt.Profile.generate(["1-14"]),button:[["B1","B1key"],["B2","B2key"],["A1","A1key"],["A2","A2key"],["A3","A3key"],["A4","A4key"]],buttonB:[["B1","B1key"],["B2","B2key"]],axis:Mt.Profile.generate(["0-4"]),exlcdh:Mt.Profile.generate(["0-15"]),exlcdv:Mt.Profile.generate(["0-7"]),brightness:Mt.Profile.generate(["0-9"]),tts_voice:Mt.Profile.generate(["0-16"]),tts_builtin_music:Mt.Profile.generate(["0-47"]),tts_bgmusic:Mt.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["SILLY","onboard_matrix.SILLY"],["FABULOUS","onboard_matrix.FABULOUS"],["SURPRISED","onboard_matrix.SURPRISED"],["ASLEEP","onboard_matrix.ASLEEP"],["ANGRY","onboard_matrix.ANGRY"],["CONFUSED","onboard_matrix.CONFUSED"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"],["LEFT_ARROW","onboard_matrix.LEFT_ARROW"],["RIGHT_ARROW","onboard_matrix.RIGHT_ARROW"],["DRESS","onboard_matrix.DRESS"],["TRANSFORMERS","onboard_matrix.TRANSFORMERS"],["SCISSORS","onboard_matrix.SCISSORS"],["EXIT","onboard_matrix.EXIT"],["TREE","onboard_matrix.TREE"],["PACMAN","onboard_matrix.PACMAN"],["TARGET","onboard_matrix.TARGET"],["TSHIRT","onboard_matrix.TSHIRT"],["ROLLERSKATE","onboard_matrix.ROLLERSKATE"],["DUCK","onboard_matrix.DUCK"],["HOUSE","onboard_matrix.HOUSE"],["TORTOISE","onboard_matrix.TORTOISE"],["BUTTERFLY","onboard_matrix.BUTTERFLY"],["STICKFIGURE","onboard_matrix.STICKFIGURE"],["GHOST","onboard_matrix.GHOST"],["PITCHFORK","onboard_matrix.PITCHFORK"],["MUSIC_QUAVERS","onboard_matrix.MUSIC_QUAVERS"],["MUSIC_QUAVER","onboard_matrix.MUSIC_QUAVER"],["MUSIC_CROTCHET","onboard_matrix.MUSIC_CROTCHET"],["COW","onboard_matrix.COW"],["RABBIT","onboard_matrix.RABBIT"],["SQUARE_SMALL","onboard_matrix.SQUARE_SMALL"],["SQUARE","onboard_matrix.SQUARE"],["DIAMOND_SMALL","onboard_matrix.DIAMOND_SMALL"],["DIAMOND","onboard_matrix.DIAMOND"],["CHESSBOARD","onboard_matrix.CHESSBOARD"],["TRIANGLE_LEFT","onboard_matrix.TRIANGLE_LEFT"],["TRIANGLE","onboard_matrix.TRIANGLE"],["SNAKE","onboard_matrix.SNAKE"],["UMBRELLA","onboard_matrix.UMBRELLA"],["SKULL","onboard_matrix.SKULL"],["GIRAFFE","onboard_matrix.GIRAFFE"],["SWORD","onboard_matrix.SWORD"]],builtinimg_extern:[["HEART","matrix32x12.Matrix.HEART"],["HEART_SMALL","matrix32x12.Matrix.HEART_SMALL"],["HAPPY","matrix32x12.Matrix.HAPPY"],["SAD","matrix32x12.Matrix.SAD"],["SMILE","matrix32x12.Matrix.SMILE"],["SILLY","matrix32x12.Matrix.SILLY"],["FABULOUS","matrix32x12.Matrix.FABULOUS"],["SURPRISED","matrix32x12.Matrix.SURPRISED"],["ASLEEP","matrix32x12.Matrix.ASLEEP"],["ANGRY","matrix32x12.Matrix.ANGRY"],["CONFUSED","matrix32x12.Matrix.CONFUSED"],["NO","matrix32x12.Matrix.NO"],["YES","matrix32x12.Matrix.YES"],["LEFT_ARROW","matrix32x12.Matrix.LEFT_ARROW"],["RIGHT_ARROW","matrix32x12.Matrix.RIGHT_ARROW"],["DRESS","matrix32x12.Matrix.DRESS"],["TRANSFORMERS","matrix32x12.Matrix.TRANSFORMERS"],["SCISSORS","matrix32x12.Matrix.SCISSORS"],["EXIT","matrix32x12.Matrix.EXIT"],["TREE","matrix32x12.Matrix.TREE"],["PACMAN","matrix32x12.Matrix.PACMAN"],["TARGET","matrix32x12.Matrix.TARGET"],["TSHIRT","matrix32x12.Matrix.TSHIRT"],["ROLLERSKATE","matrix32x12.Matrix.ROLLERSKATE"],["DUCK","matrix32x12.Matrix.DUCK"],["HOUSE","matrix32x12.Matrix.HOUSE"],["TORTOISE","matrix32x12.Matrix.TORTOISE"],["BUTTERFLY","matrix32x12.Matrix.BUTTERFLY"],["STICKFIGURE","matrix32x12.Matrix.STICKFIGURE"],["GHOST","matrix32x12.Matrix.GHOST"],["PITCHFORK","matrix32x12.Matrix.PITCHFORK"],["onboard_music_QUAVERS","matrix32x12.Matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","matrix32x12.Matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","matrix32x12.Matrix.onboard_music_CROTCHET"],["COW","matrix32x12.Matrix.COW"],["RABBIT","matrix32x12.Matrix.RABBIT"],["SQUARE_SMALL","matrix32x12.Matrix.SQUARE_SMALL"],["SQUARE","matrix32x12.Matrix.SQUARE"],["DIAMOND_SMALL","matrix32x12.Matrix.DIAMOND_SMALL"],["DIAMOND","matrix32x12.Matrix.DIAMOND"],["CHESSBOARD","matrix32x12.Matrix.CHESSBOARD"],["TRIANGLE_LEFT","matrix32x12.Matrix.TRIANGLE_LEFT"],["TRIANGLE","matrix32x12.Matrix.TRIANGLE"],["SNAKE","matrix32x12.Matrix.SNAKE"],["UMBRELLA","matrix32x12.Matrix.UMBRELLA"],["SKULL","matrix32x12.Matrix.SKULL"],["GIRAFFE","matrix32x12.Matrix.GIRAFFE"],["SWORD","matrix32x12.Matrix.SWORD"]],imglist:[["ALL_CLOCKS","matrix.Image.ALL_CLOCKS"],["ALL_ARROWS","matrix.Image.ALL_ARROWS"]],playlist:[["DADADADUM","spk_midi.DADADADUM"],["ENTERTAINER","spk_midi.ENTERTAINER"],["PRELUDE","spk_midi.PRELUDE"],["ODE","spk_midi.ODE"],["NYAN","spk_midi.NYAN"],["RINGTONE","spk_midi.RINGTONE"],["FUNK","spk_midi.FUNK"],["BLUES","spk_midi.BLUES"],["BIRTHDAY","spk_midi.BIRTHDAY"],["WEDDING","spk_midi.WEDDING"],["FUNERAL","spk_midi.FUNERAL"],["PUNCHLINE","spk_midi.PUNCHLINE"],["PYTHON","spk_midi.PYTHON"],["BADDY","spk_midi.BADDY"],["CHASE","spk_midi.CHASE"],["BA_DING","spk_midi.BA_DING"],["WAWAWAWAA","spk_midi.WAWAWAWAA"],["JUMP_UP","spk_midi.JUMP_UP"],["JUMP_DOWN","spk_midi.JUMP_DOWN"],["POWER_UP","spk_midi.POWER_UP"],["POWER_DOWN","spk_midi.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],tone_notes:[["NOTE_C3","131"],["NOTE_D3","147"],["NOTE_E3","165"],["NOTE_F3","175"],["NOTE_G3","196"],["NOTE_A3","220"],["NOTE_B3","247"],["NOTE_C4","262"],["NOTE_D4","294"],["NOTE_E4","330"],["NOTE_F4","349"],["NOTE_G4","392"],["NOTE_A4","440"],["NOTE_B4","494"],["NOTE_C5","523"],["NOTE_D5","587"],["NOTE_E5","659"],["NOTE_F5","698"],["NOTE_G5","784"],["NOTE_A5","880"],["NOTE_B5","988"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"]]},tx["ESP32S2 Generic"]={description:"MicroPython[ESP32C3 MixGo CC]",digital_pin:Mt.Profile.generate(["0-18","21","33-48"]),input_pin:Mt.Profile.generate(["0-18","21","33-48"]),output_pin:Mt.Profile.generate(["0-18","21","33-48"]),pwm_input:Mt.Profile.generate(["0-18","21","33-48"],"pwm","pwm"),analog_input:Mt.Profile.generate(["1-18"],"adc","adc"),pwm_output:Mt.Profile.generate(["0-18","21","33-48"],"pwm","pwm"),analog_output:Mt.Profile.generate(["1-18"],"adc","adc"),espnow_channel:Mt.Profile.generate(["1-13"]),haskylens_model:Mt.Profile.generate(["0-4"]),digital:Mt.Profile.generate(["0-18","21","33-48"],"pin","pin"),pwm_pin:Mt.Profile.generate(["0-18","21","33-48"]),pwm:Mt.Profile.generate(["0-18","21","33-48"],"pwm","pwm"),analog_pin:Mt.Profile.generate(["1-18"]),analog:Mt.Profile.generate(["1-18"],"adc","adc"),touch:Mt.Profile.generate(["1-14"],"tc","tc"),touch_pin:Mt.Profile.generate(["1-14"]),button:[["B1","B1key"],["B2","B2key"],["A1","A1key"],["A2","A2key"],["A3","A3key"],["A4","A4key"]],buttonB:[["B1","B1key"],["B2","B2key"]],axis:Mt.Profile.generate(["0-4"]),exlcdh:Mt.Profile.generate(["0-15"]),exlcdv:Mt.Profile.generate(["0-7"]),brightness:Mt.Profile.generate(["0-9"]),tts_voice:Mt.Profile.generate(["0-16"]),tts_builtin_music:Mt.Profile.generate(["0-47"]),tts_bgmusic:Mt.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["SILLY","onboard_matrix.SILLY"],["FABULOUS","onboard_matrix.FABULOUS"],["SURPRISED","onboard_matrix.SURPRISED"],["ASLEEP","onboard_matrix.ASLEEP"],["ANGRY","onboard_matrix.ANGRY"],["CONFUSED","onboard_matrix.CONFUSED"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"],["LEFT_ARROW","onboard_matrix.LEFT_ARROW"],["RIGHT_ARROW","onboard_matrix.RIGHT_ARROW"],["DRESS","onboard_matrix.DRESS"],["TRANSFORMERS","onboard_matrix.TRANSFORMERS"],["SCISSORS","onboard_matrix.SCISSORS"],["EXIT","onboard_matrix.EXIT"],["TREE","onboard_matrix.TREE"],["PACMAN","onboard_matrix.PACMAN"],["TARGET","onboard_matrix.TARGET"],["TSHIRT","onboard_matrix.TSHIRT"],["ROLLERSKATE","onboard_matrix.ROLLERSKATE"],["DUCK","onboard_matrix.DUCK"],["HOUSE","onboard_matrix.HOUSE"],["TORTOISE","onboard_matrix.TORTOISE"],["BUTTERFLY","onboard_matrix.BUTTERFLY"],["STICKFIGURE","onboard_matrix.STICKFIGURE"],["GHOST","onboard_matrix.GHOST"],["PITCHFORK","onboard_matrix.PITCHFORK"],["MUSIC_QUAVERS","onboard_matrix.MUSIC_QUAVERS"],["MUSIC_QUAVER","onboard_matrix.MUSIC_QUAVER"],["MUSIC_CROTCHET","onboard_matrix.MUSIC_CROTCHET"],["COW","onboard_matrix.COW"],["RABBIT","onboard_matrix.RABBIT"],["SQUARE_SMALL","onboard_matrix.SQUARE_SMALL"],["SQUARE","onboard_matrix.SQUARE"],["DIAMOND_SMALL","onboard_matrix.DIAMOND_SMALL"],["DIAMOND","onboard_matrix.DIAMOND"],["CHESSBOARD","onboard_matrix.CHESSBOARD"],["TRIANGLE_LEFT","onboard_matrix.TRIANGLE_LEFT"],["TRIANGLE","onboard_matrix.TRIANGLE"],["SNAKE","onboard_matrix.SNAKE"],["UMBRELLA","onboard_matrix.UMBRELLA"],["SKULL","onboard_matrix.SKULL"],["GIRAFFE","onboard_matrix.GIRAFFE"],["SWORD","onboard_matrix.SWORD"]],builtinimg_extern:[["HEART","matrix32x12.Matrix.HEART"],["HEART_SMALL","matrix32x12.Matrix.HEART_SMALL"],["HAPPY","matrix32x12.Matrix.HAPPY"],["SAD","matrix32x12.Matrix.SAD"],["SMILE","matrix32x12.Matrix.SMILE"],["SILLY","matrix32x12.Matrix.SILLY"],["FABULOUS","matrix32x12.Matrix.FABULOUS"],["SURPRISED","matrix32x12.Matrix.SURPRISED"],["ASLEEP","matrix32x12.Matrix.ASLEEP"],["ANGRY","matrix32x12.Matrix.ANGRY"],["CONFUSED","matrix32x12.Matrix.CONFUSED"],["NO","matrix32x12.Matrix.NO"],["YES","matrix32x12.Matrix.YES"],["LEFT_ARROW","matrix32x12.Matrix.LEFT_ARROW"],["RIGHT_ARROW","matrix32x12.Matrix.RIGHT_ARROW"],["DRESS","matrix32x12.Matrix.DRESS"],["TRANSFORMERS","matrix32x12.Matrix.TRANSFORMERS"],["SCISSORS","matrix32x12.Matrix.SCISSORS"],["EXIT","matrix32x12.Matrix.EXIT"],["TREE","matrix32x12.Matrix.TREE"],["PACMAN","matrix32x12.Matrix.PACMAN"],["TARGET","matrix32x12.Matrix.TARGET"],["TSHIRT","matrix32x12.Matrix.TSHIRT"],["ROLLERSKATE","matrix32x12.Matrix.ROLLERSKATE"],["DUCK","matrix32x12.Matrix.DUCK"],["HOUSE","matrix32x12.Matrix.HOUSE"],["TORTOISE","matrix32x12.Matrix.TORTOISE"],["BUTTERFLY","matrix32x12.Matrix.BUTTERFLY"],["STICKFIGURE","matrix32x12.Matrix.STICKFIGURE"],["GHOST","matrix32x12.Matrix.GHOST"],["PITCHFORK","matrix32x12.Matrix.PITCHFORK"],["onboard_music_QUAVERS","matrix32x12.Matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","matrix32x12.Matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","matrix32x12.Matrix.onboard_music_CROTCHET"],["COW","matrix32x12.Matrix.COW"],["RABBIT","matrix32x12.Matrix.RABBIT"],["SQUARE_SMALL","matrix32x12.Matrix.SQUARE_SMALL"],["SQUARE","matrix32x12.Matrix.SQUARE"],["DIAMOND_SMALL","matrix32x12.Matrix.DIAMOND_SMALL"],["DIAMOND","matrix32x12.Matrix.DIAMOND"],["CHESSBOARD","matrix32x12.Matrix.CHESSBOARD"],["TRIANGLE_LEFT","matrix32x12.Matrix.TRIANGLE_LEFT"],["TRIANGLE","matrix32x12.Matrix.TRIANGLE"],["SNAKE","matrix32x12.Matrix.SNAKE"],["UMBRELLA","matrix32x12.Matrix.UMBRELLA"],["SKULL","matrix32x12.Matrix.SKULL"],["GIRAFFE","matrix32x12.Matrix.GIRAFFE"],["SWORD","matrix32x12.Matrix.SWORD"]],imglist:[["ALL_CLOCKS","matrix.Image.ALL_CLOCKS"],["ALL_ARROWS","matrix.Image.ALL_ARROWS"]],playlist:[["DADADADUM",".DADADADUM"],["ENTERTAINER",".ENTERTAINER"],["PRELUDE",".PRELUDE"],["ODE",".ODE"],["NYAN",".NYAN"],["RINGTONE",".RINGTONE"],["FUNK",".FUNK"],["BLUES",".BLUES"],["BIRTHDAY",".BIRTHDAY"],["WEDDING",".WEDDING"],["FUNERAL",".FUNERAL"],["PUNCHLINE",".PUNCHLINE"],["PYTHON",".PYTHON"],["BADDY",".BADDY"],["CHASE",".CHASE"],["BA_DING",".BA_DING"],["WAWAWAWAA",".WAWAWAWAA"],["JUMP_UP",".JUMP_UP"],["JUMP_DOWN",".JUMP_DOWN"],["POWER_UP",".POWER_UP"],["POWER_DOWN",".POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],tone_notes:[["NOTE_C3","131"],["NOTE_D3","147"],["NOTE_E3","165"],["NOTE_F3","175"],["NOTE_G3","196"],["NOTE_A3","220"],["NOTE_B3","247"],["NOTE_C4","262"],["NOTE_D4","294"],["NOTE_E4","330"],["NOTE_F4","349"],["NOTE_G4","392"],["NOTE_A4","440"],["NOTE_B4","494"],["NOTE_C5","523"],["NOTE_D5","587"],["NOTE_E5","659"],["NOTE_F5","698"],["NOTE_G5","784"],["NOTE_A5","880"],["NOTE_B5","988"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"]]};const ex=tx,ix=20,nx={init:function(){this.setColour(ix),this.appendDummyInput("").appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_HIGH,"HIGH"],[ht.Msg.MIXLY_LOW,"LOW"]]),"BOOL"),this.setOutput(!0,Boolean),this.setTooltip(ht.Msg.MIXLY_ESP32_INOUT_HIGHLOW_TOOLTIP)}},sx={init:function(){this.setColour(ix),this.appendValueInput("PIN",Number).appendField(ht.Msg.MIXLY_Digital_PINMODEOUT).setCheck(Number),this.appendValueInput("STAT").appendField(ht.Msg.MIXLY_STAT).setCheck([Number,Boolean]),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_INOUT_DIGITAL_WRITE_TOOLTIP)}},ox={init:function(){this.setColour(ix),this.appendValueInput("PIN",Number).appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(ht.Msg.MIXLY_Digital_PINMODEIN).setCheck(Number),this.appendDummyInput().appendField(ht.Msg.MIXLY_ESP32_MACHINE_VALUE),this.setInputsInline(!0),this.setOutput(!0,[Boolean,Number]),this.setTooltip(ht.Msg.MIXLY_ESP32_INOUT_DIGITAL_READ_TOOLTIP)}},_x={init:function(){this.setColour(ix),this.appendValueInput("PIN",Number).appendField("PWM"+ht.Msg.MIXLY_Analog_PINMODEOUT).setCheck(Number),this.appendValueInput("NUM",Number).appendField(ht.Msg.MIXLY_VALUE2).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(ht.Msg.MIXLY_ESP32_INOUT_PWM_ANALOG_WRITE_TOOLTIP)}},px={init:function(){this.setColour(ix),this.appendValueInput("PIN",Number).appendField("DAC"+ht.Msg.MIXLY_Analog_PINMODEOUT).setCheck(Number),this.appendValueInput("NUM",Number).appendField(ht.Msg.MIXLY_VALUE2).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(ht.Msg.MIXLY_ESP32_INOUT_ANALOG_WRITE_TOOLTIP)}},ax={init:function(){this.setColour(ix),this.appendValueInput("PIN",Number).appendField(ht.Msg.MIXLY_Analog_PINMODEOUT).setCheck(Number),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_JS_PERIOD_MIL).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_mSecond,"period"],[ht.Msg.MIXLY_uSecond,"period_microseconds"]]),"key"),this.appendValueInput("NUM",Number).appendField(ht.Msg.MIXLY_STAT).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(ht.Msg.MIXLY_ESP32_INOUT_ANALOG_WRITE_SET_TOOLTIP)}},ux={init:function(){this.setColour(ix),this.appendValueInput("PIN",Number).appendField("PWM"+ht.Msg.MIXLY_Analog_PINMODEOUT).setCheck(Number),this.appendValueInput("NUM",Number).appendField(ht.Msg.MIXLY_FREQUENCY+ht.Msg.MIXLY_STAT).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(ht.Msg.MIXLY_ESP32_INOUT_PWM_ANALOG_WRITE_SET_FREQ_TOOLTIP)}},rx={init:function(){this.setColour(ix),this.appendValueInput("PIN",Number).appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(ht.Msg.MIXLY_Analog_PINMODEIN).setCheck(Number),this.appendDummyInput().appendField(ht.Msg.MIXLY_ESP32_MACHINE_VALUE),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(ht.Msg.MIXLY_ESP32_INOUT_ANALOG_READ_TOOLTIP)}},lx={init:function(){this.setColour(ix),this.appendValueInput("PIN",Number).appendField(ht.Msg.MIXLY_Analog_PINMODEIN).setCheck(Number),this.appendDummyInput("").appendField(ht.Msg.MIXLY_ESP32_REF_VOLTAGE+ht.Msg.MIXLY_STAT).appendField(new ht.FieldDropdown([["3.3V","machine.ADC.ATTN_11DB"],["2.2V","machine.ADC.ATTN_6DB"],["1.5V","machine.ADC.ATTN_2_5DB"],["1.2V","machine.ADC.ATTN_0DB"]]),"atten"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(ht.Msg.MIXLY_ESP32_INOUT_ANALOG_ATTEN_TOOLTIP)}},dx={init:function(){this.setColour(ix),this.appendValueInput("pin").appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(ht.Msg.MIXLY_ESP32_TOUCH_SENSOR),this.appendDummyInput().appendField(ht.Msg.MIXLY_ESP32_MACHINE_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_INOUT_PIN_PRESSED_TOOLTIP)}},Ix={init:function(){this.setColour(20),this.appendValueInput("PIN",Number).appendField(ht.Msg.MIXLY_ATTACHINTERRUPT_PIN).setCheck(Number),this.appendDummyInput("").appendField(ht.Msg.MIXLY_MODE).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_RISING,"machine.Pin.IRQ_RISING"],[ht.Msg.MIXLY_FALLING,"machine.Pin.IRQ_FALLING"],[ht.Msg.MIXLY_CHANGE,"(machine.Pin.IRQ_RISING | machine.Pin.IRQ_FALLING)"]]),"mode"),this.appendValueInput("DO").appendField(ht.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_INOUT_PIN_ATTACHINTERRUPT_TOOLTIP)}},Tx={init:function(){this.setColour(20),this.appendDummyInput().appendField(ht.Msg.MIXLY_SETUP).appendField(new ht.FieldTextInput("pin#"),"PIN_OBJ"),this.appendDummyInput("").appendField(ht.Msg.MIXLY_MICROPYTHON_AS).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_Digital_PINMODEOUT,"machine.Pin.OUT"],[ht.Msg.MIXLY_Digital_PINMODEIN,"machine.Pin.IN"],[ht.Msg.MIXLY_PINMODEPULLUP,"machine.Pin.IN, machine.Pin.PULL_UP"],[ht.Msg.MIXLY_PINMODEPULLDOWN,"machine.Pin.IN, machine.Pin.PULL_DOWN"]]),"MODE"),this.appendValueInput("PIN",Number).appendField(ht.Msg.MIXLY_PIN).setCheck(Number),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_INOUT_DIGITAL_INIT_TOOLTIP)},getVars:function(){return["pin#"==this.getFieldValue("PIN_OBJ")?null:this.getFieldValue("PIN_OBJ")]},renameVar:function(t,e){ht.Names.equals(t,this.getFieldValue("PIN_OBJ"))&&this.setTitleValue(e,"PIN_OBJ")}},hx={init:function(){this.setColour(ix),this.appendDummyInput("").appendField(ht.Msg.MIXLY_SETUP).appendField(new ht.FieldTextInput("pwm#"),"PIN_OBJ").appendField(ht.Msg.MIXLY_MICROPYTHON_AS),this.appendDummyInput("").appendField("PWM"+ht.Msg.MIXLY_Analog_PINMODEOUT),this.appendValueInput("PIN",Number).appendField(ht.Msg.MIXLY_PIN).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(ht.Msg.MIXLY_ESP32_INOUT_PWM_ANALOG_WRITE_INIT_TOOLTIP)},getVars:function(){return["pwm#"==this.getFieldValue("PIN_OBJ")?null:this.getFieldValue("PIN_OBJ")]},renameVar:function(t,e){ht.Names.equals(t,this.getFieldValue("PIN_OBJ"))&&this.setTitleValue(e,"PIN_OBJ")}},Mx={init:function(){this.setColour(ix),this.appendDummyInput("").appendField(ht.Msg.MIXLY_SETUP).appendField(new ht.FieldTextInput("dac#"),"PIN_OBJ").appendField(ht.Msg.MIXLY_MICROPYTHON_AS),this.appendDummyInput("").appendField("DAC"+ht.Msg.MIXLY_Analog_PINMODEOUT),this.appendValueInput("PIN",Number).appendField(ht.Msg.MIXLY_PIN).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(ht.Msg.MIXLY_ESP32_INOUT_ANALOG_WRITE_INIT_TOOLTIP)},getVars:function(){return["dac#"==this.getFieldValue("PIN_OBJ")?null:this.getFieldValue("PIN_OBJ")]},renameVar:function(t,e){ht.Names.equals(t,this.getFieldValue("PIN_OBJ"))&&this.setTitleValue(e,"PIN_OBJ")}},mx={init:function(){this.setColour(ix),this.appendDummyInput("").appendField(ht.Msg.MIXLY_SETUP).appendField(new ht.FieldTextInput("adc#"),"PIN_OBJ").appendField(ht.Msg.MIXLY_MICROPYTHON_AS),this.appendDummyInput("").appendField(ht.Msg.MIXLY_Analog_PINMODEIN),this.appendValueInput("PIN",Number).appendField(ht.Msg.MIXLY_PIN).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(ht.Msg.MIXLY_ESP32_INOUT_ANALOG_READ_INIT_TOOLTIP)},getVars:function(){return["adc#"==this.getFieldValue("PIN_OBJ")?null:this.getFieldValue("PIN_OBJ")]},renameVar:function(t,e){ht.Names.equals(t,this.getFieldValue("PIN_OBJ"))&&this.setTitleValue(e,"PIN_OBJ")}},Ox={init:function(){this.setColour(ix),this.appendDummyInput("").appendField(ht.Msg.MIXLY_SETUP).appendField(new ht.FieldTextInput("tc#"),"PIN_OBJ").appendField(ht.Msg.MIXLY_MICROPYTHON_AS),this.appendDummyInput("").appendField(ht.Msg.MIXLY_ESP32_TOUCH_SENSOR),this.appendValueInput("PIN",Number).appendField(ht.Msg.MIXLY_PIN).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(ht.Msg.MIXLY_ESP32_INOUT_PIN_PRESSED_INIT_TOOLTIP)},getVars:function(){return["tc#"==this.getFieldValue("PIN_OBJ")?null:this.getFieldValue("PIN_OBJ")]},renameVar:function(t,e){ht.Names.equals(t,this.getFieldValue("PIN_OBJ"))&&this.setTitleValue(e,"PIN_OBJ")}},Ex=Tx,Rx=ux,cx=Ox,gx=dx,Cx=Ix,Sx=230,Ax={init:function(){this.setColour(Sx),this.appendDummyInput("").appendField(new ht.FieldDropdown(Mt.Profile.default.digital),"PIN"),this.setOutput(!0)}},Lx={init:function(){this.setColour(Sx),this.appendDummyInput("").appendField(new ht.FieldDropdown(Mt.Profile.default.digital_pin),"PIN"),this.setOutput(!0,Number)}},Nx={init:function(){this.setColour(Sx),this.appendDummyInput("").appendField(new ht.FieldDropdown(Mt.Profile.default.input_pin),"PIN"),this.setOutput(!0,Number)}},Dx={init:function(){this.setColour(Sx),this.appendDummyInput("").appendField(new ht.FieldDropdown(Mt.Profile.default.output_pin),"PIN"),this.setOutput(!0,Number)}},fx={init:function(){this.setColour(Sx),this.appendDummyInput("").appendField(new ht.FieldDropdown(Mt.Profile.default.espnow_channel),"PIN"),this.setOutput(!0,Number)}},Px={init:function(){this.setColour(Sx),this.appendDummyInput("").appendField(new ht.FieldDropdown(Mt.Profile.default.haskylens_model),"PIN"),this.setOutput(!0,Number)}},Fx={init:function(){this.setColour(Sx),this.appendDummyInput("").appendField(new ht.FieldDropdown(Mt.Profile.default.pwm_input),"PIN"),this.setOutput(!0)}},vx={init:function(){this.setColour(Sx),this.appendDummyInput("").appendField(new ht.FieldDropdown(Mt.Profile.default.analog_input),"PIN"),this.setOutput(!0)}},Yx={init:function(){this.setColour(Sx),this.appendDummyInput("").appendField(new ht.FieldDropdown(Mt.Profile.default.pwm_output),"PIN"),this.setOutput(!0)}},xx={init:function(){this.setColour(Sx),this.appendDummyInput("").appendField(new ht.FieldDropdown(Mt.Profile.default.analog_output),"PIN"),this.setOutput(!0)}},Xx={init:function(){this.setColour(Sx),this.appendDummyInput("").appendField(new ht.FieldDropdown(Mt.Profile.default.i2c_A_pin),"PIN"),this.setOutput(!0,Number)}},bx={init:function(){this.setColour(Sx),this.appendDummyInput("").appendField(new ht.FieldDropdown(Mt.Profile.default.i2c_B_pin),"PIN"),this.setOutput(!0,Number)}},Vx={init:function(){this.setColour(Sx),this.appendDummyInput("").appendField(new ht.FieldDropdown(Mt.Profile.default.spi_A_pin),"PIN"),this.setOutput(!0,Number)}},yx={init:function(){this.setColour(Sx),this.appendDummyInput("").appendField(new ht.FieldDropdown(Mt.Profile.default.spi_B_pin),"PIN"),this.setOutput(!0,Number)}},Bx={init:function(){this.setColour(Sx),this.appendDummyInput("").appendField(new ht.FieldDropdown(Mt.Profile.default.spi_C_pin),"PIN"),this.setOutput(!0,Number)}},Gx={init:function(){this.setColour(Sx),this.appendDummyInput("").appendField(new ht.FieldDropdown(Mt.Profile.default.spi_D_pin),"PIN"),this.setOutput(!0,Number)}},Ux={init:function(){this.setColour(Sx),this.appendDummyInput("").appendField(new ht.FieldDropdown(Mt.Profile.default.analog),"PIN"),this.setOutput(!0)}},wx={init:function(){this.setColour(Sx),this.appendDummyInput("").appendField(new ht.FieldDropdown(Mt.Profile.default.analog_pin),"PIN"),this.setOutput(!0,Number)}},kx={init:function(){this.setColour(Sx),this.appendDummyInput("").appendField(new ht.FieldDropdown(Mt.Profile.default.dac),"PIN"),this.setOutput(!0)}},Hx={init:function(){this.setColour(Sx),this.appendDummyInput("").appendField(new ht.FieldDropdown(Mt.Profile.default.dac_pin),"PIN"),this.setOutput(!0,Number)}},Wx={init:function(){this.setColour(Sx),this.appendDummyInput("").appendField(new ht.FieldDropdown(Mt.Profile.default.button),"PIN"),this.setOutput(!0,Number)}},Kx={init:function(){this.setColour(Sx),this.appendDummyInput("").appendField(new ht.FieldDropdown(Mt.Profile.default.buttonB),"PIN"),this.setOutput(!0,Number)}},Jx={init:function(){this.setColour(Sx),this.appendDummyInput("").appendField(new ht.FieldDropdown(Mt.Profile.default.pwm),"PIN"),this.setOutput(!0)}},Qx={init:function(){this.setColour(Sx),this.appendDummyInput("").appendField(new ht.FieldDropdown(Mt.Profile.default.pwm_pin),"PIN"),this.setOutput(!0,Number)}},zx={init:function(){this.setColour(Sx),this.appendDummyInput("").appendField(new ht.FieldDropdown(Mt.Profile.default.touch_pin),"PIN"),this.setOutput(!0,Number)}},qx={init:function(){this.setColour(Sx),this.appendDummyInput("").appendField(new ht.FieldDropdown(Mt.Profile.default.touch),"PIN"),this.setOutput(!0)}},jx={init:function(){this.setColour(Sx),this.appendDummyInput("").appendField(new ht.FieldDropdown(Mt.Profile.default.serial_pin),"PIN"),this.setOutput(!0,Number)}},Zx={init:function(){this.setColour(Sx),this.appendDummyInput("").appendField(new ht.FieldDropdown(Mt.Profile.default.builtinimg),"PIN"),this.setOutput(!0,"esp32_image")}},$x={init:function(){this.setColour(Sx),this.appendDummyInput("").appendField(new ht.FieldDropdown(Mt.Profile.default.builtinimg_extern),"PIN"),this.setOutput(!0,"esp32_image")}},tX={init:function(){this.setColour(Sx),this.appendDummyInput("").appendField(new ht.FieldDropdown(Mt.Profile.default.imglist),"PIN"),this.setOutput(!0)}},eX={init:function(){this.setColour(Sx),this.appendDummyInput("").appendField(new ht.FieldDropdown(Mt.Profile.default.playlist),"PIN"),this.setOutput(!0)}},iX={init:function(){this.setColour(Sx),this.appendDummyInput("").appendField(new ht.FieldDropdown(Mt.Profile.default.playlist_extern),"PIN"),this.setOutput(!0)}},nX={init:function(){this.setColour(Sx),this.appendDummyInput("").appendField(new ht.FieldDropdown(Mt.Profile.default.exlcdh),"PIN"),this.setOutput(!0,Number)}},sX={init:function(){this.setColour(Sx),this.appendDummyInput("").appendField(new ht.FieldDropdown(Mt.Profile.default.exlcdv),"PIN"),this.setOutput(!0,Number)}},oX={init:function(){this.setColour(Sx),this.appendDummyInput("").appendField(new ht.FieldDropdown(Mt.Profile.default.axis),"PIN"),this.setOutput(!0,Number)}},_X={init:function(){this.setColour(Sx),this.appendDummyInput("").appendField(new ht.FieldDropdown(Mt.Profile.default.brightness),"PIN"),this.setOutput(!0,Number)}},pX={init:function(){this.setColour(Sx),this.appendDummyInput("").appendField(new ht.FieldDropdown(Mt.Profile.default.tts_voice),"PIN"),this.setOutput(!0,Number)}},aX={init:function(){this.setColour(Sx),this.appendDummyInput("").appendField(new ht.FieldDropdown(Mt.Profile.default.tts_builtin_music),"PIN"),this.setOutput(!0,Number)}},uX={init:function(){this.setColour(Sx),this.appendDummyInput("").appendField(new ht.FieldDropdown(Mt.Profile.default.tts_bgmusic),"PIN"),this.setOutput(!0,Number)}},rX={init:function(){this.setColour(Sx),this.appendDummyInput("").appendField(new ht.FieldDropdown(Mt.Profile.default.tone_notes),"PIN"),this.setOutput(!0,Number)}},lX={init:function(){this.setColour(Sx),this.appendDummyInput("").appendField(new ht.FieldDropdown(Mt.Profile.default.radio_power),"PIN"),this.setOutput(!0,Number)}},dX={init:function(){this.setColour(Sx),this.appendDummyInput("").appendField(new ht.FieldDropdown(Mt.Profile.default.radio_datarate),"PIN"),this.setOutput(!0,Number)}},IX={init:function(){this.setColour(Sx),this.appendDummyInput("").appendField(new ht.FieldDropdown(Mt.Profile.default.one_more),"PIN"),this.setOutput(!0)}},TX={init:function(){this.setColour(Sx),this.appendDummyInput("").appendField(new ht.FieldDropdown(Mt.Profile.default.digital_dot),"PIN"),this.setOutput(!0,Number)}},hX=function(t,e){return["HIGH"==this.getFieldValue("BOOL")?"1":"0",e.ORDER_ATOMIC]},MX=function(t,e){e.definitions_.import_machine="import machine";var i="";return i+=e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".value("+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"},mX=function(t,e){e.definitions_.import_machine="import machine";return[e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".value()",e.ORDER_ATOMIC]},OX=function(t,e){return e.definitions_.import_machine="import machine",e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".duty("+e.valueToCode(this,"NUM",e.ORDER_ATOMIC)+")\n"},EX=function(t,e){return e.definitions_.import_machine="import machine",e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".write("+e.valueToCode(this,"NUM",e.ORDER_ATOMIC)+")\n"},RX=function(t,e){e.definitions_.import_machine="import machine";var i=e.valueToCode(this,"PIN",e.ORDER_ATOMIC),n=e.valueToCode(this,"NUM",e.ORDER_ATOMIC);return i+".set_analog_"+this.getFieldValue("key")+"("+n+")\n"},cX=function(t,e){return e.definitions_.import_machine="import machine",e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".freq("+e.valueToCode(this,"NUM",e.ORDER_ATOMIC)+")\n"},gX=function(t,e){return e.definitions_.import_machine="import machine",[e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".read()",e.ORDER_ATOMIC]},CX=function(t,e){return e.definitions_.import_machine="import machine",[e.valueToCode(this,"pin",e.ORDER_ATOMIC)+".read()",e.ORDER_ATOMIC]},SX=function(t,e){e.definitions_.import_machine="import machine";var i=e.valueToCode(this,"PIN",e.ORDER_ATOMIC),n=this.getFieldValue("mode");return"machine.Pin("+i+").irq(handler = "+e.valueToCode(this,"DO",e.ORDER_ATOMIC)+", trigger = "+n+")\n"},AX=function(t,e){e.definitions_.import_machine="import machine";var i=this.getFieldValue("PIN_OBJ")||"pin#",n=e.valueToCode(this,"PIN",e.ORDER_ATOMIC),s=this.getFieldValue("MODE");return("pin#"==i?"pin"+n:e.variableDB_.getName(i,ht.Variables.NAME_TYPE))+" = machine.Pin("+n+", "+s+")\n"},LX=function(t,e){e.definitions_.import_machine="import machine";var i=this.getFieldValue("PIN_OBJ")||"pwm#",n=e.valueToCode(this,"PIN",e.ORDER_ATOMIC);return("pwm#"==i?"pwm"+n:e.variableDB_.getName(i,ht.Variables.NAME_TYPE))+" = machine.PWM(machine.Pin("+n+"))\n"},NX=function(t,e){e.definitions_.import_machine="import machine";var i=this.getFieldValue("PIN_OBJ")||"dac#",n=e.valueToCode(this,"PIN",e.ORDER_ATOMIC);return("dac#"==i?"dac"+n:e.variableDB_.getName(i,ht.Variables.NAME_TYPE))+" = machine.DAC(machine.Pin("+n+"))\n"},DX=function(t,e){e.definitions_.import_machine="import machine";var i=this.getFieldValue("PIN_OBJ")||"adc#",n=e.valueToCode(this,"PIN",e.ORDER_ATOMIC);return("adc#"==i?"adc"+n:e.variableDB_.getName(i,ht.Variables.NAME_TYPE))+" = machine.ADC(machine.Pin("+n+"))\n"},fX=function(t,e){return e.definitions_.import_machine="import machine",e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".atten("+this.getFieldValue("atten")+")\n"},PX=function(t,e){e.definitions_.import_machine="import machine";var i=this.getFieldValue("PIN_OBJ")||"tc#",n=e.valueToCode(this,"PIN",e.ORDER_ATOMIC);return("tc#"==i?"tc"+n:e.variableDB_.getName(i,ht.Variables.NAME_TYPE))+" = machine.TouchPad(machine.Pin("+n+"))\n"},FX=function(t,e){return[this.getFieldValue("PIN"),e.ORDER_ATOMIC]},vX=FX,YX=FX,xX=FX,XX=FX,bX=FX,VX=FX,yX=FX,BX=FX,GX=FX,UX=FX,wX=FX,kX=FX,HX=FX,WX=FX,KX=FX,JX=FX,QX=FX,zX=FX,qX=FX,jX=FX,ZX=FX,$X=FX,tb=FX,eb=FX,ib=FX,nb=FX,sb=FX,ob=FX,_b=FX,pb=FX,ab=FX,ub=FX,rb=FX,lb=FX,db=FX,Ib=FX,Tb=FX,hb=FX,Mb=FX,mb=FX,Ob=FX,Eb=FX,Rb=FX,cb=FX;Object.assign(ht.Variables,Ot),Object.assign(ht.Procedures,kn),ht.Python=su,ht.generator=su,Mt.Profile.default={},Object.assign(Mt.Profile,ex),Object.assign(Mt.Profile.default,ex["MixGo CE"]),Object.assign(ht.Blocks,e,i,n,s,o,_,p,a,u,r,l,d,I,b,H,k,v,V,W,f,w,U,G,y,P,D,N,x,Y,X,F,B,lt,dt),Object.assign(ht.Python.forBlock,T,h,M,m,O,E,R,c,g,C,S,A,L,et,ut,at,j,it,rt,Q,pt,_t,ot,nt,z,J,K,$,Z,tt,q,st,It,Tt)})(); \ No newline at end of file +class Et{constructor(t,e){if(this.variablePrefix_=e||"",this.reservedDict_=Object.create(null),t)for(var i=t.split(","),n=0;n0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?i[s]=e.getInputTargetBlock("IF"+s).previousConnection:i[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?n[s]=e.getInputTargetBlock("DO"+s).previousConnection:n[s]=null,this.removeInput("DO"+s);this.elseifCount_=parseInt(t.getAttribute("elseif"),10),this.elseCount_=parseInt(t.getAttribute("else"),10);for(s=1;s<=this.elseifCount_;s++)this.appendValueInput("IF"+s).setCheck([Boolean,Number]).appendField(ht.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+s).appendField(ht.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(ht.Msg.CONTROLS_IF_MSG_ELSE);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"IF"+s);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_if_if");e.initSvg();for(var i=e.getInput("STACK").connection,n=1;n<=this.elseifCount_;n++){var s=t.newBlock("controls_if_elseif");s.initSvg(),i.connect(s.previousConnection),i=s.nextConnection}if(this.elseCount_){var o=t.newBlock("controls_if_else");o.initSvg(),i.connect(o.previousConnection)}return e},compose:function(t){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var e=this.elseifCount_;e>0;e--)this.removeInput("IF"+e),this.removeInput("DO"+e);this.elseifCount_=0;for(var i=t.getInputTargetBlock("STACK"),n=[null],s=[null],o=null;i;){switch(i.type){case"controls_if_elseif":this.elseifCount_++,n.push(i.valueConnection_),s.push(i.statementConnection_);break;case"controls_if_else":this.elseCount_++,o=i.statementConnection_;break;default:throw Error("Unknown block type: "+i.type)}i=i.nextConnection&&i.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(n,s,o)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),i=1;e;){switch(e.type){case"controls_if_elseif":var n=this.getInput("IF"+i),s=this.getInput("DO"+i);e.valueConnection_=n&&n.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,i++;break;case"controls_if_else":s=this.getInput("ELSE");e.statementConnection_=s&&s.connection.targetConnection;break;default:throw"Unknown block type."}e=e.nextConnection&&e.nextConnection.targetBlock()}},rebuildShape_:function(){var t=[null],e=[null],i=null;this.getInput("ELSE")&&(i=this.getInput("ELSE").connection.targetConnection);for(var n=1;this.getInput("IF"+n);){var s=this.getInput("IF"+n),o=this.getInput("DO"+n);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(o.connection.targetConnection),n++}this.updateShape_(),this.reconnectChildBlocks_(t,e,i)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var t=1;this.getInput("IF"+t);)this.removeInput("IF"+t),this.removeInput("DO"+t),t++;for(t=1;t<=this.elseifCount_;t++)this.appendValueInput("IF"+t).setCheck([Number,Boolean]).appendField(ht.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+t).appendField(ht.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(ht.Msg.CONTROLS_IF_MSG_ELSE)},reconnectChildBlocks_:function(t,e,i){for(var n=1;n<=this.elseifCount_;n++)t[n]&&t[n].reconnect(this,"IF"+n),e[n]&&e[n].reconnect(this,"DO"+n);i&&i.reconnect(this,"ELSE")}},xt={init:function(){this.setColour(Dt),this.appendValueInput("FROM").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.PYTHON_RANGE).appendField(ht.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.PYTHON_RANGE_STEP),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(ht.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},Xt={init:function(){this.setColour(Dt),this.appendValueInput("LIST").setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.CONTROLS_FOREACH_INPUT),this.appendValueInput("VAR").appendField(ht.Msg.CONTROLS_FOREACH_INPUT_ITEM),this.appendStatementInput("DO").appendField(ht.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip((function(){return ht.Msg.CONTROLS_FOR_TOOLTIP.replace("“%1”","")}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ht.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},bt={init:function(){this.setColour(Dt),this.appendValueInput("BOOL").setCheck([Boolean,Number]).appendField(ht.Msg.MIXLY_MICROBIT_JS_CURRENT).appendField(new ht.FieldDropdown(this.OPERATORS),"MODE"),this.appendStatementInput("DO").appendField(ht.Msg.LANG_CONTROLS_WHILEUNTIL_TITLE_REPEAT+ht.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return{WHILE:ht.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_WHILE,UNTIL:ht.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL}[e]}))}},Vt={init:function(){this.setColour(Dt),this.appendDummyInput().appendField(ht.Msg.MIXLY_PYTHON_TRY),this.appendStatementInput("try"),this.appendValueInput("IF1").appendField(ht.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO1").appendField(""),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new ht.icons.MutatorIcon(["controls_except","controls_finally"],this)),this.setTooltip(ht.Msg.MIXLY_MIXPY_CONTROL_TRY_TOOLTIP),this.elseifCount_=1,this.elseCount_=0},mutationToDom:function(){if(!this.elseifCount_&&!this.elseCount_)return null;var t=document.createElement("mutation");return this.elseifCount_&&t.setAttribute("elseif",this.elseifCount_),this.elseCount_&&t.setAttribute("else",1),t},domToMutation:function(t){var e=this,i=[],n=[];this.elseCount_&&this.removeInput("ELSE");for(var s=this.elseifCount_;s>0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?i[s]=e.getInputTargetBlock("IF"+s).previousConnection:i[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?n[s]=e.getInputTargetBlock("DO"+s).previousConnection:n[s]=null,this.removeInput("DO"+s);this.elseifCount_=parseInt(t.getAttribute("elseif"),10),this.elseCount_=parseInt(t.getAttribute("else"),10);for(s=1;s<=this.elseifCount_;s++)this.appendValueInput("IF"+s).setCheck([Boolean,Number]).appendField(ht.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+s).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(ht.Msg.MIXLY_PYTHON_FINALLY);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"IF"+s);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_try");e.initSvg();for(var i=e.getInput("STACK").connection,n=1;n<=this.elseifCount_;n++){var s=t.newBlock("controls_except");s.initSvg(),i.connect(s.previousConnection),i=s.nextConnection}if(this.elseCount_){var o=t.newBlock("controls_finally");o.initSvg(),i.connect(o.previousConnection)}return e},compose:function(t){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var e=this.elseifCount_;e>0;e--)this.removeInput("IF"+e),this.removeInput("DO"+e);this.elseifCount_=0;for(var i=t.getInputTargetBlock("STACK"),n=[null],s=[null],o=null;i;){switch(i.type){case"controls_except":this.elseifCount_++,n.push(i.valueConnection_),s.push(i.statementConnection_);break;case"controls_finally":this.elseCount_++,o=i.statementConnection_;break;default:throw Error("Unknown block type: "+i.type)}i=i.nextConnection&&i.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(n,s,o)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),i=1;e;){switch(e.type){case"controls_except":var n=this.getInput("IF"+i),s=this.getInput("DO"+i);e.valueConnection_=n&&n.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,i++;break;case"controls_finally":s=this.getInput("ELSE");e.statementConnection_=s&&s.connection.targetConnection;break;default:throw"Unknown block type."}e=e.nextConnection&&e.nextConnection.targetBlock()}},rebuildShape_:function(){var t=[null],e=[null],i=null;this.getInput("ELSE")&&(i=this.getInput("ELSE").connection.targetConnection);for(var n=1;this.getInput("IF"+n);){var s=this.getInput("IF"+n),o=this.getInput("DO"+n);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(o.connection.targetConnection),n++}this.updateShape_(),this.reconnectChildBlocks_(t,e,i)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var t=1;this.getInput("IF"+t);)this.removeInput("IF"+t),this.removeInput("DO"+t),t++;for(t=1;t<=this.elseifCount_;t++)this.appendValueInput("IF"+t).setCheck([Number,Boolean]).appendField(ht.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+t).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(ht.Msg.MIXLY_PYTHON_FINALLY)},reconnectChildBlocks_:function(t,e,i){for(var n=1;n<=this.elseifCount_;n++)t[n]&&t[n].reconnect(this,"IF"+n),e[n]&&e[n].reconnect(this,"DO"+n);i&&i.reconnect(this,"ELSE")}},yt={init:function(){this.setColour(Dt);var t=new ht.FieldDropdown(this.OPERATORS);this.appendDummyInput().appendField(t,"FLOW").appendField(ht.Msg.LANG_CONTROLS_FLOW_STATEMENTS_INPUT_OFLOOP),this.setPreviousStatement(!0),this.setTooltip(ht.Msg.MIXLY_PYTHON_CONTROLS_FLOW_STATEMENTS_TOOLTIP);var e=this;this.setTooltip((function(){var t=e.getFieldValue("FLOW");return{BREAK:ht.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK,CONTINUE:ht.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE}[t]}))},onchange:function(){if(this.workspace){var t=!1,e=this;do{if("controls_repeat"==e.type||"controls_for"==e.type||"controls_forEach"==e.type||"controls_repeat_ext"==e.type||"controls_whileUntil"==e.type||"do_while"==e.type){t=!0;break}e=e.getSurroundParent()}while(e);t?this.setWarningText(null):this.setWarningText(ht.Msg.LANG_CONTROLS_FLOW_STATEMENTS_WARNING)}}},Bt={init:function(){this.setColour(Dt),this.appendDummyInput().appendField(ht.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new ht.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(ht.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return ht.Msg.CONTROLS_FOR_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ht.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Gt={init:function(){this.setColour(Dt),this.appendDummyInput().appendField(ht.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new ht.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(ht.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return ht.Msg.MIXLY_PYTHON_CONTROLS_FOR_RANGE_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ht.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}};bt.OPERATORS=[[ht.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"WHILE"],[ht.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"UNTIL"]],yt.OPERATORS=[[ht.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK,"BREAK"],[ht.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE,"CONTINUE"]];const Ut={init:function(){this.setColour(Dt),this.appendDummyInput().appendField(ht.Msg.CONTROLS_IF_IF_TITLE_IF),this.appendStatementInput("STACK"),this.setTooltip(ht.Msg.CONTROLS_IF_IF_TOOLTIP),this.contextMenu=!1}},wt={init:function(){this.setColour(Dt),this.appendDummyInput().appendField(ht.Msg.CONTROLS_IF_ELSEIF_TITLE_ELSEIF),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ht.Msg.CONTROLS_IF_ELSEIF_TOOLTIP),this.contextMenu=!1}},kt={init:function(){this.setColour(Dt),this.appendDummyInput().appendField(ht.Msg.CONTROLS_IF_ELSE_TITLE_ELSE),this.setPreviousStatement(!0),this.setTooltip(ht.Msg.CONTROLS_IF_ELSE_TOOLTIP),this.contextMenu=!1}},Ht={init:function(){this.setColour(Dt),this.appendDummyInput().appendField("try"),this.appendStatementInput("STACK"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.contextMenu=!1}},Wt={init:function(){this.setColour(Dt),this.appendDummyInput().appendField(ht.Msg.MIXLY_PYTHON_EXCEPT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.contextMenu=!1,this.setTooltip(ht.Msg.MIXLY_MIXPY_CONTROL_EXCEPT_TOOLTIP)}},Kt={init:function(){this.setColour(Dt),this.appendDummyInput().appendField(ht.Msg.MIXLY_PYTHON_FINALLY),this.setPreviousStatement(!0),this.contextMenu=!1,this.setTooltip(ht.Msg.MIXLY_MIXPY_CONTROL_FINALLY_TOOLTIP)}},Jt={init:function(){this.jsonInit({message0:ht.Msg.CONTROLS_REPEAT_TITLE,args0:[{type:"input_value",name:"TIMES"}],previousStatement:null,nextStatement:null,colour:Dt,tooltip:ht.Msg.CONTROLS_REPEAT_TOOLTIP,helpUrl:ht.Msg.CONTROLS_REPEAT_HELPURL}),this.appendStatementInput("DO")}},Qt={init:function(){this.setColour(Dt),this.appendValueInput("BOOL").appendField("lambda"),this.appendStatementInput("DO").appendField(ht.Msg.MIXLY_STAT),this.setOutput(!0)}},zt={init:function(){this.setColour(Dt),this.appendDummyInput().appendField(ht.Msg.MIXLY_PYTHON_PASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ht.Msg.MIXLY_PYTHON_CONTROLS_PASS_TOOLTIP)}},qt={init:function(){this.setColour(Dt),this.appendDummyInput().appendField(ht.Msg.MIXLY_PYTHON_CONTROLS_THREAD_START),this.appendValueInput("callback").appendField(ht.Msg.MIXLY_PYTHON_CONTROLS_THREAD_USE),this.appendValueInput("VAR").appendField(ht.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_PYTHON_CONTROLS_THREAD_TOOLTIP)}},jt={init:function(){this.appendDummyInput().appendField(ht.Msg.CONTROLS_REPEAT_TITLE_REPEAT+ht.Msg.MIXLY_DO),this.appendStatementInput("input_data").setCheck(null),this.appendValueInput("select_data").setCheck(null).appendField(ht.Msg.CONTROLS_OPERATOR_UNTIL).appendField(new ht.FieldDropdown([[ht.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"true"],[ht.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"false"]]),"type"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Dt),this.setTooltip("do-while loop"),this.setHelpUrl("")}},Zt={init:function(){this.setColour(Dt),this.appendDummyInput().appendField(ht.Msg.MIXLY_OP_GARBAGE_COLLECT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},$t={init:function(){this.setColour(Dt),this.appendDummyInput().appendField(ht.Msg.MIXLY_GET_MEM_ALLOC),this.setOutput(!0)}},te={init:function(){this.setColour(Dt),this.appendDummyInput().appendField(ht.Msg.MIXLY_GET_MEM_FREE),this.setOutput(!0)}},ee=230;ht.FieldTextInput.math_number_validator=function(t){return String(t)},ht.FieldTextInput.math_number_validator_include_blank=function(t){if(""===t)return"";return/^-?(0X|0x|0O|0o|0B|0b)?[a-fA-F0-9]{1,}(\.[a-fA-F0-9]+)?$/.test(t)?String(t):null};const ie={init:function(){this.setColour(ee),this.appendDummyInput().appendField(new ht.FieldTextInput("0",ht.FieldTextInput.math_number_validator),"NUM"),this.setOutput(!0,Number),this.setTooltip(ht.Msg.MATH_NUMBER_TOOLTIP)}},ne={init:function(){this.setColour(ee);this.appendDummyInput("").appendField(ht.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new ht.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:ht.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_TOOLTIP,e:ht.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_TOOLTIP}[e]}))}},se={init:function(){this.setColour(ee);this.appendDummyInput("").appendField(ht.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new ht.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:ht.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_MP_TOOLTIP,e:ht.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_MP_TOOLTIP}[e]}))}},oe={init:function(){this.setColour(ee),this.setOutput(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new ht.FieldDropdown([["+","ADD"],["-","MINUS"],["×","MULTIPLY"],["÷","DIVIDE"],["%","QUYU"],["//","ZHENGCHU"],["**","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:ht.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:ht.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:ht.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:ht.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:ht.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:ht.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:ht.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},_e={init:function(){this.setColour(ee),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new ht.FieldDropdown([["+=","ADD"],["-=","MINUS"],["×=","MULTIPLY"],["÷=","DIVIDE"],["%=","QUYU"],["//=","ZHENGCHU"],["**=","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:ht.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:ht.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:ht.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:ht.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:ht.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:ht.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:ht.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},pe={init:function(){this.setColour(ee),this.setOutput(!0,Number),this.appendValueInput("A").setCheck(Number),this.appendValueInput("B").setCheck(Number).appendField(new ht.FieldDropdown([["&","&"],["|","|"],[">>",">>"],["<<","<<"]]),"OP"),this.setInputsInline(!0),this.setTooltip("位运算")}},ae={init:function(){this.setColour(ee),this.setOutput(!0,Number),this.appendValueInput("NUM").setCheck(Number).appendField(new ht.FieldDropdown([["sin","SIN"],["cos","COS"],["tan","TAN"],["asin","ASIN"],["acos","ACOS"],["atan","ATAN"],["-","-"],["ln","LN"],["log10","LOG10"],["e^","EXP"],["10^","POW10"]]),"OP");var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{SIN:ht.Msg.MATH_TRIG_TOOLTIP_SIN,COS:ht.Msg.MATH_TRIG_TOOLTIP_COS,TAN:ht.Msg.MATH_TRIG_TOOLTIP_TAN,ASIN:ht.Msg.MATH_TRIG_TOOLTIP_ASIN,ACOS:ht.Msg.MATH_TRIG_TOOLTIP_ACOS,ATAN:ht.Msg.MATH_TRIG_TOOLTIP_ATAN,LN:ht.Msg.MATH_SINGLE_TOOLTIP_LN}[e]}))}},ue={init:function(){var t=[[ht.Msg.MATH_BIN,"bin"],[ht.Msg.MATH_OCT,"oct"],[ht.Msg.MATH_HEX,"hex"]];this.setColour(ee),this.setOutput(!0,String),this.appendValueInput("NUM").setCheck(Number).appendField(new ht.FieldDropdown(t),"OP");var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{bin:ht.Msg.MATH_DEC_TOOLTIP_BIN,oct:ht.Msg.MATH_DEC_TOOLTIP_OCT,hex:ht.Msg.MATH_DEC_TOOLTIP_HEX}[t]}))}},re={init:function(){var t=[[ht.Msg.LANG_MATH_TO_ROUND,"round"],[ht.Msg.LANG_MATH_TO_CEIL,"ceil"],[ht.Msg.LANG_MATH_TO_FLOOR,"floor"],[ht.Msg.MATH_ABS,"fabs"],[ht.Msg.MATH_SQRT,"sqrt"]];this.setColour(ee),this.appendValueInput("A").setCheck(Number).appendField(new ht.FieldDropdown(t),"OP"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{sqrt:ht.Msg.MATH_SINGLE_TOOLTIP_ROOT,fabs:ht.Msg.MATH_SINGLE_TOOLTIP_ABS,sq:ht.Msg.MATH_SINGLE_TOOLTIP_SQ,round:ht.Msg.MATH_SINGLE_TOOLTIP_ROUND,ceil:ht.Msg.MATH_SINGLE_TOOLTIP_CEIL,floor:ht.Msg.MATH_SINGLE_TOOLTIP_FLOOR}[t]}))}},le={init:function(){var t=[[ht.Msg.MIXLY_MAX,"max"],[ht.Msg.MIXLY_MIN,"min"]];this.setColour(ee),this.appendValueInput("A").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(new ht.FieldDropdown(t),"OP").appendField("("),this.appendValueInput("B").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(","),this.appendDummyInput("").setAlign(ht.inputs.Align.RIGHT).appendField(")"),this.setInputsInline(!0),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{max:ht.Msg.MIXLY_TOOLTIP_MATH_MAX,min:ht.Msg.MIXLY_TOOLTIP_MATH_MIN}[t]}))}},de={init:function(){var t=[[ht.Msg.MATH_TWO,"two"],[ht.Msg.MATH_EIGHT,"eight"],[ht.Msg.MATH_TEN,"ten"],[ht.Msg.MATH_SIXTEEN,"sixteen"]];this.setColour(ee),this.appendDummyInput("").appendField(ht.Msg.MATH_BA),this.appendValueInput("NUM").appendField(new ht.FieldDropdown(t),"OP").appendField(ht.Msg.MATH_JinZhi).setCheck(Number),this.appendDummyInput("").appendField(ht.Msg.MATH_ZHW).appendField(new ht.FieldDropdown(t),"OP2").appendField(ht.Msg.MATH_JinZhi),this.setFieldValue("ten","OP2"),this.setOutput(!0),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP"),i={two:ht.Msg.MATH_Before_two,eight:ht.Msg.MATH_Before_eight,ten:ht.Msg.MATH_Before_ten,sixteen:ht.Msg.MATH_Before_sixteen},n=e.getFieldValue("OP2"),s={two:ht.Msg.MATH_Behind_two,eight:ht.Msg.MATH_Behind_eight,ten:ht.Msg.MATH_Behind_ten,sixteen:ht.Msg.MATH_Behind_sixteen};return i[t]+s[n]}))}},Ie={init:function(){var t=[[ht.Msg.LANG_MATH_INT,"int"],[ht.Msg.LANG_MATH_FLOAT,"float"]];this.setColour(ee),this.setOutput(!0,Number),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_RANDOM).appendField(new ht.FieldDropdown(t),"TYPE"),this.appendValueInput("FROM").setCheck(Number).appendField(ht.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.LANG_MATH_RANDOM_INT_INPUT_TO),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TYPE"),i={int:ht.Msg.LANG_MATH_INT,float:ht.Msg.LANG_MATH_FLOAT_RANDOM};return ht.Msg.MATH_RANDOM_INT_TOOLTIP+i[t]}))}},Te={init:function(){this.setColour(ee),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number).appendField(ht.Msg.LANG_MATH_CONSTRAIN_INPUT_CONSTRAIN),this.appendValueInput("LOW").setCheck(Number).appendField(ht.Msg.LANG_MATH_CONSTRAIN_INPUT_LOW),this.appendValueInput("HIGH").setCheck(Number).appendField(ht.Msg.LANG_MATH_CONSTRAIN_INPUT_HIGH),this.setInputsInline(!0),this.setTooltip(ht.Msg.MATH_CONSTRAIN_TOOLTIP)}},he={init:function(){this.setColour(ee),this.appendValueInput("NUM",Number).appendField(ht.Msg.MIXLY_MAP).setCheck(Number),this.appendValueInput("fromLow",Number).appendField(ht.Msg.MIXLY_MAP_FROM).setCheck(Number),this.appendValueInput("fromHigh",Number).appendField(",").setCheck(Number),this.appendValueInput("toLow",Number).appendField(ht.Msg.MIXLY_MAP_TO).setCheck(Number),this.appendValueInput("toHigh",Number).appendField(",").setCheck(Number),this.appendDummyInput("").appendField("]"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(ht.Msg.MIXLY_TOOLTIP_MATH_MAP)}},Me={init:function(){this.setColour(ee),this.appendDummyInput().appendField(new ht.FieldTextInput("0",ht.FieldTextInput.math_number_validator_include_blank),"NUM"),this.setOutput(!0),this.setTooltip(ht.Msg.MATH_NUMBER_TOOLTIP)}},me={init:function(){this.setColour(ee),this.appendValueInput("NUM").setCheck(Number).appendField(ht.Msg.LANG_MATH_RANDOM_SEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ht.Msg.MIXLY_TOOLTIP_MATH_RANDOM_SEED)}},Oe={init:function(){this.setColour(ee),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number),this.appendValueInput("VAR").setCheck(Number).appendField(ht.Msg.MATH_ROUND).appendField(ht.Msg.TEXT_KEEP),this.appendDummyInput().appendField(ht.Msg.TEXT_DECIMAL),this.setInputsInline(!0),this.setTooltip(ht.Msg.MATH_ROUND_NEW_TOOLTIP)}},Ee={init:function(){var t=[[ht.Msg.MIXLY_TO_INT,"int"],[ht.Msg.MIXLY_TO_FLOAT,"float"],[ht.Msg.MIXLY_TO_BITES,"b"]];this.setColour(ee),this.appendValueInput("VAR").appendField(new ht.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:ht.Msg.MIXLY_PYTHON_TOOLTIP_TOINT,float:ht.Msg.MIXLY_PYTHON_TOOLTIP_TOFLOAT,b:ht.Msg.MIXLY_TOOLTIP_TEXT_TOBYTE}[t]}))}},Re={init:function(){var t=[[ht.Msg.MIXLY_TO_INT,"int"],[ht.Msg.MIXLY_TO_FLOAT,"float"]];this.setColour(ee),this.appendValueInput("VAR").appendField(new ht.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:ht.Msg.MIXLY_TOOLTIP_TEXT_TOINT,float:ht.Msg.MIXLY_TOOLTIP_TEXT_TOFLOAT}[t]}))}},ce=he,ge=160,Ce={init:function(){this.setColour(ge),this.appendDummyInput().appendField(this.newQuote_(!0)).appendField(new ht.FieldTextInput(""),"TEXT").appendField(this.newQuote_(!1)),this.setOutput(!0,String),this.setTooltip(ht.Msg.TEXT_TEXT_TOOLTIP)},newQuote_:function(t){if(t==this.RTL)var e="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAKCAQAAAAqJXdxAAAAqUlEQVQI1z3KvUpCcRiA8ef9E4JNHhI0aFEacm1o0BsI0Slx8wa8gLauoDnoBhq7DcfWhggONDmJJgqCPA7neJ7p934EOOKOnM8Q7PDElo/4x4lFb2DmuUjcUzS3URnGib9qaPNbuXvBO3sGPHJDRG6fGVdMSeWDP2q99FQdFrz26Gu5Tq7dFMzUvbXy8KXeAj57cOklgA+u1B5AoslLtGIHQMaCVnwDnADZIFIrXsoXrgAAAABJRU5ErkJggg==";else e="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAKCAQAAAAqJXdxAAAAn0lEQVQI1z3OMa5BURSF4f/cQhAKjUQhuQmFNwGJEUi0RKN5rU7FHKhpjEH3TEMtkdBSCY1EIv8r7nFX9e29V7EBAOvu7RPjwmWGH/VuF8CyN9/OAdvqIXYLvtRaNjx9mMTDyo+NjAN1HNcl9ZQ5oQMM3dgDUqDo1l8DzvwmtZN7mnD+PkmLa+4mhrxVA9fRowBWmVBhFy5gYEjKMfz9AylsaRRgGzvZAAAAAElFTkSuQmCC";return new ht.FieldImage(e,12,12,'"')}},Se={init:function(){this.setColour(ge),this.appendDummyInput().appendField(this.newQuote_(!0)).appendField(new ht.FieldMultilineInput("Hello\nMixly"),"VALUE").appendField(this.newQuote_(!1)),this.setOutput(!0,String),this.setTooltip(ht.Msg.TEXT_LINES_TOOLTIP)},newQuote_:function(t){if(t==this.RTL)var e="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAKCAQAAAAqJXdxAAAAqUlEQVQI1z3KvUpCcRiA8ef9E4JNHhI0aFEacm1o0BsI0Slx8wa8gLauoDnoBhq7DcfWhggONDmJJgqCPA7neJ7p934EOOKOnM8Q7PDElo/4x4lFb2DmuUjcUzS3URnGib9qaPNbuXvBO3sGPHJDRG6fGVdMSeWDP2q99FQdFrz26Gu5Tq7dFMzUvbXy8KXeAj57cOklgA+u1B5AoslLtGIHQMaCVnwDnADZIFIrXsoXrgAAAABJRU5ErkJggg==";else e="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAKCAQAAAAqJXdxAAAAn0lEQVQI1z3OMa5BURSF4f/cQhAKjUQhuQmFNwGJEUi0RKN5rU7FHKhpjEH3TEMtkdBSCY1EIv8r7nFX9e29V7EBAOvu7RPjwmWGH/VuF8CyN9/OAdvqIXYLvtRaNjx9mMTDyo+NjAN1HNcl9ZQ5oQMM3dgDUqDo1l8DzvwmtZN7mnD+PkmLa+4mhrxVA9fRowBWmVBhFy5gYEjKMfz9AylsaRRgGzvZAAAAAElFTkSuQmCC";return new ht.FieldImage(e,12,12,'"')}};ht.FieldTextInput.char_validator=function(t){if(t.length>1&&"\\"===t.charAt(0)){var e=t.charAt(1);if("0"===e||"b"===e||"f"===e||"n"===e||"r"===e||"t"===e||"\\"===e||"'"===e)return String(t).substring(0,2);if("x"===e&&"0"===t.charAt(2)&&"B"===t.charAt(3))return String(t).substring(0,4)}return String(t).substring(0,1)};const Ae={init:function(){this.setColour(ge),this.appendDummyInput().appendField(this.newQuote_(!0)).appendField(new ht.FieldTextInput("",ht.FieldTextInput.char_validator),"TEXT").appendField(this.newQuote_(!1)),this.setOutput(!0,Number),this.setTooltip(ht.Msg.TEXT_CHAR_TOOLTIP)},newQuote_:function(t){if(1==t)var e="../../media/quote2.png";else e="../../media/quote3.png";return new ht.FieldImage(e,7,12,'"')}},Le={init:function(){this.setColour(ge),this.appendValueInput("A").setCheck([String,Number]),this.appendValueInput("B").setCheck([String,Number]).appendField(ht.Msg.MIXLY_TEXT_JOIN),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(ht.Msg.MIXLY_TOOLTIP_TEXT_JOIN)}},Ne={init:function(){this.setColour(ge),this.appendValueInput("VAR").setCheck(Number).appendField(ht.Msg.MIXLY_TOCHAR),this.setOutput(!0,String),this.setTooltip(ht.Msg.MIXLY_TOOLTIP_TEXT_TOCHAR)}},De={init:function(){this.setColour(ge),this.appendValueInput("VAR").setCheck(String).appendField(ht.Msg.MIXLY_TOASCII),this.setOutput(!0,Number),this.setTooltip(ht.Msg.MIXLY_TOOLTIP_TEXT_TOASCII)}},fe={init:function(){this.setColour(ge),this.appendValueInput("VAR").appendField(ht.Msg.MIXLY_TOSTRING),this.setOutput(!0,String),this.setTooltip(ht.Msg.MIXLY_PYTHON_TOOLTIP_TOTEXT)}},Pe={init:function(){this.setColour(ge),this.appendValueInput("VAR").appendField(ht.Msg.MIXLY_LENGTH),this.setOutput(!0,Number),this.setTooltip(ht.Msg.MIXLY_TOOLTIP_TEXT_LENGTH)}},Fe={init:function(){this.WHERE_OPTIONS=[[ht.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[ht.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[ht.Msg.TEXT_GET_INDEX_RANDOM+1+ht.Msg.TEXT_CHARAT2,"RANDOM"]],this.setHelpUrl(ht.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(ge),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number),this.appendDummyInput().appendField(ht.Msg.LISTS_GET_INDEX_GET,"MODE"),ht.Msg.LISTS_GET_INDEX_TAIL&&this.appendDummyInput("TAIL").appendField(ht.Msg.LISTS_GET_INDEX_TAIL),this.setInputsInline(!0),this.setOutput(!0),this.updateAt_(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=t.getFieldValue("WHERE"),n="";switch(e+" "+i){case"GET FROM_START":case"GET FROM_END":n=ht.Msg.LISTS_GET_INDEX_TOOLTIP_GET_FROM;break;case"GET RANDOM":n=ht.Msg.LISTS_GET_INDEX_TOOLTIP_GET_RANDOM;break;case"GET_REMOVE FROM_START":case"GET_REMOVE FROM_END":n=ht.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM;break;case"GET_REMOVE RANDOM":n=ht.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM}return"FROM_START"!=i&&"FROM_END"!=i||(n+=" "+ht.Msg.LISTS_INDEX_FROM_START_TOOLTIP.replace("%1",ht.Msg.ONE_BASED_INDEXING?"#1":"#0")),n}));var e=this;this.setTooltip((function(){var t=e.getFieldValue("WHERE"),i={FROM_START:ht.Msg.LISTS_GET_INDEX_FROM_START,FROM_END:ht.Msg.LISTS_GET_INDEX_FROM_END,RANDOM:ht.Msg.TEXT_GET_INDEX_RANDOM};return ht.Msg.PROCEDURES_DEFRETURN_RETURN+ht.Msg.MIXLY_MICROBIT_TYPE_STRING+i[t]+"n"+ht.Msg.TEXT_CHARAT2}))},mutationToDom:function(){var t=document.createElement("mutation");t.setAttribute("statement",!this.outputConnection);var e=this.getInput("AT").type==ht.INPUT_VALUE;return t.setAttribute("at",e),t},domToMutation:function(t){var e="true"==t.getAttribute("statement");this.updateStatement_(e),t="false"!=t.getAttribute("at"),this.updateAt_(t)},updateStatement_:function(t){t!=!this.outputConnection&&(this.unplug(!0,!0),t?(this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)):(this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)))},updateAt_:function(t){this.removeInput("AT"),this.removeInput("ORDINAL",!0),t?(this.appendValueInput("AT").setCheck(Number),ht.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL").appendField(ht.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT");var e=new ht.FieldDropdown(this.WHERE_OPTIONS,(function(e){var i="FROM_START"==e||"FROM_END"==e;if(i!=t){var n=this.sourceBlock_;return n.updateAt_(i),n.setFieldValue(e,"WHERE"),null}}));this.getInput("AT").appendField(e,"WHERE"),ht.Msg.LISTS_GET_INDEX_TAIL&&this.moveInputBefore("TAIL",null)}},ve={init:function(){this.setHelpUrl(ht.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(ge),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number).appendField(ht.Msg.LISTS_GET_INDEX_GET+" "+ht.Msg.LISTS_GET_INDEX_FROM_START),this.appendDummyInput().appendField(ht.Msg.TEXT_CHARAT2),this.setOutput(!0),this.setTooltip(ht.Msg.PROCEDURES_DEFRETURN_RETURN+ht.Msg.MIXLY_MICROBIT_TYPE_STRING+ht.Msg.LISTS_GET_INDEX_FROM_START+"n"+ht.Msg.TEXT_CHARAT2)}},Ye={init:function(){this.setHelpUrl(ht.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(ge),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput().appendField(ht.Msg.TEXT_RANDOM_CHAR),this.setOutput(!0),this.setTooltip(ht.Msg.TEXT_RANDOM_CHAR_TOOLTIP)}},xe={init:function(){this.WHERE_OPTIONS_1=[[ht.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[ht.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[ht.Msg.LISTS_GET_SUBLIST_START_FIRST,"FIRST"]],this.WHERE_OPTIONS_2=[[ht.Msg.LISTS_GET_SUBLIST_END_FROM_START,"FROM_START"],[ht.Msg.LISTS_GET_SUBLIST_END_FROM_END,"FROM_END"],[ht.Msg.LISTS_GET_SUBLIST_END_LAST,"LAST"]],this.setHelpUrl(ht.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(ge),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput("").appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput("AT1"),this.appendDummyInput("AT2"),this.setInputsInline(!0),this.setOutput(!0,"List"),this.updateAt_(1,!0),this.updateAt_(2,!0),this.setTooltip(ht.Msg._GET_TEXT_SUBLIST_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT1").type==ht.INPUT_VALUE;t.setAttribute("at1",e);var i=this.getInput("AT2").type==ht.INPUT_VALUE;return t.setAttribute("at2",i),t},domToMutation:function(t){var e="true"==t.getAttribute("at1"),i="true"==t.getAttribute("at2");this.updateAt_(1,e),this.updateAt_(2,i)},updateAt_:function(t,e){this.removeInput("AT"+t),this.removeInput("ORDINAL"+t,!0),e?(this.appendValueInput("AT"+t).setCheck(Number),ht.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL"+t).appendField(ht.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT"+t);var i=new ht.FieldDropdown(this["WHERE_OPTIONS_"+t],(function(i){var n="FROM_START"==i||"FROM_END"==i;if(n!=e){var s=this.sourceBlock_;return s.updateAt_(t,n),s.setFieldValue(i,"WHERE"+t),null}}));this.getInput("AT"+t).appendField(i,"WHERE"+t),1==t&&(this.moveInputBefore("AT1","AT2"),this.getInput("ORDINAL1")&&this.moveInputBefore("ORDINAL1","AT2"))}},Xe={init:function(){this.setHelpUrl(ht.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(ge),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT1").appendField(ht.Msg.LISTS_GET_INDEX_GET+" "+ht.Msg.LISTS_GET_INDEX_FROM_START),this.appendValueInput("AT2").appendField(ht.Msg.LISTS_GET_SUBLIST_END_FROM_START),this.appendDummyInput().appendField(ht.Msg.TEXT_CHARAT2),this.setInputsInline(!0),this.setOutput(!0,["List",String]),this.setTooltip(ht.Msg._GET_TEXT_SUBLIST_TOOLTIP)}},be={init:function(){var t=[[ht.Msg.MIXLY_EQUALS,"==="],[ht.Msg.MIXLY_STARTSWITH,"startswith"],[ht.Msg.MIXLY_ENDSWITH,"endswith"]];this.setColour(ge),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(new ht.FieldDropdown(t),"DOWHAT").setCheck(String),this.setOutput(!0,[Boolean,Number]),this.setInputsInline(!0)}},Ve={init:function(){this.setColour(ge),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(ht.Msg.MIXLY_COMPARETO).setCheck(String),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_COMPARETO_HELP)}},ye={init:function(){var t=[[ht.Msg.TEXT_UPPER,"upper"],[ht.Msg.TEXT_TITLE,"title"],[ht.Msg.TEXT_CAPITALIZE,"capitalize"],[ht.Msg.TEXT_SWAPCASE,"swapcase"],[ht.Msg.TEXT_LOWER,"lower"]];this.setColour(ge),this.appendValueInput("VAR").appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new ht.FieldDropdown(t),"CAPITAL").setCheck(String),this.setOutput(!0,String);var e=this;this.setTooltip((function(){var t=e.getFieldValue("CAPITAL");return{upper:ht.Msg.MIXLY_MIXPY_TEXT_UPPER_TOOLTIP,title:ht.Msg.MIXLY_MIXPY_TEXT_TITLE_TOOLTIP,swapcase:ht.Msg.MIXLY_MIXPY_TEXT_SWAPCASE_TOOLTIP,capitalize:ht.Msg.MIXLY_MIXPY_TEXT_CAPITALIZE_TOOLTIP,lower:ht.Msg.MIXLY_MIXPY_TEXT_LOWER_TOOLTIP}[t]}))}},Be={init:function(){var t=[[ht.Msg.TEXT_LJUST,"ljust"],[ht.Msg.TEXT_CENTER,"center"],[ht.Msg.TEXT_RJUST,"rjust"]];this.setColour(ge),this.appendValueInput("VAR").appendField(new ht.FieldDropdown(t),"CENTER").setCheck(String),this.appendValueInput("WID").appendField(ht.Msg.MIXLY_WIDTH).setCheck(Number),this.appendValueInput("Symbol").appendField(ht.Msg.MIXLY_RECT_Fill).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(ht.Msg.MIXLY_MIXPY_TEXT_CENTER_TOOLTIP)}},Ge={init:function(){this.setColour(ge),this.appendValueInput("VAR").appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).setCheck(String),this.appendValueInput("STR").appendField(ht.Msg.MIXLY_MID+ht.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER).setCheck(String),this.appendDummyInput().appendField(ht.Msg.MIXLY_LIST_INDEX),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(ht.Msg.MIXLY_MIXPY_TEXT_FIND_TOOLTIP)}},Ue={init:function(){this.setColour(ge),this.appendValueInput("VAR").appendField(ht.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_USE_STR).setCheck(String),this.appendValueInput("LIST").appendField(ht.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_SEQ).setCheck("List","Tuple","Set","Dict"),this.appendDummyInput().appendField(ht.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_GET_STR),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(ht.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_TOOLTIP)}},we={init:function(){this.setColour(ge),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("STR1").appendField(ht.Msg.MIXLY_MIXPY_REPLACE).setCheck(String),this.appendValueInput("STR2").appendField(ht.Msg.LISTS_SET_INDEX_INPUT_TO).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(ht.Msg.MIXLY_MIXPY_TEXT_REPLACE_TOOLTIP)}},ke={init:function(){this.setColour(ge),this.appendValueInput("VAR"),this.appendValueInput("VAL").appendField(ht.Msg.LIST_SPLIT_AS),this.appendDummyInput("").appendField(ht.Msg.LIST_SPLIT),this.setOutput(!0,"List"),this.setTooltip(ht.Msg.MIXLY_MIXPY_TEXT_SPLIT_TOOLTIP),this.setInputsInline(!0)}},He={init:function(){var t=[[ht.Msg.TEXT_TRIM_BOTH,"strip"],[ht.Msg.TEXT_TRIM_LEFT,"lstrip"],[ht.Msg.TEXT_TRIM_RIGHT,"rstrip"]];this.setColour(ge),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(ht.Msg.TEXT_STRIM),this.appendDummyInput("").appendField(new ht.FieldDropdown(t),"TOWHAT"),this.appendDummyInput("").appendField(ht.Msg.TEXT_BLANK),this.setOutput(!0,String),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{strip:ht.Msg.TEXT_TRIM_BOTH_TOOLTIP,lstrip:ht.Msg.TEXT_TRIM_LEFT_TOOLTIP,rstrip:ht.Msg.TEXT_TRIM_RIGHT_TOOLTIP}[t]}))}},We={init:function(){this.setColour(ge),this.appendDummyInput("").appendField(ht.Msg.MIXLY_MICROPYTHON_FORMAT),this.appendDummyInput("").appendField(new ht.FieldTextInput("str"),"VAR"),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new ht.icons.MutatorIcon(["text_create_with_item"],this)),this.setOutput(!0),this.setTooltip(ht.Msg.MIXLY_MIXPY_TEXT_FORMAT_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("text_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ht.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Ui={init:function(){this.setColour(Bi),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(ht.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},wi={init:function(){this.setColour(Bi),this.appendDummyInput().appendField(ht.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ht.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},ki={init:function(){this.setColour(Bi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(ht.Msg.DICT_KEYS),this.setTooltip(ht.Msg.DICTS_KEYS_TOOLTIP),this.setOutput(!0,"List")}},Hi={init:function(){this.setColour(Bi),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(ht.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(ht.Msg.DICTS_ADD_VALUE),this.setOutput(!0),this.setTooltip(ht.Msg.DICTS_GET_TOOLTIP)}},Wi={init:function(){this.setColour(Bi),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(ht.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(ht.Msg.DICTS_ADD_VALUE),this.appendValueInput("VAR").appendField(ht.Msg.DICTS_DEFAULT_VALUE),this.setOutput(!0),this.setTooltip(ht.Msg.DICTS_GET_DEFAULT_TOOLTIP)}},Ki={init:function(){this.setColour(Bi),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(ht.Msg.DICTS_ADD),this.appendDummyInput(),this.appendValueInput("VAR").appendField(ht.Msg.DICTS_ADD_VALUE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ht.Msg.DICTS_ADD_OR_CHANGE_TOOLTIP)}},Ji={init:function(){this.setColour(Bi),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(ht.Msg.DICTS_DELETE_IN),this.appendDummyInput("").appendField(ht.Msg.DICTS_DELETE_VALUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ht.Msg.DICTS_DELETE_TOOLTIP)}},Qi={init:function(){this.setColour(Bi),this.appendValueInput("DICT2").setCheck("Dict").appendField(ht.Msg.MAKE_DICT),this.appendValueInput("DICT").setCheck("Dict").appendField(ht.Msg.DICT_UPDATE),this.appendDummyInput("").appendField(ht.Msg.MIXLY_MID),this.setTooltip(ht.Msg.DICTS_UPDATE_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},zi={init:function(){this.setColour(Bi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(ht.Msg.DICT_CLEAR),this.setTooltip(ht.Msg.DICTS_CLEAR_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},qi={init:function(){this.setColour(Bi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(ht.Msg.DICT_ITEMS),this.setTooltip(ht.Msg.DICTS_ITEMS_TOOLTIP),this.setOutput(!0,"List")}},ji={init:function(){this.setColour(Bi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(ht.Msg.DICT_VALUES),this.setTooltip(ht.Msg.DICTS_VALUES_TOOLTIP),this.setOutput(!0,"List")}},Zi={init:function(){this.setColour(Bi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(ht.Msg.MIXLY_LENGTH),this.setTooltip(ht.Msg.DICT_LENGTH_TOOLTIP),this.setOutput(!0,Number)}},$i={init:function(){this.setColour(Bi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(ht.Msg.DICT_DELDICT),this.setTooltip(ht.Msg.DICTS_DEL_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},tn={init:function(){this.MODE=[[ht.Msg.DICTS_ADD_OR_CHANGE,"INSERT"],[ht.Msg.MIXLY_MICROBIT_JS_DELETE_VAR,"DELETE"]],this.setHelpUrl(ht.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(Bi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("AT2"),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(ht.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).appendField(ht.Msg.DICTS_ADD_VALUE),this.updateAt_(!0),this.setInputsInline(!0),this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e="";switch(t.getFieldValue("WHERE")){case"INSERT":e=ht.Msg.DICTS_ADD_TOOLTIP;break;case"DELETE":e=ht.Msg.DICTS_DELETE_TOOLTIP}return e}))},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT2").type==ht.INPUT_VALUE;return t.setAttribute("at2",e),t},domToMutation:function(t){var e="true"==t.getAttribute("at2");this.updateAt_(e)},updateAt_:function(t){this.removeInput("AT2"),this.removeInput("ORDINAL",!0),t?this.appendValueInput("AT2").setCheck(Number):this.appendDummyInput("AT2");var e=new ht.FieldDropdown(this.MODE,(function(e){var i="INSERT"==e;if(i!=t){var n=this.sourceBlock_;return n.updateAt_(i),n.setFieldValue(e,"WHERE"),null}}));this.getInput("AT2").appendField(e,"WHERE")}},en={init:function(){this.setColour(Bi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(ht.Msg.blockpy_DICT_POP),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(ht.Msg.DICTS_ADD_VALUE),this.setTooltip(ht.Msg.DICT_POP_TOOLTIP),this.setInputsInline(!0),this.setOutput(!0)}},nn={init:function(){this.setColour(Bi),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(ht.Msg.DICTS_SET_DEFAULT),this.appendDummyInput("").appendField(ht.Msg.DICTS_DEFAULT_VALUE),this.appendValueInput("VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ht.Msg.DICTS_SETDEFAULT_TOOLTIP)}},sn={init:function(){this.setColour(Bi),this.appendDummyInput("").appendField(new ht.FieldLabel(ht.Msg.MIXLY_MICROBIT_TYPE_DICT),"TIP").appendField(" "),this.itemCount_=3,this.updateShape_(),this.setOutput(!0,"Dict"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setMutator(new ht.icons.MutatorIcon(["dicts_create_with_item"],this)),this.setTooltip(ht.Msg.DICTS_CREATE_WITH_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("dicts_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ht.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},on={init:function(){this.setColour(Bi),this.appendValueInput("VAR").appendField(ht.Msg.MIXLY_TODICT),this.setOutput(!0),this.setTooltip(ht.Msg.MIXLY_PYTHON_TOOLTIP_TODICT)}},_n={init:function(){this.setColour(Bi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(ht.Msg.MIXLY_TO_JSON),this.setTooltip(ht.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0,Number)}},pn={init:function(){this.setColour(Bi),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(ht.Msg.MIXLY_CONVERT_TO_JSON),this.setTooltip(ht.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0,Number)}},an=210,un={init:function(){var t=ht.RTL?[["=","EQ"],["≠","NEQ"],[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["=","EQ"],["≠","NEQ"],["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(an),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new ht.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{EQ:ht.Msg.LOGIC_COMPARE_TOOLTIP_EQ,NEQ:ht.Msg.LOGIC_COMPARE_TOOLTIP_NEQ,LT:ht.Msg.LOGIC_COMPARE_TOOLTIP_LT,LTE:ht.Msg.LOGIC_COMPARE_TOOLTIP_LTE,GT:ht.Msg.LOGIC_COMPARE_TOOLTIP_GT,GTE:ht.Msg.LOGIC_COMPARE_TOOLTIP_GTE}[t]})),this.prevBlocks_=[null,null]}},rn={init:function(){var t=ht.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]],e=ht.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(an),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new ht.FieldDropdown(t),"OP1"),this.appendValueInput("C").appendField(new ht.FieldDropdown(e),"OP2"),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_PYTHON_LOGIC_COMPARE_CONTINOUS_TOOLTIP)}},ln={init:function(){var t=[[ht.Msg.LOGIC_OPERATION_AND,"AND"],[ht.Msg.LOGIC_OPERATION_OR,"OR"],[ht.Msg.LOGIC_OPERATION_NOR,"NOR"],[ht.Msg.LOGIC_OPERATION_XOR,"XOR"]];this.setColour(an),this.setOutput(!0,Boolean),this.appendValueInput("A").setCheck([Boolean,Number]),this.appendValueInput("B").setCheck([Boolean,Number]).appendField(new ht.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{AND:ht.Msg.LOGIC_OPERATION_TOOLTIP_AND,OR:ht.Msg.LOGIC_OPERATION_TOOLTIP_OR,NOR:ht.Msg.LOGIC_OPERATION_TOOLTIP_NOR,XOR:ht.Msg.LOGIC_OPERATION_TOOLTIP_XOR}[t]}))}},dn={init:function(){this.setColour(an),this.setOutput(!0,Boolean),this.appendValueInput("BOOL").setCheck([Number,Boolean]).appendField(ht.Msg.LOGIC_NEGATE_TITLE),this.setTooltip(ht.Msg.LOGIC_NEGATE_TOOLTIP)}},In={init:function(){var t=[[ht.Msg.LOGIC_BOOLEAN_TRUE,"TRUE"],[ht.Msg.LOGIC_BOOLEAN_FALSE,"FALSE"]];this.setColour(an),this.setOutput(!0,Boolean),this.appendDummyInput().appendField(new ht.FieldDropdown(t),"BOOL"),this.setTooltip(ht.Msg.LOGIC_BOOLEAN_TOOLTIP)}},Tn={init:function(){this.setColour(an),this.setOutput(!0),this.appendDummyInput().appendField(ht.Msg.LOGIC_NULL),this.setTooltip(ht.Msg.LOGIC_NULL_TOOLTIP)}},hn={init:function(){this.setColour(an),this.appendValueInput("A"),this.appendValueInput("B").appendField(ht.Msg.LOGIC_TERNARY_IF_TRUE),this.appendValueInput("C").appendField(ht.Msg.LOGIC_TERNARY_IF_FALSE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_TOOLTIP_LOGIT_TRUEORFALSE)}},Mn={init:function(){var t=[[ht.Msg.TEXT_APPEND_TO,"in"],[ht.Msg.MIXLY_PYTHON_LOGIC_IS_NOT_IN,"not in"]];this.setColour(an),this.appendValueInput("A"),this.appendValueInput("B").setCheck([String,"List"]).appendField(new ht.FieldDropdown(t),"BOOL"),this.appendDummyInput("").appendField(ht.Msg.MICROBIT_LOGIC_IS_IN),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(ht.Msg.IN)}},mn={init:function(){var t=[[ht.Msg.MIXLY_PYTHON_LOGIC_IS,"is"],[ht.Msg.MIXLY_PYTHON_LOGIC_IS_NOT,"is not"]];this.setColour(an),this.appendValueInput("A"),this.appendValueInput("B").appendField(new ht.FieldDropdown(t),"BOOL"),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_PYTHON_LOGIC_IS_TOOLTIP)}},On={init:function(){this.setColour(an),this.appendValueInput("VAR").appendField(ht.Msg.MIXLY_TOBOOL),this.setOutput(!0,Boolean),this.setTooltip(ht.Msg.MIXLY_PYTHON_TOOLTIP_TOBOOL)}},En={init:function(){this.setColour(0),this.appendValueInput("fn").setCheck(String).appendField(ht.Msg.MIXLY_PYTHON_STORAGE_OPEN_FILE_WITH_OS+"(For Windows)"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Rn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[ht.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[ht.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[ht.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendValueInput("FILE").appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_AS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=ht.Msg.MIXLY_USE,n=ht.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=ht.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,o=ht.Msg.MIXLY_BELONG;return i+{r:ht.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:ht.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:ht.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:ht.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+o+n+s}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ht.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},cn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[ht.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[ht.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[ht.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=ht.Msg.MIXLY_USE,n=ht.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=ht.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,o=ht.Msg.MIXLY_BELONG,_=ht.Msg.PY_STORAGE_FILE_OBJECT;return i+{r:ht.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:ht.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:ht.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:ht.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+o+n+s+_}))}},gn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE);this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[ht.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[ht.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[ht.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendDummyInput().appendField(ht.Msg.MIXPY_TEXT_ENCODE).appendField(new ht.FieldDropdown([["ANSI","ANSI"],["gbk","gbk"],["utf-8","utf-8"]]),"CODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=ht.Msg.MIXLY_USE,n=ht.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=ht.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,o=ht.Msg.MIXLY_BELONG,_=ht.Msg.PY_STORAGE_FILE_OBJECT;return i+{r:ht.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:ht.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:ht.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:ht.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+o+n+s+_}))}},Cn={init:function(){this.setColour(0),this.appendValueInput("data").setCheck(String).appendField(ht.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendValueInput("FILE").appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE+ht.Msg.MIXLY_MICROBIT_TYPE_STRING+ht.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE)}},Sn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL,"read"],[ht.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE,"readline"],[ht.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES,"readlines"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String)}},An={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,"read"],[ht.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,"readline"],[ht.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE,"readlines"]]),"MODE"),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=ht.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE,n=ht.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER;return i+{read:ht.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,readline:ht.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,readlines:ht.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE}[e]+"x"+n}))}},Ln={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.setNextStatement(!0),this.appendValueInput("SIZE").setCheck(Number).appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(ht.Msg.MICROBIT_PYTHON_TYPE)}},Nn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(ht.Msg.HTML_FILE),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean),this.setTooltip(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT1)}},Dn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_FILENAME),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILENAME)}},fn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE)}},Pn={init:function(){this.setColour(0),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES)}};ht.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE;const Fn={init:function(){this.setColour(0),this.appendDummyInput().appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE,"remove"],[ht.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_DIRS,"removedirs"]]),"MODE"),this.appendValueInput("FILE").setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE)}},vn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE+ht.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE)}},Yn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_RETURN_FILE),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_PRESENT_LOCATION),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_TELL)}},xn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION),this.appendDummyInput().appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,"start"],[ht.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,"current"],[ht.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END,"end"]]),"MODE"),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=ht.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION+ht.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION,n=ht.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER,s=ht.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET;return i+" "+{start:ht.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,current:ht.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,end:ht.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END}[e]+s+"x"+n}))}},Xn={init:function(){this.setColour(0),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR)}},bn={init:function(){this.setColour(0),this.appendValueInput("PATH").setCheck(String).appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH),this.appendDummyInput().appendField(ht.Msg.MIXLY_ESP32_SET),this.appendDummyInput().appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,"mkdir"],[ht.Msg.MIXLY_MICROBIT_PY_STORAGE_MAKEDIRS,"makedirs"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return ht.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH+"x"+ht.Msg.MIXLY_ESP32_SET+{mkdir:ht.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,makedirs:ht.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},Vn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME),this.appendValueInput("NEWFILE").setCheck(String).appendField(ht.Msg.MIXLY_AS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME)}},yn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR)}},Bn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT),this.appendDummyInput().appendField(new ht.FieldDropdown([[ht.Msg.HTML_FILE,"isfile"],[ht.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_DIR,"isdir"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean);let t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return ht.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH+"x"+ht.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT+{isfile:ht.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,isdir:ht.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},Gn={init:function(){this.setColour(0),this.appendValueInput("SPISUB").appendField(ht.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("SUB").appendField(ht.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(ht.Msg.MIXLY_SETUP+ht.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(ht.Msg.MIXLY_SD_CARD),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Un={init:function(){this.setColour(0),this.appendValueInput("VAR").appendField(ht.Msg.MIXLY_SD_CARD),this.appendValueInput("DIR").setCheck(String).appendField(ht.Msg.MIXLY_SDCARD_MOUNT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip()}},wn={};wn.NAME_TYPE=ht.PROCEDURE_CATEGORY_NAME,wn.allProcedures=function(t){for(var e=t.getAllBlocks(!1),i=[],n=[],s=0;s"),this.appendValueInput("style").appendField(ht.Msg.MIXLY_AIP_ATTR).setAlign(ht.inputs.Align.RIGHT),this.appendStatementInput("DO").appendField(""),this.setInputsInline(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Vs={init:function(){this.setColour(Fs),this.appendDummyInput().appendField(ht.Msg.HTML_STYLE),this.appendStatementInput("STYLE"),this.setOutput(!0)}},ys={init:function(){this.setColour(Fs),this.appendDummyInput().appendField(ht.Msg.HTML_FORM_CONTENT).appendField(new ht.FieldDropdown([[ht.Msg.HTML_TEXT,"text"],[ht.Msg.HTML_EMAIL,"email"],[ht.Msg.HTML_NUMBER,"number"],[ht.Msg.HTML_PASSWORD,"password"],[ht.Msg.HTML_CHECKBOX,"checkbox"],[ht.Msg.HTML_RADIOBUTTON,"radiobutton"],[ht.Msg.HTML_BUTTON,"button"],[ht.Msg.HTML_COLOUR,"colour"],[ht.Msg.HTML_DATE,"date"],[ht.Msg.HTML_LOCALTIME,"local time"],[ht.Msg.HTML_FILE,"file"],[ht.Msg.HTML_HIDDEN,"hidden"],[ht.Msg.HTML_IMAGE,"image"],[ht.Msg.HTML_MONTH,"month"],[ht.Msg.HTML_RANGE,"range"],[ht.Msg.HTML_RESET,"reset"],[ht.Msg.HTML_SEARCH,"search"],[ht.Msg.HTML_SUBMIT,"submit"],[ht.Msg.HTML_TELEPHONENUMBER,"telephone number"],[ht.Msg.HTML_TIME,"time"],[ht.Msg.HTML_URL,"url"],[ht.Msg.HTML_WEEK,"week"]]),"LEVEL"),this.appendDummyInput().appendField(ht.Msg.HTML_NAME).appendField(new ht.FieldTextInput("car"),"NAME"),this.appendDummyInput().appendField(ht.Msg.HTML_VALUE).appendField(new ht.FieldTextInput("go"),"VALUE"),this.appendValueInput("style").appendField(ht.Msg.MIXLY_AIP_ATTR).setAlign(ht.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Bs={init:function(){this.setColour(Fs),this.appendDummyInput().appendField(new ht.FieldTextInput("property"),"KEY").appendField(":").appendField(new ht.FieldTextInput("value"),"VALUE"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Gs={init:function(){this.setColour(Fs),this.appendDummyInput().appendField(new ht.FieldTextInput("property"),"KEY").appendField(":").appendField(new ht.FieldColour("#ff0000"),"RGB_LED_COLOR"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Us={init:function(){this.setColour(Fs),this.appendDummyInput().appendField(ht.Msg.HTML_TEXT).appendField(new ht.FieldTextInput("text"),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},ws=160,ks={init:function(){this.setColour(ws),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Tabular Abstraction:"),this.appendDummyInput().appendField(new ht.FieldTable(""),"TEXT")}},Hs={init:function(){this.setColour(ws),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Code Block:"),this.appendDummyInput().appendField(new ht.FieldMultilineInput(""),"TEXT")}},Ws={init:function(){this.setColour(ws),this.appendDummyInput().appendField("Code Expression:"),this.appendDummyInput().appendField(new ht.FieldMultilineInput(""),"TEXT"),this.setOutput(!0)}},Ks={init:function(){this.setColour(ws),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("VALUE").appendField(""),this.setInputsInline(!1)}},Js={init:function(){this.setColour(ws),this.appendDummyInput().appendTitle("Comment:").appendTitle(new ht.FieldTextInput(""),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("This comment will be ignored by Python")}},Qs={init:function(){this.setColour(ws),this.appendValueInput("VALUE").appendField(ht.Msg.TYPE_CHECK),this.setInputsInline(!1),this.setOutput(!0,"Type")}},zs={init:function(){this.setColour(ws),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new ht.icons.MutatorIcon(["text_print_multiple_item"],this)),this.setTooltip(ht.Msg.TEXT_PRINT_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=ht.Block.obtain(t,"text_print_multiple_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n= stop:"," yield start"," start -= abs(step)"])};if(t=function(t,e,i){return"("+t+" <= "+e+") and "+a()+"("+t+", "+e+", "+i+") or "+u()+"("+t+", "+e+", "+i+")"},ht.isNumber(n)&&ht.isNumber(s)&&ht.isNumber(o))n=parseFloat(n),s=parseFloat(s),o=Math.abs(parseFloat(o)),0==n%1&&0==s%1&&0==o%1?(n<=s?(s++,t=0==n&&1==o?s:n+", "+s,1!=o&&(t+=", "+o)):t=n+", "+--s+", -"+o,t="range("+t+")"):(t=n",GTE:">="};const vp=function(t,e){var i=this.getFieldValue("OP"),n="&&"==i?e.ORDER_LOGICAL_AND:e.ORDER_LOGICAL_OR,s=e.valueToCode(this,"A",n)||"False",o=e.valueToCode(this,"B",n)||"False";if("AND"==i)var _=s+" and "+o;else if("OR"==i)_=s+" or "+o;else if("NOR"==i)_="not("+s+"^"+o+")";else _=s+"^"+o;return[_,n]},Yp=function(t,e){var i=e.ORDER_UNARY_PREFIX;return["not "+(e.valueToCode(this,"BOOL",i)||"False"),i]},xp=function(t,e){return["TRUE"==this.getFieldValue("BOOL")?"True":"False",e.ORDER_ATOMIC]},Xp=function(t,e){return["None",e.ORDER_ATOMIC]},bp=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"False";return["("+(e.valueToCode(this,"B",e.ORDER_ATOMIC)||"False")+" if "+i+" else "+(e.valueToCode(this,"C",e.ORDER_ATOMIC)||"False")+")",e.ORDER_ATOMIC]},Vp=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",n=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[i+" "+this.getFieldValue("BOOL")+" "+n,e.ORDER_ATOMIC]},yp=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",n=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[i+" "+this.getFieldValue("BOOL")+" "+n,e.ORDER_ATOMIC]},Bp=function(t,e){return["bool("+(e.valueToCode(this,"VAR",e.ORDER_ATOMIC)||"0")+")",e.ORDER_ATOMIC]},Gp=function(t,e){return e.definitions_.import_os="import os","os.startfile("+e.valueToCode(this,"fn",e.ORDER_ATOMIC)+")\n"},Up=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+" = open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')\n"},wp=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')",e.ORDER_ATOMIC]},kp=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"', encoding=\""+this.getFieldValue("CODE")+'")',e.ORDER_ATOMIC]},Hp=function(t,e){var i=e.valueToCode(this,"data",e.ORDER_ATOMIC);return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".write("+i+")\n"},Wp=function(t,e){var i=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+i+"()",e.ORDER_ATOMIC]},Kp=function(t,e){var i=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+i+"("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Jp=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".readline("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Qp=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".writable()",e.ORDER_ATOMIC]},zp=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".name()",e.ORDER_ATOMIC]},qp=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".close()\n"},jp=function(t,e){e.definitions_.import_os="import os";return["os.listdir()",e.ORDER_ATOMIC]},Zp=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},$p=function(t,e){return e.definitions_.import_os="import os",["os.path.getsize("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},ta=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".tell()",e.ORDER_ATOMIC]},ea=function(t,e){var i=this.getFieldValue("MODE"),n=0;return n="start"==i?0:"current"==i?1:2,e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".seek("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+","+n+")\n"},ia=function(t,e){return e.definitions_.import_os="import os","os.chdir("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},na=function(t,e){e.definitions_.import_os="import os";return["os.getcwd()",e.ORDER_ATOMIC]},sa=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"PATH",e.ORDER_ATOMIC)+")\n"},oa=function(t,e){return e.definitions_.import_os="import os","os.rename("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+","+e.valueToCode(this,"NEWFILE",e.ORDER_ATOMIC)+")\n"},_a=function(t,e){e.definitions_.import_os="import os";var i=e.valueToCode(this,"FILE",e.ORDER_ATOMIC);return["os."+this.getFieldValue("MODE")+"("+i+")",e.ORDER_ATOMIC]},pa=function(t,e){return e.definitions_.import_os="import os",e.definitions_.import_sdcard="import sdcard",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+" = sdcard.SDCard("+e.valueToCode(this,"SPISUB",e.ORDER_ATOMIC)+","+e.valueToCode(this,"PINSUB",e.ORDER_ATOMIC)+")\n"},aa=function(t,e){return e.definitions_.import_os="import os",e.definitions_.import_sdcard="import sdcard","os.mount("+e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+","+e.valueToCode(this,"DIR",e.ORDER_ATOMIC)+")\n"},ua=function(t,e){var i=e.variableDB_.getName(this.getFieldValue("NAME"),ht.Procedures.NAME_TYPE),n=e.statementToCode(this,"STACK")||" pass\n";e.INFINITE_LOOP_TRAP&&(n=e.INFINITE_LOOP_TRAP.replace(/%1/g,"'"+this.id+"'")+n);var s=e.valueToCode(this,"RETURN",e.ORDER_NONE)||"";s&&(s=" return "+s+"\n");for(var o=[],_=0;_\n\n\n\t\n"+e.statementToCode(this,"HEAD")+"\n\n"+e.statementToCode(this,"BODY")+"\n\n'''",e.ORDER_ATOMIC]},ka=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");return"\n"+i+"\n"},Ha=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");if("head"==n)var s="<"+n+'>\n\t\n'+i+"\n";else s="<"+n+">\n"+i+"\n";return s},Wa=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");return"<"+n+">\n"+i+"\n"},Ka=function(t,e){var i=e.statementToCode(this,"DO"),n=e.valueToCode(this,"style"),s=this.getFieldValue("LEVEL");return"<"+s+" "+n+" >\n"+i+"\n"},Ja=function(t,e){return['style="'+e.statementToCode(this,"STYLE")+'"',e.ORDER_ATOMIC]},Qa=function(t,e){return'"},za=function(){return this.getFieldValue("KEY")+":"+this.getFieldValue("VALUE")+";"},qa=function(){return this.getFieldValue("TEXT")+"\n"},ja=function(t){return t.getFieldValue("TEXT")+"\n"},Za=function(t,e){return[t.getFieldValue("TEXT"),e.ORDER_ATOMIC]},$a=function(t,e){return(e.valueToCode(t,"VALUE",e.ORDER_ATOMIC)||"")+"\n"},tu=function(){return""},eu=function(t,e){return["type("+(e.valueToCode(t,"VALUE",e.ORDER_MEMBER)||"___")+")",e.ORDER_ATOMIC]},iu=function(t,e){for(var i=t.getFieldValue("NAME"),n=t.hasReturn_,s=new Array(t.itemCount_),o=0;o0?e.join("\n")+"\n"+n.join("\n")+"\n"+s.join("")+"\n"+t+"while True:\n"+o.join("")+_.join("\n"):e.join("\n")+"\n"+n.join("\n")+"\n"+s.join("")+"\n"+t+_.join("\n")},su.scrubNakedValue=function(t){return t+"\n"},su.quote_=function(t){var e="'";return-1!==(t=t.replace(/\\/g,"\\\\").replace(/\n/g,"\\\n")).indexOf("'")&&(-1===t.indexOf('"')?e='"':t=t.replace(/'/g,"\\'")),e+t+e},su.multiline_quote_=function(t){return"'''"+(t=t.replace(/'''/g,"\\'\\'\\'"))+"'''"},su.scrub_=function(t,e,i){var n="";if(!t.outputConnection||!t.outputConnection.targetConnection){(o=t.getCommentText())&&(o=ht.utils.string.wrap(o,su.COMMENT_WRAP-3),n+=su.prefixLines(o+"\n","# "));for(var s=0;s0?"int("+p+" + "+s+")":s<0?"int("+p+" - "+-s+")":"int("+p+")",n&&(p="-"+p)),p};const ou="#74A55B",_u={init:function(){this.setColour(ou),this.appendDummyInput("").appendField(ht.Msg.MIXLY_MIDI),this.appendValueInput("SUB").appendField(ht.Msg.MIXLY_SETUP).setCheck("var"),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(ht.Msg.MIXLY_RGB_PIN_COUNT)}},pu={init:function(){this.setColour(ou),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(ht.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(ht.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ht.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},au={init:function(){this.setColour(ou),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(ht.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(ht.Msg.MIXLY_FREQUENCY),this.appendValueInput("time").setCheck(Number).appendField(ht.Msg.MIXLY_DURATION),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ht.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE2)}},uu={init:function(){this.setColour(ou),this.appendValueInput("SUB"),this.appendValueInput("LIST").appendField(ht.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS)}},ru={init:function(){this.setColour(ou),this.appendValueInput("SUB"),this.appendValueInput("TICKS").setCheck(Number).appendField(ht.Msg.MIXLY_MICROBIT_JS_SET_TEMPO).appendField(ht.Msg.MICROBIT_ACTUATOR_ticks),this.appendValueInput("BPM").setCheck(Number).appendField(ht.Msg.MIXLY_SPEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_MUSIC_SET_TEMPO)}},lu={init:function(){this.setColour(ou),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_Get_current_tempo),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_MUSIC_GET_TEMPO)}},du={init:function(){this.setColour(ou),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_Reset_music),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_MUSIC_RESET)}},Iu={init:function(){this.setColour(ou),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(ht.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Tu={init:function(){this.setColour(ou),this.appendDummyInput().appendField(ht.Msg.MIXLY_SETTING).appendField(ht.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(ht.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("bright").appendField(ht.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_EXTERN_LED_SETONOFF)}},hu={init:function(){this.setColour(ou),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(ht.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(ht.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(ht.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_EXTERN_LED_GETONOFF)}},Mu={init:function(){this.setColour(ou),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(ht.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(ht.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(ht.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_EXTERN_LED_GETONOFF)}},mu={init:function(){this.setColour(ou),this.appendDummyInput().appendField(ht.Msg.MIXLY_SETTING).appendField(ht.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(ht.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("bright").appendField(ht.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_EXTERN_LED_SETBRIGHT)}},Ou={init:function(){this.setColour(ou),this.appendValueInput("VAR").appendField(ht.Msg.MIXLY_SETUP+ht.Msg.MIXLY_SERVO),this.appendValueInput("PIN",Number).appendField(ht.Msg.MIXLY_PIN),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Eu={init:function(){this.setColour(ou),this.appendValueInput("PIN",Number).appendField(ht.Msg.MIXLY_SERVO).appendField(ht.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("DEGREE",Number).setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_DEGREE_0_180),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_SERVO_MOVE)}},Ru={init:function(){this.setColour(ou),this.appendValueInput("VAR").appendField("360°"+ht.Msg.MIXLY_SERVO),this.appendValueInput("SPEED",Number).setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_SETTING+ht.Msg.blockpy_turtle_rotate+ht.Msg.MIXLY_SPEED+" (-10~10)"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_SERVO_360_TOOLTIP)}},cu={init:function(){this.setColour(ou),this.appendValueInput("PIN",Number).appendField("180°"+ht.Msg.MIXLY_SERVO).appendField(ht.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_SERVO_MOVE)}},gu={init:function(){this.setColour(ou),this.appendValueInput("PIN",Number).appendField("360°"+ht.Msg.MIXLY_SERVO).appendField(ht.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_SERVO_SPEED_TOOLIPS)}},Cu={init:function(){this.setColour(ou),this.appendValueInput("PIN",Number).appendField("180°"+ht.Msg.MIXLY_SERVO).appendField(ht.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(ht.Msg.MIXLY_GET+ht.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setOutput(!0,Number),this.setInputsInline(!0)}},Su={init:function(){this.setColour(ou),this.appendValueInput("PIN",Number).appendField("360°"+ht.Msg.MIXLY_SERVO).appendField(ht.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(ht.Msg.MIXLY_GET+ht.Msg.MIXLY_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},Au={init:function(){this.setColour(ou),this.appendValueInput("SUB").appendField("初始化").setCheck("var"),this.appendDummyInput().appendField("电机驱动"),this.appendDummyInput().appendField("地址").appendField(new ht.FieldDropdown([["A","ms32006.ADDRESS_A"],["B","ms32006.ADDRESS_B"]]),"mode"),this.appendValueInput("SUB1").setCheck("var").setAlign(ht.inputs.Align.RIGHT).appendField("通信"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("初始化MS32006电机驱动,使用I2C通信")}},Lu={init:function(){this.setColour(ou),this.appendValueInput("SUB").appendField("直流电机").setCheck("var"),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_Direction).appendField(new ht.FieldDropdown([[ht.Msg.CLOCKWISE,"ms32006.MOT_CW"],[ht.Msg.ANTI_CLOCKWISE,"ms32006.MOT_CCW"],[ht.Msg.MOTOR_N,"ms32006.MOT_N"],[ht.Msg.MOTOR_P,"ms32006.MOT_P"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_STEPPER_SET_SPEED),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("设置直流电机的状态及转速(0-100)")}},Nu={init:function(){this.setColour(ou),this.appendValueInput("SUB").appendField("步进电机").setCheck("var"),this.appendDummyInput().appendField("选择").appendField(new ht.FieldDropdown([["A","ms32006.MOT_A"],["B","ms32006.MOT_B"]]),"mode"),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_Direction).appendField(new ht.FieldDropdown([[ht.Msg.CLOCKWISE,"ms32006.MOT_CW"],[ht.Msg.ANTI_CLOCKWISE,"ms32006.MOT_CCW"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField("转速"),this.appendValueInput("steps").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField("步数"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("设置步进电机的状态、转速、步数(0-2047)")}},Du={init:function(){this.setColour(ou),this.appendDummyInput("").appendField(ht.Msg.MIXLY_RGB),this.appendValueInput("SUB").appendField(ht.Msg.MIXLY_SETUP).setCheck("var"),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_PIN),this.appendValueInput("LEDCOUNT").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_RGB_COUNT),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(ht.Msg.MIXLY_RGB_PIN_COUNT)}},fu={init:function(){this.setColour(ou),this.appendDummyInput("").appendField(ht.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("_LED_").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(ht.Msg.MIXLY_RGB_NUM_R_G_B_MP)}},Pu={init:function(){this.setColour(ou),this.appendDummyInput("").appendField(ht.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("RVALUE").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(ht.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},Fu={init:function(){this.setColour(ou),this.appendDummyInput("").appendField(ht.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(ht.Msg.MIXLY_ESP32_RGB_WRITE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(ht.Msg.MIXLY_ESP32_MUSIC_WRI)}},vu={init:function(){this.setColour(ou),this.appendDummyInput("").appendField(ht.Msg.CONTROLS_FOR_INPUT_WITH+"uart").appendField(new ht.FieldDropdown([["uart1","uart1"],["uart2","uart2"]]),"key"),this.appendValueInput("SUB").appendField(ht.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(ht.Msg.MIXLY_SETUP+ht.Msg.LISTS_SET_INDEX_INPUT_TO+"SYN6288"+ht.Msg.MIXLY_AipSpeech_synthesis),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setFieldValue("LTR308","key")}},Yu={init:function(){this.setColour(ou),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("VOICE").setCheck(Number).appendField(ht.Msg.MIXLY_SET_VOLUME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_SET_VOLUME_TOOLTIP)}},xu={init:function(){this.setColour(ou),this.appendValueInput("SUB").appendField("SYN6288"),this.appendDummyInput().appendField(ht.Msg.MIXLY_GET_VOLUME),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_SET_VOLUME_TOOLTIP)}},Xu={init:function(){this.setColour(ou),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("VOICE").setCheck(Number).appendField(ht.Msg.MIXLY_PLAY_HINTS),this.appendDummyInput().appendField(ht.Msg.MIXLY_PROGRAM_BLOCK).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[ht.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"mode"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_PLAY_HINTS_TOOLTIP)}},bu={init:function(){this.setColour(ou),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("data").setCheck(String).appendField(ht.Msg.MIXLY_AipSpeech_synthesis),this.appendValueInput("VOICE").setCheck(Number).appendField(ht.Msg.MIXLY_BACKGROUND_MUSIC),this.appendDummyInput().appendField(ht.Msg.MIXLY_PROGRAM_BLOCK).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[ht.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"mode"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_PLAY_TTS_TOOLTIP)}},Vu={init:function(){this.setColour(ou),this.appendDummyInput("").appendField(new ht.FieldDropdown(Mt.Profile.default.extern_addr),"PIN"),this.setOutput(!0,Number)}},yu={init:function(){this.setColour(ou),this.appendDummyInput().appendField(ht.Msg.ME_GO_MOTOR_EXTERN+ht.Msg.MIXLY_MOTOR).appendField(ht.Msg.PIN_NUMBERING).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_LEFT,"0"],[ht.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_MIXBOT_MOTOR_EXTERN_TOOLTIP)}},Bu={init:function(){this.setColour(ou),this.appendDummyInput().appendField(ht.Msg.ME_GO_MOTOR_EXTERN+ht.Msg.MIXLY_MOTOR).appendField(ht.Msg.PIN_NUMBERING).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_LEFT,"0"],[ht.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_GET+ht.Msg.MIXLY_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},Gu={init:function(){this.setColour(ou),this.appendDummyInput().appendField(ht.Msg.ME_GO_MOTOR_EXTERN+ht.Msg.MIXLY_TRAFFIC_LIGHT).appendField(ht.Msg.PIN_NUMBERING).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_LEFT,"0"],[ht.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.LISTS_SET_INDEX_SET).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_MICROBIT_Turn_off_display,"0"],[ht.Msg.MIXLY_TRAFFIC_LIGHT_RED_ON,"1"],[ht.Msg.MIXLY_TRAFFIC_LIGHT_RED_BLINK,"2"],[ht.Msg.MIXLY_TRAFFIC_LIGHT_YELLOW_ON,"3"],[ht.Msg.MIXLY_TRAFFIC_LIGHT_YELLOW_BLINK,"4"],[ht.Msg.MIXLY_TRAFFIC_LIGHT_GREEN_ON,"5"],[ht.Msg.MIXLY_TRAFFIC_LIGHT_GREEN_BLINK,"6"]]),"light"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Uu={init:function(){this.setColour(ou),this.appendDummyInput().appendField(ht.Msg.ME_GO_MOTOR_EXTERN).appendField(new ht.FieldDropdown([[ht.Msg.COLOUR_RGB_WHITE,"W"],[ht.Msg.COLOUR_RGB_RED,"R"],[ht.Msg.COLOUR_RGB_YELLOW,"Y"],[ht.Msg.COLOUR_RGB_GREEN,"G"],[ht.Msg.COLOUR_RGB_BLUE,"B"]]),"color").appendField("LED").appendField(ht.Msg.PIN_NUMBERING).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_LEFT,"0"],[ht.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendValueInput("value").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.BRIGHTNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},wu={init:function(){this.setColour(ou),this.appendDummyInput().appendField(ht.Msg.ME_GO_MOTOR_EXTERN).appendField(new ht.FieldDropdown([[ht.Msg.COLOUR_RGB_WHITE,"W"],[ht.Msg.COLOUR_RGB_RED,"R"],[ht.Msg.COLOUR_RGB_YELLOW,"Y"],[ht.Msg.COLOUR_RGB_GREEN,"G"],[ht.Msg.COLOUR_RGB_BLUE,"B"]]),"color").appendField("LED").appendField(ht.Msg.PIN_NUMBERING).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_LEFT,"0"],[ht.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(ht.Msg.MIXLY_GET+ht.Msg.BRIGHTNESS),this.setOutput(!0,Number),this.setInputsInline(!0)}},ku={init:function(){this.setColour(ou),this.appendDummyInput().appendField(ht.Msg.ME_GO_MOTOR_EXTERN+ht.Msg.MIXLY_SERVO_MOTOR).appendField(ht.Msg.PIN_NUMBERING).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_LEFT,"0"],[ht.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(ht.Msg.MIXLY_GET).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"[0]"],[ht.Msg.MIXLY_SPEED,"[1]"],[ht.Msg.MATH_SINGLE_OP_ABSOLUTE+ht.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"[2]"],[ht.Msg.MIXLY_RELATIVE+ht.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"[3]"],[ht.Msg.MIXLY_MIXBOT_SERVO_BLOCK_OR_NOT,"[4]"],[ht.Msg.MIXLY_MIXBOT_SERVO_FINISH_OR_NOT,"[5]"],[ht.Msg.MIXLY_ALL,""]]),"status"),this.setOutput(!0,Number),this.setInputsInline(!0)}},Hu={init:function(){this.setColour(ou),this.appendDummyInput().appendField(ht.Msg.ME_GO_MOTOR_EXTERN+ht.Msg.MIXLY_SERVO_MOTOR).appendField(ht.Msg.PIN_NUMBERING).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_LEFT,"0"],[ht.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(ht.Msg.MIXLY_MIXBOT_SERVO_SET_STOP_MODE).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_KEEP,"0"],[ht.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_COAST,"1"],[ht.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_BRAKE,"2"]]),"status"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Wu={init:function(){this.setColour(ou),this.appendDummyInput().appendField(ht.Msg.ME_GO_MOTOR_EXTERN+ht.Msg.MIXLY_SERVO_MOTOR).appendField(ht.Msg.PIN_NUMBERING).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_LEFT,"0"],[ht.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(ht.Msg.MIXLY_STOP),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Ku={init:function(){this.setColour(ou),this.appendDummyInput().appendField(ht.Msg.ME_GO_MOTOR_EXTERN+ht.Msg.MIXLY_SERVO_MOTOR).appendField(ht.Msg.MATH_SINGLE_OP_ABSOLUTE+ht.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+ht.Msg.MSG.run).appendField(ht.Msg.PIN_NUMBERING).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_LEFT,"0"],[ht.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(ht.Msg.MIXLY_MODE).setAlign(ht.inputs.Align.RIGHT).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_SPEED+ht.Msg.MIXLY_MODE,"0"],[ht.Msg.MIXLY_MICROBIT_JS_BLE_POWER+ht.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(ht.inputs.Align.RIGHT).appendField("%"),this.appendDummyInput().appendField(ht.Msg.MIXLY_MIXBOT_SERVO_TURN_DIRECTION).setAlign(ht.inputs.Align.RIGHT).appendField(new ht.FieldDropdown([[ht.Msg.CLOCKWISE,"0"],[ht.Msg.MIXLY_MIXBOT_SERVO_NEAREST_PATH,"1"],[ht.Msg.ANTI_CLOCKWISE,"2"]]),"direction"),this.appendValueInput("angle").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_DISPLAY_MATRIX_ROTATE+ht.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_MIXBOT_SERVO_ABSOLUTE_ANGLE_TOOLTIP)}},Ju={init:function(){this.setColour(ou),this.appendDummyInput().appendField(ht.Msg.ME_GO_MOTOR_EXTERN+ht.Msg.MIXLY_SERVO_MOTOR).appendField(ht.Msg.MIXLY_RELATIVE+ht.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+ht.Msg.MSG.run).appendField(ht.Msg.PIN_NUMBERING).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_LEFT,"0"],[ht.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(ht.Msg.MIXLY_MIXBOT_SERVO_RELATIVE_ORIGIN_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Qu={init:function(){this.setColour(ou),this.appendDummyInput().appendField(ht.Msg.ME_GO_MOTOR_EXTERN+ht.Msg.MIXLY_SERVO_MOTOR).appendField(ht.Msg.MIXLY_RELATIVE+ht.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+ht.Msg.MSG.run).appendField("("+ht.Msg.MIXLY_MIXBOT_SERVO_LIKE_ENCODING_MOTOR+")").appendField(ht.Msg.PIN_NUMBERING).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_LEFT,"0"],[ht.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(ht.Msg.MIXLY_MODE).setAlign(ht.inputs.Align.RIGHT).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_SPEED+ht.Msg.MIXLY_MODE,"0"],[ht.Msg.MIXLY_MICROBIT_JS_BLE_POWER+ht.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(ht.inputs.Align.RIGHT).appendField("%"),this.appendValueInput("angle").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_DISPLAY_MATRIX_ROTATE+ht.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_MIXBOT_SERVO_RELATIVE_ANGLE_TOOLTIP)}},zu={init:function(){this.setColour(ou),this.appendDummyInput().appendField(ht.Msg.ME_GO_MOTOR_EXTERN+ht.Msg.MIXLY_SERVO_MOTOR).appendField(ht.Msg.MIXLY_RELATIVE+ht.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+ht.Msg.MSG.run).appendField("("+ht.Msg.MIXLY_MIXBOT_SERVO_LIKE_ORDINARY_MOTOR+")").appendField(ht.Msg.PIN_NUMBERING).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_LEFT,"0"],[ht.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(ht.Msg.MIXLY_MODE).setAlign(ht.inputs.Align.RIGHT).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_SPEED+ht.Msg.MIXLY_MODE,"0"],[ht.Msg.MIXLY_MICROBIT_JS_BLE_POWER+ht.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(ht.inputs.Align.RIGHT).appendField("%"),this.appendDummyInput().appendField(ht.Msg.MIXLY_MIXBOT_SERVO_TURN_DIRECTION).setAlign(ht.inputs.Align.RIGHT).appendField(new ht.FieldDropdown([[ht.Msg.CLOCKWISE,"0"],[ht.Msg.ANTI_CLOCKWISE,"2"]]),"direction"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},qu={init:function(){this.setColour(ou),this.appendDummyInput().appendField(ht.Msg.MIXBOT).appendField(ht.Msg.ME_GO_MOTOR_EXTERN).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_MOTOR,"ext_motor"],[ht.Msg.MIXLY_TRAFFIC_LIGHT,"ext_traffic"],[ht.Msg.COLOUR_RGB_WHITE+"LED","W_LED"],[ht.Msg.COLOUR_RGB_RED+"LED","R_LED"],[ht.Msg.COLOUR_RGB_YELLOW+"LED","Y_LED"],[ht.Msg.COLOUR_RGB_GREEN+"LED","G_LED"],[ht.Msg.COLOUR_RGB_BLUE+"LED","B_LED"],[ht.Msg.MIXLY_SERVO_MOTOR,"ext_servo"]]),"name"),this.appendDummyInput().appendField(ht.Msg.MIXLY_MIXBOT_EXTERN_GET_ADDR),this.setOutput(!0),this.setInputsInline(!0)}},ju={init:function(){this.setColour(ou),this.appendDummyInput().appendField(ht.Msg.MIXBOT).appendField(ht.Msg.ME_GO_MOTOR_EXTERN).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_MOTOR,"ext_motor"],[ht.Msg.MIXLY_TRAFFIC_LIGHT,"ext_traffic"],[ht.Msg.COLOUR_RGB_WHITE+"LED","W_LED"],[ht.Msg.COLOUR_RGB_RED+"LED","R_LED"],[ht.Msg.COLOUR_RGB_YELLOW+"LED","Y_LED"],[ht.Msg.COLOUR_RGB_GREEN+"LED","G_LED"],[ht.Msg.COLOUR_RGB_BLUE+"LED","B_LED"],[ht.Msg.MIXLY_SERVO_MOTOR,"ext_servo"]]),"name"),this.appendDummyInput().appendField(ht.Msg.MIXLY_MIXBOT_EXTERN_SET_ADDR),this.appendValueInput("old").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE),this.appendValueInput("new").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_UPDATE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Zu="#6C9858",$u={init:function(){this.setColour(Zu),this.appendDummyInput("").appendField(new ht.FieldDropdown([["L1","1"],["L2","2"]]),"op"),this.setOutput(!0)}},tr={init:function(){this.setColour(Zu),this.appendDummyInput("").appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_ESP32_ON,"1"],[ht.Msg.MIXLY_ESP32_OFF,"0"],[ht.Msg.MIXLY_ESP32_TOGGLE,"-1"]]),"flag"),this.setOutput(!0),this.setTooltip(ht.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW)}},er={init:function(){this.setColour(Zu),this.appendDummyInput().appendField(ht.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(ht.Msg.MIXLY_BUILDIN_LED),this.appendValueInput("bright").appendField(ht.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_LED_SETONOFF)}},ir={init:function(){this.setColour(Zu),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("led").appendField(ht.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput().appendField(ht.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_LED_GETONOFF)}},nr={init:function(){this.setColour(Zu),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("led").appendField(ht.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput().appendField(ht.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_LED_GETONOFF)}},sr={init:function(){this.setColour(Zu),this.appendDummyInput().appendField(ht.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(ht.Msg.MIXLY_BUILDIN_LED),this.appendValueInput("bright").appendField(ht.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_SETTING+ht.Msg.MIXLY_BUILDIN_LED+ht.Msg.MIXLY_BRIGHTNESS+"(0-100%)")}},or={init:function(){this.setColour(Zu),this.appendDummyInput().appendField(ht.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(ht.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput("").appendField(ht.Msg.MIXLY_LCD_SETCOLOR).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_LIGHT_OFF,"0"],[ht.Msg.MIXLY_LIGHT_RED,"1"],[ht.Msg.MIXLY_LIGHT_GREEN,"2"],[ht.Msg.MIXLY_LIGHT_BLUE,"3"],[ht.Msg.MIXLY_LIGHT_YELLOW,"4"],[ht.Msg.MIXLY_LIGHT_CYAN,"5"],[ht.Msg.MIXLY_LIGHT_PURPLE,"6"],[ht.Msg.MIXLY_LIGHT_WHITE,"7"]]),"colorvalue"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip()}},_r={init:function(){this.setColour(Zu),this.appendDummyInput().appendField(ht.Msg.MIXLY_SETTING).appendField(ht.Msg.MIXLY_BUILDIN_LED).appendField(new ht.FieldDropdown([[ht.Msg.COLOUR_RGB_RED,"r"],[ht.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendValueInput("bright").appendField(ht.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_LED_SETONOFF)}},pr={init:function(){this.setColour(Zu),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(ht.Msg.MIXLY_BUILDIN_LED).appendField(new ht.FieldDropdown([[ht.Msg.COLOUR_RGB_RED,"r"],[ht.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendDummyInput().appendField(ht.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_LED_GETONOFF)}},ar={init:function(){this.setColour(Zu),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(ht.Msg.MIXLY_BUILDIN_LED).appendField(new ht.FieldDropdown([[ht.Msg.COLOUR_RGB_RED,"r"],[ht.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendDummyInput().appendField(ht.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_LED_GETONOFF)}},ur={init:function(){this.setColour(Zu),this.appendDummyInput().appendField(ht.Msg.MIXLY_SETTING).appendField(ht.Msg.MIXLY_BUILDIN_LED).appendField(new ht.FieldDropdown([[ht.Msg.COLOUR_RGB_RED,"r"],[ht.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendValueInput("bright").appendField(ht.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_SETTING+ht.Msg.MIXLY_BUILDIN_LED+ht.Msg.MIXLY_BRIGHTNESS+"(0-10)")}},rr={init:function(){this.setColour(Zu),this.appendDummyInput("").appendField(new ht.FieldDropdown([["L1","20"],["L2","21"]]),"op"),this.setOutput(!0)}},lr={init:function(){this.setColour(Zu),this.appendDummyInput("").appendField(ht.Msg.MIXLY_RGB),this.appendValueInput("_LED_").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);switch(Mt.Boards.getSelectedBoardKey()){case"micropython:esp32c3:mixgo_cc":case"micropython:esp32s2:mixgo_ce":this.setTooltip(ht.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOCC);break;case"micropython:esp32c3:mixgo_me":default:this.setTooltip(ht.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOME);break;case"micropython:esp32:mPython":this.setTooltip(ht.Msg.MIXLY_RGB_NUM_R_G_B_MPYTHON)}}},dr={init:function(){this.setColour(Zu),this.appendDummyInput("").appendField(ht.Msg.MIXLY_RGB),this.appendValueInput("RVALUE").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(ht.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},Ir={init:function(){this.setColour(Zu),this.appendDummyInput("").appendField(ht.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(ht.Msg.MIXLY_RAINBOW),this.appendValueInput("time").setCheck(Number).appendField(ht.Msg.MIXLY_DURATION).appendField(ht.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},Tr={init:function(){this.setColour(Zu),this.appendDummyInput("").appendField(ht.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(ht.Msg.MIXLY_CHASE),this.appendValueInput("RVALUE").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_RGB_B),this.appendValueInput("time").setCheck(Number).appendField(ht.Msg.PYTHON_RANGE_STEP).appendField(ht.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},hr={init:function(){this.setColour(Zu),this.appendDummyInput("").appendField(ht.Msg.MIXLY_RGB),this.appendDummyInput().appendField(ht.Msg.MIXLY_ESP32_RGB_WRITE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(ht.Msg.MIXLY_ESP32_MUSIC_WRI)}},Mr={init:function(){this.setColour(Zu),this.appendDummyInput("").appendField(ht.Msg.MIXLY_RGB),this.appendValueInput("_LED_").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);switch(Mt.Boards.getSelectedBoardKey()){case"micropython:esp32c3:mixgocc":this.setTooltip(ht.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOCC);break;case"micropython:esp32c3:mixgome":default:this.setTooltip(ht.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOME);break;case"micropython:esp32:mPython":this.setTooltip(ht.Msg.MIXLY_RGB_NUM_R_G_B_MPYTHON)}}},mr={init:function(){this.setColour(Zu),this.appendDummyInput("").appendField(ht.Msg.MIXLY_RGB),this.appendValueInput("RVALUE").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(ht.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},Or={init:function(){this.setColour(Zu),this.appendDummyInput("").appendField(ht.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(ht.Msg.MIXLY_CHASE),this.appendValueInput("RVALUE").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_RGB_B),this.appendValueInput("time").setCheck(Number).appendField(ht.Msg.PYTHON_RANGE_STEP).appendField(ht.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},Er={init:function(){this.setColour(Zu),this.appendValueInput("TICKS").setCheck(Number).appendField(ht.Msg.MIXLY_MICROBIT_JS_SET_TEMPO).appendField(ht.Msg.MICROBIT_ACTUATOR_ticks),this.appendValueInput("BPM").setCheck(Number).appendField(ht.Msg.MIXLY_SPEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_MUSIC_SET_TEMPO)}},Rr={init:function(){this.setColour(Zu),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_Get_current_tempo),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_MUSIC_GET_TEMPO)}},cr={init:function(){this.setColour(Zu),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_Reset_music),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_MUSIC_RESET)}},gr={init:function(){this.setColour(Zu),this.appendDummyInput().appendField(ht.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(ht.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ht.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},Cr={init:function(){this.setColour(Zu),this.appendDummyInput().appendField(ht.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(ht.Msg.MIXLY_FREQUENCY),this.appendValueInput("time").setCheck(Number).appendField(ht.Msg.MIXLY_DURATION),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ht.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE2)}},Sr={init:function(){this.setColour(Zu),this.appendDummyInput().appendField(ht.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Ar={init:function(){this.setColour(Zu),this.appendValueInput("LIST").appendField(ht.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS)}},Lr={init:function(){this.setColour(Zu),this.appendDummyInput().appendField(ht.Msg.MOTOR_DC).appendField(new ht.FieldDropdown([["1","1"],["2","2"],["3","3"]]),"wheel"),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_Direction).appendField(new ht.FieldDropdown([[ht.Msg.CLOCKWISE,"CW"],[ht.Msg.ANTI_CLOCKWISE,"CCW"],[ht.Msg.MOTOR_P,"P"],[ht.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Nr={init:function(){this.setColour(Zu),this.appendDummyInput().appendField("MixGo Car").appendField(new ht.FieldDropdown([[ht.Msg.blockpy_forward,"F"],[ht.Msg.blockpy_backward,"B"],[ht.Msg.blockpy_left,"L"],[ht.Msg.blockpy_right,"R"]]),"VAR"),this.appendValueInput("speed").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Dr={init:function(){this.setColour(Zu),this.appendDummyInput("").appendField("MixGo Car").appendField(new ht.FieldDropdown([[ht.Msg.MOTOR_P,"P"],[ht.Msg.MOTOR_N,"N"]]),"VAR"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},fr={init:function(){this.setColour(Zu),this.appendDummyInput().appendField(ht.Msg.MOTOR_DC).appendField(new ht.FieldDropdown([[ht.Msg.MIXLYCAR_WHEEL_LEFT,"L"],[ht.Msg.MIXLYCAR_WHEEL_RIGHT,"R"]]),"wheel"),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_Direction).appendField(new ht.FieldDropdown([[ht.Msg.CLOCKWISE,"CW"],[ht.Msg.ANTI_CLOCKWISE,"CCW"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Pr={init:function(){this.setColour(Zu),this.appendDummyInput().appendField(ht.Msg.MOTOR_DC).appendField(new ht.FieldDropdown([[ht.Msg.MIXLYCAR_WHEEL_LEFT,"L"],[ht.Msg.MIXLYCAR_WHEEL_RIGHT,"R"]]),"wheel"),this.appendDummyInput().appendField(ht.Msg.MIXLY_STOP).appendField(new ht.FieldDropdown([[ht.Msg.MOTOR_P,"P"],[ht.Msg.MOTOR_N,"N"]]),"direction"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Fr={init:function(){this.setColour(Zu),this.appendDummyInput().appendField(ht.Msg.MIXLY_MIXBOT_MOTOR_STATUS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_MIXBOT_MOTOR_STATUS_TOOLTIP)}},vr={init:function(){this.setColour(Zu),this.appendDummyInput().appendField(ht.Msg.MIXBOT).appendField(new ht.FieldDropdown([[ht.Msg.blockpy_forward,"F"],[ht.Msg.blockpy_backward,"B"],[ht.Msg.blockpy_left,"L"],[ht.Msg.blockpy_right,"R"]]),"VAR"),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"PWR"],[ht.Msg.MIXLY_SPEED,"SPEED"],[ht.Msg.MIXLY_MIXBOT_MOTOR_TURNS,"TURNS"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_MIXBOT_MOVE_TOOLTIP)}},Yr={init:function(){this.setColour(Zu),this.appendDummyInput().appendField(ht.Msg.MIXBOT).appendField(new ht.FieldDropdown([[ht.Msg.MOTOR_P,"P"],[ht.Msg.MOTOR_N,"N"]]),"VAR"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},xr={init:function(){this.setColour(Zu),this.appendDummyInput().appendField(ht.Msg.MIXBOT).appendField(ht.Msg.MIXLY_MOTOR).appendField(new ht.FieldDropdown([[ht.Msg.TEXT_TRIM_LEFT,"1"],[ht.Msg.TEXT_TRIM_RIGHT,"2"],[ht.Msg.TEXT_TRIM_BOTH,"0"]]),"wheel"),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"PWR"],[ht.Msg.MIXLY_SPEED,"SPEED"],[ht.Msg.MIXLY_MIXBOT_MOTOR_TURNS,"TURNS"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_MIXBOT_MOVE_TOOLTIP)}},Xr={init:function(){this.setColour(Zu),this.appendDummyInput().appendField(ht.Msg.MIXLY_MIXBOT_BUZZER),this.appendDummyInput().appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_ON,"0"],[ht.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_OFF,"1"]]),"on_off"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},br={init:function(){this.setColour(Zu),this.appendDummyInput().appendField(ht.Msg.BITBOT).appendField(new ht.FieldDropdown([[ht.Msg.blockpy_forward,"F"],[ht.Msg.blockpy_backward,"B"],[ht.Msg.blockpy_left,"L"],[ht.Msg.blockpy_right,"R"]]),"VAR"),this.appendValueInput("speed").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Vr={init:function(){this.setColour(Zu),this.appendDummyInput().appendField(ht.Msg.BITBOT).appendField(new ht.FieldDropdown([[ht.Msg.MOTOR_P,"P"],[ht.Msg.MOTOR_N,"N"]]),"VAR"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},yr={init:function(){this.setColour(Zu),this.appendDummyInput().appendField(ht.Msg.BITBOT).appendField(ht.Msg.MIXLY_MOTOR).appendField(new ht.FieldDropdown([[ht.Msg.TEXT_TRIM_LEFT,"0"],[ht.Msg.TEXT_TRIM_RIGHT,"1"]]),"wheel"),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_Direction).appendField(new ht.FieldDropdown([[ht.Msg.CLOCKWISE,"CW"],[ht.Msg.ANTI_CLOCKWISE,"CCW"],[ht.Msg.MOTOR_P,"P"],[ht.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Br={init:function(){this.setColour(Zu),this.appendValueInput("bright").appendField(ht.Msg.MIXLY_MIXBOT_SOUND_SET_LOUDNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_LED_SETONOFF)}},Gr={init:function(){this.setColour(Zu),this.appendDummyInput().appendField(ht.Msg.MIXLY_MIXBOT_SOUND_LOUDNESS+"(%)"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_LED_GETONOFF)}},Ur={init:function(){this.setColour(Zu),this.appendValueInput("bright").appendField(ht.Msg.MIXLY_SETTING+ht.Msg.MIXLY_MIXBOT_BUZZER+ht.Msg.MIXLY_MP3_VOL),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_LED_SETONOFF)}},wr={init:function(){this.setColour(Zu),this.appendDummyInput().appendField(ht.Msg.MIXLY_GET+ht.Msg.MIXLY_MIXBOT_BUZZER+ht.Msg.MIXLY_MP3_VOL+"(%)"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_LED_GETONOFF)}},kr={init:function(){this.setColour(Zu),this.appendValueInput("PATH").appendField(ht.Msg.MIXLY_RECORD_AUDIO).appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.appendValueInput("TIME").setCheck(Number).appendField(ht.Msg.MIXLY_GET_PRESSES_TIME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Hr={init:function(){this.setColour(Zu),this.appendValueInput("PATH").appendField(ht.Msg.MIXLY_PLAY_AUDIO).appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Wr={init:function(){this.setColour(Zu),this.appendValueInput("PATH").appendField(ht.Msg.MIXLY_PLAY_ONLINE_AUDIO).appendField("URL"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Kr={init:function(){this.setColour(Zu),this.appendDummyInput().appendField(ht.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(ht.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ht.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},Jr={init:function(){this.setColour(Zu),this.appendDummyInput().appendField(ht.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Qr={init:function(){this.setColour(Zu),this.appendDummyInput().appendField(ht.Msg.LISTS_SET_INDEX_SET+ht.Msg.ME_GO_MOTOR_EXTERN).appendField(ht.Msg.PIN_NUMBERING).appendField(new ht.FieldDropdown([["1","1"],["2","2"]]),"index"),this.appendValueInput("duty").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.blynk_IOT_IR_POWER+ht.Msg.MIXLY_PINMODEOUT),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip()}},zr={init:function(){this.setColour(Zu),this.appendDummyInput().appendField(ht.Msg.MIXLY_GET+ht.Msg.ME_GO_MOTOR_EXTERN).appendField(ht.Msg.PIN_NUMBERING).appendField(new ht.FieldDropdown([["1","1"],["2","2"]]),"index"),this.appendDummyInput().setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.blynk_IOT_IR_POWER+ht.Msg.MIXLY_PINMODEOUT+ht.Msg.MIXLY_DUTY_RATIO),this.setOutput(!0,Number),this.setInputsInline(!0)}},qr={init:function(){this.setColour(Zu),this.appendDummyInput().appendField(ht.Msg.LISTS_SET_INDEX_SET+ht.Msg.ME_GO_MOTOR_EXTERN).appendField(ht.Msg.MIXLY_ALL+ht.Msg.PIN_NUMBERING),this.appendValueInput("duty").setCheck(Number).setAlign(ht.ALIGN_RIGHT).appendField(ht.Msg.blynk_IOT_IR_POWER+ht.Msg.MIXLY_PINMODEOUT+ht.Msg.MIXLY_FREQUENCY),this.appendDummyInput().appendField("Hz"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_MIXBOT_MOTOR_EXTERN_TOOLTIP)}},jr="#90A244",Zr={init:function(){this.setColour(jr),this.appendDummyInput("").appendField(ht.Msg.CONTROLS_FOR_INPUT_WITH+"uart").appendField(new ht.FieldDropdown([["uart1","uart1"],["uart2","uart2"]]),"key"),this.appendValueInput("SUB").appendField(ht.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(ht.Msg.MIXLY_SETUP+ht.Msg.LISTS_SET_INDEX_INPUT_TO+"MixGo AI"+ht.Msg.MSG.catSensor),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},$r={init:function(){this.setColour(jr),this.appendValueInput("VAR").appendField(ht.Msg.MIXLY_QR_CODE+ht.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(ht.Msg.MIXLY_ALL_CODE_ANALYSIS),this.appendDummyInput().appendField(ht.Msg.MIXLY_GET).appendField(new ht.FieldDropdown([[ht.Msg.OLED_STRING,"info1"],[ht.Msg.MIXLY_POSITION_XY+"-xywh","rect"],["x"+ht.Msg.MIXLY_POSITION_XY,"rect[0]"],["y"+ht.Msg.MIXLY_POSITION_XY,"rect[1]"],["w"+ht.Msg.MIXLY_POSITION_XY,"rect[2]"],["h"+ht.Msg.MIXLY_POSITION_XY,"rect[3]"],[ht.Msg.MICROPYTHON_HUSKYLENS_X_CENTERED+ht.Msg.MIXLY_POSITION_XY,"xc"],[ht.Msg.MICROPYTHON_HUSKYLENS_Y_CENTERED+ht.Msg.MIXLY_POSITION_XY,"yc"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_AI_SENSOR_QR_CODE_TOOLTIP)}},tl={init:function(){this.setColour(jr),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(ht.Msg.MIXLY_GET).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_QR_CODE+ht.Msg.MIXPY_OBJECT,"qrcode"],[ht.Msg.MIXLY_BAR_CODE+ht.Msg.MIXPY_OBJECT,"barcode"],[ht.Msg.MIXLY_TAG+ht.Msg.MIXPY_OBJECT,"apriltag"]]),"TYPE"),this.appendDummyInput().appendField(ht.Msg.MIXLY_ANALYSIS_RESULT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip()}},el={init:function(){this.setColour(jr),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ht.Msg.MIXLY_QR_CODE_RECOGNTITION),this.appendDummyInput().setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.PROCEDURES_DEFRETURN_RETURN+"[qrcode]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_AI_SENSOR_QR_CODE_RECOGNTITION_TOOLTIP)}},il={init:function(){this.setColour(jr),this.appendValueInput("SUB"),this.appendValueInput("RX").appendField(ht.Msg.MIXLY_SETTING+ht.Msg.MIXLY_ETHERNET_CLINET_PORT).appendField("RX#").setCheck(Number).setAlign(ht.inputs.Align.RIGHT),this.appendValueInput("TX").appendField("TX#").setCheck(Number).setAlign(ht.inputs.Align.RIGHT),this.appendDummyInput().appendField(ht.Msg.SOFT_RESET+ht.Msg.MIXLY_ESP32_RGB_WRITE).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[ht.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"mode"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_AI_SENSOR_CONFIG_TOOLTIP)}},nl={init:function(){this.setColour(jr),this.appendValueInput("SUB"),this.appendValueInput("led1").appendField(ht.Msg.MIXLY_SETTING).appendField("RGB1").setCheck(Number).setAlign(ht.inputs.Align.RIGHT),this.appendValueInput("led2").appendField("RGB2").setCheck(Number).setAlign(ht.inputs.Align.RIGHT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_AI_SENSOR_CONFIG_TOOLTIP)}},sl={init:function(){this.setColour(jr),this.appendValueInput("VAR").appendField(ht.Msg.MIXLY_BAR_CODE+ht.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(ht.Msg.MIXLY_ALL_CODE_ANALYSIS),this.appendDummyInput().appendField(ht.Msg.MIXLY_GET).appendField(new ht.FieldDropdown([[ht.Msg.OLED_STRING,"info1"],[ht.Msg.MIXLY_POSITION_XY+"-xywh","rect"],["x"+ht.Msg.MIXLY_POSITION_XY,"rect[0]"],["y"+ht.Msg.MIXLY_POSITION_XY,"rect[1]"],["w"+ht.Msg.MIXLY_POSITION_XY,"rect[2]"],["h"+ht.Msg.MIXLY_POSITION_XY,"rect[3]"],[ht.Msg.MICROPYTHON_HUSKYLENS_X_CENTERED+ht.Msg.MIXLY_POSITION_XY,"xc"],[ht.Msg.MICROPYTHON_HUSKYLENS_Y_CENTERED+ht.Msg.MIXLY_POSITION_XY,"yc"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_AI_SENSOR_BAR_CODE_TOOLTIP)}},ol={init:function(){this.setColour(jr),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ht.Msg.MIXLY_BAR_CODE_RECOGNTITION),this.appendDummyInput().setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.PROCEDURES_DEFRETURN_RETURN+"[barcode]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_AI_SENSOR_BAR_CODE_RECOGNTITION_TOOLTIP)}},_l={init:function(){this.setColour(jr),this.appendValueInput("VAR").appendField(ht.Msg.MIXLY_TAG+ht.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(ht.Msg.MIXLY_ALL_CODE_ANALYSIS),this.appendDummyInput().appendField(ht.Msg.MIXLY_GET).appendField(new ht.FieldDropdown([[ht.Msg.OLED_STRING,"info1"],[ht.Msg.blockpy_turtle_rotate+ht.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"info2"],[ht.Msg.MIXLY_POSITION_XY+"-xywh","rect"],["x"+ht.Msg.MIXLY_POSITION_XY,"rect[0]"],["y"+ht.Msg.MIXLY_POSITION_XY,"rect[1]"],["w"+ht.Msg.MIXLY_POSITION_XY,"rect[2]"],["h"+ht.Msg.MIXLY_POSITION_XY,"rect[3]"],[ht.Msg.MICROPYTHON_HUSKYLENS_X_CENTERED+ht.Msg.MIXLY_POSITION_XY,"xc"],[ht.Msg.MICROPYTHON_HUSKYLENS_Y_CENTERED+ht.Msg.MIXLY_POSITION_XY,"yc"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_AI_SENSOR_TAG_TOOLTIP)}},pl={init:function(){this.setColour(jr),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ht.Msg.MIXLY_TAG_RECOGNTITION),this.appendDummyInput().setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.PROCEDURES_DEFRETURN_RETURN+"[tag]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_AI_SENSOR_TAG_RECOGNTITION_TOOLTIP)}},al={init:function(){this.setColour(jr),this.appendValueInput("VAR").appendField(ht.Msg.MIXLY_LINE+ht.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(ht.Msg.MIXLY_ALL_CODE_ANALYSIS),this.appendDummyInput().appendField(ht.Msg.MIXLY_GET).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_LINE_ANGLE,"info1"],[ht.Msg.MIXLY_POSITION_XY+"-x1x2y1y2","rect"],["x1"+ht.Msg.MIXLY_POSITION_XY,"rect[0]"],["x2"+ht.Msg.MIXLY_POSITION_XY,"rect[1]"],["y1"+ht.Msg.MIXLY_POSITION_XY,"rect[2]"],["y2"+ht.Msg.MIXLY_POSITION_XY,"rect[3]"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_AI_SENSOR_LINE_TOOLTIP)}},ul={init:function(){this.setColour(jr),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ht.Msg.MIXLY_LINE_RECOGNTITION),this.appendValueInput("VAR1").appendField(ht.Msg.MIXLY_ESP32_THRESHOLD).setCheck(Number).setAlign(ht.inputs.Align.RIGHT),this.appendValueInput("VAR2").appendField(ht.Msg.MIXLY_LINE_RECOGNTITION_ANGLE).setCheck(Number).setAlign(ht.inputs.Align.RIGHT),this.appendValueInput("VAR3").appendField(ht.Msg.MIXLY_LINE_RECOGNTITION_SLOPE).setCheck(Number).setAlign(ht.inputs.Align.RIGHT),this.appendDummyInput().setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.PROCEDURES_DEFRETURN_RETURN+"[line]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_AI_SENSOR_LINE_RECOGNTITION_TOOLTIP)}},rl={init:function(){this.setColour(jr),this.appendValueInput("VAR").appendField(ht.Msg.MIXLY_CIRCLE+ht.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(ht.Msg.MIXLY_ALL_CODE_ANALYSIS),this.appendDummyInput().appendField(ht.Msg.MIXLY_GET).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_CIRCLE_AREA,"info1"],[ht.Msg.MIXLY_POSITION_XY+"-xywh","rect"],["x"+ht.Msg.MIXLY_POSITION_XY,"rect[0]"],["y"+ht.Msg.MIXLY_POSITION_XY,"rect[1]"],["w"+ht.Msg.MIXLY_POSITION_XY,"rect[2]"],["h"+ht.Msg.MIXLY_POSITION_XY,"rect[3]"],[ht.Msg.MICROPYTHON_HUSKYLENS_X_CENTERED+ht.Msg.MIXLY_POSITION_XY,"xc"],[ht.Msg.MICROPYTHON_HUSKYLENS_Y_CENTERED+ht.Msg.MIXLY_POSITION_XY,"yc"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_AI_SENSOR_CIRCLE_TOOLTIP)}},ll={init:function(){this.setColour(jr),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ht.Msg.MIXLY_CIRCLE_RECOGNTITION),this.appendValueInput("VAR1").appendField(ht.Msg.MIXLY_ESP32_THRESHOLD).setCheck(Number).setAlign(ht.inputs.Align.RIGHT),this.appendValueInput("VAR2").appendField(ht.Msg.MIXLY_CIRCLE_RECOGNTITION_MIN).setCheck(Number).setAlign(ht.inputs.Align.RIGHT),this.appendValueInput("VAR3").appendField(ht.Msg.MIXLY_CIRCLE_RECOGNTITION_MAX).setCheck(Number).setAlign(ht.inputs.Align.RIGHT),this.appendDummyInput().setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.PROCEDURES_DEFRETURN_RETURN+"[circle]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_AI_SENSOR_CIRCLE_RECOGNTITION_TOOLTIP)}},dl={init:function(){this.setColour(jr),this.appendValueInput("VAR").appendField(ht.Msg.MIXLY_RECT+ht.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(ht.Msg.MIXLY_ALL_CODE_ANALYSIS),this.appendDummyInput().appendField(ht.Msg.MIXLY_GET).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_CIRCLE_AREA,"info1"],[ht.Msg.MIXLY_POSITION_XY+"-xywh","rect"],["x"+ht.Msg.MIXLY_POSITION_XY,"rect[0]"],["y"+ht.Msg.MIXLY_POSITION_XY,"rect[1]"],["w"+ht.Msg.MIXLY_POSITION_XY,"rect[2]"],["h"+ht.Msg.MIXLY_POSITION_XY,"rect[3]"],[ht.Msg.MICROPYTHON_HUSKYLENS_X_CENTERED+ht.Msg.MIXLY_POSITION_XY,"xc"],[ht.Msg.MICROPYTHON_HUSKYLENS_Y_CENTERED+ht.Msg.MIXLY_POSITION_XY,"yc"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_AI_SENSOR_RECT_TOOLTIP)}},Il={init:function(){this.setColour(jr),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ht.Msg.MIXLY_RECT_RECOGNTITION),this.appendValueInput("VAR1").appendField(ht.Msg.MIXLY_ESP32_THRESHOLD).setCheck(Number).setAlign(ht.inputs.Align.RIGHT),this.appendDummyInput().setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.PROCEDURES_DEFRETURN_RETURN+"[rect]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_AI_SENSOR_COLOR_RECOGNTITION_TOOLTIP)}},Tl={init:function(){this.setColour(jr),this.appendValueInput("VAR").appendField(ht.Msg.HTML_COLOUR+ht.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(ht.Msg.MIXLY_COLOR_ANALYSIS),this.appendDummyInput().appendField(ht.Msg.MIXLY_GET).appendField(new ht.FieldDropdown([["RGB"+ht.Msg.HTML_COLOUR,"[0]"],["LAB"+ht.Msg.MIXLY_COLOR_LAB,"[1]"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_AI_SENSOR_COLOR_TOOLTIP)}},hl={init:function(){this.setColour(jr),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ht.Msg.MIXLY_COLOR_RECOGNTITION),this.appendDummyInput().setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.PROCEDURES_DEFRETURN_RETURN+"color"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_AI_SENSOR_COLOR_RECOGNTITION_TOOLTIP)}},Ml={init:function(){this.setColour(jr),this.appendValueInput("VAR").appendField(ht.Msg.MIXLY_COLOR_CHASE+ht.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(ht.Msg.MIXLY_COLOR_CHASE_ANALYSIS),this.appendDummyInput().appendField(ht.Msg.MIXLY_GET).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_CIRCLE_AREA,"info1"],[ht.Msg.MIXLY_POSITION_XY+"-xywh","rect"],["x"+ht.Msg.MIXLY_POSITION_XY,"rect[0]"],["y"+ht.Msg.MIXLY_POSITION_XY,"rect[1]"],["w"+ht.Msg.MIXLY_POSITION_XY,"rect[2]"],["h"+ht.Msg.MIXLY_POSITION_XY,"rect[3]"],[ht.Msg.MICROPYTHON_HUSKYLENS_X_CENTERED+ht.Msg.MIXLY_POSITION_XY,"xc"],[ht.Msg.MICROPYTHON_HUSKYLENS_Y_CENTERED+ht.Msg.MIXLY_POSITION_XY,"yc"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_AI_SENSOR_CIRCLE_TOOLTIP)}},ml={init:function(){this.setColour(jr),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ht.Msg.MIXLY_COLOR_CHASE),this.appendValueInput("VAR1").appendField("LAB"+ht.Msg.MIXLY_COLOR_LAB).setAlign(ht.inputs.Align.RIGHT),this.appendValueInput("VAR2").appendField(ht.Msg.MIXLY_ESP32_THRESHOLD).setCheck(Number).setAlign(ht.inputs.Align.RIGHT),this.appendValueInput("VAR3").appendField(ht.Msg.MIXLY_COLOR_CHASE_MERGE).setCheck(Number).setAlign(ht.inputs.Align.RIGHT),this.appendDummyInput().setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.PROCEDURES_DEFRETURN_RETURN+"[colors]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_AI_SENSOR_CIRCLE_RECOGNTITION_TOOLTIP)}},Ol={init:function(){this.setColour(jr),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ht.Msg.MIXLY_LOCAL_TRAIN),this.appendValueInput("VAR1").appendField(ht.Msg.MIXLY_OBJECT_LIST).setAlign(ht.inputs.Align.RIGHT),this.appendValueInput("VAR2").appendField(ht.Msg.MICROPYTHON_HUSKYLENS_SAVE_AS+ht.Msg.MIXLY_MODEL_NAME).setAlign(ht.inputs.Align.RIGHT),this.appendValueInput("VAR3").appendField(ht.Msg.MIXLY_TRAIN_TIME).setAlign(ht.inputs.Align.RIGHT),this.appendValueInput("VAR4").appendField(ht.Msg.MIXLY_AipNlp_Topic_Title).setAlign(ht.inputs.Align.RIGHT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_AI_SENSOR_LOCAL_TRAIN_TOOLTIP)}},El={init:function(){this.setColour(jr),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ht.Msg.MIXLY_LOCAL_CLASS),this.appendValueInput("VAR1").appendField(ht.Msg.MIXLY_OBJECT_LIST).setAlign(ht.inputs.Align.RIGHT),this.appendValueInput("VAR2").appendField(ht.Msg.MIXLY_MODEL_NAME).setAlign(ht.inputs.Align.RIGHT),this.appendValueInput("VAR4").appendField(ht.Msg.MIXLY_AipNlp_Topic_Title).setAlign(ht.inputs.Align.RIGHT),this.appendDummyInput().setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.PROCEDURES_DEFRETURN_RETURN+"[objects]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_AI_SENSOR_MODEL_NAME_TOOLTIP)}},Rl={init:function(){this.setColour(jr),this.appendValueInput("VAR").appendField(ht.Msg.MIXLY_LOCAL_CLASS+ht.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(ht.Msg.MIXLY_COLOR_CHASE_ANALYSIS),this.appendDummyInput().appendField(ht.Msg.MIXLY_GET).appendField(new ht.FieldDropdown([["ID","info1"],[ht.Msg.MIXLY_CONFIDENCE_DEGREE,"info2"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_AI_SENSOR_LOCAL_CLASS_TOOLTIP)}},cl={init:function(){this.setColour(jr),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ht.Msg.MIXLY_MUSIC_RECORD),this.appendValueInput("VAR1").appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH).setAlign(ht.inputs.Align.RIGHT),this.appendValueInput("VAR2").appendField(ht.Msg.MIXPY_AI_AUDIO_TIME).setAlign(ht.inputs.Align.RIGHT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_AI_SENSOR_MUSIC_RECORD_TOOLTIP)}},gl={init:function(){this.setColour(jr),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ht.Msg.MIXLY_MUSIC_PLAY),this.appendValueInput("VAR1").appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH).setAlign(ht.inputs.Align.RIGHT),this.appendValueInput("VAR2").appendField(ht.Msg.MIXLY_MP3_VOL).setAlign(ht.inputs.Align.RIGHT),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Cl={init:function(){this.setColour(jr),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ht.Msg.MIXLY_YOLO_RECOGNIZE),this.appendValueInput("VAR1").appendField(ht.Msg.MIXLY_ANCHOR).setAlign(ht.inputs.Align.RIGHT),this.appendValueInput("VAR2").appendField(ht.Msg.MIXLY_MODEL_PATH).setAlign(ht.inputs.Align.RIGHT),this.appendValueInput("VAR4").appendField(ht.Msg.MIXLY_AipNlp_Topic_Title).setAlign(ht.inputs.Align.RIGHT),this.appendDummyInput().setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.PROCEDURES_DEFRETURN_RETURN+"[objects]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_AI_SENSOR_YOLO_RECOGNIZE_TOOLTIP)}},Sl={init:function(){this.setColour(jr),this.appendValueInput("VAR").appendField(ht.Msg.MIXLY_YOLO_RECOGNIZE+ht.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(ht.Msg.MIXLY_COLOR_CHASE_ANALYSIS),this.appendDummyInput().appendField(ht.Msg.MIXLY_GET).appendField(new ht.FieldDropdown([["ID","info1"],[ht.Msg.MIXLY_CONFIDENCE_DEGREE,"info2"],[ht.Msg.MIXLY_POSITION_XY+"-xywh","rect"],["x"+ht.Msg.MIXLY_POSITION_XY,"rect[0]"],["y"+ht.Msg.MIXLY_POSITION_XY,"rect[1]"],["w"+ht.Msg.MIXLY_POSITION_XY,"rect[2]"],["h"+ht.Msg.MIXLY_POSITION_XY,"rect[3]"],[ht.Msg.MICROPYTHON_HUSKYLENS_X_CENTERED+ht.Msg.MIXLY_POSITION_XY,"xc"],[ht.Msg.MICROPYTHON_HUSKYLENS_Y_CENTERED+ht.Msg.MIXLY_POSITION_XY,"yc"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_AI_SENSOR_YOLO_RECOGNIZE_RESULT_TOOLTIP)}},Al={init:function(){this.setColour(jr),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ht.Msg.MIXLY_AipSpeech_asr),this.appendValueInput("VAR1").appendField(ht.Msg.MIXLY_AI_SENSOR_ASR_RECOGNISE_CORPUS).setAlign(ht.inputs.Align.RIGHT),this.appendValueInput("VAR2").appendField(ht.Msg.MIXLY_ESP32_THRESHOLD).setAlign(ht.inputs.Align.RIGHT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_AI_SENSOR_ASR_RECOGNISE_TOOLTIP)}},Ll={init:function(){this.setColour(jr),this.appendValueInput("VAR").appendField(ht.Msg.MIXLY_LICENSEPLATE+ht.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(ht.Msg.MIXLY_ALL_CODE_ANALYSIS),this.appendDummyInput().appendField(ht.Msg.MIXLY_GET).appendField(new ht.FieldDropdown([["ID","info1"],[ht.Msg.MIXLY_POSITION_XY+"-xywh","rect"],["x"+ht.Msg.MIXLY_POSITION_XY,"rect[0]"],["y"+ht.Msg.MIXLY_POSITION_XY,"rect[1]"],["w"+ht.Msg.MIXLY_POSITION_XY,"rect[2]"],["h"+ht.Msg.MIXLY_POSITION_XY,"rect[3]"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_AI_SENSOR_LICENSEPLATE_TOOLTIP)}},Nl={init:function(){this.setColour(jr),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ht.Msg.MIXLY_AipOcr_licensePlate),this.appendDummyInput().setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.PROCEDURES_DEFRETURN_RETURN+"[licensePlate]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_AI_SENSOR_LICENSEPLATE_RECOGNTITION_TOOLTIP)}},Dl={init:function(){this.setColour(jr),this.appendValueInput("VAR").appendField(ht.Msg.MIXLY_FACE+ht.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(ht.Msg.MIXLY_ALL_CODE_ANALYSIS),this.appendDummyInput().appendField(ht.Msg.MIXLY_GET).appendField(new ht.FieldDropdown([["ID","info1"],[ht.Msg.MIXLY_CONFIDENCE_DEGREE,"info2"],[ht.Msg.MIXLY_POSITION_XY+"-xywh","rect"],["x"+ht.Msg.MIXLY_POSITION_XY,"rect[0]"],["y"+ht.Msg.MIXLY_POSITION_XY,"rect[1]"],["w"+ht.Msg.MIXLY_POSITION_XY,"rect[2]"],["h"+ht.Msg.MIXLY_POSITION_XY,"rect[3]"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_AI_SENSOR_FACE_TOOLTIP)}},fl={init:function(){this.setColour(jr),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ht.Msg.MIXLY_AipFace),this.appendDummyInput().setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.PROCEDURES_DEFRETURN_RETURN+"[face]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_AI_SENSOR_BAR_FACE_CLASSIFIER_TOOLTIP)}},Pl={init:function(){this.setColour(jr),this.appendValueInput("VAR").appendField(ht.Msg.MIXLY_20OBJECTS+ht.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(ht.Msg.MIXLY_ALL_CODE_ANALYSIS),this.appendDummyInput().appendField(ht.Msg.MIXLY_GET).appendField(new ht.FieldDropdown([["ID","info1"],[ht.Msg.MIXLY_CONFIDENCE_DEGREE,"info2"],[ht.Msg.MIXLY_POSITION_XY+"-xywh","rect"],["x"+ht.Msg.MIXLY_POSITION_XY,"rect[0]"],["y"+ht.Msg.MIXLY_POSITION_XY,"rect[1]"],["w"+ht.Msg.MIXLY_POSITION_XY,"rect[2]"],["h"+ht.Msg.MIXLY_POSITION_XY,"rect[3]"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_AI_SENSOR_20OBJECTS_TOOLTIP)}},Fl={init:function(){this.setColour(jr),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ht.Msg.MIXLY_FIND_20OBJECTS),this.appendDummyInput().setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.PROCEDURES_DEFRETURN_RETURN+"[20objects]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_AI_SENSOR_BAR_FIND_20OBJECTS_TOOLTIP)}},vl={init:function(){this.setColour(205),this.appendDummyInput("").appendField(ht.Msg.MIXLY_SETUP).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_AipSpeech_asr,"ASR"],[ht.Msg.MIXLY_AI_UNIT,"UNIT"]]),"CTYPE"),this.appendValueInput("SUB").appendField(ht.Msg.MIXLY_Client).setAlign(ht.inputs.Align.RIGHT),this.appendValueInput("API_KEY").appendField("API_KEY").setAlign(ht.inputs.Align.RIGHT),this.appendValueInput("SECRET_KEY").appendField("SECRET_KEY").setAlign(ht.inputs.Align.RIGHT),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Yl={init:function(){this.setColour(205),this.appendValueInput("SUB").appendField(ht.Msg.MIXLY_AI_UNIT).appendField(ht.Msg.MIXLY_Client).setAlign(ht.inputs.Align.RIGHT),this.appendValueInput("ID").appendField("ID").setAlign(ht.inputs.Align.RIGHT),this.appendValueInput("STR").appendField(ht.Msg.OLED_STRING).setAlign(ht.inputs.Align.RIGHT),this.setInputsInline(!0),this.setOutput(!0)}},xl={init:function(){this.setColour(205),this.appendValueInput("SUB").appendField(ht.Msg.MIXLY_AipSpeech_asr).appendField(ht.Msg.MIXLY_Client).setAlign(ht.inputs.Align.RIGHT),this.appendValueInput("FILE").appendField(ht.Msg.MIXPY_AI_AUDIO_TIME).setAlign(ht.inputs.Align.RIGHT),this.appendDummyInput("").appendField(ht.Msg.MIXLY_LANGUAGE).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_AI_LANGUAGE_CHINESE,"1537"],[ht.Msg.MIXLY_AI_LANGUAGE_ENGLISH,"1737"],[ht.Msg.MIXLY_AI_LANGUAGE_CANTONESE,"1637"]]),"LANGUAGE"),this.setInputsInline(!0),this.setOutput(!0)}},Xl="#2FAD7A",bl={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:Xl,helpUrl:ht.Msg.MPYTHON_BLYNK_TERMINAL_WIDGET_VPIN_HELPURL,tooltip:ht.Msg.MPYTHON_BLYNK_TERMINAL_WIDGET_VPIN_TOOLTIP,message0:ht.Msg.MPYTHON_BLYNK_TERMINAL_WIDGET_VPIN_MESSAGE0,args0:[{check:Number,type:"input_value",name:"virtual_pin"}]})}},Vl={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:Xl,helpUrl:ht.Msg.MPYTHON_BLYNK_SYNC_VIRTUAL_HELPURL,tooltip:ht.Msg.MPYTHON_BLYNK_SYNC_VIRTUAL_TOOLTIP,message0:ht.Msg.MPYTHON_BLYNK_SYNC_VIRTUAL_MESSAGE0,args0:[{check:Number,type:"input_value",name:"virtual_pin"}]})}},yl={init:function(){this.jsonInit({inputsInline:!0,colour:Xl,helpUrl:ht.Msg.MPYTHON_BLYNK_ON_DISCONNECTED_HELPURL,tooltip:ht.Msg.MPYTHON_BLYNK_ON_DISCONNECTED_TOOLTIP,message0:ht.Msg.MPYTHON_BLYNK_ON_DISCONNECTED_MESSAGE0}),this.appendStatementInput("DO").appendField(ht.CONTROLS_REPEAT_INPUT_DO)}},Bl={init:function(){this.jsonInit({inputsInline:!0,colour:Xl,helpUrl:ht.Msg.MPYTHON_BLYNK_ON_CONNECTED_HELPURL,tooltip:ht.Msg.MPYTHON_BLYNK_ON_CONNECTED_TOOLTIP,message0:ht.Msg.MPYTHON_BLYNK_ON_CONNECTED_MESSAGE0}),this.appendStatementInput("DO").appendField(ht.CONTROLS_REPEAT_INPUT_DO)}},Gl={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:Xl,helpUrl:ht.Msg.MPYTHON_BLYNKTIMER_RUN_HELPURL,tooltip:ht.Msg.MPYTHON_BLYNKTIMER_RUN_TOOLTIP,message0:ht.Msg.MPYTHON_BLYNKTIMER_RUN_MESSAGE0})}},Ul={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:Xl,helpUrl:ht.Msg.MPYTHON_BLYNK_RUN_HELPURL,tooltip:ht.Msg.MPYTHON_BLYNK_RUN_TOOLTIP,message0:ht.Msg.MPYTHON_BLYNK_RUN_MESSAGE0})}},wl={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:Xl,helpUrl:ht.Msg.MPYTHON_BLYNK_APP_NOTIFY_HELPURL,tooltip:ht.Msg.MPYTHON_BLYNK_APP_NOTIFY_TOOLTIP,message0:ht.Msg.MPYTHON_BLYNK_APP_NOTIFY_MESSAGE0,args0:[{check:String,type:"input_value",name:"notification"}]})}},kl={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:Xl,helpUrl:ht.Msg.MPYTHON_BLYNK_STOP_TIMERS_HELPURL,tooltip:ht.Msg.MPYTHON_BLYNKTIMER_TOOLTIP,message0:ht.Msg.MPYTHON_BLYNK_STOP_TIMERS_MESSAGE0,args0:[{check:Number,type:"input_value",name:"timer_num"}]})}},Hl={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:Xl,helpUrl:ht.Msg.MPYTHON_BLYNK_SET_PROPERTY_HELPURL,tooltip:ht.Msg.MPYTHON_BLYNK_SET_PROPERTY_TOOLTIP,message0:ht.Msg.MPYTHON_BLYNK_SET_PROPERTY_MESSAGE0,args0:[{check:String,type:"input_value",name:"attribute_name"},{type:"input_value",name:"attribute_value"}]})}},Wl={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:Xl,helpUrl:ht.Msg.MPYTHON_BLYNK_EMAIL_HELPURL,tooltip:ht.Msg.MPYTHON_BLYNK_EMAIL_TOOLTIP,message0:ht.Msg.MPYTHON_BLYNK_EMAIL_MESSAGE0,args0:[{check:String,type:"input_value",name:"TargetEmail"},{check:String,type:"input_value",name:"subject"},{check:String,type:"input_value",name:"body"}]})}},Kl={init:function(){this.jsonInit({inputsInline:!0,output:null,colour:Xl,helpUrl:ht.Msg.MPYTHON_BLYNK_GET_TIMERS_HELPURL,tooltip:ht.Msg.MPYTHON_BLYNK_GET_TIMERS_TOOLTIP,message0:ht.Msg.MPYTHON_BLYNK_GET_TIMERS_MESSAGE0})}},Jl={init:function(){this.jsonInit({message0:ht.Msg.MPYTHON_BLYNKTIMER_MESSAGE0,colour:Xl,helpUrl:ht.Msg.MPYTHON_BLYNKTIMER_HELPURL,tooltip:ht.Msg.MPYTHON_BLYNKTIMER_TOOLTIP,args0:[{check:Number,type:"input_value",name:"Num"},{options:[[ht.Msg.MIXLY_PYTHON_PERIODIC,"False"],[ht.Msg.MIXLY_PYTHON_ONE_SHOT,"True"]],type:"field_dropdown",name:"Timer_mode"},{check:Number,type:"input_value",name:"period"}]}),this.appendStatementInput("DO").appendField(ht.CONTROLS_REPEAT_INPUT_DO)}},Ql={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:Xl,helpUrl:ht.Msg.MPYTHON_BLYNK_SENSOR_DATA_TO_APP_HELPURL,tooltip:ht.Msg.MPYTHON_BLYNK_SENSOR_DATA_TO_APP_TOOLTIP,message0:ht.Msg.MPYTHON_BLYNK_SENSOR_DATA_TO_APP_MESSAGE0,args0:[{type:"input_value",name:"sensor_data"},{check:Number,type:"input_value",name:"virtual_pin"}]})}},zl={init:function(){this.jsonInit({inputsInline:!0,colour:Xl,helpUrl:ht.Msg.MPYTHON_BLYNK_APP_DATA_HELPURL,tooltip:ht.Msg.MPYTHON_BLYNK_SENSOR_DATA_TO_APP_TOOLTIP,message0:ht.Msg.MPYTHON_BLYNK_APP_DATA_MESSAGE0,args0:[{check:Number,type:"input_value",name:"virtual_pin"},{type:"input_value",name:"virtual_pin_val"}]}),this.appendStatementInput("DO").appendField(ht.CONTROLS_REPEAT_INPUT_DO)}},ql={init:function(){this.jsonInit({nextStatement:null,previousStatement:null,colour:Xl,helpUrl:ht.Msg.MPYTHON_BLYNK_SETUP_HELPURL,tooltip:ht.Msg.MPYTHON_BLYNK_SETUP_TOOLTIP,message0:ht.Msg.MPYTHON_BLYNK_SETUP_MESSAGE0,args0:[{type:"input_dummy"},{check:String,type:"input_value",name:"server"},{check:Number,type:"input_value",name:"port"},{check:String,type:"input_value",name:"auth"}]})}},jl=140,Zl={init:function(){this.setColour(jl),this.appendDummyInput().appendField(ht.Msg.MIXLY_LED_ON_BOARD+"I2C"),this.setOutput(!0),this.setInputsInline(!0)}},$l={init:function(){this.setColour(jl),this.appendDummyInput().appendField(ht.Msg.MIXLY_LED_ON_BOARD+"SPI"),this.setOutput(!0),this.setInputsInline(!0)}},td={init:function(){this.setColour(jl),this.appendValueInput("SUB").appendField("I2C "+ht.Msg.MIXLY_SETUP).setCheck("var"),this.appendValueInput("TX",Number).appendField("SCL").setCheck(Number).setAlign(ht.inputs.Align.RIGHT),this.appendValueInput("RX",Number).appendField("SDA").setCheck(Number).setAlign(ht.inputs.Align.RIGHT),this.appendValueInput("freq").setCheck(Number).appendField(ht.Msg.MIXLY_FREQUENCY).setAlign(ht.inputs.Align.RIGHT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_I2C_INIT)}},ed={init:function(){this.setColour(jl),this.appendValueInput("VAR").appendField("I2C").setCheck("var"),this.appendValueInput("address").setCheck(Number).appendField(ht.Msg.MIXLY_ESP32_RNUMBER),this.appendValueInput("data").setCheck(Number).appendField(ht.Msg.LANG_MATH_BYTE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_MICROBIT_JS_I2C_READ)}},id={init:function(){this.setColour(jl),this.appendValueInput("VAR").appendField("I2C").setCheck("var"),this.appendValueInput("address").setCheck(Number).appendField(ht.Msg.MIXLY_ESP32_WNUMBER),this.appendValueInput("data").setCheck(Number).appendField(ht.Msg.MIXLY_MICROBIT_JS_I2C_VALUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_MICROBIT_JS_I2C_WRITE)}},nd={init:function(){this.setColour(jl),this.appendValueInput("VAR").appendField("I2C").setCheck("var"),this.appendDummyInput().appendField(ht.Msg.MIXLY_ESP32_I2C_SCAN1+ht.Msg.MIXLY_ESP32_I2C_SCAN2),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_I2C_SCAN)}},sd={init:function(){this.setColour(jl),this.appendValueInput("VAR").setCheck("var").appendField(ht.Msg.MIXLY_ESP32_SPI_INIT),this.appendValueInput("freq").setCheck(Number).appendField(ht.Msg.MIXLY_SERIAL_BEGIN),this.appendValueInput("sck").setCheck(Number).appendField("SCK"),this.appendValueInput("mosi").setCheck(Number).appendField("MOSI"),this.appendValueInput("miso").setCheck(Number).appendField("MISO"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_SPI_INIT_TOOLTIP)}},od={init:function(){this.setColour(jl),this.appendValueInput("VAR").setCheck("var").appendField("SPI"),this.appendValueInput("data").setCheck(Number).appendField(ht.Msg.MIXLY_SETTING+ht.Msg.MIXLY_SERIAL_BEGIN),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_SPI_SET)}},_d={init:function(){this.setColour(jl),this.appendValueInput("VAR").setCheck("var").appendField("SPI"),this.appendValueInput("data").setCheck(Number).appendField(ht.Msg.MIXLY_ESP32_SET+ht.Msg.MIXLY_ESP32_SPI_BUFFER),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_SPI_BUFFER_SET)}},pd={init:function(){this.setColour(jl),this.appendValueInput("VAR").setCheck("var").appendField("SPI"),this.appendValueInput("data").setCheck(Number).appendField(ht.Msg.MIXLY_SERIAL_READ),this.appendDummyInput("").appendField(ht.Msg.MIXLY_4DIGITDISPLAY_NOMBER2+ht.Msg.LANG_MATH_BYTE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_SPI_READ)}},ad={init:function(){this.setColour(jl),this.appendValueInput("VAR").setCheck("var").appendField("SPI"),this.appendValueInput("data").setCheck(Number).appendField(ht.Msg.MIXLY_SERIAL_READ),this.appendDummyInput("").appendField(ht.Msg.MIXLY_4DIGITDISPLAY_NOMBER2+ht.Msg.LANG_MATH_BYTE+" "+ht.Msg.MIXLY_ESP32_SPI_OUTPUT),this.appendValueInput("val").setCheck(Number),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_SPI_READ_OUTPUT)}},ud={init:function(){this.setColour(jl),this.appendValueInput("VAR").setCheck("var").appendField("SPI"),this.appendValueInput("data").setCheck("var").appendField(ht.Msg.MIXLY_SERIAL_READ+ht.Msg.MIXLY_ESP32_SPI_BUFFER),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_SPI_READINTO)}},rd={init:function(){this.setColour(jl),this.appendValueInput("VAR").setCheck("var").appendField("SPI"),this.appendValueInput("data").setCheck("var").appendField(ht.Msg.MIXLY_SERIAL_READ+ht.Msg.MIXLY_ESP32_SPI_BUFFER),this.appendValueInput("val").setCheck(Number).appendField(ht.Msg.MIXLY_ESP32_SPI_OUTPUT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_SPI_READINTO_OUTPUT)}},ld={init:function(){this.setColour(jl),this.appendValueInput("VAR").setCheck("var").appendField("SPI"),this.appendValueInput("data").setCheck(String).appendField(ht.Msg.MIXLY_ESP32_WRITE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_SPI_WRITE)}},dd={init:function(){this.setColour(jl),this.appendValueInput("VAR").setCheck("var").appendField("SPI"),this.appendValueInput("data").setCheck(String).appendField(ht.Msg.MIXLY_ESP32_WRITE),this.appendValueInput("val").setCheck("var").appendField(ht.Msg.MIXLY_ESP32_BUFFER_READ),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_SPI_WRITE_READINTO)}},Id={init:function(){this.setColour(jl),this.appendValueInput("VAR").setCheck("var").appendField("I2C"),this.appendDummyInput().appendField(ht.Msg.MIXLY_ESP32_READ),this.setOutput(!0,Number)}},Td={init:function(){this.setColour(jl),this.appendValueInput("VAR").setCheck("var").appendField("I2C"),this.appendDummyInput().appendField(ht.Msg.MIXLY_ESP32_READ+ht.Msg.MIXLY_ESP32_SUCCESS),this.setOutput(!0,Boolean),this.setTooltip(ht.Msg.MIXLY_ESP32_I2C_AVAILABLE)}},hd={init:function(){this.setColour(jl),this.appendValueInput("PIN",Number).appendField(ht.Msg.MIXLY_I2C_SLAVE_ONRECEIVE).setCheck(Number),this.appendStatementInput("DO").appendField(ht.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Md={init:function(){this.setColour(jl),this.appendValueInput("VAR").setCheck("var").appendField("OneWire "+ht.Msg.MIXLY_SETUP),this.appendValueInput("BUS").setCheck(Number).appendField(ht.Msg.MIXLY_PIN),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_OW_INIT)}},md={init:function(){this.setColour(jl),this.appendValueInput("VAR").setCheck("var").appendField("OneWire"),this.appendDummyInput().appendField(ht.Msg.MIXLY_ESP32_ONEWIRE_SCAN),this.setOutput(!0,"List"),this.setTooltip(ht.Msg.MIXLY_ESP32_OW_SCAN)}},Od={init:function(){this.setColour(jl),this.appendValueInput("VAR").setCheck("var").appendField("OneWire"),this.appendDummyInput().appendField(ht.Msg.MIXLY_ESP32_ONEWIRE_READ),this.setOutput(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_OW_READ)}},Ed={init:function(){this.setColour(jl),this.appendValueInput("VAR").setCheck("var").appendField("OneWire"),this.appendDummyInput("").appendField(ht.Msg.MIXLY_ESP32_WRITE).appendField(new ht.FieldDropdown([[ht.Msg.LANG_MATH_STRING,"write"],[ht.Msg.LANG_MATH_BYTE,"writebyte"]]),"op"),this.appendValueInput("byte").setCheck([Number,String]),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_OW_WRITE)}},Rd={init:function(){this.setColour(jl),this.appendValueInput("VAR").appendField("OneWire").setCheck("var"),this.appendValueInput("byte").setCheck(String).appendField(ht.Msg.LISTS_SET_INDEX_SET).appendField("ROM"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_OW_SELECT)}},cd={init:function(){this.setColour(jl),this.appendValueInput("VAR").appendField("OneWire").setCheck("var"),this.appendDummyInput().appendField(ht.Msg.blockpy_turtle_reset),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_OW_RESET)}},gd={init:function(){this.setColour(jl),this.appendValueInput("PIN").appendField(ht.Msg.MIXLY_SETUP+ht.Msg.MIXLY_IR_RECEIVE),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROPYTHON_SOCKET_TYPE).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_IR_INPUT1,"8"],[ht.Msg.MIXLY_IR_INPUT2,"16"],[ht.Msg.MIXLY_IR_INPUT3,"0"],[ht.Msg.MIXLY_TR_SEND_RC,"RC5"]]),"type"),this.appendValueInput("SUB").appendField(ht.Msg.CONTROLS_REPEAT_INPUT_DO+ht.Msg.MIXLY_ESP32_ONENET_SUB),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Cd={init:function(){this.setColour(jl),this.appendDummyInput().appendField(ht.Msg.MIXlY_RECV_FUN),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_IR_CMD_CODE,"0"],[ht.Msg.MIXLY_IR_ADDR_CODE,"1"],[ht.Msg.MIXLY_IR_RAW_CODE,"2"],[ht.Msg.MIXLY_IR_PULSE,"3"]]),"index"),this.setOutput(!0),this.setInputsInline(!0)}},Sd={init:function(){this.setColour(jl),this.appendDummyInput().appendField(ht.Msg.MIXlY_RECV_FUN).appendField(new ht.FieldDropdown([[ht.Msg.MILY_PAUSE,"True"],[ht.Msg.MIXLY_RECOVER,"False"]]),"en"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Ad={init:function(){this.setColour(jl),this.appendDummyInput().appendField(ht.Msg.MIXlY_RECV_FUN),this.appendDummyInput().appendField(ht.Msg.MIXLY_IR_WHETHER_RECV),this.setOutput(!0),this.setInputsInline(!0)}},Ld={init:function(){this.setColour(jl),this.appendValueInput("time").appendField(ht.Msg.MIXlY_RECV_FUN).appendField(ht.Msg.MIXLY_IR_TIMEOUT),this.appendDummyInput().appendField(ht.Msg.MIXLY_MILLISECOND),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Nd={init:function(){this.setColour(jl),this.appendValueInput("PIN").appendField(ht.Msg.MIXLY_SETUP+ht.Msg.MIXLY_IR_SEND).appendField(ht.Msg.MIXLY_PIN),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROPYTHON_SOCKET_TYPE).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_IR_SEND_samsung1,"False"],[ht.Msg.MIXLY_IR_SEND_samsung2,"True"],[ht.Msg.MIXLY_TR_SEND_RC,"RC5"]]),"type").appendField(ht.Msg.MIXLY_MICROBIT_JS_BLE_POWER),this.appendValueInput("power"),this.appendDummyInput().appendField(ht.Msg.MATH_QUYU_SYMBOL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Dd={init:function(){this.setColour(jl),this.appendDummyInput().appendField(ht.Msg.MIXLY_IR_SEND),this.appendValueInput("cmd").appendField(ht.Msg.MIXLY_IR_CMD_CODE),this.appendValueInput("addr").appendField(ht.Msg.MIXLY_IR_ADDR_CODE),this.appendValueInput("toggle").appendField(ht.Msg.MIXLY_CONTROL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_TRANSMIT_CONVEN_DATA)}},fd={init:function(){this.setColour(jl),this.appendDummyInput().appendField(ht.Msg.MIXLY_IR_SEND),this.appendValueInput("LIST").appendField(ht.Msg.MIXLY_IR_PULSE).setAlign(ht.inputs.Align.RIGHT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Pd={init:function(){this.setColour(jl),this.appendDummyInput().appendField(ht.Msg.MIXLY_IR_SEND),this.appendValueInput("raw").appendField(ht.Msg.MIXLY_IR_RAW_CODE).setAlign(ht.inputs.Align.RIGHT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Fd={init:function(){this.setColour(jl),this.appendDummyInput().appendField(ht.Msg.MIXLY_IR_TRANSMIT_DONE),this.setOutput(!0),this.setInputsInline(!0)}},vd={init:function(){this.setColour(jl),this.appendValueInput("VAR").appendField(ht.Msg.MSG.catBLE).setCheck("var"),this.appendDummyInput().appendField(ht.Msg.MSG.catEthernet_init+ht.Msg.MIXLY_MICROBIT_PY_STORAGE_AS+ht.Msg.MSG.catBLE_UART),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Yd={init:function(){this.setColour(jl),this.appendValueInput("VAR").appendField(ht.Msg.MSG.catBLE).setCheck("var"),this.appendDummyInput().appendField(ht.Msg.MSG.catEthernet_init+ht.Msg.MIXLY_MICROBIT_PY_STORAGE_AS+ht.Msg.MSG.catBLE_HID),this.appendValueInput("data").setCheck(String).appendField(ht.Msg.HTML_NAME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},xd={init:function(){this.setColour(jl),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(ht.Msg.MIXLY_ESP32_ONEWIRE_SCAN+ht.Msg.MSG.catBLE),this.setOutput(!0),this.setInputsInline(!0)}},Xd={init:function(){this.setColour(jl),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(ht.Msg.MIXLY_MIXGO_ESPNOW_MAC),this.setOutput(!0),this.setInputsInline(!0)}},bd={init:function(){this.setColour(jl),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(ht.Msg.MIXLY_TEXT_JOIN+ht.Msg.MSG.catBLE).appendField(new ht.FieldDropdown([[ht.Msg.HTML_NAME,"name"],[ht.Msg.MIXLY_ETHERNET_MAC_ADDRESS,"mac"]]),"mode"),this.appendValueInput("data").setCheck(String),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Vd={init:function(){this.setColour(jl),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(ht.Msg.MIXLY_ESP32_DISCONNECT_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},yd={init:function(){this.setColour(jl),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(ht.Msg.MSG.catBLE+ht.Msg.MIXLY_SEND_DATA),this.appendValueInput("data").appendField(ht.Msg.HTML_BODY),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Bd={init:function(){this.setColour(jl),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(ht.Msg.MSG.catBLE+ht.Msg.MIXLY_EMQX_IS_CONNECT),this.setOutput(!0),this.setInputsInline(!0)}},Gd={init:function(){this.setColour(jl),this.appendValueInput("VAR").setCheck("var"),this.appendValueInput("METHOD").appendField(ht.Msg.MIXLY_MIXGO_ESPNOW_RECV).appendField(ht.Msg.CONTROLS_REPEAT_INPUT_DO+ht.Msg.MIXLY_ESP32_ONENET_SUB),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Ud={init:function(){this.setColour(jl),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(ht.Msg.MIXLY_MIXGO_ESPNOW_RECV),this.setOutput(!0),this.setInputsInline(!0)}},wd={init:function(){this.setColour(jl),this.appendValueInput("VAR").setCheck("var").appendField(ht.Msg.MIXLY_BLE_HANDLE),this.appendValueInput("METHOD").appendField(ht.Msg.MIXLY_MIXGO_ESPNOW_RECV).appendField(ht.Msg.CONTROLS_REPEAT_INPUT_DO+ht.Msg.MIXLY_ESP32_ONENET_SUB),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},kd={init:function(){this.setColour(jl),this.appendValueInput("VAR").setCheck("var").appendField("ESPnow "+ht.Msg.MIXLY_SETUP),this.appendValueInput("CHNL").setCheck(Number).appendField(ht.Msg.MIXLY_MP_ESPNOW_CHANNEL),this.appendDummyInput("").appendField(ht.Msg.MIXLY_TX_POWER).appendField(new ht.FieldDropdown([["20","20"],["18","18"],["16","16"],["15","15"],["14","14"],["13","13"],["11","11"],["8","8"],["7","7"],["5","5"],["2","2"]]),"op"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Hd={init:function(){this.setColour(jl),this.appendValueInput("VAR").setCheck("var").appendField("ESPnow "+ht.Msg.MIXLY_SETUP),this.appendValueInput("CHNL").setCheck(Number).appendField(ht.Msg.MIXLY_MP_ESPNOW_CHANNEL),this.appendValueInput("DB").setCheck(Number).appendField(ht.Msg.MIXLY_MICROBIT_JS_BLE_POWER),this.appendDummyInput().appendField("db"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_MP_ESPNOW_INIT_TOOLTIP)}},Wd={init:function(){this.setColour(jl),this.appendValueInput("VAR").setCheck("var").appendField("ESPnow "),this.appendDummyInput().appendField(ht.Msg.MIXLY_MIXGO_ESPNOW_MAC),this.setOutput(!0),this.setInputsInline(!0)}},Kd={init:function(){this.setColour(jl),this.appendValueInput("VAR").setCheck("var").appendField("ESPnow "),this.appendDummyInput().appendField(ht.Msg.MIXLY_MIXGO_ESPNOW_INFO),this.setOutput(!0),this.setInputsInline(!0)}},Jd={init:function(){this.setColour(jl),this.appendValueInput("VAR").setCheck("var").appendField("ESPnow "),this.appendDummyInput().appendField(ht.Msg.MIXLY_MIXGO_ESPNOW_RECV),this.appendDummyInput().appendField(new ht.FieldDropdown([["("+ht.Msg.MIXLY_ETHERNET_MAC_ADDRESS+", "+ht.Msg.OLED_STRING+")",""],[ht.Msg.MIXLY_ETHERNET_MAC_ADDRESS,"[0]"],[ht.Msg.OLED_STRING,"[1]"]]),"mode"),this.setOutput(!0),this.setInputsInline(!0)}},Qd={init:function(){this.setColour(jl),this.appendValueInput("VAR").setCheck("var").appendField("ESPnow "),this.appendValueInput("mac").appendField(ht.Msg.MIXLY_MIXGO_ESPNOW_SEND_MAC),this.appendValueInput("content").appendField(ht.Msg.MIXLY_MIXGO_ESPNOW_SEND),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_MIXGO_ESPNOW_SEND_TOOLTIP)}},zd={init:function(){this.setColour(jl),this.appendValueInput("VAR").setCheck("var").appendField("ESPnow "),this.appendValueInput("METHOD").appendField(ht.Msg.MIXLY_EMQX_SET_METHOD),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},qd={init:function(){this.setColour(jl),this.appendDummyInput().appendField(ht.Msg.MIXLY_MP_ESPNOW_RADIO_INIT),this.appendValueInput("CHNL").setCheck(Number),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},jd={init:function(){this.setColour(jl),this.appendDummyInput().appendField(ht.Msg.MIXLY_SETTING+ht.Msg.MIXLY_MP_ESPNOW_RADIO+ht.Msg.MIXLY_TX_POWER).appendField(new ht.FieldDropdown([["20","20"],["18","18"],["16","16"],["15","15"],["14","14"],["13","13"],["11","11"],["8","8"],["7","7"],["5","5"],["2","2"]]),"op"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Zd={init:function(){this.setColour(jl),this.appendDummyInput().appendField(ht.Msg.MIXLY_MP_ESPNOW_RADIO_INIT),this.appendValueInput("CHNL").setCheck(Number),this.appendValueInput("DB").setCheck(Number).appendField(ht.Msg.MIXLY_MICROBIT_JS_BLE_POWER),this.appendDummyInput().appendField("db"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_MP_ESPNOW_RADIO_INIT_TOOLTIP)}},$d={init:function(){this.setColour(jl),this.appendDummyInput().appendField(ht.Msg.MIXLY_MP_ESPNOW_RADIO),this.appendDummyInput().appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_ON,"True"],[ht.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_OFF,"False"]]),"on_off"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},tI={init:function(){this.setColour(jl),this.appendDummyInput().appendField(ht.Msg.MIXLY_MP_ESPNOW_RADIO).appendField(ht.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.appendValueInput("send").setCheck(String),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_MIXGO_ESPNOW_SEND_TOOLTIP)}},eI={init:function(){this.setColour(jl),this.appendDummyInput().appendField(ht.Msg.MIXLY_MP_ESPNOW_RADIO).appendField(ht.Msg.MIXLY_MIXGO_ESPNOW_RECV),this.setOutput(!0),this.setInputsInline(!0)}},iI={init:function(){this.setColour(jl),this.appendDummyInput().appendField(ht.Msg.MIXLY_MP_ESPNOW_RADIO_RECEIVED_MSG),this.setOutput(!0),this.setInputsInline(!0)}},nI={init:function(){this.setColour(jl),this.appendDummyInput().appendField(ht.Msg.MIXLY_MP_ESPNOW_RADIO_MSG_RECEIVED),this.appendStatementInput("DO").appendField(ht.Msg.MIXLY_DO),this.setPreviousStatement(!1),this.setNextStatement(!1)}},sI={init:function(){this.setColour(jl),this.appendDummyInput().appendField(ht.Msg.MIXLY_MP_ESPNOW_RADIO_MSG_RECEIVED_CERTAIN).appendField('"').appendField(new ht.FieldTextInput("on"),"msg").appendField('"'),this.appendStatementInput("DO").appendField(ht.Msg.MIXLY_DO),this.setPreviousStatement(!1),this.setNextStatement(!1)}},oI={init:function(){this.setColour(jl),this.appendDummyInput().appendField(ht.Msg.MIXLY_MP_ESPNOW_RADIO_MSG_RECEIVED),this.appendStatementInput("DO").appendField(ht.Msg.MIXLY_DO),this.setPreviousStatement(!1),this.setNextStatement(!1)}},_I={init:function(){this.setColour(jl),this.appendDummyInput().appendField(ht.Msg.MIXLY_MP_ESPNOW_RADIO_MSG_RECEIVED_CERTAIN).appendField('"').appendField(new ht.FieldTextInput("on"),"msg").appendField('"'),this.appendStatementInput("DO").appendField(ht.Msg.MIXLY_DO),this.setPreviousStatement(!1),this.setNextStatement(!1)}},pI={init:function(){this.setColour(jl),this.appendValueInput("SUB").appendField("Lora"+ht.Msg.MIXLY_SETUP).setCheck("var"),this.appendValueInput("SPISUB").appendField(ht.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("frequency").appendField(ht.Msg.MIXLY_FREQUENCY),this.appendValueInput("rate").appendField(ht.Msg.MIXLY_CODE_RATE),this.appendValueInput("factor").appendField(ht.Msg.MIXLY_SPREADING_FACTOR),this.appendValueInput("power").appendField(ht.Msg.MIXLY_TX_POWER),this.appendDummyInput().appendField(ht.Msg.MIXLY_SIGNAL_BANDWIDTH).appendField(new ht.FieldDropdown([["7800","7800"],["10400","10400"],["15600","15600"],["20800","20800"],["31250","31250"],["41700","41700"],["62500","62500"],["125000","125000"],["250000","250000"],["500000","500000"]]),"bandwidth"),this.setFieldValue("125000","bandwidth"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(ht.Msg.MIXLY_LORA_INIT_TOOLTIP)}},aI={init:function(){this.setColour(jl),this.appendValueInput("VAR").setCheck("var").appendField("Lora "),this.appendDummyInput().appendField(ht.Msg.MIXLY_GET+ht.Msg.MIXLY_PACKAGE).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_SIGNAL_STRENGTH,"packet_rssi"],[ht.Msg.MIXLY_SIGNAL_NOISE_RATE,"packet_snr"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},uI={init:function(){this.setColour(jl),this.appendValueInput("VAR").setCheck("var").appendField("Lora "),this.appendDummyInput().appendField(ht.Msg.MIXLY_SEND_DATA),this.appendValueInput("data").setCheck(String).appendField(ht.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},rI={init:function(){this.setColour(jl),this.appendValueInput("VAR").setCheck("var").appendField("Lora "),this.appendDummyInput().appendField(ht.Msg.MIXLY_MIXGO_ESPNOW_RECV),this.setOutput(!0,String),this.setInputsInline(!0)}},lI={init:function(){this.setColour(jl),this.appendValueInput("DOMAIN").appendField(ht.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(ht.Msg.blockpy_REQUESTS_GET).appendField(new ht.FieldTextInput("response"),"VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ht.Msg.blockpy_REQUESTS_GET_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ht.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},dI={init:function(){this.appendValueInput("VAL");var t=[[ht.Msg.blockpy_REQUESTS_GET_ATTR_HEADER,"headers"],[ht.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE,"status_code"],[ht.Msg.blockpy_REQUESTS_GET_ATTR_TEXT,"text"],[ht.Msg.blockpy_REQUESTS_GET_ATTR_COOKIES,"cookies"],[ht.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT,"content"]];this.setColour(jl),this.appendDummyInput("").appendField(ht.Msg.MIXLY_MICROBIT_JS_GET).appendField(new ht.FieldDropdown(t),"ATTR"),this.setInputsInline(!0),this.setOutput(!0,String);var e=this;this.setTooltip((function(){var t=e.getFieldValue("DIR");return{clear:ht.Msg.MIXLY_TOOLTIP_TURTEL_CLEAR,reset:ht.Msg.MIXLY_TOOLTIP_TURTEL_RESET,home:ht.Msg.MIXLY_TOOLTIP_TURTEL_HOME}[t]}))}},II={init:function(){this.appendValueInput("VAR").appendField(ht.Msg.DISPLAY_IMAGE_LET2).setCheck(String);this.setColour(jl),this.appendDummyInput("").appendField(ht.Msg.blockpy_CONDUCT).appendField(new ht.FieldDropdown([["get","get"],["post","post"],["put","put"],["delete","delete"],["head","head"],["option","option"]]),"DIR"),this.appendDummyInput("").appendField(ht.Msg.blockpy_REQUESTS),this.setOutput(!0),this.setInputsInline(!0)}},TI=td,hI=ed,MI=id,mI=nd,OI=sd,EI=od,RI=_d,cI=pd,gI=ad,CI=ud,SI=rd,AI=ld,LI=dd,NI=Id,DI=Td,fI=120;({init:function(){this.setColour(fI),this.appendValueInput("BOOL").setCheck([Boolean,Number]).appendField(ht.Msg.LANG_CONTROLS_WHILEUNTIL_TITLE_REPEAT).appendField(new ht.FieldDropdown(this.OPERATORS),"MODE"),this.appendStatementInput("DO").appendField(ht.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return{WHILE:ht.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_WHILE,UNTIL:ht.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL}[e]}))}}).OPERATORS=[[ht.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"WHILE"],[ht.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"UNTIL"]];({init:function(){this.setColour(fI);var t=new ht.FieldDropdown(this.OPERATORS);this.appendDummyInput().appendField(t,"FLOW").appendField(ht.Msg.LANG_CONTROLS_FLOW_STATEMENTS_INPUT_OFLOOP),this.setPreviousStatement(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("FLOW");return{BREAK:ht.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK,CONTINUE:ht.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE}[t]}))},onchange:function(){if(this.workspace){var t=!1,e=this;do{if("controls_repeat"==e.type||"controls_for"==e.type||"controls_forEach"==e.type||"controls_repeat_ext"==e.type||"controls_whileUntil"==e.type){t=!0;break}e=e.getSurroundParent()}while(e);t?this.setWarningText(null):this.setWarningText(ht.Msg.LANG_CONTROLS_FLOW_STATEMENTS_WARNING)}}}).OPERATORS=[[ht.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK,"BREAK"],[ht.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE,"CONTINUE"]];const PI="5BA5A5",FI={init:function(){this.setColour(PI),this.appendValueInput("I2CSUB").appendField(ht.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(ht.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(ht.Msg.MIXLY_SETUP+ht.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new ht.FieldDropdown([["32x12 Matrix","32x12 Matrix"],["16x8 Matrix","16x8 Matrix"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},vI={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(PI),this.appendValueInput("data").setCheck([String,"esp32_image","List","Tuple"]).appendField(ht.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.OLED_BITMAP_OR_STRING)}},YI={init:function(){this.setColour(PI),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("data").setCheck(String).appendField(ht.Msg.OLED_DRAWSTR),this.appendValueInput("space").setCheck(Number).appendField(ht.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendDummyInput("").appendField(ht.Msg.TEXT_CENTER).appendField(new ht.FieldDropdown([[ht.Msg.MICROPYTHON_DISPLAY_YES,"True"],[ht.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"center"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY)}},xI={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(PI),this.appendValueInput("data").setCheck(String).appendField(ht.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},XI={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(PI),this.appendValueInput("data").setCheck(String).appendField(ht.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.appendValueInput("space").setCheck(Number).appendField(ht.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendValueInput("time").setCheck(Number).appendField(ht.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_SCROLL_IMAGE_OR_STRING_DELAY)}},bI={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(PI),this.appendValueInput("data").setCheck(String).appendField(ht.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},VI={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(PI),this.appendValueInput("data").setCheck(String).appendField(ht.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.appendValueInput("time").setCheck(Number).appendField(ht.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},yI={init:function(){var t=[[ht.Msg.MIXLY_UP,"shift_up"],[ht.Msg.MIXLY_DOWN,"shift_down"],[ht.Msg.MIXLY_LEFT,"shift_left"],[ht.Msg.MIXLY_RIGHT,"shift_right"]];this.appendValueInput("SUB").setCheck("var"),this.setColour(PI),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.appendDummyInput("").appendField(ht.Msg.DISPLAY_IMAGE_LET),this.appendDummyInput("").appendField(ht.Msg.DISPLAY_IMAGE_LET2).appendField(new ht.FieldDropdown(t),"OP"),this.appendValueInput("val").appendField(ht.Msg.DISPLAY_IMAGE_SHIFT).setCheck(Number),this.appendDummyInput("").appendField(ht.Msg.DISPLAY_IMAGE_UNIT);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP"),i=ht.Msg.DISPLAY_IMAGE_LET,n=ht.Msg.DISPLAY_IMAGE_LET2,s=ht.Msg.DISPLAY_IMAGE_LET3;return i+n+{up:ht.Msg.MIXLY_UP,down:ht.Msg.MIXLY_DOWN,left:ht.Msg.MIXLY_LEFT,right:ht.Msg.MIXLY_RIGHT}[t]+s}))}},BI={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(PI),this.appendValueInput("x").setCheck(Number).appendField(ht.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(ht.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendDummyInput().appendField(ht.Msg.MIXLY_ESP32_JS_MONITOR_GET_POINT),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(ht.Msg.MIXLY_ESP32_JS_MONITOR_BRIGHTNESS)}},GI={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(PI),this.appendValueInput("x").setCheck(Number).appendField(ht.Msg.MIXLY_ESP32_JS_MONITOR_SET_BRIGHTNESS).appendField(ht.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(ht.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendValueInput("STAT").setCheck([Number,Boolean]),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL)}},UI={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(PI),this.appendDummyInput().appendField(ht.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(ht.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS)}},wI={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(PI),this.appendValueInput("x").setCheck(Number).appendField(ht.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS+" 0.0-1.0")}},kI={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(PI),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_Clear_display),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_MICROBIT_Clear_display)}},HI={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(PI),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_Built_in_image1).appendField(new ht.FieldDropdown([["HEART","HEART"],["HEART_SMALL","HEART_SMALL"],["HAPPY","HAPPY"],["SAD","SAD"],["SMILE","SMILE"],["SILLY","SILLY"],["FABULOUS","FABULOUS"],["SURPRISED","SURPRISED"],["ASLEEP","ASLEEP"],["ANGRY","ANGRY"],["CONFUSED","CONFUSED"],["NO","NO"],["YES","YES"]]),"image"),this.setOutput(!0,"esp32_image"),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_MICROBIT_Clear_display)}},WI={init:function(){var t=[[ht.Msg.MICROBIT_DISPLAY_UNION,"add"],[ht.Msg.MICROBIT_DISPLAY_MINUS,"sub"]];this.appendValueInput("SUB").setCheck("var"),this.setColour(PI),this.setOutput(!0,"esp32_image"),this.appendValueInput("A").appendField(ht.Msg.MICROBIT_DISPLAY_MERGE_SHAPE),this.appendValueInput("B").appendField(new ht.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{"+":ht.Msg.MIXLY_MICROBIT_image_add,"-":ht.Msg.MIXLY_MICROBIT_image_reduce}[t]}))}},KI={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(PI),this.appendValueInput("A").setCheck("esp32_image").appendField(ht.Msg.MIXLY_MICROBIT_Invert_image1),this.setInputsInline(!0),this.setOutput(!0,"esp32_image")}},JI={init:function(){this.setColour(PI),this.appendValueInput("I2CSUB").appendField(ht.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(ht.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendValueInput("row").appendField(ht.Msg.MIXLY_SETUP+ht.Msg.LISTS_SET_INDEX_INPUT_TO+"OLED").setCheck(Number),this.appendValueInput("column").appendField("X").setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip()}},QI={init:function(){this.appendValueInput("VAR").appendField(ht.Msg.OLED).setCheck("var"),this.appendValueInput("Text_line1","String").setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.OLEDDISPLAY+ht.Msg.line1),this.appendValueInput("Text_line2","String").setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.line2),this.appendValueInput("Text_line3","String").setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.line3),this.appendValueInput("Text_line4","String").setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.line4),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(PI),this.setTooltip(ht.Msg.MIXLY_DF_LCD+ht.Msg.OLEDDISPLAY+ht.Msg.MIXLY_MICROBIT_TYPE_STRING)}},zI={init:function(){var t=[[ht.Msg.MIXLY_HEIGHT,"height"],[ht.Msg.MIXLY_WIDTH,"width"]];this.setColour(PI),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+ht.Msg.MIXLY_MICROBIT_IMAGE),this.appendValueInput("VAR").setCheck("esp32_image"),this.appendDummyInput("").appendField(new ht.FieldDropdown(t),"OP"),this.setInputsInline(!0),this.setOutput(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return ht.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+ht.Msg.MIXLY_MICROBIT_IMAGE+{height:ht.Msg.MIXLY_HEIGHT,width:ht.Msg.MIXLY_WIDTH}[t]}))}},qI={init:function(){var t=[[ht.Msg.MIXLY_4DIGITDISPLAY_ON,"1"],[ht.Msg.MIXLY_4DIGITDISPLAY_OFF,"0"]];this.setColour(PI),this.appendValueInput("VAR").appendField(ht.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(ht.Msg.MIXLY_RECT).appendField(new ht.FieldDropdown(t),"OP"),this.jsonInit({message0:ht.Msg.MIXLY_MICROBIT_SHOW_RECT,args0:[{check:Number,type:"input_value",name:"x"},{check:Number,type:"input_value",name:"y"},{check:Number,type:"input_value",name:"width"},{check:Number,type:"input_value",name:"height"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"fill"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(ht.Msg.MIXLY_OLED_RECT)}},jI={init:function(){this.setColour(PI),this.appendValueInput("VAR").appendField(ht.Msg.OLED).setCheck("var"),this.appendDummyInput().appendField(ht.Msg.MIXLY_DISPLAY_DRAW).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_DISPLAY_RLINE,"hline"],[ht.Msg.MIXLY_DISPLAY_VLINE,"vline"]]),"direction"),this.jsonInit({message0:ht.Msg.MIXLY_MICROBIT_SHOW_LINE,args0:[{check:Number,type:"input_value",name:"x"},{check:Number,type:"input_value",name:"y"},{check:Number,type:"input_value",name:"length"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(ht.Msg.MIXLY_OLED_LINE)}},ZI={init:function(){this.setColour(PI),this.appendValueInput("VAR").appendField(ht.Msg.OLED).setCheck("var"),this.jsonInit({message0:ht.Msg.MIXLY_MICROBIT_SHOW_LINE_ARBITRARILY,args0:[{check:Number,type:"input_value",name:"x1"},{check:Number,type:"input_value",name:"y1"},{check:Number,type:"input_value",name:"x2"},{check:Number,type:"input_value",name:"y2"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(ht.Msg.MIXLY_OLED_LINE_ARBIT)}},$I={init:function(){this.setColour(PI),this.appendDummyInput().appendField(ht.Msg.MIXLY_ESP32_MONITOR_GET_SCREEN_IMAGE),this.setInputsInline(!0),this.setOutput(!0,"esp32_image"),this.setTooltip(ht.Msg.MIXLY_ESP32_MONITOR_GET_SCREEN_IMAGE_TOOLTIP)}},tT={init:function(){this.setColour(PI),this.appendValueInput("x").setCheck(Number).appendField(ht.Msg.MIXLY_ESP32_JS_MONITOR_SET_BLINK_RATE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_JS_MONITOR_SET_BLINK_RATE)}},eT={init:function(){this.setColour(PI),this.appendDummyInput("").appendField(ht.Msg.MIXLY_RGB),this.appendValueInput("_LED_").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_RGB_NUM),this.appendDummyInput("").appendField(ht.Msg.LISTS_SET_INDEX_SET+ht.Msg.MIXLY_MICROBIT_PY_STORAGE_AS).appendField(new ht.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),"FIELDNAME"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(ht.Msg.MIXLY_RGB_NUM_R_G_B)}},iT={init:function(){this.setColour(PI),this.appendDummyInput("").appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_ESP32_ON,"ON"],[ht.Msg.MIXLY_ESP32_OFF,"OFF"]]),"ONOFF"),this.setOutput(!0,Boolean),this.setTooltip(ht.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW)}},nT={init:function(){this.setColour(PI),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_LCD_STAT_CLEAR,"0"],[ht.Msg.MIXLY_HANDBIT_DISLPAY_OLED_FILL,"1"]]),"key"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i={0:ht.Msg.MIXLY_LCD_STAT_CLEAR,1:ht.Msg.MIXLY_HANDBIT_DISLPAY_OLED_FILL};return ht.Msg.MIXLY_DF_LCD+i[e]}))}},sT={init:function(){this.setColour(PI),this.setOutput(!0,"Tuple"),this.appendDummyInput().appendField(ht.Msg.MIXLY_ESP32_DISPLAY_ANIMATE).appendField(new ht.FieldDropdown([["ALL_CLOCKS","ALL_CLOCKS"],["ALL_ARROWS","ALL_ARROWS"]]),"ANIMATION")}},oT={init:function(){var t=[[ht.Msg.MIXLY_4DIGITDISPLAY_ON,"1"],[ht.Msg.MIXLY_4DIGITDISPLAY_OFF,"0"]];this.setColour(PI),this.appendValueInput("VAR").appendField(ht.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(ht.Msg.MIXLY_MIXPY_TURTLE_DRAW_CIRCLE).appendField(new ht.FieldDropdown(t),"OP"),this.jsonInit({message0:ht.Msg.MIXLY_HANBIT_SHOW_CIRCLE,args0:[{check:Number,type:"input_value",name:"x"},{check:Number,type:"input_value",name:"y"},{check:Number,type:"input_value",name:"r"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"fill"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(ht.Msg.MIXLY_MIXPY_TURTLE_DRAW_CIRCLE)}},_T={init:function(){var t=[[ht.Msg.MIXLY_4DIGITDISPLAY_ON,"1"],[ht.Msg.MIXLY_4DIGITDISPLAY_OFF,"0"]];this.setColour(PI),this.appendValueInput("VAR").appendField(ht.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(ht.Msg.MIXLY_DISPLAY_DRAW+ht.Msg.MIXLY_HANBIT_DRAW_TRIANGLE).appendField(new ht.FieldDropdown(t),"OP"),this.jsonInit({message0:ht.Msg.MIXLY_HANBIT_SHOW_triangle,args0:[{check:Number,type:"input_value",name:"x0"},{check:Number,type:"input_value",name:"y0"},{check:Number,type:"input_value",name:"x1"},{check:Number,type:"input_value",name:"y1"},{check:Number,type:"input_value",name:"x2"},{check:Number,type:"input_value",name:"y2"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"fill"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(ht.Msg.MIXLY_DISPLAY_DRAW+ht.Msg.MIXLY_HANBIT_DRAW_TRIANGLE)}},pT={init:function(){this.setColour("#555555"),this.appendDummyInput("").appendField(ht.Msg.MIXGO_ONBOARDDISPLAY_HELP),this.setInputsInline(!0),this.setTooltip("")}},aT={init:function(){this.setColour(PI),this.appendValueInput("VAR").appendField(ht.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(ht.Msg.OLED_BITMAP),this.appendValueInput("START_X",Number).appendField(ht.Msg.OLED_START_X).setCheck(Number),this.appendValueInput("START_Y",Number).appendField(ht.Msg.OLED_START_Y).setCheck(Number),this.appendValueInput("bitmap_name",String).appendField(ht.Msg.OLED_BITMAP_NAME),this.appendValueInput("WIDTH",Number).appendField(ht.Msg.MIXLY_WIDTH).setCheck(Number),this.appendValueInput("HEIGHT",Number).appendField(ht.Msg.MIXLY_HEIGHT).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ht.Msg.OLED_SHOW_BMP_TOOLTIP)}},uT={init:function(){this.setColour(PI),this.appendValueInput("VAR").appendField(ht.Msg.OLED),this.appendDummyInput("").appendField(ht.Msg.OLED_DRAWPIXEL),this.appendValueInput("POS_X").appendField(ht.Msg.OLED_POSX),this.appendValueInput("POS_Y").appendField(ht.Msg.OLED_POSY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ht.Msg.OLED_DRAW_PIXE_TOOLTIP)}},rT={init:function(){this.setColour(PI),this.appendValueInput("I2CSUB").appendField(ht.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(ht.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(ht.Msg.MIXLY_SETUP+ht.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new ht.FieldDropdown([["TM1650","TM1650"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return ht.Msg.MIXLY_ESP32_SENSOR_USE_I2C_TOOLTIP+{TM1650:"TM1650"}[e]}))}},lT={init:function(){this.setColour(PI),this.appendDummyInput().appendField(ht.Msg.MIXLY_4DIGITDISPLAY).appendField(new ht.FieldDropdown([["TM1650","tm1650"]]),"TYPE"),this.appendValueInput("VAR"),this.appendDummyInput().appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_ON,"on"],[ht.Msg.MIXLY_OFF,"off"],[ht.Msg.MIXLY_LCD_STAT_CLEAR,"clear"]]),"STAT"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(ht.Msg.MIXLY_TOOLTIP_4digitdisplay_power)}},dT={init:function(){this.setColour(PI),this.appendDummyInput().appendField(ht.Msg.MIXLY_4DIGITDISPLAY).appendField(new ht.FieldDropdown([["TM1650","tm1650"]]),"TYPE"),this.appendValueInput("VAR"),this.appendValueInput("VALUE").setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_MICROBIT_JS_MONITOR_SHOW_NUMBER),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},IT={init:function(){this.setColour(PI),this.appendDummyInput().appendField(ht.Msg.MIXLY_4DIGITDISPLAY).appendField(new ht.FieldDropdown([["TM1650","tm1650"]]),"TYPE"),this.appendValueInput("VAR"),this.appendValueInput("NO").appendField(ht.Msg.MIXLY_4DIGITDISPLAY_NOMBER1),this.appendValueInput("STAT").appendField(ht.Msg.MIXLY_4DIGITDISPLAY_NOMBER2+ht.Msg.MIXLY_4DIGITDISPLAY_DOT),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(ht.Msg.MIXLY_TOOLTIP_4digitdisplay_showDot)}},TT={init:function(){this.setColour(PI),this.appendDummyInput().appendField(ht.Msg.MIXLY_4DIGITDISPLAY).appendField(new ht.FieldDropdown([["TM1650","tm1650"]]),"TYPE"),this.appendValueInput("VAR"),this.appendValueInput("VALUE").setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_MICROBIT_JS_MONITOR_SET_BRIGHTNESS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(ht.Msg.MIXLY_4DIGITDISPLAY_4DIGITDISPLAY_BRIGHTNESS_TOOLTIP)}},hT={init:function(){this.setColour(PI),this.appendValueInput("SPISUB").appendField(ht.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINDC").appendField("DC"),this.appendValueInput("PINCS").appendField("CS"),this.appendValueInput("SUB").appendField(ht.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(ht.Msg.MIXLY_SETUP+ht.Msg.LISTS_SET_INDEX_INPUT_TO+ht.Msg.MSG.catTFT),this.appendValueInput("WIDTH").appendField(ht.Msg.MIXLY_WIDTH).setCheck(Number),this.appendValueInput("HEIGHT").appendField(ht.Msg.MIXLY_HEIGHT).setCheck(Number),this.appendDummyInput("").appendField(ht.Msg.blockpy_turtle_rotate).appendField(new ht.FieldDropdown([[ht.Msg.MICROPYTHON_DISPLAY_NO,"0"],[ht.Msg.ANTI_CLOCKWISE+"90°","1"],[ht.Msg.ANTI_CLOCKWISE+"180°","2"],[ht.Msg.ANTI_CLOCKWISE+"270°","3"]]),"rotate"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},MT={init:function(){this.setColour(PI),this.appendValueInput("SUB").appendField(ht.Msg.MSG.catTFT),this.appendValueInput("data").appendField(ht.Msg.OLED_BITMAP),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(ht.Msg.MIXLY_MICROBIT_JS_NUMBER),this.appendValueInput("VAR").appendField(ht.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.OLED_BITMAP_OR_STRING)}},mT={init:function(){this.setColour(PI);let t=new ht.FieldColour("#f00",null,{colourOptions:["#f00","#000"],columns:2});this.appendDummyInput("").setAlign(ht.inputs.Align.RIGHT).appendField(t,"COLOR"),this.setInputsInline(!0),this.setOutput(!0,String)}},OT={init:function(){this.setColour(PI),this.appendValueInput("SUB").appendField(ht.Msg.MSG.catTFT),this.appendValueInput("data").setCheck(String).appendField(ht.Msg.OLED_DRAWSTR),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(ht.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(ht.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendDummyInput("").appendField(ht.Msg.TEXT_CENTER).appendField(new ht.FieldDropdown([[ht.Msg.MICROPYTHON_DISPLAY_YES,"True"],[ht.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"center"),this.appendValueInput("VAR").appendField(ht.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY)}},ET={init:function(){this.setColour(PI),this.appendValueInput("SUB").appendField(ht.Msg.MSG.catTFT),this.appendValueInput("data").setCheck(String).appendField(ht.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(ht.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(ht.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendValueInput("time").setCheck(Number).appendField(ht.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.appendValueInput("VAR").appendField(ht.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_SCROLL_IMAGE_OR_STRING_DELAY)}},RT={init:function(){this.setColour(PI),this.appendValueInput("SUB").appendField(ht.Msg.MSG.catTFT),this.appendValueInput("data").setCheck(String).appendField(ht.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.appendValueInput("size").setCheck(Number).appendField(ht.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("time").setCheck(Number).appendField(ht.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.appendValueInput("VAR").appendField(ht.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},cT={init:function(){this.setColour(PI),this.appendValueInput("SUB").setCheck("var").appendField(ht.Msg.MSG.catTFT),this.appendDummyInput().appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_LCD_STAT_CLEAR,"BLACK"],[ht.Msg.MIXLY_HANDBIT_DISLPAY_OLED_FILL,"WHITE"]]),"key"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i={0:ht.Msg.MIXLY_LCD_STAT_CLEAR,1:ht.Msg.MIXLY_HANDBIT_DISLPAY_OLED_FILL};return ht.Msg.MIXLY_DF_LCD+i[e]}))}},gT={init:function(){this.setColour(PI),this.appendValueInput("SUB").appendField(ht.Msg.MSG.catTFT).setCheck("var"),this.jsonInit({message0:ht.Msg.MIXLY_MICROBIT_SHOW_LINE_ARBITRARILY,args0:[{check:Number,type:"input_value",name:"x1"},{check:Number,type:"input_value",name:"y1"},{check:Number,type:"input_value",name:"x2"},{check:Number,type:"input_value",name:"y2"}]}),this.appendValueInput("VAR").appendField(ht.Msg.HTML_COLOUR),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(ht.Msg.MIXLY_OLED_LINE_ARBIT)}},CT={init:function(){this.setColour(PI),this.appendValueInput("I2CSUB").appendField(ht.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(ht.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(ht.Msg.MIXLY_SETUP+ht.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new ht.FieldDropdown([["LCD1602","16"],["LCD2004","20"]]),"key"),this.appendValueInput("ADDR").setCheck(Number).appendField(ht.Msg.MQTT_SERVER_ADD),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return ht.Msg.MIXLY_SETUP+{16:"LCD1602",20:"LCD2004"}[e]}))}},ST={init:function(){this.setColour(PI),this.appendValueInput("SUB").appendField(ht.Msg.MSG.catLCD),this.appendValueInput("data").setCheck(String).appendField(ht.Msg.OLED_DRAWSTR),this.appendValueInput("x").setCheck(Number).appendField(ht.Msg.array2_cols),this.appendValueInput("y").setCheck(Number).appendField(ht.Msg.array2_rows),this.appendDummyInput("").appendField(ht.Msg.TEXT_CENTER).appendField(new ht.FieldDropdown([[ht.Msg.MICROPYTHON_DISPLAY_YES,"True"],[ht.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"center"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY)}},AT={init:function(){this.setColour(PI),this.appendValueInput("SUB").appendField(ht.Msg.MSG.catLCD),this.appendValueInput("data").setCheck(String).appendField(ht.Msg.MIXLY_SERIAL_PRINT+ht.Msg.OLED_DRAWSTR),this.appendValueInput("x").setCheck(Number).appendField(ht.Msg.array2_cols),this.appendValueInput("y").setCheck(Number).appendField(ht.Msg.array2_rows),this.appendValueInput("time").setCheck(Number).appendField(ht.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},LT={init:function(){this.setColour(PI),this.appendValueInput("SUB").setCheck("var").appendField(ht.Msg.MSG.catLCD),this.appendDummyInput().appendField(ht.Msg.TFT_Brightness).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_MICROBIT_Turn_on_display,"1"],[ht.Msg.MIXLY_MICROBIT_Turn_off_display,"0"]]),"key"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i={1:ht.Msg.MIXLY_MICROBIT_Turn_on_display,0:ht.Msg.MIXLY_MICROBIT_Turn_off_display};return ht.Msg.MSG.catLCD+ht.Msg.TFT_Brightness+i[e]}))}},NT={init:function(){this.appendValueInput("SUB").setCheck("var").appendField(ht.Msg.MSG.catLCD),this.setColour(PI),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_Clear_display),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_MICROBIT_Clear_display)}},DT={init:function(){this.setColour(PI),this.appendValueInput("I2CSUB").appendField(ht.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(ht.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(ht.Msg.MIXLY_SETUP+ht.Msg.LISTS_SET_INDEX_INPUT_TO+"oled128x64"),this.appendValueInput("ADDR").setCheck(Number).appendField(ht.Msg.MQTT_SERVER_ADD),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return ht.Msg.MIXLY_SETUP+{16:"LCD1602",20:"LCD2004"}[e]}))}},fT={init:function(){this.setColour(PI),this.appendValueInput("SUB").setCheck("var").appendField(ht.Msg.MSG.catOLED),this.appendValueInput("data").appendField(ht.Msg.OLED_BITMAP),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.OLED_BITMAP_OR_STRING)}},PT={init:function(){this.setColour(PI),this.appendValueInput("SUB").setCheck("var").appendField(ht.Msg.MSG.catOLED),this.appendValueInput("data").appendField(ht.Msg.OLED_BITMAP),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(ht.Msg.MIXLY_MICROBIT_JS_NUMBER),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.OLED_BITMAP_OR_STRING)}},FT={init:function(){this.setColour(PI),this.appendValueInput("SUB").setCheck("var").appendField(ht.Msg.MSG.catOLED),this.appendValueInput("data").setCheck([String,"esp32_image","List","Tuple"]).appendField(ht.Msg.OLED_DRAWSTR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.OLED_BITMAP_OR_STRING)}},vT={init:function(){this.setColour(PI),this.appendValueInput("SUB").setCheck("var").appendField(ht.Msg.MSG.catOLED),this.appendValueInput("data").setCheck(String).appendField(ht.Msg.OLED_DRAWSTR),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(ht.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(ht.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendDummyInput("").appendField(ht.Msg.TEXT_CENTER).appendField(new ht.FieldDropdown([[ht.Msg.MICROPYTHON_DISPLAY_YES,"True"],[ht.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"center"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY)}},YT={init:function(){this.setColour(PI),this.appendValueInput("SUB").setCheck("var").appendField(ht.Msg.MSG.catOLED),this.appendValueInput("data").setCheck(String).appendField(ht.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},xT={init:function(){this.setColour(PI),this.appendValueInput("SUB").setCheck("var").appendField(ht.Msg.MSG.catOLED),this.appendValueInput("data").setCheck(String).appendField(ht.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(ht.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(ht.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendValueInput("time").setCheck(Number).appendField(ht.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_SCROLL_IMAGE_OR_STRING_DELAY)}},XT={init:function(){this.setColour(PI),this.appendValueInput("SUB").setCheck("var").appendField(ht.Msg.MSG.catOLED),this.appendValueInput("data").setCheck(String).appendField(ht.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},bT={init:function(){this.setColour(PI),this.appendValueInput("SUB").setCheck("var").appendField(ht.Msg.MSG.catOLED),this.appendValueInput("data").setCheck(String).appendField(ht.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.appendValueInput("size").setCheck(Number).appendField(ht.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("time").setCheck(Number).appendField(ht.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},VT={init:function(){var t=[[ht.Msg.MIXLY_UP,"shift_up"],[ht.Msg.MIXLY_DOWN,"shift_down"],[ht.Msg.MIXLY_LEFT,"shift_left"],[ht.Msg.MIXLY_RIGHT,"shift_right"]];this.setColour(PI),this.appendValueInput("SUB").setCheck("var").appendField(ht.Msg.MSG.catOLED),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.appendDummyInput("").appendField(ht.Msg.DISPLAY_IMAGE_LET),this.appendDummyInput("").appendField(ht.Msg.DISPLAY_IMAGE_LET2).appendField(new ht.FieldDropdown(t),"OP"),this.appendValueInput("val").appendField(ht.Msg.DISPLAY_IMAGE_SHIFT).setCheck(Number),this.appendDummyInput("").appendField(ht.Msg.DISPLAY_IMAGE_UNIT);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP"),i=ht.Msg.DISPLAY_IMAGE_LET,n=ht.Msg.DISPLAY_IMAGE_LET2,s=ht.Msg.DISPLAY_IMAGE_LET3;return i+n+{up:ht.Msg.MIXLY_UP,down:ht.Msg.MIXLY_DOWN,left:ht.Msg.MIXLY_LEFT,right:ht.Msg.MIXLY_RIGHT}[t]+s}))}},yT={init:function(){this.setColour(PI),this.appendValueInput("SUB").setCheck("var").appendField(ht.Msg.MSG.catOLED),this.appendValueInput("x").setCheck(Number).appendField(ht.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(ht.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendDummyInput().appendField(ht.Msg.MIXLY_ESP32_JS_MONITOR_GET_POINT),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(ht.Msg.MIXLY_ESP32_JS_MONITOR_BRIGHTNESS)}},BT={init:function(){this.setColour(PI),this.appendValueInput("SUB").setCheck("var").appendField(ht.Msg.MSG.catOLED),this.appendValueInput("x").setCheck(Number).appendField(ht.Msg.MIXLY_ESP32_JS_MONITOR_SET_BRIGHTNESS).appendField(ht.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(ht.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendValueInput("STAT").setCheck([Number,Boolean]),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL)}},GT={init:function(){this.setColour(PI),this.appendValueInput("SUB").setCheck("var").appendField(ht.Msg.MSG.catOLED),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_Clear_display),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_MICROBIT_Clear_display)}},UT={init:function(){this.jsonInit({colour:PI,args0:[{name:"SUB",type:"input_value"},{name:"state",options:[[ht.Msg.MPYTHON_DISPLAY_MODE_1,"1"],[ht.Msg.MPYTHON_DISPLAY_MODE_0,"0"]],type:"field_dropdown"},{name:"shape",options:[[ht.Msg.MPYTHON_DISPLAY_HOLLOW,"rect"],[ht.Msg.MPYTHON_DISPLAY_SOLID,"fill_rect"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"w",type:"input_value"},{name:"h",type:"input_value"}],inputsInline:!0,helpUrl:ht.Msg.mpython_HELPURL,tooltip:ht.Msg.MPYTHON_DISPLAY_SHAPE_RECT_TOOLTIP,message0:ht.Msg.MPYTHON_DISPLAY_SHAPE_RECT_MESSAGE1,nextStatement:null,previousStatement:null})}},wT={init:function(){this.jsonInit({colour:PI,args0:[{name:"SUB",type:"input_value"},{name:"state",options:[[ht.Msg.MPYTHON_DISPLAY_MODE_1,"1"],[ht.Msg.MPYTHON_DISPLAY_MODE_0,"0"]],type:"field_dropdown"},{name:"dir_h_v",options:[[ht.Msg.mpython_vertical,"0"],[ht.Msg.mpython_horizontal,"1"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"length",type:"input_value"}],inputsInline:!0,helpUrl:ht.Msg.mpython_HELPURL,tooltip:ht.Msg.MPYTHON_DISPLAY_HVLINE_TOOLTIP,message0:ht.Msg.MPYTHON_DISPLAY_HVLINE_MESSAGE1,nextStatement:null,previousStatement:null})}},kT={init:function(){this.jsonInit({colour:PI,args0:[{name:"SUB",type:"input_value"},{name:"state",options:[[ht.Msg.mpython_display_hline_1,"1"],[ht.Msg.mpython_display_hline_0,"0"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x1",type:"input_value"},{name:"y1",type:"input_value"},{name:"x2",type:"input_value"},{name:"y2",type:"input_value"}],inputsInline:!0,helpUrl:ht.Msg.mpython_HELPURL,tooltip:ht.Msg.mpython_display_line_TOOLTIP,message0:ht.Msg.mpython_display_line_MESSAGE1,nextStatement:null,previousStatement:null})}},HT="#569A98",WT={init:function(){this.setColour(HT),this.appendValueInput("data").setCheck([String,"esp32_image","List","Tuple"]).appendField(ht.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),"micropython:esp32:mixbot"==Mt.Boards.getSelectedBoardKey()&&this.setTooltip(ht.Msg.MIXLY_MIXBOT_SHOW_SCROLL_STRING_TOOLTIP)}},KT={init:function(){this.setColour(HT),this.appendValueInput("data").setCheck(String).appendField(ht.Msg.OLED_DRAWSTR),this.appendValueInput("space").setCheck(Number).appendField(ht.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendDummyInput("").appendField(ht.Msg.TEXT_CENTER).appendField(new ht.FieldDropdown([[ht.Msg.MICROPYTHON_DISPLAY_YES,"True"],[ht.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"center"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},JT={init:function(){this.setColour(HT),this.appendValueInput("data").setCheck(String).appendField(ht.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},QT={init:function(){this.setColour(HT),this.appendValueInput("data").setCheck(String).appendField(ht.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.appendValueInput("space").setCheck(Number).appendField(ht.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendValueInput("time").setCheck(Number).appendField(ht.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},zT={init:function(){this.setColour(HT),this.appendValueInput("data").setCheck(String).appendField(ht.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},qT={init:function(){this.setColour(HT),this.appendValueInput("data").setCheck(String).appendField(ht.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.appendValueInput("time").setCheck(Number).appendField(ht.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},jT={init:function(){this.appendDummyInput("").appendField(ht.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<12;t++){let e=this.appendDummyInput();for(let i=0;i<32;i++)e.appendField(new ht.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.setOutput(!0),this.setColour(HT),this.setTooltip(ht.Msg.MIXLY_MICROBIT_Create_image1)}},ZT={init:function(){this.jsonInit({colour:HT,args0:[{name:"image",options:[["HEART","HEART"],["HEART_SMALL","HEART_SMALL"],["HAPPY","HAPPY"],["SAD","SAD"],["SMILE","SMILE"],["SILLY","SILLY"],["FABULOUS","FABULOUS"],["SURPRISED","SURPRISED"],["ASLEEP","ASLEEP"],["ANGRY","ANGRY"],["CONFUSED","CONFUSED"],["NO","NO"],["YES","YES"]],type:"field_dropdown"}],output:["esp32_image","List"],helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/image.html#attributes",tooltip:ht.Msg.MIXLY_MICROBIT_Built_in_image1,message0:ht.Msg.MIXLY_MICROBIT_Built_in_image})}},$T={init:function(){this.jsonInit({colour:HT,args0:[{name:"image",options:[["HEART","HEART"],["HEART_SMALL","HEART_SMALL"],["HAPPY","HAPPY"],["SAD","SAD"],["SMILE","SMILE"],["SILLY","SILLY"],["FABULOUS","FABULOUS"],["SURPRISED","SURPRISED"],["ASLEEP","ASLEEP"],["ANGRY","ANGRY"],["CONFUSED","CONFUSED"],["NO","NO"],["YES","YES"],["LEFT_ARROW","LEFT_ARROW"],["RIGHT_ARROW","RIGHT_ARROW"],["DRESS","DRESS"],["TRANSFORMERS","TRANSFORMERS"],["SCISSORS","SCISSORS"],["EXIT","EXIT"],["TREE","TREE"],["PACMAN","PACMAN"],["TARGET","TARGET"],["TSHIRT","TSHIRT"],["ROLLERSKATE","ROLLERSKATE"],["DUCK","DUCK"],["HOUSE","HOUSE"],["TORTOISE","TORTOISE"],["BUTTERFLY","BUTTERFLY"],["STICKFIGURE","STICKFIGURE"],["GHOST","GHOST"],["PITCHFORK","PITCHFORK"],["MUSIC_QUAVERS","MUSIC_QUAVERS"],["MUSIC_QUAVER","MUSIC_QUAVER"],["MUSIC_CROTCHET","MUSIC_CROTCHET"],["COW","COW"],["RABBIT","RABBIT"],["SQUARE_SMALL","SQUARE_SMALL"],["SQUARE","SQUARE"],["DIAMOND_SMALL","DIAMOND_SMALL"],["DIAMOND","DIAMOND"],["CHESSBOARD","CHESSBOARD"],["TRIANGLE_LEFT","TRIANGLE_LEFT"],["TRIANGLE","TRIANGLE"],["SNAKE","SNAKE"],["UMBRELLA","UMBRELLA"],["SKULL","SKULL"],["GIRAFFE","GIRAFFE"],["SWORD","SWORD"]],type:"field_dropdown"}],output:["esp32_image","List"],helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/image.html#attributes",tooltip:ht.Msg.MIXLY_MICROBIT_Built_in_image1,message0:ht.Msg.MIXLY_MICROBIT_Built_in_image})}},th={init:function(){var t=[[ht.Msg.MICROBIT_DISPLAY_UNION,"add"],[ht.Msg.MICROBIT_DISPLAY_MINUS,"sub"]];this.setColour(HT),this.setOutput(!0,"esp32_image"),this.appendValueInput("A").appendField(ht.Msg.MICROBIT_DISPLAY_MERGE_SHAPE),this.appendValueInput("B").appendField(new ht.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{"+":ht.Msg.MIXLY_MICROBIT_image_add,"-":ht.Msg.MIXLY_MICROBIT_image_reduce}[t]}))}},eh={init:function(){this.setColour(HT),this.appendValueInput("A").setCheck("esp32_image").appendField(ht.Msg.MIXLY_MICROBIT_Invert_image1),this.setInputsInline(!0),this.setOutput(!0,"esp32_image")}},ih={init:function(){var t=[[ht.Msg.MIXLY_UP,"shift_up"],[ht.Msg.MIXLY_DOWN,"shift_down"],[ht.Msg.MIXLY_LEFT,"shift_left"],[ht.Msg.MIXLY_RIGHT,"shift_right"]];this.setColour(HT),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.appendDummyInput("").appendField(ht.Msg.DISPLAY_IMAGE_LET),this.appendDummyInput("").appendField(ht.Msg.DISPLAY_IMAGE_LET2).appendField(new ht.FieldDropdown(t),"OP"),this.appendValueInput("val").appendField(ht.Msg.DISPLAY_IMAGE_SHIFT).setCheck(Number),this.appendDummyInput("").appendField(ht.Msg.DISPLAY_IMAGE_UNIT);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP"),i=ht.Msg.DISPLAY_IMAGE_LET,n=ht.Msg.DISPLAY_IMAGE_LET2,s=ht.Msg.DISPLAY_IMAGE_LET3;return i+n+{shift_up:ht.Msg.MIXLY_UP,shift_down:ht.Msg.MIXLY_DOWN,shift_left:ht.Msg.MIXLY_LEFT,shift_right:ht.Msg.MIXLY_RIGHT}[t]+s}))}},nh={init:function(){this.setColour(HT),this.appendValueInput("x").setCheck(Number).appendField(ht.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(ht.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendDummyInput().appendField(ht.Msg.MIXLY_ESP32_JS_MONITOR_GET_POINT),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(ht.Msg.MIXLY_ESP32_JS_MONITOR_BRIGHTNESS)}},sh={init:function(){this.setColour(HT),this.appendValueInput("x").setCheck(Number).appendField(ht.Msg.MIXLY_ESP32_JS_MONITOR_SET_BRIGHTNESS).appendField(ht.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(ht.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendValueInput("STAT").setCheck([Number,Boolean]),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL)}},oh={init:function(){this.setColour(HT),this.appendDummyInput().appendField(ht.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(ht.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS)}},_h={init:function(){this.setColour(HT),this.appendValueInput("x").setCheck(Number).appendField(ht.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS+" 0.0-1.0")}},ph={init:function(){this.setColour(HT),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_Clear_display),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_MICROBIT_Clear_display)}},ah={init:function(){this.appendDummyInput("").appendField(ht.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<5;t++){let e=this.appendDummyInput();for(let i=0;i<8;i++)e.appendField(new ht.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.setOutput(!0),this.setColour(HT),this.setTooltip(ht.Msg.MIXLY_MICROBIT_Create_image1)}},uh={init:function(){this.appendDummyInput("").appendField(ht.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<8;t++){let e=this.appendDummyInput();for(let i=0;i<12;i++)e.appendField(new ht.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.setOutput(!0),this.setColour(HT),this.setTooltip(ht.Msg.MIXLY_MICROBIT_Create_image1)}},rh={init:function(){this.appendDummyInput("").appendField(ht.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<8;t++){let e=this.appendDummyInput();for(let i=0;i<16;i++)e.appendField(new ht.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.setOutput(!0,"esp32_image"),this.setColour(HT),this.setTooltip(ht.Msg.MIXLY_MICROBIT_Create_image1)}},lh={init:function(){var t=[["4x5"+ht.Msg.MIXGO_ME_DISPLAY_HORIZONTAL,"'4x5'"],["5x5"+ht.Msg.MIXGO_ME_DISPLAY_HORIZONTAL,"'5x5'"],["5x8"+ht.Msg.MIXGO_ME_DISPLAY_VERTICAL,"'5x8'"]];this.setColour(HT),this.appendDummyInput().appendField(ht.Msg.OLED_SET_FONT).appendField(new ht.FieldDropdown(t),"OP"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},dh={init:function(){this.setColour(HT),this.appendValueInput("data").appendField(ht.Msg.OLED_BITMAP),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.OLED_BITMAP_OR_STRING)}},Ih={init:function(){this.setColour(HT),this.appendValueInput("data").appendField(ht.Msg.OLED_BITMAP),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(ht.Msg.MIXLY_MICROBIT_JS_NUMBER),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.OLED_BITMAP_OR_STRING)}},Th={init:function(){this.setColour(HT),this.appendValueInput("data").setCheck([String,"esp32_image","List","Tuple"]).appendField(ht.Msg.OLED_DRAWSTR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.OLED_BITMAP_OR_STRING)}},hh={init:function(){this.setColour(HT),this.appendValueInput("data").setCheck(String).appendField(ht.Msg.OLED_DRAWSTR),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(ht.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(ht.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendDummyInput("").appendField(ht.Msg.TEXT_CENTER).appendField(new ht.FieldDropdown([[ht.Msg.MICROPYTHON_DISPLAY_YES,"True"],[ht.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"center"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY)}},Mh={init:function(){this.setColour(HT),this.appendValueInput("data").setCheck(String).appendField(ht.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(ht.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(ht.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendValueInput("time").setCheck(Number).appendField(ht.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_SCROLL_IMAGE_OR_STRING_DELAY)}},mh={init:function(){this.setColour(HT),this.appendValueInput("data").setCheck(String).appendField(ht.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.appendValueInput("size").setCheck(Number).appendField(ht.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("time").setCheck(Number).appendField(ht.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Oh={init:function(){this.setColour(HT),this.appendValueInput("x").setCheck(Number).appendField(ht.Msg.MIXLY_ESP32_JS_MONITOR_SET_BRIGHTNESS).appendField(ht.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(ht.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendValueInput("STAT").setCheck([Number,Boolean]),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL)}},Eh={init:function(){this.jsonInit({colour:HT,args0:[{name:"state",options:[[ht.Msg.MPYTHON_DISPLAY_MODE_1,"1"],[ht.Msg.MPYTHON_DISPLAY_MODE_0,"0"]],type:"field_dropdown"},{name:"shape",options:[[ht.Msg.MPYTHON_DISPLAY_HOLLOW,"rect"],[ht.Msg.MPYTHON_DISPLAY_SOLID,"fill_rect"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"w",type:"input_value"},{name:"h",type:"input_value"}],inputsInline:!0,helpUrl:ht.Msg.mpython_HELPURL,tooltip:ht.Msg.MPYTHON_DISPLAY_SHAPE_RECT_TOOLTIP,message0:ht.Msg.MPYTHON_DISPLAY_SHAPE_RECT_MESSAGE0,nextStatement:null,previousStatement:null})}},Rh={init:function(){this.jsonInit({colour:HT,args0:[{name:"state",options:[[ht.Msg.MPYTHON_DISPLAY_MODE_1,"1"],[ht.Msg.MPYTHON_DISPLAY_MODE_0,"0"]],type:"field_dropdown"},{name:"dir_h_v",options:[[ht.Msg.mpython_vertical,"0"],[ht.Msg.mpython_horizontal,"1"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"length",type:"input_value"}],inputsInline:!0,helpUrl:ht.Msg.mpython_HELPURL,tooltip:ht.Msg.MPYTHON_DISPLAY_HVLINE_TOOLTIP,message0:ht.Msg.MPYTHON_DISPLAY_HVLINE_MESSAGE0,nextStatement:null,previousStatement:null})}},ch={init:function(){this.jsonInit({colour:HT,args0:[{name:"state",options:[[ht.Msg.mpython_display_hline_1,"1"],[ht.Msg.mpython_display_hline_0,"0"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x1",type:"input_value"},{name:"y1",type:"input_value"},{name:"x2",type:"input_value"},{name:"y2",type:"input_value"}],inputsInline:!0,helpUrl:ht.Msg.mpython_HELPURL,tooltip:ht.Msg.mpython_display_line_TOOLTIP,message0:ht.Msg.mpython_display_line_MESSAGE0,nextStatement:null,previousStatement:null})}},gh={init:function(){this.jsonInit({colour:HT,args0:[{type:"field_label",name:"size_image",text:ht.Msg.MIXLY_MICROBIT_Built_in_image1},{name:"path",options:[["Heart","Heart"],["Angry","Angry"],["Bored","Bored"],["Confused","Confused"],["Happy","Happy"],["Paper","Paper"],["Rock","Rock"],["Sad","Sad"],["Scissors","Scissors"],["Silly","Silly"],["Sleep","Sleep"],["Small_heart","Small_heart"],["Small_paper","Small_paper"],["Small_rock","Small_rock"],["Small_scissors","Small_scissors"],["Smile","Smile"],["Surprise","Surprise"],["Wonderful","Wonderful"],["Eyes_Angry","Eyes_Angry"],["Awake","Awake"],["Black_eye","Black_eye"],["Bottom_left","Bottom_left"],["Bottom_right","Bottom_right"],["Crazy_1","Crazy_1"],["Crazy_2","Crazy_2"],["Disappointed","Disappointed"],["Dizzy","Dizzy"],["Down","Down"],["Evil","Evil"],["Hurt","Hurt"],["Knocked_out","Knocked_out"],["Love","Love"],["Middle_left","Middle_left"],["Middle_right","Middle_right"],["Neutral","Neutral"],["Nuclear","Nuclear"],["Pinch_left","Pinch_left"],["Pinch_middle","Pinch_middle"],["Pinch_right","Pinch_right"],["Tear","Tear"],["Tired_left","Tired_left"],["Tired_middle","Tired_middle"],["Tired_right","Tired_right"],["Toxic","Toxic"],["Up","Up"],["Winking","Winking"],["Accept","Accept"],["Backward","Backward"],["Decline","Decline"],["Forward","Forward"],["Left","Left"],["No_go","No_go"],["Question_mark","Question_mark"],["Right","Right"],["Stop_1","Stop_1"],["Stop_2","Stop_2"],["Thumbs_down","Thumbs_down"],["Thumbs_up","Thumbs_up"],["Warning","Warning"],["Bomb","Bomb"],["Boom","Boom"],["Fire","Fire"],["Flowers","Flowers"],["Forest","Forest"],["Lightning","Lightning"],["Light_off","Light_off"],["Light_on","Light_on"],["Night","Night"],["Pirate","Pirate"],["Snow","Snow"],["Target","Target"],["Bar_0","Bar_0"],["Bar_1","Bar_1"],["Bar_2","Bar_2"],["Bar_3","Bar_3"],["Bar_4","Bar_4"],["Dial_0","Dial_0"],["Dial_1","Dial_1"],["Dial_2","Dial_2"],["Dial_3","Dial_3"],["Dial_4","Dial_4"],["Dots_0","Dots_0"],["Dots_1","Dots_1"],["Dots_2","Dots_2"],["Dots_3","Dots_3"],["Hourglass_0","Hourglass_0"],["Hourglass_1","Hourglass_1"],["Hourglass_2","Hourglass_2"],["Timer_0","Timer_0"],["Timer_1","Timer_1"],["Timer_2","Timer_2"],["Timer_3","Timer_3"],["Timer_4","Timer_4"],["Water_level_0","Water_level_0"],["Water_level_1","Water_level_1"],["Water_level_2","Water_level_2"],["Water_level_3","Water_level_3"]],type:"field_dropdown"}],output:"String",helpUrl:"",tooltip:"",message0:"%1 %2"})}},Ch={init:function(){this.appendDummyInput("").appendField(ht.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<5;t++){let e=this.appendDummyInput();for(let i=0;i<5;i++)e.appendField(new ht.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.setOutput(!0),this.setColour(HT),this.setTooltip(ht.Msg.MIXLY_MICROBIT_Create_image1)}},Sh={init:function(){this.setColour(HT),this.appendDummyInput().appendField(ht.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(ht.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS)}},Ah={init:function(){this.setColour(HT),this.appendDummyInput().appendField(ht.Msg.MIXLY_MIXBOT_AMBIENTBRIGHT),this.setInputsInline(!0),this.setOutput(!0,Number)}},Lh={init:function(){this.setColour(HT),this.appendValueInput("x").setCheck(Number).appendField(ht.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS+" 0.0-1.0")}},Nh={init:function(){var t=[[ht.Msg.mixpy_PL_PIE_SHADOW_N,"0"],[ht.Msg.CLOCKWISE+"90"+ht.Msg.blockpy_setheading_degree,"1"],[ht.Msg.CLOCKWISE+"180"+ht.Msg.blockpy_setheading_degree,"2"],[ht.Msg.CLOCKWISE+"270"+ht.Msg.blockpy_setheading_degree,"3"]];this.setColour(HT),this.appendDummyInput().appendField(ht.Msg.MIXLY_MIXBOT_SCREEN_ROTATE).appendField(new ht.FieldDropdown(t),"OP"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Dh={init:function(){this.appendDummyInput("").appendField(ht.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<12;t++){let e=this.appendDummyInput();for(let i=0;i<12;i++)e.appendField(new ht.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.setOutput(!0),this.setColour(HT),this.setTooltip(ht.Msg.MIXLY_MICROBIT_Create_image1)}},fh={init:function(){this.setColour(HT),this.appendValueInput("data").appendField(ht.Msg.OLED_BITMAP),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.OLED_BITMAP_OR_STRING)}},Ph={init:function(){this.setColour(HT),this.appendValueInput("data").appendField(ht.Msg.OLED_BITMAP),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(ht.Msg.MIXLY_MICROBIT_JS_NUMBER),this.appendValueInput("VAR").appendField(ht.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.OLED_BITMAP_OR_STRING)}},Fh={init:function(){this.setColour(HT),this.appendValueInput("data").setCheck(String).appendField(ht.Msg.OLED_DRAWSTR),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(ht.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(ht.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendDummyInput("").appendField(ht.Msg.TEXT_CENTER).appendField(new ht.FieldDropdown([[ht.Msg.MICROPYTHON_DISPLAY_YES,"True"],[ht.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"center"),this.appendValueInput("VAR").appendField(ht.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY)}},vh={init:function(){this.setColour(HT),this.appendValueInput("data").setCheck(String).appendField(ht.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Yh={init:function(){this.setColour(HT),this.appendValueInput("data").setCheck(String).appendField(ht.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(ht.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(ht.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendValueInput("time").setCheck(Number).appendField(ht.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.appendValueInput("VAR").appendField(ht.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_SCROLL_IMAGE_OR_STRING_DELAY)}},xh={init:function(){this.setColour(HT),this.appendValueInput("data").setCheck(String).appendField(ht.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Xh={init:function(){this.setColour(HT),this.appendValueInput("data").setCheck(String).appendField(ht.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.appendValueInput("size").setCheck(Number).appendField(ht.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("time").setCheck(Number).appendField(ht.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.appendValueInput("VAR").appendField(ht.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},bh={init:function(){this.jsonInit({colour:HT,args0:[{name:"shape",options:[[ht.Msg.MPYTHON_DISPLAY_HOLLOW,"rect"],[ht.Msg.MPYTHON_DISPLAY_SOLID,"fill_rect"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"w",type:"input_value"},{name:"h",type:"input_value"},{name:"VAR",type:"input_value"}],inputsInline:!0,helpUrl:ht.Msg.mpython_HELPURL,tooltip:ht.Msg.MPYTHON_DISPLAY_SHAPE_RECT_TOOLTIP,message0:ht.Msg.ONBOARD_TFT_DISPLAY_SHAPE_RECT_MESSAGE0,nextStatement:null,previousStatement:null})}},Vh={init:function(){this.jsonInit({colour:HT,args0:[{name:"dir_h_v",options:[[ht.Msg.mpython_vertical,"0"],[ht.Msg.mpython_horizontal,"1"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"length",type:"input_value"},{name:"VAR",type:"input_value"}],inputsInline:!0,helpUrl:ht.Msg.mpython_HELPURL,tooltip:ht.Msg.MPYTHON_DISPLAY_HVLINE_TOOLTIP,message0:ht.Msg.ONBOARD_TFT_DISPLAY_HVLINE_MESSAGE0,nextStatement:null,previousStatement:null})}},yh={init:function(){this.jsonInit({colour:HT,args0:[{type:"input_dummy"},{name:"x1",type:"input_value"},{name:"y1",type:"input_value"},{name:"x2",type:"input_value"},{name:"y2",type:"input_value"},{name:"VAR",type:"input_value"}],inputsInline:!0,helpUrl:ht.Msg.mpython_HELPURL,tooltip:ht.Msg.mpython_display_line_TOOLTIP,message0:ht.Msg.mpython_display_line_MESSAGE0,nextStatement:null,previousStatement:null})}},Bh={init:function(){var t=[[ht.Msg.MIXLY_UP,"shift_up"],[ht.Msg.MIXLY_DOWN,"shift_down"],[ht.Msg.MIXLY_LEFT,"shift_left"],[ht.Msg.MIXLY_RIGHT,"shift_right"]];this.setColour(HT),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.appendDummyInput("").appendField(ht.Msg.DISPLAY_IMAGE_LET),this.appendDummyInput("").appendField(ht.Msg.DISPLAY_IMAGE_LET2).appendField(new ht.FieldDropdown(t),"OP"),this.appendValueInput("val").appendField(ht.Msg.DISPLAY_IMAGE_SHIFT).setCheck(Number),this.appendDummyInput("").appendField(ht.Msg.DISPLAY_IMAGE_UNIT);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP"),i=ht.Msg.DISPLAY_IMAGE_LET,n=ht.Msg.DISPLAY_IMAGE_LET2,s=ht.Msg.DISPLAY_IMAGE_LET3;return i+n+{up:ht.Msg.MIXLY_UP,down:ht.Msg.MIXLY_DOWN,left:ht.Msg.MIXLY_LEFT,right:ht.Msg.MIXLY_RIGHT}[t]+s}))}},Gh={init:function(){this.setColour(HT),this.appendDummyInput("").appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("x").setCheck(Number).appendField(ht.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(ht.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendDummyInput().appendField(ht.Msg.HTML_COLOUR),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(ht.Msg.MIXLY_ESP32_JS_MONITOR_BRIGHTNESS)}},Uh={init:function(){this.setColour(HT),this.appendValueInput("x").setCheck(Number).appendField(ht.Msg.MIXLY_LCD_SETCOLOR).appendField(ht.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(ht.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendValueInput("VAR").appendField(ht.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL)}},wh={init:function(){this.setColour(HT),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_Clear_display),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_MICROBIT_Clear_display)}},kh={init:function(){this.setColour(HT),this.appendDummyInput().appendField(ht.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(ht.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS)}},Hh={init:function(){this.setColour(HT),this.appendValueInput("x").setCheck(Number).appendField(ht.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS+" 0.0-1.0")}},Wh={init:function(){this.setColour(HT),this.appendValueInput("VAR").appendField(ht.Msg.MIXLY_SCREEN_FILL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Kh={init:function(){this.setColour(HT),this.appendValueInput("SUB").appendField(ht.Msg.MIXLY_INIT_CLOCK),this.appendDummyInput().appendField(ht.Msg.MIXLY_CENTER_POS),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(ht.Msg.OLED_CIRCLE_RADIUS),this.appendValueInput("VAR").appendField(ht.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Jh={init:function(){this.setColour(HT),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ht.Msg.GET_RTCTIME),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Qh={init:function(){this.setColour(HT),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ht.Msg.SET_TIME),this.appendValueInput("h").setCheck(Number).appendField(ht.Msg.MIXLY_HOUR),this.appendValueInput("m").setCheck(Number).appendField(ht.Msg.MIXLY_MINUTE),this.appendValueInput("s").setCheck(Number).appendField(ht.Msg.MIXLY_SECOND),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},zh={init:function(){this.setColour(HT),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ht.Msg.DRAW_CLOCK),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},qh={init:function(){this.setColour(HT),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ht.Msg.CLEAR_CLOCK),this.appendValueInput("VAR").appendField(ht.Msg.MIXLY_STM32_TFT_BACKGROUND_COLOR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},jh={init:function(){this.jsonInit({colour:HT,args0:[{name:"shape",options:[[ht.Msg.MPYTHON_DISPLAY_HOLLOW,"False"],[ht.Msg.MPYTHON_DISPLAY_SOLID,"True"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"r",type:"input_value"},{name:"VAR",type:"input_value"}],inputsInline:!0,helpUrl:ht.Msg.mpython_HELPURL,message0:ht.Msg.ONBOARD_TFT_DISPLAY_SHAPE_CIRCLE_MESSAGE0,nextStatement:null,previousStatement:null})}},Zh="#777777",$h={init:function(){this.setColour(Zh),this.appendDummyInput("").appendField("from ").appendField(new ht.FieldTextInput("ESP32"),"path").appendField(" import ").appendField(new ht.FieldTextInput("*"),"module"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},tM={init:function(){this.setColour(Zh),this.appendDummyInput("").appendField("import ").appendField(new ht.FieldTextInput("module"),"module"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},eM={init:function(){this.setColour(Zh),this.appendDummyInput("").appendField(new ht.FieldTextInput("my_function"),"NAME"),this.itemCount_=1,this.arguments_=["x"],this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new ht.icons.MutatorIcon(["factory_create_with_item"],this))},mutationToDom:function(){var t=document.createElement("mutation");t.setAttribute("items",this.itemCount_);for(var e=0;ee?t[e]:'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ht.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},wM={init:function(){this.setColour(XM),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(ht.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},kM={init:function(){this.setColour(XM),this.appendDummyInput().appendField(ht.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ht.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},HM={init:function(){this.setColour(XM),this.appendDummyInput().appendField(ht.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ht.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},WM={init:function(){this.setColour(XM),this.appendDummyInput().appendField(ht.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").setCheck(String).appendField(ht.Msg.MIXLY_EMQX_SERVER).setAlign(ht.inputs.Align.RIGHT),this.appendValueInput("USERNAME").setCheck(String).appendField(ht.Msg.MIXLY_WIFI_USERNAME).setAlign(ht.inputs.Align.RIGHT),this.appendValueInput("PASSWORD").setCheck(String).appendField(ht.Msg.MIXLY_IOT_PASSWORD).setAlign(ht.inputs.Align.RIGHT),this.appendValueInput("PROJECT").setCheck(String).appendField(ht.Msg.MIXLY_EMQX_PROJECT).setAlign(ht.inputs.Align.RIGHT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},KM={init:function(){this.setColour(XM),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(ht.Msg.MIXLY_EMQX_PUBLISH_NEW).appendField(ht.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MSG").appendField(ht.Msg.HTML_BODY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_IOT_EMQX_PUBLISH_TOOLTIP)}},JM={init:function(){this.setColour(XM),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(ht.Msg.MIXLY_EMQX_SUBSCRIBE+ht.Msg.MIXLY_MICROBIT_MSG).appendField(ht.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("METHOD").appendField(ht.Msg.MIXLY_EMQX_SET_METHOD),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_IOT_EMQX_SUBSCRIBE_TOOLTIP)}},QM={init:function(){this.setColour(XM),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(ht.Msg.MIXLY_ESP32_DISCONNECT_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},zM={init:function(){this.setColour(XM),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(ht.Msg.MIXLY_EMQX_CONNECT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},qM={init:function(){this.setColour(XM),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(ht.Msg.MIXLY_ESP32_CHECK_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},jM={init:function(){this.setColour(XM),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROPYTHON_FORMAT).appendField(ht.Msg.MQTT_Topic),this.setInputsInline(!0),this.setOutput(!0)}},ZM={init:function(){this.setColour(XM),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROPYTHON_FORMAT).appendField(ht.Msg.MIXLY_EMQX_PUBLISH_MSG),this.setInputsInline(!0),this.setOutput(!0)}},$M={init:function(){this.setColour(XM),this.appendValueInput("VAR").appendField(ht.Msg.MIXLY_ESP32_IOT_MAP_FORMATING),this.setOutput(!0)}},tm={init:function(){this.setColour(XM),this.appendValueInput("VAR").appendField(ht.Msg.MIXLY_MICROPYTHON_FORMAT+"(Json)"),this.setOutput(!0)}},em={init:function(){this.setColour(XM),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(ht.Msg.MIXLY_EMQX_PING),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_IOT_EMQX_PING_TOOLTIP)}},im={init:function(){this.setColour(XM),this.appendDummyInput().appendField("MixIO").appendField(ht.Msg.MIXLY_GET_NTP),this.appendValueInput("addr").appendField(ht.Msg.blynk_SERVER_ADD),this.setInputsInline(!0),this.setOutput(!0)}},nm={init:function(){this.setColour(XM),this.appendDummyInput().appendField(ht.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").appendField(ht.Msg.MIXLY_EMQX_SERVER).setAlign(ht.inputs.Align.RIGHT),this.appendValueInput("KEY").appendField(ht.Msg.CONTROLS_FOR_INPUT_WITH+ht.Msg.MIXLY_MIXIO_SHARE_KEY).setAlign(ht.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},sm={init:function(){this.setColour(XM),this.appendDummyInput().appendField(ht.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").appendField(ht.Msg.MIXLY_EMQX_SERVER).setAlign(ht.inputs.Align.RIGHT),this.appendValueInput("KEY").appendField(ht.Msg.CONTROLS_FOR_INPUT_WITH+"Mixly Key").setAlign(ht.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},om={init:function(){this.VISITOR_ID=Mt.Config.BOARD.visitorId.str32.substring(0,8).toUpperCase(),this.setColour(XM),this.appendDummyInput("").appendField(new ht.FieldTextInput(this.visitorId),"VISITOR_ID"),this.setOutput(!0,null)},onchange:function(){const t=this.getFieldValue("VISITOR_ID");this.VISITOR_ID!==t&&this.setFieldValue(this.VISITOR_ID,"VISITOR_ID")}},_m={init:function(){this.setColour(XM),this.appendDummyInput().appendField("MixIO").appendField(ht.Msg.MSG.catEthernet_clinet),this.setOutput(!0),this.setInputsInline(!0)}},pm={init:function(){this.setColour(XM),this.appendDummyInput().appendField("HTTP"+ht.Msg.MIXLY_Client),this.appendValueInput("addr").appendField(ht.Msg.DISPLAY_IMAGE_LET2),this.appendDummyInput().appendField(ht.Msg.MIXLY_REQUESTS_GET).appendField(ht.Msg.MIXLY_GET_CURRENT_TIME).appendField(ht.Msg.MIXLY_OPEN_DEBUG).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[ht.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},am={init:function(){this.setColour(XM),this.appendDummyInput().appendField("HTTP"+ht.Msg.MIXLY_Client).appendField(ht.Msg.MIXLY_GET).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_REQUESTS_LEN,"client_len"],[ht.Msg.MIXLY_REQUESTS_GET_LEN,"server_len"],[ht.Msg.MIXLY_REQUESTS_MESSAGE,"text"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},um={init:function(){this.setColour(XM),this.appendDummyInput().appendField("MQTT"+ht.Msg.MIXLY_Client),this.appendValueInput("addr").appendField(ht.Msg.MIXLY_CONNECTTO),this.appendDummyInput().appendField(ht.Msg.MIXLY_INIT_SUBSCRIBE).appendField(ht.Msg.MQTT_Topic).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_GET_CURRENT_TIME,""]]),"key").appendField(ht.Msg.MIXLY_OPEN_DEBUG).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[ht.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"key2"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},rm={init:function(){this.setColour(XM),this.appendDummyInput().appendField("MQTT"+ht.Msg.MIXLY_Client).appendField(ht.Msg.MIXLY_GET).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_REQUESTS_LEN,"client_len"],[ht.Msg.MIXLY_REQUESTS_GET_LEN,"server_len"],[ht.Msg.MIXLY_REQUESTS_MESSAGE,"time_msg()"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},lm=bM,dm=VM,Im=yM,Tm=BM,hm=UM,Mm=225,mm={init:function(){this.setColour(Mm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(ht.Msg.MIXLY_NETWORK_INIT),this.appendDummyInput().appendField(ht.Msg.MIXLY_NETWORK_MODE).appendField(new ht.FieldDropdown([["STA","STA"],["AP","AP"]]),"mode"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_NETWORK_INIT_TOOLTIP)}},Om={init:function(){this.setColour(Mm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_NETWORK_WIFI_OPEN,"True"],[ht.Msg.MIXLY_NETWORK_WIFI_CLOSE,"False"]]),"op"),this.appendDummyInput("").appendField(ht.Msg.MIXLY_NETWORK_WIFI_FLAG),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("op"),i=ht.Msg.MIXLY_ESP32_NETWORK_OPEN_TOOLTIP;return{True:ht.Msg.MIXLY_NETWORK_WIFI_OPEN,False:ht.Msg.MIXLY_NETWORK_WIFI_CLOSE}[e]+i}))}},Em={init:function(){this.setColour(Mm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(ht.Msg.MIXLY_NETWORK_WIFI_IS_ACTIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_NETWORK_WIFI_IS_ACTIVE)}},Rm={init:function(){this.setColour(Mm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(ht.Msg.MIXLY_NETWORK_WIFI_SCAN),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip((function(){return ht.Msg.MIXLY_ESP32_NETWORK_SCAN_TOOLTIP+{0:"ssid",1:"bssid",2:"channel",3:"RSSI",4:"authmode",5:"hidden",all:ht.Msg.MIXLY_NETWORK_WIFI_SCAN_ATTRIBUTE}.all}))}},cm={init:function(){this.setColour(Mm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(ht.Msg.MIXLY_ESP32_NETWORK_CONNECT),this.appendValueInput("id").setCheck(String).appendField(ht.Msg.HTML_NAME),this.appendValueInput("password").setCheck(String).appendField(ht.Msg.HTML_PASSWORD),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_NETWORK_CONNECT_TOOLTIP)}},gm={init:function(){this.setColour(Mm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(ht.Msg.MIXLY_NETWORK_WIFI_CONNECT),this.appendDummyInput("").appendField(ht.Msg.MIXLY_SYMBOL_QUESTION),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_NETWORK_WIFI_CONNECT_TOOLTIP)}},Cm={init:function(){this.setColour(Mm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(ht.Msg.MIXLY_ESP32_NETWORK_GET_WIFI),this.appendDummyInput("").appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_ESP32_NETWORK_IP,"0"],[ht.Msg.MIXLY_ESP32_NETWORK_MASK,"1"],[ht.Msg.MIXLY_ESP32_NETWORK_GATEWAY,"2"],["DNS","3"]]),"mode"),this.setOutput(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("mode");return ht.Msg.MIXLY_ESP32_NETWORK_GET_WIFI_TOOLTIP+{0:ht.Msg.MIXLY_ESP32_NETWORK_IP,1:ht.Msg.MIXLY_ESP32_NETWORK_MASK,2:ht.Msg.MIXLY_ESP32_NETWORK_GATEWAY,3:"DNS"}[e]}))}},Sm={init:function(){this.setColour(Mm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(ht.Msg.MIXLY_ESP32_NETWORK_STOP_CONNECT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_NETWORK_STOP_TOOLTIP)}},Am={init:function(){this.setColour(Mm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(ht.Msg.MIXLY_ESP32_NETWORK_GET_WIFI),this.appendDummyInput().appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_NETWORK_WIFI_ESSID,"essid"],[ht.Msg.MIXLY_NETWORK_WIFI_CHANNEL,"channel"]]),"op"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_NETWORK_GET_WIFI_TOOLTIP)}},Lm={init:function(){this.setColour(Mm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(ht.Msg.LISTS_SET_INDEX_SET),this.appendValueInput("essid").setCheck(String).appendField(ht.Msg.MIXLY_NETWORK_WIFI_ESSID),this.appendValueInput("channel").setCheck(Number).appendField(ht.Msg.MIXLY_NETWORK_WIFI_CHANNEL),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_NETWORK_AP_CONNECT_TOOLTIP)}},Nm={init:function(){this.setColour(Mm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(ht.Msg.MIXLY_ESP32_NETWORK_SERVER1),this.appendDummyInput("").appendField(ht.Msg.MIXLY_ESP32_NETWORK_SERVER2),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_NETWORK_SOCKET_CLOSE_TOOLTIP)}},Dm={init:function(){this.setColour(Mm),this.appendValueInput("VAR").appendField(ht.Msg.MIXLY_MICROPYTHON_SOCKET_INIT).setCheck("var"),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROPYTHON_SOCKET_TYPE).appendField(new ht.FieldDropdown([["TCP","TCP"],["UDP","UDP"]]),"mode"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("mode");return ht.Msg.MIXLY_ESP32_NETWORK_SOCKET_INIT_TOOLTIP+{TCP:"TCP",UDP:"UDP"}[e]}))}},fm={init:function(){this.setColour(Mm),this.appendValueInput("VAR").setCheck("var").appendField(ht.Msg.MIXLY_MICROPYTHON_SOCKET_LET_SOCKET),this.appendValueInput("address").appendField(ht.Msg.MIXLY_MICROPYTHON_SOCKET_BIND_TO_ADDRESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_NETWORK_SOCKET_BIND_TOOLTIP)}},Pm={init:function(){this.setColour(Mm),this.appendValueInput("VAR").setCheck("var").appendField(ht.Msg.MIXLY_MICROPYTHON_SOCKET_LET_SOCKET),this.appendValueInput("address").appendField(ht.Msg.MIXLY_MICROPYTHON_SOCKET_CONNECT_TO_ADDRESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_NETWORK_SOCKET_CONNECT_TOOLTIP)}},Fm={init:function(){this.setColour(Mm),this.appendValueInput("VAR").setCheck("var"),this.appendValueInput("queue").setCheck(Number).appendField(ht.Msg.MIXLY_MICROPYTHON_SOCKET_LISTEN).appendField(ht.Msg.MIXLY_MICROPYTHON_SOCKET_QUEUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_NETWORK_SOCKET_LISTEN_TOOLTIP)}},vm={init:function(){this.setColour(Mm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROPYTHON_SOCKET_ACCEPT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_NETWORK_SOCKET_ACCEPT_TOOLTIP)}},Ym={init:function(){this.setColour(Mm),this.appendValueInput("VAR").setCheck("var").appendField("TCP"),this.appendValueInput("size").setCheck(Number).appendField(ht.Msg.MIXLY_MICROPYTHON_SOCKET_RECEIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_NETWORK_SOCKET_RECEIVE_TOOLTIP)}},xm={init:function(){this.setColour(Mm),this.appendValueInput("VAR").setCheck("var").appendField("TCP"),this.appendValueInput("content").appendField(ht.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_NETWORK_SOCKET_SEND_TOOLTIP)}},Xm={init:function(){this.setColour(Mm),this.appendValueInput("VAR").setCheck("var").appendField("UDP"),this.appendValueInput("size").setCheck(Number).appendField(ht.Msg.MIXLY_MICROPYTHON_SOCKET_RECEIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_NETWORK_SOCKET_RECEIVE_FROM_TOOLTIP)}},bm={init:function(){this.setColour(Mm),this.appendValueInput("VAR").setCheck("var").appendField("UDP"),this.appendValueInput("content").appendField(ht.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.appendValueInput("address").appendField(ht.Msg.MIXLY_MICROPYTHON_SOCKET_TO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_NETWORK_SOCKET_SEND_TO_TOOLTIP)}},Vm={init:function(){this.setColour(Mm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROPYTHON_SOCKET_CLOSE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_NETWORK_SOCKET_CLOSE_TOOLTIP)}},ym={init:function(){this.setColour(Mm),this.appendValueInput("DOMAIN").appendField(ht.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(ht.Msg.blockpy_REQUESTS_GET).appendField(new ht.FieldTextInput("response"),"VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ht.Msg.blockpy_REQUESTS_GET_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ht.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Bm={init:function(){this.appendValueInput("VAL");var t=[[ht.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE,"status_code"],[ht.Msg.blockpy_REQUESTS_GET_ATTR_TEXT,"text"],[ht.Msg.blockpy_REQUESTS_GET_ATTR_COOKIES,"cookies"],[ht.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT,"content"]];this.setColour(Mm),this.appendDummyInput("").appendField(ht.Msg.MIXLY_MICROBIT_JS_GET).appendField(new ht.FieldDropdown(t),"ATTR"),this.setInputsInline(!0),this.setOutput(!0,String);var e=this;this.setTooltip((function(){var t=e.getFieldValue("DIR");return{clear:ht.Msg.MIXLY_TOOLTIP_TURTEL_CLEAR,reset:ht.Msg.MIXLY_TOOLTIP_TURTEL_RESET,home:ht.Msg.MIXLY_TOOLTIP_TURTEL_HOME}[t]}))}},Gm={init:function(){this.appendValueInput("VAR").appendField(ht.Msg.DISPLAY_IMAGE_LET2).setCheck(String);this.setColour(Mm),this.appendDummyInput("").appendField(ht.Msg.blockpy_CONDUCT).appendField(new ht.FieldDropdown([["post","post"],["put","put"],["delete","delete"],["head","head"],["option","option"]]),"DIR"),this.appendDummyInput("").appendField(ht.Msg.blockpy_REQUESTS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{forward:ht.Msg.MIXLY_TOOLTIP_TURTEL_FORWARD,backward:ht.Msg.MIXLY_TOOLTIP_TURTEL_BACKWARD}[e]}))}},Um={init:function(){this.setColour(Mm),this.appendDummyInput("").appendField(ht.Msg.MIXLY_GET_NTP+"(NTP)"),this.appendValueInput("data").appendField(ht.Msg.blynk_SERVER_ADD),this.setOutput(!0,"Tuple"),this.setInputsInline(!0)}},wm={init:function(){this.setColour(Mm),this.appendDummyInput("").appendField(new ht.FieldDropdown([["ntp.aliyun.com","ntp.aliyun.com"],["ntp1.aliyun.com","ntp1.aliyun.com"],["ntp2.aliyun.com","ntp2.aliyun.com"],["ntp3.aliyun.com","ntp3.aliyun.com"],["ntp4.aliyun.com","ntp4.aliyun.com"],["ntp5.aliyun.com","ntp5.aliyun.com"],["ntp6.aliyun.com","ntp6.aliyun.com"],["ntp7.aliyun.com","ntp7.aliyun.com"],["time1.cloud.tencent.com","time1.cloud.tencent.com"],["time2.cloud.tencent.com","time2.cloud.tencent.com"],["time3.cloud.tencent.com","time3.cloud.tencent.com"],["time4.cloud.tencent.com","time4.cloud.tencent.com"],["time5.cloud.tencent.com","time5.cloud.tencent.com"]]),"op"),this.setOutput(!0)}},km=100,Hm={init:function(){if("mixgo_nova"==Mt.Boards.getSelectedBoardKey().split(":")[2])var t="Nova G1";this.setColour(km),this.appendDummyInput().appendField(t).appendField(ht.Msg.MIXLY_MIXGO_NOVA_POTENTIAL_NUM),this.setOutput(!0,Number),this.setInputsInline(!0)}},Wm={init:function(){if("mixgo_nova"==Mt.Boards.getSelectedBoardKey().split(":")[2])var t="Nova G1";this.setColour(km),this.appendValueInput("PIN").appendField(t).appendField(ht.Msg.MOTOR_DC).appendField(ht.Msg.LCD_NUMBERING),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_Direction).appendField(new ht.FieldDropdown([[ht.Msg.CLOCKWISE,"CW"],[ht.Msg.ANTI_CLOCKWISE,"CCW"],[ht.Msg.MOTOR_P,"P"],[ht.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Km={init:function(){if("mixgo_nova"==Mt.Boards.getSelectedBoardKey().split(":")[2])var t="Nova G1";this.setColour(km),this.appendValueInput("PIN").appendField(t).appendField(ht.Msg.SET_USB),this.appendValueInput("percent").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_POWER_SUPPLY),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Jm={init:function(){if("mixgo_nova"==Mt.Boards.getSelectedBoardKey().split(":")[2])var t="Nova G1";this.setColour(km),this.appendDummyInput().appendField(t).appendField(ht.Msg.MIXLY_SPK_STATE).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_ON,"True"],[ht.Msg.MIXLY_OFF,"False"]]),"state"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Qm=100,zm={init:function(){var t=Mt.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(Qm),this.appendValueInput("I2CSUB").appendField(ht.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(ht.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(ht.Msg.MIXLY_SETUP+ht.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(e),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},qm={init:function(){var t=Mt.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(Qm),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendDummyInput().appendField(ht.Msg.MIXLY_MIXGO_CAR_BATTERY_LEFT),this.setOutput(!0,Number),this.setInputsInline(!0)}},jm={init:function(){var t=Mt.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(Qm),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendValueInput("PIN").appendField(ht.Msg.MOTOR_DC).appendField(ht.Msg.LCD_NUMBERING),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_Direction).appendField(new ht.FieldDropdown([[ht.Msg.CLOCKWISE,"CW"],[ht.Msg.ANTI_CLOCKWISE,"CCW"],[ht.Msg.MOTOR_P,"P"],[ht.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Zm={init:function(){var t=Mt.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(Qm),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendValueInput("PIN").appendField(ht.Msg.MOTOR_DC).appendField(ht.Msg.LCD_NUMBERING),this.appendDummyInput().appendField(ht.Msg.MIXLY_STEPPER_GET_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},$m={init:function(){var t=Mt.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(Qm),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendValueInput("PIN").appendField("180°"+ht.Msg.MIXLY_SERVO).appendField(ht.Msg.LCD_NUMBERING),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_SERVO_MOVE)}},tO={init:function(){var t=Mt.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(Qm),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendValueInput("PIN").appendField("360°"+ht.Msg.MIXLY_SERVO).appendField(ht.Msg.LCD_NUMBERING),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(ht.inputs.Align.RIGHT).appendField(ht.Msg.MIXLY_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_SERVO_SPEED_TOOLIPS)}},eO={init:function(){var t=Mt.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(Qm),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendValueInput("PIN").appendField("180°"+ht.Msg.MIXLY_SERVO),this.appendDummyInput().appendField(ht.Msg.MIXLY_GET+ht.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setOutput(!0,Number),this.setInputsInline(!0)}},iO={init:function(){var t=Mt.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(Qm),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendValueInput("PIN").appendField("360°"+ht.Msg.MIXLY_SERVO).appendField(ht.Msg.LCD_NUMBERING),this.appendDummyInput().appendField(ht.Msg.MIXLY_GET+ht.Msg.MIXLY_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},nO="#A58C5B",sO={init:function(){this.setColour(nO),this.appendValueInput("PIN",Number).appendField(ht.Msg.MIXLY_BUTTON).appendField(ht.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(ht.Msg.MIXLY_IS_PRESSED),this.appendValueInput("STAT").appendField(ht.Msg.MIXLY_ELECLEVEL),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_SENOR_IS_PRESSED)}},oO={init:function(){this.setColour(nO),this.appendValueInput("PIN",Number).appendField(ht.Msg.MIXLY_BUTTON).appendField(ht.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(ht.Msg.MIXLY_WAS_PRESSED),this.appendValueInput("STAT").appendField(ht.Msg.MIXLY_ELECLEVEL),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_SENOR_WAS_PRESSED)}},_O={init:function(){this.setColour(nO),this.appendValueInput("PIN",Number).appendField(ht.Msg.MIXLY_BUTTON).appendField(ht.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(ht.Msg.MIXLY_GET_PRESSES),this.appendValueInput("VAR").setCheck(Number).appendField(ht.Msg.MIXLY_GET_PRESSES_TIME),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(ht.Msg.PROCEDURES_DEFRETURN_RETURN+ht.Msg.MIXLY_BUTTON+ht.Msg.MIXLY_GET_PRESSES)}},pO={init:function(){this.setColour(nO),this.appendValueInput("PIN",Number).appendField(ht.Msg.MIXLY_BUTTON).appendField(ht.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(ht.Msg.MIXLY_MODE).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_RISING,"machine.Pin.IRQ_RISING"],[ht.Msg.MIXLY_FALLING,"machine.Pin.IRQ_FALLING"],[ht.Msg.MIXLY_CHANGE,"(machine.Pin.IRQ_RISING | machine.Pin.IRQ_FALLING)"]]),"mode"),this.appendValueInput("DO").appendField(ht.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ht.Msg.MIXLY_TOOLTIP_INOUT_ATTACHINTERRUPT)}},aO={init:function(){this.setColour(nO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput("").appendField(ht.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_MICROBIT_shake,"shake"],[ht.Msg.MIXLY_UP,"up"],[ht.Msg.MIXLY_DOWN,"down"],[ht.Msg.MIXLY_LEFT,"left"],[ht.Msg.MIXLY_RIGHT,"right"],[ht.Msg.MIXLY_MICROBIT_face_up,"face up"],[ht.Msg.MIXLY_MICROBIT_face_down,"face down"],[ht.Msg.MIXLY_MICROBIT_freefall,"freefall"],["3g","3g"],["6g","6g"],["8g","8g"]]),"gesture"),this.appendStatementInput("DO").appendField(ht.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("gesture"),i=ht.Msg.MIXLY_MICROBIT_JS_CURRENT,n=ht.Msg.MSG.catSensor,s=ht.Msg.MIXLY_MICROBIT_JS_STATE,o=ht.Msg.MIXLY_MICROBIT_PERFORMANCE;return i+n+s+{shake:ht.Msg.MIXLY_MICROBIT_shake,up:ht.Msg.MIXLY_UP,down:ht.Msg.MIXLY_DOWN,left:ht.Msg.MIXLY_LEFT,right:ht.Msg.MIXLY_RIGHT,"face up":ht.Msg.MIXLY_MICROBIT_face_up,"face down":ht.Msg.MIXLY_MICROBIT_face_down,freefall:ht.Msg.MIXLY_MICROBIT_freefall,"3g":"3g","6g":"6g","8g":"8g"}[e]+o}))}},uO={init:function(){this.setColour(nO),this.appendValueInput("SUB").appendField(ht.Msg.MIXLY_ADXL345).setCheck("var"),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_JS_ACCELERATION).appendField(new ht.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=ht.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=ht.Msg.MIXLY_MICROBIT_Direction,s=ht.Msg.MIXLY_MICROBIT_JS_ACCELERATION1;return i+{x:"x",y:"y",z:"z","(x,y,z)":ht.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},rO={init:function(){this.setColour(nO),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_JS_LIGHT_LEVEL),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_SENSOR_LIGHT_LEVEL_TOOLTIP)}},lO={init:function(){var t=[[ht.Msg.MIXLY_GETTEMPERATUE,"temperature"],[ht.Msg.MIXLY_GETHUMIDITY,"humidity"]];this.setColour(nO),this.appendValueInput("PIN",Number).appendField(new ht.FieldDropdown([["DHT11","DHT11"],["DHT22","DHT22"]]),"TYPE").appendField(ht.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(new ht.FieldDropdown(t),"WHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("WHAT");return{temperature:ht.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_TEM,relative_humidity:ht.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_HUM,tempandhum:ht.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_TEM_HUM}[t]}))}},dO={init:function(){this.setColour(nO),this.appendDummyInput().appendField(ht.Msg.MIXLY_ESP32_EXTERN_LIGHT),this.appendValueInput("PIN",Number).appendField(ht.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(ht.Msg.MIXLY_ESP32_EXTERN_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(ht.Msg.ESP32_SENSOR_NIXGO_LIGHT_TOOLTIP)}},IO={init:function(){this.setColour(nO),this.appendDummyInput().appendField(ht.Msg.MIXLY_ESP32_EXTERN_SOUND),this.appendValueInput("PIN",Number).appendField(ht.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(ht.Msg.MIXLY_ESP32_EXTERN_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(ht.Msg.ESP32_SENSOR_NIXGO_SOUND_TOOLTIP)}},TO={init:function(){this.setColour(nO),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new ht.FieldDropdown([[ht.Msg.TEXT_TRIM_LEFT,"left"],[ht.Msg.TEXT_TRIM_RIGHT,"right"]]),"direction").appendField(ht.Msg.MIXLY_ESP32_NEAR),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("direction"),i=ht.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP,n=ht.Msg.MIXLY_ESP32_NEAR;return i+{left:ht.Msg.TEXT_TRIM_LEFT,right:ht.Msg.TEXT_TRIM_RIGHT}[e]+n}))}},hO={init:function(){this.setColour(nO),this.appendValueInput("SUB").appendField("BMP280").setCheck("var"),this.appendDummyInput("").appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_GETTEMPERATUE,"get_BMP_temperature()"],[ht.Msg.MIXLY_GETPRESSURE,"get_BMP_pressure()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{"get_BMP_temperature()":ht.Msg.MIXLY_MICROBIT_SENSOR_BMP_temperature_TOOLTIP,"get_BMP_pressure()":ht.Msg.MIXLY_MICROBIT_SENSOR_BMP_press_TOOLTIP}[e]}))}},MO={init:function(){this.setColour(nO),this.appendValueInput("SUB").appendField("SHT20").setCheck("var"),this.appendDummyInput("").appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_GETTEMPERATUE,"get_SHT_temperature()"],[ht.Msg.MIXLY_GETHUMIDITY,"get_SHT_relative_humidity()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{"get_SHT_temperature()":ht.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,"get_SHT_relative_humidity()":ht.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},mO={init:function(){this.setColour(nO),this.appendValueInput("PIN",Number).appendField("DS18x20 "+ht.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(ht.Msg.MIXLY_GETTEMPERATUE),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(ht.Msg.MIXLY_MICROBIT_SENSOR_DS18X20_TOOLTIP)}},OO={init:function(){this.setColour(nO),this.appendDummyInput("").appendField("LM35"+ht.Msg.MIXLY_TEMP),this.appendValueInput("PIN",Number).appendField(ht.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(ht.Msg.MIXLY_GETTEMPERATUE),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(ht.Msg.MIXLY_TOOLTIP_LM35)}},EO={init:function(){this.setColour(nO),this.appendValueInput("I2CSUB").appendField(ht.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(ht.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(ht.Msg.MIXLY_SETUP+ht.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new ht.FieldDropdown([["MPU9250","MPU9250"],["BMP280","BMP280"],["SHT20","SHT20"],["ADXL345","ADXL345"],["LTR308","LTR308"],["LTR381RGB","LTR381RGB"],["HP203X","HP203X"],["SHTC3","SHTC3"],["AHT21","AHT21"],["VL53L0X","VL53L0X"],["QMC5883L","QMC5883L"],["MAX30102","MAX30102"],["APDS9960","APDS9960"],["RFID","RFID"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setFieldValue("LTR308","key")}},RO={init:function(){this.setColour(nO),this.appendDummyInput().appendField(ht.Msg.MIXLY_ESP32_MAX30102+" MAX30102"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(ht.Msg.MIXLY_GET).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_ESP32_MAX30102_IR,"[0]"],[ht.Msg.MIXLY_ESP32_MAX30102_RED,"[1]"],[ht.Msg.MIXLY_ESP32_MAX30102_IR+","+ht.Msg.MIXLY_ESP32_MAX30102_RED,""]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},cO={init:function(){this.setColour(nO),this.appendDummyInput().appendField(ht.Msg.MIXLY_ESP32_APDS9960+" APDS9960"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(ht.Msg.MIXLY_GET).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_ESP32_APDS9960_COLOR,"color"],[ht.Msg.MIXLY_ESP32_APDS9960_GESTURE,"gesture"],[ht.Msg.MIXLY_ESP32_APDS9960_APPROACH,"proximity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},gO={init:function(){this.setColour(nO),this.appendDummyInput().appendField(ht.Msg.MIXLY_ESP32_EXTERN_LIGHT+" LTR308"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(ht.Msg.MIXLY_GET_LIGHT_INTENSITY),this.setOutput(!0,Number),this.setInputsInline(!0)}},CO={init:function(){this.setColour(nO),this.appendValueInput("SUB").appendField(ht.Msg.HTML_COLOUR+ht.Msg.MSG.catSensor+" LTR381RGB").setCheck("var"),this.appendDummyInput("").appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_GET+ht.Msg.HTML_COLOUR,"[2]"],[ht.Msg.MIXLY_GET+ht.Msg.MIXLY_IR_STRENGTH,"[1]"],[ht.Msg.MIXLY_GET+ht.Msg.MIXLY_LIGHT_STRENGTH,"[0]"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},SO={init:function(){this.setColour(nO),this.appendValueInput("SUB").appendField(ht.Msg.MIXLY_EXTERN_LIGHTUV+" LTR390UV").setCheck("var"),this.appendDummyInput().appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_GET_ENV_LIGHT,"E"],[ht.Msg.MIXLY_GET_ULTRAVIOLET,"U"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},AO={init:function(){this.setColour(nO),this.appendDummyInput().appendField(ht.Msg.MIXLY_LASER_RANGE+" VL53L0X"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(ht.Msg.MIXLY_GET_DISTANCE+"(mm)"),this.setOutput(!0,Number),this.setInputsInline(!0)}},LO={init:function(){this.setColour(nO),this.appendValueInput("SUB").appendField(ht.Msg.MIXLY_TEM_HUM+" SHTC3").setCheck("var"),this.appendDummyInput("").appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_GETTEMPERATUE,"temperature"],[ht.Msg.MIXLY_GETHUMIDITY,"humidity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{temperature:ht.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,humidity:ht.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},NO={init:function(){this.setColour(nO),this.appendValueInput("SUB").appendField(ht.Msg.MIXLY_TEM_HUM+" AHT21").setCheck("var"),this.appendDummyInput("").appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_GETTEMPERATUE,"temperature"],[ht.Msg.MIXLY_GETHUMIDITY,"humidity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{temperature:ht.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,relative_humidity:ht.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},DO={init:function(){this.setColour(nO),this.appendValueInput("SUB").appendField(ht.Msg.MIXLY_Altitude+ht.Msg.MSG.catSensor+" HP203X").setCheck("var"),this.appendDummyInput("").appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_GETPRESSURE,"pressure()"],[ht.Msg.MIXLY_GETTEMPERATUE,"temperature()"],[ht.Msg.MIXLY_GET_ALTITUDE,"altitude()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},fO={init:function(){this.setColour(nO),this.appendValueInput("SUB").appendField(ht.Msg.MIXLY_MIXGOPE_FIELD+ht.Msg.MSG.catSensor+" QMC5883L").setCheck("var"),this.appendDummyInput("").appendField(ht.Msg.MIXLY_MICROBIT_JS_GET).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"get_bearing()"],[ht.Msg.MIXLY_TEMPERATURE,"get_temp()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},PO={init:function(){this.setColour(nO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput("").appendField(ht.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_MICROBIT_shake,"shake"],[ht.Msg.MIXLY_UP,"up"],[ht.Msg.MIXLY_DOWN,"down"],[ht.Msg.MIXLY_LEFT,"left"],[ht.Msg.MIXLY_RIGHT,"right"],[ht.Msg.MIXLY_MICROBIT_face_up,"face up"],[ht.Msg.MIXLY_MICROBIT_face_down,"face down"]]),"gesture"),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("gesture"),i=ht.Msg.MIXLY_MICROBIT_JS_CURRENT,n=ht.Msg.MSG.catSensor,s=ht.Msg.MIXLY_MICROBIT_JS_STATE,o=ht.Msg.MIXLY_MICROBIT_PERFORMANCE;return i+n+s+{shake:ht.Msg.MIXLY_MICROBIT_shake,up:ht.Msg.MIXLY_UP,down:ht.Msg.MIXLY_DOWN,left:ht.Msg.MIXLY_LEFT,right:ht.Msg.MIXLY_RIGHT,"face up":ht.Msg.MIXLY_MICROBIT_face_up,"face down":ht.Msg.MIXLY_MICROBIT_face_down}[e]+o}))}},FO={init:function(){this.setColour(nO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_JS_ACCELERATION).appendField(new ht.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=ht.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=ht.Msg.MIXLY_MICROBIT_Direction,s=ht.Msg.MIXLY_MICROBIT_JS_ACCELERATION1;return i+{x:"x",y:"y",z:"z","(x,y,z)":ht.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},vO={init:function(){this.setColour(nO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_JS_GET+ht.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH).appendField(new ht.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=ht.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=ht.Msg.MIXLY_MICROBIT_Direction,s=ht.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH;return i+{x:"x",y:"y",z:"z","(x,y,z)":ht.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},YO={init:function(){this.setColour(nO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+ht.Msg.MIXLY_ESP32_SENOR_GYRO).appendField(new ht.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=ht.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=ht.Msg.MIXLY_MICROBIT_Direction,s=ht.Msg.MIXLY_ESP32_SENOR_GYRO;return i+{x:"x",y:"y",z:"z","(x,y,z)":ht.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},xO={init:function(){this.setColour(nO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS)}},XO={init:function(){this.setColour(nO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(ht.Msg.MIXLY_GETTEMPERATUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_GETTEMPERATUE)}},bO={init:function(){this.setColour(nO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_JS_GET_COMPASS).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH,"strength"],[ht.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"heading"]]),"compass"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("compass");return ht.Msg.MIXLY_MICROBIT_JS_GET_COMPASS+{strength:ht.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH,heading:ht.Msg.MIXLY_MICROBIT_JS_BY_ANGLE}[e]}))}},VO={init:function(){this.setColour(nO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_Reset_COMPASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_MICROBIT_Reset_COMPASS)}},yO={init:function(){this.setColour(nO),this.appendValueInput("SPISUB").appendField(ht.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("SUB").appendField(ht.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(ht.Msg.MIXLY_SETUP+ht.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new ht.FieldDropdown([["RFID","RFID"],["WS-LoRa","Weather"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setFieldValue("RFID","key")}},BO={init:function(){this.setColour(nO),this.appendDummyInput().appendField("RFID"+ht.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(ht.Msg.MIXLY_LIST_INDEX),this.appendDummyInput("").appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_RFID_READ_CARD_UID,"id"],[ht.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL,"content"],[ht.Msg.MIXLY_ALL,"ALL"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},GO={init:function(){this.setColour(nO),this.appendDummyInput().appendField("RFID"+ht.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput("").appendField(ht.Msg.MIXLY_RFID_READ_CARD_UID),this.setOutput(!0,Number),this.setInputsInline(!0)}},UO={init:function(){this.setColour(nO),this.appendDummyInput().appendField("RFID"+ht.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(ht.Msg.MIXLY_LIST_INDEX),this.appendDummyInput("").appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL),this.setOutput(!0,"Tuple"),this.setInputsInline(!0)}},wO={init:function(){this.setColour(nO),this.appendDummyInput().appendField(ht.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(ht.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(ht.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},kO={init:function(){this.setColour(nO),this.appendDummyInput().appendField(ht.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(ht.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(ht.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.appendDummyInput().appendField(ht.Msg.RETURN_SUCCESS_OR_NOT),this.setInputsInline(!0),this.setOutput(!0,Boolean)}},HO={init:function(){this.setColour(nO),this.appendDummyInput().appendField("RFID"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput("").appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_RFID_SCAN_OK,"0"],[ht.Msg.MIXLY_RFID_SCAN_NOTAGERR,"1"],[ht.Msg.MIXLY_RFID_SCAN_ERROR,"2"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},WO={init:function(){this.setColour(nO),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendDummyInput("").appendField(ht.Msg.MIXLY_MICROBIT_JS_GET).appendField(new ht.FieldDropdown([["全部(元组)","data()[0]"],["全部(json)","data()[1]"],["全部(json,附带位置信息)","data()[2]"],["编号","data()[0][0]"],["电量","data()[0][1]"],["风速","data()[0][2]"],["阵风","data()[0][3]"],["风向","data()[0][4]"],["雨量","data()[0][5]"],["温度","data()[0][6]"],["湿度","data()[0][7]"],["光照","data()[0][8]"],["紫外线","data()[0][9]"],["大气压","data()[0][10]"],["信号强度","data()[0][11]"],["信噪比","data()[0][12]"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip("返回气象数据元组 data= (设备id,电池状态,风速m/s,阵风m/s,风向°,雨量mm,温度℃,湿度%,光照Lux,UVI,大气压Pa,信号强度dB,信噪比dB)")}},KO={init:function(){this.setColour(nO),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendDummyInput("").appendField(ht.Msg.MIXLY_SERIAL_AVAILABLE),this.setOutput(!0,Number),this.setInputsInline(!0)}},JO={init:function(){this.setColour(nO),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendValueInput("BASE").appendField("以主题"),this.appendDummyInput("").appendField("串口发送至MixIO"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},QO={init:function(){this.setColour(nO),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.itemCount_=2,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new ht.icons.MutatorIcon(["weather_set_label_item"],this)),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip()},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("weather_set_label_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n>6),i.push(128|63&o)):(2048<=o&&o<=55295||57344<=o&&o<=65535)&&(n+=3,i.push(224|15&o>>12),i.push(128|63&o>>6),i.push(128|63&o))}for(s=0;s>8,255&n].concat(i)}(t,!0),i="",n=0;n=0?"0x700000":["mixgo_zero"].indexOf(n)>=0?"0xE00000":"0x3A0000","32x12 Matrix"==_?(e.definitions_.import_matrix32x12="import matrix32x12",i=s+" = matrix32x12.Matrix("+o+",font_address="+p+")\n"):"16x8 Matrix"==_&&(e.definitions_.import_matrix16x8="import matrix16x8",i=s+" = matrix16x8.Matrix("+o+")\n"),i},sL=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},oL=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",space = "+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+",center = "+this.getFieldValue("center")+")\n"},_L=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},pL=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",delay = "+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},aL=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},uL=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",speed ="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+",space = "+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+")\n"},rL=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".fill(0)\n"+i+".show()\n"},lL=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("OP")+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")\n"},dL=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+"))",e.ORDER_ATOMIC]},IL=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".pixel(int("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+"), int("+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+"), "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"+i+".show()\n"},TL=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".get_brightness()",e.ORDER_ATOMIC]},hL=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".set_brightness("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+")\n"},ML=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("image"),e.ORDER_ATOMIC]},mL=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".map_"+t.getFieldValue("OP")+"("+e.valueToCode(t,"A",e.ORDER_ATOMIC)+","+e.valueToCode(t,"B",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},OL=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".map_invert("+e.valueToCode(t,"A",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},EL=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC);return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+" = ssd1306.SSD1306_I2C("+e.valueToCode(this,"row",e.ORDER_ATOMIC)+","+e.valueToCode(this,"column",e.ORDER_ATOMIC)+","+i+")\n"},RL=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_str("+(e.valueToCode(this,"Text_line1",e.ORDER_ASSIGNMENT)||"''")+","+(e.valueToCode(this,"Text_line2",e.ORDER_ASSIGNMENT)||"''")+","+(e.valueToCode(this,"Text_line3",e.ORDER_ASSIGNMENT)||"''")+","+(e.valueToCode(this,"Text_line4",e.ORDER_ASSIGNMENT)||"''")+")\n"},cL=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_line("+e.valueToCode(this,"x1",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"y1",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"x2",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"y2",e.ORDER_ATOMIC)+", 1)\n"},gL=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),o=e.valueToCode(this,"width",e.ORDER_ATOMIC),_=e.valueToCode(this,"height",e.ORDER_ATOMIC),p="TRUE"==this.getFieldValue("fill")?"True":"False",a=this.getFieldValue("OP");switch(p){case"True":return i+".show_fill_rect("+n+", "+s+", "+o+", "+_+","+a+")\n";case"False":return i+".show_rect("+n+", "+s+", "+o+", "+_+","+a+")\n"}},CL=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),o=e.valueToCode(this,"length",e.ORDER_ATOMIC);return i+".show_"+this.getFieldValue("direction")+"("+n+", "+s+", "+o+", 1)\n"},SL=function(t,e){return["ON"==this.getFieldValue("ONOFF")?"1":"0",e.ORDER_ATOMIC]},AL=function(t,e){e.definitions_.import_matrix="import matrix";var i=t.getFieldValue("OP");return[e.valueToCode(t,"img",e.ORDER_ATOMIC)+".shift_"+i+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},LL=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return e.definitions_.import_ssd1306="import ssd1306",e.definitions_.import_machine="import machine",i+".show_fill("+this.getFieldValue("key")+")\n"},NL=function(t,e){return["matrix.Image."+this.getFieldValue("ANIMATION"),e.ORDER_ATOMIC]},DL=function(t,e){var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),o=e.valueToCode(this,"r",e.ORDER_ATOMIC),_="TRUE"==this.getFieldValue("fill")?"True":"False",p=this.getFieldValue("OP");switch(_){case"True":return i+".show_fill_circle("+n+", "+s+", "+o+", "+p+")\n";case"False":return i+".show_circle("+n+", "+s+", "+o+", "+p+")\n"}},fL=function(t,e){var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var n=e.valueToCode(this,"x0",e.ORDER_ATOMIC),s=e.valueToCode(this,"y0",e.ORDER_ATOMIC),o=e.valueToCode(this,"x1",e.ORDER_ATOMIC),_=e.valueToCode(this,"y1",e.ORDER_ATOMIC),p=e.valueToCode(this,"x2",e.ORDER_ATOMIC),a=e.valueToCode(this,"y2",e.ORDER_ATOMIC),u="TRUE"==this.getFieldValue("fill")?"True":"False",r=this.getFieldValue("OP");switch(u){case"True":return i+".show_fill_triangle("+n+", "+s+", "+o+", "+_+", "+p+", "+a+", "+r+")\n";case"False":return i+".show_triangle("+n+", "+s+", "+o+", "+_+", "+p+", "+a+", "+r+")\n"}},PL=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_bitmap("+e.valueToCode(this,"START_X",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"START_Y",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"bitmap_name",e.ORDER_ATOMIC)+","+e.valueToCode(this,"WIDTH",e.ORDER_ATOMIC)+","+e.valueToCode(this,"HEIGHT",e.ORDER_ATOMIC)+")\n"},FL=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_pixel("+e.valueToCode(this,"POS_X",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"POS_Y",e.ORDER_ATOMIC)+")\n"},vL=function(t,e){var i,n=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),s=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),o=this.getFieldValue("key");return"TM1650"==o?(e.definitions_.import_tm1650="import tm1650",i=n+" = tm1650."+o+"("+s+")\n"):"TM1637"==o&&(e.definitions_.import_tm1637="import tm1637",i=n+" = tm1637."+o+"("+s+")\n"),i},YL=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+"."+this.getFieldValue("STAT")+"()\n"},xL=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".shownum("+e.valueToCode(this,"VALUE",e.ORDER_ATOMIC)+")\n"},XL=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".showDP("+e.valueToCode(this,"NO",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"},bL=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".intensity("+e.valueToCode(this,"VALUE",e.ORDER_ATOMIC)+")\n"},VL=function(t,e){e.definitions_.import_st7789="import st7789";var i=Mt.Boards.getSelectedBoardKey().split(":")[2],n="";n=["mpython","mixgo_pe","mixgo_nova"].indexOf(i)>=0?"0x700000":["mixgo_zero"].indexOf(i)>=0?"0xE00000":"0x3A0000";var s=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),o=e.valueToCode(this,"SPISUB",e.ORDER_ATOMIC),_=e.valueToCode(this,"PINCS",e.ORDER_ATOMIC),p=e.valueToCode(this,"PINDC",e.ORDER_ATOMIC);return s+" = st7789.ST7789("+o+","+e.valueToCode(this,"WIDTH",e.ORDER_ATOMIC)+","+e.valueToCode(this,"HEIGHT",e.ORDER_ATOMIC)+",dc_pin="+p+",cs_pin="+_+",rotation="+this.getFieldValue("rotate")+",font_address="+n+")\n"},yL=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a=i+".image("+n+",x = "+s+",y = "+o+",size = "+_+",color="+p+")\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a=i+".image("+n+",x = "+s+",y = "+o+",size = "+_+",color=0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},BL=function(t,e){var i="0x"+this.getFieldValue("COLOR").slice(1);return["0x"+((16252928&i)>>8|(64512&i)>>5|(255&i)>>3).toString(16),e.ORDER_ATOMIC]},GL=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),u=this.getFieldValue("center");if("0x"==a.slice(0,2))var r=i+".shows("+n+",x = "+s+",y = "+o+",size = "+_+",space = "+p+",center = "+u+",color="+a+")\n";else{const t=a.match(/\d+/g);var l="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");r=i+".shows("+n+",x = "+s+",y = "+o+",size = "+_+",space = "+p+",center = "+u+",color=0x"+((16252928&l)>>8|(64512&l)>>5|(255&l)>>3).toString(16)+")\n"}return r},UL=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==_.slice(0,2))var p=i+".frame("+n+",size = "+s+",delay = "+o+",color="+_+")\n";else{const t=_.match(/\d+/g);var a="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");p=i+".frame("+n+",size = "+s+",delay = "+o+",color=0x"+((16252928&a)>>8|(64512&a)>>5|(255&a)>>3).toString(16)+")\n"}return p},wL=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==a.slice(0,2))var u=i+".scroll("+n+",y = "+s+",size = "+o+",speed ="+_+",space = "+p+",color="+a+")\n";else{const t=a.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u=i+".scroll("+n+",y = "+s+",size = "+o+",speed ="+_+",space = "+p+",color=0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\n"}return u},kL=function(t,e){return e.definitions_.import_st7789="import st7789",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".fill(st7789."+this.getFieldValue("key")+")\n"},HL=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"x1",e.ORDER_ATOMIC),s=e.valueToCode(this,"y1",e.ORDER_ATOMIC),o=e.valueToCode(this,"x2",e.ORDER_ATOMIC),_=e.valueToCode(this,"y2",e.ORDER_ATOMIC),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a=i+".line("+n+", "+s+", "+o+", "+_+", color="+p+")\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a=i+".line("+n+", "+s+", "+o+", "+_+", color=0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},WL=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),s=this.getFieldValue("key"),o=e.valueToCode(this,"ADDR",e.ORDER_ATOMIC);return e.definitions_.import_i2clcd="import i2clcd",i+" = i2clcd.LCD("+n+",lcd_width="+s+",i2c_addr="+o+")\n"},KL=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",column = "+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+",line = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",center = "+this.getFieldValue("center")+")\n"},JL=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".print("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",column = "+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+",line = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",delay="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},QL=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".backlight("+this.getFieldValue("key")+")\n"},zL=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".clear()\n"},qL=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),s=e.valueToCode(this,"ADDR",e.ORDER_ATOMIC),o=Mt.Boards.getSelectedBoardKey().split(":")[2],_="";return _=["mpython","mixgo_pe","mixgo_nova"].indexOf(o)>=0?"0x700000":["mixgo_zero"].indexOf(o)>=0?"0xE00000":"0x3A0000",e.definitions_.import_oled128x64="import oled128x64",i+" = oled128x64.OLED("+n+",address="+s+",font_address="+_+")\n"},jL=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".image("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},ZL=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".image("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",x = "+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+",y = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",size = "+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+")\n"},$L=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},tN=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",x = "+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+",y = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",size = "+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+",space = "+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+",center = "+this.getFieldValue("center")+")\n"},eN=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},iN=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",size = "+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+",delay = "+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},nN=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},sN=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",y = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",size = "+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+",speed ="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+",space = "+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+")\n"},oN=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".fill(0)\n"+i+".show()\n"},_N=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("OP")+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")\n"},pN=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+"))",e.ORDER_ATOMIC]},aN=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".pixel(int("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+"), int("+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+"), "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"+i+".show()\n"},uN=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),o=e.valueToCode(t,"w",e.ORDER_ATOMIC),_=e.valueToCode(t,"h",e.ORDER_ATOMIC),p=t.getFieldValue("state");return i+"."+t.getFieldValue("shape")+"("+n+", "+s+", "+o+", "+_+", "+p+")\n"+i+".show()\n"},rN=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),o=e.valueToCode(t,"length",e.ORDER_ATOMIC),_=t.getFieldValue("state");return i+"."+("0"==t.getFieldValue("dir_h_v")?"v":"h")+"line("+n+", "+s+", "+o+", "+_+")\n"+i+".show()\n"},lN=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".line("+e.valueToCode(t,"x1",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"y1",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"x2",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"y2",e.ORDER_ATOMIC)+", "+t.getFieldValue("state")+")\n"+i+".show()\n"},dN=function(t,e){var i=Mt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix","onboard_matrix.shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},IN=function(t,e){var i=Mt.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),o=this.getFieldValue("center");return"mixgo_zero"==i||"mixgo_nova"==i?(e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft","onboard_tft.shows("+n+",space = "+s+",center = "+o+")\n"):(e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix","onboard_matrix.shows("+n+",space = "+s+",center = "+o+")\n")},TN=function(t,e){var i=Mt.Boards.getSelectedBoardKey().split(":")[2];if("mpython"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var n="onboard_oled.frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";n="onboard_matrix.frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}return n},hN=function(t,e){var i=Mt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix","onboard_matrix.frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",delay = "+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},MN=function(t,e){var i=Mt.Boards.getSelectedBoardKey().split(":")[2];if("mpython"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var n="onboard_oled.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";n="onboard_matrix.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}return n},mN=function(t,e){var i=Mt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix","onboard_matrix.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",speed ="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+",space = "+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+")\n"},ON=function(t,e){var i=Mt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix",["onboard_matrix."+t.getFieldValue("image"),e.ORDER_ATOMIC]},EN=function(t,e){var i=Mt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix",["onboard_matrix."+t.getFieldValue("image"),e.ORDER_ATOMIC]},RN=function(t,e){var i={"#000000":"0","#ff0000":"1"};function n(t){let e="";if(t.length%2==1&&(t="0"+t),t.length<8){let e=8-t.length;for(let i=1;i<=e;i++)t="0"+t}for(let i=1;i<=t.length;i++)i%2==0&&i!==t.length?e=e+t[i-1]+",0x":e+=t[i-1];return"0x"+e}let s=[];for(let e=0;e<12;e++){let o="",_=0,p=0;for(let n=0;n<32;n++)n<8?p=7-n:n<16?p=23-n:n<24?p=39-n:n<32&&(p=55-n),_+=Number(i[t.getFieldValue(e+"-"+n)])*Math.pow(2,31-p);o+=n(_.toString(16)),s.unshift(o)}let o=[];for(let t=0;t>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},ZN=function(t,e){var i=Mt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=this.getFieldValue("center"),u=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==u.slice(0,2))var r="onboard_tft.shows("+n+",x = "+s+",y = "+o+",size = "+_+",space = "+p+",center = "+a+",color="+u+")\n";else{const t=u.match(/\d+/g);var l="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");r="onboard_tft.shows("+n+",x = "+s+",y = "+o+",size = "+_+",space = "+p+",center = "+a+",color=0x"+((16252928&l)>>8|(64512&l)>>5|(255&l)>>3).toString(16)+")\n"}return r},$N=function(t,e){var i=Mt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_tft","onboard_tft.frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",color=0xffff)\n"},tD=function(t,e){var i=Mt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==_.slice(0,2))var p="onboard_tft.frame("+n+",size = "+s+",delay = "+o+",color="+_+")\n";else{const t=_.match(/\d+/g);var a="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");p="onboard_tft.frame("+n+",size = "+s+",delay = "+o+",color=0x"+((16252928&a)>>8|(64512&a)>>5|(255&a)>>3).toString(16)+")\n"}return p},eD=function(t,e){var i=Mt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_tft","onboard_tft.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",color=0xffff)\n"},iD=function(t,e){var i=Mt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==a.slice(0,2))var u="onboard_tft.scroll("+n+",y = "+s+",size = "+o+",speed ="+_+",space = "+p+",color="+a+")\n";else{const t=a.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u="onboard_tft.scroll("+n+",y = "+s+",size = "+o+",speed ="+_+",space = "+p+",color=0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\n"}return u},nD=function(t,e){var i=Mt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),o=e.valueToCode(t,"w",e.ORDER_ATOMIC),_=e.valueToCode(t,"h",e.ORDER_ATOMIC),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),a=t.getFieldValue("shape");if("0x"==p.slice(0,2))var u="onboard_tft."+a+"("+n+", "+s+", "+o+", "+_+", "+p+")\nonboard_tft.show()\n";else{const t=p.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u="onboard_tft."+a+"("+n+", "+s+", "+o+", "+_+", 0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\nonboard_tft.show()\n"}return u},sD=function(t,e){var i=Mt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),o=e.valueToCode(t,"length",e.ORDER_ATOMIC),_=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),p=t.getFieldValue("dir_h_v");if("0x"==_.slice(0,2))var a="onboard_tft."+("0"==p?"v":"h")+"line("+n+", "+s+", "+o+", "+_+")\nonboard_tft.show()\n";else{const t=_.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a="onboard_tft."+("0"==p?"v":"h")+"line("+n+", "+s+", "+o+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\nonboard_tft.show()\n"}return a},oD=function(t,e){var i=Mt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x1",e.ORDER_ATOMIC),s=e.valueToCode(t,"y1",e.ORDER_ATOMIC),o=e.valueToCode(t,"x2",e.ORDER_ATOMIC),_=e.valueToCode(t,"y2",e.ORDER_ATOMIC),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a="onboard_tft.line("+n+", "+s+", "+o+", "+_+", "+p+")\nonboard_tft.show()\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a="onboard_tft.line("+n+", "+s+", "+o+", "+_+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\nonboard_tft.show()\n"}return a},_D=function(t,e){var i=Mt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";return"onboard_tft.fill(0)\nonboard_tft.show()\n"},pD=function(t,e){var i=Mt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft","onboard_tft."+t.getFieldValue("OP")+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")\n"},aD=function(t,e){var i=Mt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft",["hex(onboard_tft.pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+")))",e.ORDER_ATOMIC]},uD=function(t,e){var i=Mt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==o.slice(0,2))var _="onboard_tft.pixel(int("+n+"), int("+s+"), "+o+")\nonboard_tft.show()\n";else{const t=o.match(/\d+/g);var p="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");_="onboard_tft.pixel(int("+n+"), int("+s+"), 0x"+((16252928&p)>>8|(64512&p)>>5|(255&p)>>3).toString(16)+")\nonboard_tft.show()\n"}return _},rD=function(t,e){var i=Mt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";return["onboard_tft.get_brightness()",e.ORDER_ATOMIC]},lD=function(t,e){var i=Mt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft","onboard_tft.set_brightness("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+")\n"},dD=function(t,e){var i=Mt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"VAR",e.ORDER_ASSIGNMENT);if("0x"==n.slice(0,2))var s="onboard_tft.fill("+n+")\nonboard_tft.show()\n";else{const t=n.match(/\d+/g);var o="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");s="onboard_tft.fill(0x"+((16252928&o)>>8|(64512&o)>>5|(255&o)>>3).toString(16)+")\nonboard_tft.show()\n"}return s},ID=function(t,e){var i=Mt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock";var n=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a=_+"=Clock("+n+","+s+","+o+","+p+")\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a=_+"=Clock("+n+","+s+","+o+",0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},TD=function(t,e){var i=Mt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".set_rtctime()\n"},hD=function(t,e){var i=Mt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".set_time("+e.valueToCode(this,"h",e.ORDER_ASSIGNMENT)+","+e.valueToCode(this,"m",e.ORDER_ASSIGNMENT)+","+e.valueToCode(this,"s",e.ORDER_ASSIGNMENT)+")\n"},MD=function(t,e){var i=Mt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".draw_clock()\n"},mD=function(t,e){var i=Mt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock";var n=e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==s.slice(0,2))var o=n+".clear("+s+")\n";else{const t=s.match(/\d+/g);var _="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");o=n+".clear(0x"+((16252928&_)>>8|(64512&_)>>5|(255&_)>>3).toString(16)+")\n"}return o},OD=function(t,e){var i=Mt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),o=e.valueToCode(t,"r",e.ORDER_ATOMIC),_=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),p=t.getFieldValue("shape");if("0x"==_.slice(0,2))var a="onboard_tft.ellipse("+n+", "+s+", "+o+", "+o+", "+_+","+p+")\nonboard_tft.show()\n";else{const t=_.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a="onboard_tft.ellipse("+n+", "+s+", "+o+", "+o+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+","+p+")\nonboard_tft.show()\n"}return a},ED=function(t,e){var i=this.getFieldValue("path"),n=this.getFieldValue("module");return e.definitions_["import_"+i+"_"+n]="from "+i+" import "+n,""},RD=function(t,e){var i=this.getFieldValue("module");return e.definitions_["import_"+i]="import "+i,""},cD=function(t,e){for(var i=this.getFieldValue("NAME"),n=new Array(this.itemCount_),s=0;s {\n"+e.statementToCode(this,"do")+"})\n"},gY=function(){return"control.reset()\n"},CY=function(t,e){return"control.waitMicros("+(e.valueToCode(this,"data",e.ORDER_ATOMIC)||Mt.Profile.default.serial)+")\n"},SY=function(t,e){return"control.raiseEvent("+(e.valueToCode(this,"system_event_bus_source",e.ORDER_ATOMIC)||Mt.Profile.default.serial)+", "+(e.valueToCode(this,"system_event_bus_value",e.ORDER_ATOMIC)||Mt.Profile.default.serial)+")\n"},AY=function(t,e){return"control.onEvent("+(e.valueToCode(this,"system_event_bus_source",e.ORDER_ATOMIC)||Mt.Profile.default.serial)+", "+(e.valueToCode(this,"system_event_bus_value",e.ORDER_ATOMIC)||Mt.Profile.default.serial)+", () => {\n"+e.statementToCode(this,"do")+")\n"},LY=function(t,e){return["control.eventTimestamp()",e.ORDER_ATOMIC]},NY=function(t,e){return["control.eventValue()",e.ORDER_ATOMIC]},DY=function(t,e){return[this.getFieldValue("key"),e.ORDER_ATOMIC]},fY=function(t,e){return[this.getFieldValue("key"),e.ORDER_ATOMIC]},PY=function(t,e){return["control.deviceName()",e.ORDER_ATOMIC]},FY=function(t,e){return["control.deviceSerialNumber()",e.ORDER_ATOMIC]},vY=function(t,e){return"panic("+(e.valueToCode(this,"STATUS_CODE",e.ORDER_ATOMIC)||"1000")+")\n"},YY=function(t,e){switch(e.definitions_.import_time="import time",this.getFieldValue("Time")){case"ms":return["time.ticks_ms()",e.ORDER_ATOMIC];case"us":return["time.ticks_us()",e.ORDER_ATOMIC]}},xY=function(){return"while True:\n pass\n"},XY=function(t,e){return e.definitions_.import_mixgo="import mixgo","reset()\n"},bY=function(t,e){return e.definitions_.import_os="import os","os.uname()"},VY=function(t,e){e.definitions_.import_time="import time";var i=e.valueToCode(this,"DELAY_TIME",e.ORDER_ATOMIC)||"1000";switch(this.getFieldValue("Time")){case"s":return"time.sleep("+i+")\n";case"ms":return"time.sleep_ms("+i+")\n";case"us":return"time.sleep_us("+i+")\n"}},yY=function(t,e){e.definitions_.import_time="import time";var i=e.valueToCode(this,"DELAY_TIME",e.ORDER_ATOMIC)||"1000";switch(this.getFieldValue("Time")){case"s":return"time.sleep("+i+")\n";case"ms":return"time.sleep_ms("+i+")\n";case"us":return"time.sleep_us("+i+")\n"}},BY=function(t,e){return e.definitions_.import_mixgo="import mixgo",(e.valueToCode(this,"VAR",e.ORDER_NONE)||"None")+".init(period = "+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+", mode = Timer."+(e.valueToCode(this,"mode",e.ORDER_NONE)||"None")+", callback = "+(e.valueToCode(this,"callback",e.ORDER_NONE)||"None")+")\n"},GY=function(t,e){return e.definitions_.import_machine="import machine",(e.valueToCode(this,"VAR",e.ORDER_NONE)||"None")+".init(period = "+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+", mode = machine.Timer."+this.getFieldValue("mode")+", callback = "+(e.valueToCode(this,"callback",e.ORDER_NONE)||"None")+")\n"},UY=function(t,e){return e.definitions_.import_time="import time",["time.ticks_diff("+(e.valueToCode(this,"END",e.ORDER_NONE)||"0")+", "+(e.valueToCode(this,"START",e.ORDER_NONE)||"0")+")",e.ORDER_ATOMIC]},wY=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return e.definitions_.import_machine="import machine",i+" = machine.Timer(0)\n"},kY=function(t,e){return e.definitions_.import_machine="import machine","wdt = machine.WDT(timeout= "+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+")\n"},HY=function(t,e){e.definitions_.import_machine="import machine";return"wdt.feed()\n"},WY=function(t,e){e.definitions_.import_machine="import machine";return"machine.reset()\n"},KY=function(t,e){e.definitions_.import_bitbot_onboard_bot51="from bitbot import onboard_bot51";return"onboard_bot51.shutdown()\n"},JY=wY,QY=GY,zY=UY,qY=VY,jY=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api."+this.getFieldValue("mode")+"("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+","+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},ZY=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api."+this.getFieldValue("mode")+"("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+","+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+","+e.valueToCode(this,"day",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},$Y=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api.weather_hourly("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+","+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+","+e.valueToCode(this,"hour",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},tx={};tx["元控青春"]={description:"MicroPython[ESP32C3 MixGo CE]",digital_pin:Mt.Profile.generate(["0-18","21","33-48"]),input_pin:Mt.Profile.generate(["0-18","21","33-48"]),output_pin:Mt.Profile.generate(["0-18","21","33-48"]),pwm_input:Mt.Profile.generate(["0-18","21","33-48"],"pwm","pwm"),analog_input:Mt.Profile.generate(["1-18"],"adc","adc"),pwm_output:Mt.Profile.generate(["0-18","21","33-48"],"pwm","pwm"),analog_output:Mt.Profile.generate(["1-18"],"adc","adc"),espnow_channel:Mt.Profile.generate(["1-13"]),haskylens_model:Mt.Profile.generate(["0-4"]),digital:Mt.Profile.generate(["0-18","21","33-48"],"pin","pin"),pwm_pin:Mt.Profile.generate(["0-18","21","33-48"]),pwm:Mt.Profile.generate(["0-18","21","33-48"],"pwm","pwm"),analog_pin:Mt.Profile.generate(["1-18"]),analog:Mt.Profile.generate(["1-18"],"adc","adc"),touch:Mt.Profile.generate(["1-14"],"tc","tc"),touch_pin:Mt.Profile.generate(["1-14"]),button:[["B1","B1key"],["B2","B2key"],["A1","A1key"],["A2","A2key"],["A3","A3key"],["A4","A4key"]],buttonB:[["B1","B1key"],["B2","B2key"]],axis:Mt.Profile.generate(["0-4"]),exlcdh:Mt.Profile.generate(["0-15"]),exlcdv:Mt.Profile.generate(["0-7"]),brightness:Mt.Profile.generate(["0-9"]),tts_voice:Mt.Profile.generate(["0-16"]),tts_builtin_music:Mt.Profile.generate(["0-47"]),tts_bgmusic:Mt.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["SILLY","onboard_matrix.SILLY"],["FABULOUS","onboard_matrix.FABULOUS"],["SURPRISED","onboard_matrix.SURPRISED"],["ASLEEP","onboard_matrix.ASLEEP"],["ANGRY","onboard_matrix.ANGRY"],["CONFUSED","onboard_matrix.CONFUSED"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"],["LEFT_ARROW","onboard_matrix.LEFT_ARROW"],["RIGHT_ARROW","onboard_matrix.RIGHT_ARROW"],["DRESS","onboard_matrix.DRESS"],["TRANSFORMERS","onboard_matrix.TRANSFORMERS"],["SCISSORS","onboard_matrix.SCISSORS"],["EXIT","onboard_matrix.EXIT"],["TREE","onboard_matrix.TREE"],["PACMAN","onboard_matrix.PACMAN"],["TARGET","onboard_matrix.TARGET"],["TSHIRT","onboard_matrix.TSHIRT"],["ROLLERSKATE","onboard_matrix.ROLLERSKATE"],["DUCK","onboard_matrix.DUCK"],["HOUSE","onboard_matrix.HOUSE"],["TORTOISE","onboard_matrix.TORTOISE"],["BUTTERFLY","onboard_matrix.BUTTERFLY"],["STICKFIGURE","onboard_matrix.STICKFIGURE"],["GHOST","onboard_matrix.GHOST"],["PITCHFORK","onboard_matrix.PITCHFORK"],["MUSIC_QUAVERS","onboard_matrix.MUSIC_QUAVERS"],["MUSIC_QUAVER","onboard_matrix.MUSIC_QUAVER"],["MUSIC_CROTCHET","onboard_matrix.MUSIC_CROTCHET"],["COW","onboard_matrix.COW"],["RABBIT","onboard_matrix.RABBIT"],["SQUARE_SMALL","onboard_matrix.SQUARE_SMALL"],["SQUARE","onboard_matrix.SQUARE"],["DIAMOND_SMALL","onboard_matrix.DIAMOND_SMALL"],["DIAMOND","onboard_matrix.DIAMOND"],["CHESSBOARD","onboard_matrix.CHESSBOARD"],["TRIANGLE_LEFT","onboard_matrix.TRIANGLE_LEFT"],["TRIANGLE","onboard_matrix.TRIANGLE"],["SNAKE","onboard_matrix.SNAKE"],["UMBRELLA","onboard_matrix.UMBRELLA"],["SKULL","onboard_matrix.SKULL"],["GIRAFFE","onboard_matrix.GIRAFFE"],["SWORD","onboard_matrix.SWORD"]],builtinimg_extern:[["HEART","matrix32x12.Matrix.HEART"],["HEART_SMALL","matrix32x12.Matrix.HEART_SMALL"],["HAPPY","matrix32x12.Matrix.HAPPY"],["SAD","matrix32x12.Matrix.SAD"],["SMILE","matrix32x12.Matrix.SMILE"],["SILLY","matrix32x12.Matrix.SILLY"],["FABULOUS","matrix32x12.Matrix.FABULOUS"],["SURPRISED","matrix32x12.Matrix.SURPRISED"],["ASLEEP","matrix32x12.Matrix.ASLEEP"],["ANGRY","matrix32x12.Matrix.ANGRY"],["CONFUSED","matrix32x12.Matrix.CONFUSED"],["NO","matrix32x12.Matrix.NO"],["YES","matrix32x12.Matrix.YES"],["LEFT_ARROW","matrix32x12.Matrix.LEFT_ARROW"],["RIGHT_ARROW","matrix32x12.Matrix.RIGHT_ARROW"],["DRESS","matrix32x12.Matrix.DRESS"],["TRANSFORMERS","matrix32x12.Matrix.TRANSFORMERS"],["SCISSORS","matrix32x12.Matrix.SCISSORS"],["EXIT","matrix32x12.Matrix.EXIT"],["TREE","matrix32x12.Matrix.TREE"],["PACMAN","matrix32x12.Matrix.PACMAN"],["TARGET","matrix32x12.Matrix.TARGET"],["TSHIRT","matrix32x12.Matrix.TSHIRT"],["ROLLERSKATE","matrix32x12.Matrix.ROLLERSKATE"],["DUCK","matrix32x12.Matrix.DUCK"],["HOUSE","matrix32x12.Matrix.HOUSE"],["TORTOISE","matrix32x12.Matrix.TORTOISE"],["BUTTERFLY","matrix32x12.Matrix.BUTTERFLY"],["STICKFIGURE","matrix32x12.Matrix.STICKFIGURE"],["GHOST","matrix32x12.Matrix.GHOST"],["PITCHFORK","matrix32x12.Matrix.PITCHFORK"],["onboard_music_QUAVERS","matrix32x12.Matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","matrix32x12.Matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","matrix32x12.Matrix.onboard_music_CROTCHET"],["COW","matrix32x12.Matrix.COW"],["RABBIT","matrix32x12.Matrix.RABBIT"],["SQUARE_SMALL","matrix32x12.Matrix.SQUARE_SMALL"],["SQUARE","matrix32x12.Matrix.SQUARE"],["DIAMOND_SMALL","matrix32x12.Matrix.DIAMOND_SMALL"],["DIAMOND","matrix32x12.Matrix.DIAMOND"],["CHESSBOARD","matrix32x12.Matrix.CHESSBOARD"],["TRIANGLE_LEFT","matrix32x12.Matrix.TRIANGLE_LEFT"],["TRIANGLE","matrix32x12.Matrix.TRIANGLE"],["SNAKE","matrix32x12.Matrix.SNAKE"],["UMBRELLA","matrix32x12.Matrix.UMBRELLA"],["SKULL","matrix32x12.Matrix.SKULL"],["GIRAFFE","matrix32x12.Matrix.GIRAFFE"],["SWORD","matrix32x12.Matrix.SWORD"]],imglist:[["ALL_CLOCKS","matrix.Image.ALL_CLOCKS"],["ALL_ARROWS","matrix.Image.ALL_ARROWS"]],playlist:[["DADADADUM","spk_midi.DADADADUM"],["ENTERTAINER","spk_midi.ENTERTAINER"],["PRELUDE","spk_midi.PRELUDE"],["ODE","spk_midi.ODE"],["NYAN","spk_midi.NYAN"],["RINGTONE","spk_midi.RINGTONE"],["FUNK","spk_midi.FUNK"],["BLUES","spk_midi.BLUES"],["BIRTHDAY","spk_midi.BIRTHDAY"],["WEDDING","spk_midi.WEDDING"],["FUNERAL","spk_midi.FUNERAL"],["PUNCHLINE","spk_midi.PUNCHLINE"],["PYTHON","spk_midi.PYTHON"],["BADDY","spk_midi.BADDY"],["CHASE","spk_midi.CHASE"],["BA_DING","spk_midi.BA_DING"],["WAWAWAWAA","spk_midi.WAWAWAWAA"],["JUMP_UP","spk_midi.JUMP_UP"],["JUMP_DOWN","spk_midi.JUMP_DOWN"],["POWER_UP","spk_midi.POWER_UP"],["POWER_DOWN","spk_midi.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],tone_notes:[["NOTE_C3","131"],["NOTE_D3","147"],["NOTE_E3","165"],["NOTE_F3","175"],["NOTE_G3","196"],["NOTE_A3","220"],["NOTE_B3","247"],["NOTE_C4","262"],["NOTE_D4","294"],["NOTE_E4","330"],["NOTE_F4","349"],["NOTE_G4","392"],["NOTE_A4","440"],["NOTE_B4","494"],["NOTE_C5","523"],["NOTE_D5","587"],["NOTE_E5","659"],["NOTE_F5","698"],["NOTE_G5","784"],["NOTE_A5","880"],["NOTE_B5","988"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"]]},tx["元控"]={description:"MicroPython[ESP32C3 MixGo CE]",digital_pin:Mt.Profile.generate(["0-18","21","33-48"]),input_pin:Mt.Profile.generate(["0-18","21","33-48"]),output_pin:Mt.Profile.generate(["0-18","21","33-48"]),pwm_input:Mt.Profile.generate(["0-18","21","33-48"],"pwm","pwm"),analog_input:Mt.Profile.generate(["1-18"],"adc","adc"),pwm_output:Mt.Profile.generate(["0-18","21","33-48"],"pwm","pwm"),analog_output:Mt.Profile.generate(["1-18"],"adc","adc"),espnow_channel:Mt.Profile.generate(["1-13"]),haskylens_model:Mt.Profile.generate(["0-4"]),digital:Mt.Profile.generate(["0-18","21","33-48"],"pin","pin"),pwm_pin:Mt.Profile.generate(["0-18","21","33-48"]),pwm:Mt.Profile.generate(["0-18","21","33-48"],"pwm","pwm"),analog_pin:Mt.Profile.generate(["1-18"]),analog:Mt.Profile.generate(["1-18"],"adc","adc"),touch:Mt.Profile.generate(["1-14"],"tc","tc"),touch_pin:Mt.Profile.generate(["1-14"]),button:[["B1","B1key"],["B2","B2key"],["A1","A1key"],["A2","A2key"],["A3","A3key"],["A4","A4key"]],buttonB:[["B1","B1key"],["B2","B2key"]],axis:Mt.Profile.generate(["0-4"]),exlcdh:Mt.Profile.generate(["0-15"]),exlcdv:Mt.Profile.generate(["0-7"]),brightness:Mt.Profile.generate(["0-9"]),tts_voice:Mt.Profile.generate(["0-16"]),tts_builtin_music:Mt.Profile.generate(["0-47"]),tts_bgmusic:Mt.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["SILLY","onboard_matrix.SILLY"],["FABULOUS","onboard_matrix.FABULOUS"],["SURPRISED","onboard_matrix.SURPRISED"],["ASLEEP","onboard_matrix.ASLEEP"],["ANGRY","onboard_matrix.ANGRY"],["CONFUSED","onboard_matrix.CONFUSED"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"],["LEFT_ARROW","onboard_matrix.LEFT_ARROW"],["RIGHT_ARROW","onboard_matrix.RIGHT_ARROW"],["DRESS","onboard_matrix.DRESS"],["TRANSFORMERS","onboard_matrix.TRANSFORMERS"],["SCISSORS","onboard_matrix.SCISSORS"],["EXIT","onboard_matrix.EXIT"],["TREE","onboard_matrix.TREE"],["PACMAN","onboard_matrix.PACMAN"],["TARGET","onboard_matrix.TARGET"],["TSHIRT","onboard_matrix.TSHIRT"],["ROLLERSKATE","onboard_matrix.ROLLERSKATE"],["DUCK","onboard_matrix.DUCK"],["HOUSE","onboard_matrix.HOUSE"],["TORTOISE","onboard_matrix.TORTOISE"],["BUTTERFLY","onboard_matrix.BUTTERFLY"],["STICKFIGURE","onboard_matrix.STICKFIGURE"],["GHOST","onboard_matrix.GHOST"],["PITCHFORK","onboard_matrix.PITCHFORK"],["MUSIC_QUAVERS","onboard_matrix.MUSIC_QUAVERS"],["MUSIC_QUAVER","onboard_matrix.MUSIC_QUAVER"],["MUSIC_CROTCHET","onboard_matrix.MUSIC_CROTCHET"],["COW","onboard_matrix.COW"],["RABBIT","onboard_matrix.RABBIT"],["SQUARE_SMALL","onboard_matrix.SQUARE_SMALL"],["SQUARE","onboard_matrix.SQUARE"],["DIAMOND_SMALL","onboard_matrix.DIAMOND_SMALL"],["DIAMOND","onboard_matrix.DIAMOND"],["CHESSBOARD","onboard_matrix.CHESSBOARD"],["TRIANGLE_LEFT","onboard_matrix.TRIANGLE_LEFT"],["TRIANGLE","onboard_matrix.TRIANGLE"],["SNAKE","onboard_matrix.SNAKE"],["UMBRELLA","onboard_matrix.UMBRELLA"],["SKULL","onboard_matrix.SKULL"],["GIRAFFE","onboard_matrix.GIRAFFE"],["SWORD","onboard_matrix.SWORD"]],builtinimg_extern:[["HEART","matrix32x12.Matrix.HEART"],["HEART_SMALL","matrix32x12.Matrix.HEART_SMALL"],["HAPPY","matrix32x12.Matrix.HAPPY"],["SAD","matrix32x12.Matrix.SAD"],["SMILE","matrix32x12.Matrix.SMILE"],["SILLY","matrix32x12.Matrix.SILLY"],["FABULOUS","matrix32x12.Matrix.FABULOUS"],["SURPRISED","matrix32x12.Matrix.SURPRISED"],["ASLEEP","matrix32x12.Matrix.ASLEEP"],["ANGRY","matrix32x12.Matrix.ANGRY"],["CONFUSED","matrix32x12.Matrix.CONFUSED"],["NO","matrix32x12.Matrix.NO"],["YES","matrix32x12.Matrix.YES"],["LEFT_ARROW","matrix32x12.Matrix.LEFT_ARROW"],["RIGHT_ARROW","matrix32x12.Matrix.RIGHT_ARROW"],["DRESS","matrix32x12.Matrix.DRESS"],["TRANSFORMERS","matrix32x12.Matrix.TRANSFORMERS"],["SCISSORS","matrix32x12.Matrix.SCISSORS"],["EXIT","matrix32x12.Matrix.EXIT"],["TREE","matrix32x12.Matrix.TREE"],["PACMAN","matrix32x12.Matrix.PACMAN"],["TARGET","matrix32x12.Matrix.TARGET"],["TSHIRT","matrix32x12.Matrix.TSHIRT"],["ROLLERSKATE","matrix32x12.Matrix.ROLLERSKATE"],["DUCK","matrix32x12.Matrix.DUCK"],["HOUSE","matrix32x12.Matrix.HOUSE"],["TORTOISE","matrix32x12.Matrix.TORTOISE"],["BUTTERFLY","matrix32x12.Matrix.BUTTERFLY"],["STICKFIGURE","matrix32x12.Matrix.STICKFIGURE"],["GHOST","matrix32x12.Matrix.GHOST"],["PITCHFORK","matrix32x12.Matrix.PITCHFORK"],["onboard_music_QUAVERS","matrix32x12.Matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","matrix32x12.Matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","matrix32x12.Matrix.onboard_music_CROTCHET"],["COW","matrix32x12.Matrix.COW"],["RABBIT","matrix32x12.Matrix.RABBIT"],["SQUARE_SMALL","matrix32x12.Matrix.SQUARE_SMALL"],["SQUARE","matrix32x12.Matrix.SQUARE"],["DIAMOND_SMALL","matrix32x12.Matrix.DIAMOND_SMALL"],["DIAMOND","matrix32x12.Matrix.DIAMOND"],["CHESSBOARD","matrix32x12.Matrix.CHESSBOARD"],["TRIANGLE_LEFT","matrix32x12.Matrix.TRIANGLE_LEFT"],["TRIANGLE","matrix32x12.Matrix.TRIANGLE"],["SNAKE","matrix32x12.Matrix.SNAKE"],["UMBRELLA","matrix32x12.Matrix.UMBRELLA"],["SKULL","matrix32x12.Matrix.SKULL"],["GIRAFFE","matrix32x12.Matrix.GIRAFFE"],["SWORD","matrix32x12.Matrix.SWORD"]],imglist:[["ALL_CLOCKS","matrix.Image.ALL_CLOCKS"],["ALL_ARROWS","matrix.Image.ALL_ARROWS"]],playlist:[["DADADADUM","spk_midi.DADADADUM"],["ENTERTAINER","spk_midi.ENTERTAINER"],["PRELUDE","spk_midi.PRELUDE"],["ODE","spk_midi.ODE"],["NYAN","spk_midi.NYAN"],["RINGTONE","spk_midi.RINGTONE"],["FUNK","spk_midi.FUNK"],["BLUES","spk_midi.BLUES"],["BIRTHDAY","spk_midi.BIRTHDAY"],["WEDDING","spk_midi.WEDDING"],["FUNERAL","spk_midi.FUNERAL"],["PUNCHLINE","spk_midi.PUNCHLINE"],["PYTHON","spk_midi.PYTHON"],["BADDY","spk_midi.BADDY"],["CHASE","spk_midi.CHASE"],["BA_DING","spk_midi.BA_DING"],["WAWAWAWAA","spk_midi.WAWAWAWAA"],["JUMP_UP","spk_midi.JUMP_UP"],["JUMP_DOWN","spk_midi.JUMP_DOWN"],["POWER_UP","spk_midi.POWER_UP"],["POWER_DOWN","spk_midi.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],tone_notes:[["NOTE_C3","131"],["NOTE_D3","147"],["NOTE_E3","165"],["NOTE_F3","175"],["NOTE_G3","196"],["NOTE_A3","220"],["NOTE_B3","247"],["NOTE_C4","262"],["NOTE_D4","294"],["NOTE_E4","330"],["NOTE_F4","349"],["NOTE_G4","392"],["NOTE_A4","440"],["NOTE_B4","494"],["NOTE_C5","523"],["NOTE_D5","587"],["NOTE_E5","659"],["NOTE_F5","698"],["NOTE_G5","784"],["NOTE_A5","880"],["NOTE_B5","988"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"]]},tx["ESP32S2 Generic"]={description:"MicroPython[ESP32C3 MixGo CC]",digital_pin:Mt.Profile.generate(["0-18","21","33-48"]),input_pin:Mt.Profile.generate(["0-18","21","33-48"]),output_pin:Mt.Profile.generate(["0-18","21","33-48"]),pwm_input:Mt.Profile.generate(["0-18","21","33-48"],"pwm","pwm"),analog_input:Mt.Profile.generate(["1-18"],"adc","adc"),pwm_output:Mt.Profile.generate(["0-18","21","33-48"],"pwm","pwm"),analog_output:Mt.Profile.generate(["1-18"],"adc","adc"),espnow_channel:Mt.Profile.generate(["1-13"]),haskylens_model:Mt.Profile.generate(["0-4"]),digital:Mt.Profile.generate(["0-18","21","33-48"],"pin","pin"),pwm_pin:Mt.Profile.generate(["0-18","21","33-48"]),pwm:Mt.Profile.generate(["0-18","21","33-48"],"pwm","pwm"),analog_pin:Mt.Profile.generate(["1-18"]),analog:Mt.Profile.generate(["1-18"],"adc","adc"),touch:Mt.Profile.generate(["1-14"],"tc","tc"),touch_pin:Mt.Profile.generate(["1-14"]),button:[["B1","B1key"],["B2","B2key"],["A1","A1key"],["A2","A2key"],["A3","A3key"],["A4","A4key"]],buttonB:[["B1","B1key"],["B2","B2key"]],axis:Mt.Profile.generate(["0-4"]),exlcdh:Mt.Profile.generate(["0-15"]),exlcdv:Mt.Profile.generate(["0-7"]),brightness:Mt.Profile.generate(["0-9"]),tts_voice:Mt.Profile.generate(["0-16"]),tts_builtin_music:Mt.Profile.generate(["0-47"]),tts_bgmusic:Mt.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["SILLY","onboard_matrix.SILLY"],["FABULOUS","onboard_matrix.FABULOUS"],["SURPRISED","onboard_matrix.SURPRISED"],["ASLEEP","onboard_matrix.ASLEEP"],["ANGRY","onboard_matrix.ANGRY"],["CONFUSED","onboard_matrix.CONFUSED"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"],["LEFT_ARROW","onboard_matrix.LEFT_ARROW"],["RIGHT_ARROW","onboard_matrix.RIGHT_ARROW"],["DRESS","onboard_matrix.DRESS"],["TRANSFORMERS","onboard_matrix.TRANSFORMERS"],["SCISSORS","onboard_matrix.SCISSORS"],["EXIT","onboard_matrix.EXIT"],["TREE","onboard_matrix.TREE"],["PACMAN","onboard_matrix.PACMAN"],["TARGET","onboard_matrix.TARGET"],["TSHIRT","onboard_matrix.TSHIRT"],["ROLLERSKATE","onboard_matrix.ROLLERSKATE"],["DUCK","onboard_matrix.DUCK"],["HOUSE","onboard_matrix.HOUSE"],["TORTOISE","onboard_matrix.TORTOISE"],["BUTTERFLY","onboard_matrix.BUTTERFLY"],["STICKFIGURE","onboard_matrix.STICKFIGURE"],["GHOST","onboard_matrix.GHOST"],["PITCHFORK","onboard_matrix.PITCHFORK"],["MUSIC_QUAVERS","onboard_matrix.MUSIC_QUAVERS"],["MUSIC_QUAVER","onboard_matrix.MUSIC_QUAVER"],["MUSIC_CROTCHET","onboard_matrix.MUSIC_CROTCHET"],["COW","onboard_matrix.COW"],["RABBIT","onboard_matrix.RABBIT"],["SQUARE_SMALL","onboard_matrix.SQUARE_SMALL"],["SQUARE","onboard_matrix.SQUARE"],["DIAMOND_SMALL","onboard_matrix.DIAMOND_SMALL"],["DIAMOND","onboard_matrix.DIAMOND"],["CHESSBOARD","onboard_matrix.CHESSBOARD"],["TRIANGLE_LEFT","onboard_matrix.TRIANGLE_LEFT"],["TRIANGLE","onboard_matrix.TRIANGLE"],["SNAKE","onboard_matrix.SNAKE"],["UMBRELLA","onboard_matrix.UMBRELLA"],["SKULL","onboard_matrix.SKULL"],["GIRAFFE","onboard_matrix.GIRAFFE"],["SWORD","onboard_matrix.SWORD"]],builtinimg_extern:[["HEART","matrix32x12.Matrix.HEART"],["HEART_SMALL","matrix32x12.Matrix.HEART_SMALL"],["HAPPY","matrix32x12.Matrix.HAPPY"],["SAD","matrix32x12.Matrix.SAD"],["SMILE","matrix32x12.Matrix.SMILE"],["SILLY","matrix32x12.Matrix.SILLY"],["FABULOUS","matrix32x12.Matrix.FABULOUS"],["SURPRISED","matrix32x12.Matrix.SURPRISED"],["ASLEEP","matrix32x12.Matrix.ASLEEP"],["ANGRY","matrix32x12.Matrix.ANGRY"],["CONFUSED","matrix32x12.Matrix.CONFUSED"],["NO","matrix32x12.Matrix.NO"],["YES","matrix32x12.Matrix.YES"],["LEFT_ARROW","matrix32x12.Matrix.LEFT_ARROW"],["RIGHT_ARROW","matrix32x12.Matrix.RIGHT_ARROW"],["DRESS","matrix32x12.Matrix.DRESS"],["TRANSFORMERS","matrix32x12.Matrix.TRANSFORMERS"],["SCISSORS","matrix32x12.Matrix.SCISSORS"],["EXIT","matrix32x12.Matrix.EXIT"],["TREE","matrix32x12.Matrix.TREE"],["PACMAN","matrix32x12.Matrix.PACMAN"],["TARGET","matrix32x12.Matrix.TARGET"],["TSHIRT","matrix32x12.Matrix.TSHIRT"],["ROLLERSKATE","matrix32x12.Matrix.ROLLERSKATE"],["DUCK","matrix32x12.Matrix.DUCK"],["HOUSE","matrix32x12.Matrix.HOUSE"],["TORTOISE","matrix32x12.Matrix.TORTOISE"],["BUTTERFLY","matrix32x12.Matrix.BUTTERFLY"],["STICKFIGURE","matrix32x12.Matrix.STICKFIGURE"],["GHOST","matrix32x12.Matrix.GHOST"],["PITCHFORK","matrix32x12.Matrix.PITCHFORK"],["onboard_music_QUAVERS","matrix32x12.Matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","matrix32x12.Matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","matrix32x12.Matrix.onboard_music_CROTCHET"],["COW","matrix32x12.Matrix.COW"],["RABBIT","matrix32x12.Matrix.RABBIT"],["SQUARE_SMALL","matrix32x12.Matrix.SQUARE_SMALL"],["SQUARE","matrix32x12.Matrix.SQUARE"],["DIAMOND_SMALL","matrix32x12.Matrix.DIAMOND_SMALL"],["DIAMOND","matrix32x12.Matrix.DIAMOND"],["CHESSBOARD","matrix32x12.Matrix.CHESSBOARD"],["TRIANGLE_LEFT","matrix32x12.Matrix.TRIANGLE_LEFT"],["TRIANGLE","matrix32x12.Matrix.TRIANGLE"],["SNAKE","matrix32x12.Matrix.SNAKE"],["UMBRELLA","matrix32x12.Matrix.UMBRELLA"],["SKULL","matrix32x12.Matrix.SKULL"],["GIRAFFE","matrix32x12.Matrix.GIRAFFE"],["SWORD","matrix32x12.Matrix.SWORD"]],imglist:[["ALL_CLOCKS","matrix.Image.ALL_CLOCKS"],["ALL_ARROWS","matrix.Image.ALL_ARROWS"]],playlist:[["DADADADUM",".DADADADUM"],["ENTERTAINER",".ENTERTAINER"],["PRELUDE",".PRELUDE"],["ODE",".ODE"],["NYAN",".NYAN"],["RINGTONE",".RINGTONE"],["FUNK",".FUNK"],["BLUES",".BLUES"],["BIRTHDAY",".BIRTHDAY"],["WEDDING",".WEDDING"],["FUNERAL",".FUNERAL"],["PUNCHLINE",".PUNCHLINE"],["PYTHON",".PYTHON"],["BADDY",".BADDY"],["CHASE",".CHASE"],["BA_DING",".BA_DING"],["WAWAWAWAA",".WAWAWAWAA"],["JUMP_UP",".JUMP_UP"],["JUMP_DOWN",".JUMP_DOWN"],["POWER_UP",".POWER_UP"],["POWER_DOWN",".POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],tone_notes:[["NOTE_C3","131"],["NOTE_D3","147"],["NOTE_E3","165"],["NOTE_F3","175"],["NOTE_G3","196"],["NOTE_A3","220"],["NOTE_B3","247"],["NOTE_C4","262"],["NOTE_D4","294"],["NOTE_E4","330"],["NOTE_F4","349"],["NOTE_G4","392"],["NOTE_A4","440"],["NOTE_B4","494"],["NOTE_C5","523"],["NOTE_D5","587"],["NOTE_E5","659"],["NOTE_F5","698"],["NOTE_G5","784"],["NOTE_A5","880"],["NOTE_B5","988"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"]]};const ex=tx,ix=20,nx={init:function(){this.setColour(ix),this.appendDummyInput("").appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_HIGH,"HIGH"],[ht.Msg.MIXLY_LOW,"LOW"]]),"BOOL"),this.setOutput(!0,Boolean),this.setTooltip(ht.Msg.MIXLY_ESP32_INOUT_HIGHLOW_TOOLTIP)}},sx={init:function(){this.setColour(ix),this.appendValueInput("PIN",Number).appendField(ht.Msg.MIXLY_Digital_PINMODEOUT).setCheck(Number),this.appendValueInput("STAT").appendField(ht.Msg.MIXLY_STAT).setCheck([Number,Boolean]),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_INOUT_DIGITAL_WRITE_TOOLTIP)}},ox={init:function(){this.setColour(ix),this.appendValueInput("PIN",Number).appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(ht.Msg.MIXLY_Digital_PINMODEIN).setCheck(Number),this.appendDummyInput().appendField(ht.Msg.MIXLY_ESP32_MACHINE_VALUE),this.setInputsInline(!0),this.setOutput(!0,[Boolean,Number]),this.setTooltip(ht.Msg.MIXLY_ESP32_INOUT_DIGITAL_READ_TOOLTIP)}},_x={init:function(){this.setColour(ix),this.appendValueInput("PIN",Number).appendField("PWM"+ht.Msg.MIXLY_Analog_PINMODEOUT).setCheck(Number),this.appendValueInput("NUM",Number).appendField(ht.Msg.MIXLY_VALUE2).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(ht.Msg.MIXLY_ESP32_INOUT_PWM_ANALOG_WRITE_TOOLTIP)}},px={init:function(){this.setColour(ix),this.appendValueInput("PIN",Number).appendField("DAC"+ht.Msg.MIXLY_Analog_PINMODEOUT).setCheck(Number),this.appendValueInput("NUM",Number).appendField(ht.Msg.MIXLY_VALUE2).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(ht.Msg.MIXLY_ESP32_INOUT_ANALOG_WRITE_TOOLTIP)}},ax={init:function(){this.setColour(ix),this.appendValueInput("PIN",Number).appendField(ht.Msg.MIXLY_Analog_PINMODEOUT).setCheck(Number),this.appendDummyInput().appendField(ht.Msg.MIXLY_MICROBIT_JS_PERIOD_MIL).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_mSecond,"period"],[ht.Msg.MIXLY_uSecond,"period_microseconds"]]),"key"),this.appendValueInput("NUM",Number).appendField(ht.Msg.MIXLY_STAT).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(ht.Msg.MIXLY_ESP32_INOUT_ANALOG_WRITE_SET_TOOLTIP)}},ux={init:function(){this.setColour(ix),this.appendValueInput("PIN",Number).appendField("PWM"+ht.Msg.MIXLY_Analog_PINMODEOUT).setCheck(Number),this.appendValueInput("NUM",Number).appendField(ht.Msg.MIXLY_FREQUENCY+ht.Msg.MIXLY_STAT).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(ht.Msg.MIXLY_ESP32_INOUT_PWM_ANALOG_WRITE_SET_FREQ_TOOLTIP)}},rx={init:function(){this.setColour(ix),this.appendValueInput("PIN",Number).appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(ht.Msg.MIXLY_Analog_PINMODEIN).setCheck(Number),this.appendDummyInput().appendField(ht.Msg.MIXLY_ESP32_MACHINE_VALUE),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(ht.Msg.MIXLY_ESP32_INOUT_ANALOG_READ_TOOLTIP)}},lx={init:function(){this.setColour(ix),this.appendValueInput("PIN",Number).appendField(ht.Msg.MIXLY_Analog_PINMODEIN).setCheck(Number),this.appendDummyInput("").appendField(ht.Msg.MIXLY_ESP32_REF_VOLTAGE+ht.Msg.MIXLY_STAT).appendField(new ht.FieldDropdown([["3.3V","machine.ADC.ATTN_11DB"],["2.2V","machine.ADC.ATTN_6DB"],["1.5V","machine.ADC.ATTN_2_5DB"],["1.2V","machine.ADC.ATTN_0DB"]]),"atten"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(ht.Msg.MIXLY_ESP32_INOUT_ANALOG_ATTEN_TOOLTIP)}},dx={init:function(){this.setColour(ix),this.appendValueInput("pin").appendField(ht.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(ht.Msg.MIXLY_ESP32_TOUCH_SENSOR),this.appendDummyInput().appendField(ht.Msg.MIXLY_ESP32_MACHINE_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_INOUT_PIN_PRESSED_TOOLTIP)}},Ix={init:function(){this.setColour(20),this.appendValueInput("PIN",Number).appendField(ht.Msg.MIXLY_ATTACHINTERRUPT_PIN).setCheck(Number),this.appendDummyInput("").appendField(ht.Msg.MIXLY_MODE).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_RISING,"machine.Pin.IRQ_RISING"],[ht.Msg.MIXLY_FALLING,"machine.Pin.IRQ_FALLING"],[ht.Msg.MIXLY_CHANGE,"(machine.Pin.IRQ_RISING | machine.Pin.IRQ_FALLING)"]]),"mode"),this.appendValueInput("DO").appendField(ht.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_INOUT_PIN_ATTACHINTERRUPT_TOOLTIP)}},Tx={init:function(){this.setColour(20),this.appendDummyInput().appendField(ht.Msg.MIXLY_SETUP).appendField(new ht.FieldTextInput("pin#"),"PIN_OBJ"),this.appendDummyInput("").appendField(ht.Msg.MIXLY_MICROPYTHON_AS).appendField(new ht.FieldDropdown([[ht.Msg.MIXLY_Digital_PINMODEOUT,"machine.Pin.OUT"],[ht.Msg.MIXLY_Digital_PINMODEIN,"machine.Pin.IN"],[ht.Msg.MIXLY_PINMODEPULLUP,"machine.Pin.IN, machine.Pin.PULL_UP"],[ht.Msg.MIXLY_PINMODEPULLDOWN,"machine.Pin.IN, machine.Pin.PULL_DOWN"]]),"MODE"),this.appendValueInput("PIN",Number).appendField(ht.Msg.MIXLY_PIN).setCheck(Number),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ht.Msg.MIXLY_ESP32_INOUT_DIGITAL_INIT_TOOLTIP)},getVars:function(){return["pin#"==this.getFieldValue("PIN_OBJ")?null:this.getFieldValue("PIN_OBJ")]},renameVar:function(t,e){ht.Names.equals(t,this.getFieldValue("PIN_OBJ"))&&this.setTitleValue(e,"PIN_OBJ")}},hx={init:function(){this.setColour(ix),this.appendDummyInput("").appendField(ht.Msg.MIXLY_SETUP).appendField(new ht.FieldTextInput("pwm#"),"PIN_OBJ").appendField(ht.Msg.MIXLY_MICROPYTHON_AS),this.appendDummyInput("").appendField("PWM"+ht.Msg.MIXLY_Analog_PINMODEOUT),this.appendValueInput("PIN",Number).appendField(ht.Msg.MIXLY_PIN).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(ht.Msg.MIXLY_ESP32_INOUT_PWM_ANALOG_WRITE_INIT_TOOLTIP)},getVars:function(){return["pwm#"==this.getFieldValue("PIN_OBJ")?null:this.getFieldValue("PIN_OBJ")]},renameVar:function(t,e){ht.Names.equals(t,this.getFieldValue("PIN_OBJ"))&&this.setTitleValue(e,"PIN_OBJ")}},Mx={init:function(){this.setColour(ix),this.appendDummyInput("").appendField(ht.Msg.MIXLY_SETUP).appendField(new ht.FieldTextInput("dac#"),"PIN_OBJ").appendField(ht.Msg.MIXLY_MICROPYTHON_AS),this.appendDummyInput("").appendField("DAC"+ht.Msg.MIXLY_Analog_PINMODEOUT),this.appendValueInput("PIN",Number).appendField(ht.Msg.MIXLY_PIN).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(ht.Msg.MIXLY_ESP32_INOUT_ANALOG_WRITE_INIT_TOOLTIP)},getVars:function(){return["dac#"==this.getFieldValue("PIN_OBJ")?null:this.getFieldValue("PIN_OBJ")]},renameVar:function(t,e){ht.Names.equals(t,this.getFieldValue("PIN_OBJ"))&&this.setTitleValue(e,"PIN_OBJ")}},mx={init:function(){this.setColour(ix),this.appendDummyInput("").appendField(ht.Msg.MIXLY_SETUP).appendField(new ht.FieldTextInput("adc#"),"PIN_OBJ").appendField(ht.Msg.MIXLY_MICROPYTHON_AS),this.appendDummyInput("").appendField(ht.Msg.MIXLY_Analog_PINMODEIN),this.appendValueInput("PIN",Number).appendField(ht.Msg.MIXLY_PIN).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(ht.Msg.MIXLY_ESP32_INOUT_ANALOG_READ_INIT_TOOLTIP)},getVars:function(){return["adc#"==this.getFieldValue("PIN_OBJ")?null:this.getFieldValue("PIN_OBJ")]},renameVar:function(t,e){ht.Names.equals(t,this.getFieldValue("PIN_OBJ"))&&this.setTitleValue(e,"PIN_OBJ")}},Ox={init:function(){this.setColour(ix),this.appendDummyInput("").appendField(ht.Msg.MIXLY_SETUP).appendField(new ht.FieldTextInput("tc#"),"PIN_OBJ").appendField(ht.Msg.MIXLY_MICROPYTHON_AS),this.appendDummyInput("").appendField(ht.Msg.MIXLY_ESP32_TOUCH_SENSOR),this.appendValueInput("PIN",Number).appendField(ht.Msg.MIXLY_PIN).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(ht.Msg.MIXLY_ESP32_INOUT_PIN_PRESSED_INIT_TOOLTIP)},getVars:function(){return["tc#"==this.getFieldValue("PIN_OBJ")?null:this.getFieldValue("PIN_OBJ")]},renameVar:function(t,e){ht.Names.equals(t,this.getFieldValue("PIN_OBJ"))&&this.setTitleValue(e,"PIN_OBJ")}},Ex=Tx,Rx=ux,cx=Ox,gx=dx,Cx=Ix,Sx=230,Ax={init:function(){this.setColour(Sx),this.appendDummyInput("").appendField(new ht.FieldDropdown(Mt.Profile.default.digital),"PIN"),this.setOutput(!0)}},Lx={init:function(){this.setColour(Sx),this.appendDummyInput("").appendField(new ht.FieldDropdown(Mt.Profile.default.digital_pin),"PIN"),this.setOutput(!0,Number)}},Nx={init:function(){this.setColour(Sx),this.appendDummyInput("").appendField(new ht.FieldDropdown(Mt.Profile.default.input_pin),"PIN"),this.setOutput(!0,Number)}},Dx={init:function(){this.setColour(Sx),this.appendDummyInput("").appendField(new ht.FieldDropdown(Mt.Profile.default.output_pin),"PIN"),this.setOutput(!0,Number)}},fx={init:function(){this.setColour(Sx),this.appendDummyInput("").appendField(new ht.FieldDropdown(Mt.Profile.default.espnow_channel),"PIN"),this.setOutput(!0,Number)}},Px={init:function(){this.setColour(Sx),this.appendDummyInput("").appendField(new ht.FieldDropdown(Mt.Profile.default.haskylens_model),"PIN"),this.setOutput(!0,Number)}},Fx={init:function(){this.setColour(Sx),this.appendDummyInput("").appendField(new ht.FieldDropdown(Mt.Profile.default.pwm_input),"PIN"),this.setOutput(!0)}},vx={init:function(){this.setColour(Sx),this.appendDummyInput("").appendField(new ht.FieldDropdown(Mt.Profile.default.analog_input),"PIN"),this.setOutput(!0)}},Yx={init:function(){this.setColour(Sx),this.appendDummyInput("").appendField(new ht.FieldDropdown(Mt.Profile.default.pwm_output),"PIN"),this.setOutput(!0)}},xx={init:function(){this.setColour(Sx),this.appendDummyInput("").appendField(new ht.FieldDropdown(Mt.Profile.default.analog_output),"PIN"),this.setOutput(!0)}},Xx={init:function(){this.setColour(Sx),this.appendDummyInput("").appendField(new ht.FieldDropdown(Mt.Profile.default.i2c_A_pin),"PIN"),this.setOutput(!0,Number)}},bx={init:function(){this.setColour(Sx),this.appendDummyInput("").appendField(new ht.FieldDropdown(Mt.Profile.default.i2c_B_pin),"PIN"),this.setOutput(!0,Number)}},Vx={init:function(){this.setColour(Sx),this.appendDummyInput("").appendField(new ht.FieldDropdown(Mt.Profile.default.spi_A_pin),"PIN"),this.setOutput(!0,Number)}},yx={init:function(){this.setColour(Sx),this.appendDummyInput("").appendField(new ht.FieldDropdown(Mt.Profile.default.spi_B_pin),"PIN"),this.setOutput(!0,Number)}},Bx={init:function(){this.setColour(Sx),this.appendDummyInput("").appendField(new ht.FieldDropdown(Mt.Profile.default.spi_C_pin),"PIN"),this.setOutput(!0,Number)}},Gx={init:function(){this.setColour(Sx),this.appendDummyInput("").appendField(new ht.FieldDropdown(Mt.Profile.default.spi_D_pin),"PIN"),this.setOutput(!0,Number)}},Ux={init:function(){this.setColour(Sx),this.appendDummyInput("").appendField(new ht.FieldDropdown(Mt.Profile.default.analog),"PIN"),this.setOutput(!0)}},wx={init:function(){this.setColour(Sx),this.appendDummyInput("").appendField(new ht.FieldDropdown(Mt.Profile.default.analog_pin),"PIN"),this.setOutput(!0,Number)}},kx={init:function(){this.setColour(Sx),this.appendDummyInput("").appendField(new ht.FieldDropdown(Mt.Profile.default.dac),"PIN"),this.setOutput(!0)}},Hx={init:function(){this.setColour(Sx),this.appendDummyInput("").appendField(new ht.FieldDropdown(Mt.Profile.default.dac_pin),"PIN"),this.setOutput(!0,Number)}},Wx={init:function(){this.setColour(Sx),this.appendDummyInput("").appendField(new ht.FieldDropdown(Mt.Profile.default.button),"PIN"),this.setOutput(!0,Number)}},Kx={init:function(){this.setColour(Sx),this.appendDummyInput("").appendField(new ht.FieldDropdown(Mt.Profile.default.buttonB),"PIN"),this.setOutput(!0,Number)}},Jx={init:function(){this.setColour(Sx),this.appendDummyInput("").appendField(new ht.FieldDropdown(Mt.Profile.default.pwm),"PIN"),this.setOutput(!0)}},Qx={init:function(){this.setColour(Sx),this.appendDummyInput("").appendField(new ht.FieldDropdown(Mt.Profile.default.pwm_pin),"PIN"),this.setOutput(!0,Number)}},zx={init:function(){this.setColour(Sx),this.appendDummyInput("").appendField(new ht.FieldDropdown(Mt.Profile.default.touch_pin),"PIN"),this.setOutput(!0,Number)}},qx={init:function(){this.setColour(Sx),this.appendDummyInput("").appendField(new ht.FieldDropdown(Mt.Profile.default.touch),"PIN"),this.setOutput(!0)}},jx={init:function(){this.setColour(Sx),this.appendDummyInput("").appendField(new ht.FieldDropdown(Mt.Profile.default.serial_pin),"PIN"),this.setOutput(!0,Number)}},Zx={init:function(){this.setColour(Sx),this.appendDummyInput("").appendField(new ht.FieldDropdown(Mt.Profile.default.builtinimg),"PIN"),this.setOutput(!0,"esp32_image")}},$x={init:function(){this.setColour(Sx),this.appendDummyInput("").appendField(new ht.FieldDropdown(Mt.Profile.default.builtinimg_extern),"PIN"),this.setOutput(!0,"esp32_image")}},tX={init:function(){this.setColour(Sx),this.appendDummyInput("").appendField(new ht.FieldDropdown(Mt.Profile.default.imglist),"PIN"),this.setOutput(!0)}},eX={init:function(){this.setColour(Sx),this.appendDummyInput("").appendField(new ht.FieldDropdown(Mt.Profile.default.playlist),"PIN"),this.setOutput(!0)}},iX={init:function(){this.setColour(Sx),this.appendDummyInput("").appendField(new ht.FieldDropdown(Mt.Profile.default.playlist_extern),"PIN"),this.setOutput(!0)}},nX={init:function(){this.setColour(Sx),this.appendDummyInput("").appendField(new ht.FieldDropdown(Mt.Profile.default.exlcdh),"PIN"),this.setOutput(!0,Number)}},sX={init:function(){this.setColour(Sx),this.appendDummyInput("").appendField(new ht.FieldDropdown(Mt.Profile.default.exlcdv),"PIN"),this.setOutput(!0,Number)}},oX={init:function(){this.setColour(Sx),this.appendDummyInput("").appendField(new ht.FieldDropdown(Mt.Profile.default.axis),"PIN"),this.setOutput(!0,Number)}},_X={init:function(){this.setColour(Sx),this.appendDummyInput("").appendField(new ht.FieldDropdown(Mt.Profile.default.brightness),"PIN"),this.setOutput(!0,Number)}},pX={init:function(){this.setColour(Sx),this.appendDummyInput("").appendField(new ht.FieldDropdown(Mt.Profile.default.tts_voice),"PIN"),this.setOutput(!0,Number)}},aX={init:function(){this.setColour(Sx),this.appendDummyInput("").appendField(new ht.FieldDropdown(Mt.Profile.default.tts_builtin_music),"PIN"),this.setOutput(!0,Number)}},uX={init:function(){this.setColour(Sx),this.appendDummyInput("").appendField(new ht.FieldDropdown(Mt.Profile.default.tts_bgmusic),"PIN"),this.setOutput(!0,Number)}},rX={init:function(){this.setColour(Sx),this.appendDummyInput("").appendField(new ht.FieldDropdown(Mt.Profile.default.tone_notes),"PIN"),this.setOutput(!0,Number)}},lX={init:function(){this.setColour(Sx),this.appendDummyInput("").appendField(new ht.FieldDropdown(Mt.Profile.default.radio_power),"PIN"),this.setOutput(!0,Number)}},dX={init:function(){this.setColour(Sx),this.appendDummyInput("").appendField(new ht.FieldDropdown(Mt.Profile.default.radio_datarate),"PIN"),this.setOutput(!0,Number)}},IX={init:function(){this.setColour(Sx),this.appendDummyInput("").appendField(new ht.FieldDropdown(Mt.Profile.default.one_more),"PIN"),this.setOutput(!0)}},TX={init:function(){this.setColour(Sx),this.appendDummyInput("").appendField(new ht.FieldDropdown(Mt.Profile.default.digital_dot),"PIN"),this.setOutput(!0,Number)}},hX=function(t,e){return["HIGH"==this.getFieldValue("BOOL")?"1":"0",e.ORDER_ATOMIC]},MX=function(t,e){e.definitions_.import_machine="import machine";var i="";return i+=e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".value("+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"},mX=function(t,e){e.definitions_.import_machine="import machine";return[e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".value()",e.ORDER_ATOMIC]},OX=function(t,e){return e.definitions_.import_machine="import machine",e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".duty("+e.valueToCode(this,"NUM",e.ORDER_ATOMIC)+")\n"},EX=function(t,e){return e.definitions_.import_machine="import machine",e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".write("+e.valueToCode(this,"NUM",e.ORDER_ATOMIC)+")\n"},RX=function(t,e){e.definitions_.import_machine="import machine";var i=e.valueToCode(this,"PIN",e.ORDER_ATOMIC),n=e.valueToCode(this,"NUM",e.ORDER_ATOMIC);return i+".set_analog_"+this.getFieldValue("key")+"("+n+")\n"},cX=function(t,e){return e.definitions_.import_machine="import machine",e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".freq("+e.valueToCode(this,"NUM",e.ORDER_ATOMIC)+")\n"},gX=function(t,e){return e.definitions_.import_machine="import machine",[e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".read()",e.ORDER_ATOMIC]},CX=function(t,e){return e.definitions_.import_machine="import machine",[e.valueToCode(this,"pin",e.ORDER_ATOMIC)+".read()",e.ORDER_ATOMIC]},SX=function(t,e){e.definitions_.import_machine="import machine";var i=e.valueToCode(this,"PIN",e.ORDER_ATOMIC),n=this.getFieldValue("mode");return"machine.Pin("+i+").irq(handler = "+e.valueToCode(this,"DO",e.ORDER_ATOMIC)+", trigger = "+n+")\n"},AX=function(t,e){e.definitions_.import_machine="import machine";var i=this.getFieldValue("PIN_OBJ")||"pin#",n=e.valueToCode(this,"PIN",e.ORDER_ATOMIC),s=this.getFieldValue("MODE");return("pin#"==i?"pin"+n:e.variableDB_.getName(i,ht.Variables.NAME_TYPE))+" = machine.Pin("+n+", "+s+")\n"},LX=function(t,e){e.definitions_.import_machine="import machine";var i=this.getFieldValue("PIN_OBJ")||"pwm#",n=e.valueToCode(this,"PIN",e.ORDER_ATOMIC);return("pwm#"==i?"pwm"+n:e.variableDB_.getName(i,ht.Variables.NAME_TYPE))+" = machine.PWM(machine.Pin("+n+"))\n"},NX=function(t,e){e.definitions_.import_machine="import machine";var i=this.getFieldValue("PIN_OBJ")||"dac#",n=e.valueToCode(this,"PIN",e.ORDER_ATOMIC);return("dac#"==i?"dac"+n:e.variableDB_.getName(i,ht.Variables.NAME_TYPE))+" = machine.DAC(machine.Pin("+n+"))\n"},DX=function(t,e){e.definitions_.import_machine="import machine";var i=this.getFieldValue("PIN_OBJ")||"adc#",n=e.valueToCode(this,"PIN",e.ORDER_ATOMIC);return("adc#"==i?"adc"+n:e.variableDB_.getName(i,ht.Variables.NAME_TYPE))+" = machine.ADC(machine.Pin("+n+"))\n"},fX=function(t,e){return e.definitions_.import_machine="import machine",e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".atten("+this.getFieldValue("atten")+")\n"},PX=function(t,e){e.definitions_.import_machine="import machine";var i=this.getFieldValue("PIN_OBJ")||"tc#",n=e.valueToCode(this,"PIN",e.ORDER_ATOMIC);return("tc#"==i?"tc"+n:e.variableDB_.getName(i,ht.Variables.NAME_TYPE))+" = machine.TouchPad(machine.Pin("+n+"))\n"},FX=function(t,e){return[this.getFieldValue("PIN"),e.ORDER_ATOMIC]},vX=FX,YX=FX,xX=FX,XX=FX,bX=FX,VX=FX,yX=FX,BX=FX,GX=FX,UX=FX,wX=FX,kX=FX,HX=FX,WX=FX,KX=FX,JX=FX,QX=FX,zX=FX,qX=FX,jX=FX,ZX=FX,$X=FX,tb=FX,eb=FX,ib=FX,nb=FX,sb=FX,ob=FX,_b=FX,pb=FX,ab=FX,ub=FX,rb=FX,lb=FX,db=FX,Ib=FX,Tb=FX,hb=FX,Mb=FX,mb=FX,Ob=FX,Eb=FX,Rb=FX,cb=FX;Object.assign(ht.Variables,Ot),Object.assign(ht.Procedures,kn),ht.Python=su,ht.generator=su,Mt.Profile.default={},Object.assign(Mt.Profile,ex),Object.assign(Mt.Profile.default,ex["MixGo CE"]),Object.assign(ht.Blocks,e,i,n,s,o,_,p,a,u,r,l,d,I,b,H,k,v,V,W,f,w,U,G,y,P,D,N,x,Y,X,F,B,lt,dt),Object.assign(ht.Python.forBlock,T,h,M,m,O,E,R,c,g,C,S,A,L,et,ut,at,j,it,rt,Q,pt,_t,ot,nt,z,J,K,$,Z,tt,q,st,It,Tt)})(); \ No newline at end of file diff --git a/boards/default/micropython_esp32s3/styles/main.858ee96b.css b/boards/default/micropython_esp32s3/styles/main.c506cb3b.css similarity index 100% rename from boards/default/micropython_esp32s3/styles/main.858ee96b.css rename to boards/default/micropython_esp32s3/styles/main.c506cb3b.css diff --git a/boards/default/micropython_k210_mixgoai/examples/cCfWEtRBBP7V.mix b/boards/default/micropython_k210_mixgoai/examples/00-KEY irp_按键中断响应.mix similarity index 100% rename from boards/default/micropython_k210_mixgoai/examples/cCfWEtRBBP7V.mix rename to boards/default/micropython_k210_mixgoai/examples/00-KEY irp_按键中断响应.mix diff --git a/boards/default/micropython_k210_mixgoai/examples/Ej0GrzieUcVZ.mix b/boards/default/micropython_k210_mixgoai/examples/01-LED Blink_数字输出控制灯.mix similarity index 100% rename from boards/default/micropython_k210_mixgoai/examples/Ej0GrzieUcVZ.mix rename to boards/default/micropython_k210_mixgoai/examples/01-LED Blink_数字输出控制灯.mix diff --git a/boards/default/micropython_k210_mixgoai/examples/5tS6MZDFC4xd.mix b/boards/default/micropython_k210_mixgoai/examples/02-LED PWM_模拟输出控制灯.mix similarity index 100% rename from boards/default/micropython_k210_mixgoai/examples/5tS6MZDFC4xd.mix rename to boards/default/micropython_k210_mixgoai/examples/02-LED PWM_模拟输出控制灯.mix diff --git a/boards/default/micropython_k210_mixgoai/examples/PSc2X0RIxQ8W.mix b/boards/default/micropython_k210_mixgoai/examples/04-Time_定时器执行定时打印.mix similarity index 100% rename from boards/default/micropython_k210_mixgoai/examples/PSc2X0RIxQ8W.mix rename to boards/default/micropython_k210_mixgoai/examples/04-Time_定时器执行定时打印.mix diff --git a/boards/default/micropython_k210_mixgoai/examples/Lonk4JYHNzdK.mix b/boards/default/micropython_k210_mixgoai/examples/07-UART_外部串口通信.mix similarity index 100% rename from boards/default/micropython_k210_mixgoai/examples/Lonk4JYHNzdK.mix rename to boards/default/micropython_k210_mixgoai/examples/07-UART_外部串口通信.mix diff --git a/boards/default/micropython_k210_mixgoai/examples/UEjMDAK58ynf.mix b/boards/default/micropython_k210_mixgoai/examples/08-舵机_定时器调用控制多路舵机.mix similarity index 100% rename from boards/default/micropython_k210_mixgoai/examples/UEjMDAK58ynf.mix rename to boards/default/micropython_k210_mixgoai/examples/08-舵机_定时器调用控制多路舵机.mix diff --git a/boards/default/micropython_k210_mixgoai/examples/DhzTitymtdlO.mix b/boards/default/micropython_k210_mixgoai/examples/09-LCD_屏幕显示累加计数.mix similarity index 100% rename from boards/default/micropython_k210_mixgoai/examples/DhzTitymtdlO.mix rename to boards/default/micropython_k210_mixgoai/examples/09-LCD_屏幕显示累加计数.mix diff --git a/boards/default/micropython_k210_mixgoai/examples/RDHedjqzTYJr.mix b/boards/default/micropython_k210_mixgoai/examples/10-LCD_屏幕显示切砖块过程.mix similarity index 100% rename from boards/default/micropython_k210_mixgoai/examples/RDHedjqzTYJr.mix rename to boards/default/micropython_k210_mixgoai/examples/10-LCD_屏幕显示切砖块过程.mix diff --git a/boards/default/micropython_k210_mixgoai/examples/jFsQecrCDD91.mix b/boards/default/micropython_k210_mixgoai/examples/11-Audio Play_加载SD卡音频文件播放.mix similarity index 100% rename from boards/default/micropython_k210_mixgoai/examples/jFsQecrCDD91.mix rename to boards/default/micropython_k210_mixgoai/examples/11-Audio Play_加载SD卡音频文件播放.mix diff --git a/boards/default/micropython_k210_mixgoai/examples/4RTba0Pol8oK.mix b/boards/default/micropython_k210_mixgoai/examples/12-Video Play_加载SD卡视频文件播放.mix similarity index 100% rename from boards/default/micropython_k210_mixgoai/examples/4RTba0Pol8oK.mix rename to boards/default/micropython_k210_mixgoai/examples/12-Video Play_加载SD卡视频文件播放.mix diff --git a/boards/default/micropython_k210_mixgoai/examples/ekdQzrh2uee9.mix b/boards/default/micropython_k210_mixgoai/examples/13-Video record_录制视频并存放于SD卡.mix similarity index 100% rename from boards/default/micropython_k210_mixgoai/examples/ekdQzrh2uee9.mix rename to boards/default/micropython_k210_mixgoai/examples/13-Video record_录制视频并存放于SD卡.mix diff --git a/boards/default/micropython_k210_mixgoai/examples/4W4SMQGDfsy2.mix b/boards/default/micropython_k210_mixgoai/examples/14-Camera 拍照_持续拍照显示屏幕上.mix similarity index 100% rename from boards/default/micropython_k210_mixgoai/examples/4W4SMQGDfsy2.mix rename to boards/default/micropython_k210_mixgoai/examples/14-Camera 拍照_持续拍照显示屏幕上.mix diff --git a/boards/default/micropython_k210_mixgoai/examples/5EgQkaflhCYK.mix b/boards/default/micropython_k210_mixgoai/examples/15-Imge 显示图片_加载SD卡图片文件显示.mix similarity index 100% rename from boards/default/micropython_k210_mixgoai/examples/5EgQkaflhCYK.mix rename to boards/default/micropython_k210_mixgoai/examples/15-Imge 显示图片_加载SD卡图片文件显示.mix diff --git a/boards/default/micropython_k210_mixgoai/examples/FEMOP2cE7D7S.mix b/boards/default/micropython_k210_mixgoai/examples/16-Imge 灰度图片_加载SD卡图片文件转换灰度图.mix similarity index 100% rename from boards/default/micropython_k210_mixgoai/examples/FEMOP2cE7D7S.mix rename to boards/default/micropython_k210_mixgoai/examples/16-Imge 灰度图片_加载SD卡图片文件转换灰度图.mix diff --git a/boards/default/micropython_k210_mixgoai/examples/e5-c9AVDbw2a.mix b/boards/default/micropython_k210_mixgoai/examples/17-Imge 绘制文本_在屏幕上绘制文本信息.mix similarity index 100% rename from boards/default/micropython_k210_mixgoai/examples/e5-c9AVDbw2a.mix rename to boards/default/micropython_k210_mixgoai/examples/17-Imge 绘制文本_在屏幕上绘制文本信息.mix diff --git a/boards/default/micropython_k210_mixgoai/examples/mIM68Xwi-xsD.mix b/boards/default/micropython_k210_mixgoai/examples/18-Imge 绘制圆形_在屏幕上一直绘制小圈圈.mix similarity index 100% rename from boards/default/micropython_k210_mixgoai/examples/mIM68Xwi-xsD.mix rename to boards/default/micropython_k210_mixgoai/examples/18-Imge 绘制圆形_在屏幕上一直绘制小圈圈.mix diff --git a/boards/default/micropython_k210_mixgoai/examples/iN6wlswhscjr.mix b/boards/default/micropython_k210_mixgoai/examples/19-Imge 绘制滤波_采集图形并洪水填充处理.mix similarity index 100% rename from boards/default/micropython_k210_mixgoai/examples/iN6wlswhscjr.mix rename to boards/default/micropython_k210_mixgoai/examples/19-Imge 绘制滤波_采集图形并洪水填充处理.mix diff --git a/boards/default/micropython_k210_mixgoai/examples/qeG0-VNGATcQ.mix b/boards/default/micropython_k210_mixgoai/examples/20-Imge 直线识别_识别摄像头采集图片中直线线条.mix similarity index 100% rename from boards/default/micropython_k210_mixgoai/examples/qeG0-VNGATcQ.mix rename to boards/default/micropython_k210_mixgoai/examples/20-Imge 直线识别_识别摄像头采集图片中直线线条.mix diff --git a/boards/default/micropython_k210_mixgoai/examples/9xXUdbtByruZ.mix b/boards/default/micropython_k210_mixgoai/examples/21-Imge 圆形识别_识别摄像头采集图片中圆形图案.mix similarity index 100% rename from boards/default/micropython_k210_mixgoai/examples/9xXUdbtByruZ.mix rename to boards/default/micropython_k210_mixgoai/examples/21-Imge 圆形识别_识别摄像头采集图片中圆形图案.mix diff --git a/boards/default/micropython_k210_mixgoai/examples/x8euk6Ys8A9J.mix b/boards/default/micropython_k210_mixgoai/examples/22-Imge 矩形识别_识别摄像头采集图片中矩形图案.mix similarity index 100% rename from boards/default/micropython_k210_mixgoai/examples/x8euk6Ys8A9J.mix rename to boards/default/micropython_k210_mixgoai/examples/22-Imge 矩形识别_识别摄像头采集图片中矩形图案.mix diff --git a/boards/default/micropython_k210_mixgoai/examples/Oza8dI7MJUis.mix b/boards/default/micropython_k210_mixgoai/examples/23-Imge 颜色追踪_追踪采集图片中设定色域的颜色.mix similarity index 100% rename from boards/default/micropython_k210_mixgoai/examples/Oza8dI7MJUis.mix rename to boards/default/micropython_k210_mixgoai/examples/23-Imge 颜色追踪_追踪采集图片中设定色域的颜色.mix diff --git a/boards/default/micropython_k210_mixgoai/examples/rR3LOiLMx0rR.mix b/boards/default/micropython_k210_mixgoai/examples/24-Imge 颜色识别_识别采集图片中间框区域的颜色值.mix similarity index 100% rename from boards/default/micropython_k210_mixgoai/examples/rR3LOiLMx0rR.mix rename to boards/default/micropython_k210_mixgoai/examples/24-Imge 颜色识别_识别采集图片中间框区域的颜色值.mix diff --git a/boards/default/micropython_k210_mixgoai/examples/wv3Lv32ovmvK.mix b/boards/default/micropython_k210_mixgoai/examples/25-Imge 颜色自动识别追踪_先采集图形中心物体颜色,然后自动追踪寻找此颜色.mix similarity index 100% rename from boards/default/micropython_k210_mixgoai/examples/wv3Lv32ovmvK.mix rename to boards/default/micropython_k210_mixgoai/examples/25-Imge 颜色自动识别追踪_先采集图形中心物体颜色,然后自动追踪寻找此颜色.mix diff --git a/boards/default/micropython_k210_mixgoai/examples/xgEks836RojJ.mix b/boards/default/micropython_k210_mixgoai/examples/26-Imge 特征识别_识别采集图片的特征点并绘画出.mix similarity index 100% rename from boards/default/micropython_k210_mixgoai/examples/xgEks836RojJ.mix rename to boards/default/micropython_k210_mixgoai/examples/26-Imge 特征识别_识别采集图片的特征点并绘画出.mix diff --git a/boards/default/micropython_k210_mixgoai/examples/OemZNycP3Z1M.mix b/boards/default/micropython_k210_mixgoai/examples/27-Imge 二维码识别_识别采集图片的二维码并解析信息.mix similarity index 100% rename from boards/default/micropython_k210_mixgoai/examples/OemZNycP3Z1M.mix rename to boards/default/micropython_k210_mixgoai/examples/27-Imge 二维码识别_识别采集图片的二维码并解析信息.mix diff --git a/boards/default/micropython_k210_mixgoai/examples/KkeF30q2rHxE.mix b/boards/default/micropython_k210_mixgoai/examples/28-Imge 条形码识别_识别采集图片的条形码并解析信息.mix similarity index 100% rename from boards/default/micropython_k210_mixgoai/examples/KkeF30q2rHxE.mix rename to boards/default/micropython_k210_mixgoai/examples/28-Imge 条形码识别_识别采集图片的条形码并解析信息.mix diff --git a/boards/default/micropython_k210_mixgoai/examples/MoRdXD3S6MVD.mix b/boards/default/micropython_k210_mixgoai/examples/29-AI 人脸追踪_识别追踪采集图片的人脸.mix similarity index 100% rename from boards/default/micropython_k210_mixgoai/examples/MoRdXD3S6MVD.mix rename to boards/default/micropython_k210_mixgoai/examples/29-AI 人脸追踪_识别追踪采集图片的人脸.mix diff --git a/boards/default/micropython_k210_mixgoai/examples/N3YGFZfxssiT.mix b/boards/default/micropython_k210_mixgoai/examples/30-AI 20种物体识别_识别采集图片的20种物体的类别.mix similarity index 100% rename from boards/default/micropython_k210_mixgoai/examples/N3YGFZfxssiT.mix rename to boards/default/micropython_k210_mixgoai/examples/30-AI 20种物体识别_识别采集图片的20种物体的类别.mix diff --git a/boards/default/micropython_k210_mixgoai/examples/UYnrk39H3KIW.mix b/boards/default/micropython_k210_mixgoai/examples/31-AI 网络模型-1_加载SD中网络模型并运行解析.mix similarity index 100% rename from boards/default/micropython_k210_mixgoai/examples/UYnrk39H3KIW.mix rename to boards/default/micropython_k210_mixgoai/examples/31-AI 网络模型-1_加载SD中网络模型并运行解析.mix diff --git a/boards/default/micropython_k210_mixgoai/examples/0VayXpUPGKE-.mix b/boards/default/micropython_k210_mixgoai/examples/31-AI 网络模型_加载SD中网络模型并运行解析.mix similarity index 100% rename from boards/default/micropython_k210_mixgoai/examples/0VayXpUPGKE-.mix rename to boards/default/micropython_k210_mixgoai/examples/31-AI 网络模型_加载SD中网络模型并运行解析.mix diff --git a/boards/default/micropython_k210_mixgoai/examples/ECKSY-TMpS5i.mix b/boards/default/micropython_k210_mixgoai/examples/32-AI 网络模型-2_加载SD中网络模型并运行解析.mix similarity index 100% rename from boards/default/micropython_k210_mixgoai/examples/ECKSY-TMpS5i.mix rename to boards/default/micropython_k210_mixgoai/examples/32-AI 网络模型-2_加载SD中网络模型并运行解析.mix diff --git a/boards/default/micropython_k210_mixgoai/examples/OaciuH4yeJfT.mix b/boards/default/micropython_k210_mixgoai/examples/32-Sonar 超声波测距_串口打印超声波测算的距离.mix similarity index 100% rename from boards/default/micropython_k210_mixgoai/examples/OaciuH4yeJfT.mix rename to boards/default/micropython_k210_mixgoai/examples/32-Sonar 超声波测距_串口打印超声波测算的距离.mix diff --git a/boards/default/micropython_k210_mixgoai/examples/n8OzfoYKiwfH.mix b/boards/default/micropython_k210_mixgoai/examples/33-Irremote 红外接收_遥控控制灯亮灭.mix similarity index 100% rename from boards/default/micropython_k210_mixgoai/examples/n8OzfoYKiwfH.mix rename to boards/default/micropython_k210_mixgoai/examples/33-Irremote 红外接收_遥控控制灯亮灭.mix diff --git a/boards/default/micropython_k210_mixgoai/examples/U7vpiT7KOy_P.mix b/boards/default/micropython_k210_mixgoai/examples/34-Bmp280 大气压_读取大气压传感器数字串口打印.mix similarity index 100% rename from boards/default/micropython_k210_mixgoai/examples/U7vpiT7KOy_P.mix rename to boards/default/micropython_k210_mixgoai/examples/34-Bmp280 大气压_读取大气压传感器数字串口打印.mix diff --git a/boards/default/micropython_k210_mixgoai/examples/Z8shSdf8L_XS.mix b/boards/default/micropython_k210_mixgoai/examples/34-DHT11 温湿度_采集温湿度并显示.mix similarity index 100% rename from boards/default/micropython_k210_mixgoai/examples/Z8shSdf8L_XS.mix rename to boards/default/micropython_k210_mixgoai/examples/34-DHT11 温湿度_采集温湿度并显示.mix diff --git a/boards/default/micropython_k210_mixgoai/examples/jTaVxO_pdgCt.mix b/boards/default/micropython_k210_mixgoai/examples/35-Sonar 超声波测距_串口打印超声波测算的距离.mix similarity index 100% rename from boards/default/micropython_k210_mixgoai/examples/jTaVxO_pdgCt.mix rename to boards/default/micropython_k210_mixgoai/examples/35-Sonar 超声波测距_串口打印超声波测算的距离.mix diff --git a/boards/default/micropython_k210_mixgoai/examples/RbRW3IMD68-a.mix b/boards/default/micropython_k210_mixgoai/examples/36-Irremote 红外接收_遥控控制灯亮灭.mix similarity index 100% rename from boards/default/micropython_k210_mixgoai/examples/RbRW3IMD68-a.mix rename to boards/default/micropython_k210_mixgoai/examples/36-Irremote 红外接收_遥控控制灯亮灭.mix diff --git a/boards/default/micropython_k210_mixgoai/examples/2qyUcOL8i3Yz.mix b/boards/default/micropython_k210_mixgoai/examples/36-SHT20_读取温湿度传感器数字串口打印.mix similarity index 100% rename from boards/default/micropython_k210_mixgoai/examples/2qyUcOL8i3Yz.mix rename to boards/default/micropython_k210_mixgoai/examples/36-SHT20_读取温湿度传感器数字串口打印.mix diff --git a/boards/default/micropython_k210_mixgoai/examples/FPHE4-oEsow8.mix b/boards/default/micropython_k210_mixgoai/examples/37-Bmp280 大气压_读取大气压传感器数字串口打印.mix similarity index 100% rename from boards/default/micropython_k210_mixgoai/examples/FPHE4-oEsow8.mix rename to boards/default/micropython_k210_mixgoai/examples/37-Bmp280 大气压_读取大气压传感器数字串口打印.mix diff --git a/boards/default/micropython_k210_mixgoai/examples/FCs-0Nqe2Xg4.mix b/boards/default/micropython_k210_mixgoai/examples/38-MPU9250 九轴_读取九轴传感器数字串口打印.mix similarity index 100% rename from boards/default/micropython_k210_mixgoai/examples/FCs-0Nqe2Xg4.mix rename to boards/default/micropython_k210_mixgoai/examples/38-MPU9250 九轴_读取九轴传感器数字串口打印.mix diff --git a/boards/default/micropython_k210_mixgoai/examples/rqH_TEr5NPh9.mix b/boards/default/micropython_k210_mixgoai/examples/39-SHT20_读取温湿度传感器数字串口打印.mix similarity index 100% rename from boards/default/micropython_k210_mixgoai/examples/rqH_TEr5NPh9.mix rename to boards/default/micropython_k210_mixgoai/examples/39-SHT20_读取温湿度传感器数字串口打印.mix diff --git a/boards/default/micropython_k210_mixgoai/examples/msKRWlwSA_IM.mix b/boards/default/micropython_k210_mixgoai/examples/40-AIOnenet_中国移动云端网络平台API调用.mix similarity index 100% rename from boards/default/micropython_k210_mixgoai/examples/msKRWlwSA_IM.mix rename to boards/default/micropython_k210_mixgoai/examples/40-AIOnenet_中国移动云端网络平台API调用.mix diff --git a/boards/default/micropython_k210_mixgoai/examples/X9zBnWEEggbM.mix b/boards/default/micropython_k210_mixgoai/examples/41-AIOnenet_按键按一下调用人体检测API并框出位置.mix similarity index 100% rename from boards/default/micropython_k210_mixgoai/examples/X9zBnWEEggbM.mix rename to boards/default/micropython_k210_mixgoai/examples/41-AIOnenet_按键按一下调用人体检测API并框出位置.mix diff --git a/boards/default/micropython_k210_mixgoai/examples/bRQdoVzhPE2P.mix b/boards/default/micropython_k210_mixgoai/examples/42-AILocal_本地模型训练后保存并调用模型.mix similarity index 100% rename from boards/default/micropython_k210_mixgoai/examples/bRQdoVzhPE2P.mix rename to boards/default/micropython_k210_mixgoai/examples/42-AILocal_本地模型训练后保存并调用模型.mix diff --git a/boards/default/micropython_k210_mixgoai/examples/v_Q1PyDqzn1C.mix b/boards/default/micropython_k210_mixgoai/examples/43-AILocal_调用训练好的模型并运行模型.mix similarity index 100% rename from boards/default/micropython_k210_mixgoai/examples/v_Q1PyDqzn1C.mix rename to boards/default/micropython_k210_mixgoai/examples/43-AILocal_调用训练好的模型并运行模型.mix diff --git a/boards/default/micropython_k210_mixgoai/examples/8q3qF8AndRKY.mix b/boards/default/micropython_k210_mixgoai/examples/44-AI 口罩识别-加载SD中模型并识别出带没有带口罩.mix similarity index 100% rename from boards/default/micropython_k210_mixgoai/examples/8q3qF8AndRKY.mix rename to boards/default/micropython_k210_mixgoai/examples/44-AI 口罩识别-加载SD中模型并识别出带没有带口罩.mix diff --git a/boards/default/micropython_k210_mixgoai/examples/8_QbzXzh8zPZ.mix b/boards/default/micropython_k210_mixgoai/examples/45-WiFi_扫描附近WiFi热点信息.mix similarity index 100% rename from boards/default/micropython_k210_mixgoai/examples/8_QbzXzh8zPZ.mix rename to boards/default/micropython_k210_mixgoai/examples/45-WiFi_扫描附近WiFi热点信息.mix diff --git a/boards/default/micropython_k210_mixgoai/examples/ZgQTS26jokvK.mix b/boards/default/micropython_k210_mixgoai/examples/46-WiFi-连接网络_配置WiFi上网.mix similarity index 100% rename from boards/default/micropython_k210_mixgoai/examples/ZgQTS26jokvK.mix rename to boards/default/micropython_k210_mixgoai/examples/46-WiFi-连接网络_配置WiFi上网.mix diff --git a/boards/default/micropython_k210_mixgoai/examples/OU4qKWOtDvd7.mix b/boards/default/micropython_k210_mixgoai/examples/47-WiFi-打开热点_分享热点AP模式.mix similarity index 100% rename from boards/default/micropython_k210_mixgoai/examples/OU4qKWOtDvd7.mix rename to boards/default/micropython_k210_mixgoai/examples/47-WiFi-打开热点_分享热点AP模式.mix diff --git a/boards/default/micropython_k210_mixgoai/examples/4LC7h6BGpsNJ.mix b/boards/default/micropython_k210_mixgoai/examples/48-Socket-_套接字发送接收数据.mix similarity index 100% rename from boards/default/micropython_k210_mixgoai/examples/4LC7h6BGpsNJ.mix rename to boards/default/micropython_k210_mixgoai/examples/48-Socket-_套接字发送接收数据.mix diff --git a/boards/default/micropython_k210_mixgoai/examples/gjqYFm00Duhp.mix b/boards/default/micropython_k210_mixgoai/examples/49-Socket-_套接字发送摄像头拍照图形值服务器.mix similarity index 100% rename from boards/default/micropython_k210_mixgoai/examples/gjqYFm00Duhp.mix rename to boards/default/micropython_k210_mixgoai/examples/49-Socket-_套接字发送摄像头拍照图形值服务器.mix diff --git a/boards/default/micropython_k210_mixgoai/examples/E9oxgBXF6q5K.mix b/boards/default/micropython_k210_mixgoai/examples/50-IOT_Onenet_上传数据值物联网平台.mix similarity index 100% rename from boards/default/micropython_k210_mixgoai/examples/E9oxgBXF6q5K.mix rename to boards/default/micropython_k210_mixgoai/examples/50-IOT_Onenet_上传数据值物联网平台.mix diff --git a/boards/default/micropython_k210_mixgoai/examples/LJYgZDHUjIAU.mix b/boards/default/micropython_k210_mixgoai/examples/51-IOT_mixiot_接收物联网平台数据.mix similarity index 100% rename from boards/default/micropython_k210_mixgoai/examples/LJYgZDHUjIAU.mix rename to boards/default/micropython_k210_mixgoai/examples/51-IOT_mixiot_接收物联网平台数据.mix diff --git a/boards/default/micropython_k210_mixgoai/examples/uc8h6D9-N6Pr.mix b/boards/default/micropython_k210_mixgoai/examples/52-IOT_mixiot_上传数据到物联网平台.mix similarity index 100% rename from boards/default/micropython_k210_mixgoai/examples/uc8h6D9-N6Pr.mix rename to boards/default/micropython_k210_mixgoai/examples/52-IOT_mixiot_上传数据到物联网平台.mix diff --git a/boards/default/micropython_k210_mixgoai/examples/lCrNGUVAiWa2.mix b/boards/default/micropython_k210_mixgoai/examples/53-Imge 中文显示_加载字库显示更多类型文字.mix similarity index 100% rename from boards/default/micropython_k210_mixgoai/examples/lCrNGUVAiWa2.mix rename to boards/default/micropython_k210_mixgoai/examples/53-Imge 中文显示_加载字库显示更多类型文字.mix diff --git a/boards/default/micropython_k210_mixgoai/examples/N5roQuq5JvJJ.mix b/boards/default/micropython_k210_mixgoai/examples/55-(Mixly2.0下无法打开)APDS9960 手势识别_识别识别控制灯亮度.mix similarity index 100% rename from boards/default/micropython_k210_mixgoai/examples/N5roQuq5JvJJ.mix rename to boards/default/micropython_k210_mixgoai/examples/55-(Mixly2.0下无法打开)APDS9960 手势识别_识别识别控制灯亮度.mix diff --git a/boards/default/micropython_k210_mixgoai/examples/l5CS81qc-b1F.mix b/boards/default/micropython_k210_mixgoai/examples/57-ASR 语音识别_根据识别语音点亮屏幕颜色.mix similarity index 100% rename from boards/default/micropython_k210_mixgoai/examples/l5CS81qc-b1F.mix rename to boards/default/micropython_k210_mixgoai/examples/57-ASR 语音识别_根据识别语音点亮屏幕颜色.mix diff --git a/boards/default/micropython_k210_mixgoai/examples/pJ3WxHhTn71j/20class.kmodel b/boards/default/micropython_k210_mixgoai/examples/SD_file/20class.kmodel similarity index 100% rename from boards/default/micropython_k210_mixgoai/examples/pJ3WxHhTn71j/20class.kmodel rename to boards/default/micropython_k210_mixgoai/examples/SD_file/20class.kmodel diff --git a/boards/default/micropython_k210_mixgoai/examples/pJ3WxHhTn71j/FD.kmodel b/boards/default/micropython_k210_mixgoai/examples/SD_file/FD.kmodel similarity index 100% rename from boards/default/micropython_k210_mixgoai/examples/pJ3WxHhTn71j/FD.kmodel rename to boards/default/micropython_k210_mixgoai/examples/SD_file/FD.kmodel diff --git a/boards/default/micropython_k210_mixgoai/examples/pJ3WxHhTn71j/FE.kmodel b/boards/default/micropython_k210_mixgoai/examples/SD_file/FE.kmodel similarity index 100% rename from boards/default/micropython_k210_mixgoai/examples/pJ3WxHhTn71j/FE.kmodel rename to boards/default/micropython_k210_mixgoai/examples/SD_file/FE.kmodel diff --git a/boards/default/micropython_k210_mixgoai/examples/pJ3WxHhTn71j/LD.kmodel b/boards/default/micropython_k210_mixgoai/examples/SD_file/LD.kmodel similarity index 100% rename from boards/default/micropython_k210_mixgoai/examples/pJ3WxHhTn71j/LD.kmodel rename to boards/default/micropython_k210_mixgoai/examples/SD_file/LD.kmodel diff --git a/boards/default/micropython_k210_mixgoai/examples/pJ3WxHhTn71j/facedetect.kmodel b/boards/default/micropython_k210_mixgoai/examples/SD_file/facedetect.kmodel similarity index 100% rename from boards/default/micropython_k210_mixgoai/examples/pJ3WxHhTn71j/facedetect.kmodel rename to boards/default/micropython_k210_mixgoai/examples/SD_file/facedetect.kmodel diff --git a/boards/default/micropython_k210_mixgoai/examples/pJ3WxHhTn71j/labels.txt b/boards/default/micropython_k210_mixgoai/examples/SD_file/labels.txt similarity index 100% rename from boards/default/micropython_k210_mixgoai/examples/pJ3WxHhTn71j/labels.txt rename to boards/default/micropython_k210_mixgoai/examples/SD_file/labels.txt diff --git a/boards/default/micropython_k210_mixgoai/examples/pJ3WxHhTn71j/masks.kmodel b/boards/default/micropython_k210_mixgoai/examples/SD_file/masks.kmodel similarity index 100% rename from boards/default/micropython_k210_mixgoai/examples/pJ3WxHhTn71j/masks.kmodel rename to boards/default/micropython_k210_mixgoai/examples/SD_file/masks.kmodel diff --git a/boards/default/micropython_k210_mixgoai/examples/map.json b/boards/default/micropython_k210_mixgoai/examples/map.json index 0b0a78c1..dacc9596 100644 --- a/boards/default/micropython_k210_mixgoai/examples/map.json +++ b/boards/default/micropython_k210_mixgoai/examples/map.json @@ -1,230 +1,230 @@ { - "Lonk4JYHNzdK.mix": { + "00-KEY irp_按键中断响应.mix": { "__file__": true, - "__name__": "-UEi45Sdxm-q.mix" + "__name__": "00-KEY irp_按键中断响应.mix" }, - "UYnrk39H3KIW.mix": { + "01-LED Blink_数字输出控制灯.mix": { "__file__": true, - "__name__": "1oucPTv-5j58.mix" + "__name__": "01-LED Blink_数字输出控制灯.mix" }, - "X9zBnWEEggbM.mix": { + "02-LED PWM_模拟输出控制灯.mix": { "__file__": true, - "__name__": "2DgbO5BWlPKt.mix" + "__name__": "02-LED PWM_模拟输出控制灯.mix" }, - "FCs-0Nqe2Xg4.mix": { + "04-Time_定时器执行定时打印.mix": { "__file__": true, - "__name__": "3edv-Y8O1q4Z.mix" + "__name__": "04-Time_定时器执行定时打印.mix" }, - "U7vpiT7KOy_P.mix": { + "07-UART_外部串口通信.mix": { "__file__": true, - "__name__": "4hn15K-fEuTI.mix" + "__name__": "07-UART_外部串口通信.mix" }, - "Oza8dI7MJUis.mix": { + "08-舵机_定时器调用控制多路舵机.mix": { "__file__": true, - "__name__": "4w_oaKhxyRvG.mix" + "__name__": "08-舵机_定时器调用控制多路舵机.mix" }, - "ZgQTS26jokvK.mix": { + "09-LCD_屏幕显示累加计数.mix": { "__file__": true, - "__name__": "5Y59VemRb48u.mix" + "__name__": "09-LCD_屏幕显示累加计数.mix" }, - "0VayXpUPGKE-.mix": { + "10-LCD_屏幕显示切砖块过程.mix": { "__file__": true, - "__name__": "713AIFbqNqhg.mix" + "__name__": "10-LCD_屏幕显示切砖块过程.mix" }, - "N3YGFZfxssiT.mix": { + "11-Audio Play_加载SD卡音频文件播放.mix": { "__file__": true, - "__name__": "7g4e-mIcKJ_6.mix" + "__name__": "11-Audio Play_加载SD卡音频文件播放.mix" }, - "cCfWEtRBBP7V.mix": { + "12-Video Play_加载SD卡视频文件播放.mix": { "__file__": true, - "__name__": "7pOv8DHDn3M7.mix" + "__name__": "12-Video Play_加载SD卡视频文件播放.mix" }, - "4LC7h6BGpsNJ.mix": { + "13-Video record_录制视频并存放于SD卡.mix": { "__file__": true, - "__name__": "8GhMYgi0HUFf.mix" + "__name__": "13-Video record_录制视频并存放于SD卡.mix" }, - "FEMOP2cE7D7S.mix": { + "14-Camera 拍照_持续拍照显示屏幕上.mix": { "__file__": true, - "__name__": "8mDtO4oMg39w.mix" + "__name__": "14-Camera 拍照_持续拍照显示屏幕上.mix" }, - "5EgQkaflhCYK.mix": { + "15-Imge 显示图片_加载SD卡图片文件显示.mix": { "__file__": true, - "__name__": "8P2AiYwagAqf.mix" + "__name__": "15-Imge 显示图片_加载SD卡图片文件显示.mix" }, - "wv3Lv32ovmvK.mix": { + "16-Imge 灰度图片_加载SD卡图片文件转换灰度图.mix": { "__file__": true, - "__name__": "8Q9w8vohc5WR.mix" + "__name__": "16-Imge 灰度图片_加载SD卡图片文件转换灰度图.mix" }, - "gjqYFm00Duhp.mix": { + "17-Imge 绘制文本_在屏幕上绘制文本信息.mix": { "__file__": true, - "__name__": "92bwD0XoQd_L.mix" + "__name__": "17-Imge 绘制文本_在屏幕上绘制文本信息.mix" }, - "x8euk6Ys8A9J.mix": { + "18-Imge 绘制圆形_在屏幕上一直绘制小圈圈.mix": { "__file__": true, - "__name__": "9f8bfsFGpxnl.mix" + "__name__": "18-Imge 绘制圆形_在屏幕上一直绘制小圈圈.mix" }, - "qeG0-VNGATcQ.mix": { + "19-Imge 绘制滤波_采集图形并洪水填充处理.mix": { "__file__": true, - "__name__": "a43B__NOYfhV.mix" + "__name__": "19-Imge 绘制滤波_采集图形并洪水填充处理.mix" }, - "jTaVxO_pdgCt.mix": { + "20-Imge 直线识别_识别摄像头采集图片中直线线条.mix": { "__file__": true, - "__name__": "Ar6TmfTMdGsI.mix" + "__name__": "20-Imge 直线识别_识别摄像头采集图片中直线线条.mix" }, - "xgEks836RojJ.mix": { + "21-Imge 圆形识别_识别摄像头采集图片中圆形图案.mix": { "__file__": true, - "__name__": "bHUi0z1OIG08.mix" + "__name__": "21-Imge 圆形识别_识别摄像头采集图片中圆形图案.mix" }, - "iN6wlswhscjr.mix": { + "22-Imge 矩形识别_识别摄像头采集图片中矩形图案.mix": { "__file__": true, - "__name__": "bLYZSmITapua.mix" + "__name__": "22-Imge 矩形识别_识别摄像头采集图片中矩形图案.mix" }, - "FPHE4-oEsow8.mix": { + "23-Imge 颜色追踪_追踪采集图片中设定色域的颜色.mix": { "__file__": true, - "__name__": "cMOi0831qm5c.mix" + "__name__": "23-Imge 颜色追踪_追踪采集图片中设定色域的颜色.mix" }, - "N5roQuq5JvJJ.mix": { + "24-Imge 颜色识别_识别采集图片中间框区域的颜色值.mix": { "__file__": true, - "__name__": "CtKOboD3djtd.mix" + "__name__": "24-Imge 颜色识别_识别采集图片中间框区域的颜色值.mix" }, - "Z8shSdf8L_XS.mix": { + "25-Imge 颜色自动识别追踪_先采集图形中心物体颜色,然后自动追踪寻找此颜色.mix": { "__file__": true, - "__name__": "cxIIqKds2Tc2.mix" + "__name__": "25-Imge 颜色自动识别追踪_先采集图形中心物体颜色,然后自动追踪寻找此颜色.mix" }, - "RbRW3IMD68-a.mix": { + "26-Imge 特征识别_识别采集图片的特征点并绘画出.mix": { "__file__": true, - "__name__": "DBDjugkTFKW8.mix" + "__name__": "26-Imge 特征识别_识别采集图片的特征点并绘画出.mix" }, - "OaciuH4yeJfT.mix": { + "27-Imge 二维码识别_识别采集图片的二维码并解析信息.mix": { "__file__": true, - "__name__": "DKW9oi3L1nDA.mix" + "__name__": "27-Imge 二维码识别_识别采集图片的二维码并解析信息.mix" }, - "OU4qKWOtDvd7.mix": { + "28-Imge 条形码识别_识别采集图片的条形码并解析信息.mix": { "__file__": true, - "__name__": "F7J1UDlRPrM1.mix" + "__name__": "28-Imge 条形码识别_识别采集图片的条形码并解析信息.mix" }, - "ECKSY-TMpS5i.mix": { + "29-AI 人脸追踪_识别追踪采集图片的人脸.mix": { "__file__": true, - "__name__": "gBLDmE4Ok_Qb.mix" + "__name__": "29-AI 人脸追踪_识别追踪采集图片的人脸.mix" }, - "2qyUcOL8i3Yz.mix": { + "30-AI 20种物体识别_识别采集图片的20种物体的类别.mix": { "__file__": true, - "__name__": "ggvZec342Pqo.mix" + "__name__": "30-AI 20种物体识别_识别采集图片的20种物体的类别.mix" }, - "v_Q1PyDqzn1C.mix": { + "31-AI 网络模型-1_加载SD中网络模型并运行解析.mix": { "__file__": true, - "__name__": "GIbMhfg1Um4z.mix" + "__name__": "31-AI 网络模型-1_加载SD中网络模型并运行解析.mix" }, - "rqH_TEr5NPh9.mix": { + "31-AI 网络模型_加载SD中网络模型并运行解析.mix": { "__file__": true, - "__name__": "HlUZa3UkmG0K.mix" + "__name__": "31-AI 网络模型_加载SD中网络模型并运行解析.mix" }, - "Ej0GrzieUcVZ.mix": { + "32-AI 网络模型-2_加载SD中网络模型并运行解析.mix": { "__file__": true, - "__name__": "HV4VIYj1clfP.mix" + "__name__": "32-AI 网络模型-2_加载SD中网络模型并运行解析.mix" }, - "jFsQecrCDD91.mix": { + "32-Sonar 超声波测距_串口打印超声波测算的距离.mix": { "__file__": true, - "__name__": "icK8y_ido8i-.mix" + "__name__": "32-Sonar 超声波测距_串口打印超声波测算的距离.mix" }, - "e5-c9AVDbw2a.mix": { + "33-Irremote 红外接收_遥控控制灯亮灭.mix": { "__file__": true, - "__name__": "IN1j-5MK8ehw.mix" + "__name__": "33-Irremote 红外接收_遥控控制灯亮灭.mix" }, - "mIM68Xwi-xsD.mix": { + "34-Bmp280 大气压_读取大气压传感器数字串口打印.mix": { "__file__": true, - "__name__": "Io8lJXCwhD17.mix" + "__name__": "34-Bmp280 大气压_读取大气压传感器数字串口打印.mix" }, - "8_QbzXzh8zPZ.mix": { + "34-DHT11 温湿度_采集温湿度并显示.mix": { "__file__": true, - "__name__": "JCu40fMqKuxe.mix" + "__name__": "34-DHT11 温湿度_采集温湿度并显示.mix" }, - "bRQdoVzhPE2P.mix": { + "35-Sonar 超声波测距_串口打印超声波测算的距离.mix": { "__file__": true, - "__name__": "Je7lKmHs_j51.mix" + "__name__": "35-Sonar 超声波测距_串口打印超声波测算的距离.mix" }, - "DhzTitymtdlO.mix": { + "36-Irremote 红外接收_遥控控制灯亮灭.mix": { "__file__": true, - "__name__": "jnAz45sZdnlU.mix" + "__name__": "36-Irremote 红外接收_遥控控制灯亮灭.mix" }, - "l5CS81qc-b1F.mix": { + "36-SHT20_读取温湿度传感器数字串口打印.mix": { "__file__": true, - "__name__": "LucMhnreSdri.mix" + "__name__": "36-SHT20_读取温湿度传感器数字串口打印.mix" }, - "LJYgZDHUjIAU.mix": { + "37-Bmp280 大气压_读取大气压传感器数字串口打印.mix": { "__file__": true, - "__name__": "maspDCBL9A7Q.mix" + "__name__": "37-Bmp280 大气压_读取大气压传感器数字串口打印.mix" }, - "E9oxgBXF6q5K.mix": { + "38-MPU9250 九轴_读取九轴传感器数字串口打印.mix": { "__file__": true, - "__name__": "mF5PdNfcro01.mix" + "__name__": "38-MPU9250 九轴_读取九轴传感器数字串口打印.mix" }, - "uc8h6D9-N6Pr.mix": { + "39-SHT20_读取温湿度传感器数字串口打印.mix": { "__file__": true, - "__name__": "n8ytHXHNA-mc.mix" + "__name__": "39-SHT20_读取温湿度传感器数字串口打印.mix" }, - "MoRdXD3S6MVD.mix": { + "40-AIOnenet_中国移动云端网络平台API调用.mix": { "__file__": true, - "__name__": "nHdNRO2GJkBA.mix" + "__name__": "40-AIOnenet_中国移动云端网络平台API调用.mix" }, - "rR3LOiLMx0rR.mix": { + "41-AIOnenet_按键按一下调用人体检测API并框出位置.mix": { "__file__": true, - "__name__": "p1UyHWUACext.mix" + "__name__": "41-AIOnenet_按键按一下调用人体检测API并框出位置.mix" }, - "ekdQzrh2uee9.mix": { + "42-AILocal_本地模型训练后保存并调用模型.mix": { "__file__": true, - "__name__": "PC7mdcg6Il3q.mix" + "__name__": "42-AILocal_本地模型训练后保存并调用模型.mix" }, - "KkeF30q2rHxE.mix": { + "43-AILocal_调用训练好的模型并运行模型.mix": { "__file__": true, - "__name__": "qBfsmxHuyLxY.mix" + "__name__": "43-AILocal_调用训练好的模型并运行模型.mix" }, - "4RTba0Pol8oK.mix": { + "44-AI 口罩识别-加载SD中模型并识别出带没有带口罩.mix": { "__file__": true, - "__name__": "rtIsztQ7mzQu.mix" + "__name__": "44-AI 口罩识别-加载SD中模型并识别出带没有带口罩.mix" }, - "8q3qF8AndRKY.mix": { + "45-WiFi_扫描附近WiFi热点信息.mix": { "__file__": true, - "__name__": "Ry5OCHH9bIys.mix" + "__name__": "45-WiFi_扫描附近WiFi热点信息.mix" }, - "RDHedjqzTYJr.mix": { + "46-WiFi-连接网络_配置WiFi上网.mix": { "__file__": true, - "__name__": "sR-ga8LrXAz8.mix" + "__name__": "46-WiFi-连接网络_配置WiFi上网.mix" }, - "PSc2X0RIxQ8W.mix": { + "47-WiFi-打开热点_分享热点AP模式.mix": { "__file__": true, - "__name__": "tFL9JZAM83kE.mix" + "__name__": "47-WiFi-打开热点_分享热点AP模式.mix" }, - "4W4SMQGDfsy2.mix": { + "48-Socket-_套接字发送接收数据.mix": { "__file__": true, - "__name__": "tMyHWtgDyIW4.mix" + "__name__": "48-Socket-_套接字发送接收数据.mix" }, - "OemZNycP3Z1M.mix": { + "49-Socket-_套接字发送摄像头拍照图形值服务器.mix": { "__file__": true, - "__name__": "Tzqv3DsL0FQD.mix" + "__name__": "49-Socket-_套接字发送摄像头拍照图形值服务器.mix" }, - "UEjMDAK58ynf.mix": { + "50-IOT_Onenet_上传数据值物联网平台.mix": { "__file__": true, - "__name__": "UVN-HmxlKuUZ.mix" + "__name__": "50-IOT_Onenet_上传数据值物联网平台.mix" }, - "5tS6MZDFC4xd.mix": { + "51-IOT_mixiot_接收物联网平台数据.mix": { "__file__": true, - "__name__": "whH2FRXKqmvW.mix" + "__name__": "51-IOT_mixiot_接收物联网平台数据.mix" }, - "n8OzfoYKiwfH.mix": { + "52-IOT_mixiot_上传数据到物联网平台.mix": { "__file__": true, - "__name__": "x5hjcWsko_GJ.mix" + "__name__": "52-IOT_mixiot_上传数据到物联网平台.mix" }, - "lCrNGUVAiWa2.mix": { + "53-Imge 中文显示_加载字库显示更多类型文字.mix": { "__file__": true, - "__name__": "x5vvADjNBh2x.mix" + "__name__": "53-Imge 中文显示_加载字库显示更多类型文字.mix" }, - "9xXUdbtByruZ.mix": { + "55-(Mixly2.0下无法打开)APDS9960 手势识别_识别识别控制灯亮度.mix": { "__file__": true, - "__name__": "xXWYds-FRqcy.mix" + "__name__": "55-(Mixly2.0下无法打开)APDS9960 手势识别_识别识别控制灯亮度.mix" }, - "msKRWlwSA_IM.mix": { + "57-ASR 语音识别_根据识别语音点亮屏幕颜色.mix": { "__file__": true, - "__name__": "y2_D7XhgRxO-.mix" + "__name__": "57-ASR 语音识别_根据识别语音点亮屏幕颜色.mix" } } diff --git a/boards/default/micropython_k210_mixgoai/index.xml b/boards/default/micropython_k210_mixgoai/index.xml index d960077d..140015c9 100644 --- a/boards/default/micropython_k210_mixgoai/index.xml +++ b/boards/default/micropython_k210_mixgoai/index.xml @@ -1 +1 @@ -666610006506irp_funcirp_func610510,1,2,3051itestThreadtestThreadWHILETRUEHello Mixly from Thread!ms101000tim_callbacktim_callback5000#ff000090151100a10.998124.821100101010001100501100110000x2x0,1,2,30,1,2,30,1,2,3xMixlyHelloMixly12365a0MixlyMixly0Mixly02MixlyMixlyHello,mixlyHello,mixly50*Hello,mixlyl--mylistHello,mixlymixlymixPYI love mixly!I love mixlyRandom No. is {}int1100input('1+2*3')mylist1,2,3,4,5mylist0mylist02mylistmylist2mylistmylist0mylist00mylist00mylist0mylist0mylist0mylistmylistmylistx0,1,2,30,1,2,3mytup1,2,3,4,5mytup0mytup02mytupmytupmytupmytup0mytupmytup1mytup2xmydictmydictkeymydictkey0mydictkey0mydictkeymydictkeymydictkey0mydictmydictmydictmydictxmydict{"name":"Mixly","color":"green"}s11,2,3,4,5s1s1s1s2s1s2s10s1Mixlys1s2xfilename.txtfMixlyfff0fffpathpathfilename.txtsrcname.txtdstname.txtpathff0MixlyMixlyMixly,HelloMixlyprompt67MixlyMixly0XFF00FFcode6i2c67400000i2ci2c00i2c00i2ci2cspi20000010045spi200000buf50spi10spi100xffspibufspibuf0xffspi12345spi12345bufow12owowow12345ow12345ow89MixGo AI12345MixGo AI123455socksockmixly.orgsock192.168.0.180sock5sockdatasock1024sockRGB312RGB0000RGB660Motori2cMotor100Motor10241024PID0.400PID01SPK8910MIC8910/sd/MixGo.wavSPK80/sd/MixGo.wavMIC10/sd/MixGo.aviSPK80/sd/MixGo.aviMIC10sensor.B240X240100224224150000000x0000#000000img0x0000#00000000MixGo AI0XFFFF#FFFFFF0X0000#00000089MixGo AI12345mixio.mixly.cnmixio.mixly.cnA1B2C3mixio.mixly.cnusernamepasswordMyProjecttopicmsgtopicmethodmethodEQmsg1content"long""lat""message"012content"key1""key2""key3"012mixio.xbed.cnKPU/sd/MixGoAI.kmodelKPU0.50.35anchorKPUimgKPUimgyolo2calss5MixGo.aiMixGo.aicalssimgASRni-haoASR0.1ASRASRimgimgMixGo.jpgimgimgMixGo.jpgimg0,00xFFFF#FFFFFFimg0,0img0,0,240,240img20imgimgimg00你好,米思齐0xFFFF#FFFFFF12img00MixGo AI0xFFFF#FFFFFF1img160,1201.01.0img10,20,30,400xFFFF#FFFFFF1img10,20,30,400xFFFF#FFFFFF1img10,200xFFFF#FFFFFF130img40,30,200xFFFF#FFFFFF1img10,20,30,400xFFFF#FFFFFF1img1.01.0img3img15img0.050.05img110img110img160,1200xFFFF#FFFFFF0.050.05imgimgimg71,95,-60,-41,-128,12700img1-1,-1,-1, -1,8,-1, -1,-1,-1linecirclerectimg0,0,240,24010002525img0,0,240,2401015img0,0,240,240200021002101010img0,0,240,24010000img71,95,-60,-41,-128,1270,0,240,2400,0,00,0,00,0,0255blobhistogram0.5img71,95,-60,-41,-128,1270,0,240,24020020010img0,0,240,240barcodeqrcodeapriltagimg0,0,240,240img0,0,240,240img0,0,240,240 \ No newline at end of file +666610006506irp_funcirp_func610510,1,2,3051itestThreadtestThreadWHILETRUEHello Mixly from Thread!ms101000tim_callbacktim_callback5000#ff000090151100a10.998124.821100101010001100501100110000x2x0,1,2,30,1,2,30,1,2,3xMixlyHelloMixly12365a0MixlyMixly0Mixly02MixlyMixlyHello,mixlyHello,mixly50*Hello,mixlyl--mylistHello,mixlymixlymixPYI love mixly!I love mixlyRandom No. is {}int1100input('1+2*3')mylist1,2,3,4,5mylist0mylist02mylistmylist2mylistmylist0mylist00mylist00mylist0mylist0mylist0mylistmylistmylistx0,1,2,30,1,2,3mytup1,2,3,4,5mytup0mytup02mytupmytupmytupmytup0mytupmytup1mytup2xmydictmydictkeymydictkey0mydictkey0mydictkeymydictkeymydictkey0mydictmydictmydictmydictxmydict{"name":"Mixly","color":"green"}s11,2,3,4,5s1s1s1s2s1s2s10s1Mixlys1s2xfilename.txtfMixlyfff0fffpathpathfilename.txtsrcname.txtdstname.txtpathff0MixlyMixlyMixly,HelloMixlyprompt67MixlyMixly0XFF00FFcode6i2c67400000i2ci2c00i2c00i2ci2cspi20000010045spi200000buf50spi10spi100xffspibufspibuf0xffspi12345spi12345bufow12owowow12345ow12345ow89MixGo AI12345MixGo AI123455socksockmixly.orgsock192.168.0.180sock5sockdatasock1024sockRGB312RGB0000RGB660Motori2cMotor100Motor10241024PID0.400PID01SPK8910MIC8910/sd/MixGo.wavSPK80/sd/MixGo.wavMIC10/sd/MixGo.aviSPK80/sd/MixGo.aviMIC10sensor.B240X240100224224150000000x0000#000000img0x0000#00000000MixGo AI0XFFFF#FFFFFF0X0000#00000089MixGo AI12345mixio.mixly.cnmixio.mixly.cnA1B2C3mixio.mixly.cnusernamepasswordMyProjecttopicmsgtopicmethodmethodEQmsg1content"long""lat""message"012content"key1""key2""key3"012mixio.xbed.cnKPU/sd/MixGoAI.kmodelKPU0.50.35anchorKPUimgKPUimgyolo2calss5MixGo.aiMixGo.aicalssimgASRni-haoASR0.1ASRASRimgimgMixGo.jpgimgimgMixGo.jpgimg0,00xFFFF#FFFFFFimg0,0img0,0,240,240img20imgimgimg00你好,米思齐0xFFFF#FFFFFF12img00MixGo AI0xFFFF#FFFFFF1img160,1201.01.0img10,20,30,400xFFFF#FFFFFF1img10,20,30,400xFFFF#FFFFFF1img10,200xFFFF#FFFFFF130img40,30,200xFFFF#FFFFFF1img10,20,30,400xFFFF#FFFFFF1img1.01.0img3img15img0.050.05img110img110img160,1200xFFFF#FFFFFF0.050.05imgimgimg71,95,-60,-41,-128,12700img1-1,-1,-1, -1,8,-1, -1,-1,-1linecirclerectimg0,0,240,24010002525img0,0,240,2401015img0,0,240,240200021002101010img0,0,240,24010000img71,95,-60,-41,-128,1270,0,240,2400,0,00,0,00,0,0255blobhistogram0.5img71,95,-60,-41,-128,1270,0,240,24020020010img0,0,240,240barcodeqrcodeapriltagimg0,0,240,240img0,0,240,240img0,0,240,240 \ No newline at end of file diff --git a/boards/default/micropython_k210_mixgoai/styles/main.04cb6fd2.css b/boards/default/micropython_k210_mixgoai/styles/main.26eee374.css similarity index 100% rename from boards/default/micropython_k210_mixgoai/styles/main.04cb6fd2.css rename to boards/default/micropython_k210_mixgoai/styles/main.26eee374.css diff --git a/boards/default/micropython_nrf51822_mithoncc/examples/map.json b/boards/default/micropython_nrf51822_mithoncc/examples/map.json index 641b4dc6..b3256b91 100644 --- a/boards/default/micropython_nrf51822_mithoncc/examples/map.json +++ b/boards/default/micropython_nrf51822_mithoncc/examples/map.json @@ -1,6 +1,6 @@ { - "-80bSp5oispO.mix": { + "七彩RGB灯.mix": { "__file__": true, - "__name__": "UNbUm7rKOzg2.mix" + "__name__": "七彩RGB灯.mix" } } diff --git a/boards/default/micropython_nrf51822_mithoncc/examples/-80bSp5oispO.mix b/boards/default/micropython_nrf51822_mithoncc/examples/七彩RGB灯.mix similarity index 100% rename from boards/default/micropython_nrf51822_mithoncc/examples/-80bSp5oispO.mix rename to boards/default/micropython_nrf51822_mithoncc/examples/七彩RGB灯.mix diff --git a/boards/default/micropython_robot/examples/0tAPk7aoL8zm/BWZmbbE4cBkH.mix b/boards/default/micropython_robot/examples/MixGo Feiyi/01-1-快速入门-你好世界.mix similarity index 100% rename from boards/default/micropython_robot/examples/0tAPk7aoL8zm/BWZmbbE4cBkH.mix rename to boards/default/micropython_robot/examples/MixGo Feiyi/01-1-快速入门-你好世界.mix diff --git a/boards/default/micropython_robot/examples/0tAPk7aoL8zm/2EuDHAAk4jrh.mix b/boards/default/micropython_robot/examples/MixGo Feiyi/01-2-快速入门-你好世界2.mix similarity index 100% rename from boards/default/micropython_robot/examples/0tAPk7aoL8zm/2EuDHAAk4jrh.mix rename to boards/default/micropython_robot/examples/MixGo Feiyi/01-2-快速入门-你好世界2.mix diff --git a/boards/default/micropython_robot/examples/0tAPk7aoL8zm/WEqfefimcSRC.mix b/boards/default/micropython_robot/examples/MixGo Feiyi/02-1-快速入门-跳动的心.mix similarity index 100% rename from boards/default/micropython_robot/examples/0tAPk7aoL8zm/WEqfefimcSRC.mix rename to boards/default/micropython_robot/examples/MixGo Feiyi/02-1-快速入门-跳动的心.mix diff --git a/boards/default/micropython_robot/examples/0tAPk7aoL8zm/S_mmWF58B-sI.mix b/boards/default/micropython_robot/examples/MixGo Feiyi/02-2-快速入门-为你心动.mix similarity index 100% rename from boards/default/micropython_robot/examples/0tAPk7aoL8zm/S_mmWF58B-sI.mix rename to boards/default/micropython_robot/examples/MixGo Feiyi/02-2-快速入门-为你心动.mix diff --git a/boards/default/micropython_robot/examples/0tAPk7aoL8zm/-2_GC9_BiOuK.mix b/boards/default/micropython_robot/examples/MixGo Feiyi/03-1-快速入门-心随我动.mix similarity index 100% rename from boards/default/micropython_robot/examples/0tAPk7aoL8zm/-2_GC9_BiOuK.mix rename to boards/default/micropython_robot/examples/MixGo Feiyi/03-1-快速入门-心随我动.mix diff --git a/boards/default/micropython_robot/examples/0tAPk7aoL8zm/RKlxP0nRmjEp.mix b/boards/default/micropython_robot/examples/MixGo Feiyi/03-2-快速入门-心随我动2.mix similarity index 100% rename from boards/default/micropython_robot/examples/0tAPk7aoL8zm/RKlxP0nRmjEp.mix rename to boards/default/micropython_robot/examples/MixGo Feiyi/03-2-快速入门-心随我动2.mix diff --git a/boards/default/micropython_robot/examples/0tAPk7aoL8zm/yj_VGwvNLmCF.mix b/boards/default/micropython_robot/examples/MixGo Feiyi/04-1-快速入门-流动的灯.mix similarity index 100% rename from boards/default/micropython_robot/examples/0tAPk7aoL8zm/yj_VGwvNLmCF.mix rename to boards/default/micropython_robot/examples/MixGo Feiyi/04-1-快速入门-流动的灯.mix diff --git a/boards/default/micropython_robot/examples/0tAPk7aoL8zm/Dt8SPw40HQHO.mix b/boards/default/micropython_robot/examples/MixGo Feiyi/04-2-快速入门-流动的灯2.mix similarity index 100% rename from boards/default/micropython_robot/examples/0tAPk7aoL8zm/Dt8SPw40HQHO.mix rename to boards/default/micropython_robot/examples/MixGo Feiyi/04-2-快速入门-流动的灯2.mix diff --git a/boards/default/micropython_robot/examples/0tAPk7aoL8zm/tOsJO-3FeGOo.mix b/boards/default/micropython_robot/examples/MixGo Feiyi/05-1-过程控制-双键开关.mix similarity index 100% rename from boards/default/micropython_robot/examples/0tAPk7aoL8zm/tOsJO-3FeGOo.mix rename to boards/default/micropython_robot/examples/MixGo Feiyi/05-1-过程控制-双键开关.mix diff --git a/boards/default/micropython_robot/examples/0tAPk7aoL8zm/aaCwGyBBdLkr.mix b/boards/default/micropython_robot/examples/MixGo Feiyi/05-2-过程控制-单键开关.mix similarity index 100% rename from boards/default/micropython_robot/examples/0tAPk7aoL8zm/aaCwGyBBdLkr.mix rename to boards/default/micropython_robot/examples/MixGo Feiyi/05-2-过程控制-单键开关.mix diff --git a/boards/default/micropython_robot/examples/0tAPk7aoL8zm/ofc3QYn9b0S2.mix b/boards/default/micropython_robot/examples/MixGo Feiyi/05-3-过程控制-IPO概念.mix similarity index 100% rename from boards/default/micropython_robot/examples/0tAPk7aoL8zm/ofc3QYn9b0S2.mix rename to boards/default/micropython_robot/examples/MixGo Feiyi/05-3-过程控制-IPO概念.mix diff --git a/boards/default/micropython_robot/examples/0tAPk7aoL8zm/wXJagaNfxOB_.mix b/boards/default/micropython_robot/examples/MixGo Feiyi/06-1-过程控制-声音采集.mix similarity index 100% rename from boards/default/micropython_robot/examples/0tAPk7aoL8zm/wXJagaNfxOB_.mix rename to boards/default/micropython_robot/examples/MixGo Feiyi/06-1-过程控制-声音采集.mix diff --git a/boards/default/micropython_robot/examples/0tAPk7aoL8zm/ZdEwJcV9_Qvs.mix b/boards/default/micropython_robot/examples/MixGo Feiyi/06-2-过程控制-看见声音.mix similarity index 100% rename from boards/default/micropython_robot/examples/0tAPk7aoL8zm/ZdEwJcV9_Qvs.mix rename to boards/default/micropython_robot/examples/MixGo Feiyi/06-2-过程控制-看见声音.mix diff --git a/boards/default/micropython_robot/examples/0tAPk7aoL8zm/B9nQ3ELFF-dv.mix b/boards/default/micropython_robot/examples/MixGo Feiyi/07-1-过程控制-光强采集.mix similarity index 100% rename from boards/default/micropython_robot/examples/0tAPk7aoL8zm/B9nQ3ELFF-dv.mix rename to boards/default/micropython_robot/examples/MixGo Feiyi/07-1-过程控制-光强采集.mix diff --git a/boards/default/micropython_robot/examples/0tAPk7aoL8zm/6EoI1V7lztMS.mix b/boards/default/micropython_robot/examples/MixGo Feiyi/07-2-过程控制-自动补光.mix similarity index 100% rename from boards/default/micropython_robot/examples/0tAPk7aoL8zm/6EoI1V7lztMS.mix rename to boards/default/micropython_robot/examples/MixGo Feiyi/07-2-过程控制-自动补光.mix diff --git a/boards/default/micropython_robot/examples/0tAPk7aoL8zm/T7K2SR24iGq8.mix b/boards/default/micropython_robot/examples/MixGo Feiyi/08-1-过程控制-接近检测.mix similarity index 100% rename from boards/default/micropython_robot/examples/0tAPk7aoL8zm/T7K2SR24iGq8.mix rename to boards/default/micropython_robot/examples/MixGo Feiyi/08-1-过程控制-接近检测.mix diff --git a/boards/default/micropython_robot/examples/0tAPk7aoL8zm/5myqwhaxebRb.mix b/boards/default/micropython_robot/examples/MixGo Feiyi/08-2-过程控制-入侵报警.mix similarity index 100% rename from boards/default/micropython_robot/examples/0tAPk7aoL8zm/5myqwhaxebRb.mix rename to boards/default/micropython_robot/examples/MixGo Feiyi/08-2-过程控制-入侵报警.mix diff --git a/boards/default/micropython_robot/examples/0tAPk7aoL8zm/QVccVO4RtI46.mix b/boards/default/micropython_robot/examples/MixGo Feiyi/09-1-输入输出-加速度.mix similarity index 100% rename from boards/default/micropython_robot/examples/0tAPk7aoL8zm/QVccVO4RtI46.mix rename to boards/default/micropython_robot/examples/MixGo Feiyi/09-1-输入输出-加速度.mix diff --git a/boards/default/micropython_robot/examples/0tAPk7aoL8zm/86EMiYxkbEM3.mix b/boards/default/micropython_robot/examples/MixGo Feiyi/09-2-输入输出-平衡仪.mix similarity index 100% rename from boards/default/micropython_robot/examples/0tAPk7aoL8zm/86EMiYxkbEM3.mix rename to boards/default/micropython_robot/examples/MixGo Feiyi/09-2-输入输出-平衡仪.mix diff --git a/boards/default/micropython_robot/examples/0tAPk7aoL8zm/dGZSW-MGIxKX.mix b/boards/default/micropython_robot/examples/MixGo Feiyi/10-1-输入输出-地磁强度.mix similarity index 100% rename from boards/default/micropython_robot/examples/0tAPk7aoL8zm/dGZSW-MGIxKX.mix rename to boards/default/micropython_robot/examples/MixGo Feiyi/10-1-输入输出-地磁强度.mix diff --git a/boards/default/micropython_robot/examples/0tAPk7aoL8zm/eqOEDHRkoVYC.mix b/boards/default/micropython_robot/examples/MixGo Feiyi/10-2-输入输出-金属探测.mix similarity index 100% rename from boards/default/micropython_robot/examples/0tAPk7aoL8zm/eqOEDHRkoVYC.mix rename to boards/default/micropython_robot/examples/MixGo Feiyi/10-2-输入输出-金属探测.mix diff --git a/boards/default/micropython_robot/examples/0tAPk7aoL8zm/88SoMLEQTxWT.mix b/boards/default/micropython_robot/examples/MixGo Feiyi/11-1-输入输出-模拟光强.mix similarity index 100% rename from boards/default/micropython_robot/examples/0tAPk7aoL8zm/88SoMLEQTxWT.mix rename to boards/default/micropython_robot/examples/MixGo Feiyi/11-1-输入输出-模拟光强.mix diff --git a/boards/default/micropython_robot/examples/0tAPk7aoL8zm/SHvtOd8K8DuO.mix b/boards/default/micropython_robot/examples/MixGo Feiyi/11-2-输入输出-光强映射.mix similarity index 100% rename from boards/default/micropython_robot/examples/0tAPk7aoL8zm/SHvtOd8K8DuO.mix rename to boards/default/micropython_robot/examples/MixGo Feiyi/11-2-输入输出-光强映射.mix diff --git a/boards/default/micropython_robot/examples/0tAPk7aoL8zm/2Y1G6Sv14vB5.mix b/boards/default/micropython_robot/examples/MixGo Feiyi/12-1-输入输出-实时时钟.mix similarity index 100% rename from boards/default/micropython_robot/examples/0tAPk7aoL8zm/2Y1G6Sv14vB5.mix rename to boards/default/micropython_robot/examples/MixGo Feiyi/12-1-输入输出-实时时钟.mix diff --git a/boards/default/micropython_robot/examples/0tAPk7aoL8zm/lvSA1PkvE7dJ.mix b/boards/default/micropython_robot/examples/MixGo Feiyi/12-2-输入输出-实时时钟2.mix similarity index 100% rename from boards/default/micropython_robot/examples/0tAPk7aoL8zm/lvSA1PkvE7dJ.mix rename to boards/default/micropython_robot/examples/MixGo Feiyi/12-2-输入输出-实时时钟2.mix diff --git a/boards/default/micropython_robot/examples/0tAPk7aoL8zm/JxJtlW-55GeM.mix b/boards/default/micropython_robot/examples/MixGo Feiyi/13-1-逻辑计算-手速测试.mix similarity index 100% rename from boards/default/micropython_robot/examples/0tAPk7aoL8zm/JxJtlW-55GeM.mix rename to boards/default/micropython_robot/examples/MixGo Feiyi/13-1-逻辑计算-手速测试.mix diff --git a/boards/default/micropython_robot/examples/0tAPk7aoL8zm/7Wmb37_ei.mix b/boards/default/micropython_robot/examples/MixGo Feiyi/13-2-逻辑计算-手速测试2.mix similarity index 100% rename from boards/default/micropython_robot/examples/0tAPk7aoL8zm/7Wmb37_ei.mix rename to boards/default/micropython_robot/examples/MixGo Feiyi/13-2-逻辑计算-手速测试2.mix diff --git a/boards/default/micropython_robot/examples/0tAPk7aoL8zm/U8cF7_m1wda6.mix b/boards/default/micropython_robot/examples/MixGo Feiyi/14-1-逻辑计算-反应测试.mix similarity index 100% rename from boards/default/micropython_robot/examples/0tAPk7aoL8zm/U8cF7_m1wda6.mix rename to boards/default/micropython_robot/examples/MixGo Feiyi/14-1-逻辑计算-反应测试.mix diff --git a/boards/default/micropython_robot/examples/0tAPk7aoL8zm/Javy8ZepaMXh.mix b/boards/default/micropython_robot/examples/MixGo Feiyi/14-2-逻辑计算-反应测试2.mix similarity index 100% rename from boards/default/micropython_robot/examples/0tAPk7aoL8zm/Javy8ZepaMXh.mix rename to boards/default/micropython_robot/examples/MixGo Feiyi/14-2-逻辑计算-反应测试2.mix diff --git a/boards/default/micropython_robot/examples/0tAPk7aoL8zm/wUFPoa8rKx_6.mix b/boards/default/micropython_robot/examples/MixGo Feiyi/15-1-逻辑计算-简单打地鼠.mix similarity index 100% rename from boards/default/micropython_robot/examples/0tAPk7aoL8zm/wUFPoa8rKx_6.mix rename to boards/default/micropython_robot/examples/MixGo Feiyi/15-1-逻辑计算-简单打地鼠.mix diff --git a/boards/default/micropython_robot/examples/0tAPk7aoL8zm/Msr4u3Jd5O85.mix b/boards/default/micropython_robot/examples/MixGo Feiyi/15-2-逻辑计算-计时打地鼠.mix similarity index 100% rename from boards/default/micropython_robot/examples/0tAPk7aoL8zm/Msr4u3Jd5O85.mix rename to boards/default/micropython_robot/examples/MixGo Feiyi/15-2-逻辑计算-计时打地鼠.mix diff --git a/boards/default/micropython_robot/examples/0tAPk7aoL8zm/B60kSHQXpAUW.mix b/boards/default/micropython_robot/examples/MixGo Feiyi/16-1-逻辑计算-开始打地鼠.mix similarity index 100% rename from boards/default/micropython_robot/examples/0tAPk7aoL8zm/B60kSHQXpAUW.mix rename to boards/default/micropython_robot/examples/MixGo Feiyi/16-1-逻辑计算-开始打地鼠.mix diff --git a/boards/default/micropython_robot/examples/0tAPk7aoL8zm/FH_1vct9Saj-.mix b/boards/default/micropython_robot/examples/MixGo Feiyi/16-2-逻辑计算-循环打地鼠.mix similarity index 100% rename from boards/default/micropython_robot/examples/0tAPk7aoL8zm/FH_1vct9Saj-.mix rename to boards/default/micropython_robot/examples/MixGo Feiyi/16-2-逻辑计算-循环打地鼠.mix diff --git a/boards/default/micropython_robot/examples/0tAPk7aoL8zm/K54EnbPe3FGs.mix b/boards/default/micropython_robot/examples/MixGo Feiyi/17-0-复杂控制-非中断效果.mix similarity index 100% rename from boards/default/micropython_robot/examples/0tAPk7aoL8zm/K54EnbPe3FGs.mix rename to boards/default/micropython_robot/examples/MixGo Feiyi/17-0-复杂控制-非中断效果.mix diff --git a/boards/default/micropython_robot/examples/0tAPk7aoL8zm/C_gSpJxTay45.mix b/boards/default/micropython_robot/examples/MixGo Feiyi/17-1-复杂控制-双键中断.mix similarity index 100% rename from boards/default/micropython_robot/examples/0tAPk7aoL8zm/C_gSpJxTay45.mix rename to boards/default/micropython_robot/examples/MixGo Feiyi/17-1-复杂控制-双键中断.mix diff --git a/boards/default/micropython_robot/examples/0tAPk7aoL8zm/jSjyQn3fr32Y.mix b/boards/default/micropython_robot/examples/MixGo Feiyi/17-2-复杂控制-单键中断.mix similarity index 100% rename from boards/default/micropython_robot/examples/0tAPk7aoL8zm/jSjyQn3fr32Y.mix rename to boards/default/micropython_robot/examples/MixGo Feiyi/17-2-复杂控制-单键中断.mix diff --git a/boards/default/micropython_robot/examples/0tAPk7aoL8zm/eWHVO5fVtuea.mix b/boards/default/micropython_robot/examples/MixGo Feiyi/18-1-复杂控制-定时计时.mix similarity index 100% rename from boards/default/micropython_robot/examples/0tAPk7aoL8zm/eWHVO5fVtuea.mix rename to boards/default/micropython_robot/examples/MixGo Feiyi/18-1-复杂控制-定时计时.mix diff --git a/boards/default/micropython_robot/examples/0tAPk7aoL8zm/JSiCGWyQMK5q.mix b/boards/default/micropython_robot/examples/MixGo Feiyi/18-2-复杂控制-循环计时.mix similarity index 100% rename from boards/default/micropython_robot/examples/0tAPk7aoL8zm/JSiCGWyQMK5q.mix rename to boards/default/micropython_robot/examples/MixGo Feiyi/18-2-复杂控制-循环计时.mix diff --git a/boards/default/micropython_robot/examples/0tAPk7aoL8zm/gg6RG4tQFzd7.mix b/boards/default/micropython_robot/examples/MixGo Feiyi/19-1-复杂控制-多线程.mix similarity index 100% rename from boards/default/micropython_robot/examples/0tAPk7aoL8zm/gg6RG4tQFzd7.mix rename to boards/default/micropython_robot/examples/MixGo Feiyi/19-1-复杂控制-多线程.mix diff --git a/boards/default/micropython_robot/examples/0tAPk7aoL8zm/mE0Cip4miF3t.mix b/boards/default/micropython_robot/examples/MixGo Feiyi/19-2-复杂控制-多线程与中断.mix similarity index 100% rename from boards/default/micropython_robot/examples/0tAPk7aoL8zm/mE0Cip4miF3t.mix rename to boards/default/micropython_robot/examples/MixGo Feiyi/19-2-复杂控制-多线程与中断.mix diff --git a/boards/default/micropython_robot/examples/0tAPk7aoL8zm/N6e7mDuNINma.mix b/boards/default/micropython_robot/examples/MixGo Feiyi/20-1-复杂控制-异常.mix similarity index 100% rename from boards/default/micropython_robot/examples/0tAPk7aoL8zm/N6e7mDuNINma.mix rename to boards/default/micropython_robot/examples/MixGo Feiyi/20-1-复杂控制-异常.mix diff --git a/boards/default/micropython_robot/examples/0tAPk7aoL8zm/AnzW8wUL5s7M.mix b/boards/default/micropython_robot/examples/MixGo Feiyi/20-2-复杂控制-异常处理.mix similarity index 100% rename from boards/default/micropython_robot/examples/0tAPk7aoL8zm/AnzW8wUL5s7M.mix rename to boards/default/micropython_robot/examples/MixGo Feiyi/20-2-复杂控制-异常处理.mix diff --git a/boards/default/micropython_robot/examples/0tAPk7aoL8zm/O7i8VA2Ckbd_.mix b/boards/default/micropython_robot/examples/MixGo Feiyi/21-1-射频识别-读取测试.mix similarity index 100% rename from boards/default/micropython_robot/examples/0tAPk7aoL8zm/O7i8VA2Ckbd_.mix rename to boards/default/micropython_robot/examples/MixGo Feiyi/21-1-射频识别-读取测试.mix diff --git a/boards/default/micropython_robot/examples/0tAPk7aoL8zm/U1SYtWjEg9ND.mix b/boards/default/micropython_robot/examples/MixGo Feiyi/21-2-射频识别-读取卡号.mix similarity index 100% rename from boards/default/micropython_robot/examples/0tAPk7aoL8zm/U1SYtWjEg9ND.mix rename to boards/default/micropython_robot/examples/MixGo Feiyi/21-2-射频识别-读取卡号.mix diff --git a/boards/default/micropython_robot/examples/0tAPk7aoL8zm/dSCJ3Xk-PJLT.mix b/boards/default/micropython_robot/examples/MixGo Feiyi/22-1-射频识别-写卡测试.mix similarity index 100% rename from boards/default/micropython_robot/examples/0tAPk7aoL8zm/dSCJ3Xk-PJLT.mix rename to boards/default/micropython_robot/examples/MixGo Feiyi/22-1-射频识别-写卡测试.mix diff --git a/boards/default/micropython_robot/examples/0tAPk7aoL8zm/LqlW2FourYvj.mix b/boards/default/micropython_robot/examples/MixGo Feiyi/22-2-射频识别-持续写卡.mix similarity index 100% rename from boards/default/micropython_robot/examples/0tAPk7aoL8zm/LqlW2FourYvj.mix rename to boards/default/micropython_robot/examples/MixGo Feiyi/22-2-射频识别-持续写卡.mix diff --git a/boards/default/micropython_robot/examples/0tAPk7aoL8zm/F2WoBlT1OLip.mix b/boards/default/micropython_robot/examples/MixGo Feiyi/23-1-蓝牙通讯-主机模式.mix similarity index 100% rename from boards/default/micropython_robot/examples/0tAPk7aoL8zm/F2WoBlT1OLip.mix rename to boards/default/micropython_robot/examples/MixGo Feiyi/23-1-蓝牙通讯-主机模式.mix diff --git a/boards/default/micropython_robot/examples/0tAPk7aoL8zm/f3iPaipRA_Nb.mix b/boards/default/micropython_robot/examples/MixGo Feiyi/23-1-蓝牙通讯-从机模式.mix similarity index 100% rename from boards/default/micropython_robot/examples/0tAPk7aoL8zm/f3iPaipRA_Nb.mix rename to boards/default/micropython_robot/examples/MixGo Feiyi/23-1-蓝牙通讯-从机模式.mix diff --git a/boards/default/micropython_robot/examples/0tAPk7aoL8zm/XVnevsDK_1Bj.mix b/boards/default/micropython_robot/examples/MixGo Feiyi/24-1-无线广播-通讯测试.mix similarity index 100% rename from boards/default/micropython_robot/examples/0tAPk7aoL8zm/XVnevsDK_1Bj.mix rename to boards/default/micropython_robot/examples/MixGo Feiyi/24-1-无线广播-通讯测试.mix diff --git a/boards/default/micropython_robot/examples/0tAPk7aoL8zm/ttX2eVZ7BAWj.mix b/boards/default/micropython_robot/examples/MixGo Feiyi/24-2-无线广播-防丢检测.mix similarity index 100% rename from boards/default/micropython_robot/examples/0tAPk7aoL8zm/ttX2eVZ7BAWj.mix rename to boards/default/micropython_robot/examples/MixGo Feiyi/24-2-无线广播-防丢检测.mix diff --git a/boards/default/micropython_robot/examples/0tAPk7aoL8zm/80-0m32P6EUb.mix b/boards/default/micropython_robot/examples/MixGo Feiyi/25-1-飞机游戏-显示飞机.mix similarity index 100% rename from boards/default/micropython_robot/examples/0tAPk7aoL8zm/80-0m32P6EUb.mix rename to boards/default/micropython_robot/examples/MixGo Feiyi/25-1-飞机游戏-显示飞机.mix diff --git a/boards/default/micropython_robot/examples/0tAPk7aoL8zm/QXjvSHHDk0Ek.mix b/boards/default/micropython_robot/examples/MixGo Feiyi/25-2-飞机游戏-移动飞机.mix similarity index 100% rename from boards/default/micropython_robot/examples/0tAPk7aoL8zm/QXjvSHHDk0Ek.mix rename to boards/default/micropython_robot/examples/MixGo Feiyi/25-2-飞机游戏-移动飞机.mix diff --git a/boards/default/micropython_robot/examples/0tAPk7aoL8zm/6YnO30y2lA9D.mix b/boards/default/micropython_robot/examples/MixGo Feiyi/26-1-飞机游戏-发射子弹.mix similarity index 100% rename from boards/default/micropython_robot/examples/0tAPk7aoL8zm/6YnO30y2lA9D.mix rename to boards/default/micropython_robot/examples/MixGo Feiyi/26-1-飞机游戏-发射子弹.mix diff --git a/boards/default/micropython_robot/examples/0tAPk7aoL8zm/ZbeOkwLrP4rX.mix b/boards/default/micropython_robot/examples/MixGo Feiyi/26-2-飞机游戏-移动音效.mix similarity index 100% rename from boards/default/micropython_robot/examples/0tAPk7aoL8zm/ZbeOkwLrP4rX.mix rename to boards/default/micropython_robot/examples/MixGo Feiyi/26-2-飞机游戏-移动音效.mix diff --git a/boards/default/micropython_robot/examples/0tAPk7aoL8zm/CPifVGG7ZemZ.mix b/boards/default/micropython_robot/examples/MixGo Feiyi/27-1-飞机游戏-显示敌机.mix similarity index 100% rename from boards/default/micropython_robot/examples/0tAPk7aoL8zm/CPifVGG7ZemZ.mix rename to boards/default/micropython_robot/examples/MixGo Feiyi/27-1-飞机游戏-显示敌机.mix diff --git a/boards/default/micropython_robot/examples/0tAPk7aoL8zm/tiiOwL6uMSQI.mix b/boards/default/micropython_robot/examples/MixGo Feiyi/27-2-飞机游戏-消灭敌机.mix similarity index 100% rename from boards/default/micropython_robot/examples/0tAPk7aoL8zm/tiiOwL6uMSQI.mix rename to boards/default/micropython_robot/examples/MixGo Feiyi/27-2-飞机游戏-消灭敌机.mix diff --git a/boards/default/micropython_robot/examples/0tAPk7aoL8zm/i3jOD3vXie8i.mix b/boards/default/micropython_robot/examples/MixGo Feiyi/28-1-飞机游戏-显示得分.mix similarity index 100% rename from boards/default/micropython_robot/examples/0tAPk7aoL8zm/i3jOD3vXie8i.mix rename to boards/default/micropython_robot/examples/MixGo Feiyi/28-1-飞机游戏-显示得分.mix diff --git a/boards/default/micropython_robot/examples/0tAPk7aoL8zm/B6ll9VLMmzqE.mix b/boards/default/micropython_robot/examples/MixGo Feiyi/28-2-飞机游戏-结束游戏.mix similarity index 100% rename from boards/default/micropython_robot/examples/0tAPk7aoL8zm/B6ll9VLMmzqE.mix rename to boards/default/micropython_robot/examples/MixGo Feiyi/28-2-飞机游戏-结束游戏.mix diff --git a/boards/default/micropython_robot/examples/0tAPk7aoL8zm/LdMbbtz16I3e.mix b/boards/default/micropython_robot/examples/MixGo Feiyi/29-1-物联网-简单数据定时上报.mix similarity index 100% rename from boards/default/micropython_robot/examples/0tAPk7aoL8zm/LdMbbtz16I3e.mix rename to boards/default/micropython_robot/examples/MixGo Feiyi/29-1-物联网-简单数据定时上报.mix diff --git a/boards/default/micropython_robot/examples/0tAPk7aoL8zm/ZPOLzevasoIp.mix b/boards/default/micropython_robot/examples/MixGo Feiyi/29-2-物联网-复杂数据定时上报.mix similarity index 100% rename from boards/default/micropython_robot/examples/0tAPk7aoL8zm/ZPOLzevasoIp.mix rename to boards/default/micropython_robot/examples/MixGo Feiyi/29-2-物联网-复杂数据定时上报.mix diff --git a/boards/default/micropython_robot/examples/0tAPk7aoL8zm/8t2XK6ZeI2p9.mix b/boards/default/micropython_robot/examples/MixGo Feiyi/30-1-物联网-简单数据按需上报.mix similarity index 100% rename from boards/default/micropython_robot/examples/0tAPk7aoL8zm/8t2XK6ZeI2p9.mix rename to boards/default/micropython_robot/examples/MixGo Feiyi/30-1-物联网-简单数据按需上报.mix diff --git a/boards/default/micropython_robot/examples/0tAPk7aoL8zm/3MevaqxcJ5w1.mix b/boards/default/micropython_robot/examples/MixGo Feiyi/30-2-物联网-高级数据按需上报.mix similarity index 100% rename from boards/default/micropython_robot/examples/0tAPk7aoL8zm/3MevaqxcJ5w1.mix rename to boards/default/micropython_robot/examples/MixGo Feiyi/30-2-物联网-高级数据按需上报.mix diff --git a/boards/default/micropython_robot/examples/0tAPk7aoL8zm/pgbrpsBExd2J.mix b/boards/default/micropython_robot/examples/MixGo Feiyi/31-1-物联网-单主题数据订阅.mix similarity index 100% rename from boards/default/micropython_robot/examples/0tAPk7aoL8zm/pgbrpsBExd2J.mix rename to boards/default/micropython_robot/examples/MixGo Feiyi/31-1-物联网-单主题数据订阅.mix diff --git a/boards/default/micropython_robot/examples/0tAPk7aoL8zm/uV1K3O_9p_qV.mix b/boards/default/micropython_robot/examples/MixGo Feiyi/31-1-物联网-单主题数据订阅2.mix similarity index 100% rename from boards/default/micropython_robot/examples/0tAPk7aoL8zm/uV1K3O_9p_qV.mix rename to boards/default/micropython_robot/examples/MixGo Feiyi/31-1-物联网-单主题数据订阅2.mix diff --git a/boards/default/micropython_robot/examples/0tAPk7aoL8zm/trBKgAScq-_3.mix b/boards/default/micropython_robot/examples/MixGo Feiyi/32-1-物联网-多主题数据订.mix similarity index 100% rename from boards/default/micropython_robot/examples/0tAPk7aoL8zm/trBKgAScq-_3.mix rename to boards/default/micropython_robot/examples/MixGo Feiyi/32-1-物联网-多主题数据订.mix diff --git a/boards/default/micropython_robot/examples/0tAPk7aoL8zm/N8T-XWdUfJYW.mix b/boards/default/micropython_robot/examples/MixGo Feiyi/32-2-物联网-多主题数据订2.mix similarity index 100% rename from boards/default/micropython_robot/examples/0tAPk7aoL8zm/N8T-XWdUfJYW.mix rename to boards/default/micropython_robot/examples/MixGo Feiyi/32-2-物联网-多主题数据订2.mix diff --git a/boards/default/micropython_robot/examples/0tAPk7aoL8zm/f5MpUoyKQxui.mix b/boards/default/micropython_robot/examples/MixGo Feiyi/33-1-课堂互动-自由签到.mix similarity index 100% rename from boards/default/micropython_robot/examples/0tAPk7aoL8zm/f5MpUoyKQxui.mix rename to boards/default/micropython_robot/examples/MixGo Feiyi/33-1-课堂互动-自由签到.mix diff --git a/boards/default/micropython_robot/examples/0tAPk7aoL8zm/UMVBBvwZ-YLe.mix b/boards/default/micropython_robot/examples/MixGo Feiyi/33-2-课堂互动-按需签到.mix similarity index 100% rename from boards/default/micropython_robot/examples/0tAPk7aoL8zm/UMVBBvwZ-YLe.mix rename to boards/default/micropython_robot/examples/MixGo Feiyi/33-2-课堂互动-按需签到.mix diff --git a/boards/default/micropython_robot/examples/0tAPk7aoL8zm/dg9vaXa7DD56.mix b/boards/default/micropython_robot/examples/MixGo Feiyi/34-1-课堂互动-一人抢答.mix similarity index 100% rename from boards/default/micropython_robot/examples/0tAPk7aoL8zm/dg9vaXa7DD56.mix rename to boards/default/micropython_robot/examples/MixGo Feiyi/34-1-课堂互动-一人抢答.mix diff --git a/boards/default/micropython_robot/examples/0tAPk7aoL8zm/YksAerv7TNeP.mix b/boards/default/micropython_robot/examples/MixGo Feiyi/34-2-课堂互动-多人抢答.mix similarity index 100% rename from boards/default/micropython_robot/examples/0tAPk7aoL8zm/YksAerv7TNeP.mix rename to boards/default/micropython_robot/examples/MixGo Feiyi/34-2-课堂互动-多人抢答.mix diff --git a/boards/default/micropython_robot/examples/0tAPk7aoL8zm/Beb1TG6bagMU.mix b/boards/default/micropython_robot/examples/MixGo Feiyi/35-1-课堂互动-单选答题.mix similarity index 100% rename from boards/default/micropython_robot/examples/0tAPk7aoL8zm/Beb1TG6bagMU.mix rename to boards/default/micropython_robot/examples/MixGo Feiyi/35-1-课堂互动-单选答题.mix diff --git a/boards/default/micropython_robot/examples/0tAPk7aoL8zm/9CLekchHWt7J.mix b/boards/default/micropython_robot/examples/MixGo Feiyi/35-2-课堂互动-多选答题.mix similarity index 100% rename from boards/default/micropython_robot/examples/0tAPk7aoL8zm/9CLekchHWt7J.mix rename to boards/default/micropython_robot/examples/MixGo Feiyi/35-2-课堂互动-多选答题.mix diff --git a/boards/default/micropython_robot/examples/0tAPk7aoL8zm/dE6OrD_1bjF1.mix b/boards/default/micropython_robot/examples/MixGo Feiyi/36-1-课堂互动-点名答题.mix similarity index 100% rename from boards/default/micropython_robot/examples/0tAPk7aoL8zm/dE6OrD_1bjF1.mix rename to boards/default/micropython_robot/examples/MixGo Feiyi/36-1-课堂互动-点名答题.mix diff --git a/boards/default/micropython_robot/examples/0tAPk7aoL8zm/aSL80IA4E2TH.mix b/boards/default/micropython_robot/examples/MixGo Feiyi/36-2-课堂互动-多人点答.mix similarity index 100% rename from boards/default/micropython_robot/examples/0tAPk7aoL8zm/aSL80IA4E2TH.mix rename to boards/default/micropython_robot/examples/MixGo Feiyi/36-2-课堂互动-多人点答.mix diff --git a/boards/default/micropython_robot/examples/0tAPk7aoL8zm/Dzck-J9UKcEg.mix b/boards/default/micropython_robot/examples/MixGo Feiyi/37-1-文件操作-列出文件.mix similarity index 100% rename from boards/default/micropython_robot/examples/0tAPk7aoL8zm/Dzck-J9UKcEg.mix rename to boards/default/micropython_robot/examples/MixGo Feiyi/37-1-文件操作-列出文件.mix diff --git a/boards/default/micropython_robot/examples/0tAPk7aoL8zm/_7Y-bw4Rigq9.mix b/boards/default/micropython_robot/examples/MixGo Feiyi/37-2-文件操作-列出文件2.mix similarity index 100% rename from boards/default/micropython_robot/examples/0tAPk7aoL8zm/_7Y-bw4Rigq9.mix rename to boards/default/micropython_robot/examples/MixGo Feiyi/37-2-文件操作-列出文件2.mix diff --git a/boards/default/micropython_robot/examples/0tAPk7aoL8zm/1mhrelWB3V12.mix b/boards/default/micropython_robot/examples/MixGo Feiyi/38-1-文件操作-文件读写.mix similarity index 100% rename from boards/default/micropython_robot/examples/0tAPk7aoL8zm/1mhrelWB3V12.mix rename to boards/default/micropython_robot/examples/MixGo Feiyi/38-1-文件操作-文件读写.mix diff --git a/boards/default/micropython_robot/examples/0tAPk7aoL8zm/3P3lLi4Gt8Rd.mix b/boards/default/micropython_robot/examples/MixGo Feiyi/38-2-文件操作-文件读写2.mix similarity index 100% rename from boards/default/micropython_robot/examples/0tAPk7aoL8zm/3P3lLi4Gt8Rd.mix rename to boards/default/micropython_robot/examples/MixGo Feiyi/38-2-文件操作-文件读写2.mix diff --git a/boards/default/micropython_robot/examples/0tAPk7aoL8zm/5SjY_Ymi8OlF.mix b/boards/default/micropython_robot/examples/MixGo Feiyi/39-1-文件操作-录音采集.mix similarity index 100% rename from boards/default/micropython_robot/examples/0tAPk7aoL8zm/5SjY_Ymi8OlF.mix rename to boards/default/micropython_robot/examples/MixGo Feiyi/39-1-文件操作-录音采集.mix diff --git a/boards/default/micropython_robot/examples/0tAPk7aoL8zm/wi9fRUkcJKkF.mix b/boards/default/micropython_robot/examples/MixGo Feiyi/39-2-文件操作-录音重现.mix similarity index 100% rename from boards/default/micropython_robot/examples/0tAPk7aoL8zm/wi9fRUkcJKkF.mix rename to boards/default/micropython_robot/examples/MixGo Feiyi/39-2-文件操作-录音重现.mix diff --git a/boards/default/micropython_robot/examples/0tAPk7aoL8zm/TRIoGN3rWvbG.mix b/boards/default/micropython_robot/examples/MixGo Feiyi/40-1-文件操作-震动采集.mix similarity index 100% rename from boards/default/micropython_robot/examples/0tAPk7aoL8zm/TRIoGN3rWvbG.mix rename to boards/default/micropython_robot/examples/MixGo Feiyi/40-1-文件操作-震动采集.mix diff --git a/boards/default/micropython_robot/examples/0tAPk7aoL8zm/wfXaNatFybdy.mix b/boards/default/micropython_robot/examples/MixGo Feiyi/40-2-文件操作-震动重现.mix similarity index 100% rename from boards/default/micropython_robot/examples/0tAPk7aoL8zm/wfXaNatFybdy.mix rename to boards/default/micropython_robot/examples/MixGo Feiyi/40-2-文件操作-震动重现.mix diff --git a/boards/default/micropython_robot/examples/0tAPk7aoL8zm/gfB_cLzHkaMS.mix b/boards/default/micropython_robot/examples/MixGo Feiyi/41-1-智能小车-前进转弯.mix similarity index 100% rename from boards/default/micropython_robot/examples/0tAPk7aoL8zm/gfB_cLzHkaMS.mix rename to boards/default/micropython_robot/examples/MixGo Feiyi/41-1-智能小车-前进转弯.mix diff --git a/boards/default/micropython_robot/examples/0tAPk7aoL8zm/qHUMK--qkNfJ.mix b/boards/default/micropython_robot/examples/MixGo Feiyi/41-2-智能小车-圆圈转弯.mix similarity index 100% rename from boards/default/micropython_robot/examples/0tAPk7aoL8zm/qHUMK--qkNfJ.mix rename to boards/default/micropython_robot/examples/MixGo Feiyi/41-2-智能小车-圆圈转弯.mix diff --git a/boards/default/micropython_robot/examples/0tAPk7aoL8zm/5iqRw9z_taDH.mix b/boards/default/micropython_robot/examples/MixGo Feiyi/42-1-智能小车-智能避障.mix similarity index 100% rename from boards/default/micropython_robot/examples/0tAPk7aoL8zm/5iqRw9z_taDH.mix rename to boards/default/micropython_robot/examples/MixGo Feiyi/42-1-智能小车-智能避障.mix diff --git a/boards/default/micropython_robot/examples/0tAPk7aoL8zm/LqddGkVwosjz.mix b/boards/default/micropython_robot/examples/MixGo Feiyi/43-1-智能小车-遥控小车.mix similarity index 100% rename from boards/default/micropython_robot/examples/0tAPk7aoL8zm/LqddGkVwosjz.mix rename to boards/default/micropython_robot/examples/MixGo Feiyi/43-1-智能小车-遥控小车.mix diff --git a/boards/default/micropython_robot/examples/0tAPk7aoL8zm/X83I1zvbdtvN.mix b/boards/default/micropython_robot/examples/MixGo Feiyi/43-2-智能小车-体感遥控.mix similarity index 100% rename from boards/default/micropython_robot/examples/0tAPk7aoL8zm/X83I1zvbdtvN.mix rename to boards/default/micropython_robot/examples/MixGo Feiyi/43-2-智能小车-体感遥控.mix diff --git a/boards/default/micropython_robot/examples/0tAPk7aoL8zm/QFOrRMyJOwZR.mix b/boards/default/micropython_robot/examples/MixGo Feiyi/44-1-智能小车-P单巡线.mix similarity index 100% rename from boards/default/micropython_robot/examples/0tAPk7aoL8zm/QFOrRMyJOwZR.mix rename to boards/default/micropython_robot/examples/MixGo Feiyi/44-1-智能小车-P单巡线.mix diff --git a/boards/default/micropython_robot/examples/0tAPk7aoL8zm/yTtYeVlCS4oy.mix b/boards/default/micropython_robot/examples/MixGo Feiyi/44-2-智能小车-P双巡线.mix similarity index 100% rename from boards/default/micropython_robot/examples/0tAPk7aoL8zm/yTtYeVlCS4oy.mix rename to boards/default/micropython_robot/examples/MixGo Feiyi/44-2-智能小车-P双巡线.mix diff --git a/boards/default/micropython_robot/examples/0tAPk7aoL8zm/rUJcmk6C-Ew5.mix b/boards/default/micropython_robot/examples/MixGo Feiyi/45-1-外接红外-单挥手测速.mix similarity index 100% rename from boards/default/micropython_robot/examples/0tAPk7aoL8zm/rUJcmk6C-Ew5.mix rename to boards/default/micropython_robot/examples/MixGo Feiyi/45-1-外接红外-单挥手测速.mix diff --git a/boards/default/micropython_robot/examples/0tAPk7aoL8zm/1R44JUQUSFKb.mix b/boards/default/micropython_robot/examples/MixGo Feiyi/45-2-外接红外-双挥手测速.mix similarity index 100% rename from boards/default/micropython_robot/examples/0tAPk7aoL8zm/1R44JUQUSFKb.mix rename to boards/default/micropython_robot/examples/MixGo Feiyi/45-2-外接红外-双挥手测速.mix diff --git a/boards/default/micropython_robot/examples/0tAPk7aoL8zm/xZourKdQ2Tel.mix b/boards/default/micropython_robot/examples/MixGo Feiyi/46-1-外接红外-双门人数统计.mix similarity index 100% rename from boards/default/micropython_robot/examples/0tAPk7aoL8zm/xZourKdQ2Tel.mix rename to boards/default/micropython_robot/examples/MixGo Feiyi/46-1-外接红外-双门人数统计.mix diff --git a/boards/default/micropython_robot/examples/0tAPk7aoL8zm/6zB-xnbwLyqb.mix b/boards/default/micropython_robot/examples/MixGo Feiyi/46-2-外接红外-单门人数统计.mix similarity index 100% rename from boards/default/micropython_robot/examples/0tAPk7aoL8zm/6zB-xnbwLyqb.mix rename to boards/default/micropython_robot/examples/MixGo Feiyi/46-2-外接红外-单门人数统计.mix diff --git a/boards/default/micropython_robot/examples/0tAPk7aoL8zm/eYsTKe70LdO7.mix b/boards/default/micropython_robot/examples/MixGo Feiyi/47-1-外接红外-简单车库门.mix similarity index 100% rename from boards/default/micropython_robot/examples/0tAPk7aoL8zm/eYsTKe70LdO7.mix rename to boards/default/micropython_robot/examples/MixGo Feiyi/47-1-外接红外-简单车库门.mix diff --git a/boards/default/micropython_robot/examples/0tAPk7aoL8zm/BurNuDQyGhqE.mix b/boards/default/micropython_robot/examples/MixGo Feiyi/47-2-外接红外-反馈车库门.mix similarity index 100% rename from boards/default/micropython_robot/examples/0tAPk7aoL8zm/BurNuDQyGhqE.mix rename to boards/default/micropython_robot/examples/MixGo Feiyi/47-2-外接红外-反馈车库门.mix diff --git a/boards/default/micropython_robot/examples/0tAPk7aoL8zm/f0BwdEyCv_cX.mix b/boards/default/micropython_robot/examples/MixGo Feiyi/48-1-外接红外-转速统计.mix similarity index 100% rename from boards/default/micropython_robot/examples/0tAPk7aoL8zm/f0BwdEyCv_cX.mix rename to boards/default/micropython_robot/examples/MixGo Feiyi/48-1-外接红外-转速统计.mix diff --git a/boards/default/micropython_robot/examples/0tAPk7aoL8zm/Piiw26lHT4MY.mix b/boards/default/micropython_robot/examples/MixGo Feiyi/48-2-外接红外-多速转速统计.mix similarity index 100% rename from boards/default/micropython_robot/examples/0tAPk7aoL8zm/Piiw26lHT4MY.mix rename to boards/default/micropython_robot/examples/MixGo Feiyi/48-2-外接红外-多速转速统计.mix diff --git a/boards/default/micropython_robot/examples/0tAPk7aoL8zm/-76BrzOINsK6.mix b/boards/default/micropython_robot/examples/MixGo Feiyi/balance.mix similarity index 100% rename from boards/default/micropython_robot/examples/0tAPk7aoL8zm/-76BrzOINsK6.mix rename to boards/default/micropython_robot/examples/MixGo Feiyi/balance.mix diff --git a/boards/default/micropython_robot/examples/0tAPk7aoL8zm/parkgate.jpg b/boards/default/micropython_robot/examples/MixGo Feiyi/parkgate.jpg similarity index 100% rename from boards/default/micropython_robot/examples/0tAPk7aoL8zm/parkgate.jpg rename to boards/default/micropython_robot/examples/MixGo Feiyi/parkgate.jpg diff --git a/boards/default/micropython_robot/examples/0tAPk7aoL8zm/jSvhE5WW-nY1.mix b/boards/default/micropython_robot/examples/MixGo Feiyi/pid.mix similarity index 100% rename from boards/default/micropython_robot/examples/0tAPk7aoL8zm/jSvhE5WW-nY1.mix rename to boards/default/micropython_robot/examples/MixGo Feiyi/pid.mix diff --git a/boards/default/micropython_robot/examples/map.json b/boards/default/micropython_robot/examples/map.json index a041f306..635db9cc 100644 --- a/boards/default/micropython_robot/examples/map.json +++ b/boards/default/micropython_robot/examples/map.json @@ -1,402 +1,402 @@ { - "0tAPk7aoL8zm": { - "trBKgAScq-_3.mix": { + "MixGo Feiyi": { + "01-1-快速入门-你好世界.mix": { "__file__": true, - "__name__": "0oSSWtGd0csz.mix" + "__name__": "01-1-快速入门-你好世界.mix" }, - "Dzck-J9UKcEg.mix": { + "01-2-快速入门-你好世界2.mix": { "__file__": true, - "__name__": "1EuXs4KIbY4s.mix" + "__name__": "01-2-快速入门-你好世界2.mix" }, - "5iqRw9z_taDH.mix": { + "02-1-快速入门-跳动的心.mix": { "__file__": true, - "__name__": "1IkhwsxX1M7v.mix" + "__name__": "02-1-快速入门-跳动的心.mix" }, - "80-0m32P6EUb.mix": { + "02-2-快速入门-为你心动.mix": { "__file__": true, - "__name__": "1stIbVnDhEg4.mix" + "__name__": "02-2-快速入门-为你心动.mix" }, - "aSL80IA4E2TH.mix": { + "03-1-快速入门-心随我动.mix": { "__file__": true, - "__name__": "3D7XQj4SFfYV.mix" + "__name__": "03-1-快速入门-心随我动.mix" }, - "U1SYtWjEg9ND.mix": { + "03-2-快速入门-心随我动2.mix": { "__file__": true, - "__name__": "3Jgdkl7WHCj4.mix" + "__name__": "03-2-快速入门-心随我动2.mix" }, - "Beb1TG6bagMU.mix": { + "04-1-快速入门-流动的灯.mix": { "__file__": true, - "__name__": "3Ufqr-44AtG6.mix" + "__name__": "04-1-快速入门-流动的灯.mix" }, - "FH_1vct9Saj-.mix": { + "04-2-快速入门-流动的灯2.mix": { "__file__": true, - "__name__": "3VUhickULzsG.mix" + "__name__": "04-2-快速入门-流动的灯2.mix" }, - "mE0Cip4miF3t.mix": { + "05-1-过程控制-双键开关.mix": { "__file__": true, - "__name__": "62_8H8D6dR2i.mix" + "__name__": "05-1-过程控制-双键开关.mix" }, - "jSvhE5WW-nY1.mix": { + "05-2-过程控制-单键开关.mix": { "__file__": true, - "__name__": "65iEMmPc2mXr.mix" + "__name__": "05-2-过程控制-单键开关.mix" }, - "QXjvSHHDk0Ek.mix": { + "05-3-过程控制-IPO概念.mix": { "__file__": true, - "__name__": "7zny6GKqfaVl.mix" + "__name__": "05-3-过程控制-IPO概念.mix" }, - "_7Y-bw4Rigq9.mix": { + "06-1-过程控制-声音采集.mix": { "__file__": true, - "__name__": "80NfnkQdz_ZG.mix" + "__name__": "06-1-过程控制-声音采集.mix" }, - "6zB-xnbwLyqb.mix": { + "06-2-过程控制-看见声音.mix": { "__file__": true, - "__name__": "81IUUl0ohShB.mix" + "__name__": "06-2-过程控制-看见声音.mix" }, - "xZourKdQ2Tel.mix": { + "07-1-过程控制-光强采集.mix": { "__file__": true, - "__name__": "8OSaPbDIpdPn.mix" + "__name__": "07-1-过程控制-光强采集.mix" }, - "pgbrpsBExd2J.mix": { + "07-2-过程控制-自动补光.mix": { "__file__": true, - "__name__": "8vWGd2nD1hjX.mix" + "__name__": "07-2-过程控制-自动补光.mix" }, - "gfB_cLzHkaMS.mix": { + "08-1-过程控制-接近检测.mix": { "__file__": true, - "__name__": "8zDYD1otgZlE.mix" + "__name__": "08-1-过程控制-接近检测.mix" }, - "S_mmWF58B-sI.mix": { + "08-2-过程控制-入侵报警.mix": { "__file__": true, - "__name__": "9bpMsY0MDx4H.mix" + "__name__": "08-2-过程控制-入侵报警.mix" }, - "5myqwhaxebRb.mix": { + "09-1-输入输出-加速度.mix": { "__file__": true, - "__name__": "9Q0A6WtKyU46.mix" + "__name__": "09-1-输入输出-加速度.mix" }, - "eWHVO5fVtuea.mix": { + "09-2-输入输出-平衡仪.mix": { "__file__": true, - "__name__": "9u-npMdsu0yP.mix" + "__name__": "09-2-输入输出-平衡仪.mix" }, - "Javy8ZepaMXh.mix": { + "10-1-输入输出-地磁强度.mix": { "__file__": true, - "__name__": "9zmgxTclWWHD.mix" + "__name__": "10-1-输入输出-地磁强度.mix" }, - "dE6OrD_1bjF1.mix": { + "10-2-输入输出-金属探测.mix": { "__file__": true, - "__name__": "a6Wj1TQ1VDQl.mix" + "__name__": "10-2-输入输出-金属探测.mix" }, - "wi9fRUkcJKkF.mix": { + "11-1-输入输出-模拟光强.mix": { "__file__": true, - "__name__": "A9tynPWYUIFr.mix" + "__name__": "11-1-输入输出-模拟光强.mix" }, - "Piiw26lHT4MY.mix": { + "11-2-输入输出-光强映射.mix": { "__file__": true, - "__name__": "aEyi5_NKJeg8.mix" + "__name__": "11-2-输入输出-光强映射.mix" }, - "2Y1G6Sv14vB5.mix": { + "12-1-输入输出-实时时钟.mix": { "__file__": true, - "__name__": "Aiqx68_fGry-.mix" + "__name__": "12-1-输入输出-实时时钟.mix" }, - "88SoMLEQTxWT.mix": { + "12-2-输入输出-实时时钟2.mix": { "__file__": true, - "__name__": "APPDakQaKX9w.mix" + "__name__": "12-2-输入输出-实时时钟2.mix" }, - "3P3lLi4Gt8Rd.mix": { + "13-1-逻辑计算-手速测试.mix": { "__file__": true, - "__name__": "aQBVrl-9HGln.mix" + "__name__": "13-1-逻辑计算-手速测试.mix" }, - "QFOrRMyJOwZR.mix": { + "13-2-逻辑计算-手速测试2.mix": { "__file__": true, - "__name__": "bAvvDR2nzug9.mix" + "__name__": "13-2-逻辑计算-手速测试2.mix" }, - "YksAerv7TNeP.mix": { + "14-1-逻辑计算-反应测试.mix": { "__file__": true, - "__name__": "c0w_6bc3L5-Y.mix" + "__name__": "14-1-逻辑计算-反应测试.mix" }, - "C_gSpJxTay45.mix": { + "14-2-逻辑计算-反应测试2.mix": { "__file__": true, - "__name__": "cHDXPOQSOtcM.mix" + "__name__": "14-2-逻辑计算-反应测试2.mix" }, - "B60kSHQXpAUW.mix": { + "15-1-逻辑计算-简单打地鼠.mix": { "__file__": true, - "__name__": "cHv3YgVWc-nL.mix" + "__name__": "15-1-逻辑计算-简单打地鼠.mix" }, - "eqOEDHRkoVYC.mix": { + "15-2-逻辑计算-计时打地鼠.mix": { "__file__": true, - "__name__": "cruQObj_xc0p.mix" + "__name__": "15-2-逻辑计算-计时打地鼠.mix" }, - "86EMiYxkbEM3.mix": { + "16-1-逻辑计算-开始打地鼠.mix": { "__file__": true, - "__name__": "Dd2YRqL8z65G.mix" + "__name__": "16-1-逻辑计算-开始打地鼠.mix" }, - "yTtYeVlCS4oy.mix": { + "16-2-逻辑计算-循环打地鼠.mix": { "__file__": true, - "__name__": "dVMeFs1mKAMZ.mix" + "__name__": "16-2-逻辑计算-循环打地鼠.mix" }, - "B6ll9VLMmzqE.mix": { + "17-0-复杂控制-非中断效果.mix": { "__file__": true, - "__name__": "DXdPHDd3X4M8.mix" + "__name__": "17-0-复杂控制-非中断效果.mix" }, - "Msr4u3Jd5O85.mix": { + "17-1-复杂控制-双键中断.mix": { "__file__": true, - "__name__": "E24FlZenFJIz.mix" + "__name__": "17-1-复杂控制-双键中断.mix" }, - "6EoI1V7lztMS.mix": { + "17-2-复杂控制-单键中断.mix": { "__file__": true, - "__name__": "EFGX__5ULagd.mix" + "__name__": "17-2-复杂控制-单键中断.mix" }, - "WEqfefimcSRC.mix": { + "18-1-复杂控制-定时计时.mix": { "__file__": true, - "__name__": "eloFNJ6jIXmx.mix" + "__name__": "18-1-复杂控制-定时计时.mix" }, - "3MevaqxcJ5w1.mix": { + "18-2-复杂控制-循环计时.mix": { "__file__": true, - "__name__": "ErDz2PwebfhD.mix" + "__name__": "18-2-复杂控制-循环计时.mix" }, - "U8cF7_m1wda6.mix": { + "19-1-复杂控制-多线程.mix": { "__file__": true, - "__name__": "f9iwpn2Ts9J4.mix" + "__name__": "19-1-复杂控制-多线程.mix" }, - "AnzW8wUL5s7M.mix": { + "19-2-复杂控制-多线程与中断.mix": { "__file__": true, - "__name__": "fHg9cJyNw-Ra.mix" + "__name__": "19-2-复杂控制-多线程与中断.mix" }, - "RKlxP0nRmjEp.mix": { + "20-1-复杂控制-异常.mix": { "__file__": true, - "__name__": "GF1yKcs0jYTA.mix" + "__name__": "20-1-复杂控制-异常.mix" }, - "O7i8VA2Ckbd_.mix": { + "20-2-复杂控制-异常处理.mix": { "__file__": true, - "__name__": "GRWRlzVmfv_v.mix" + "__name__": "20-2-复杂控制-异常处理.mix" }, - "5SjY_Ymi8OlF.mix": { + "21-1-射频识别-读取测试.mix": { "__file__": true, - "__name__": "GYJCsusH-Xpi.mix" + "__name__": "21-1-射频识别-读取测试.mix" }, - "F2WoBlT1OLip.mix": { + "21-2-射频识别-读取卡号.mix": { "__file__": true, - "__name__": "HahpayoObmCS.mix" + "__name__": "21-2-射频识别-读取卡号.mix" }, - "rUJcmk6C-Ew5.mix": { + "22-1-射频识别-写卡测试.mix": { "__file__": true, - "__name__": "hUOh2PWlkDlI.mix" + "__name__": "22-1-射频识别-写卡测试.mix" }, - "CPifVGG7ZemZ.mix": { + "22-2-射频识别-持续写卡.mix": { "__file__": true, - "__name__": "ibc83JiU8tkb.mix" + "__name__": "22-2-射频识别-持续写卡.mix" }, - "f3iPaipRA_Nb.mix": { + "23-1-蓝牙通讯-主机模式.mix": { "__file__": true, - "__name__": "JygpY-zLJcpW.mix" + "__name__": "23-1-蓝牙通讯-主机模式.mix" }, - "tOsJO-3FeGOo.mix": { + "23-1-蓝牙通讯-从机模式.mix": { "__file__": true, - "__name__": "k5aoMBZZqjwB.mix" + "__name__": "23-1-蓝牙通讯-从机模式.mix" }, - "lvSA1PkvE7dJ.mix": { + "24-1-无线广播-通讯测试.mix": { "__file__": true, - "__name__": "KctxQ74MTNsh.mix" + "__name__": "24-1-无线广播-通讯测试.mix" }, - "dGZSW-MGIxKX.mix": { + "24-2-无线广播-防丢检测.mix": { "__file__": true, - "__name__": "kcXC1LjymUZu.mix" + "__name__": "24-2-无线广播-防丢检测.mix" }, - "-2_GC9_BiOuK.mix": { + "25-1-飞机游戏-显示飞机.mix": { "__file__": true, - "__name__": "kwQ10N0zYmmo.mix" + "__name__": "25-1-飞机游戏-显示飞机.mix" }, - "f5MpUoyKQxui.mix": { + "25-2-飞机游戏-移动飞机.mix": { "__file__": true, - "__name__": "KYrEa6uUQ6MP.mix" + "__name__": "25-2-飞机游戏-移动飞机.mix" }, - "XVnevsDK_1Bj.mix": { + "26-1-飞机游戏-发射子弹.mix": { "__file__": true, - "__name__": "KZJa87ecU6hA.mix" + "__name__": "26-1-飞机游戏-发射子弹.mix" }, - "f0BwdEyCv_cX.mix": { + "26-2-飞机游戏-移动音效.mix": { "__file__": true, - "__name__": "lMXfhIwIXcEu.mix" + "__name__": "26-2-飞机游戏-移动音效.mix" }, - "JSiCGWyQMK5q.mix": { + "27-1-飞机游戏-显示敌机.mix": { "__file__": true, - "__name__": "MD7MOpWjPb-h.mix" + "__name__": "27-1-飞机游戏-显示敌机.mix" }, - "ZPOLzevasoIp.mix": { + "27-2-飞机游戏-消灭敌机.mix": { "__file__": true, - "__name__": "n1vgYhPxOUUF.mix" + "__name__": "27-2-飞机游戏-消灭敌机.mix" }, - "6YnO30y2lA9D.mix": { + "28-1-飞机游戏-显示得分.mix": { "__file__": true, - "__name__": "naheZvaC4aTy.mix" + "__name__": "28-1-飞机游戏-显示得分.mix" }, - "wUFPoa8rKx_6.mix": { + "28-2-飞机游戏-结束游戏.mix": { "__file__": true, - "__name__": "nqIpT_2kOiwL.mix" + "__name__": "28-2-飞机游戏-结束游戏.mix" }, - "UMVBBvwZ-YLe.mix": { + "29-1-物联网-简单数据定时上报.mix": { "__file__": true, - "__name__": "oeeJSie3Yx9o.mix" + "__name__": "29-1-物联网-简单数据定时上报.mix" }, - "ttX2eVZ7BAWj.mix": { + "29-2-物联网-复杂数据定时上报.mix": { "__file__": true, - "__name__": "PE6gosu2epqX.mix" + "__name__": "29-2-物联网-复杂数据定时上报.mix" }, - "jSjyQn3fr32Y.mix": { + "30-1-物联网-简单数据按需上报.mix": { "__file__": true, - "__name__": "PFsXiIU7tvG9.mix" + "__name__": "30-1-物联网-简单数据按需上报.mix" }, - "ZbeOkwLrP4rX.mix": { + "30-2-物联网-高级数据按需上报.mix": { "__file__": true, - "__name__": "pmxXXP0Gy_pb.mix" + "__name__": "30-2-物联网-高级数据按需上报.mix" }, - "T7K2SR24iGq8.mix": { + "31-1-物联网-单主题数据订阅.mix": { "__file__": true, - "__name__": "QIMuVqPx56Jn.mix" + "__name__": "31-1-物联网-单主题数据订阅.mix" }, - "N8T-XWdUfJYW.mix": { + "31-1-物联网-单主题数据订阅2.mix": { "__file__": true, - "__name__": "qiZm6G85lRsK.mix" + "__name__": "31-1-物联网-单主题数据订阅2.mix" }, - "i3jOD3vXie8i.mix": { + "32-1-物联网-多主题数据订.mix": { "__file__": true, - "__name__": "qk4P9N8De4NL.mix" + "__name__": "32-1-物联网-多主题数据订.mix" }, - "LqlW2FourYvj.mix": { + "32-2-物联网-多主题数据订2.mix": { "__file__": true, - "__name__": "QxTBolJ86L_U.mix" + "__name__": "32-2-物联网-多主题数据订2.mix" }, - "wfXaNatFybdy.mix": { + "33-1-课堂互动-自由签到.mix": { "__file__": true, - "__name__": "qzPfY5Eegi_V.mix" + "__name__": "33-1-课堂互动-自由签到.mix" }, - "ZdEwJcV9_Qvs.mix": { + "33-2-课堂互动-按需签到.mix": { "__file__": true, - "__name__": "r8AYO8ei3L2r.mix" + "__name__": "33-2-课堂互动-按需签到.mix" }, - "dSCJ3Xk-PJLT.mix": { + "34-1-课堂互动-一人抢答.mix": { "__file__": true, - "__name__": "RiHT9f9vYwkM.mix" + "__name__": "34-1-课堂互动-一人抢答.mix" }, - "LqddGkVwosjz.mix": { + "34-2-课堂互动-多人抢答.mix": { "__file__": true, - "__name__": "rKIqMR5tgnbz.mix" + "__name__": "34-2-课堂互动-多人抢答.mix" }, - "B9nQ3ELFF-dv.mix": { + "35-1-课堂互动-单选答题.mix": { "__file__": true, - "__name__": "rNz3GMECpKHw.mix" + "__name__": "35-1-课堂互动-单选答题.mix" }, - "aaCwGyBBdLkr.mix": { + "35-2-课堂互动-多选答题.mix": { "__file__": true, - "__name__": "rPvz_WvW-FVo.mix" + "__name__": "35-2-课堂互动-多选答题.mix" }, - "qHUMK--qkNfJ.mix": { + "36-1-课堂互动-点名答题.mix": { "__file__": true, - "__name__": "S2kyCnEMOjNk.mix" + "__name__": "36-1-课堂互动-点名答题.mix" }, - "SHvtOd8K8DuO.mix": { + "36-2-课堂互动-多人点答.mix": { "__file__": true, - "__name__": "t8VTZ-5wdqL7.mix" + "__name__": "36-2-课堂互动-多人点答.mix" }, - "LdMbbtz16I3e.mix": { + "37-1-文件操作-列出文件.mix": { "__file__": true, - "__name__": "T9uMYMOHM_SN.mix" + "__name__": "37-1-文件操作-列出文件.mix" }, - "uV1K3O_9p_qV.mix": { + "37-2-文件操作-列出文件2.mix": { "__file__": true, - "__name__": "tnXhSOPPGITo.mix" + "__name__": "37-2-文件操作-列出文件2.mix" }, - "Dt8SPw40HQHO.mix": { + "38-1-文件操作-文件读写.mix": { "__file__": true, - "__name__": "u0MjRI9GXpxB.mix" + "__name__": "38-1-文件操作-文件读写.mix" }, - "ofc3QYn9b0S2.mix": { + "38-2-文件操作-文件读写2.mix": { "__file__": true, - "__name__": "UbVeFq-FGRg_.mix" + "__name__": "38-2-文件操作-文件读写2.mix" }, - "BWZmbbE4cBkH.mix": { + "39-1-文件操作-录音采集.mix": { "__file__": true, - "__name__": "uoFhRYjVtmBq.mix" + "__name__": "39-1-文件操作-录音采集.mix" }, - "-76BrzOINsK6.mix": { + "39-2-文件操作-录音重现.mix": { "__file__": true, - "__name__": "V4db3f9gp3ib.mix" + "__name__": "39-2-文件操作-录音重现.mix" }, - "TRIoGN3rWvbG.mix": { + "40-1-文件操作-震动采集.mix": { "__file__": true, - "__name__": "V5BKiQu-3Ay8.mix" + "__name__": "40-1-文件操作-震动采集.mix" }, - "8t2XK6ZeI2p9.mix": { + "40-2-文件操作-震动重现.mix": { "__file__": true, - "__name__": "VA_gEUsIzIXY.mix" + "__name__": "40-2-文件操作-震动重现.mix" }, - "tiiOwL6uMSQI.mix": { + "41-1-智能小车-前进转弯.mix": { "__file__": true, - "__name__": "viba6CkFBsIw.mix" + "__name__": "41-1-智能小车-前进转弯.mix" }, - "N6e7mDuNINma.mix": { + "41-2-智能小车-圆圈转弯.mix": { "__file__": true, - "__name__": "v_BLBrIsQsVX.mix" + "__name__": "41-2-智能小车-圆圈转弯.mix" }, - "dg9vaXa7DD56.mix": { + "42-1-智能小车-智能避障.mix": { "__file__": true, - "__name__": "wfdUcFVVleQi.mix" + "__name__": "42-1-智能小车-智能避障.mix" }, - "X83I1zvbdtvN.mix": { + "43-1-智能小车-遥控小车.mix": { "__file__": true, - "__name__": "wGT55yWv5hjK.mix" + "__name__": "43-1-智能小车-遥控小车.mix" }, - "yj_VGwvNLmCF.mix": { + "43-2-智能小车-体感遥控.mix": { "__file__": true, - "__name__": "X57hOrJXTbGI.mix" + "__name__": "43-2-智能小车-体感遥控.mix" }, - "eYsTKe70LdO7.mix": { + "44-1-智能小车-P单巡线.mix": { "__file__": true, - "__name__": "xl31klorjwCZ.mix" + "__name__": "44-1-智能小车-P单巡线.mix" }, - "wXJagaNfxOB_.mix": { + "44-2-智能小车-P双巡线.mix": { "__file__": true, - "__name__": "xnwCF9uZy_JD.mix" + "__name__": "44-2-智能小车-P双巡线.mix" }, - "JxJtlW-55GeM.mix": { + "45-1-外接红外-单挥手测速.mix": { "__file__": true, - "__name__": "xSWa5qJWHnEY.mix" + "__name__": "45-1-外接红外-单挥手测速.mix" }, - "2EuDHAAk4jrh.mix": { + "45-2-外接红外-双挥手测速.mix": { "__file__": true, - "__name__": "YBcXvH7igMql.mix" + "__name__": "45-2-外接红外-双挥手测速.mix" }, - "BurNuDQyGhqE.mix": { + "46-1-外接红外-双门人数统计.mix": { "__file__": true, - "__name__": "yCvi0Dm1OUBe.mix" + "__name__": "46-1-外接红外-双门人数统计.mix" }, - "K54EnbPe3FGs.mix": { + "46-2-外接红外-单门人数统计.mix": { "__file__": true, - "__name__": "YGR-OsRiQaN6.mix" + "__name__": "46-2-外接红外-单门人数统计.mix" }, - "gg6RG4tQFzd7.mix": { + "47-1-外接红外-简单车库门.mix": { "__file__": true, - "__name__": "yJSR_JaXKhtc.mix" + "__name__": "47-1-外接红外-简单车库门.mix" }, - "1R44JUQUSFKb.mix": { + "47-2-外接红外-反馈车库门.mix": { "__file__": true, - "__name__": "yRbyQ1QyISxw.mix" + "__name__": "47-2-外接红外-反馈车库门.mix" }, - "QVccVO4RtI46.mix": { + "48-1-外接红外-转速统计.mix": { "__file__": true, - "__name__": "yYmquPO1htdk.mix" + "__name__": "48-1-外接红外-转速统计.mix" }, - "9CLekchHWt7J.mix": { + "48-2-外接红外-多速转速统计.mix": { "__file__": true, - "__name__": "zp5iCUekwbCN.mix" + "__name__": "48-2-外接红外-多速转速统计.mix" }, - "1mhrelWB3V12.mix": { + "balance.mix": { "__file__": true, - "__name__": "zUS59zKIO8t7.mix" + "__name__": "balance.mix" }, - "7Wmb37_ei.mix": { + "pid.mix": { "__file__": true, - "__name__": "_ZdWisDv5_k0.mix" + "__name__": "pid.mix" }, "__file__": false, - "__name__": "O60xUtcmy977" + "__name__": "MixGo Feiyi" } } diff --git a/boards/default/micropython_robot/index.xml b/boards/default/micropython_robot/index.xml index ac5bcad2..f15e692a 100644 --- a/boards/default/micropython_robot/index.xml +++ b/boards/default/micropython_robot/index.xml @@ -1 +1 @@ -02000attachInterrupt_funcattachInterrupt_func10,1,2,3051iDIVIDE10Exception as eetestThreadtestThreadWHILETRUEHello Mixly from Thread!ms10timtim1000tim_callbacktim_callback5000200090x151100a10.998124.829971100101010001100501100110000x2x0,1,2,30,1,2,30,1,2,3xMixlyHelloMixly65axMixlyMixly0Mixly02MixlyMixlyHello,mixlyl--mylistHello,mixlymixlymixpyI love mixly!I love mixlyRandom No. is {}int1100input('1+2*3')mylist1,2,3,4,5mylist0mylist02mylistmylistmylist0mylist00mylist00mylist0mylist0mylist0mylistmylistmylistx0,1,2,30,1,2,3mytup1,2,3,4,5mytup0mytup02mytupmytupmytupmytup0mytupmytup1mytup2xmydictmydictkeymydictkey0mydictkey0mydictkeymydictkeymydictkey0mydictmydictmydictmydictxmydict{"name":"Mixly","color":"green"}s11,2,3,4,5s1s1s1s2s1s2s10s1Mixlys1s2xMixlyMixlyMixly,HelloMixlyprompt02MixlyMixly0XFF00FFcodebMixlyMixly1attachInterrupt_funcattachInterrupt_funcrfid00Mixly0Mixly20189141420452023,1,1,12,0,0180291001001001001004404401000004120000000000010001000Mixly0MixlyMixly500MixlyMixly500>10.50.5wifinamewifipassword8080AUTH TOKEN0_value02000notify0Your Target Emailsubjectbodycolor#FF0000wifinamewifipasswordmixio.mixly.cnmixio.mixly.cnA1B2C3mixio.mixly.cnusernamepasswordMyProjecttopicmsgtopicmethodmethodEQmsg1content"long""lat""message"012content"key1""key2""key3"012http://mixio.mixly.org/time.phpmixio.mixly.cnwifinamewifipasswordcsub_cb31444082183.230.40.3914109261n63JySRowo13ZLDBKw6y896E0=MixlyRobotsub_cbEQmsg1ciot_dict"tc"ciot_dictccwifinamewifipasswordclientEnter Your API_KEYEnter Your SECRET_KEYclient1clientS72099北京今天天气如何?wifinamewifipasswordSGJl0ExVN-4j27msR北京SGJl0ExVN-4j27msR北京1SGJl0ExVN-4j27msR北京24ble_cble_pMixlyble_cble_cMixlyble_cble_xble_xble_xMixlyble_xble_methodble_methodEQdataMixlyhandlehandle_methodhandle_methodkey1key2key3keyx02000001000009000,4500,563,5630x1234callbackcmdaddrrawpulsesi2c2221100000i2c00i2c00i2ci2ci2cspi200000045spi200000buf50spi10spi100xffspibufspibuf0xffspi12345spi12345buf1Mixlyow12owowow12345ow12345owmy_now0my_nowmy_nowmy_nowFFFFFFFFFFFFmixlymy_nowmy_nowcbcbEQmsg1spi10000004512spi8my_lora433.925716my_loramy_loramy_loraMixly100100100180100360100100filename.txtfMixlyfff0fffpathpathfilename.txtsrcname.txtdstname.txtpathff0wifinamewifipasswordwlanwlanwlanwlanwlan127.16.0.801234567wlanwlanwlanwlanwlan127.16.0.81connect_wifiwlanAPwlanTruewlanwlanSmallCabbage1WHILETRUEEQ0wlan0.0.0.0ms1000TRUEss0.0.0.080s192.168.0.180s5ss1024sbMixlyresponses1024sbMixlyresponse127.0.0.180sntp.aliyun.com \ No newline at end of file +02000attachInterrupt_funcattachInterrupt_func10,1,2,3051iDIVIDE10Exception as eetestThreadtestThreadWHILETRUEHello Mixly from Thread!ms10timtim1000tim_callbacktim_callback5000200090x151100a10.998124.829971100101010001100501100110000x2x0,1,2,30,1,2,30,1,2,3xMixlyHelloMixly65axMixlyMixly0Mixly02MixlyMixlyHello,mixlyl--mylistHello,mixlymixlymixpyI love mixly!I love mixlyRandom No. is {}int1100input('1+2*3')mylist1,2,3,4,5mylist0mylist02mylistmylistmylist0mylist00mylist00mylist0mylist0mylist0mylistmylistmylistx0,1,2,30,1,2,3mytup1,2,3,4,5mytup0mytup02mytupmytupmytupmytup0mytupmytup1mytup2xmydictmydictkeymydictkey0mydictkey0mydictkeymydictkeymydictkey0mydictmydictmydictmydictxmydict{"name":"Mixly","color":"green"}s11,2,3,4,5s1s1s1s2s1s2s10s1Mixlys1s2xMixlyMixlyMixly,HelloMixlyprompt02MixlyMixly0XFF00FFcodebMixlyMixly1attachInterrupt_funcattachInterrupt_funcrfid00Mixly0Mixly20189141420452023,1,1,12,0,0180291001001001001004404401000004120000000000010001000Mixly0MixlyMixly500MixlyMixly500>10.50.5wifinamewifipassword8080AUTH TOKEN0_value02000notify0Your Target Emailsubjectbodycolor#FF0000wifinamewifipasswordmixio.mixly.cnmixio.mixly.cnA1B2C3mixio.mixly.cnusernamepasswordMyProjecttopicmsgtopicmethodmethodEQmsg1content"long""lat""message"012content"key1""key2""key3"012http://mixio.mixly.org/time.phpmixio.mixly.cnwifinamewifipasswordcsub_cb31444082183.230.40.3914109261n63JySRowo13ZLDBKw6y896E0=MixlyRobotsub_cbEQmsg1ciot_dict"tc"ciot_dictccwifinamewifipasswordclientEnter Your API_KEYEnter Your SECRET_KEYclient1clientS72099北京今天天气如何?wifinamewifipasswordSGJl0ExVN-4j27msR北京SGJl0ExVN-4j27msR北京1SGJl0ExVN-4j27msR北京24ble_cble_pMixlyble_cble_cMixlyble_cble_xble_xble_xMixlyble_xble_methodble_methodEQdataMixlyhandlehandle_methodhandle_methodkey1key2key3keyx02000001000009000,4500,563,5630x1234callbackcmdaddrrawpulsesi2c2221100000i2c00i2c00i2ci2ci2cspi200000045spi200000buf50spi10spi100xffspibufspibuf0xffspi12345spi12345buf1Mixlyow12owowow12345ow12345owmy_now0my_nowmy_nowmy_nowFFFFFFFFFFFFmixlymy_nowmy_nowcbcbEQmsg1spi10000004512spi8my_lora433.925716my_loramy_loramy_loraMixly100100100180100360100100filename.txtfMixlyfff0fffpathpathfilename.txtsrcname.txtdstname.txtpathff0wifinamewifipasswordwlanwlanwlanwlanwlan127.16.0.801234567wlanwlanwlanwlanwlan127.16.0.81connect_wifiwlanAPwlanTruewlanwlanSmallCabbage1WHILETRUEEQ0wlan0.0.0.0ms1000TRUEss0.0.0.080s192.168.0.180s5ss1024sbMixlyresponses1024sbMixlyresponse127.0.0.180sntp.aliyun.com \ No newline at end of file diff --git a/boards/default/micropython_robot/main.bundle.js b/boards/default/micropython_robot/main.bundle.js index d4b17d44..e40a91b9 100644 --- a/boards/default/micropython_robot/main.bundle.js +++ b/boards/default/micropython_robot/main.bundle.js @@ -18,4 +18,4 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -class It{constructor(t,e){if(this.variablePrefix_=e||"",this.reservedDict_=Object.create(null),t)for(var i=t.split(","),n=0;n0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?i[s]=e.getInputTargetBlock("IF"+s).previousConnection:i[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?n[s]=e.getInputTargetBlock("DO"+s).previousConnection:n[s]=null,this.removeInput("DO"+s);this.elseifCount_=parseInt(t.getAttribute("elseif"),10),this.elseCount_=parseInt(t.getAttribute("else"),10);for(s=1;s<=this.elseifCount_;s++)this.appendValueInput("IF"+s).setCheck([Boolean,Number]).appendField(ut.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+s).appendField(ut.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(ut.Msg.CONTROLS_IF_MSG_ELSE);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"IF"+s);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_if_if");e.initSvg();for(var i=e.getInput("STACK").connection,n=1;n<=this.elseifCount_;n++){var s=t.newBlock("controls_if_elseif");s.initSvg(),i.connect(s.previousConnection),i=s.nextConnection}if(this.elseCount_){var o=t.newBlock("controls_if_else");o.initSvg(),i.connect(o.previousConnection)}return e},compose:function(t){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var e=this.elseifCount_;e>0;e--)this.removeInput("IF"+e),this.removeInput("DO"+e);this.elseifCount_=0;for(var i=t.getInputTargetBlock("STACK"),n=[null],s=[null],o=null;i;){switch(i.type){case"controls_if_elseif":this.elseifCount_++,n.push(i.valueConnection_),s.push(i.statementConnection_);break;case"controls_if_else":this.elseCount_++,o=i.statementConnection_;break;default:throw Error("Unknown block type: "+i.type)}i=i.nextConnection&&i.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(n,s,o)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),i=1;e;){switch(e.type){case"controls_if_elseif":var n=this.getInput("IF"+i),s=this.getInput("DO"+i);e.valueConnection_=n&&n.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,i++;break;case"controls_if_else":s=this.getInput("ELSE");e.statementConnection_=s&&s.connection.targetConnection;break;default:throw"Unknown block type."}e=e.nextConnection&&e.nextConnection.targetBlock()}},rebuildShape_:function(){var t=[null],e=[null],i=null;this.getInput("ELSE")&&(i=this.getInput("ELSE").connection.targetConnection);for(var n=1;this.getInput("IF"+n);){var s=this.getInput("IF"+n),o=this.getInput("DO"+n);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(o.connection.targetConnection),n++}this.updateShape_(),this.reconnectChildBlocks_(t,e,i)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var t=1;this.getInput("IF"+t);)this.removeInput("IF"+t),this.removeInput("DO"+t),t++;for(t=1;t<=this.elseifCount_;t++)this.appendValueInput("IF"+t).setCheck([Number,Boolean]).appendField(ut.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+t).appendField(ut.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(ut.Msg.CONTROLS_IF_MSG_ELSE)},reconnectChildBlocks_:function(t,e,i){for(var n=1;n<=this.elseifCount_;n++)t[n]&&t[n].reconnect(this,"IF"+n),e[n]&&e[n].reconnect(this,"DO"+n);i&&i.reconnect(this,"ELSE")}},Dt={init:function(){this.setColour(gt),this.appendValueInput("FROM").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.PYTHON_RANGE).appendField(ut.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.PYTHON_RANGE_STEP),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(ut.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},ft={init:function(){this.setColour(gt),this.appendValueInput("LIST").setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.CONTROLS_FOREACH_INPUT),this.appendValueInput("VAR").appendField(ut.Msg.CONTROLS_FOREACH_INPUT_ITEM),this.appendStatementInput("DO").appendField(ut.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip((function(){return ut.Msg.CONTROLS_FOR_TOOLTIP.replace("“%1”","")}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ut.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Ft={init:function(){this.setColour(gt),this.appendValueInput("BOOL").setCheck([Boolean,Number]).appendField(ut.Msg.MIXLY_MICROBIT_JS_CURRENT).appendField(new ut.FieldDropdown(this.OPERATORS),"MODE"),this.appendStatementInput("DO").appendField(ut.Msg.LANG_CONTROLS_WHILEUNTIL_TITLE_REPEAT+ut.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return{WHILE:ut.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_WHILE,UNTIL:ut.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL}[e]}))}},Pt={init:function(){this.setColour(gt),this.appendDummyInput().appendField(ut.Msg.MIXLY_PYTHON_TRY),this.appendStatementInput("try"),this.appendValueInput("IF1").appendField(ut.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO1").appendField(""),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new ut.icons.MutatorIcon(["controls_except","controls_finally"],this)),this.setTooltip(ut.Msg.MIXLY_MIXPY_CONTROL_TRY_TOOLTIP),this.elseifCount_=1,this.elseCount_=0},mutationToDom:function(){if(!this.elseifCount_&&!this.elseCount_)return null;var t=document.createElement("mutation");return this.elseifCount_&&t.setAttribute("elseif",this.elseifCount_),this.elseCount_&&t.setAttribute("else",1),t},domToMutation:function(t){var e=this,i=[],n=[];this.elseCount_&&this.removeInput("ELSE");for(var s=this.elseifCount_;s>0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?i[s]=e.getInputTargetBlock("IF"+s).previousConnection:i[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?n[s]=e.getInputTargetBlock("DO"+s).previousConnection:n[s]=null,this.removeInput("DO"+s);this.elseifCount_=parseInt(t.getAttribute("elseif"),10),this.elseCount_=parseInt(t.getAttribute("else"),10);for(s=1;s<=this.elseifCount_;s++)this.appendValueInput("IF"+s).setCheck([Boolean,Number]).appendField(ut.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+s).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(ut.Msg.MIXLY_PYTHON_FINALLY);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"IF"+s);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_try");e.initSvg();for(var i=e.getInput("STACK").connection,n=1;n<=this.elseifCount_;n++){var s=t.newBlock("controls_except");s.initSvg(),i.connect(s.previousConnection),i=s.nextConnection}if(this.elseCount_){var o=t.newBlock("controls_finally");o.initSvg(),i.connect(o.previousConnection)}return e},compose:function(t){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var e=this.elseifCount_;e>0;e--)this.removeInput("IF"+e),this.removeInput("DO"+e);this.elseifCount_=0;for(var i=t.getInputTargetBlock("STACK"),n=[null],s=[null],o=null;i;){switch(i.type){case"controls_except":this.elseifCount_++,n.push(i.valueConnection_),s.push(i.statementConnection_);break;case"controls_finally":this.elseCount_++,o=i.statementConnection_;break;default:throw Error("Unknown block type: "+i.type)}i=i.nextConnection&&i.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(n,s,o)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),i=1;e;){switch(e.type){case"controls_except":var n=this.getInput("IF"+i),s=this.getInput("DO"+i);e.valueConnection_=n&&n.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,i++;break;case"controls_finally":s=this.getInput("ELSE");e.statementConnection_=s&&s.connection.targetConnection;break;default:throw"Unknown block type."}e=e.nextConnection&&e.nextConnection.targetBlock()}},rebuildShape_:function(){var t=[null],e=[null],i=null;this.getInput("ELSE")&&(i=this.getInput("ELSE").connection.targetConnection);for(var n=1;this.getInput("IF"+n);){var s=this.getInput("IF"+n),o=this.getInput("DO"+n);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(o.connection.targetConnection),n++}this.updateShape_(),this.reconnectChildBlocks_(t,e,i)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var t=1;this.getInput("IF"+t);)this.removeInput("IF"+t),this.removeInput("DO"+t),t++;for(t=1;t<=this.elseifCount_;t++)this.appendValueInput("IF"+t).setCheck([Number,Boolean]).appendField(ut.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+t).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(ut.Msg.MIXLY_PYTHON_FINALLY)},reconnectChildBlocks_:function(t,e,i){for(var n=1;n<=this.elseifCount_;n++)t[n]&&t[n].reconnect(this,"IF"+n),e[n]&&e[n].reconnect(this,"DO"+n);i&&i.reconnect(this,"ELSE")}},vt={init:function(){this.setColour(gt);var t=new ut.FieldDropdown(this.OPERATORS);this.appendDummyInput().appendField(t,"FLOW").appendField(ut.Msg.LANG_CONTROLS_FLOW_STATEMENTS_INPUT_OFLOOP),this.setPreviousStatement(!0),this.setTooltip(ut.Msg.MIXLY_PYTHON_CONTROLS_FLOW_STATEMENTS_TOOLTIP);var e=this;this.setTooltip((function(){var t=e.getFieldValue("FLOW");return{BREAK:ut.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK,CONTINUE:ut.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE}[t]}))},onchange:function(){if(this.workspace){var t=!1,e=this;do{if("controls_repeat"==e.type||"controls_for"==e.type||"controls_forEach"==e.type||"controls_repeat_ext"==e.type||"controls_whileUntil"==e.type||"do_while"==e.type){t=!0;break}e=e.getSurroundParent()}while(e);t?this.setWarningText(null):this.setWarningText(ut.Msg.LANG_CONTROLS_FLOW_STATEMENTS_WARNING)}}},Yt={init:function(){this.setColour(gt),this.appendDummyInput().appendField(ut.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new ut.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(ut.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return ut.Msg.CONTROLS_FOR_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ut.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},xt={init:function(){this.setColour(gt),this.appendDummyInput().appendField(ut.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new ut.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(ut.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return ut.Msg.MIXLY_PYTHON_CONTROLS_FOR_RANGE_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ut.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}};Ft.OPERATORS=[[ut.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"WHILE"],[ut.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"UNTIL"]],vt.OPERATORS=[[ut.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK,"BREAK"],[ut.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE,"CONTINUE"]];const bt={init:function(){this.setColour(gt),this.appendDummyInput().appendField(ut.Msg.CONTROLS_IF_IF_TITLE_IF),this.appendStatementInput("STACK"),this.setTooltip(ut.Msg.CONTROLS_IF_IF_TOOLTIP),this.contextMenu=!1}},Xt={init:function(){this.setColour(gt),this.appendDummyInput().appendField(ut.Msg.CONTROLS_IF_ELSEIF_TITLE_ELSEIF),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.CONTROLS_IF_ELSEIF_TOOLTIP),this.contextMenu=!1}},yt={init:function(){this.setColour(gt),this.appendDummyInput().appendField(ut.Msg.CONTROLS_IF_ELSE_TITLE_ELSE),this.setPreviousStatement(!0),this.setTooltip(ut.Msg.CONTROLS_IF_ELSE_TOOLTIP),this.contextMenu=!1}},Vt={init:function(){this.setColour(gt),this.appendDummyInput().appendField("try"),this.appendStatementInput("STACK"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.contextMenu=!1}},Bt={init:function(){this.setColour(gt),this.appendDummyInput().appendField(ut.Msg.MIXLY_PYTHON_EXCEPT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.contextMenu=!1,this.setTooltip(ut.Msg.MIXLY_MIXPY_CONTROL_EXCEPT_TOOLTIP)}},Gt={init:function(){this.setColour(gt),this.appendDummyInput().appendField(ut.Msg.MIXLY_PYTHON_FINALLY),this.setPreviousStatement(!0),this.contextMenu=!1,this.setTooltip(ut.Msg.MIXLY_MIXPY_CONTROL_FINALLY_TOOLTIP)}},Ut={init:function(){this.jsonInit({message0:ut.Msg.CONTROLS_REPEAT_TITLE,args0:[{type:"input_value",name:"TIMES"}],previousStatement:null,nextStatement:null,colour:gt,tooltip:ut.Msg.CONTROLS_REPEAT_TOOLTIP,helpUrl:ut.Msg.CONTROLS_REPEAT_HELPURL}),this.appendStatementInput("DO")}},wt={init:function(){this.setColour(gt),this.appendValueInput("BOOL").appendField("lambda"),this.appendStatementInput("DO").appendField(ut.Msg.MIXLY_STAT),this.setOutput(!0)}},kt={init:function(){this.setColour(gt),this.appendDummyInput().appendField(ut.Msg.MIXLY_PYTHON_PASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.MIXLY_PYTHON_CONTROLS_PASS_TOOLTIP)}},Ht={init:function(){this.setColour(gt),this.appendDummyInput().appendField(ut.Msg.MIXLY_PYTHON_CONTROLS_THREAD_START),this.appendValueInput("callback").appendField(ut.Msg.MIXLY_PYTHON_CONTROLS_THREAD_USE),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_PYTHON_CONTROLS_THREAD_TOOLTIP)}},Wt={init:function(){this.appendDummyInput().appendField(ut.Msg.CONTROLS_REPEAT_TITLE_REPEAT+ut.Msg.MIXLY_DO),this.appendStatementInput("input_data").setCheck(null),this.appendValueInput("select_data").setCheck(null).appendField(ut.Msg.CONTROLS_OPERATOR_UNTIL).appendField(new ut.FieldDropdown([[ut.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"true"],[ut.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"false"]]),"type"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(gt),this.setTooltip("do-while loop"),this.setHelpUrl("")}},Kt={init:function(){this.setColour(gt),this.appendDummyInput().appendField(ut.Msg.MIXLY_OP_GARBAGE_COLLECT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Jt={init:function(){this.setColour(gt),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET_MEM_ALLOC),this.setOutput(!0)}},Qt={init:function(){this.setColour(gt),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET_MEM_FREE),this.setOutput(!0)}},zt=230;ut.FieldTextInput.math_number_validator=function(t){return String(t)},ut.FieldTextInput.math_number_validator_include_blank=function(t){if(""===t)return"";return/^-?(0X|0x|0O|0o|0B|0b)?[a-fA-F0-9]{1,}(\.[a-fA-F0-9]+)?$/.test(t)?String(t):null};const qt={init:function(){this.setColour(zt),this.appendDummyInput().appendField(new ut.FieldTextInput("0",ut.FieldTextInput.math_number_validator),"NUM"),this.setOutput(!0,Number),this.setTooltip(ut.Msg.MATH_NUMBER_TOOLTIP)}},jt={init:function(){this.setColour(zt);this.appendDummyInput("").appendField(ut.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new ut.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:ut.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_TOOLTIP,e:ut.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_TOOLTIP}[e]}))}},Zt={init:function(){this.setColour(zt);this.appendDummyInput("").appendField(ut.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new ut.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:ut.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_MP_TOOLTIP,e:ut.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_MP_TOOLTIP}[e]}))}},$t={init:function(){this.setColour(zt),this.setOutput(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new ut.FieldDropdown([["+","ADD"],["-","MINUS"],["×","MULTIPLY"],["÷","DIVIDE"],["%","QUYU"],["//","ZHENGCHU"],["**","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:ut.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:ut.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:ut.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:ut.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:ut.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:ut.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:ut.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},te={init:function(){this.setColour(zt),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new ut.FieldDropdown([["+=","ADD"],["-=","MINUS"],["×=","MULTIPLY"],["÷=","DIVIDE"],["%=","QUYU"],["//=","ZHENGCHU"],["**=","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:ut.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:ut.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:ut.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:ut.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:ut.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:ut.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:ut.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},ee={init:function(){this.setColour(zt),this.setOutput(!0,Number),this.appendValueInput("A").setCheck(Number),this.appendValueInput("B").setCheck(Number).appendField(new ut.FieldDropdown([["&","&"],["|","|"],[">>",">>"],["<<","<<"]]),"OP"),this.setInputsInline(!0),this.setTooltip("位运算")}},ie={init:function(){this.setColour(zt),this.setOutput(!0,Number),this.appendValueInput("NUM").setCheck(Number).appendField(new ut.FieldDropdown([["sin","SIN"],["cos","COS"],["tan","TAN"],["asin","ASIN"],["acos","ACOS"],["atan","ATAN"],["-","-"],["ln","LN"],["log10","LOG10"],["e^","EXP"],["10^","POW10"]]),"OP");var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{SIN:ut.Msg.MATH_TRIG_TOOLTIP_SIN,COS:ut.Msg.MATH_TRIG_TOOLTIP_COS,TAN:ut.Msg.MATH_TRIG_TOOLTIP_TAN,ASIN:ut.Msg.MATH_TRIG_TOOLTIP_ASIN,ACOS:ut.Msg.MATH_TRIG_TOOLTIP_ACOS,ATAN:ut.Msg.MATH_TRIG_TOOLTIP_ATAN,LN:ut.Msg.MATH_SINGLE_TOOLTIP_LN}[e]}))}},ne={init:function(){var t=[[ut.Msg.MATH_BIN,"bin"],[ut.Msg.MATH_OCT,"oct"],[ut.Msg.MATH_HEX,"hex"]];this.setColour(zt),this.setOutput(!0,String),this.appendValueInput("NUM").setCheck(Number).appendField(new ut.FieldDropdown(t),"OP");var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{bin:ut.Msg.MATH_DEC_TOOLTIP_BIN,oct:ut.Msg.MATH_DEC_TOOLTIP_OCT,hex:ut.Msg.MATH_DEC_TOOLTIP_HEX}[t]}))}},se={init:function(){var t=[[ut.Msg.LANG_MATH_TO_ROUND,"round"],[ut.Msg.LANG_MATH_TO_CEIL,"ceil"],[ut.Msg.LANG_MATH_TO_FLOOR,"floor"],[ut.Msg.MATH_ABS,"fabs"],[ut.Msg.MATH_SQRT,"sqrt"]];this.setColour(zt),this.appendValueInput("A").setCheck(Number).appendField(new ut.FieldDropdown(t),"OP"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{sqrt:ut.Msg.MATH_SINGLE_TOOLTIP_ROOT,fabs:ut.Msg.MATH_SINGLE_TOOLTIP_ABS,sq:ut.Msg.MATH_SINGLE_TOOLTIP_SQ,round:ut.Msg.MATH_SINGLE_TOOLTIP_ROUND,ceil:ut.Msg.MATH_SINGLE_TOOLTIP_CEIL,floor:ut.Msg.MATH_SINGLE_TOOLTIP_FLOOR}[t]}))}},oe={init:function(){var t=[[ut.Msg.MIXLY_MAX,"max"],[ut.Msg.MIXLY_MIN,"min"]];this.setColour(zt),this.appendValueInput("A").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(new ut.FieldDropdown(t),"OP").appendField("("),this.appendValueInput("B").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(","),this.appendDummyInput("").setAlign(ut.inputs.Align.RIGHT).appendField(")"),this.setInputsInline(!0),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{max:ut.Msg.MIXLY_TOOLTIP_MATH_MAX,min:ut.Msg.MIXLY_TOOLTIP_MATH_MIN}[t]}))}},_e={init:function(){var t=[[ut.Msg.MATH_TWO,"two"],[ut.Msg.MATH_EIGHT,"eight"],[ut.Msg.MATH_TEN,"ten"],[ut.Msg.MATH_SIXTEEN,"sixteen"]];this.setColour(zt),this.appendDummyInput("").appendField(ut.Msg.MATH_BA),this.appendValueInput("NUM").appendField(new ut.FieldDropdown(t),"OP").appendField(ut.Msg.MATH_JinZhi).setCheck(Number),this.appendDummyInput("").appendField(ut.Msg.MATH_ZHW).appendField(new ut.FieldDropdown(t),"OP2").appendField(ut.Msg.MATH_JinZhi),this.setFieldValue("ten","OP2"),this.setOutput(!0),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP"),i={two:ut.Msg.MATH_Before_two,eight:ut.Msg.MATH_Before_eight,ten:ut.Msg.MATH_Before_ten,sixteen:ut.Msg.MATH_Before_sixteen},n=e.getFieldValue("OP2"),s={two:ut.Msg.MATH_Behind_two,eight:ut.Msg.MATH_Behind_eight,ten:ut.Msg.MATH_Behind_ten,sixteen:ut.Msg.MATH_Behind_sixteen};return i[t]+s[n]}))}},pe={init:function(){var t=[[ut.Msg.LANG_MATH_INT,"int"],[ut.Msg.LANG_MATH_FLOAT,"float"]];this.setColour(zt),this.setOutput(!0,Number),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_RANDOM).appendField(new ut.FieldDropdown(t),"TYPE"),this.appendValueInput("FROM").setCheck(Number).appendField(ut.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.LANG_MATH_RANDOM_INT_INPUT_TO),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TYPE"),i={int:ut.Msg.LANG_MATH_INT,float:ut.Msg.LANG_MATH_FLOAT_RANDOM};return ut.Msg.MATH_RANDOM_INT_TOOLTIP+i[t]}))}},ae={init:function(){this.setColour(zt),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number).appendField(ut.Msg.LANG_MATH_CONSTRAIN_INPUT_CONSTRAIN),this.appendValueInput("LOW").setCheck(Number).appendField(ut.Msg.LANG_MATH_CONSTRAIN_INPUT_LOW),this.appendValueInput("HIGH").setCheck(Number).appendField(ut.Msg.LANG_MATH_CONSTRAIN_INPUT_HIGH),this.setInputsInline(!0),this.setTooltip(ut.Msg.MATH_CONSTRAIN_TOOLTIP)}},ue={init:function(){this.setColour(zt),this.appendValueInput("NUM",Number).appendField(ut.Msg.MIXLY_MAP).setCheck(Number),this.appendValueInput("fromLow",Number).appendField(ut.Msg.MIXLY_MAP_FROM).setCheck(Number),this.appendValueInput("fromHigh",Number).appendField(",").setCheck(Number),this.appendValueInput("toLow",Number).appendField(ut.Msg.MIXLY_MAP_TO).setCheck(Number),this.appendValueInput("toHigh",Number).appendField(",").setCheck(Number),this.appendDummyInput("").appendField("]"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(ut.Msg.MIXLY_TOOLTIP_MATH_MAP)}},re={init:function(){this.setColour(zt),this.appendDummyInput().appendField(new ut.FieldTextInput("0",ut.FieldTextInput.math_number_validator_include_blank),"NUM"),this.setOutput(!0),this.setTooltip(ut.Msg.MATH_NUMBER_TOOLTIP)}},le={init:function(){this.setColour(zt),this.appendValueInput("NUM").setCheck(Number).appendField(ut.Msg.LANG_MATH_RANDOM_SEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.MIXLY_TOOLTIP_MATH_RANDOM_SEED)}},de={init:function(){this.setColour(zt),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number),this.appendValueInput("VAR").setCheck(Number).appendField(ut.Msg.MATH_ROUND).appendField(ut.Msg.TEXT_KEEP),this.appendDummyInput().appendField(ut.Msg.TEXT_DECIMAL),this.setInputsInline(!0),this.setTooltip(ut.Msg.MATH_ROUND_NEW_TOOLTIP)}},Ie={init:function(){var t=[[ut.Msg.MIXLY_TO_INT,"int"],[ut.Msg.MIXLY_TO_FLOAT,"float"],[ut.Msg.MIXLY_TO_BITES,"b"]];this.setColour(zt),this.appendValueInput("VAR").appendField(new ut.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:ut.Msg.MIXLY_PYTHON_TOOLTIP_TOINT,float:ut.Msg.MIXLY_PYTHON_TOOLTIP_TOFLOAT,b:ut.Msg.MIXLY_TOOLTIP_TEXT_TOBYTE}[t]}))}},Te={init:function(){var t=[[ut.Msg.MIXLY_TO_INT,"int"],[ut.Msg.MIXLY_TO_FLOAT,"float"]];this.setColour(zt),this.appendValueInput("VAR").appendField(new ut.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:ut.Msg.MIXLY_TOOLTIP_TEXT_TOINT,float:ut.Msg.MIXLY_TOOLTIP_TEXT_TOFLOAT}[t]}))}},he=ue,Me=160,me={init:function(){this.setColour(Me),this.appendDummyInput().appendField(this.newQuote_(!0)).appendField(new ut.FieldTextInput(""),"TEXT").appendField(this.newQuote_(!1)),this.setOutput(!0,String),this.setTooltip(ut.Msg.TEXT_TEXT_TOOLTIP)},newQuote_:function(t){if(t==this.RTL)var e="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAKCAQAAAAqJXdxAAAAqUlEQVQI1z3KvUpCcRiA8ef9E4JNHhI0aFEacm1o0BsI0Slx8wa8gLauoDnoBhq7DcfWhggONDmJJgqCPA7neJ7p934EOOKOnM8Q7PDElo/4x4lFb2DmuUjcUzS3URnGib9qaPNbuXvBO3sGPHJDRG6fGVdMSeWDP2q99FQdFrz26Gu5Tq7dFMzUvbXy8KXeAj57cOklgA+u1B5AoslLtGIHQMaCVnwDnADZIFIrXsoXrgAAAABJRU5ErkJggg==";else e="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAKCAQAAAAqJXdxAAAAn0lEQVQI1z3OMa5BURSF4f/cQhAKjUQhuQmFNwGJEUi0RKN5rU7FHKhpjEH3TEMtkdBSCY1EIv8r7nFX9e29V7EBAOvu7RPjwmWGH/VuF8CyN9/OAdvqIXYLvtRaNjx9mMTDyo+NjAN1HNcl9ZQ5oQMM3dgDUqDo1l8DzvwmtZN7mnD+PkmLa+4mhrxVA9fRowBWmVBhFy5gYEjKMfz9AylsaRRgGzvZAAAAAElFTkSuQmCC";return new ut.FieldImage(e,12,12,'"')}},Oe={init:function(){this.setColour(Me),this.appendDummyInput().appendField(this.newQuote_(!0)).appendField(new ut.FieldMultilineInput("Hello\nMixly"),"VALUE").appendField(this.newQuote_(!1)),this.setOutput(!0,String),this.setTooltip(ut.Msg.TEXT_LINES_TOOLTIP)},newQuote_:function(t){if(t==this.RTL)var e="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAKCAQAAAAqJXdxAAAAqUlEQVQI1z3KvUpCcRiA8ef9E4JNHhI0aFEacm1o0BsI0Slx8wa8gLauoDnoBhq7DcfWhggONDmJJgqCPA7neJ7p934EOOKOnM8Q7PDElo/4x4lFb2DmuUjcUzS3URnGib9qaPNbuXvBO3sGPHJDRG6fGVdMSeWDP2q99FQdFrz26Gu5Tq7dFMzUvbXy8KXeAj57cOklgA+u1B5AoslLtGIHQMaCVnwDnADZIFIrXsoXrgAAAABJRU5ErkJggg==";else e="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAKCAQAAAAqJXdxAAAAn0lEQVQI1z3OMa5BURSF4f/cQhAKjUQhuQmFNwGJEUi0RKN5rU7FHKhpjEH3TEMtkdBSCY1EIv8r7nFX9e29V7EBAOvu7RPjwmWGH/VuF8CyN9/OAdvqIXYLvtRaNjx9mMTDyo+NjAN1HNcl9ZQ5oQMM3dgDUqDo1l8DzvwmtZN7mnD+PkmLa+4mhrxVA9fRowBWmVBhFy5gYEjKMfz9AylsaRRgGzvZAAAAAElFTkSuQmCC";return new ut.FieldImage(e,12,12,'"')}};ut.FieldTextInput.char_validator=function(t){if(t.length>1&&"\\"===t.charAt(0)){var e=t.charAt(1);if("0"===e||"b"===e||"f"===e||"n"===e||"r"===e||"t"===e||"\\"===e||"'"===e)return String(t).substring(0,2);if("x"===e&&"0"===t.charAt(2)&&"B"===t.charAt(3))return String(t).substring(0,4)}return String(t).substring(0,1)};const Ee={init:function(){this.setColour(Me),this.appendDummyInput().appendField(this.newQuote_(!0)).appendField(new ut.FieldTextInput("",ut.FieldTextInput.char_validator),"TEXT").appendField(this.newQuote_(!1)),this.setOutput(!0,Number),this.setTooltip(ut.Msg.TEXT_CHAR_TOOLTIP)},newQuote_:function(t){if(1==t)var e="../../media/quote2.png";else e="../../media/quote3.png";return new ut.FieldImage(e,7,12,'"')}},Re={init:function(){this.setColour(Me),this.appendValueInput("A").setCheck([String,Number]),this.appendValueInput("B").setCheck([String,Number]).appendField(ut.Msg.MIXLY_TEXT_JOIN),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(ut.Msg.MIXLY_TOOLTIP_TEXT_JOIN)}},ce={init:function(){this.setColour(Me),this.appendValueInput("VAR").setCheck(Number).appendField(ut.Msg.MIXLY_TOCHAR),this.setOutput(!0,String),this.setTooltip(ut.Msg.MIXLY_TOOLTIP_TEXT_TOCHAR)}},ge={init:function(){this.setColour(Me),this.appendValueInput("VAR").setCheck(String).appendField(ut.Msg.MIXLY_TOASCII),this.setOutput(!0,Number),this.setTooltip(ut.Msg.MIXLY_TOOLTIP_TEXT_TOASCII)}},Ce={init:function(){this.setColour(Me),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_TOSTRING),this.setOutput(!0,String),this.setTooltip(ut.Msg.MIXLY_PYTHON_TOOLTIP_TOTEXT)}},Se={init:function(){this.setColour(Me),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_LENGTH),this.setOutput(!0,Number),this.setTooltip(ut.Msg.MIXLY_TOOLTIP_TEXT_LENGTH)}},Ae={init:function(){this.WHERE_OPTIONS=[[ut.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[ut.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[ut.Msg.TEXT_GET_INDEX_RANDOM+1+ut.Msg.TEXT_CHARAT2,"RANDOM"]],this.setHelpUrl(ut.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(Me),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number),this.appendDummyInput().appendField(ut.Msg.LISTS_GET_INDEX_GET,"MODE"),ut.Msg.LISTS_GET_INDEX_TAIL&&this.appendDummyInput("TAIL").appendField(ut.Msg.LISTS_GET_INDEX_TAIL),this.setInputsInline(!0),this.setOutput(!0),this.updateAt_(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=t.getFieldValue("WHERE"),n="";switch(e+" "+i){case"GET FROM_START":case"GET FROM_END":n=ut.Msg.LISTS_GET_INDEX_TOOLTIP_GET_FROM;break;case"GET RANDOM":n=ut.Msg.LISTS_GET_INDEX_TOOLTIP_GET_RANDOM;break;case"GET_REMOVE FROM_START":case"GET_REMOVE FROM_END":n=ut.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM;break;case"GET_REMOVE RANDOM":n=ut.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM}return"FROM_START"!=i&&"FROM_END"!=i||(n+=" "+ut.Msg.LISTS_INDEX_FROM_START_TOOLTIP.replace("%1",ut.Msg.ONE_BASED_INDEXING?"#1":"#0")),n}));var e=this;this.setTooltip((function(){var t=e.getFieldValue("WHERE"),i={FROM_START:ut.Msg.LISTS_GET_INDEX_FROM_START,FROM_END:ut.Msg.LISTS_GET_INDEX_FROM_END,RANDOM:ut.Msg.TEXT_GET_INDEX_RANDOM};return ut.Msg.PROCEDURES_DEFRETURN_RETURN+ut.Msg.MIXLY_MICROBIT_TYPE_STRING+i[t]+"n"+ut.Msg.TEXT_CHARAT2}))},mutationToDom:function(){var t=document.createElement("mutation");t.setAttribute("statement",!this.outputConnection);var e=this.getInput("AT").type==ut.INPUT_VALUE;return t.setAttribute("at",e),t},domToMutation:function(t){var e="true"==t.getAttribute("statement");this.updateStatement_(e),t="false"!=t.getAttribute("at"),this.updateAt_(t)},updateStatement_:function(t){t!=!this.outputConnection&&(this.unplug(!0,!0),t?(this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)):(this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)))},updateAt_:function(t){this.removeInput("AT"),this.removeInput("ORDINAL",!0),t?(this.appendValueInput("AT").setCheck(Number),ut.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL").appendField(ut.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT");var e=new ut.FieldDropdown(this.WHERE_OPTIONS,(function(e){var i="FROM_START"==e||"FROM_END"==e;if(i!=t){var n=this.sourceBlock_;return n.updateAt_(i),n.setFieldValue(e,"WHERE"),null}}));this.getInput("AT").appendField(e,"WHERE"),ut.Msg.LISTS_GET_INDEX_TAIL&&this.moveInputBefore("TAIL",null)}},Le={init:function(){this.setHelpUrl(ut.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(Me),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number).appendField(ut.Msg.LISTS_GET_INDEX_GET+" "+ut.Msg.LISTS_GET_INDEX_FROM_START),this.appendDummyInput().appendField(ut.Msg.TEXT_CHARAT2),this.setOutput(!0),this.setTooltip(ut.Msg.PROCEDURES_DEFRETURN_RETURN+ut.Msg.MIXLY_MICROBIT_TYPE_STRING+ut.Msg.LISTS_GET_INDEX_FROM_START+"n"+ut.Msg.TEXT_CHARAT2)}},Ne={init:function(){this.setHelpUrl(ut.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(Me),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput().appendField(ut.Msg.TEXT_RANDOM_CHAR),this.setOutput(!0),this.setTooltip(ut.Msg.TEXT_RANDOM_CHAR_TOOLTIP)}},De={init:function(){this.WHERE_OPTIONS_1=[[ut.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[ut.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[ut.Msg.LISTS_GET_SUBLIST_START_FIRST,"FIRST"]],this.WHERE_OPTIONS_2=[[ut.Msg.LISTS_GET_SUBLIST_END_FROM_START,"FROM_START"],[ut.Msg.LISTS_GET_SUBLIST_END_FROM_END,"FROM_END"],[ut.Msg.LISTS_GET_SUBLIST_END_LAST,"LAST"]],this.setHelpUrl(ut.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(Me),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput("").appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput("AT1"),this.appendDummyInput("AT2"),this.setInputsInline(!0),this.setOutput(!0,"List"),this.updateAt_(1,!0),this.updateAt_(2,!0),this.setTooltip(ut.Msg._GET_TEXT_SUBLIST_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT1").type==ut.INPUT_VALUE;t.setAttribute("at1",e);var i=this.getInput("AT2").type==ut.INPUT_VALUE;return t.setAttribute("at2",i),t},domToMutation:function(t){var e="true"==t.getAttribute("at1"),i="true"==t.getAttribute("at2");this.updateAt_(1,e),this.updateAt_(2,i)},updateAt_:function(t,e){this.removeInput("AT"+t),this.removeInput("ORDINAL"+t,!0),e?(this.appendValueInput("AT"+t).setCheck(Number),ut.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL"+t).appendField(ut.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT"+t);var i=new ut.FieldDropdown(this["WHERE_OPTIONS_"+t],(function(i){var n="FROM_START"==i||"FROM_END"==i;if(n!=e){var s=this.sourceBlock_;return s.updateAt_(t,n),s.setFieldValue(i,"WHERE"+t),null}}));this.getInput("AT"+t).appendField(i,"WHERE"+t),1==t&&(this.moveInputBefore("AT1","AT2"),this.getInput("ORDINAL1")&&this.moveInputBefore("ORDINAL1","AT2"))}},fe={init:function(){this.setHelpUrl(ut.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(Me),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT1").appendField(ut.Msg.LISTS_GET_INDEX_GET+" "+ut.Msg.LISTS_GET_INDEX_FROM_START),this.appendValueInput("AT2").appendField(ut.Msg.LISTS_GET_SUBLIST_END_FROM_START),this.appendDummyInput().appendField(ut.Msg.TEXT_CHARAT2),this.setInputsInline(!0),this.setOutput(!0,["List",String]),this.setTooltip(ut.Msg._GET_TEXT_SUBLIST_TOOLTIP)}},Fe={init:function(){var t=[[ut.Msg.MIXLY_EQUALS,"==="],[ut.Msg.MIXLY_STARTSWITH,"startswith"],[ut.Msg.MIXLY_ENDSWITH,"endswith"]];this.setColour(Me),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(new ut.FieldDropdown(t),"DOWHAT").setCheck(String),this.setOutput(!0,[Boolean,Number]),this.setInputsInline(!0)}},Pe={init:function(){this.setColour(Me),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(ut.Msg.MIXLY_COMPARETO).setCheck(String),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_COMPARETO_HELP)}},ve={init:function(){var t=[[ut.Msg.TEXT_UPPER,"upper"],[ut.Msg.TEXT_TITLE,"title"],[ut.Msg.TEXT_CAPITALIZE,"capitalize"],[ut.Msg.TEXT_SWAPCASE,"swapcase"],[ut.Msg.TEXT_LOWER,"lower"]];this.setColour(Me),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new ut.FieldDropdown(t),"CAPITAL").setCheck(String),this.setOutput(!0,String);var e=this;this.setTooltip((function(){var t=e.getFieldValue("CAPITAL");return{upper:ut.Msg.MIXLY_MIXPY_TEXT_UPPER_TOOLTIP,title:ut.Msg.MIXLY_MIXPY_TEXT_TITLE_TOOLTIP,swapcase:ut.Msg.MIXLY_MIXPY_TEXT_SWAPCASE_TOOLTIP,capitalize:ut.Msg.MIXLY_MIXPY_TEXT_CAPITALIZE_TOOLTIP,lower:ut.Msg.MIXLY_MIXPY_TEXT_LOWER_TOOLTIP}[t]}))}},Ye={init:function(){var t=[[ut.Msg.TEXT_LJUST,"ljust"],[ut.Msg.TEXT_CENTER,"center"],[ut.Msg.TEXT_RJUST,"rjust"]];this.setColour(Me),this.appendValueInput("VAR").appendField(new ut.FieldDropdown(t),"CENTER").setCheck(String),this.appendValueInput("WID").appendField(ut.Msg.MIXLY_WIDTH).setCheck(Number),this.appendValueInput("Symbol").appendField(ut.Msg.MIXLY_RECT_Fill).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(ut.Msg.MIXLY_MIXPY_TEXT_CENTER_TOOLTIP)}},xe={init:function(){this.setColour(Me),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).setCheck(String),this.appendValueInput("STR").appendField(ut.Msg.MIXLY_MID+ut.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER).setCheck(String),this.appendDummyInput().appendField(ut.Msg.MIXLY_LIST_INDEX),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(ut.Msg.MIXLY_MIXPY_TEXT_FIND_TOOLTIP)}},be={init:function(){this.setColour(Me),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_USE_STR).setCheck(String),this.appendValueInput("LIST").appendField(ut.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_SEQ).setCheck("List","Tuple","Set","Dict"),this.appendDummyInput().appendField(ut.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_GET_STR),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(ut.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_TOOLTIP)}},Xe={init:function(){this.setColour(Me),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("STR1").appendField(ut.Msg.MIXLY_MIXPY_REPLACE).setCheck(String),this.appendValueInput("STR2").appendField(ut.Msg.LISTS_SET_INDEX_INPUT_TO).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(ut.Msg.MIXLY_MIXPY_TEXT_REPLACE_TOOLTIP)}},ye={init:function(){this.setColour(Me),this.appendValueInput("VAR"),this.appendValueInput("VAL").appendField(ut.Msg.LIST_SPLIT_AS),this.appendDummyInput("").appendField(ut.Msg.LIST_SPLIT),this.setOutput(!0,"List"),this.setTooltip(ut.Msg.MIXLY_MIXPY_TEXT_SPLIT_TOOLTIP),this.setInputsInline(!0)}},Ve={init:function(){var t=[[ut.Msg.TEXT_TRIM_BOTH,"strip"],[ut.Msg.TEXT_TRIM_LEFT,"lstrip"],[ut.Msg.TEXT_TRIM_RIGHT,"rstrip"]];this.setColour(Me),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(ut.Msg.TEXT_STRIM),this.appendDummyInput("").appendField(new ut.FieldDropdown(t),"TOWHAT"),this.appendDummyInput("").appendField(ut.Msg.TEXT_BLANK),this.setOutput(!0,String),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{strip:ut.Msg.TEXT_TRIM_BOTH_TOOLTIP,lstrip:ut.Msg.TEXT_TRIM_LEFT_TOOLTIP,rstrip:ut.Msg.TEXT_TRIM_RIGHT_TOOLTIP}[t]}))}},Be={init:function(){this.setColour(Me),this.appendDummyInput("").appendField(ut.Msg.MIXLY_MICROPYTHON_FORMAT),this.appendDummyInput("").appendField(new ut.FieldTextInput("str"),"VAR"),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new ut.icons.MutatorIcon(["text_create_with_item"],this)),this.setOutput(!0),this.setTooltip(ut.Msg.MIXLY_MIXPY_TEXT_FORMAT_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("text_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ut.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},bi={init:function(){this.setColour(Yi),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(ut.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},Xi={init:function(){this.setColour(Yi),this.appendDummyInput().appendField(ut.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},yi={init:function(){this.setColour(Yi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(ut.Msg.DICT_KEYS),this.setTooltip(ut.Msg.DICTS_KEYS_TOOLTIP),this.setOutput(!0,"List")}},Vi={init:function(){this.setColour(Yi),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(ut.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(ut.Msg.DICTS_ADD_VALUE),this.setOutput(!0),this.setTooltip(ut.Msg.DICTS_GET_TOOLTIP)}},Bi={init:function(){this.setColour(Yi),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(ut.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(ut.Msg.DICTS_ADD_VALUE),this.appendValueInput("VAR").appendField(ut.Msg.DICTS_DEFAULT_VALUE),this.setOutput(!0),this.setTooltip(ut.Msg.DICTS_GET_DEFAULT_TOOLTIP)}},Gi={init:function(){this.setColour(Yi),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(ut.Msg.DICTS_ADD),this.appendDummyInput(),this.appendValueInput("VAR").appendField(ut.Msg.DICTS_ADD_VALUE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.DICTS_ADD_OR_CHANGE_TOOLTIP)}},Ui={init:function(){this.setColour(Yi),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(ut.Msg.DICTS_DELETE_IN),this.appendDummyInput("").appendField(ut.Msg.DICTS_DELETE_VALUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.DICTS_DELETE_TOOLTIP)}},wi={init:function(){this.setColour(Yi),this.appendValueInput("DICT2").setCheck("Dict").appendField(ut.Msg.MAKE_DICT),this.appendValueInput("DICT").setCheck("Dict").appendField(ut.Msg.DICT_UPDATE),this.appendDummyInput("").appendField(ut.Msg.MIXLY_MID),this.setTooltip(ut.Msg.DICTS_UPDATE_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},ki={init:function(){this.setColour(Yi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(ut.Msg.DICT_CLEAR),this.setTooltip(ut.Msg.DICTS_CLEAR_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Hi={init:function(){this.setColour(Yi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(ut.Msg.DICT_ITEMS),this.setTooltip(ut.Msg.DICTS_ITEMS_TOOLTIP),this.setOutput(!0,"List")}},Wi={init:function(){this.setColour(Yi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(ut.Msg.DICT_VALUES),this.setTooltip(ut.Msg.DICTS_VALUES_TOOLTIP),this.setOutput(!0,"List")}},Ki={init:function(){this.setColour(Yi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_LENGTH),this.setTooltip(ut.Msg.DICT_LENGTH_TOOLTIP),this.setOutput(!0,Number)}},Ji={init:function(){this.setColour(Yi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(ut.Msg.DICT_DELDICT),this.setTooltip(ut.Msg.DICTS_DEL_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Qi={init:function(){this.MODE=[[ut.Msg.DICTS_ADD_OR_CHANGE,"INSERT"],[ut.Msg.MIXLY_MICROBIT_JS_DELETE_VAR,"DELETE"]],this.setHelpUrl(ut.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(Yi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("AT2"),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).appendField(ut.Msg.DICTS_ADD_VALUE),this.updateAt_(!0),this.setInputsInline(!0),this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e="";switch(t.getFieldValue("WHERE")){case"INSERT":e=ut.Msg.DICTS_ADD_TOOLTIP;break;case"DELETE":e=ut.Msg.DICTS_DELETE_TOOLTIP}return e}))},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT2").type==ut.INPUT_VALUE;return t.setAttribute("at2",e),t},domToMutation:function(t){var e="true"==t.getAttribute("at2");this.updateAt_(e)},updateAt_:function(t){this.removeInput("AT2"),this.removeInput("ORDINAL",!0),t?this.appendValueInput("AT2").setCheck(Number):this.appendDummyInput("AT2");var e=new ut.FieldDropdown(this.MODE,(function(e){var i="INSERT"==e;if(i!=t){var n=this.sourceBlock_;return n.updateAt_(i),n.setFieldValue(e,"WHERE"),null}}));this.getInput("AT2").appendField(e,"WHERE")}},zi={init:function(){this.setColour(Yi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(ut.Msg.blockpy_DICT_POP),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(ut.Msg.DICTS_ADD_VALUE),this.setTooltip(ut.Msg.DICT_POP_TOOLTIP),this.setInputsInline(!0),this.setOutput(!0)}},qi={init:function(){this.setColour(Yi),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(ut.Msg.DICTS_SET_DEFAULT),this.appendDummyInput("").appendField(ut.Msg.DICTS_DEFAULT_VALUE),this.appendValueInput("VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.DICTS_SETDEFAULT_TOOLTIP)}},ji={init:function(){this.setColour(Yi),this.appendDummyInput("").appendField(new ut.FieldLabel(ut.Msg.MIXLY_MICROBIT_TYPE_DICT),"TIP").appendField(" "),this.itemCount_=3,this.updateShape_(),this.setOutput(!0,"Dict"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setMutator(new ut.icons.MutatorIcon(["dicts_create_with_item"],this)),this.setTooltip(ut.Msg.DICTS_CREATE_WITH_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("dicts_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ut.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Zi={init:function(){this.setColour(Yi),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_TODICT),this.setOutput(!0),this.setTooltip(ut.Msg.MIXLY_PYTHON_TOOLTIP_TODICT)}},$i={init:function(){this.setColour(Yi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_TO_JSON),this.setTooltip(ut.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0,Number)}},tn={init:function(){this.setColour(Yi),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_CONVERT_TO_JSON),this.setTooltip(ut.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0,Number)}},en=210,nn={init:function(){var t=ut.RTL?[["=","EQ"],["≠","NEQ"],[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["=","EQ"],["≠","NEQ"],["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(en),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new ut.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{EQ:ut.Msg.LOGIC_COMPARE_TOOLTIP_EQ,NEQ:ut.Msg.LOGIC_COMPARE_TOOLTIP_NEQ,LT:ut.Msg.LOGIC_COMPARE_TOOLTIP_LT,LTE:ut.Msg.LOGIC_COMPARE_TOOLTIP_LTE,GT:ut.Msg.LOGIC_COMPARE_TOOLTIP_GT,GTE:ut.Msg.LOGIC_COMPARE_TOOLTIP_GTE}[t]})),this.prevBlocks_=[null,null]}},sn={init:function(){var t=ut.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]],e=ut.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(en),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new ut.FieldDropdown(t),"OP1"),this.appendValueInput("C").appendField(new ut.FieldDropdown(e),"OP2"),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_PYTHON_LOGIC_COMPARE_CONTINOUS_TOOLTIP)}},on={init:function(){var t=[[ut.Msg.LOGIC_OPERATION_AND,"AND"],[ut.Msg.LOGIC_OPERATION_OR,"OR"],[ut.Msg.LOGIC_OPERATION_NOR,"NOR"],[ut.Msg.LOGIC_OPERATION_XOR,"XOR"]];this.setColour(en),this.setOutput(!0,Boolean),this.appendValueInput("A").setCheck([Boolean,Number]),this.appendValueInput("B").setCheck([Boolean,Number]).appendField(new ut.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{AND:ut.Msg.LOGIC_OPERATION_TOOLTIP_AND,OR:ut.Msg.LOGIC_OPERATION_TOOLTIP_OR,NOR:ut.Msg.LOGIC_OPERATION_TOOLTIP_NOR,XOR:ut.Msg.LOGIC_OPERATION_TOOLTIP_XOR}[t]}))}},_n={init:function(){this.setColour(en),this.setOutput(!0,Boolean),this.appendValueInput("BOOL").setCheck([Number,Boolean]).appendField(ut.Msg.LOGIC_NEGATE_TITLE),this.setTooltip(ut.Msg.LOGIC_NEGATE_TOOLTIP)}},pn={init:function(){var t=[[ut.Msg.LOGIC_BOOLEAN_TRUE,"TRUE"],[ut.Msg.LOGIC_BOOLEAN_FALSE,"FALSE"]];this.setColour(en),this.setOutput(!0,Boolean),this.appendDummyInput().appendField(new ut.FieldDropdown(t),"BOOL"),this.setTooltip(ut.Msg.LOGIC_BOOLEAN_TOOLTIP)}},an={init:function(){this.setColour(en),this.setOutput(!0),this.appendDummyInput().appendField(ut.Msg.LOGIC_NULL),this.setTooltip(ut.Msg.LOGIC_NULL_TOOLTIP)}},un={init:function(){this.setColour(en),this.appendValueInput("A"),this.appendValueInput("B").appendField(ut.Msg.LOGIC_TERNARY_IF_TRUE),this.appendValueInput("C").appendField(ut.Msg.LOGIC_TERNARY_IF_FALSE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_TOOLTIP_LOGIT_TRUEORFALSE)}},rn={init:function(){var t=[[ut.Msg.TEXT_APPEND_TO,"in"],[ut.Msg.MIXLY_PYTHON_LOGIC_IS_NOT_IN,"not in"]];this.setColour(en),this.appendValueInput("A"),this.appendValueInput("B").setCheck([String,"List"]).appendField(new ut.FieldDropdown(t),"BOOL"),this.appendDummyInput("").appendField(ut.Msg.MICROBIT_LOGIC_IS_IN),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(ut.Msg.IN)}},ln={init:function(){var t=[[ut.Msg.MIXLY_PYTHON_LOGIC_IS,"is"],[ut.Msg.MIXLY_PYTHON_LOGIC_IS_NOT,"is not"]];this.setColour(en),this.appendValueInput("A"),this.appendValueInput("B").appendField(new ut.FieldDropdown(t),"BOOL"),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_PYTHON_LOGIC_IS_TOOLTIP)}},dn={init:function(){this.setColour(en),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_TOBOOL),this.setOutput(!0,Boolean),this.setTooltip(ut.Msg.MIXLY_PYTHON_TOOLTIP_TOBOOL)}},In={init:function(){this.setColour(0),this.appendValueInput("fn").setCheck(String).appendField(ut.Msg.MIXLY_PYTHON_STORAGE_OPEN_FILE_WITH_OS+"(For Windows)"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Tn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendValueInput("FILE").appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_AS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=ut.Msg.MIXLY_USE,n=ut.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=ut.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,o=ut.Msg.MIXLY_BELONG;return i+{r:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+o+n+s}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ut.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},hn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=ut.Msg.MIXLY_USE,n=ut.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=ut.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,o=ut.Msg.MIXLY_BELONG,_=ut.Msg.PY_STORAGE_FILE_OBJECT;return i+{r:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+o+n+s+_}))}},Mn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE);this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendDummyInput().appendField(ut.Msg.MIXPY_TEXT_ENCODE).appendField(new ut.FieldDropdown([["ANSI","ANSI"],["gbk","gbk"],["utf-8","utf-8"]]),"CODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=ut.Msg.MIXLY_USE,n=ut.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=ut.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,o=ut.Msg.MIXLY_BELONG,_=ut.Msg.PY_STORAGE_FILE_OBJECT;return i+{r:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+o+n+s+_}))}},mn={init:function(){this.setColour(0),this.appendValueInput("data").setCheck(String).appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendValueInput("FILE").appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE+ut.Msg.MIXLY_MICROBIT_TYPE_STRING+ut.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE)}},On={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL,"read"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE,"readline"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES,"readlines"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String)}},En={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,"read"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,"readline"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE,"readlines"]]),"MODE"),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=ut.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE,n=ut.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER;return i+{read:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,readline:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,readlines:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE}[e]+"x"+n}))}},Rn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.setNextStatement(!0),this.appendValueInput("SIZE").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(ut.Msg.MICROBIT_PYTHON_TYPE)}},cn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(ut.Msg.HTML_FILE),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean),this.setTooltip(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT1)}},gn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_FILENAME),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILENAME)}},Cn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE)}},Sn={init:function(){this.setColour(0),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES)}};ut.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE;const An={init:function(){this.setColour(0),this.appendDummyInput().appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE,"remove"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_DIRS,"removedirs"]]),"MODE"),this.appendValueInput("FILE").setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE)}},Ln={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE+ut.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE)}},Nn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_RETURN_FILE),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_PRESENT_LOCATION),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_TELL)}},Dn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION),this.appendDummyInput().appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,"start"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,"current"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END,"end"]]),"MODE"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=ut.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION+ut.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION,n=ut.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER,s=ut.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET;return i+" "+{start:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,current:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,end:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END}[e]+s+"x"+n}))}},fn={init:function(){this.setColour(0),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR)}},Fn={init:function(){this.setColour(0),this.appendValueInput("PATH").setCheck(String).appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_SET),this.appendDummyInput().appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,"mkdir"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_MAKEDIRS,"makedirs"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return ut.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH+"x"+ut.Msg.MIXLY_ESP32_SET+{mkdir:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,makedirs:ut.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},Pn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME),this.appendValueInput("NEWFILE").setCheck(String).appendField(ut.Msg.MIXLY_AS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME)}},vn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR)}},Yn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT),this.appendDummyInput().appendField(new ut.FieldDropdown([[ut.Msg.HTML_FILE,"isfile"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_DIR,"isdir"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean);let t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return ut.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH+"x"+ut.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT+{isfile:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,isdir:ut.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},xn={init:function(){this.setColour(0),this.appendValueInput("SPISUB").appendField(ut.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_SETUP+ut.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(ut.Msg.MIXLY_SD_CARD),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},bn={init:function(){this.setColour(0),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_SD_CARD),this.appendValueInput("DIR").setCheck(String).appendField(ut.Msg.MIXLY_SDCARD_MOUNT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip()}},Xn={};Xn.NAME_TYPE=ut.PROCEDURE_CATEGORY_NAME,Xn.allProcedures=function(t){for(var e=t.getAllBlocks(!1),i=[],n=[],s=0;s"),this.appendValueInput("style").appendField(ut.Msg.MIXLY_AIP_ATTR).setAlign(ut.inputs.Align.RIGHT),this.appendStatementInput("DO").appendField(""),this.setInputsInline(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Ps={init:function(){this.setColour(As),this.appendDummyInput().appendField(ut.Msg.HTML_STYLE),this.appendStatementInput("STYLE"),this.setOutput(!0)}},vs={init:function(){this.setColour(As),this.appendDummyInput().appendField(ut.Msg.HTML_FORM_CONTENT).appendField(new ut.FieldDropdown([[ut.Msg.HTML_TEXT,"text"],[ut.Msg.HTML_EMAIL,"email"],[ut.Msg.HTML_NUMBER,"number"],[ut.Msg.HTML_PASSWORD,"password"],[ut.Msg.HTML_CHECKBOX,"checkbox"],[ut.Msg.HTML_RADIOBUTTON,"radiobutton"],[ut.Msg.HTML_BUTTON,"button"],[ut.Msg.HTML_COLOUR,"colour"],[ut.Msg.HTML_DATE,"date"],[ut.Msg.HTML_LOCALTIME,"local time"],[ut.Msg.HTML_FILE,"file"],[ut.Msg.HTML_HIDDEN,"hidden"],[ut.Msg.HTML_IMAGE,"image"],[ut.Msg.HTML_MONTH,"month"],[ut.Msg.HTML_RANGE,"range"],[ut.Msg.HTML_RESET,"reset"],[ut.Msg.HTML_SEARCH,"search"],[ut.Msg.HTML_SUBMIT,"submit"],[ut.Msg.HTML_TELEPHONENUMBER,"telephone number"],[ut.Msg.HTML_TIME,"time"],[ut.Msg.HTML_URL,"url"],[ut.Msg.HTML_WEEK,"week"]]),"LEVEL"),this.appendDummyInput().appendField(ut.Msg.HTML_NAME).appendField(new ut.FieldTextInput("car"),"NAME"),this.appendDummyInput().appendField(ut.Msg.HTML_VALUE).appendField(new ut.FieldTextInput("go"),"VALUE"),this.appendValueInput("style").appendField(ut.Msg.MIXLY_AIP_ATTR).setAlign(ut.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Ys={init:function(){this.setColour(As),this.appendDummyInput().appendField(new ut.FieldTextInput("property"),"KEY").appendField(":").appendField(new ut.FieldTextInput("value"),"VALUE"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},xs={init:function(){this.setColour(As),this.appendDummyInput().appendField(new ut.FieldTextInput("property"),"KEY").appendField(":").appendField(new ut.FieldColour("#ff0000"),"RGB_LED_COLOR"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},bs={init:function(){this.setColour(As),this.appendDummyInput().appendField(ut.Msg.HTML_TEXT).appendField(new ut.FieldTextInput("text"),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Xs=160,ys={init:function(){this.setColour(Xs),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Tabular Abstraction:"),this.appendDummyInput().appendField(new ut.FieldTable(""),"TEXT")}},Vs={init:function(){this.setColour(Xs),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Code Block:"),this.appendDummyInput().appendField(new ut.FieldMultilineInput(""),"TEXT")}},Bs={init:function(){this.setColour(Xs),this.appendDummyInput().appendField("Code Expression:"),this.appendDummyInput().appendField(new ut.FieldMultilineInput(""),"TEXT"),this.setOutput(!0)}},Gs={init:function(){this.setColour(Xs),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("VALUE").appendField(""),this.setInputsInline(!1)}},Us={init:function(){this.setColour(Xs),this.appendDummyInput().appendTitle("Comment:").appendTitle(new ut.FieldTextInput(""),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("This comment will be ignored by Python")}},ws={init:function(){this.setColour(Xs),this.appendValueInput("VALUE").appendField(ut.Msg.TYPE_CHECK),this.setInputsInline(!1),this.setOutput(!0,"Type")}},ks={init:function(){this.setColour(Xs),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new ut.icons.MutatorIcon(["text_print_multiple_item"],this)),this.setTooltip(ut.Msg.TEXT_PRINT_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=ut.Block.obtain(t,"text_print_multiple_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n= stop:"," yield start"," start -= abs(step)"])};if(t=function(t,e,i){return"("+t+" <= "+e+") and "+a()+"("+t+", "+e+", "+i+") or "+u()+"("+t+", "+e+", "+i+")"},ut.isNumber(n)&&ut.isNumber(s)&&ut.isNumber(o))n=parseFloat(n),s=parseFloat(s),o=Math.abs(parseFloat(o)),0==n%1&&0==s%1&&0==o%1?(n<=s?(s++,t=0==n&&1==o?s:n+", "+s,1!=o&&(t+=", "+o)):t=n+", "+--s+", -"+o,t="range("+t+")"):(t=n",GTE:">="};const Lp=function(t,e){var i=this.getFieldValue("OP"),n="&&"==i?e.ORDER_LOGICAL_AND:e.ORDER_LOGICAL_OR,s=e.valueToCode(this,"A",n)||"False",o=e.valueToCode(this,"B",n)||"False";if("AND"==i)var _=s+" and "+o;else if("OR"==i)_=s+" or "+o;else if("NOR"==i)_="not("+s+"^"+o+")";else _=s+"^"+o;return[_,n]},Np=function(t,e){var i=e.ORDER_UNARY_PREFIX;return["not "+(e.valueToCode(this,"BOOL",i)||"False"),i]},Dp=function(t,e){return["TRUE"==this.getFieldValue("BOOL")?"True":"False",e.ORDER_ATOMIC]},fp=function(t,e){return["None",e.ORDER_ATOMIC]},Fp=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"False";return["("+(e.valueToCode(this,"B",e.ORDER_ATOMIC)||"False")+" if "+i+" else "+(e.valueToCode(this,"C",e.ORDER_ATOMIC)||"False")+")",e.ORDER_ATOMIC]},Pp=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",n=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[i+" "+this.getFieldValue("BOOL")+" "+n,e.ORDER_ATOMIC]},vp=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",n=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[i+" "+this.getFieldValue("BOOL")+" "+n,e.ORDER_ATOMIC]},Yp=function(t,e){return["bool("+(e.valueToCode(this,"VAR",e.ORDER_ATOMIC)||"0")+")",e.ORDER_ATOMIC]},xp=function(t,e){return e.definitions_.import_os="import os","os.startfile("+e.valueToCode(this,"fn",e.ORDER_ATOMIC)+")\n"},bp=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+" = open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')\n"},Xp=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')",e.ORDER_ATOMIC]},yp=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"', encoding=\""+this.getFieldValue("CODE")+'")',e.ORDER_ATOMIC]},Vp=function(t,e){var i=e.valueToCode(this,"data",e.ORDER_ATOMIC);return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".write("+i+")\n"},Bp=function(t,e){var i=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+i+"()",e.ORDER_ATOMIC]},Gp=function(t,e){var i=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+i+"("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Up=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".readline("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},wp=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".writable()",e.ORDER_ATOMIC]},kp=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".name()",e.ORDER_ATOMIC]},Hp=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".close()\n"},Wp=function(t,e){e.definitions_.import_os="import os";return["os.listdir()",e.ORDER_ATOMIC]},Kp=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},Jp=function(t,e){return e.definitions_.import_os="import os",["os.path.getsize("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Qp=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".tell()",e.ORDER_ATOMIC]},zp=function(t,e){var i=this.getFieldValue("MODE"),n=0;return n="start"==i?0:"current"==i?1:2,e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".seek("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+","+n+")\n"},qp=function(t,e){return e.definitions_.import_os="import os","os.chdir("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},jp=function(t,e){e.definitions_.import_os="import os";return["os.getcwd()",e.ORDER_ATOMIC]},Zp=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"PATH",e.ORDER_ATOMIC)+")\n"},$p=function(t,e){return e.definitions_.import_os="import os","os.rename("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+","+e.valueToCode(this,"NEWFILE",e.ORDER_ATOMIC)+")\n"},ta=function(t,e){e.definitions_.import_os="import os";var i=e.valueToCode(this,"FILE",e.ORDER_ATOMIC);return["os."+this.getFieldValue("MODE")+"("+i+")",e.ORDER_ATOMIC]},ea=function(t,e){return e.definitions_.import_os="import os",e.definitions_.import_sdcard="import sdcard",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+" = sdcard.SDCard("+e.valueToCode(this,"SPISUB",e.ORDER_ATOMIC)+","+e.valueToCode(this,"PINSUB",e.ORDER_ATOMIC)+")\n"},ia=function(t,e){return e.definitions_.import_os="import os",e.definitions_.import_sdcard="import sdcard","os.mount("+e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+","+e.valueToCode(this,"DIR",e.ORDER_ATOMIC)+")\n"},na=function(t,e){var i=e.variableDB_.getName(this.getFieldValue("NAME"),ut.Procedures.NAME_TYPE),n=e.statementToCode(this,"STACK")||" pass\n";e.INFINITE_LOOP_TRAP&&(n=e.INFINITE_LOOP_TRAP.replace(/%1/g,"'"+this.id+"'")+n);var s=e.valueToCode(this,"RETURN",e.ORDER_NONE)||"";s&&(s=" return "+s+"\n");for(var o=[],_=0;_\n\n\n\t\n"+e.statementToCode(this,"HEAD")+"\n\n"+e.statementToCode(this,"BODY")+"\n\n'''",e.ORDER_ATOMIC]},ya=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");return"\n"+i+"\n"},Va=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");if("head"==n)var s="<"+n+'>\n\t\n'+i+"\n";else s="<"+n+">\n"+i+"\n";return s},Ba=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");return"<"+n+">\n"+i+"\n"},Ga=function(t,e){var i=e.statementToCode(this,"DO"),n=e.valueToCode(this,"style"),s=this.getFieldValue("LEVEL");return"<"+s+" "+n+" >\n"+i+"\n"},Ua=function(t,e){return['style="'+e.statementToCode(this,"STYLE")+'"',e.ORDER_ATOMIC]},wa=function(t,e){return'"},ka=function(){return this.getFieldValue("KEY")+":"+this.getFieldValue("VALUE")+";"},Ha=function(){return this.getFieldValue("TEXT")+"\n"},Wa=function(t){return t.getFieldValue("TEXT")+"\n"},Ka=function(t,e){return[t.getFieldValue("TEXT"),e.ORDER_ATOMIC]},Ja=function(t,e){return(e.valueToCode(t,"VALUE",e.ORDER_ATOMIC)||"")+"\n"},Qa=function(){return""},za=function(t,e){return["type("+(e.valueToCode(t,"VALUE",e.ORDER_MEMBER)||"___")+")",e.ORDER_ATOMIC]},qa=function(t,e){for(var i=t.getFieldValue("NAME"),n=t.hasReturn_,s=new Array(t.itemCount_),o=0;o0?e.join("\n")+"\n"+n.join("\n")+"\n"+s.join("")+"\n"+t+"while True:\n"+o.join("")+_.join("\n"):e.join("\n")+"\n"+n.join("\n")+"\n"+s.join("")+"\n"+t+_.join("\n")},Za.scrubNakedValue=function(t){return t+"\n"},Za.quote_=function(t){var e="'";return-1!==(t=t.replace(/\\/g,"\\\\").replace(/\n/g,"\\\n")).indexOf("'")&&(-1===t.indexOf('"')?e='"':t=t.replace(/'/g,"\\'")),e+t+e},Za.multiline_quote_=function(t){return"'''"+(t=t.replace(/'''/g,"\\'\\'\\'"))+"'''"},Za.scrub_=function(t,e,i){var n="";if(!t.outputConnection||!t.outputConnection.targetConnection){(o=t.getCommentText())&&(o=ut.utils.string.wrap(o,Za.COMMENT_WRAP-3),n+=Za.prefixLines(o+"\n","# "));for(var s=0;s0?"int("+p+" + "+s+")":s<0?"int("+p+" - "+-s+")":"int("+p+")",n&&(p="-"+p)),p};const $a="#74A55B",tu={init:function(){this.setColour($a),this.appendDummyInput("").appendField(ut.Msg.MIXLY_MIDI),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_SETUP).setCheck("var"),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(ut.Msg.MIXLY_RGB_PIN_COUNT)}},eu={init:function(){this.setColour($a),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(ut.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},iu={init:function(){this.setColour($a),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(ut.Msg.MIXLY_FREQUENCY),this.appendValueInput("time").setCheck(Number).appendField(ut.Msg.MIXLY_DURATION),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE2)}},nu={init:function(){this.setColour($a),this.appendValueInput("SUB"),this.appendValueInput("LIST").appendField(ut.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS)}},su={init:function(){this.setColour($a),this.appendValueInput("SUB"),this.appendValueInput("TICKS").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_JS_SET_TEMPO).appendField(ut.Msg.MICROBIT_ACTUATOR_ticks),this.appendValueInput("BPM").setCheck(Number).appendField(ut.Msg.MIXLY_SPEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_MUSIC_SET_TEMPO)}},ou={init:function(){this.setColour($a),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_Get_current_tempo),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_MUSIC_GET_TEMPO)}},_u={init:function(){this.setColour($a),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_Reset_music),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_MUSIC_RESET)}},pu={init:function(){this.setColour($a),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},au={init:function(){this.setColour($a),this.appendDummyInput().appendField(ut.Msg.MIXLY_SETTING).appendField(ut.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(ut.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("bright").appendField(ut.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_EXTERN_LED_SETONOFF)}},uu={init:function(){this.setColour($a),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(ut.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(ut.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(ut.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_EXTERN_LED_GETONOFF)}},ru={init:function(){this.setColour($a),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(ut.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(ut.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(ut.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_EXTERN_LED_GETONOFF)}},lu={init:function(){this.setColour($a),this.appendDummyInput().appendField(ut.Msg.MIXLY_SETTING).appendField(ut.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(ut.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("bright").appendField(ut.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_EXTERN_LED_SETBRIGHT)}},du={init:function(){this.setColour($a),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_SETUP+ut.Msg.MIXLY_SERVO),this.appendValueInput("PIN",Number).appendField(ut.Msg.MIXLY_PIN),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Iu={init:function(){this.setColour($a),this.appendValueInput("PIN",Number).appendField(ut.Msg.MIXLY_SERVO).appendField(ut.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("DEGREE",Number).setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_DEGREE_0_180),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_SERVO_MOVE)}},Tu={init:function(){this.setColour($a),this.appendValueInput("VAR").appendField("360°"+ut.Msg.MIXLY_SERVO),this.appendValueInput("SPEED",Number).setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_SETTING+ut.Msg.blockpy_turtle_rotate+ut.Msg.MIXLY_SPEED+" (-10~10)"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_SERVO_360_TOOLTIP)}},hu={init:function(){this.setColour($a),this.appendValueInput("PIN",Number).appendField("180°"+ut.Msg.MIXLY_SERVO).appendField(ut.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_SERVO_MOVE)}},Mu={init:function(){this.setColour($a),this.appendValueInput("PIN",Number).appendField("360°"+ut.Msg.MIXLY_SERVO).appendField(ut.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_SERVO_SPEED_TOOLIPS)}},mu={init:function(){this.setColour($a),this.appendValueInput("PIN",Number).appendField("180°"+ut.Msg.MIXLY_SERVO).appendField(ut.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET+ut.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setOutput(!0,Number),this.setInputsInline(!0)}},Ou={init:function(){this.setColour($a),this.appendValueInput("PIN",Number).appendField("360°"+ut.Msg.MIXLY_SERVO).appendField(ut.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET+ut.Msg.MIXLY_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},Eu={init:function(){this.setColour($a),this.appendValueInput("SUB").appendField("初始化").setCheck("var"),this.appendDummyInput().appendField("电机驱动"),this.appendDummyInput().appendField("地址").appendField(new ut.FieldDropdown([["A","ms32006.ADDRESS_A"],["B","ms32006.ADDRESS_B"]]),"mode"),this.appendValueInput("SUB1").setCheck("var").setAlign(ut.inputs.Align.RIGHT).appendField("通信"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("初始化MS32006电机驱动,使用I2C通信")}},Ru={init:function(){this.setColour($a),this.appendValueInput("SUB").appendField("直流电机").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_Direction).appendField(new ut.FieldDropdown([[ut.Msg.CLOCKWISE,"ms32006.MOT_CW"],[ut.Msg.ANTI_CLOCKWISE,"ms32006.MOT_CCW"],[ut.Msg.MOTOR_N,"ms32006.MOT_N"],[ut.Msg.MOTOR_P,"ms32006.MOT_P"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_STEPPER_SET_SPEED),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("设置直流电机的状态及转速(0-100)")}},cu={init:function(){this.setColour($a),this.appendValueInput("SUB").appendField("步进电机").setCheck("var"),this.appendDummyInput().appendField("选择").appendField(new ut.FieldDropdown([["A","ms32006.MOT_A"],["B","ms32006.MOT_B"]]),"mode"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_Direction).appendField(new ut.FieldDropdown([[ut.Msg.CLOCKWISE,"ms32006.MOT_CW"],[ut.Msg.ANTI_CLOCKWISE,"ms32006.MOT_CCW"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField("转速"),this.appendValueInput("steps").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField("步数"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("设置步进电机的状态、转速、步数(0-2047)")}},gu={init:function(){this.setColour($a),this.appendDummyInput("").appendField(ut.Msg.MIXLY_RGB),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_SETUP).setCheck("var"),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_PIN),this.appendValueInput("LEDCOUNT").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_COUNT),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(ut.Msg.MIXLY_RGB_PIN_COUNT)}},Cu={init:function(){this.setColour($a),this.appendDummyInput("").appendField(ut.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("_LED_").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(ut.Msg.MIXLY_RGB_NUM_R_G_B_MP)}},Su={init:function(){this.setColour($a),this.appendDummyInput("").appendField(ut.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("RVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(ut.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},Au={init:function(){this.setColour($a),this.appendDummyInput("").appendField(ut.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_RGB_WRITE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(ut.Msg.MIXLY_ESP32_MUSIC_WRI)}},Lu={init:function(){this.setColour($a),this.appendDummyInput("").appendField(ut.Msg.CONTROLS_FOR_INPUT_WITH+"uart").appendField(new ut.FieldDropdown([["uart1","uart1"],["uart2","uart2"]]),"key"),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_SETUP+ut.Msg.LISTS_SET_INDEX_INPUT_TO+"SYN6288"+ut.Msg.MIXLY_AipSpeech_synthesis),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setFieldValue("LTR308","key")}},Nu={init:function(){this.setColour($a),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("VOICE").setCheck(Number).appendField(ut.Msg.MIXLY_SET_VOLUME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_SET_VOLUME_TOOLTIP)}},Du={init:function(){this.setColour($a),this.appendValueInput("SUB").appendField("SYN6288"),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET_VOLUME),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_SET_VOLUME_TOOLTIP)}},fu={init:function(){this.setColour($a),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("VOICE").setCheck(Number).appendField(ut.Msg.MIXLY_PLAY_HINTS),this.appendDummyInput().appendField(ut.Msg.MIXLY_PROGRAM_BLOCK).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[ut.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"mode"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_PLAY_HINTS_TOOLTIP)}},Fu={init:function(){this.setColour($a),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("data").setCheck(String).appendField(ut.Msg.MIXLY_AipSpeech_synthesis),this.appendValueInput("VOICE").setCheck(Number).appendField(ut.Msg.MIXLY_BACKGROUND_MUSIC),this.appendDummyInput().appendField(ut.Msg.MIXLY_PROGRAM_BLOCK).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[ut.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"mode"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_PLAY_TTS_TOOLTIP)}},Pu={init:function(){this.setColour($a),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.extern_addr),"PIN"),this.setOutput(!0,Number)}},vu={init:function(){this.setColour($a),this.appendDummyInput().appendField(ut.Msg.ME_GO_MOTOR_EXTERN+ut.Msg.MIXLY_MOTOR).appendField(ut.Msg.PIN_NUMBERING).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_LEFT,"0"],[ut.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MIXBOT_MOTOR_EXTERN_TOOLTIP)}},Yu={init:function(){this.setColour($a),this.appendDummyInput().appendField(ut.Msg.ME_GO_MOTOR_EXTERN+ut.Msg.MIXLY_MOTOR).appendField(ut.Msg.PIN_NUMBERING).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_LEFT,"0"],[ut.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_GET+ut.Msg.MIXLY_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},xu={init:function(){this.setColour($a),this.appendDummyInput().appendField(ut.Msg.ME_GO_MOTOR_EXTERN+ut.Msg.MIXLY_TRAFFIC_LIGHT).appendField(ut.Msg.PIN_NUMBERING).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_LEFT,"0"],[ut.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.LISTS_SET_INDEX_SET).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_Turn_off_display,"0"],[ut.Msg.MIXLY_TRAFFIC_LIGHT_RED_ON,"1"],[ut.Msg.MIXLY_TRAFFIC_LIGHT_RED_BLINK,"2"],[ut.Msg.MIXLY_TRAFFIC_LIGHT_YELLOW_ON,"3"],[ut.Msg.MIXLY_TRAFFIC_LIGHT_YELLOW_BLINK,"4"],[ut.Msg.MIXLY_TRAFFIC_LIGHT_GREEN_ON,"5"],[ut.Msg.MIXLY_TRAFFIC_LIGHT_GREEN_BLINK,"6"]]),"light"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},bu={init:function(){this.setColour($a),this.appendDummyInput().appendField(ut.Msg.ME_GO_MOTOR_EXTERN).appendField(new ut.FieldDropdown([[ut.Msg.COLOUR_RGB_WHITE,"W"],[ut.Msg.COLOUR_RGB_RED,"R"],[ut.Msg.COLOUR_RGB_YELLOW,"Y"],[ut.Msg.COLOUR_RGB_GREEN,"G"],[ut.Msg.COLOUR_RGB_BLUE,"B"]]),"color").appendField("LED").appendField(ut.Msg.PIN_NUMBERING).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_LEFT,"0"],[ut.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendValueInput("value").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.BRIGHTNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Xu={init:function(){this.setColour($a),this.appendDummyInput().appendField(ut.Msg.ME_GO_MOTOR_EXTERN).appendField(new ut.FieldDropdown([[ut.Msg.COLOUR_RGB_WHITE,"W"],[ut.Msg.COLOUR_RGB_RED,"R"],[ut.Msg.COLOUR_RGB_YELLOW,"Y"],[ut.Msg.COLOUR_RGB_GREEN,"G"],[ut.Msg.COLOUR_RGB_BLUE,"B"]]),"color").appendField("LED").appendField(ut.Msg.PIN_NUMBERING).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_LEFT,"0"],[ut.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET+ut.Msg.BRIGHTNESS),this.setOutput(!0,Number),this.setInputsInline(!0)}},yu={init:function(){this.setColour($a),this.appendDummyInput().appendField(ut.Msg.ME_GO_MOTOR_EXTERN+ut.Msg.MIXLY_SERVO_MOTOR).appendField(ut.Msg.PIN_NUMBERING).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_LEFT,"0"],[ut.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"[0]"],[ut.Msg.MIXLY_SPEED,"[1]"],[ut.Msg.MATH_SINGLE_OP_ABSOLUTE+ut.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"[2]"],[ut.Msg.MIXLY_RELATIVE+ut.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"[3]"],[ut.Msg.MIXLY_MIXBOT_SERVO_BLOCK_OR_NOT,"[4]"],[ut.Msg.MIXLY_MIXBOT_SERVO_FINISH_OR_NOT,"[5]"],[ut.Msg.MIXLY_ALL,""]]),"status"),this.setOutput(!0,Number),this.setInputsInline(!0)}},Vu={init:function(){this.setColour($a),this.appendDummyInput().appendField(ut.Msg.ME_GO_MOTOR_EXTERN+ut.Msg.MIXLY_SERVO_MOTOR).appendField(ut.Msg.PIN_NUMBERING).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_LEFT,"0"],[ut.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MIXBOT_SERVO_SET_STOP_MODE).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_KEEP,"0"],[ut.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_COAST,"1"],[ut.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_BRAKE,"2"]]),"status"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Bu={init:function(){this.setColour($a),this.appendDummyInput().appendField(ut.Msg.ME_GO_MOTOR_EXTERN+ut.Msg.MIXLY_SERVO_MOTOR).appendField(ut.Msg.PIN_NUMBERING).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_LEFT,"0"],[ut.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(ut.Msg.MIXLY_STOP),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Gu={init:function(){this.setColour($a),this.appendDummyInput().appendField(ut.Msg.ME_GO_MOTOR_EXTERN+ut.Msg.MIXLY_SERVO_MOTOR).appendField(ut.Msg.MATH_SINGLE_OP_ABSOLUTE+ut.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+ut.Msg.MSG.run).appendField(ut.Msg.PIN_NUMBERING).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_LEFT,"0"],[ut.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MODE).setAlign(ut.inputs.Align.RIGHT).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_SPEED+ut.Msg.MIXLY_MODE,"0"],[ut.Msg.MIXLY_MICROBIT_JS_BLE_POWER+ut.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(ut.inputs.Align.RIGHT).appendField("%"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MIXBOT_SERVO_TURN_DIRECTION).setAlign(ut.inputs.Align.RIGHT).appendField(new ut.FieldDropdown([[ut.Msg.CLOCKWISE,"0"],[ut.Msg.MIXLY_MIXBOT_SERVO_NEAREST_PATH,"1"],[ut.Msg.ANTI_CLOCKWISE,"2"]]),"direction"),this.appendValueInput("angle").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_DISPLAY_MATRIX_ROTATE+ut.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MIXBOT_SERVO_ABSOLUTE_ANGLE_TOOLTIP)}},Uu={init:function(){this.setColour($a),this.appendDummyInput().appendField(ut.Msg.ME_GO_MOTOR_EXTERN+ut.Msg.MIXLY_SERVO_MOTOR).appendField(ut.Msg.MIXLY_RELATIVE+ut.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+ut.Msg.MSG.run).appendField(ut.Msg.PIN_NUMBERING).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_LEFT,"0"],[ut.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MIXBOT_SERVO_RELATIVE_ORIGIN_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},wu={init:function(){this.setColour($a),this.appendDummyInput().appendField(ut.Msg.ME_GO_MOTOR_EXTERN+ut.Msg.MIXLY_SERVO_MOTOR).appendField(ut.Msg.MIXLY_RELATIVE+ut.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+ut.Msg.MSG.run).appendField("("+ut.Msg.MIXLY_MIXBOT_SERVO_LIKE_ENCODING_MOTOR+")").appendField(ut.Msg.PIN_NUMBERING).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_LEFT,"0"],[ut.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MODE).setAlign(ut.inputs.Align.RIGHT).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_SPEED+ut.Msg.MIXLY_MODE,"0"],[ut.Msg.MIXLY_MICROBIT_JS_BLE_POWER+ut.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(ut.inputs.Align.RIGHT).appendField("%"),this.appendValueInput("angle").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_DISPLAY_MATRIX_ROTATE+ut.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MIXBOT_SERVO_RELATIVE_ANGLE_TOOLTIP)}},ku={init:function(){this.setColour($a),this.appendDummyInput().appendField(ut.Msg.ME_GO_MOTOR_EXTERN+ut.Msg.MIXLY_SERVO_MOTOR).appendField(ut.Msg.MIXLY_RELATIVE+ut.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+ut.Msg.MSG.run).appendField("("+ut.Msg.MIXLY_MIXBOT_SERVO_LIKE_ORDINARY_MOTOR+")").appendField(ut.Msg.PIN_NUMBERING).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_LEFT,"0"],[ut.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MODE).setAlign(ut.inputs.Align.RIGHT).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_SPEED+ut.Msg.MIXLY_MODE,"0"],[ut.Msg.MIXLY_MICROBIT_JS_BLE_POWER+ut.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(ut.inputs.Align.RIGHT).appendField("%"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MIXBOT_SERVO_TURN_DIRECTION).setAlign(ut.inputs.Align.RIGHT).appendField(new ut.FieldDropdown([[ut.Msg.CLOCKWISE,"0"],[ut.Msg.ANTI_CLOCKWISE,"2"]]),"direction"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Hu={init:function(){this.setColour($a),this.appendDummyInput().appendField(ut.Msg.MIXBOT).appendField(ut.Msg.ME_GO_MOTOR_EXTERN).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MOTOR,"ext_motor"],[ut.Msg.MIXLY_TRAFFIC_LIGHT,"ext_traffic"],[ut.Msg.COLOUR_RGB_WHITE+"LED","W_LED"],[ut.Msg.COLOUR_RGB_RED+"LED","R_LED"],[ut.Msg.COLOUR_RGB_YELLOW+"LED","Y_LED"],[ut.Msg.COLOUR_RGB_GREEN+"LED","G_LED"],[ut.Msg.COLOUR_RGB_BLUE+"LED","B_LED"],[ut.Msg.MIXLY_SERVO_MOTOR,"ext_servo"]]),"name"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MIXBOT_EXTERN_GET_ADDR),this.setOutput(!0),this.setInputsInline(!0)}},Wu={init:function(){this.setColour($a),this.appendDummyInput().appendField(ut.Msg.MIXBOT).appendField(ut.Msg.ME_GO_MOTOR_EXTERN).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MOTOR,"ext_motor"],[ut.Msg.MIXLY_TRAFFIC_LIGHT,"ext_traffic"],[ut.Msg.COLOUR_RGB_WHITE+"LED","W_LED"],[ut.Msg.COLOUR_RGB_RED+"LED","R_LED"],[ut.Msg.COLOUR_RGB_YELLOW+"LED","Y_LED"],[ut.Msg.COLOUR_RGB_GREEN+"LED","G_LED"],[ut.Msg.COLOUR_RGB_BLUE+"LED","B_LED"],[ut.Msg.MIXLY_SERVO_MOTOR,"ext_servo"]]),"name"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MIXBOT_EXTERN_SET_ADDR),this.appendValueInput("old").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE),this.appendValueInput("new").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_UPDATE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Ku="#6C9858",Ju={init:function(){this.setColour(Ku),this.appendDummyInput("").appendField(new ut.FieldDropdown([["L1","1"],["L2","2"]]),"op"),this.setOutput(!0)}},Qu={init:function(){this.setColour(Ku),this.appendDummyInput("").appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_ESP32_ON,"1"],[ut.Msg.MIXLY_ESP32_OFF,"0"],[ut.Msg.MIXLY_ESP32_TOGGLE,"-1"]]),"flag"),this.setOutput(!0),this.setTooltip(ut.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW)}},zu={init:function(){this.setColour(Ku),this.appendDummyInput().appendField(ut.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(ut.Msg.MIXLY_BUILDIN_LED),this.appendValueInput("bright").appendField(ut.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_LED_SETONOFF)}},qu={init:function(){this.setColour(Ku),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("led").appendField(ut.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput().appendField(ut.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_LED_GETONOFF)}},ju={init:function(){this.setColour(Ku),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("led").appendField(ut.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput().appendField(ut.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_LED_GETONOFF)}},Zu={init:function(){this.setColour(Ku),this.appendDummyInput().appendField(ut.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(ut.Msg.MIXLY_BUILDIN_LED),this.appendValueInput("bright").appendField(ut.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_SETTING+ut.Msg.MIXLY_BUILDIN_LED+ut.Msg.MIXLY_BRIGHTNESS+"(0-100%)")}},$u={init:function(){this.setColour(Ku),this.appendDummyInput().appendField(ut.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(ut.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput("").appendField(ut.Msg.MIXLY_LCD_SETCOLOR).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_LIGHT_OFF,"0"],[ut.Msg.MIXLY_LIGHT_RED,"1"],[ut.Msg.MIXLY_LIGHT_GREEN,"2"],[ut.Msg.MIXLY_LIGHT_BLUE,"3"],[ut.Msg.MIXLY_LIGHT_YELLOW,"4"],[ut.Msg.MIXLY_LIGHT_CYAN,"5"],[ut.Msg.MIXLY_LIGHT_PURPLE,"6"],[ut.Msg.MIXLY_LIGHT_WHITE,"7"]]),"colorvalue"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip()}},tr={init:function(){this.setColour(Ku),this.appendDummyInput().appendField(ut.Msg.MIXLY_SETTING).appendField(ut.Msg.MIXLY_BUILDIN_LED).appendField(new ut.FieldDropdown([[ut.Msg.COLOUR_RGB_RED,"r"],[ut.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendValueInput("bright").appendField(ut.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_LED_SETONOFF)}},er={init:function(){this.setColour(Ku),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(ut.Msg.MIXLY_BUILDIN_LED).appendField(new ut.FieldDropdown([[ut.Msg.COLOUR_RGB_RED,"r"],[ut.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendDummyInput().appendField(ut.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_LED_GETONOFF)}},ir={init:function(){this.setColour(Ku),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(ut.Msg.MIXLY_BUILDIN_LED).appendField(new ut.FieldDropdown([[ut.Msg.COLOUR_RGB_RED,"r"],[ut.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendDummyInput().appendField(ut.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_LED_GETONOFF)}},nr={init:function(){this.setColour(Ku),this.appendDummyInput().appendField(ut.Msg.MIXLY_SETTING).appendField(ut.Msg.MIXLY_BUILDIN_LED).appendField(new ut.FieldDropdown([[ut.Msg.COLOUR_RGB_RED,"r"],[ut.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendValueInput("bright").appendField(ut.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_SETTING+ut.Msg.MIXLY_BUILDIN_LED+ut.Msg.MIXLY_BRIGHTNESS+"(0-10)")}},sr={init:function(){this.setColour(Ku),this.appendDummyInput("").appendField(new ut.FieldDropdown([["L1","20"],["L2","21"]]),"op"),this.setOutput(!0)}},or={init:function(){this.setColour(Ku),this.appendDummyInput("").appendField(ut.Msg.MIXLY_RGB),this.appendValueInput("_LED_").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);switch(rt.Boards.getSelectedBoardKey()){case"micropython:esp32c3:mixgo_cc":case"micropython:esp32s2:mixgo_ce":this.setTooltip(ut.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOCC);break;case"micropython:esp32c3:mixgo_me":default:this.setTooltip(ut.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOME);break;case"micropython:esp32:mPython":this.setTooltip(ut.Msg.MIXLY_RGB_NUM_R_G_B_MPYTHON)}}},_r={init:function(){this.setColour(Ku),this.appendDummyInput("").appendField(ut.Msg.MIXLY_RGB),this.appendValueInput("RVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(ut.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},pr={init:function(){this.setColour(Ku),this.appendDummyInput("").appendField(ut.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(ut.Msg.MIXLY_RAINBOW),this.appendValueInput("time").setCheck(Number).appendField(ut.Msg.MIXLY_DURATION).appendField(ut.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},ar={init:function(){this.setColour(Ku),this.appendDummyInput("").appendField(ut.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(ut.Msg.MIXLY_CHASE),this.appendValueInput("RVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_B),this.appendValueInput("time").setCheck(Number).appendField(ut.Msg.PYTHON_RANGE_STEP).appendField(ut.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},ur={init:function(){this.setColour(Ku),this.appendDummyInput("").appendField(ut.Msg.MIXLY_RGB),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_RGB_WRITE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(ut.Msg.MIXLY_ESP32_MUSIC_WRI)}},rr={init:function(){this.setColour(Ku),this.appendDummyInput("").appendField(ut.Msg.MIXLY_RGB),this.appendValueInput("_LED_").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);switch(rt.Boards.getSelectedBoardKey()){case"micropython:esp32c3:mixgocc":this.setTooltip(ut.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOCC);break;case"micropython:esp32c3:mixgome":default:this.setTooltip(ut.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOME);break;case"micropython:esp32:mPython":this.setTooltip(ut.Msg.MIXLY_RGB_NUM_R_G_B_MPYTHON)}}},lr={init:function(){this.setColour(Ku),this.appendDummyInput("").appendField(ut.Msg.MIXLY_RGB),this.appendValueInput("RVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(ut.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},dr={init:function(){this.setColour(Ku),this.appendDummyInput("").appendField(ut.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(ut.Msg.MIXLY_CHASE),this.appendValueInput("RVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_B),this.appendValueInput("time").setCheck(Number).appendField(ut.Msg.PYTHON_RANGE_STEP).appendField(ut.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},Ir={init:function(){this.setColour(Ku),this.appendValueInput("TICKS").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_JS_SET_TEMPO).appendField(ut.Msg.MICROBIT_ACTUATOR_ticks),this.appendValueInput("BPM").setCheck(Number).appendField(ut.Msg.MIXLY_SPEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_MUSIC_SET_TEMPO)}},Tr={init:function(){this.setColour(Ku),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_Get_current_tempo),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_MUSIC_GET_TEMPO)}},hr={init:function(){this.setColour(Ku),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_Reset_music),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_MUSIC_RESET)}},Mr={init:function(){this.setColour(Ku),this.appendDummyInput().appendField(ut.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(ut.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},mr={init:function(){this.setColour(Ku),this.appendDummyInput().appendField(ut.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(ut.Msg.MIXLY_FREQUENCY),this.appendValueInput("time").setCheck(Number).appendField(ut.Msg.MIXLY_DURATION),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE2)}},Or={init:function(){this.setColour(Ku),this.appendDummyInput().appendField(ut.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Er={init:function(){this.setColour(Ku),this.appendValueInput("LIST").appendField(ut.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS)}},Rr={init:function(){this.setColour(Ku),this.appendDummyInput().appendField(ut.Msg.MOTOR_DC).appendField(new ut.FieldDropdown([["1","1"],["2","2"],["3","3"]]),"wheel"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_Direction).appendField(new ut.FieldDropdown([[ut.Msg.CLOCKWISE,"CW"],[ut.Msg.ANTI_CLOCKWISE,"CCW"],[ut.Msg.MOTOR_P,"P"],[ut.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},cr={init:function(){this.setColour(Ku),this.appendDummyInput().appendField("MixGo Car").appendField(new ut.FieldDropdown([[ut.Msg.blockpy_forward,"F"],[ut.Msg.blockpy_backward,"B"],[ut.Msg.blockpy_left,"L"],[ut.Msg.blockpy_right,"R"]]),"VAR"),this.appendValueInput("speed").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},gr={init:function(){this.setColour(Ku),this.appendDummyInput("").appendField("MixGo Car").appendField(new ut.FieldDropdown([[ut.Msg.MOTOR_P,"P"],[ut.Msg.MOTOR_N,"N"]]),"VAR"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},Cr={init:function(){this.setColour(Ku),this.appendDummyInput().appendField(ut.Msg.MOTOR_DC).appendField(new ut.FieldDropdown([[ut.Msg.MIXLYCAR_WHEEL_LEFT,"L"],[ut.Msg.MIXLYCAR_WHEEL_RIGHT,"R"]]),"wheel"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_Direction).appendField(new ut.FieldDropdown([[ut.Msg.CLOCKWISE,"CW"],[ut.Msg.ANTI_CLOCKWISE,"CCW"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Sr={init:function(){this.setColour(Ku),this.appendDummyInput().appendField(ut.Msg.MOTOR_DC).appendField(new ut.FieldDropdown([[ut.Msg.MIXLYCAR_WHEEL_LEFT,"L"],[ut.Msg.MIXLYCAR_WHEEL_RIGHT,"R"]]),"wheel"),this.appendDummyInput().appendField(ut.Msg.MIXLY_STOP).appendField(new ut.FieldDropdown([[ut.Msg.MOTOR_P,"P"],[ut.Msg.MOTOR_N,"N"]]),"direction"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Ar={init:function(){this.setColour(Ku),this.appendDummyInput().appendField(ut.Msg.MIXLY_MIXBOT_MOTOR_STATUS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MIXBOT_MOTOR_STATUS_TOOLTIP)}},Lr={init:function(){this.setColour(Ku),this.appendDummyInput().appendField(ut.Msg.MIXBOT).appendField(new ut.FieldDropdown([[ut.Msg.blockpy_forward,"F"],[ut.Msg.blockpy_backward,"B"],[ut.Msg.blockpy_left,"L"],[ut.Msg.blockpy_right,"R"]]),"VAR"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"PWR"],[ut.Msg.MIXLY_SPEED,"SPEED"],[ut.Msg.MIXLY_MIXBOT_MOTOR_TURNS,"TURNS"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MIXBOT_MOVE_TOOLTIP)}},Nr={init:function(){this.setColour(Ku),this.appendDummyInput().appendField(ut.Msg.MIXBOT).appendField(new ut.FieldDropdown([[ut.Msg.MOTOR_P,"P"],[ut.Msg.MOTOR_N,"N"]]),"VAR"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Dr={init:function(){this.setColour(Ku),this.appendDummyInput().appendField(ut.Msg.MIXBOT).appendField(ut.Msg.MIXLY_MOTOR).appendField(new ut.FieldDropdown([[ut.Msg.TEXT_TRIM_LEFT,"1"],[ut.Msg.TEXT_TRIM_RIGHT,"2"],[ut.Msg.TEXT_TRIM_BOTH,"0"]]),"wheel"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"PWR"],[ut.Msg.MIXLY_SPEED,"SPEED"],[ut.Msg.MIXLY_MIXBOT_MOTOR_TURNS,"TURNS"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MIXBOT_MOVE_TOOLTIP)}},fr={init:function(){this.setColour(Ku),this.appendDummyInput().appendField(ut.Msg.MIXLY_MIXBOT_BUZZER),this.appendDummyInput().appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_ON,"0"],[ut.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_OFF,"1"]]),"on_off"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Fr={init:function(){this.setColour(Ku),this.appendDummyInput().appendField(ut.Msg.BITBOT).appendField(new ut.FieldDropdown([[ut.Msg.blockpy_forward,"F"],[ut.Msg.blockpy_backward,"B"],[ut.Msg.blockpy_left,"L"],[ut.Msg.blockpy_right,"R"]]),"VAR"),this.appendValueInput("speed").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Pr={init:function(){this.setColour(Ku),this.appendDummyInput().appendField(ut.Msg.BITBOT).appendField(new ut.FieldDropdown([[ut.Msg.MOTOR_P,"P"],[ut.Msg.MOTOR_N,"N"]]),"VAR"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},vr={init:function(){this.setColour(Ku),this.appendDummyInput().appendField(ut.Msg.BITBOT).appendField(ut.Msg.MIXLY_MOTOR).appendField(new ut.FieldDropdown([[ut.Msg.TEXT_TRIM_LEFT,"0"],[ut.Msg.TEXT_TRIM_RIGHT,"1"]]),"wheel"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_Direction).appendField(new ut.FieldDropdown([[ut.Msg.CLOCKWISE,"CW"],[ut.Msg.ANTI_CLOCKWISE,"CCW"],[ut.Msg.MOTOR_P,"P"],[ut.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Yr={init:function(){this.setColour(Ku),this.appendValueInput("bright").appendField(ut.Msg.MIXLY_MIXBOT_SOUND_SET_LOUDNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_LED_SETONOFF)}},xr={init:function(){this.setColour(Ku),this.appendDummyInput().appendField(ut.Msg.MIXLY_MIXBOT_SOUND_LOUDNESS+"(%)"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_LED_GETONOFF)}},br={init:function(){this.setColour(Ku),this.appendValueInput("bright").appendField(ut.Msg.MIXLY_SETTING+ut.Msg.MIXLY_MIXBOT_BUZZER+ut.Msg.MIXLY_MP3_VOL),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_LED_SETONOFF)}},Xr={init:function(){this.setColour(Ku),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET+ut.Msg.MIXLY_MIXBOT_BUZZER+ut.Msg.MIXLY_MP3_VOL+"(%)"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_LED_GETONOFF)}},yr={init:function(){this.setColour(Ku),this.appendValueInput("PATH").appendField(ut.Msg.MIXLY_RECORD_AUDIO).appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.appendValueInput("TIME").setCheck(Number).appendField(ut.Msg.MIXLY_GET_PRESSES_TIME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Vr={init:function(){this.setColour(Ku),this.appendValueInput("PATH").appendField(ut.Msg.MIXLY_PLAY_AUDIO).appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Br={init:function(){this.setColour(Ku),this.appendValueInput("PATH").appendField(ut.Msg.MIXLY_PLAY_ONLINE_AUDIO).appendField("URL"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Gr={init:function(){this.setColour(Ku),this.appendDummyInput().appendField(ut.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(ut.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},Ur={init:function(){this.setColour(Ku),this.appendDummyInput().appendField(ut.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},wr={init:function(){this.setColour(Ku),this.appendDummyInput().appendField(ut.Msg.LISTS_SET_INDEX_SET+ut.Msg.ME_GO_MOTOR_EXTERN).appendField(ut.Msg.PIN_NUMBERING).appendField(new ut.FieldDropdown([["1","1"],["2","2"]]),"index"),this.appendValueInput("duty").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.blynk_IOT_IR_POWER+ut.Msg.MIXLY_PINMODEOUT),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip()}},kr={init:function(){this.setColour(Ku),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET+ut.Msg.ME_GO_MOTOR_EXTERN).appendField(ut.Msg.PIN_NUMBERING).appendField(new ut.FieldDropdown([["1","1"],["2","2"]]),"index"),this.appendDummyInput().setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.blynk_IOT_IR_POWER+ut.Msg.MIXLY_PINMODEOUT+ut.Msg.MIXLY_DUTY_RATIO),this.setOutput(!0,Number),this.setInputsInline(!0)}},Hr={init:function(){this.setColour(Ku),this.appendDummyInput().appendField(ut.Msg.LISTS_SET_INDEX_SET+ut.Msg.ME_GO_MOTOR_EXTERN).appendField(ut.Msg.MIXLY_ALL+ut.Msg.PIN_NUMBERING),this.appendValueInput("duty").setCheck(Number).setAlign(ut.ALIGN_RIGHT).appendField(ut.Msg.blynk_IOT_IR_POWER+ut.Msg.MIXLY_PINMODEOUT+ut.Msg.MIXLY_FREQUENCY),this.appendDummyInput().appendField("Hz"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MIXBOT_MOTOR_EXTERN_TOOLTIP)}},Wr="#90A244",Kr={init:function(){this.setColour(Wr),this.appendDummyInput("").appendField(ut.Msg.CONTROLS_FOR_INPUT_WITH+"uart").appendField(new ut.FieldDropdown([["uart1","uart1"],["uart2","uart2"]]),"key"),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_SETUP+ut.Msg.LISTS_SET_INDEX_INPUT_TO+"MixGo AI"+ut.Msg.MSG.catSensor),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Jr={init:function(){this.setColour(Wr),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_QR_CODE+ut.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_ALL_CODE_ANALYSIS),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET).appendField(new ut.FieldDropdown([[ut.Msg.OLED_STRING,"info1"],[ut.Msg.MIXLY_POSITION_XY+"-xywh","rect"],["x"+ut.Msg.MIXLY_POSITION_XY,"rect[0]"],["y"+ut.Msg.MIXLY_POSITION_XY,"rect[1]"],["w"+ut.Msg.MIXLY_POSITION_XY,"rect[2]"],["h"+ut.Msg.MIXLY_POSITION_XY,"rect[3]"],[ut.Msg.MICROPYTHON_HUSKYLENS_X_CENTERED+ut.Msg.MIXLY_POSITION_XY,"xc"],[ut.Msg.MICROPYTHON_HUSKYLENS_Y_CENTERED+ut.Msg.MIXLY_POSITION_XY,"yc"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_AI_SENSOR_QR_CODE_TOOLTIP)}},Qr={init:function(){this.setColour(Wr),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_QR_CODE+ut.Msg.MIXPY_OBJECT,"qrcode"],[ut.Msg.MIXLY_BAR_CODE+ut.Msg.MIXPY_OBJECT,"barcode"],[ut.Msg.MIXLY_TAG+ut.Msg.MIXPY_OBJECT,"apriltag"]]),"TYPE"),this.appendDummyInput().appendField(ut.Msg.MIXLY_ANALYSIS_RESULT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip()}},zr={init:function(){this.setColour(Wr),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ut.Msg.MIXLY_QR_CODE_RECOGNTITION),this.appendDummyInput().setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.PROCEDURES_DEFRETURN_RETURN+"[qrcode]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_AI_SENSOR_QR_CODE_RECOGNTITION_TOOLTIP)}},qr={init:function(){this.setColour(Wr),this.appendValueInput("SUB"),this.appendValueInput("RX").appendField(ut.Msg.MIXLY_SETTING+ut.Msg.MIXLY_ETHERNET_CLINET_PORT).appendField("RX#").setCheck(Number).setAlign(ut.inputs.Align.RIGHT),this.appendValueInput("TX").appendField("TX#").setCheck(Number).setAlign(ut.inputs.Align.RIGHT),this.appendDummyInput().appendField(ut.Msg.SOFT_RESET+ut.Msg.MIXLY_ESP32_RGB_WRITE).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[ut.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"mode"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_AI_SENSOR_CONFIG_TOOLTIP)}},jr={init:function(){this.setColour(Wr),this.appendValueInput("SUB"),this.appendValueInput("led1").appendField(ut.Msg.MIXLY_SETTING).appendField("RGB1").setCheck(Number).setAlign(ut.inputs.Align.RIGHT),this.appendValueInput("led2").appendField("RGB2").setCheck(Number).setAlign(ut.inputs.Align.RIGHT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_AI_SENSOR_CONFIG_TOOLTIP)}},Zr={init:function(){this.setColour(Wr),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_BAR_CODE+ut.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_ALL_CODE_ANALYSIS),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET).appendField(new ut.FieldDropdown([[ut.Msg.OLED_STRING,"info1"],[ut.Msg.MIXLY_POSITION_XY+"-xywh","rect"],["x"+ut.Msg.MIXLY_POSITION_XY,"rect[0]"],["y"+ut.Msg.MIXLY_POSITION_XY,"rect[1]"],["w"+ut.Msg.MIXLY_POSITION_XY,"rect[2]"],["h"+ut.Msg.MIXLY_POSITION_XY,"rect[3]"],[ut.Msg.MICROPYTHON_HUSKYLENS_X_CENTERED+ut.Msg.MIXLY_POSITION_XY,"xc"],[ut.Msg.MICROPYTHON_HUSKYLENS_Y_CENTERED+ut.Msg.MIXLY_POSITION_XY,"yc"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_AI_SENSOR_BAR_CODE_TOOLTIP)}},$r={init:function(){this.setColour(Wr),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ut.Msg.MIXLY_BAR_CODE_RECOGNTITION),this.appendDummyInput().setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.PROCEDURES_DEFRETURN_RETURN+"[barcode]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_AI_SENSOR_BAR_CODE_RECOGNTITION_TOOLTIP)}},tl={init:function(){this.setColour(Wr),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_TAG+ut.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_ALL_CODE_ANALYSIS),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET).appendField(new ut.FieldDropdown([[ut.Msg.OLED_STRING,"info1"],[ut.Msg.blockpy_turtle_rotate+ut.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"info2"],[ut.Msg.MIXLY_POSITION_XY+"-xywh","rect"],["x"+ut.Msg.MIXLY_POSITION_XY,"rect[0]"],["y"+ut.Msg.MIXLY_POSITION_XY,"rect[1]"],["w"+ut.Msg.MIXLY_POSITION_XY,"rect[2]"],["h"+ut.Msg.MIXLY_POSITION_XY,"rect[3]"],[ut.Msg.MICROPYTHON_HUSKYLENS_X_CENTERED+ut.Msg.MIXLY_POSITION_XY,"xc"],[ut.Msg.MICROPYTHON_HUSKYLENS_Y_CENTERED+ut.Msg.MIXLY_POSITION_XY,"yc"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_AI_SENSOR_TAG_TOOLTIP)}},el={init:function(){this.setColour(Wr),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ut.Msg.MIXLY_TAG_RECOGNTITION),this.appendDummyInput().setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.PROCEDURES_DEFRETURN_RETURN+"[tag]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_AI_SENSOR_TAG_RECOGNTITION_TOOLTIP)}},il={init:function(){this.setColour(Wr),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_LINE+ut.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_ALL_CODE_ANALYSIS),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_LINE_ANGLE,"info1"],[ut.Msg.MIXLY_POSITION_XY+"-x1x2y1y2","rect"],["x1"+ut.Msg.MIXLY_POSITION_XY,"rect[0]"],["x2"+ut.Msg.MIXLY_POSITION_XY,"rect[1]"],["y1"+ut.Msg.MIXLY_POSITION_XY,"rect[2]"],["y2"+ut.Msg.MIXLY_POSITION_XY,"rect[3]"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_AI_SENSOR_LINE_TOOLTIP)}},nl={init:function(){this.setColour(Wr),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ut.Msg.MIXLY_LINE_RECOGNTITION),this.appendValueInput("VAR1").appendField(ut.Msg.MIXLY_ESP32_THRESHOLD).setCheck(Number).setAlign(ut.inputs.Align.RIGHT),this.appendValueInput("VAR2").appendField(ut.Msg.MIXLY_LINE_RECOGNTITION_ANGLE).setCheck(Number).setAlign(ut.inputs.Align.RIGHT),this.appendValueInput("VAR3").appendField(ut.Msg.MIXLY_LINE_RECOGNTITION_SLOPE).setCheck(Number).setAlign(ut.inputs.Align.RIGHT),this.appendDummyInput().setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.PROCEDURES_DEFRETURN_RETURN+"[line]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_AI_SENSOR_LINE_RECOGNTITION_TOOLTIP)}},sl={init:function(){this.setColour(Wr),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_CIRCLE+ut.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_ALL_CODE_ANALYSIS),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_CIRCLE_AREA,"info1"],[ut.Msg.MIXLY_POSITION_XY+"-xywh","rect"],["x"+ut.Msg.MIXLY_POSITION_XY,"rect[0]"],["y"+ut.Msg.MIXLY_POSITION_XY,"rect[1]"],["w"+ut.Msg.MIXLY_POSITION_XY,"rect[2]"],["h"+ut.Msg.MIXLY_POSITION_XY,"rect[3]"],[ut.Msg.MICROPYTHON_HUSKYLENS_X_CENTERED+ut.Msg.MIXLY_POSITION_XY,"xc"],[ut.Msg.MICROPYTHON_HUSKYLENS_Y_CENTERED+ut.Msg.MIXLY_POSITION_XY,"yc"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_AI_SENSOR_CIRCLE_TOOLTIP)}},ol={init:function(){this.setColour(Wr),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ut.Msg.MIXLY_CIRCLE_RECOGNTITION),this.appendValueInput("VAR1").appendField(ut.Msg.MIXLY_ESP32_THRESHOLD).setCheck(Number).setAlign(ut.inputs.Align.RIGHT),this.appendValueInput("VAR2").appendField(ut.Msg.MIXLY_CIRCLE_RECOGNTITION_MIN).setCheck(Number).setAlign(ut.inputs.Align.RIGHT),this.appendValueInput("VAR3").appendField(ut.Msg.MIXLY_CIRCLE_RECOGNTITION_MAX).setCheck(Number).setAlign(ut.inputs.Align.RIGHT),this.appendDummyInput().setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.PROCEDURES_DEFRETURN_RETURN+"[circle]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_AI_SENSOR_CIRCLE_RECOGNTITION_TOOLTIP)}},_l={init:function(){this.setColour(Wr),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_RECT+ut.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_ALL_CODE_ANALYSIS),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_CIRCLE_AREA,"info1"],[ut.Msg.MIXLY_POSITION_XY+"-xywh","rect"],["x"+ut.Msg.MIXLY_POSITION_XY,"rect[0]"],["y"+ut.Msg.MIXLY_POSITION_XY,"rect[1]"],["w"+ut.Msg.MIXLY_POSITION_XY,"rect[2]"],["h"+ut.Msg.MIXLY_POSITION_XY,"rect[3]"],[ut.Msg.MICROPYTHON_HUSKYLENS_X_CENTERED+ut.Msg.MIXLY_POSITION_XY,"xc"],[ut.Msg.MICROPYTHON_HUSKYLENS_Y_CENTERED+ut.Msg.MIXLY_POSITION_XY,"yc"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_AI_SENSOR_RECT_TOOLTIP)}},pl={init:function(){this.setColour(Wr),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ut.Msg.MIXLY_RECT_RECOGNTITION),this.appendValueInput("VAR1").appendField(ut.Msg.MIXLY_ESP32_THRESHOLD).setCheck(Number).setAlign(ut.inputs.Align.RIGHT),this.appendDummyInput().setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.PROCEDURES_DEFRETURN_RETURN+"[rect]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_AI_SENSOR_COLOR_RECOGNTITION_TOOLTIP)}},al={init:function(){this.setColour(Wr),this.appendValueInput("VAR").appendField(ut.Msg.HTML_COLOUR+ut.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_COLOR_ANALYSIS),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET).appendField(new ut.FieldDropdown([["RGB"+ut.Msg.HTML_COLOUR,"[0]"],["LAB"+ut.Msg.MIXLY_COLOR_LAB,"[1]"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_AI_SENSOR_COLOR_TOOLTIP)}},ul={init:function(){this.setColour(Wr),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ut.Msg.MIXLY_COLOR_RECOGNTITION),this.appendDummyInput().setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.PROCEDURES_DEFRETURN_RETURN+"color"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_AI_SENSOR_COLOR_RECOGNTITION_TOOLTIP)}},rl={init:function(){this.setColour(Wr),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_COLOR_CHASE+ut.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_COLOR_CHASE_ANALYSIS),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_CIRCLE_AREA,"info1"],[ut.Msg.MIXLY_POSITION_XY+"-xywh","rect"],["x"+ut.Msg.MIXLY_POSITION_XY,"rect[0]"],["y"+ut.Msg.MIXLY_POSITION_XY,"rect[1]"],["w"+ut.Msg.MIXLY_POSITION_XY,"rect[2]"],["h"+ut.Msg.MIXLY_POSITION_XY,"rect[3]"],[ut.Msg.MICROPYTHON_HUSKYLENS_X_CENTERED+ut.Msg.MIXLY_POSITION_XY,"xc"],[ut.Msg.MICROPYTHON_HUSKYLENS_Y_CENTERED+ut.Msg.MIXLY_POSITION_XY,"yc"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_AI_SENSOR_CIRCLE_TOOLTIP)}},ll={init:function(){this.setColour(Wr),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ut.Msg.MIXLY_COLOR_CHASE),this.appendValueInput("VAR1").appendField("LAB"+ut.Msg.MIXLY_COLOR_LAB).setAlign(ut.inputs.Align.RIGHT),this.appendValueInput("VAR2").appendField(ut.Msg.MIXLY_ESP32_THRESHOLD).setCheck(Number).setAlign(ut.inputs.Align.RIGHT),this.appendValueInput("VAR3").appendField(ut.Msg.MIXLY_COLOR_CHASE_MERGE).setCheck(Number).setAlign(ut.inputs.Align.RIGHT),this.appendDummyInput().setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.PROCEDURES_DEFRETURN_RETURN+"[colors]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_AI_SENSOR_CIRCLE_RECOGNTITION_TOOLTIP)}},dl={init:function(){this.setColour(Wr),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ut.Msg.MIXLY_LOCAL_TRAIN),this.appendValueInput("VAR1").appendField(ut.Msg.MIXLY_OBJECT_LIST).setAlign(ut.inputs.Align.RIGHT),this.appendValueInput("VAR2").appendField(ut.Msg.MICROPYTHON_HUSKYLENS_SAVE_AS+ut.Msg.MIXLY_MODEL_NAME).setAlign(ut.inputs.Align.RIGHT),this.appendValueInput("VAR3").appendField(ut.Msg.MIXLY_TRAIN_TIME).setAlign(ut.inputs.Align.RIGHT),this.appendValueInput("VAR4").appendField(ut.Msg.MIXLY_AipNlp_Topic_Title).setAlign(ut.inputs.Align.RIGHT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_AI_SENSOR_LOCAL_TRAIN_TOOLTIP)}},Il={init:function(){this.setColour(Wr),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ut.Msg.MIXLY_LOCAL_CLASS),this.appendValueInput("VAR1").appendField(ut.Msg.MIXLY_OBJECT_LIST).setAlign(ut.inputs.Align.RIGHT),this.appendValueInput("VAR2").appendField(ut.Msg.MIXLY_MODEL_NAME).setAlign(ut.inputs.Align.RIGHT),this.appendValueInput("VAR4").appendField(ut.Msg.MIXLY_AipNlp_Topic_Title).setAlign(ut.inputs.Align.RIGHT),this.appendDummyInput().setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.PROCEDURES_DEFRETURN_RETURN+"[objects]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_AI_SENSOR_MODEL_NAME_TOOLTIP)}},Tl={init:function(){this.setColour(Wr),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_LOCAL_CLASS+ut.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_COLOR_CHASE_ANALYSIS),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET).appendField(new ut.FieldDropdown([["ID","info1"],[ut.Msg.MIXLY_CONFIDENCE_DEGREE,"info2"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_AI_SENSOR_LOCAL_CLASS_TOOLTIP)}},hl={init:function(){this.setColour(Wr),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MUSIC_RECORD),this.appendValueInput("VAR1").appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH).setAlign(ut.inputs.Align.RIGHT),this.appendValueInput("VAR2").appendField(ut.Msg.MIXPY_AI_AUDIO_TIME).setAlign(ut.inputs.Align.RIGHT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_AI_SENSOR_MUSIC_RECORD_TOOLTIP)}},Ml={init:function(){this.setColour(Wr),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MUSIC_PLAY),this.appendValueInput("VAR1").appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH).setAlign(ut.inputs.Align.RIGHT),this.appendValueInput("VAR2").appendField(ut.Msg.MIXLY_MP3_VOL).setAlign(ut.inputs.Align.RIGHT),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},ml={init:function(){this.setColour(Wr),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ut.Msg.MIXLY_YOLO_RECOGNIZE),this.appendValueInput("VAR1").appendField(ut.Msg.MIXLY_ANCHOR).setAlign(ut.inputs.Align.RIGHT),this.appendValueInput("VAR2").appendField(ut.Msg.MIXLY_MODEL_PATH).setAlign(ut.inputs.Align.RIGHT),this.appendValueInput("VAR4").appendField(ut.Msg.MIXLY_AipNlp_Topic_Title).setAlign(ut.inputs.Align.RIGHT),this.appendDummyInput().setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.PROCEDURES_DEFRETURN_RETURN+"[objects]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_AI_SENSOR_YOLO_RECOGNIZE_TOOLTIP)}},Ol={init:function(){this.setColour(Wr),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_YOLO_RECOGNIZE+ut.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_COLOR_CHASE_ANALYSIS),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET).appendField(new ut.FieldDropdown([["ID","info1"],[ut.Msg.MIXLY_CONFIDENCE_DEGREE,"info2"],[ut.Msg.MIXLY_POSITION_XY+"-xywh","rect"],["x"+ut.Msg.MIXLY_POSITION_XY,"rect[0]"],["y"+ut.Msg.MIXLY_POSITION_XY,"rect[1]"],["w"+ut.Msg.MIXLY_POSITION_XY,"rect[2]"],["h"+ut.Msg.MIXLY_POSITION_XY,"rect[3]"],[ut.Msg.MICROPYTHON_HUSKYLENS_X_CENTERED+ut.Msg.MIXLY_POSITION_XY,"xc"],[ut.Msg.MICROPYTHON_HUSKYLENS_Y_CENTERED+ut.Msg.MIXLY_POSITION_XY,"yc"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_AI_SENSOR_YOLO_RECOGNIZE_RESULT_TOOLTIP)}},El={init:function(){this.setColour(Wr),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ut.Msg.MIXLY_AipSpeech_asr),this.appendValueInput("VAR1").appendField(ut.Msg.MIXLY_AI_SENSOR_ASR_RECOGNISE_CORPUS).setAlign(ut.inputs.Align.RIGHT),this.appendValueInput("VAR2").appendField(ut.Msg.MIXLY_ESP32_THRESHOLD).setAlign(ut.inputs.Align.RIGHT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_AI_SENSOR_ASR_RECOGNISE_TOOLTIP)}},Rl={init:function(){this.setColour(Wr),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_LICENSEPLATE+ut.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_ALL_CODE_ANALYSIS),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET).appendField(new ut.FieldDropdown([["ID","info1"],[ut.Msg.MIXLY_POSITION_XY+"-xywh","rect"],["x"+ut.Msg.MIXLY_POSITION_XY,"rect[0]"],["y"+ut.Msg.MIXLY_POSITION_XY,"rect[1]"],["w"+ut.Msg.MIXLY_POSITION_XY,"rect[2]"],["h"+ut.Msg.MIXLY_POSITION_XY,"rect[3]"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_AI_SENSOR_LICENSEPLATE_TOOLTIP)}},cl={init:function(){this.setColour(Wr),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ut.Msg.MIXLY_AipOcr_licensePlate),this.appendDummyInput().setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.PROCEDURES_DEFRETURN_RETURN+"[licensePlate]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_AI_SENSOR_LICENSEPLATE_RECOGNTITION_TOOLTIP)}},gl={init:function(){this.setColour(Wr),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_FACE+ut.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_ALL_CODE_ANALYSIS),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET).appendField(new ut.FieldDropdown([["ID","info1"],[ut.Msg.MIXLY_CONFIDENCE_DEGREE,"info2"],[ut.Msg.MIXLY_POSITION_XY+"-xywh","rect"],["x"+ut.Msg.MIXLY_POSITION_XY,"rect[0]"],["y"+ut.Msg.MIXLY_POSITION_XY,"rect[1]"],["w"+ut.Msg.MIXLY_POSITION_XY,"rect[2]"],["h"+ut.Msg.MIXLY_POSITION_XY,"rect[3]"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_AI_SENSOR_FACE_TOOLTIP)}},Cl={init:function(){this.setColour(Wr),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ut.Msg.MIXLY_AipFace),this.appendDummyInput().setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.PROCEDURES_DEFRETURN_RETURN+"[face]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_AI_SENSOR_BAR_FACE_CLASSIFIER_TOOLTIP)}},Sl={init:function(){this.setColour(Wr),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_20OBJECTS+ut.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_ALL_CODE_ANALYSIS),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET).appendField(new ut.FieldDropdown([["ID","info1"],[ut.Msg.MIXLY_CONFIDENCE_DEGREE,"info2"],[ut.Msg.MIXLY_POSITION_XY+"-xywh","rect"],["x"+ut.Msg.MIXLY_POSITION_XY,"rect[0]"],["y"+ut.Msg.MIXLY_POSITION_XY,"rect[1]"],["w"+ut.Msg.MIXLY_POSITION_XY,"rect[2]"],["h"+ut.Msg.MIXLY_POSITION_XY,"rect[3]"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_AI_SENSOR_20OBJECTS_TOOLTIP)}},Al={init:function(){this.setColour(Wr),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ut.Msg.MIXLY_FIND_20OBJECTS),this.appendDummyInput().setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.PROCEDURES_DEFRETURN_RETURN+"[20objects]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_AI_SENSOR_BAR_FIND_20OBJECTS_TOOLTIP)}},Ll={init:function(){this.setColour(205),this.appendDummyInput("").appendField(ut.Msg.MIXLY_SETUP).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_AipSpeech_asr,"ASR"],[ut.Msg.MIXLY_AI_UNIT,"UNIT"]]),"CTYPE"),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_Client).setAlign(ut.inputs.Align.RIGHT),this.appendValueInput("API_KEY").appendField("API_KEY").setAlign(ut.inputs.Align.RIGHT),this.appendValueInput("SECRET_KEY").appendField("SECRET_KEY").setAlign(ut.inputs.Align.RIGHT),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Nl={init:function(){this.setColour(205),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_AI_UNIT).appendField(ut.Msg.MIXLY_Client).setAlign(ut.inputs.Align.RIGHT),this.appendValueInput("ID").appendField("ID").setAlign(ut.inputs.Align.RIGHT),this.appendValueInput("STR").appendField(ut.Msg.OLED_STRING).setAlign(ut.inputs.Align.RIGHT),this.setInputsInline(!0),this.setOutput(!0)}},Dl={init:function(){this.setColour(205),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_AipSpeech_asr).appendField(ut.Msg.MIXLY_Client).setAlign(ut.inputs.Align.RIGHT),this.appendValueInput("FILE").appendField(ut.Msg.MIXPY_AI_AUDIO_TIME).setAlign(ut.inputs.Align.RIGHT),this.appendDummyInput("").appendField(ut.Msg.MIXLY_LANGUAGE).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_AI_LANGUAGE_CHINESE,"1537"],[ut.Msg.MIXLY_AI_LANGUAGE_ENGLISH,"1737"],[ut.Msg.MIXLY_AI_LANGUAGE_CANTONESE,"1637"]]),"LANGUAGE"),this.setInputsInline(!0),this.setOutput(!0)}},fl="#2FAD7A",Fl={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:fl,helpUrl:ut.Msg.MPYTHON_BLYNK_TERMINAL_WIDGET_VPIN_HELPURL,tooltip:ut.Msg.MPYTHON_BLYNK_TERMINAL_WIDGET_VPIN_TOOLTIP,message0:ut.Msg.MPYTHON_BLYNK_TERMINAL_WIDGET_VPIN_MESSAGE0,args0:[{check:Number,type:"input_value",name:"virtual_pin"}]})}},Pl={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:fl,helpUrl:ut.Msg.MPYTHON_BLYNK_SYNC_VIRTUAL_HELPURL,tooltip:ut.Msg.MPYTHON_BLYNK_SYNC_VIRTUAL_TOOLTIP,message0:ut.Msg.MPYTHON_BLYNK_SYNC_VIRTUAL_MESSAGE0,args0:[{check:Number,type:"input_value",name:"virtual_pin"}]})}},vl={init:function(){this.jsonInit({inputsInline:!0,colour:fl,helpUrl:ut.Msg.MPYTHON_BLYNK_ON_DISCONNECTED_HELPURL,tooltip:ut.Msg.MPYTHON_BLYNK_ON_DISCONNECTED_TOOLTIP,message0:ut.Msg.MPYTHON_BLYNK_ON_DISCONNECTED_MESSAGE0}),this.appendStatementInput("DO").appendField(ut.CONTROLS_REPEAT_INPUT_DO)}},Yl={init:function(){this.jsonInit({inputsInline:!0,colour:fl,helpUrl:ut.Msg.MPYTHON_BLYNK_ON_CONNECTED_HELPURL,tooltip:ut.Msg.MPYTHON_BLYNK_ON_CONNECTED_TOOLTIP,message0:ut.Msg.MPYTHON_BLYNK_ON_CONNECTED_MESSAGE0}),this.appendStatementInput("DO").appendField(ut.CONTROLS_REPEAT_INPUT_DO)}},xl={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:fl,helpUrl:ut.Msg.MPYTHON_BLYNKTIMER_RUN_HELPURL,tooltip:ut.Msg.MPYTHON_BLYNKTIMER_RUN_TOOLTIP,message0:ut.Msg.MPYTHON_BLYNKTIMER_RUN_MESSAGE0})}},bl={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:fl,helpUrl:ut.Msg.MPYTHON_BLYNK_RUN_HELPURL,tooltip:ut.Msg.MPYTHON_BLYNK_RUN_TOOLTIP,message0:ut.Msg.MPYTHON_BLYNK_RUN_MESSAGE0})}},Xl={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:fl,helpUrl:ut.Msg.MPYTHON_BLYNK_APP_NOTIFY_HELPURL,tooltip:ut.Msg.MPYTHON_BLYNK_APP_NOTIFY_TOOLTIP,message0:ut.Msg.MPYTHON_BLYNK_APP_NOTIFY_MESSAGE0,args0:[{check:String,type:"input_value",name:"notification"}]})}},yl={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:fl,helpUrl:ut.Msg.MPYTHON_BLYNK_STOP_TIMERS_HELPURL,tooltip:ut.Msg.MPYTHON_BLYNKTIMER_TOOLTIP,message0:ut.Msg.MPYTHON_BLYNK_STOP_TIMERS_MESSAGE0,args0:[{check:Number,type:"input_value",name:"timer_num"}]})}},Vl={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:fl,helpUrl:ut.Msg.MPYTHON_BLYNK_SET_PROPERTY_HELPURL,tooltip:ut.Msg.MPYTHON_BLYNK_SET_PROPERTY_TOOLTIP,message0:ut.Msg.MPYTHON_BLYNK_SET_PROPERTY_MESSAGE0,args0:[{check:String,type:"input_value",name:"attribute_name"},{type:"input_value",name:"attribute_value"}]})}},Bl={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:fl,helpUrl:ut.Msg.MPYTHON_BLYNK_EMAIL_HELPURL,tooltip:ut.Msg.MPYTHON_BLYNK_EMAIL_TOOLTIP,message0:ut.Msg.MPYTHON_BLYNK_EMAIL_MESSAGE0,args0:[{check:String,type:"input_value",name:"TargetEmail"},{check:String,type:"input_value",name:"subject"},{check:String,type:"input_value",name:"body"}]})}},Gl={init:function(){this.jsonInit({inputsInline:!0,output:null,colour:fl,helpUrl:ut.Msg.MPYTHON_BLYNK_GET_TIMERS_HELPURL,tooltip:ut.Msg.MPYTHON_BLYNK_GET_TIMERS_TOOLTIP,message0:ut.Msg.MPYTHON_BLYNK_GET_TIMERS_MESSAGE0})}},Ul={init:function(){this.jsonInit({message0:ut.Msg.MPYTHON_BLYNKTIMER_MESSAGE0,colour:fl,helpUrl:ut.Msg.MPYTHON_BLYNKTIMER_HELPURL,tooltip:ut.Msg.MPYTHON_BLYNKTIMER_TOOLTIP,args0:[{check:Number,type:"input_value",name:"Num"},{options:[[ut.Msg.MIXLY_PYTHON_PERIODIC,"False"],[ut.Msg.MIXLY_PYTHON_ONE_SHOT,"True"]],type:"field_dropdown",name:"Timer_mode"},{check:Number,type:"input_value",name:"period"}]}),this.appendStatementInput("DO").appendField(ut.CONTROLS_REPEAT_INPUT_DO)}},wl={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:fl,helpUrl:ut.Msg.MPYTHON_BLYNK_SENSOR_DATA_TO_APP_HELPURL,tooltip:ut.Msg.MPYTHON_BLYNK_SENSOR_DATA_TO_APP_TOOLTIP,message0:ut.Msg.MPYTHON_BLYNK_SENSOR_DATA_TO_APP_MESSAGE0,args0:[{type:"input_value",name:"sensor_data"},{check:Number,type:"input_value",name:"virtual_pin"}]})}},kl={init:function(){this.jsonInit({inputsInline:!0,colour:fl,helpUrl:ut.Msg.MPYTHON_BLYNK_APP_DATA_HELPURL,tooltip:ut.Msg.MPYTHON_BLYNK_SENSOR_DATA_TO_APP_TOOLTIP,message0:ut.Msg.MPYTHON_BLYNK_APP_DATA_MESSAGE0,args0:[{check:Number,type:"input_value",name:"virtual_pin"},{type:"input_value",name:"virtual_pin_val"}]}),this.appendStatementInput("DO").appendField(ut.CONTROLS_REPEAT_INPUT_DO)}},Hl={init:function(){this.jsonInit({nextStatement:null,previousStatement:null,colour:fl,helpUrl:ut.Msg.MPYTHON_BLYNK_SETUP_HELPURL,tooltip:ut.Msg.MPYTHON_BLYNK_SETUP_TOOLTIP,message0:ut.Msg.MPYTHON_BLYNK_SETUP_MESSAGE0,args0:[{type:"input_dummy"},{check:String,type:"input_value",name:"server"},{check:Number,type:"input_value",name:"port"},{check:String,type:"input_value",name:"auth"}]})}},Wl=140,Kl={init:function(){this.setColour(Wl),this.appendDummyInput().appendField(ut.Msg.MIXLY_LED_ON_BOARD+"I2C"),this.setOutput(!0),this.setInputsInline(!0)}},Jl={init:function(){this.setColour(Wl),this.appendDummyInput().appendField(ut.Msg.MIXLY_LED_ON_BOARD+"SPI"),this.setOutput(!0),this.setInputsInline(!0)}},Ql={init:function(){this.setColour(Wl),this.appendValueInput("SUB").appendField("I2C "+ut.Msg.MIXLY_SETUP).setCheck("var"),this.appendValueInput("TX",Number).appendField("SCL").setCheck(Number).setAlign(ut.inputs.Align.RIGHT),this.appendValueInput("RX",Number).appendField("SDA").setCheck(Number).setAlign(ut.inputs.Align.RIGHT),this.appendValueInput("freq").setCheck(Number).appendField(ut.Msg.MIXLY_FREQUENCY).setAlign(ut.inputs.Align.RIGHT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_I2C_INIT)}},zl={init:function(){this.setColour(Wl),this.appendValueInput("VAR").appendField("I2C").setCheck("var"),this.appendValueInput("address").setCheck(Number).appendField(ut.Msg.MIXLY_ESP32_RNUMBER),this.appendValueInput("data").setCheck(Number).appendField(ut.Msg.LANG_MATH_BYTE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MICROBIT_JS_I2C_READ)}},ql={init:function(){this.setColour(Wl),this.appendValueInput("VAR").appendField("I2C").setCheck("var"),this.appendValueInput("address").setCheck(Number).appendField(ut.Msg.MIXLY_ESP32_WNUMBER),this.appendValueInput("data").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_JS_I2C_VALUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MICROBIT_JS_I2C_WRITE)}},jl={init:function(){this.setColour(Wl),this.appendValueInput("VAR").appendField("I2C").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_I2C_SCAN1+ut.Msg.MIXLY_ESP32_I2C_SCAN2),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_I2C_SCAN)}},Zl={init:function(){this.setColour(Wl),this.appendValueInput("VAR").setCheck("var").appendField(ut.Msg.MIXLY_ESP32_SPI_INIT),this.appendValueInput("freq").setCheck(Number).appendField(ut.Msg.MIXLY_SERIAL_BEGIN),this.appendValueInput("sck").setCheck(Number).appendField("SCK"),this.appendValueInput("mosi").setCheck(Number).appendField("MOSI"),this.appendValueInput("miso").setCheck(Number).appendField("MISO"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_SPI_INIT_TOOLTIP)}},$l={init:function(){this.setColour(Wl),this.appendValueInput("VAR").setCheck("var").appendField("SPI"),this.appendValueInput("data").setCheck(Number).appendField(ut.Msg.MIXLY_SETTING+ut.Msg.MIXLY_SERIAL_BEGIN),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_SPI_SET)}},td={init:function(){this.setColour(Wl),this.appendValueInput("VAR").setCheck("var").appendField("SPI"),this.appendValueInput("data").setCheck(Number).appendField(ut.Msg.MIXLY_ESP32_SET+ut.Msg.MIXLY_ESP32_SPI_BUFFER),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_SPI_BUFFER_SET)}},ed={init:function(){this.setColour(Wl),this.appendValueInput("VAR").setCheck("var").appendField("SPI"),this.appendValueInput("data").setCheck(Number).appendField(ut.Msg.MIXLY_SERIAL_READ),this.appendDummyInput("").appendField(ut.Msg.MIXLY_4DIGITDISPLAY_NOMBER2+ut.Msg.LANG_MATH_BYTE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_SPI_READ)}},id={init:function(){this.setColour(Wl),this.appendValueInput("VAR").setCheck("var").appendField("SPI"),this.appendValueInput("data").setCheck(Number).appendField(ut.Msg.MIXLY_SERIAL_READ),this.appendDummyInput("").appendField(ut.Msg.MIXLY_4DIGITDISPLAY_NOMBER2+ut.Msg.LANG_MATH_BYTE+" "+ut.Msg.MIXLY_ESP32_SPI_OUTPUT),this.appendValueInput("val").setCheck(Number),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_SPI_READ_OUTPUT)}},nd={init:function(){this.setColour(Wl),this.appendValueInput("VAR").setCheck("var").appendField("SPI"),this.appendValueInput("data").setCheck("var").appendField(ut.Msg.MIXLY_SERIAL_READ+ut.Msg.MIXLY_ESP32_SPI_BUFFER),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_SPI_READINTO)}},sd={init:function(){this.setColour(Wl),this.appendValueInput("VAR").setCheck("var").appendField("SPI"),this.appendValueInput("data").setCheck("var").appendField(ut.Msg.MIXLY_SERIAL_READ+ut.Msg.MIXLY_ESP32_SPI_BUFFER),this.appendValueInput("val").setCheck(Number).appendField(ut.Msg.MIXLY_ESP32_SPI_OUTPUT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_SPI_READINTO_OUTPUT)}},od={init:function(){this.setColour(Wl),this.appendValueInput("VAR").setCheck("var").appendField("SPI"),this.appendValueInput("data").setCheck(String).appendField(ut.Msg.MIXLY_ESP32_WRITE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_SPI_WRITE)}},_d={init:function(){this.setColour(Wl),this.appendValueInput("VAR").setCheck("var").appendField("SPI"),this.appendValueInput("data").setCheck(String).appendField(ut.Msg.MIXLY_ESP32_WRITE),this.appendValueInput("val").setCheck("var").appendField(ut.Msg.MIXLY_ESP32_BUFFER_READ),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_SPI_WRITE_READINTO)}},pd={init:function(){this.setColour(Wl),this.appendValueInput("VAR").setCheck("var").appendField("I2C"),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_READ),this.setOutput(!0,Number)}},ad={init:function(){this.setColour(Wl),this.appendValueInput("VAR").setCheck("var").appendField("I2C"),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_READ+ut.Msg.MIXLY_ESP32_SUCCESS),this.setOutput(!0,Boolean),this.setTooltip(ut.Msg.MIXLY_ESP32_I2C_AVAILABLE)}},ud={init:function(){this.setColour(Wl),this.appendValueInput("PIN",Number).appendField(ut.Msg.MIXLY_I2C_SLAVE_ONRECEIVE).setCheck(Number),this.appendStatementInput("DO").appendField(ut.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0)}},rd={init:function(){this.setColour(Wl),this.appendValueInput("VAR").setCheck("var").appendField("OneWire "+ut.Msg.MIXLY_SETUP),this.appendValueInput("BUS").setCheck(Number).appendField(ut.Msg.MIXLY_PIN),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_OW_INIT)}},ld={init:function(){this.setColour(Wl),this.appendValueInput("VAR").setCheck("var").appendField("OneWire"),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_ONEWIRE_SCAN),this.setOutput(!0,"List"),this.setTooltip(ut.Msg.MIXLY_ESP32_OW_SCAN)}},dd={init:function(){this.setColour(Wl),this.appendValueInput("VAR").setCheck("var").appendField("OneWire"),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_ONEWIRE_READ),this.setOutput(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_OW_READ)}},Id={init:function(){this.setColour(Wl),this.appendValueInput("VAR").setCheck("var").appendField("OneWire"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_ESP32_WRITE).appendField(new ut.FieldDropdown([[ut.Msg.LANG_MATH_STRING,"write"],[ut.Msg.LANG_MATH_BYTE,"writebyte"]]),"op"),this.appendValueInput("byte").setCheck([Number,String]),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_OW_WRITE)}},Td={init:function(){this.setColour(Wl),this.appendValueInput("VAR").appendField("OneWire").setCheck("var"),this.appendValueInput("byte").setCheck(String).appendField(ut.Msg.LISTS_SET_INDEX_SET).appendField("ROM"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_OW_SELECT)}},hd={init:function(){this.setColour(Wl),this.appendValueInput("VAR").appendField("OneWire").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.blockpy_turtle_reset),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_OW_RESET)}},Md={init:function(){this.setColour(Wl),this.appendValueInput("PIN").appendField(ut.Msg.MIXLY_SETUP+ut.Msg.MIXLY_IR_RECEIVE),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_TYPE).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_IR_INPUT1,"8"],[ut.Msg.MIXLY_IR_INPUT2,"16"],[ut.Msg.MIXLY_IR_INPUT3,"0"],[ut.Msg.MIXLY_TR_SEND_RC,"RC5"]]),"type"),this.appendValueInput("SUB").appendField(ut.Msg.CONTROLS_REPEAT_INPUT_DO+ut.Msg.MIXLY_ESP32_ONENET_SUB),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},md={init:function(){this.setColour(Wl),this.appendDummyInput().appendField(ut.Msg.MIXlY_RECV_FUN),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_IR_CMD_CODE,"0"],[ut.Msg.MIXLY_IR_ADDR_CODE,"1"],[ut.Msg.MIXLY_IR_RAW_CODE,"2"],[ut.Msg.MIXLY_IR_PULSE,"3"]]),"index"),this.setOutput(!0),this.setInputsInline(!0)}},Od={init:function(){this.setColour(Wl),this.appendDummyInput().appendField(ut.Msg.MIXlY_RECV_FUN).appendField(new ut.FieldDropdown([[ut.Msg.MILY_PAUSE,"True"],[ut.Msg.MIXLY_RECOVER,"False"]]),"en"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Ed={init:function(){this.setColour(Wl),this.appendDummyInput().appendField(ut.Msg.MIXlY_RECV_FUN),this.appendDummyInput().appendField(ut.Msg.MIXLY_IR_WHETHER_RECV),this.setOutput(!0),this.setInputsInline(!0)}},Rd={init:function(){this.setColour(Wl),this.appendValueInput("time").appendField(ut.Msg.MIXlY_RECV_FUN).appendField(ut.Msg.MIXLY_IR_TIMEOUT),this.appendDummyInput().appendField(ut.Msg.MIXLY_MILLISECOND),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},cd={init:function(){this.setColour(Wl),this.appendValueInput("PIN").appendField(ut.Msg.MIXLY_SETUP+ut.Msg.MIXLY_IR_SEND).appendField(ut.Msg.MIXLY_PIN),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_TYPE).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_IR_SEND_samsung1,"False"],[ut.Msg.MIXLY_IR_SEND_samsung2,"True"],[ut.Msg.MIXLY_TR_SEND_RC,"RC5"]]),"type").appendField(ut.Msg.MIXLY_MICROBIT_JS_BLE_POWER),this.appendValueInput("power"),this.appendDummyInput().appendField(ut.Msg.MATH_QUYU_SYMBOL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},gd={init:function(){this.setColour(Wl),this.appendDummyInput().appendField(ut.Msg.MIXLY_IR_SEND),this.appendValueInput("cmd").appendField(ut.Msg.MIXLY_IR_CMD_CODE),this.appendValueInput("addr").appendField(ut.Msg.MIXLY_IR_ADDR_CODE),this.appendValueInput("toggle").appendField(ut.Msg.MIXLY_CONTROL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_TRANSMIT_CONVEN_DATA)}},Cd={init:function(){this.setColour(Wl),this.appendDummyInput().appendField(ut.Msg.MIXLY_IR_SEND),this.appendValueInput("LIST").appendField(ut.Msg.MIXLY_IR_PULSE).setAlign(ut.inputs.Align.RIGHT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Sd={init:function(){this.setColour(Wl),this.appendDummyInput().appendField(ut.Msg.MIXLY_IR_SEND),this.appendValueInput("raw").appendField(ut.Msg.MIXLY_IR_RAW_CODE).setAlign(ut.inputs.Align.RIGHT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Ad={init:function(){this.setColour(Wl),this.appendDummyInput().appendField(ut.Msg.MIXLY_IR_TRANSMIT_DONE),this.setOutput(!0),this.setInputsInline(!0)}},Ld={init:function(){this.setColour(Wl),this.appendValueInput("VAR").appendField(ut.Msg.MSG.catBLE).setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MSG.catEthernet_init+ut.Msg.MIXLY_MICROBIT_PY_STORAGE_AS+ut.Msg.MSG.catBLE_UART),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Nd={init:function(){this.setColour(Wl),this.appendValueInput("VAR").appendField(ut.Msg.MSG.catBLE).setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MSG.catEthernet_init+ut.Msg.MIXLY_MICROBIT_PY_STORAGE_AS+ut.Msg.MSG.catBLE_HID),this.appendValueInput("data").setCheck(String).appendField(ut.Msg.HTML_NAME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Dd={init:function(){this.setColour(Wl),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_ONEWIRE_SCAN+ut.Msg.MSG.catBLE),this.setOutput(!0),this.setInputsInline(!0)}},fd={init:function(){this.setColour(Wl),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MIXGO_ESPNOW_MAC),this.setOutput(!0),this.setInputsInline(!0)}},Fd={init:function(){this.setColour(Wl),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_TEXT_JOIN+ut.Msg.MSG.catBLE).appendField(new ut.FieldDropdown([[ut.Msg.HTML_NAME,"name"],[ut.Msg.MIXLY_ETHERNET_MAC_ADDRESS,"mac"]]),"mode"),this.appendValueInput("data").setCheck(String),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Pd={init:function(){this.setColour(Wl),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_DISCONNECT_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},vd={init:function(){this.setColour(Wl),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MSG.catBLE+ut.Msg.MIXLY_SEND_DATA),this.appendValueInput("data").appendField(ut.Msg.HTML_BODY),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Yd={init:function(){this.setColour(Wl),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MSG.catBLE+ut.Msg.MIXLY_EMQX_IS_CONNECT),this.setOutput(!0),this.setInputsInline(!0)}},xd={init:function(){this.setColour(Wl),this.appendValueInput("VAR").setCheck("var"),this.appendValueInput("METHOD").appendField(ut.Msg.MIXLY_MIXGO_ESPNOW_RECV).appendField(ut.Msg.CONTROLS_REPEAT_INPUT_DO+ut.Msg.MIXLY_ESP32_ONENET_SUB),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},bd={init:function(){this.setColour(Wl),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MIXGO_ESPNOW_RECV),this.setOutput(!0),this.setInputsInline(!0)}},Xd={init:function(){this.setColour(Wl),this.appendValueInput("VAR").setCheck("var").appendField(ut.Msg.MIXLY_BLE_HANDLE),this.appendValueInput("METHOD").appendField(ut.Msg.MIXLY_MIXGO_ESPNOW_RECV).appendField(ut.Msg.CONTROLS_REPEAT_INPUT_DO+ut.Msg.MIXLY_ESP32_ONENET_SUB),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},yd={init:function(){this.setColour(Wl),this.appendValueInput("VAR").setCheck("var").appendField("ESPnow "+ut.Msg.MIXLY_SETUP),this.appendValueInput("CHNL").setCheck(Number).appendField(ut.Msg.MIXLY_MP_ESPNOW_CHANNEL),this.appendDummyInput("").appendField(ut.Msg.MIXLY_TX_POWER).appendField(new ut.FieldDropdown([["20","20"],["18","18"],["16","16"],["15","15"],["14","14"],["13","13"],["11","11"],["8","8"],["7","7"],["5","5"],["2","2"]]),"op"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Vd={init:function(){this.setColour(Wl),this.appendValueInput("VAR").setCheck("var").appendField("ESPnow "+ut.Msg.MIXLY_SETUP),this.appendValueInput("CHNL").setCheck(Number).appendField(ut.Msg.MIXLY_MP_ESPNOW_CHANNEL),this.appendValueInput("DB").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_JS_BLE_POWER),this.appendDummyInput().appendField("db"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MP_ESPNOW_INIT_TOOLTIP)}},Bd={init:function(){this.setColour(Wl),this.appendValueInput("VAR").setCheck("var").appendField("ESPnow "),this.appendDummyInput().appendField(ut.Msg.MIXLY_MIXGO_ESPNOW_MAC),this.setOutput(!0),this.setInputsInline(!0)}},Gd={init:function(){this.setColour(Wl),this.appendValueInput("VAR").setCheck("var").appendField("ESPnow "),this.appendDummyInput().appendField(ut.Msg.MIXLY_MIXGO_ESPNOW_INFO),this.setOutput(!0),this.setInputsInline(!0)}},Ud={init:function(){this.setColour(Wl),this.appendValueInput("VAR").setCheck("var").appendField("ESPnow "),this.appendDummyInput().appendField(ut.Msg.MIXLY_MIXGO_ESPNOW_RECV),this.appendDummyInput().appendField(new ut.FieldDropdown([["("+ut.Msg.MIXLY_ETHERNET_MAC_ADDRESS+", "+ut.Msg.OLED_STRING+")",""],[ut.Msg.MIXLY_ETHERNET_MAC_ADDRESS,"[0]"],[ut.Msg.OLED_STRING,"[1]"]]),"mode"),this.setOutput(!0),this.setInputsInline(!0)}},wd={init:function(){this.setColour(Wl),this.appendValueInput("VAR").setCheck("var").appendField("ESPnow "),this.appendValueInput("mac").appendField(ut.Msg.MIXLY_MIXGO_ESPNOW_SEND_MAC),this.appendValueInput("content").appendField(ut.Msg.MIXLY_MIXGO_ESPNOW_SEND),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MIXGO_ESPNOW_SEND_TOOLTIP)}},kd={init:function(){this.setColour(Wl),this.appendValueInput("VAR").setCheck("var").appendField("ESPnow "),this.appendValueInput("METHOD").appendField(ut.Msg.MIXLY_EMQX_SET_METHOD),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Hd={init:function(){this.setColour(Wl),this.appendDummyInput().appendField(ut.Msg.MIXLY_MP_ESPNOW_RADIO_INIT),this.appendValueInput("CHNL").setCheck(Number),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Wd={init:function(){this.setColour(Wl),this.appendDummyInput().appendField(ut.Msg.MIXLY_SETTING+ut.Msg.MIXLY_MP_ESPNOW_RADIO+ut.Msg.MIXLY_TX_POWER).appendField(new ut.FieldDropdown([["20","20"],["18","18"],["16","16"],["15","15"],["14","14"],["13","13"],["11","11"],["8","8"],["7","7"],["5","5"],["2","2"]]),"op"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Kd={init:function(){this.setColour(Wl),this.appendDummyInput().appendField(ut.Msg.MIXLY_MP_ESPNOW_RADIO_INIT),this.appendValueInput("CHNL").setCheck(Number),this.appendValueInput("DB").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_JS_BLE_POWER),this.appendDummyInput().appendField("db"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MP_ESPNOW_RADIO_INIT_TOOLTIP)}},Jd={init:function(){this.setColour(Wl),this.appendDummyInput().appendField(ut.Msg.MIXLY_MP_ESPNOW_RADIO),this.appendDummyInput().appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_ON,"True"],[ut.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_OFF,"False"]]),"on_off"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Qd={init:function(){this.setColour(Wl),this.appendDummyInput().appendField(ut.Msg.MIXLY_MP_ESPNOW_RADIO).appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.appendValueInput("send").setCheck(String),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MIXGO_ESPNOW_SEND_TOOLTIP)}},zd={init:function(){this.setColour(Wl),this.appendDummyInput().appendField(ut.Msg.MIXLY_MP_ESPNOW_RADIO).appendField(ut.Msg.MIXLY_MIXGO_ESPNOW_RECV),this.setOutput(!0),this.setInputsInline(!0)}},qd={init:function(){this.setColour(Wl),this.appendDummyInput().appendField(ut.Msg.MIXLY_MP_ESPNOW_RADIO_RECEIVED_MSG),this.setOutput(!0),this.setInputsInline(!0)}},jd={init:function(){this.setColour(Wl),this.appendDummyInput().appendField(ut.Msg.MIXLY_MP_ESPNOW_RADIO_MSG_RECEIVED),this.appendStatementInput("DO").appendField(ut.Msg.MIXLY_DO),this.setPreviousStatement(!1),this.setNextStatement(!1)}},Zd={init:function(){this.setColour(Wl),this.appendDummyInput().appendField(ut.Msg.MIXLY_MP_ESPNOW_RADIO_MSG_RECEIVED_CERTAIN).appendField('"').appendField(new ut.FieldTextInput("on"),"msg").appendField('"'),this.appendStatementInput("DO").appendField(ut.Msg.MIXLY_DO),this.setPreviousStatement(!1),this.setNextStatement(!1)}},$d={init:function(){this.setColour(Wl),this.appendDummyInput().appendField(ut.Msg.MIXLY_MP_ESPNOW_RADIO_MSG_RECEIVED),this.appendStatementInput("DO").appendField(ut.Msg.MIXLY_DO),this.setPreviousStatement(!1),this.setNextStatement(!1)}},tI={init:function(){this.setColour(Wl),this.appendDummyInput().appendField(ut.Msg.MIXLY_MP_ESPNOW_RADIO_MSG_RECEIVED_CERTAIN).appendField('"').appendField(new ut.FieldTextInput("on"),"msg").appendField('"'),this.appendStatementInput("DO").appendField(ut.Msg.MIXLY_DO),this.setPreviousStatement(!1),this.setNextStatement(!1)}},eI={init:function(){this.setColour(Wl),this.appendValueInput("SUB").appendField("Lora"+ut.Msg.MIXLY_SETUP).setCheck("var"),this.appendValueInput("SPISUB").appendField(ut.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("frequency").appendField(ut.Msg.MIXLY_FREQUENCY),this.appendValueInput("rate").appendField(ut.Msg.MIXLY_CODE_RATE),this.appendValueInput("factor").appendField(ut.Msg.MIXLY_SPREADING_FACTOR),this.appendValueInput("power").appendField(ut.Msg.MIXLY_TX_POWER),this.appendDummyInput().appendField(ut.Msg.MIXLY_SIGNAL_BANDWIDTH).appendField(new ut.FieldDropdown([["7800","7800"],["10400","10400"],["15600","15600"],["20800","20800"],["31250","31250"],["41700","41700"],["62500","62500"],["125000","125000"],["250000","250000"],["500000","500000"]]),"bandwidth"),this.setFieldValue("125000","bandwidth"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(ut.Msg.MIXLY_LORA_INIT_TOOLTIP)}},iI={init:function(){this.setColour(Wl),this.appendValueInput("VAR").setCheck("var").appendField("Lora "),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET+ut.Msg.MIXLY_PACKAGE).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_SIGNAL_STRENGTH,"packet_rssi"],[ut.Msg.MIXLY_SIGNAL_NOISE_RATE,"packet_snr"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},nI={init:function(){this.setColour(Wl),this.appendValueInput("VAR").setCheck("var").appendField("Lora "),this.appendDummyInput().appendField(ut.Msg.MIXLY_SEND_DATA),this.appendValueInput("data").setCheck(String).appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},sI={init:function(){this.setColour(Wl),this.appendValueInput("VAR").setCheck("var").appendField("Lora "),this.appendDummyInput().appendField(ut.Msg.MIXLY_MIXGO_ESPNOW_RECV),this.setOutput(!0,String),this.setInputsInline(!0)}},oI={init:function(){this.setColour(Wl),this.appendValueInput("DOMAIN").appendField(ut.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(ut.Msg.blockpy_REQUESTS_GET).appendField(new ut.FieldTextInput("response"),"VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.blockpy_REQUESTS_GET_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ut.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},_I={init:function(){this.appendValueInput("VAL");var t=[[ut.Msg.blockpy_REQUESTS_GET_ATTR_HEADER,"headers"],[ut.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE,"status_code"],[ut.Msg.blockpy_REQUESTS_GET_ATTR_TEXT,"text"],[ut.Msg.blockpy_REQUESTS_GET_ATTR_COOKIES,"cookies"],[ut.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT,"content"]];this.setColour(Wl),this.appendDummyInput("").appendField(ut.Msg.MIXLY_MICROBIT_JS_GET).appendField(new ut.FieldDropdown(t),"ATTR"),this.setInputsInline(!0),this.setOutput(!0,String);var e=this;this.setTooltip((function(){var t=e.getFieldValue("DIR");return{clear:ut.Msg.MIXLY_TOOLTIP_TURTEL_CLEAR,reset:ut.Msg.MIXLY_TOOLTIP_TURTEL_RESET,home:ut.Msg.MIXLY_TOOLTIP_TURTEL_HOME}[t]}))}},pI={init:function(){this.appendValueInput("VAR").appendField(ut.Msg.DISPLAY_IMAGE_LET2).setCheck(String);this.setColour(Wl),this.appendDummyInput("").appendField(ut.Msg.blockpy_CONDUCT).appendField(new ut.FieldDropdown([["get","get"],["post","post"],["put","put"],["delete","delete"],["head","head"],["option","option"]]),"DIR"),this.appendDummyInput("").appendField(ut.Msg.blockpy_REQUESTS),this.setOutput(!0),this.setInputsInline(!0)}},aI=Ql,uI=zl,rI=ql,lI=jl,dI=Zl,II=$l,TI=td,hI=ed,MI=id,mI=nd,OI=sd,EI=od,RI=_d,cI=pd,gI=ad,CI=120;({init:function(){this.setColour(CI),this.appendValueInput("BOOL").setCheck([Boolean,Number]).appendField(ut.Msg.LANG_CONTROLS_WHILEUNTIL_TITLE_REPEAT).appendField(new ut.FieldDropdown(this.OPERATORS),"MODE"),this.appendStatementInput("DO").appendField(ut.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return{WHILE:ut.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_WHILE,UNTIL:ut.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL}[e]}))}}).OPERATORS=[[ut.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"WHILE"],[ut.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"UNTIL"]];({init:function(){this.setColour(CI);var t=new ut.FieldDropdown(this.OPERATORS);this.appendDummyInput().appendField(t,"FLOW").appendField(ut.Msg.LANG_CONTROLS_FLOW_STATEMENTS_INPUT_OFLOOP),this.setPreviousStatement(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("FLOW");return{BREAK:ut.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK,CONTINUE:ut.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE}[t]}))},onchange:function(){if(this.workspace){var t=!1,e=this;do{if("controls_repeat"==e.type||"controls_for"==e.type||"controls_forEach"==e.type||"controls_repeat_ext"==e.type||"controls_whileUntil"==e.type){t=!0;break}e=e.getSurroundParent()}while(e);t?this.setWarningText(null):this.setWarningText(ut.Msg.LANG_CONTROLS_FLOW_STATEMENTS_WARNING)}}}).OPERATORS=[[ut.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK,"BREAK"],[ut.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE,"CONTINUE"]];const SI="5BA5A5",AI={init:function(){this.setColour(SI),this.appendValueInput("I2CSUB").appendField(ut.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_SETUP+ut.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new ut.FieldDropdown([["32x12 Matrix","32x12 Matrix"],["16x8 Matrix","16x8 Matrix"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},LI={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(SI),this.appendValueInput("data").setCheck([String,"esp32_image","List","Tuple"]).appendField(ut.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.OLED_BITMAP_OR_STRING)}},NI={init:function(){this.setColour(SI),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("data").setCheck(String).appendField(ut.Msg.OLED_DRAWSTR),this.appendValueInput("space").setCheck(Number).appendField(ut.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendDummyInput("").appendField(ut.Msg.TEXT_CENTER).appendField(new ut.FieldDropdown([[ut.Msg.MICROPYTHON_DISPLAY_YES,"True"],[ut.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"center"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY)}},DI={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(SI),this.appendValueInput("data").setCheck(String).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},fI={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(SI),this.appendValueInput("data").setCheck(String).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.appendValueInput("space").setCheck(Number).appendField(ut.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendValueInput("time").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_SCROLL_IMAGE_OR_STRING_DELAY)}},FI={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(SI),this.appendValueInput("data").setCheck(String).appendField(ut.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},PI={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(SI),this.appendValueInput("data").setCheck(String).appendField(ut.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.appendValueInput("time").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},vI={init:function(){var t=[[ut.Msg.MIXLY_UP,"shift_up"],[ut.Msg.MIXLY_DOWN,"shift_down"],[ut.Msg.MIXLY_LEFT,"shift_left"],[ut.Msg.MIXLY_RIGHT,"shift_right"]];this.appendValueInput("SUB").setCheck("var"),this.setColour(SI),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.appendDummyInput("").appendField(ut.Msg.DISPLAY_IMAGE_LET),this.appendDummyInput("").appendField(ut.Msg.DISPLAY_IMAGE_LET2).appendField(new ut.FieldDropdown(t),"OP"),this.appendValueInput("val").appendField(ut.Msg.DISPLAY_IMAGE_SHIFT).setCheck(Number),this.appendDummyInput("").appendField(ut.Msg.DISPLAY_IMAGE_UNIT);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP"),i=ut.Msg.DISPLAY_IMAGE_LET,n=ut.Msg.DISPLAY_IMAGE_LET2,s=ut.Msg.DISPLAY_IMAGE_LET3;return i+n+{up:ut.Msg.MIXLY_UP,down:ut.Msg.MIXLY_DOWN,left:ut.Msg.MIXLY_LEFT,right:ut.Msg.MIXLY_RIGHT}[t]+s}))}},YI={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(SI),this.appendValueInput("x").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_JS_MONITOR_GET_POINT),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(ut.Msg.MIXLY_ESP32_JS_MONITOR_BRIGHTNESS)}},xI={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(SI),this.appendValueInput("x").setCheck(Number).appendField(ut.Msg.MIXLY_ESP32_JS_MONITOR_SET_BRIGHTNESS).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendValueInput("STAT").setCheck([Number,Boolean]),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL)}},bI={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(SI),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(ut.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS)}},XI={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(SI),this.appendValueInput("x").setCheck(Number).appendField(ut.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS+" 0.0-1.0")}},yI={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(SI),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_Clear_display),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MICROBIT_Clear_display)}},VI={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(SI),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_Built_in_image1).appendField(new ut.FieldDropdown([["HEART","HEART"],["HEART_SMALL","HEART_SMALL"],["HAPPY","HAPPY"],["SAD","SAD"],["SMILE","SMILE"],["SILLY","SILLY"],["FABULOUS","FABULOUS"],["SURPRISED","SURPRISED"],["ASLEEP","ASLEEP"],["ANGRY","ANGRY"],["CONFUSED","CONFUSED"],["NO","NO"],["YES","YES"]]),"image"),this.setOutput(!0,"esp32_image"),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MICROBIT_Clear_display)}},BI={init:function(){var t=[[ut.Msg.MICROBIT_DISPLAY_UNION,"add"],[ut.Msg.MICROBIT_DISPLAY_MINUS,"sub"]];this.appendValueInput("SUB").setCheck("var"),this.setColour(SI),this.setOutput(!0,"esp32_image"),this.appendValueInput("A").appendField(ut.Msg.MICROBIT_DISPLAY_MERGE_SHAPE),this.appendValueInput("B").appendField(new ut.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{"+":ut.Msg.MIXLY_MICROBIT_image_add,"-":ut.Msg.MIXLY_MICROBIT_image_reduce}[t]}))}},GI={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(SI),this.appendValueInput("A").setCheck("esp32_image").appendField(ut.Msg.MIXLY_MICROBIT_Invert_image1),this.setInputsInline(!0),this.setOutput(!0,"esp32_image")}},UI={init:function(){this.setColour(SI),this.appendValueInput("I2CSUB").appendField(ut.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendValueInput("row").appendField(ut.Msg.MIXLY_SETUP+ut.Msg.LISTS_SET_INDEX_INPUT_TO+"OLED").setCheck(Number),this.appendValueInput("column").appendField("X").setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip()}},wI={init:function(){this.appendValueInput("VAR").appendField(ut.Msg.OLED).setCheck("var"),this.appendValueInput("Text_line1","String").setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.OLEDDISPLAY+ut.Msg.line1),this.appendValueInput("Text_line2","String").setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.line2),this.appendValueInput("Text_line3","String").setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.line3),this.appendValueInput("Text_line4","String").setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.line4),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(SI),this.setTooltip(ut.Msg.MIXLY_DF_LCD+ut.Msg.OLEDDISPLAY+ut.Msg.MIXLY_MICROBIT_TYPE_STRING)}},kI={init:function(){var t=[[ut.Msg.MIXLY_HEIGHT,"height"],[ut.Msg.MIXLY_WIDTH,"width"]];this.setColour(SI),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+ut.Msg.MIXLY_MICROBIT_IMAGE),this.appendValueInput("VAR").setCheck("esp32_image"),this.appendDummyInput("").appendField(new ut.FieldDropdown(t),"OP"),this.setInputsInline(!0),this.setOutput(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+ut.Msg.MIXLY_MICROBIT_IMAGE+{height:ut.Msg.MIXLY_HEIGHT,width:ut.Msg.MIXLY_WIDTH}[t]}))}},HI={init:function(){var t=[[ut.Msg.MIXLY_4DIGITDISPLAY_ON,"1"],[ut.Msg.MIXLY_4DIGITDISPLAY_OFF,"0"]];this.setColour(SI),this.appendValueInput("VAR").appendField(ut.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_RECT).appendField(new ut.FieldDropdown(t),"OP"),this.jsonInit({message0:ut.Msg.MIXLY_MICROBIT_SHOW_RECT,args0:[{check:Number,type:"input_value",name:"x"},{check:Number,type:"input_value",name:"y"},{check:Number,type:"input_value",name:"width"},{check:Number,type:"input_value",name:"height"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"fill"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(ut.Msg.MIXLY_OLED_RECT)}},WI={init:function(){this.setColour(SI),this.appendValueInput("VAR").appendField(ut.Msg.OLED).setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_DISPLAY_DRAW).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_DISPLAY_RLINE,"hline"],[ut.Msg.MIXLY_DISPLAY_VLINE,"vline"]]),"direction"),this.jsonInit({message0:ut.Msg.MIXLY_MICROBIT_SHOW_LINE,args0:[{check:Number,type:"input_value",name:"x"},{check:Number,type:"input_value",name:"y"},{check:Number,type:"input_value",name:"length"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(ut.Msg.MIXLY_OLED_LINE)}},KI={init:function(){this.setColour(SI),this.appendValueInput("VAR").appendField(ut.Msg.OLED).setCheck("var"),this.jsonInit({message0:ut.Msg.MIXLY_MICROBIT_SHOW_LINE_ARBITRARILY,args0:[{check:Number,type:"input_value",name:"x1"},{check:Number,type:"input_value",name:"y1"},{check:Number,type:"input_value",name:"x2"},{check:Number,type:"input_value",name:"y2"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(ut.Msg.MIXLY_OLED_LINE_ARBIT)}},JI={init:function(){this.setColour(SI),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_MONITOR_GET_SCREEN_IMAGE),this.setInputsInline(!0),this.setOutput(!0,"esp32_image"),this.setTooltip(ut.Msg.MIXLY_ESP32_MONITOR_GET_SCREEN_IMAGE_TOOLTIP)}},QI={init:function(){this.setColour(SI),this.appendValueInput("x").setCheck(Number).appendField(ut.Msg.MIXLY_ESP32_JS_MONITOR_SET_BLINK_RATE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_JS_MONITOR_SET_BLINK_RATE)}},zI={init:function(){this.setColour(SI),this.appendDummyInput("").appendField(ut.Msg.MIXLY_RGB),this.appendValueInput("_LED_").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_NUM),this.appendDummyInput("").appendField(ut.Msg.LISTS_SET_INDEX_SET+ut.Msg.MIXLY_MICROBIT_PY_STORAGE_AS).appendField(new ut.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),"FIELDNAME"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(ut.Msg.MIXLY_RGB_NUM_R_G_B)}},qI={init:function(){this.setColour(SI),this.appendDummyInput("").appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_ESP32_ON,"ON"],[ut.Msg.MIXLY_ESP32_OFF,"OFF"]]),"ONOFF"),this.setOutput(!0,Boolean),this.setTooltip(ut.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW)}},jI={init:function(){this.setColour(SI),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_LCD_STAT_CLEAR,"0"],[ut.Msg.MIXLY_HANDBIT_DISLPAY_OLED_FILL,"1"]]),"key"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i={0:ut.Msg.MIXLY_LCD_STAT_CLEAR,1:ut.Msg.MIXLY_HANDBIT_DISLPAY_OLED_FILL};return ut.Msg.MIXLY_DF_LCD+i[e]}))}},ZI={init:function(){this.setColour(SI),this.setOutput(!0,"Tuple"),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_DISPLAY_ANIMATE).appendField(new ut.FieldDropdown([["ALL_CLOCKS","ALL_CLOCKS"],["ALL_ARROWS","ALL_ARROWS"]]),"ANIMATION")}},$I={init:function(){var t=[[ut.Msg.MIXLY_4DIGITDISPLAY_ON,"1"],[ut.Msg.MIXLY_4DIGITDISPLAY_OFF,"0"]];this.setColour(SI),this.appendValueInput("VAR").appendField(ut.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_MIXPY_TURTLE_DRAW_CIRCLE).appendField(new ut.FieldDropdown(t),"OP"),this.jsonInit({message0:ut.Msg.MIXLY_HANBIT_SHOW_CIRCLE,args0:[{check:Number,type:"input_value",name:"x"},{check:Number,type:"input_value",name:"y"},{check:Number,type:"input_value",name:"r"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"fill"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(ut.Msg.MIXLY_MIXPY_TURTLE_DRAW_CIRCLE)}},tT={init:function(){var t=[[ut.Msg.MIXLY_4DIGITDISPLAY_ON,"1"],[ut.Msg.MIXLY_4DIGITDISPLAY_OFF,"0"]];this.setColour(SI),this.appendValueInput("VAR").appendField(ut.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_DISPLAY_DRAW+ut.Msg.MIXLY_HANBIT_DRAW_TRIANGLE).appendField(new ut.FieldDropdown(t),"OP"),this.jsonInit({message0:ut.Msg.MIXLY_HANBIT_SHOW_triangle,args0:[{check:Number,type:"input_value",name:"x0"},{check:Number,type:"input_value",name:"y0"},{check:Number,type:"input_value",name:"x1"},{check:Number,type:"input_value",name:"y1"},{check:Number,type:"input_value",name:"x2"},{check:Number,type:"input_value",name:"y2"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"fill"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(ut.Msg.MIXLY_DISPLAY_DRAW+ut.Msg.MIXLY_HANBIT_DRAW_TRIANGLE)}},eT={init:function(){this.setColour("#555555"),this.appendDummyInput("").appendField(ut.Msg.MIXGO_ONBOARDDISPLAY_HELP),this.setInputsInline(!0),this.setTooltip("")}},iT={init:function(){this.setColour(SI),this.appendValueInput("VAR").appendField(ut.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.OLED_BITMAP),this.appendValueInput("START_X",Number).appendField(ut.Msg.OLED_START_X).setCheck(Number),this.appendValueInput("START_Y",Number).appendField(ut.Msg.OLED_START_Y).setCheck(Number),this.appendValueInput("bitmap_name",String).appendField(ut.Msg.OLED_BITMAP_NAME),this.appendValueInput("WIDTH",Number).appendField(ut.Msg.MIXLY_WIDTH).setCheck(Number),this.appendValueInput("HEIGHT",Number).appendField(ut.Msg.MIXLY_HEIGHT).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.OLED_SHOW_BMP_TOOLTIP)}},nT={init:function(){this.setColour(SI),this.appendValueInput("VAR").appendField(ut.Msg.OLED),this.appendDummyInput("").appendField(ut.Msg.OLED_DRAWPIXEL),this.appendValueInput("POS_X").appendField(ut.Msg.OLED_POSX),this.appendValueInput("POS_Y").appendField(ut.Msg.OLED_POSY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.OLED_DRAW_PIXE_TOOLTIP)}},sT={init:function(){this.setColour(SI),this.appendValueInput("I2CSUB").appendField(ut.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_SETUP+ut.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new ut.FieldDropdown([["TM1650","TM1650"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return ut.Msg.MIXLY_ESP32_SENSOR_USE_I2C_TOOLTIP+{TM1650:"TM1650"}[e]}))}},oT={init:function(){this.setColour(SI),this.appendDummyInput().appendField(ut.Msg.MIXLY_4DIGITDISPLAY).appendField(new ut.FieldDropdown([["TM1650","tm1650"]]),"TYPE"),this.appendValueInput("VAR"),this.appendDummyInput().appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_ON,"on"],[ut.Msg.MIXLY_OFF,"off"],[ut.Msg.MIXLY_LCD_STAT_CLEAR,"clear"]]),"STAT"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(ut.Msg.MIXLY_TOOLTIP_4digitdisplay_power)}},_T={init:function(){this.setColour(SI),this.appendDummyInput().appendField(ut.Msg.MIXLY_4DIGITDISPLAY).appendField(new ut.FieldDropdown([["TM1650","tm1650"]]),"TYPE"),this.appendValueInput("VAR"),this.appendValueInput("VALUE").setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_SHOW_NUMBER),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},pT={init:function(){this.setColour(SI),this.appendDummyInput().appendField(ut.Msg.MIXLY_4DIGITDISPLAY).appendField(new ut.FieldDropdown([["TM1650","tm1650"]]),"TYPE"),this.appendValueInput("VAR"),this.appendValueInput("NO").appendField(ut.Msg.MIXLY_4DIGITDISPLAY_NOMBER1),this.appendValueInput("STAT").appendField(ut.Msg.MIXLY_4DIGITDISPLAY_NOMBER2+ut.Msg.MIXLY_4DIGITDISPLAY_DOT),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(ut.Msg.MIXLY_TOOLTIP_4digitdisplay_showDot)}},aT={init:function(){this.setColour(SI),this.appendDummyInput().appendField(ut.Msg.MIXLY_4DIGITDISPLAY).appendField(new ut.FieldDropdown([["TM1650","tm1650"]]),"TYPE"),this.appendValueInput("VAR"),this.appendValueInput("VALUE").setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_SET_BRIGHTNESS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(ut.Msg.MIXLY_4DIGITDISPLAY_4DIGITDISPLAY_BRIGHTNESS_TOOLTIP)}},uT={init:function(){this.setColour(SI),this.appendValueInput("SPISUB").appendField(ut.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINDC").appendField("DC"),this.appendValueInput("PINCS").appendField("CS"),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_SETUP+ut.Msg.LISTS_SET_INDEX_INPUT_TO+ut.Msg.MSG.catTFT),this.appendValueInput("WIDTH").appendField(ut.Msg.MIXLY_WIDTH).setCheck(Number),this.appendValueInput("HEIGHT").appendField(ut.Msg.MIXLY_HEIGHT).setCheck(Number),this.appendDummyInput("").appendField(ut.Msg.blockpy_turtle_rotate).appendField(new ut.FieldDropdown([[ut.Msg.MICROPYTHON_DISPLAY_NO,"0"],[ut.Msg.ANTI_CLOCKWISE+"90°","1"],[ut.Msg.ANTI_CLOCKWISE+"180°","2"],[ut.Msg.ANTI_CLOCKWISE+"270°","3"]]),"rotate"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},rT={init:function(){this.setColour(SI),this.appendValueInput("SUB").appendField(ut.Msg.MSG.catTFT),this.appendValueInput("data").appendField(ut.Msg.OLED_BITMAP),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_JS_NUMBER),this.appendValueInput("VAR").appendField(ut.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.OLED_BITMAP_OR_STRING)}},lT={init:function(){this.setColour(SI);let t=new ut.FieldColour("#f00",null,{colourOptions:["#f00","#000"],columns:2});this.appendDummyInput("").setAlign(ut.inputs.Align.RIGHT).appendField(t,"COLOR"),this.setInputsInline(!0),this.setOutput(!0,String)}},dT={init:function(){this.setColour(SI),this.appendValueInput("SUB").appendField(ut.Msg.MSG.catTFT),this.appendValueInput("data").setCheck(String).appendField(ut.Msg.OLED_DRAWSTR),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(ut.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(ut.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendDummyInput("").appendField(ut.Msg.TEXT_CENTER).appendField(new ut.FieldDropdown([[ut.Msg.MICROPYTHON_DISPLAY_YES,"True"],[ut.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"center"),this.appendValueInput("VAR").appendField(ut.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY)}},IT={init:function(){this.setColour(SI),this.appendValueInput("SUB").appendField(ut.Msg.MSG.catTFT),this.appendValueInput("data").setCheck(String).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(ut.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(ut.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendValueInput("time").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.appendValueInput("VAR").appendField(ut.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_SCROLL_IMAGE_OR_STRING_DELAY)}},TT={init:function(){this.setColour(SI),this.appendValueInput("SUB").appendField(ut.Msg.MSG.catTFT),this.appendValueInput("data").setCheck(String).appendField(ut.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.appendValueInput("size").setCheck(Number).appendField(ut.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("time").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.appendValueInput("VAR").appendField(ut.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},hT={init:function(){this.setColour(SI),this.appendValueInput("SUB").setCheck("var").appendField(ut.Msg.MSG.catTFT),this.appendDummyInput().appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_LCD_STAT_CLEAR,"BLACK"],[ut.Msg.MIXLY_HANDBIT_DISLPAY_OLED_FILL,"WHITE"]]),"key"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i={0:ut.Msg.MIXLY_LCD_STAT_CLEAR,1:ut.Msg.MIXLY_HANDBIT_DISLPAY_OLED_FILL};return ut.Msg.MIXLY_DF_LCD+i[e]}))}},MT={init:function(){this.setColour(SI),this.appendValueInput("SUB").appendField(ut.Msg.MSG.catTFT).setCheck("var"),this.jsonInit({message0:ut.Msg.MIXLY_MICROBIT_SHOW_LINE_ARBITRARILY,args0:[{check:Number,type:"input_value",name:"x1"},{check:Number,type:"input_value",name:"y1"},{check:Number,type:"input_value",name:"x2"},{check:Number,type:"input_value",name:"y2"}]}),this.appendValueInput("VAR").appendField(ut.Msg.HTML_COLOUR),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(ut.Msg.MIXLY_OLED_LINE_ARBIT)}},mT={init:function(){this.setColour(SI),this.appendValueInput("I2CSUB").appendField(ut.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_SETUP+ut.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new ut.FieldDropdown([["LCD1602","16"],["LCD2004","20"]]),"key"),this.appendValueInput("ADDR").setCheck(Number).appendField(ut.Msg.MQTT_SERVER_ADD),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return ut.Msg.MIXLY_SETUP+{16:"LCD1602",20:"LCD2004"}[e]}))}},OT={init:function(){this.setColour(SI),this.appendValueInput("SUB").appendField(ut.Msg.MSG.catLCD),this.appendValueInput("data").setCheck(String).appendField(ut.Msg.OLED_DRAWSTR),this.appendValueInput("x").setCheck(Number).appendField(ut.Msg.array2_cols),this.appendValueInput("y").setCheck(Number).appendField(ut.Msg.array2_rows),this.appendDummyInput("").appendField(ut.Msg.TEXT_CENTER).appendField(new ut.FieldDropdown([[ut.Msg.MICROPYTHON_DISPLAY_YES,"True"],[ut.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"center"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY)}},ET={init:function(){this.setColour(SI),this.appendValueInput("SUB").appendField(ut.Msg.MSG.catLCD),this.appendValueInput("data").setCheck(String).appendField(ut.Msg.MIXLY_SERIAL_PRINT+ut.Msg.OLED_DRAWSTR),this.appendValueInput("x").setCheck(Number).appendField(ut.Msg.array2_cols),this.appendValueInput("y").setCheck(Number).appendField(ut.Msg.array2_rows),this.appendValueInput("time").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},RT={init:function(){this.setColour(SI),this.appendValueInput("SUB").setCheck("var").appendField(ut.Msg.MSG.catLCD),this.appendDummyInput().appendField(ut.Msg.TFT_Brightness).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_Turn_on_display,"1"],[ut.Msg.MIXLY_MICROBIT_Turn_off_display,"0"]]),"key"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i={1:ut.Msg.MIXLY_MICROBIT_Turn_on_display,0:ut.Msg.MIXLY_MICROBIT_Turn_off_display};return ut.Msg.MSG.catLCD+ut.Msg.TFT_Brightness+i[e]}))}},cT={init:function(){this.appendValueInput("SUB").setCheck("var").appendField(ut.Msg.MSG.catLCD),this.setColour(SI),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_Clear_display),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MICROBIT_Clear_display)}},gT={init:function(){this.setColour(SI),this.appendValueInput("I2CSUB").appendField(ut.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_SETUP+ut.Msg.LISTS_SET_INDEX_INPUT_TO+"oled128x64"),this.appendValueInput("ADDR").setCheck(Number).appendField(ut.Msg.MQTT_SERVER_ADD),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return ut.Msg.MIXLY_SETUP+{16:"LCD1602",20:"LCD2004"}[e]}))}},CT={init:function(){this.setColour(SI),this.appendValueInput("SUB").setCheck("var").appendField(ut.Msg.MSG.catOLED),this.appendValueInput("data").appendField(ut.Msg.OLED_BITMAP),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.OLED_BITMAP_OR_STRING)}},ST={init:function(){this.setColour(SI),this.appendValueInput("SUB").setCheck("var").appendField(ut.Msg.MSG.catOLED),this.appendValueInput("data").appendField(ut.Msg.OLED_BITMAP),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_JS_NUMBER),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.OLED_BITMAP_OR_STRING)}},AT={init:function(){this.setColour(SI),this.appendValueInput("SUB").setCheck("var").appendField(ut.Msg.MSG.catOLED),this.appendValueInput("data").setCheck([String,"esp32_image","List","Tuple"]).appendField(ut.Msg.OLED_DRAWSTR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.OLED_BITMAP_OR_STRING)}},LT={init:function(){this.setColour(SI),this.appendValueInput("SUB").setCheck("var").appendField(ut.Msg.MSG.catOLED),this.appendValueInput("data").setCheck(String).appendField(ut.Msg.OLED_DRAWSTR),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(ut.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(ut.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendDummyInput("").appendField(ut.Msg.TEXT_CENTER).appendField(new ut.FieldDropdown([[ut.Msg.MICROPYTHON_DISPLAY_YES,"True"],[ut.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"center"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY)}},NT={init:function(){this.setColour(SI),this.appendValueInput("SUB").setCheck("var").appendField(ut.Msg.MSG.catOLED),this.appendValueInput("data").setCheck(String).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},DT={init:function(){this.setColour(SI),this.appendValueInput("SUB").setCheck("var").appendField(ut.Msg.MSG.catOLED),this.appendValueInput("data").setCheck(String).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(ut.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(ut.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendValueInput("time").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_SCROLL_IMAGE_OR_STRING_DELAY)}},fT={init:function(){this.setColour(SI),this.appendValueInput("SUB").setCheck("var").appendField(ut.Msg.MSG.catOLED),this.appendValueInput("data").setCheck(String).appendField(ut.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},FT={init:function(){this.setColour(SI),this.appendValueInput("SUB").setCheck("var").appendField(ut.Msg.MSG.catOLED),this.appendValueInput("data").setCheck(String).appendField(ut.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.appendValueInput("size").setCheck(Number).appendField(ut.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("time").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},PT={init:function(){var t=[[ut.Msg.MIXLY_UP,"shift_up"],[ut.Msg.MIXLY_DOWN,"shift_down"],[ut.Msg.MIXLY_LEFT,"shift_left"],[ut.Msg.MIXLY_RIGHT,"shift_right"]];this.setColour(SI),this.appendValueInput("SUB").setCheck("var").appendField(ut.Msg.MSG.catOLED),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.appendDummyInput("").appendField(ut.Msg.DISPLAY_IMAGE_LET),this.appendDummyInput("").appendField(ut.Msg.DISPLAY_IMAGE_LET2).appendField(new ut.FieldDropdown(t),"OP"),this.appendValueInput("val").appendField(ut.Msg.DISPLAY_IMAGE_SHIFT).setCheck(Number),this.appendDummyInput("").appendField(ut.Msg.DISPLAY_IMAGE_UNIT);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP"),i=ut.Msg.DISPLAY_IMAGE_LET,n=ut.Msg.DISPLAY_IMAGE_LET2,s=ut.Msg.DISPLAY_IMAGE_LET3;return i+n+{up:ut.Msg.MIXLY_UP,down:ut.Msg.MIXLY_DOWN,left:ut.Msg.MIXLY_LEFT,right:ut.Msg.MIXLY_RIGHT}[t]+s}))}},vT={init:function(){this.setColour(SI),this.appendValueInput("SUB").setCheck("var").appendField(ut.Msg.MSG.catOLED),this.appendValueInput("x").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_JS_MONITOR_GET_POINT),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(ut.Msg.MIXLY_ESP32_JS_MONITOR_BRIGHTNESS)}},YT={init:function(){this.setColour(SI),this.appendValueInput("SUB").setCheck("var").appendField(ut.Msg.MSG.catOLED),this.appendValueInput("x").setCheck(Number).appendField(ut.Msg.MIXLY_ESP32_JS_MONITOR_SET_BRIGHTNESS).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendValueInput("STAT").setCheck([Number,Boolean]),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL)}},xT={init:function(){this.setColour(SI),this.appendValueInput("SUB").setCheck("var").appendField(ut.Msg.MSG.catOLED),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_Clear_display),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MICROBIT_Clear_display)}},bT={init:function(){this.jsonInit({colour:SI,args0:[{name:"SUB",type:"input_value"},{name:"state",options:[[ut.Msg.MPYTHON_DISPLAY_MODE_1,"1"],[ut.Msg.MPYTHON_DISPLAY_MODE_0,"0"]],type:"field_dropdown"},{name:"shape",options:[[ut.Msg.MPYTHON_DISPLAY_HOLLOW,"rect"],[ut.Msg.MPYTHON_DISPLAY_SOLID,"fill_rect"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"w",type:"input_value"},{name:"h",type:"input_value"}],inputsInline:!0,helpUrl:ut.Msg.mpython_HELPURL,tooltip:ut.Msg.MPYTHON_DISPLAY_SHAPE_RECT_TOOLTIP,message0:ut.Msg.MPYTHON_DISPLAY_SHAPE_RECT_MESSAGE1,nextStatement:null,previousStatement:null})}},XT={init:function(){this.jsonInit({colour:SI,args0:[{name:"SUB",type:"input_value"},{name:"state",options:[[ut.Msg.MPYTHON_DISPLAY_MODE_1,"1"],[ut.Msg.MPYTHON_DISPLAY_MODE_0,"0"]],type:"field_dropdown"},{name:"dir_h_v",options:[[ut.Msg.mpython_vertical,"0"],[ut.Msg.mpython_horizontal,"1"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"length",type:"input_value"}],inputsInline:!0,helpUrl:ut.Msg.mpython_HELPURL,tooltip:ut.Msg.MPYTHON_DISPLAY_HVLINE_TOOLTIP,message0:ut.Msg.MPYTHON_DISPLAY_HVLINE_MESSAGE1,nextStatement:null,previousStatement:null})}},yT={init:function(){this.jsonInit({colour:SI,args0:[{name:"SUB",type:"input_value"},{name:"state",options:[[ut.Msg.mpython_display_hline_1,"1"],[ut.Msg.mpython_display_hline_0,"0"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x1",type:"input_value"},{name:"y1",type:"input_value"},{name:"x2",type:"input_value"},{name:"y2",type:"input_value"}],inputsInline:!0,helpUrl:ut.Msg.mpython_HELPURL,tooltip:ut.Msg.mpython_display_line_TOOLTIP,message0:ut.Msg.mpython_display_line_MESSAGE1,nextStatement:null,previousStatement:null})}},VT="#569A98",BT={init:function(){this.setColour(VT),this.appendValueInput("data").setCheck([String,"esp32_image","List","Tuple"]).appendField(ut.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),"micropython:esp32:mixbot"==rt.Boards.getSelectedBoardKey()&&this.setTooltip(ut.Msg.MIXLY_MIXBOT_SHOW_SCROLL_STRING_TOOLTIP)}},GT={init:function(){this.setColour(VT),this.appendValueInput("data").setCheck(String).appendField(ut.Msg.OLED_DRAWSTR),this.appendValueInput("space").setCheck(Number).appendField(ut.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendDummyInput("").appendField(ut.Msg.TEXT_CENTER).appendField(new ut.FieldDropdown([[ut.Msg.MICROPYTHON_DISPLAY_YES,"True"],[ut.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"center"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},UT={init:function(){this.setColour(VT),this.appendValueInput("data").setCheck(String).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},wT={init:function(){this.setColour(VT),this.appendValueInput("data").setCheck(String).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.appendValueInput("space").setCheck(Number).appendField(ut.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendValueInput("time").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},kT={init:function(){this.setColour(VT),this.appendValueInput("data").setCheck(String).appendField(ut.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},HT={init:function(){this.setColour(VT),this.appendValueInput("data").setCheck(String).appendField(ut.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.appendValueInput("time").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},WT={init:function(){this.appendDummyInput("").appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<12;t++){let e=this.appendDummyInput();for(let i=0;i<32;i++)e.appendField(new ut.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.setOutput(!0),this.setColour(VT),this.setTooltip(ut.Msg.MIXLY_MICROBIT_Create_image1)}},KT={init:function(){this.jsonInit({colour:VT,args0:[{name:"image",options:[["HEART","HEART"],["HEART_SMALL","HEART_SMALL"],["HAPPY","HAPPY"],["SAD","SAD"],["SMILE","SMILE"],["SILLY","SILLY"],["FABULOUS","FABULOUS"],["SURPRISED","SURPRISED"],["ASLEEP","ASLEEP"],["ANGRY","ANGRY"],["CONFUSED","CONFUSED"],["NO","NO"],["YES","YES"]],type:"field_dropdown"}],output:["esp32_image","List"],helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/image.html#attributes",tooltip:ut.Msg.MIXLY_MICROBIT_Built_in_image1,message0:ut.Msg.MIXLY_MICROBIT_Built_in_image})}},JT={init:function(){this.jsonInit({colour:VT,args0:[{name:"image",options:[["HEART","HEART"],["HEART_SMALL","HEART_SMALL"],["HAPPY","HAPPY"],["SAD","SAD"],["SMILE","SMILE"],["SILLY","SILLY"],["FABULOUS","FABULOUS"],["SURPRISED","SURPRISED"],["ASLEEP","ASLEEP"],["ANGRY","ANGRY"],["CONFUSED","CONFUSED"],["NO","NO"],["YES","YES"],["LEFT_ARROW","LEFT_ARROW"],["RIGHT_ARROW","RIGHT_ARROW"],["DRESS","DRESS"],["TRANSFORMERS","TRANSFORMERS"],["SCISSORS","SCISSORS"],["EXIT","EXIT"],["TREE","TREE"],["PACMAN","PACMAN"],["TARGET","TARGET"],["TSHIRT","TSHIRT"],["ROLLERSKATE","ROLLERSKATE"],["DUCK","DUCK"],["HOUSE","HOUSE"],["TORTOISE","TORTOISE"],["BUTTERFLY","BUTTERFLY"],["STICKFIGURE","STICKFIGURE"],["GHOST","GHOST"],["PITCHFORK","PITCHFORK"],["MUSIC_QUAVERS","MUSIC_QUAVERS"],["MUSIC_QUAVER","MUSIC_QUAVER"],["MUSIC_CROTCHET","MUSIC_CROTCHET"],["COW","COW"],["RABBIT","RABBIT"],["SQUARE_SMALL","SQUARE_SMALL"],["SQUARE","SQUARE"],["DIAMOND_SMALL","DIAMOND_SMALL"],["DIAMOND","DIAMOND"],["CHESSBOARD","CHESSBOARD"],["TRIANGLE_LEFT","TRIANGLE_LEFT"],["TRIANGLE","TRIANGLE"],["SNAKE","SNAKE"],["UMBRELLA","UMBRELLA"],["SKULL","SKULL"],["GIRAFFE","GIRAFFE"],["SWORD","SWORD"]],type:"field_dropdown"}],output:["esp32_image","List"],helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/image.html#attributes",tooltip:ut.Msg.MIXLY_MICROBIT_Built_in_image1,message0:ut.Msg.MIXLY_MICROBIT_Built_in_image})}},QT={init:function(){var t=[[ut.Msg.MICROBIT_DISPLAY_UNION,"add"],[ut.Msg.MICROBIT_DISPLAY_MINUS,"sub"]];this.setColour(VT),this.setOutput(!0,"esp32_image"),this.appendValueInput("A").appendField(ut.Msg.MICROBIT_DISPLAY_MERGE_SHAPE),this.appendValueInput("B").appendField(new ut.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{"+":ut.Msg.MIXLY_MICROBIT_image_add,"-":ut.Msg.MIXLY_MICROBIT_image_reduce}[t]}))}},zT={init:function(){this.setColour(VT),this.appendValueInput("A").setCheck("esp32_image").appendField(ut.Msg.MIXLY_MICROBIT_Invert_image1),this.setInputsInline(!0),this.setOutput(!0,"esp32_image")}},qT={init:function(){var t=[[ut.Msg.MIXLY_UP,"shift_up"],[ut.Msg.MIXLY_DOWN,"shift_down"],[ut.Msg.MIXLY_LEFT,"shift_left"],[ut.Msg.MIXLY_RIGHT,"shift_right"]];this.setColour(VT),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.appendDummyInput("").appendField(ut.Msg.DISPLAY_IMAGE_LET),this.appendDummyInput("").appendField(ut.Msg.DISPLAY_IMAGE_LET2).appendField(new ut.FieldDropdown(t),"OP"),this.appendValueInput("val").appendField(ut.Msg.DISPLAY_IMAGE_SHIFT).setCheck(Number),this.appendDummyInput("").appendField(ut.Msg.DISPLAY_IMAGE_UNIT);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP"),i=ut.Msg.DISPLAY_IMAGE_LET,n=ut.Msg.DISPLAY_IMAGE_LET2,s=ut.Msg.DISPLAY_IMAGE_LET3;return i+n+{shift_up:ut.Msg.MIXLY_UP,shift_down:ut.Msg.MIXLY_DOWN,shift_left:ut.Msg.MIXLY_LEFT,shift_right:ut.Msg.MIXLY_RIGHT}[t]+s}))}},jT={init:function(){this.setColour(VT),this.appendValueInput("x").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_JS_MONITOR_GET_POINT),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(ut.Msg.MIXLY_ESP32_JS_MONITOR_BRIGHTNESS)}},ZT={init:function(){this.setColour(VT),this.appendValueInput("x").setCheck(Number).appendField(ut.Msg.MIXLY_ESP32_JS_MONITOR_SET_BRIGHTNESS).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendValueInput("STAT").setCheck([Number,Boolean]),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL)}},$T={init:function(){this.setColour(VT),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(ut.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS)}},th={init:function(){this.setColour(VT),this.appendValueInput("x").setCheck(Number).appendField(ut.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS+" 0.0-1.0")}},eh={init:function(){this.setColour(VT),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_Clear_display),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MICROBIT_Clear_display)}},ih={init:function(){this.appendDummyInput("").appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<5;t++){let e=this.appendDummyInput();for(let i=0;i<8;i++)e.appendField(new ut.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.setOutput(!0),this.setColour(VT),this.setTooltip(ut.Msg.MIXLY_MICROBIT_Create_image1)}},nh={init:function(){this.appendDummyInput("").appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<8;t++){let e=this.appendDummyInput();for(let i=0;i<12;i++)e.appendField(new ut.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.setOutput(!0),this.setColour(VT),this.setTooltip(ut.Msg.MIXLY_MICROBIT_Create_image1)}},sh={init:function(){this.appendDummyInput("").appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<8;t++){let e=this.appendDummyInput();for(let i=0;i<16;i++)e.appendField(new ut.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.setOutput(!0,"esp32_image"),this.setColour(VT),this.setTooltip(ut.Msg.MIXLY_MICROBIT_Create_image1)}},oh={init:function(){var t=[["4x5"+ut.Msg.MIXGO_ME_DISPLAY_HORIZONTAL,"'4x5'"],["5x5"+ut.Msg.MIXGO_ME_DISPLAY_HORIZONTAL,"'5x5'"],["5x8"+ut.Msg.MIXGO_ME_DISPLAY_VERTICAL,"'5x8'"]];this.setColour(VT),this.appendDummyInput().appendField(ut.Msg.OLED_SET_FONT).appendField(new ut.FieldDropdown(t),"OP"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},_h={init:function(){this.setColour(VT),this.appendValueInput("data").appendField(ut.Msg.OLED_BITMAP),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.OLED_BITMAP_OR_STRING)}},ph={init:function(){this.setColour(VT),this.appendValueInput("data").appendField(ut.Msg.OLED_BITMAP),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_JS_NUMBER),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.OLED_BITMAP_OR_STRING)}},ah={init:function(){this.setColour(VT),this.appendValueInput("data").setCheck([String,"esp32_image","List","Tuple"]).appendField(ut.Msg.OLED_DRAWSTR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.OLED_BITMAP_OR_STRING)}},uh={init:function(){this.setColour(VT),this.appendValueInput("data").setCheck(String).appendField(ut.Msg.OLED_DRAWSTR),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(ut.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(ut.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendDummyInput("").appendField(ut.Msg.TEXT_CENTER).appendField(new ut.FieldDropdown([[ut.Msg.MICROPYTHON_DISPLAY_YES,"True"],[ut.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"center"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY)}},rh={init:function(){this.setColour(VT),this.appendValueInput("data").setCheck(String).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(ut.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(ut.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendValueInput("time").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_SCROLL_IMAGE_OR_STRING_DELAY)}},lh={init:function(){this.setColour(VT),this.appendValueInput("data").setCheck(String).appendField(ut.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.appendValueInput("size").setCheck(Number).appendField(ut.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("time").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},dh={init:function(){this.setColour(VT),this.appendValueInput("x").setCheck(Number).appendField(ut.Msg.MIXLY_ESP32_JS_MONITOR_SET_BRIGHTNESS).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendValueInput("STAT").setCheck([Number,Boolean]),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL)}},Ih={init:function(){this.jsonInit({colour:VT,args0:[{name:"state",options:[[ut.Msg.MPYTHON_DISPLAY_MODE_1,"1"],[ut.Msg.MPYTHON_DISPLAY_MODE_0,"0"]],type:"field_dropdown"},{name:"shape",options:[[ut.Msg.MPYTHON_DISPLAY_HOLLOW,"rect"],[ut.Msg.MPYTHON_DISPLAY_SOLID,"fill_rect"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"w",type:"input_value"},{name:"h",type:"input_value"}],inputsInline:!0,helpUrl:ut.Msg.mpython_HELPURL,tooltip:ut.Msg.MPYTHON_DISPLAY_SHAPE_RECT_TOOLTIP,message0:ut.Msg.MPYTHON_DISPLAY_SHAPE_RECT_MESSAGE0,nextStatement:null,previousStatement:null})}},Th={init:function(){this.jsonInit({colour:VT,args0:[{name:"state",options:[[ut.Msg.MPYTHON_DISPLAY_MODE_1,"1"],[ut.Msg.MPYTHON_DISPLAY_MODE_0,"0"]],type:"field_dropdown"},{name:"dir_h_v",options:[[ut.Msg.mpython_vertical,"0"],[ut.Msg.mpython_horizontal,"1"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"length",type:"input_value"}],inputsInline:!0,helpUrl:ut.Msg.mpython_HELPURL,tooltip:ut.Msg.MPYTHON_DISPLAY_HVLINE_TOOLTIP,message0:ut.Msg.MPYTHON_DISPLAY_HVLINE_MESSAGE0,nextStatement:null,previousStatement:null})}},hh={init:function(){this.jsonInit({colour:VT,args0:[{name:"state",options:[[ut.Msg.mpython_display_hline_1,"1"],[ut.Msg.mpython_display_hline_0,"0"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x1",type:"input_value"},{name:"y1",type:"input_value"},{name:"x2",type:"input_value"},{name:"y2",type:"input_value"}],inputsInline:!0,helpUrl:ut.Msg.mpython_HELPURL,tooltip:ut.Msg.mpython_display_line_TOOLTIP,message0:ut.Msg.mpython_display_line_MESSAGE0,nextStatement:null,previousStatement:null})}},Mh={init:function(){this.jsonInit({colour:VT,args0:[{type:"field_label",name:"size_image",text:ut.Msg.MIXLY_MICROBIT_Built_in_image1},{name:"path",options:[["Heart","Heart"],["Angry","Angry"],["Bored","Bored"],["Confused","Confused"],["Happy","Happy"],["Paper","Paper"],["Rock","Rock"],["Sad","Sad"],["Scissors","Scissors"],["Silly","Silly"],["Sleep","Sleep"],["Small_heart","Small_heart"],["Small_paper","Small_paper"],["Small_rock","Small_rock"],["Small_scissors","Small_scissors"],["Smile","Smile"],["Surprise","Surprise"],["Wonderful","Wonderful"],["Eyes_Angry","Eyes_Angry"],["Awake","Awake"],["Black_eye","Black_eye"],["Bottom_left","Bottom_left"],["Bottom_right","Bottom_right"],["Crazy_1","Crazy_1"],["Crazy_2","Crazy_2"],["Disappointed","Disappointed"],["Dizzy","Dizzy"],["Down","Down"],["Evil","Evil"],["Hurt","Hurt"],["Knocked_out","Knocked_out"],["Love","Love"],["Middle_left","Middle_left"],["Middle_right","Middle_right"],["Neutral","Neutral"],["Nuclear","Nuclear"],["Pinch_left","Pinch_left"],["Pinch_middle","Pinch_middle"],["Pinch_right","Pinch_right"],["Tear","Tear"],["Tired_left","Tired_left"],["Tired_middle","Tired_middle"],["Tired_right","Tired_right"],["Toxic","Toxic"],["Up","Up"],["Winking","Winking"],["Accept","Accept"],["Backward","Backward"],["Decline","Decline"],["Forward","Forward"],["Left","Left"],["No_go","No_go"],["Question_mark","Question_mark"],["Right","Right"],["Stop_1","Stop_1"],["Stop_2","Stop_2"],["Thumbs_down","Thumbs_down"],["Thumbs_up","Thumbs_up"],["Warning","Warning"],["Bomb","Bomb"],["Boom","Boom"],["Fire","Fire"],["Flowers","Flowers"],["Forest","Forest"],["Lightning","Lightning"],["Light_off","Light_off"],["Light_on","Light_on"],["Night","Night"],["Pirate","Pirate"],["Snow","Snow"],["Target","Target"],["Bar_0","Bar_0"],["Bar_1","Bar_1"],["Bar_2","Bar_2"],["Bar_3","Bar_3"],["Bar_4","Bar_4"],["Dial_0","Dial_0"],["Dial_1","Dial_1"],["Dial_2","Dial_2"],["Dial_3","Dial_3"],["Dial_4","Dial_4"],["Dots_0","Dots_0"],["Dots_1","Dots_1"],["Dots_2","Dots_2"],["Dots_3","Dots_3"],["Hourglass_0","Hourglass_0"],["Hourglass_1","Hourglass_1"],["Hourglass_2","Hourglass_2"],["Timer_0","Timer_0"],["Timer_1","Timer_1"],["Timer_2","Timer_2"],["Timer_3","Timer_3"],["Timer_4","Timer_4"],["Water_level_0","Water_level_0"],["Water_level_1","Water_level_1"],["Water_level_2","Water_level_2"],["Water_level_3","Water_level_3"]],type:"field_dropdown"}],output:"String",helpUrl:"",tooltip:"",message0:"%1 %2"})}},mh={init:function(){this.appendDummyInput("").appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<5;t++){let e=this.appendDummyInput();for(let i=0;i<5;i++)e.appendField(new ut.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.setOutput(!0),this.setColour(VT),this.setTooltip(ut.Msg.MIXLY_MICROBIT_Create_image1)}},Oh={init:function(){this.setColour(VT),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(ut.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS)}},Eh={init:function(){this.setColour(VT),this.appendDummyInput().appendField(ut.Msg.MIXLY_MIXBOT_AMBIENTBRIGHT),this.setInputsInline(!0),this.setOutput(!0,Number)}},Rh={init:function(){this.setColour(VT),this.appendValueInput("x").setCheck(Number).appendField(ut.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS+" 0.0-1.0")}},ch={init:function(){var t=[[ut.Msg.mixpy_PL_PIE_SHADOW_N,"0"],[ut.Msg.CLOCKWISE+"90"+ut.Msg.blockpy_setheading_degree,"1"],[ut.Msg.CLOCKWISE+"180"+ut.Msg.blockpy_setheading_degree,"2"],[ut.Msg.CLOCKWISE+"270"+ut.Msg.blockpy_setheading_degree,"3"]];this.setColour(VT),this.appendDummyInput().appendField(ut.Msg.MIXLY_MIXBOT_SCREEN_ROTATE).appendField(new ut.FieldDropdown(t),"OP"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},gh={init:function(){this.appendDummyInput("").appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<12;t++){let e=this.appendDummyInput();for(let i=0;i<12;i++)e.appendField(new ut.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.setOutput(!0),this.setColour(VT),this.setTooltip(ut.Msg.MIXLY_MICROBIT_Create_image1)}},Ch={init:function(){this.setColour(VT),this.appendValueInput("data").appendField(ut.Msg.OLED_BITMAP),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.OLED_BITMAP_OR_STRING)}},Sh={init:function(){this.setColour(VT),this.appendValueInput("data").appendField(ut.Msg.OLED_BITMAP),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_JS_NUMBER),this.appendValueInput("VAR").appendField(ut.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.OLED_BITMAP_OR_STRING)}},Ah={init:function(){this.setColour(VT),this.appendValueInput("data").setCheck(String).appendField(ut.Msg.OLED_DRAWSTR),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(ut.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(ut.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendDummyInput("").appendField(ut.Msg.TEXT_CENTER).appendField(new ut.FieldDropdown([[ut.Msg.MICROPYTHON_DISPLAY_YES,"True"],[ut.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"center"),this.appendValueInput("VAR").appendField(ut.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY)}},Lh={init:function(){this.setColour(VT),this.appendValueInput("data").setCheck(String).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Nh={init:function(){this.setColour(VT),this.appendValueInput("data").setCheck(String).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(ut.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(ut.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendValueInput("time").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.appendValueInput("VAR").appendField(ut.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_SCROLL_IMAGE_OR_STRING_DELAY)}},Dh={init:function(){this.setColour(VT),this.appendValueInput("data").setCheck(String).appendField(ut.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},fh={init:function(){this.setColour(VT),this.appendValueInput("data").setCheck(String).appendField(ut.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.appendValueInput("size").setCheck(Number).appendField(ut.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("time").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.appendValueInput("VAR").appendField(ut.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Fh={init:function(){this.jsonInit({colour:VT,args0:[{name:"shape",options:[[ut.Msg.MPYTHON_DISPLAY_HOLLOW,"rect"],[ut.Msg.MPYTHON_DISPLAY_SOLID,"fill_rect"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"w",type:"input_value"},{name:"h",type:"input_value"},{name:"VAR",type:"input_value"}],inputsInline:!0,helpUrl:ut.Msg.mpython_HELPURL,tooltip:ut.Msg.MPYTHON_DISPLAY_SHAPE_RECT_TOOLTIP,message0:ut.Msg.ONBOARD_TFT_DISPLAY_SHAPE_RECT_MESSAGE0,nextStatement:null,previousStatement:null})}},Ph={init:function(){this.jsonInit({colour:VT,args0:[{name:"dir_h_v",options:[[ut.Msg.mpython_vertical,"0"],[ut.Msg.mpython_horizontal,"1"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"length",type:"input_value"},{name:"VAR",type:"input_value"}],inputsInline:!0,helpUrl:ut.Msg.mpython_HELPURL,tooltip:ut.Msg.MPYTHON_DISPLAY_HVLINE_TOOLTIP,message0:ut.Msg.ONBOARD_TFT_DISPLAY_HVLINE_MESSAGE0,nextStatement:null,previousStatement:null})}},vh={init:function(){this.jsonInit({colour:VT,args0:[{type:"input_dummy"},{name:"x1",type:"input_value"},{name:"y1",type:"input_value"},{name:"x2",type:"input_value"},{name:"y2",type:"input_value"},{name:"VAR",type:"input_value"}],inputsInline:!0,helpUrl:ut.Msg.mpython_HELPURL,tooltip:ut.Msg.mpython_display_line_TOOLTIP,message0:ut.Msg.mpython_display_line_MESSAGE0,nextStatement:null,previousStatement:null})}},Yh={init:function(){var t=[[ut.Msg.MIXLY_UP,"shift_up"],[ut.Msg.MIXLY_DOWN,"shift_down"],[ut.Msg.MIXLY_LEFT,"shift_left"],[ut.Msg.MIXLY_RIGHT,"shift_right"]];this.setColour(VT),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.appendDummyInput("").appendField(ut.Msg.DISPLAY_IMAGE_LET),this.appendDummyInput("").appendField(ut.Msg.DISPLAY_IMAGE_LET2).appendField(new ut.FieldDropdown(t),"OP"),this.appendValueInput("val").appendField(ut.Msg.DISPLAY_IMAGE_SHIFT).setCheck(Number),this.appendDummyInput("").appendField(ut.Msg.DISPLAY_IMAGE_UNIT);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP"),i=ut.Msg.DISPLAY_IMAGE_LET,n=ut.Msg.DISPLAY_IMAGE_LET2,s=ut.Msg.DISPLAY_IMAGE_LET3;return i+n+{up:ut.Msg.MIXLY_UP,down:ut.Msg.MIXLY_DOWN,left:ut.Msg.MIXLY_LEFT,right:ut.Msg.MIXLY_RIGHT}[t]+s}))}},xh={init:function(){this.setColour(VT),this.appendDummyInput("").appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("x").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendDummyInput().appendField(ut.Msg.HTML_COLOUR),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(ut.Msg.MIXLY_ESP32_JS_MONITOR_BRIGHTNESS)}},bh={init:function(){this.setColour(VT),this.appendValueInput("x").setCheck(Number).appendField(ut.Msg.MIXLY_LCD_SETCOLOR).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendValueInput("VAR").appendField(ut.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL)}},Xh={init:function(){this.setColour(VT),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_Clear_display),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MICROBIT_Clear_display)}},yh={init:function(){this.setColour(VT),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(ut.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS)}},Vh={init:function(){this.setColour(VT),this.appendValueInput("x").setCheck(Number).appendField(ut.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS+" 0.0-1.0")}},Bh={init:function(){this.setColour(VT),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_SCREEN_FILL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Gh={init:function(){this.setColour(VT),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_INIT_CLOCK),this.appendDummyInput().appendField(ut.Msg.MIXLY_CENTER_POS),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(ut.Msg.OLED_CIRCLE_RADIUS),this.appendValueInput("VAR").appendField(ut.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Uh={init:function(){this.setColour(VT),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ut.Msg.GET_RTCTIME),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},wh={init:function(){this.setColour(VT),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ut.Msg.SET_TIME),this.appendValueInput("h").setCheck(Number).appendField(ut.Msg.MIXLY_HOUR),this.appendValueInput("m").setCheck(Number).appendField(ut.Msg.MIXLY_MINUTE),this.appendValueInput("s").setCheck(Number).appendField(ut.Msg.MIXLY_SECOND),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},kh={init:function(){this.setColour(VT),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ut.Msg.DRAW_CLOCK),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Hh={init:function(){this.setColour(VT),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ut.Msg.CLEAR_CLOCK),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_STM32_TFT_BACKGROUND_COLOR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Wh={init:function(){this.jsonInit({colour:VT,args0:[{name:"shape",options:[[ut.Msg.MPYTHON_DISPLAY_HOLLOW,"False"],[ut.Msg.MPYTHON_DISPLAY_SOLID,"True"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"r",type:"input_value"},{name:"VAR",type:"input_value"}],inputsInline:!0,helpUrl:ut.Msg.mpython_HELPURL,message0:ut.Msg.ONBOARD_TFT_DISPLAY_SHAPE_CIRCLE_MESSAGE0,nextStatement:null,previousStatement:null})}},Kh="#777777",Jh={init:function(){this.setColour(Kh),this.appendDummyInput("").appendField("from ").appendField(new ut.FieldTextInput("ESP32"),"path").appendField(" import ").appendField(new ut.FieldTextInput("*"),"module"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Qh={init:function(){this.setColour(Kh),this.appendDummyInput("").appendField("import ").appendField(new ut.FieldTextInput("module"),"module"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},zh={init:function(){this.setColour(Kh),this.appendDummyInput("").appendField(new ut.FieldTextInput("my_function"),"NAME"),this.itemCount_=1,this.arguments_=["x"],this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new ut.icons.MutatorIcon(["factory_create_with_item"],this))},mutationToDom:function(){var t=document.createElement("mutation");t.setAttribute("items",this.itemCount_);for(var e=0;ee?t[e]:'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ut.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},XM={init:function(){this.setColour(fM),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(ut.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},yM={init:function(){this.setColour(fM),this.appendDummyInput().appendField(ut.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},VM={init:function(){this.setColour(fM),this.appendDummyInput().appendField(ut.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},BM={init:function(){this.setColour(fM),this.appendDummyInput().appendField(ut.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").setCheck(String).appendField(ut.Msg.MIXLY_EMQX_SERVER).setAlign(ut.inputs.Align.RIGHT),this.appendValueInput("USERNAME").setCheck(String).appendField(ut.Msg.MIXLY_WIFI_USERNAME).setAlign(ut.inputs.Align.RIGHT),this.appendValueInput("PASSWORD").setCheck(String).appendField(ut.Msg.MIXLY_IOT_PASSWORD).setAlign(ut.inputs.Align.RIGHT),this.appendValueInput("PROJECT").setCheck(String).appendField(ut.Msg.MIXLY_EMQX_PROJECT).setAlign(ut.inputs.Align.RIGHT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},GM={init:function(){this.setColour(fM),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(ut.Msg.MIXLY_EMQX_PUBLISH_NEW).appendField(ut.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MSG").appendField(ut.Msg.HTML_BODY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_IOT_EMQX_PUBLISH_TOOLTIP)}},UM={init:function(){this.setColour(fM),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(ut.Msg.MIXLY_EMQX_SUBSCRIBE+ut.Msg.MIXLY_MICROBIT_MSG).appendField(ut.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("METHOD").appendField(ut.Msg.MIXLY_EMQX_SET_METHOD),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_IOT_EMQX_SUBSCRIBE_TOOLTIP)}},wM={init:function(){this.setColour(fM),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_DISCONNECT_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},kM={init:function(){this.setColour(fM),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(ut.Msg.MIXLY_EMQX_CONNECT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},HM={init:function(){this.setColour(fM),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_CHECK_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},WM={init:function(){this.setColour(fM),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROPYTHON_FORMAT).appendField(ut.Msg.MQTT_Topic),this.setInputsInline(!0),this.setOutput(!0)}},KM={init:function(){this.setColour(fM),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROPYTHON_FORMAT).appendField(ut.Msg.MIXLY_EMQX_PUBLISH_MSG),this.setInputsInline(!0),this.setOutput(!0)}},JM={init:function(){this.setColour(fM),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_ESP32_IOT_MAP_FORMATING),this.setOutput(!0)}},QM={init:function(){this.setColour(fM),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_MICROPYTHON_FORMAT+"(Json)"),this.setOutput(!0)}},zM={init:function(){this.setColour(fM),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(ut.Msg.MIXLY_EMQX_PING),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_IOT_EMQX_PING_TOOLTIP)}},qM={init:function(){this.setColour(fM),this.appendDummyInput().appendField("MixIO").appendField(ut.Msg.MIXLY_GET_NTP),this.appendValueInput("addr").appendField(ut.Msg.blynk_SERVER_ADD),this.setInputsInline(!0),this.setOutput(!0)}},jM={init:function(){this.setColour(fM),this.appendDummyInput().appendField(ut.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").appendField(ut.Msg.MIXLY_EMQX_SERVER).setAlign(ut.inputs.Align.RIGHT),this.appendValueInput("KEY").appendField(ut.Msg.CONTROLS_FOR_INPUT_WITH+ut.Msg.MIXLY_MIXIO_SHARE_KEY).setAlign(ut.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},ZM={init:function(){this.setColour(fM),this.appendDummyInput().appendField(ut.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").appendField(ut.Msg.MIXLY_EMQX_SERVER).setAlign(ut.inputs.Align.RIGHT),this.appendValueInput("KEY").appendField(ut.Msg.CONTROLS_FOR_INPUT_WITH+"Mixly Key").setAlign(ut.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},$M={init:function(){this.VISITOR_ID=rt.Config.BOARD.visitorId.str32.substring(0,8).toUpperCase(),this.setColour(fM),this.appendDummyInput("").appendField(new ut.FieldTextInput(this.visitorId),"VISITOR_ID"),this.setOutput(!0,null)},onchange:function(){const t=this.getFieldValue("VISITOR_ID");this.VISITOR_ID!==t&&this.setFieldValue(this.VISITOR_ID,"VISITOR_ID")}},tm={init:function(){this.setColour(fM),this.appendDummyInput().appendField("MixIO").appendField(ut.Msg.MSG.catEthernet_clinet),this.setOutput(!0),this.setInputsInline(!0)}},em={init:function(){this.setColour(fM),this.appendDummyInput().appendField("HTTP"+ut.Msg.MIXLY_Client),this.appendValueInput("addr").appendField(ut.Msg.DISPLAY_IMAGE_LET2),this.appendDummyInput().appendField(ut.Msg.MIXLY_REQUESTS_GET).appendField(ut.Msg.MIXLY_GET_CURRENT_TIME).appendField(ut.Msg.MIXLY_OPEN_DEBUG).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[ut.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},im={init:function(){this.setColour(fM),this.appendDummyInput().appendField("HTTP"+ut.Msg.MIXLY_Client).appendField(ut.Msg.MIXLY_GET).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_REQUESTS_LEN,"client_len"],[ut.Msg.MIXLY_REQUESTS_GET_LEN,"server_len"],[ut.Msg.MIXLY_REQUESTS_MESSAGE,"text"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},nm={init:function(){this.setColour(fM),this.appendDummyInput().appendField("MQTT"+ut.Msg.MIXLY_Client),this.appendValueInput("addr").appendField(ut.Msg.MIXLY_CONNECTTO),this.appendDummyInput().appendField(ut.Msg.MIXLY_INIT_SUBSCRIBE).appendField(ut.Msg.MQTT_Topic).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_GET_CURRENT_TIME,""]]),"key").appendField(ut.Msg.MIXLY_OPEN_DEBUG).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[ut.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"key2"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},sm={init:function(){this.setColour(fM),this.appendDummyInput().appendField("MQTT"+ut.Msg.MIXLY_Client).appendField(ut.Msg.MIXLY_GET).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_REQUESTS_LEN,"client_len"],[ut.Msg.MIXLY_REQUESTS_GET_LEN,"server_len"],[ut.Msg.MIXLY_REQUESTS_MESSAGE,"time_msg()"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},om=FM,_m=PM,pm=vM,am=YM,um=bM,rm=225,lm={init:function(){this.setColour(rm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_NETWORK_INIT),this.appendDummyInput().appendField(ut.Msg.MIXLY_NETWORK_MODE).appendField(new ut.FieldDropdown([["STA","STA"],["AP","AP"]]),"mode"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_NETWORK_INIT_TOOLTIP)}},dm={init:function(){this.setColour(rm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_NETWORK_WIFI_OPEN,"True"],[ut.Msg.MIXLY_NETWORK_WIFI_CLOSE,"False"]]),"op"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_NETWORK_WIFI_FLAG),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("op"),i=ut.Msg.MIXLY_ESP32_NETWORK_OPEN_TOOLTIP;return{True:ut.Msg.MIXLY_NETWORK_WIFI_OPEN,False:ut.Msg.MIXLY_NETWORK_WIFI_CLOSE}[e]+i}))}},Im={init:function(){this.setColour(rm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_NETWORK_WIFI_IS_ACTIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_NETWORK_WIFI_IS_ACTIVE)}},Tm={init:function(){this.setColour(rm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_NETWORK_WIFI_SCAN),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip((function(){return ut.Msg.MIXLY_ESP32_NETWORK_SCAN_TOOLTIP+{0:"ssid",1:"bssid",2:"channel",3:"RSSI",4:"authmode",5:"hidden",all:ut.Msg.MIXLY_NETWORK_WIFI_SCAN_ATTRIBUTE}.all}))}},hm={init:function(){this.setColour(rm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_ESP32_NETWORK_CONNECT),this.appendValueInput("id").setCheck(String).appendField(ut.Msg.HTML_NAME),this.appendValueInput("password").setCheck(String).appendField(ut.Msg.HTML_PASSWORD),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_NETWORK_CONNECT_TOOLTIP)}},Mm={init:function(){this.setColour(rm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_NETWORK_WIFI_CONNECT),this.appendDummyInput("").appendField(ut.Msg.MIXLY_SYMBOL_QUESTION),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_NETWORK_WIFI_CONNECT_TOOLTIP)}},mm={init:function(){this.setColour(rm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_ESP32_NETWORK_GET_WIFI),this.appendDummyInput("").appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_ESP32_NETWORK_IP,"0"],[ut.Msg.MIXLY_ESP32_NETWORK_MASK,"1"],[ut.Msg.MIXLY_ESP32_NETWORK_GATEWAY,"2"],["DNS","3"]]),"mode"),this.setOutput(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("mode");return ut.Msg.MIXLY_ESP32_NETWORK_GET_WIFI_TOOLTIP+{0:ut.Msg.MIXLY_ESP32_NETWORK_IP,1:ut.Msg.MIXLY_ESP32_NETWORK_MASK,2:ut.Msg.MIXLY_ESP32_NETWORK_GATEWAY,3:"DNS"}[e]}))}},Om={init:function(){this.setColour(rm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_ESP32_NETWORK_STOP_CONNECT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_NETWORK_STOP_TOOLTIP)}},Em={init:function(){this.setColour(rm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_ESP32_NETWORK_GET_WIFI),this.appendDummyInput().appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_NETWORK_WIFI_ESSID,"essid"],[ut.Msg.MIXLY_NETWORK_WIFI_CHANNEL,"channel"]]),"op"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_NETWORK_GET_WIFI_TOOLTIP)}},Rm={init:function(){this.setColour(rm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.LISTS_SET_INDEX_SET),this.appendValueInput("essid").setCheck(String).appendField(ut.Msg.MIXLY_NETWORK_WIFI_ESSID),this.appendValueInput("channel").setCheck(Number).appendField(ut.Msg.MIXLY_NETWORK_WIFI_CHANNEL),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_NETWORK_AP_CONNECT_TOOLTIP)}},cm={init:function(){this.setColour(rm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_ESP32_NETWORK_SERVER1),this.appendDummyInput("").appendField(ut.Msg.MIXLY_ESP32_NETWORK_SERVER2),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_NETWORK_SOCKET_CLOSE_TOOLTIP)}},gm={init:function(){this.setColour(rm),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_INIT).setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_TYPE).appendField(new ut.FieldDropdown([["TCP","TCP"],["UDP","UDP"]]),"mode"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("mode");return ut.Msg.MIXLY_ESP32_NETWORK_SOCKET_INIT_TOOLTIP+{TCP:"TCP",UDP:"UDP"}[e]}))}},Cm={init:function(){this.setColour(rm),this.appendValueInput("VAR").setCheck("var").appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_LET_SOCKET),this.appendValueInput("address").appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_BIND_TO_ADDRESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_NETWORK_SOCKET_BIND_TOOLTIP)}},Sm={init:function(){this.setColour(rm),this.appendValueInput("VAR").setCheck("var").appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_LET_SOCKET),this.appendValueInput("address").appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_CONNECT_TO_ADDRESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_NETWORK_SOCKET_CONNECT_TOOLTIP)}},Am={init:function(){this.setColour(rm),this.appendValueInput("VAR").setCheck("var"),this.appendValueInput("queue").setCheck(Number).appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_LISTEN).appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_QUEUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_NETWORK_SOCKET_LISTEN_TOOLTIP)}},Lm={init:function(){this.setColour(rm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_ACCEPT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_NETWORK_SOCKET_ACCEPT_TOOLTIP)}},Nm={init:function(){this.setColour(rm),this.appendValueInput("VAR").setCheck("var").appendField("TCP"),this.appendValueInput("size").setCheck(Number).appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_RECEIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_NETWORK_SOCKET_RECEIVE_TOOLTIP)}},Dm={init:function(){this.setColour(rm),this.appendValueInput("VAR").setCheck("var").appendField("TCP"),this.appendValueInput("content").appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_NETWORK_SOCKET_SEND_TOOLTIP)}},fm={init:function(){this.setColour(rm),this.appendValueInput("VAR").setCheck("var").appendField("UDP"),this.appendValueInput("size").setCheck(Number).appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_RECEIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_NETWORK_SOCKET_RECEIVE_FROM_TOOLTIP)}},Fm={init:function(){this.setColour(rm),this.appendValueInput("VAR").setCheck("var").appendField("UDP"),this.appendValueInput("content").appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.appendValueInput("address").appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_TO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_NETWORK_SOCKET_SEND_TO_TOOLTIP)}},Pm={init:function(){this.setColour(rm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_CLOSE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_NETWORK_SOCKET_CLOSE_TOOLTIP)}},vm={init:function(){this.setColour(rm),this.appendValueInput("DOMAIN").appendField(ut.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(ut.Msg.blockpy_REQUESTS_GET).appendField(new ut.FieldTextInput("response"),"VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.blockpy_REQUESTS_GET_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ut.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Ym={init:function(){this.appendValueInput("VAL");var t=[[ut.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE,"status_code"],[ut.Msg.blockpy_REQUESTS_GET_ATTR_TEXT,"text"],[ut.Msg.blockpy_REQUESTS_GET_ATTR_COOKIES,"cookies"],[ut.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT,"content"]];this.setColour(rm),this.appendDummyInput("").appendField(ut.Msg.MIXLY_MICROBIT_JS_GET).appendField(new ut.FieldDropdown(t),"ATTR"),this.setInputsInline(!0),this.setOutput(!0,String);var e=this;this.setTooltip((function(){var t=e.getFieldValue("DIR");return{clear:ut.Msg.MIXLY_TOOLTIP_TURTEL_CLEAR,reset:ut.Msg.MIXLY_TOOLTIP_TURTEL_RESET,home:ut.Msg.MIXLY_TOOLTIP_TURTEL_HOME}[t]}))}},xm={init:function(){this.appendValueInput("VAR").appendField(ut.Msg.DISPLAY_IMAGE_LET2).setCheck(String);this.setColour(rm),this.appendDummyInput("").appendField(ut.Msg.blockpy_CONDUCT).appendField(new ut.FieldDropdown([["post","post"],["put","put"],["delete","delete"],["head","head"],["option","option"]]),"DIR"),this.appendDummyInput("").appendField(ut.Msg.blockpy_REQUESTS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{forward:ut.Msg.MIXLY_TOOLTIP_TURTEL_FORWARD,backward:ut.Msg.MIXLY_TOOLTIP_TURTEL_BACKWARD}[e]}))}},bm={init:function(){this.setColour(rm),this.appendDummyInput("").appendField(ut.Msg.MIXLY_GET_NTP+"(NTP)"),this.appendValueInput("data").appendField(ut.Msg.blynk_SERVER_ADD),this.setOutput(!0,"Tuple"),this.setInputsInline(!0)}},Xm={init:function(){this.setColour(rm),this.appendDummyInput("").appendField(new ut.FieldDropdown([["ntp.aliyun.com","ntp.aliyun.com"],["ntp1.aliyun.com","ntp1.aliyun.com"],["ntp2.aliyun.com","ntp2.aliyun.com"],["ntp3.aliyun.com","ntp3.aliyun.com"],["ntp4.aliyun.com","ntp4.aliyun.com"],["ntp5.aliyun.com","ntp5.aliyun.com"],["ntp6.aliyun.com","ntp6.aliyun.com"],["ntp7.aliyun.com","ntp7.aliyun.com"],["time1.cloud.tencent.com","time1.cloud.tencent.com"],["time2.cloud.tencent.com","time2.cloud.tencent.com"],["time3.cloud.tencent.com","time3.cloud.tencent.com"],["time4.cloud.tencent.com","time4.cloud.tencent.com"],["time5.cloud.tencent.com","time5.cloud.tencent.com"]]),"op"),this.setOutput(!0)}},ym="#A58C5B",Vm={init:function(){this.setColour(ym),this.appendValueInput("PIN",Number).appendField(ut.Msg.MIXLY_BUTTON).appendField(ut.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(ut.Msg.MIXLY_IS_PRESSED),this.appendValueInput("STAT").appendField(ut.Msg.MIXLY_ELECLEVEL),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_SENOR_IS_PRESSED)}},Bm={init:function(){this.setColour(ym),this.appendValueInput("PIN",Number).appendField(ut.Msg.MIXLY_BUTTON).appendField(ut.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(ut.Msg.MIXLY_WAS_PRESSED),this.appendValueInput("STAT").appendField(ut.Msg.MIXLY_ELECLEVEL),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_SENOR_WAS_PRESSED)}},Gm={init:function(){this.setColour(ym),this.appendValueInput("PIN",Number).appendField(ut.Msg.MIXLY_BUTTON).appendField(ut.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET_PRESSES),this.appendValueInput("VAR").setCheck(Number).appendField(ut.Msg.MIXLY_GET_PRESSES_TIME),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(ut.Msg.PROCEDURES_DEFRETURN_RETURN+ut.Msg.MIXLY_BUTTON+ut.Msg.MIXLY_GET_PRESSES)}},Um={init:function(){this.setColour(ym),this.appendValueInput("PIN",Number).appendField(ut.Msg.MIXLY_BUTTON).appendField(ut.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(ut.Msg.MIXLY_MODE).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_RISING,"machine.Pin.IRQ_RISING"],[ut.Msg.MIXLY_FALLING,"machine.Pin.IRQ_FALLING"],[ut.Msg.MIXLY_CHANGE,"(machine.Pin.IRQ_RISING | machine.Pin.IRQ_FALLING)"]]),"mode"),this.appendValueInput("DO").appendField(ut.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.MIXLY_TOOLTIP_INOUT_ATTACHINTERRUPT)}},wm={init:function(){this.setColour(ym),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_shake,"shake"],[ut.Msg.MIXLY_UP,"up"],[ut.Msg.MIXLY_DOWN,"down"],[ut.Msg.MIXLY_LEFT,"left"],[ut.Msg.MIXLY_RIGHT,"right"],[ut.Msg.MIXLY_MICROBIT_face_up,"face up"],[ut.Msg.MIXLY_MICROBIT_face_down,"face down"],[ut.Msg.MIXLY_MICROBIT_freefall,"freefall"],["3g","3g"],["6g","6g"],["8g","8g"]]),"gesture"),this.appendStatementInput("DO").appendField(ut.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("gesture"),i=ut.Msg.MIXLY_MICROBIT_JS_CURRENT,n=ut.Msg.MSG.catSensor,s=ut.Msg.MIXLY_MICROBIT_JS_STATE,o=ut.Msg.MIXLY_MICROBIT_PERFORMANCE;return i+n+s+{shake:ut.Msg.MIXLY_MICROBIT_shake,up:ut.Msg.MIXLY_UP,down:ut.Msg.MIXLY_DOWN,left:ut.Msg.MIXLY_LEFT,right:ut.Msg.MIXLY_RIGHT,"face up":ut.Msg.MIXLY_MICROBIT_face_up,"face down":ut.Msg.MIXLY_MICROBIT_face_down,freefall:ut.Msg.MIXLY_MICROBIT_freefall,"3g":"3g","6g":"6g","8g":"8g"}[e]+o}))}},km={init:function(){this.setColour(ym),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_ADXL345).setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_JS_ACCELERATION).appendField(new ut.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=ut.Msg.MIXLY_MICROBIT_Direction,s=ut.Msg.MIXLY_MICROBIT_JS_ACCELERATION1;return i+{x:"x",y:"y",z:"z","(x,y,z)":ut.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},Hm={init:function(){this.setColour(ym),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_JS_LIGHT_LEVEL),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_SENSOR_LIGHT_LEVEL_TOOLTIP)}},Wm={init:function(){var t=[[ut.Msg.MIXLY_GETTEMPERATUE,"temperature"],[ut.Msg.MIXLY_GETHUMIDITY,"humidity"]];this.setColour(ym),this.appendValueInput("PIN",Number).appendField(new ut.FieldDropdown([["DHT11","DHT11"],["DHT22","DHT22"]]),"TYPE").appendField(ut.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(new ut.FieldDropdown(t),"WHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("WHAT");return{temperature:ut.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_TEM,relative_humidity:ut.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_HUM,tempandhum:ut.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_TEM_HUM}[t]}))}},Km={init:function(){this.setColour(ym),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_EXTERN_LIGHT),this.appendValueInput("PIN",Number).appendField(ut.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_EXTERN_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(ut.Msg.ESP32_SENSOR_NIXGO_LIGHT_TOOLTIP)}},Jm={init:function(){this.setColour(ym),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_EXTERN_SOUND),this.appendValueInput("PIN",Number).appendField(ut.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_EXTERN_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(ut.Msg.ESP32_SENSOR_NIXGO_SOUND_TOOLTIP)}},Qm={init:function(){this.setColour(ym),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new ut.FieldDropdown([[ut.Msg.TEXT_TRIM_LEFT,"left"],[ut.Msg.TEXT_TRIM_RIGHT,"right"]]),"direction").appendField(ut.Msg.MIXLY_ESP32_NEAR),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("direction"),i=ut.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP,n=ut.Msg.MIXLY_ESP32_NEAR;return i+{left:ut.Msg.TEXT_TRIM_LEFT,right:ut.Msg.TEXT_TRIM_RIGHT}[e]+n}))}},zm={init:function(){this.setColour(ym),this.appendValueInput("SUB").appendField("BMP280").setCheck("var"),this.appendDummyInput("").appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_GETTEMPERATUE,"get_BMP_temperature()"],[ut.Msg.MIXLY_GETPRESSURE,"get_BMP_pressure()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{"get_BMP_temperature()":ut.Msg.MIXLY_MICROBIT_SENSOR_BMP_temperature_TOOLTIP,"get_BMP_pressure()":ut.Msg.MIXLY_MICROBIT_SENSOR_BMP_press_TOOLTIP}[e]}))}},qm={init:function(){this.setColour(ym),this.appendValueInput("SUB").appendField("SHT20").setCheck("var"),this.appendDummyInput("").appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_GETTEMPERATUE,"get_SHT_temperature()"],[ut.Msg.MIXLY_GETHUMIDITY,"get_SHT_relative_humidity()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{"get_SHT_temperature()":ut.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,"get_SHT_relative_humidity()":ut.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},jm={init:function(){this.setColour(ym),this.appendValueInput("PIN",Number).appendField("DS18x20 "+ut.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(ut.Msg.MIXLY_GETTEMPERATUE),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(ut.Msg.MIXLY_MICROBIT_SENSOR_DS18X20_TOOLTIP)}},Zm={init:function(){this.setColour(ym),this.appendDummyInput("").appendField("LM35"+ut.Msg.MIXLY_TEMP),this.appendValueInput("PIN",Number).appendField(ut.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(ut.Msg.MIXLY_GETTEMPERATUE),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(ut.Msg.MIXLY_TOOLTIP_LM35)}},$m={init:function(){this.setColour(ym),this.appendValueInput("I2CSUB").appendField(ut.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_SETUP+ut.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new ut.FieldDropdown([["MPU9250","MPU9250"],["BMP280","BMP280"],["SHT20","SHT20"],["ADXL345","ADXL345"],["LTR308","LTR308"],["LTR381RGB","LTR381RGB"],["HP203X","HP203X"],["SHTC3","SHTC3"],["AHT21","AHT21"],["VL53L0X","VL53L0X"],["QMC5883L","QMC5883L"],["MAX30102","MAX30102"],["APDS9960","APDS9960"],["RFID","RFID"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setFieldValue("LTR308","key")}},tO={init:function(){this.setColour(ym),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_MAX30102+" MAX30102"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_ESP32_MAX30102_IR,"[0]"],[ut.Msg.MIXLY_ESP32_MAX30102_RED,"[1]"],[ut.Msg.MIXLY_ESP32_MAX30102_IR+","+ut.Msg.MIXLY_ESP32_MAX30102_RED,""]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},eO={init:function(){this.setColour(ym),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_APDS9960+" APDS9960"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_ESP32_APDS9960_COLOR,"color"],[ut.Msg.MIXLY_ESP32_APDS9960_GESTURE,"gesture"],[ut.Msg.MIXLY_ESP32_APDS9960_APPROACH,"proximity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},iO={init:function(){this.setColour(ym),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_EXTERN_LIGHT+" LTR308"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET_LIGHT_INTENSITY),this.setOutput(!0,Number),this.setInputsInline(!0)}},nO={init:function(){this.setColour(ym),this.appendValueInput("SUB").appendField(ut.Msg.HTML_COLOUR+ut.Msg.MSG.catSensor+" LTR381RGB").setCheck("var"),this.appendDummyInput("").appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_GET+ut.Msg.HTML_COLOUR,"[2]"],[ut.Msg.MIXLY_GET+ut.Msg.MIXLY_IR_STRENGTH,"[1]"],[ut.Msg.MIXLY_GET+ut.Msg.MIXLY_LIGHT_STRENGTH,"[0]"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},sO={init:function(){this.setColour(ym),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_EXTERN_LIGHTUV+" LTR390UV").setCheck("var"),this.appendDummyInput().appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_GET_ENV_LIGHT,"E"],[ut.Msg.MIXLY_GET_ULTRAVIOLET,"U"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},oO={init:function(){this.setColour(ym),this.appendDummyInput().appendField(ut.Msg.MIXLY_LASER_RANGE+" VL53L0X"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET_DISTANCE+"(mm)"),this.setOutput(!0,Number),this.setInputsInline(!0)}},_O={init:function(){this.setColour(ym),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_TEM_HUM+" SHTC3").setCheck("var"),this.appendDummyInput("").appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_GETTEMPERATUE,"temperature"],[ut.Msg.MIXLY_GETHUMIDITY,"humidity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{temperature:ut.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,humidity:ut.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},pO={init:function(){this.setColour(ym),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_TEM_HUM+" AHT21").setCheck("var"),this.appendDummyInput("").appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_GETTEMPERATUE,"temperature"],[ut.Msg.MIXLY_GETHUMIDITY,"humidity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{temperature:ut.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,relative_humidity:ut.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},aO={init:function(){this.setColour(ym),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_Altitude+ut.Msg.MSG.catSensor+" HP203X").setCheck("var"),this.appendDummyInput("").appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_GETPRESSURE,"pressure()"],[ut.Msg.MIXLY_GETTEMPERATUE,"temperature()"],[ut.Msg.MIXLY_GET_ALTITUDE,"altitude()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},uO={init:function(){this.setColour(ym),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_MIXGOPE_FIELD+ut.Msg.MSG.catSensor+" QMC5883L").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_MICROBIT_JS_GET).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"get_bearing()"],[ut.Msg.MIXLY_TEMPERATURE,"get_temp()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},rO={init:function(){this.setColour(ym),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_shake,"shake"],[ut.Msg.MIXLY_UP,"up"],[ut.Msg.MIXLY_DOWN,"down"],[ut.Msg.MIXLY_LEFT,"left"],[ut.Msg.MIXLY_RIGHT,"right"],[ut.Msg.MIXLY_MICROBIT_face_up,"face up"],[ut.Msg.MIXLY_MICROBIT_face_down,"face down"]]),"gesture"),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("gesture"),i=ut.Msg.MIXLY_MICROBIT_JS_CURRENT,n=ut.Msg.MSG.catSensor,s=ut.Msg.MIXLY_MICROBIT_JS_STATE,o=ut.Msg.MIXLY_MICROBIT_PERFORMANCE;return i+n+s+{shake:ut.Msg.MIXLY_MICROBIT_shake,up:ut.Msg.MIXLY_UP,down:ut.Msg.MIXLY_DOWN,left:ut.Msg.MIXLY_LEFT,right:ut.Msg.MIXLY_RIGHT,"face up":ut.Msg.MIXLY_MICROBIT_face_up,"face down":ut.Msg.MIXLY_MICROBIT_face_down}[e]+o}))}},lO={init:function(){this.setColour(ym),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_JS_ACCELERATION).appendField(new ut.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=ut.Msg.MIXLY_MICROBIT_Direction,s=ut.Msg.MIXLY_MICROBIT_JS_ACCELERATION1;return i+{x:"x",y:"y",z:"z","(x,y,z)":ut.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},dO={init:function(){this.setColour(ym),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_JS_GET+ut.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH).appendField(new ut.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=ut.Msg.MIXLY_MICROBIT_Direction,s=ut.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH;return i+{x:"x",y:"y",z:"z","(x,y,z)":ut.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},IO={init:function(){this.setColour(ym),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+ut.Msg.MIXLY_ESP32_SENOR_GYRO).appendField(new ut.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=ut.Msg.MIXLY_MICROBIT_Direction,s=ut.Msg.MIXLY_ESP32_SENOR_GYRO;return i+{x:"x",y:"y",z:"z","(x,y,z)":ut.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},TO={init:function(){this.setColour(ym),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS)}},hO={init:function(){this.setColour(ym),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_GETTEMPERATUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_GETTEMPERATUE)}},MO={init:function(){this.setColour(ym),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_JS_GET_COMPASS).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH,"strength"],[ut.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"heading"]]),"compass"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("compass");return ut.Msg.MIXLY_MICROBIT_JS_GET_COMPASS+{strength:ut.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH,heading:ut.Msg.MIXLY_MICROBIT_JS_BY_ANGLE}[e]}))}},mO={init:function(){this.setColour(ym),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_Reset_COMPASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MICROBIT_Reset_COMPASS)}},OO={init:function(){this.setColour(ym),this.appendValueInput("SPISUB").appendField(ut.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_SETUP+ut.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new ut.FieldDropdown([["RFID","RFID"],["WS-LoRa","Weather"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setFieldValue("RFID","key")}},EO={init:function(){this.setColour(ym),this.appendDummyInput().appendField("RFID"+ut.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(ut.Msg.MIXLY_LIST_INDEX),this.appendDummyInput("").appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_RFID_READ_CARD_UID,"id"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL,"content"],[ut.Msg.MIXLY_ALL,"ALL"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},RO={init:function(){this.setColour(ym),this.appendDummyInput().appendField("RFID"+ut.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_RFID_READ_CARD_UID),this.setOutput(!0,Number),this.setInputsInline(!0)}},cO={init:function(){this.setColour(ym),this.appendDummyInput().appendField("RFID"+ut.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(ut.Msg.MIXLY_LIST_INDEX),this.appendDummyInput("").appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL),this.setOutput(!0,"Tuple"),this.setInputsInline(!0)}},gO={init:function(){this.setColour(ym),this.appendDummyInput().appendField(ut.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(ut.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(ut.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},CO={init:function(){this.setColour(ym),this.appendDummyInput().appendField(ut.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(ut.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(ut.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.appendDummyInput().appendField(ut.Msg.RETURN_SUCCESS_OR_NOT),this.setInputsInline(!0),this.setOutput(!0,Boolean)}},SO={init:function(){this.setColour(ym),this.appendDummyInput().appendField("RFID"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput("").appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_RFID_SCAN_OK,"0"],[ut.Msg.MIXLY_RFID_SCAN_NOTAGERR,"1"],[ut.Msg.MIXLY_RFID_SCAN_ERROR,"2"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},AO={init:function(){this.setColour(ym),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_MICROBIT_JS_GET).appendField(new ut.FieldDropdown([["全部(元组)","data()[0]"],["全部(json)","data()[1]"],["全部(json,附带位置信息)","data()[2]"],["编号","data()[0][0]"],["电量","data()[0][1]"],["风速","data()[0][2]"],["阵风","data()[0][3]"],["风向","data()[0][4]"],["雨量","data()[0][5]"],["温度","data()[0][6]"],["湿度","data()[0][7]"],["光照","data()[0][8]"],["紫外线","data()[0][9]"],["大气压","data()[0][10]"],["信号强度","data()[0][11]"],["信噪比","data()[0][12]"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip("返回气象数据元组 data= (设备id,电池状态,风速m/s,阵风m/s,风向°,雨量mm,温度℃,湿度%,光照Lux,UVI,大气压Pa,信号强度dB,信噪比dB)")}},LO={init:function(){this.setColour(ym),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_SERIAL_AVAILABLE),this.setOutput(!0,Number),this.setInputsInline(!0)}},NO={init:function(){this.setColour(ym),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendValueInput("BASE").appendField("以主题"),this.appendDummyInput("").appendField("串口发送至MixIO"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},DO={init:function(){this.setColour(ym),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.itemCount_=2,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new ut.icons.MutatorIcon(["weather_set_label_item"],this)),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip()},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("weather_set_label_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n>6),i.push(128|63&o)):(2048<=o&&o<=55295||57344<=o&&o<=65535)&&(n+=3,i.push(224|15&o>>12),i.push(128|63&o>>6),i.push(128|63&o))}for(s=0;s>8,255&n].concat(i)}(t,!0),i="",n=0;n=0?"0x700000":["mixgo_zero"].indexOf(n)>=0?"0xE00000":"0x3A0000","32x12 Matrix"==_?(e.definitions_.import_matrix32x12="import matrix32x12",i=s+" = matrix32x12.Matrix("+o+",font_address="+p+")\n"):"16x8 Matrix"==_&&(e.definitions_.import_matrix16x8="import matrix16x8",i=s+" = matrix16x8.Matrix("+o+")\n"),i},VA=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},BA=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",space = "+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+",center = "+this.getFieldValue("center")+")\n"},GA=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},UA=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",delay = "+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},wA=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},kA=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",speed ="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+",space = "+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+")\n"},HA=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".fill(0)\n"+i+".show()\n"},WA=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("OP")+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")\n"},KA=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+"))",e.ORDER_ATOMIC]},JA=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".pixel(int("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+"), int("+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+"), "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"+i+".show()\n"},QA=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".get_brightness()",e.ORDER_ATOMIC]},zA=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".set_brightness("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+")\n"},qA=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("image"),e.ORDER_ATOMIC]},jA=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".map_"+t.getFieldValue("OP")+"("+e.valueToCode(t,"A",e.ORDER_ATOMIC)+","+e.valueToCode(t,"B",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},ZA=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".map_invert("+e.valueToCode(t,"A",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},$A=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC);return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+" = ssd1306.SSD1306_I2C("+e.valueToCode(this,"row",e.ORDER_ATOMIC)+","+e.valueToCode(this,"column",e.ORDER_ATOMIC)+","+i+")\n"},tL=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_str("+(e.valueToCode(this,"Text_line1",e.ORDER_ASSIGNMENT)||"''")+","+(e.valueToCode(this,"Text_line2",e.ORDER_ASSIGNMENT)||"''")+","+(e.valueToCode(this,"Text_line3",e.ORDER_ASSIGNMENT)||"''")+","+(e.valueToCode(this,"Text_line4",e.ORDER_ASSIGNMENT)||"''")+")\n"},eL=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_line("+e.valueToCode(this,"x1",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"y1",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"x2",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"y2",e.ORDER_ATOMIC)+", 1)\n"},iL=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),o=e.valueToCode(this,"width",e.ORDER_ATOMIC),_=e.valueToCode(this,"height",e.ORDER_ATOMIC),p="TRUE"==this.getFieldValue("fill")?"True":"False",a=this.getFieldValue("OP");switch(p){case"True":return i+".show_fill_rect("+n+", "+s+", "+o+", "+_+","+a+")\n";case"False":return i+".show_rect("+n+", "+s+", "+o+", "+_+","+a+")\n"}},nL=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),o=e.valueToCode(this,"length",e.ORDER_ATOMIC);return i+".show_"+this.getFieldValue("direction")+"("+n+", "+s+", "+o+", 1)\n"},sL=function(t,e){return["ON"==this.getFieldValue("ONOFF")?"1":"0",e.ORDER_ATOMIC]},oL=function(t,e){e.definitions_.import_matrix="import matrix";var i=t.getFieldValue("OP");return[e.valueToCode(t,"img",e.ORDER_ATOMIC)+".shift_"+i+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},_L=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return e.definitions_.import_ssd1306="import ssd1306",e.definitions_.import_machine="import machine",i+".show_fill("+this.getFieldValue("key")+")\n"},pL=function(t,e){return["matrix.Image."+this.getFieldValue("ANIMATION"),e.ORDER_ATOMIC]},aL=function(t,e){var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),o=e.valueToCode(this,"r",e.ORDER_ATOMIC),_="TRUE"==this.getFieldValue("fill")?"True":"False",p=this.getFieldValue("OP");switch(_){case"True":return i+".show_fill_circle("+n+", "+s+", "+o+", "+p+")\n";case"False":return i+".show_circle("+n+", "+s+", "+o+", "+p+")\n"}},uL=function(t,e){var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var n=e.valueToCode(this,"x0",e.ORDER_ATOMIC),s=e.valueToCode(this,"y0",e.ORDER_ATOMIC),o=e.valueToCode(this,"x1",e.ORDER_ATOMIC),_=e.valueToCode(this,"y1",e.ORDER_ATOMIC),p=e.valueToCode(this,"x2",e.ORDER_ATOMIC),a=e.valueToCode(this,"y2",e.ORDER_ATOMIC),u="TRUE"==this.getFieldValue("fill")?"True":"False",r=this.getFieldValue("OP");switch(u){case"True":return i+".show_fill_triangle("+n+", "+s+", "+o+", "+_+", "+p+", "+a+", "+r+")\n";case"False":return i+".show_triangle("+n+", "+s+", "+o+", "+_+", "+p+", "+a+", "+r+")\n"}},rL=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_bitmap("+e.valueToCode(this,"START_X",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"START_Y",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"bitmap_name",e.ORDER_ATOMIC)+","+e.valueToCode(this,"WIDTH",e.ORDER_ATOMIC)+","+e.valueToCode(this,"HEIGHT",e.ORDER_ATOMIC)+")\n"},lL=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_pixel("+e.valueToCode(this,"POS_X",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"POS_Y",e.ORDER_ATOMIC)+")\n"},dL=function(t,e){var i,n=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),s=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),o=this.getFieldValue("key");return"TM1650"==o?(e.definitions_.import_tm1650="import tm1650",i=n+" = tm1650."+o+"("+s+")\n"):"TM1637"==o&&(e.definitions_.import_tm1637="import tm1637",i=n+" = tm1637."+o+"("+s+")\n"),i},IL=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+"."+this.getFieldValue("STAT")+"()\n"},TL=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".shownum("+e.valueToCode(this,"VALUE",e.ORDER_ATOMIC)+")\n"},hL=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".showDP("+e.valueToCode(this,"NO",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"},ML=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".intensity("+e.valueToCode(this,"VALUE",e.ORDER_ATOMIC)+")\n"},mL=function(t,e){e.definitions_.import_st7789="import st7789";var i=rt.Boards.getSelectedBoardKey().split(":")[2],n="";n=["mpython","mixgo_pe","mixgo_nova"].indexOf(i)>=0?"0x700000":["mixgo_zero"].indexOf(i)>=0?"0xE00000":"0x3A0000";var s=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),o=e.valueToCode(this,"SPISUB",e.ORDER_ATOMIC),_=e.valueToCode(this,"PINCS",e.ORDER_ATOMIC),p=e.valueToCode(this,"PINDC",e.ORDER_ATOMIC);return s+" = st7789.ST7789("+o+","+e.valueToCode(this,"WIDTH",e.ORDER_ATOMIC)+","+e.valueToCode(this,"HEIGHT",e.ORDER_ATOMIC)+",dc_pin="+p+",cs_pin="+_+",rotation="+this.getFieldValue("rotate")+",font_address="+n+")\n"},OL=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a=i+".image("+n+",x = "+s+",y = "+o+",size = "+_+",color="+p+")\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a=i+".image("+n+",x = "+s+",y = "+o+",size = "+_+",color=0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},EL=function(t,e){var i="0x"+this.getFieldValue("COLOR").slice(1);return["0x"+((16252928&i)>>8|(64512&i)>>5|(255&i)>>3).toString(16),e.ORDER_ATOMIC]},RL=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),u=this.getFieldValue("center");if("0x"==a.slice(0,2))var r=i+".shows("+n+",x = "+s+",y = "+o+",size = "+_+",space = "+p+",center = "+u+",color="+a+")\n";else{const t=a.match(/\d+/g);var l="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");r=i+".shows("+n+",x = "+s+",y = "+o+",size = "+_+",space = "+p+",center = "+u+",color=0x"+((16252928&l)>>8|(64512&l)>>5|(255&l)>>3).toString(16)+")\n"}return r},cL=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==_.slice(0,2))var p=i+".frame("+n+",size = "+s+",delay = "+o+",color="+_+")\n";else{const t=_.match(/\d+/g);var a="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");p=i+".frame("+n+",size = "+s+",delay = "+o+",color=0x"+((16252928&a)>>8|(64512&a)>>5|(255&a)>>3).toString(16)+")\n"}return p},gL=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==a.slice(0,2))var u=i+".scroll("+n+",y = "+s+",size = "+o+",speed ="+_+",space = "+p+",color="+a+")\n";else{const t=a.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u=i+".scroll("+n+",y = "+s+",size = "+o+",speed ="+_+",space = "+p+",color=0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\n"}return u},CL=function(t,e){return e.definitions_.import_st7789="import st7789",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".fill(st7789."+this.getFieldValue("key")+")\n"},SL=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"x1",e.ORDER_ATOMIC),s=e.valueToCode(this,"y1",e.ORDER_ATOMIC),o=e.valueToCode(this,"x2",e.ORDER_ATOMIC),_=e.valueToCode(this,"y2",e.ORDER_ATOMIC),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a=i+".line("+n+", "+s+", "+o+", "+_+", color="+p+")\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a=i+".line("+n+", "+s+", "+o+", "+_+", color=0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},AL=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),s=this.getFieldValue("key"),o=e.valueToCode(this,"ADDR",e.ORDER_ATOMIC);return e.definitions_.import_i2clcd="import i2clcd",i+" = i2clcd.LCD("+n+",lcd_width="+s+",i2c_addr="+o+")\n"},LL=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",column = "+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+",line = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",center = "+this.getFieldValue("center")+")\n"},NL=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".print("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",column = "+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+",line = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",delay="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},DL=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".backlight("+this.getFieldValue("key")+")\n"},fL=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".clear()\n"},FL=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),s=e.valueToCode(this,"ADDR",e.ORDER_ATOMIC),o=rt.Boards.getSelectedBoardKey().split(":")[2],_="";return _=["mpython","mixgo_pe","mixgo_nova"].indexOf(o)>=0?"0x700000":["mixgo_zero"].indexOf(o)>=0?"0xE00000":"0x3A0000",e.definitions_.import_oled128x64="import oled128x64",i+" = oled128x64.OLED("+n+",address="+s+",font_address="+_+")\n"},PL=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".image("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},vL=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".image("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",x = "+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+",y = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",size = "+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+")\n"},YL=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},xL=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",x = "+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+",y = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",size = "+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+",space = "+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+",center = "+this.getFieldValue("center")+")\n"},bL=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},XL=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",size = "+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+",delay = "+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},yL=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},VL=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",y = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",size = "+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+",speed ="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+",space = "+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+")\n"},BL=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".fill(0)\n"+i+".show()\n"},GL=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("OP")+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")\n"},UL=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+"))",e.ORDER_ATOMIC]},wL=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".pixel(int("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+"), int("+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+"), "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"+i+".show()\n"},kL=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),o=e.valueToCode(t,"w",e.ORDER_ATOMIC),_=e.valueToCode(t,"h",e.ORDER_ATOMIC),p=t.getFieldValue("state");return i+"."+t.getFieldValue("shape")+"("+n+", "+s+", "+o+", "+_+", "+p+")\n"+i+".show()\n"},HL=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),o=e.valueToCode(t,"length",e.ORDER_ATOMIC),_=t.getFieldValue("state");return i+"."+("0"==t.getFieldValue("dir_h_v")?"v":"h")+"line("+n+", "+s+", "+o+", "+_+")\n"+i+".show()\n"},WL=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".line("+e.valueToCode(t,"x1",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"y1",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"x2",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"y2",e.ORDER_ATOMIC)+", "+t.getFieldValue("state")+")\n"+i+".show()\n"},KL=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix","onboard_matrix.shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},JL=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),o=this.getFieldValue("center");return"mixgo_zero"==i||"mixgo_nova"==i?(e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft","onboard_tft.shows("+n+",space = "+s+",center = "+o+")\n"):(e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix","onboard_matrix.shows("+n+",space = "+s+",center = "+o+")\n")},QL=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];if("mpython"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var n="onboard_oled.frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";n="onboard_matrix.frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}return n},zL=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix","onboard_matrix.frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",delay = "+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},qL=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];if("mpython"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var n="onboard_oled.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";n="onboard_matrix.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}return n},jL=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix","onboard_matrix.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",speed ="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+",space = "+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+")\n"},ZL=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix",["onboard_matrix."+t.getFieldValue("image"),e.ORDER_ATOMIC]},$L=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix",["onboard_matrix."+t.getFieldValue("image"),e.ORDER_ATOMIC]},tN=function(t,e){var i={"#000000":"0","#ff0000":"1"};function n(t){let e="";if(t.length%2==1&&(t="0"+t),t.length<8){let e=8-t.length;for(let i=1;i<=e;i++)t="0"+t}for(let i=1;i<=t.length;i++)i%2==0&&i!==t.length?e=e+t[i-1]+",0x":e+=t[i-1];return"0x"+e}let s=[];for(let e=0;e<12;e++){let o="",_=0,p=0;for(let n=0;n<32;n++)n<8?p=7-n:n<16?p=23-n:n<24?p=39-n:n<32&&(p=55-n),_+=Number(i[t.getFieldValue(e+"-"+n)])*Math.pow(2,31-p);o+=n(_.toString(16)),s.unshift(o)}let o=[];for(let t=0;t>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},vN=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=this.getFieldValue("center"),u=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==u.slice(0,2))var r="onboard_tft.shows("+n+",x = "+s+",y = "+o+",size = "+_+",space = "+p+",center = "+a+",color="+u+")\n";else{const t=u.match(/\d+/g);var l="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");r="onboard_tft.shows("+n+",x = "+s+",y = "+o+",size = "+_+",space = "+p+",center = "+a+",color=0x"+((16252928&l)>>8|(64512&l)>>5|(255&l)>>3).toString(16)+")\n"}return r},YN=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_tft","onboard_tft.frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",color=0xffff)\n"},xN=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==_.slice(0,2))var p="onboard_tft.frame("+n+",size = "+s+",delay = "+o+",color="+_+")\n";else{const t=_.match(/\d+/g);var a="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");p="onboard_tft.frame("+n+",size = "+s+",delay = "+o+",color=0x"+((16252928&a)>>8|(64512&a)>>5|(255&a)>>3).toString(16)+")\n"}return p},bN=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_tft","onboard_tft.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",color=0xffff)\n"},XN=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==a.slice(0,2))var u="onboard_tft.scroll("+n+",y = "+s+",size = "+o+",speed ="+_+",space = "+p+",color="+a+")\n";else{const t=a.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u="onboard_tft.scroll("+n+",y = "+s+",size = "+o+",speed ="+_+",space = "+p+",color=0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\n"}return u},yN=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),o=e.valueToCode(t,"w",e.ORDER_ATOMIC),_=e.valueToCode(t,"h",e.ORDER_ATOMIC),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),a=t.getFieldValue("shape");if("0x"==p.slice(0,2))var u="onboard_tft."+a+"("+n+", "+s+", "+o+", "+_+", "+p+")\nonboard_tft.show()\n";else{const t=p.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u="onboard_tft."+a+"("+n+", "+s+", "+o+", "+_+", 0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\nonboard_tft.show()\n"}return u},VN=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),o=e.valueToCode(t,"length",e.ORDER_ATOMIC),_=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),p=t.getFieldValue("dir_h_v");if("0x"==_.slice(0,2))var a="onboard_tft."+("0"==p?"v":"h")+"line("+n+", "+s+", "+o+", "+_+")\nonboard_tft.show()\n";else{const t=_.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a="onboard_tft."+("0"==p?"v":"h")+"line("+n+", "+s+", "+o+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\nonboard_tft.show()\n"}return a},BN=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x1",e.ORDER_ATOMIC),s=e.valueToCode(t,"y1",e.ORDER_ATOMIC),o=e.valueToCode(t,"x2",e.ORDER_ATOMIC),_=e.valueToCode(t,"y2",e.ORDER_ATOMIC),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a="onboard_tft.line("+n+", "+s+", "+o+", "+_+", "+p+")\nonboard_tft.show()\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a="onboard_tft.line("+n+", "+s+", "+o+", "+_+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\nonboard_tft.show()\n"}return a},GN=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";return"onboard_tft.fill(0)\nonboard_tft.show()\n"},UN=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft","onboard_tft."+t.getFieldValue("OP")+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")\n"},wN=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft",["hex(onboard_tft.pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+")))",e.ORDER_ATOMIC]},kN=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==o.slice(0,2))var _="onboard_tft.pixel(int("+n+"), int("+s+"), "+o+")\nonboard_tft.show()\n";else{const t=o.match(/\d+/g);var p="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");_="onboard_tft.pixel(int("+n+"), int("+s+"), 0x"+((16252928&p)>>8|(64512&p)>>5|(255&p)>>3).toString(16)+")\nonboard_tft.show()\n"}return _},HN=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";return["onboard_tft.get_brightness()",e.ORDER_ATOMIC]},WN=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft","onboard_tft.set_brightness("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+")\n"},KN=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"VAR",e.ORDER_ASSIGNMENT);if("0x"==n.slice(0,2))var s="onboard_tft.fill("+n+")\nonboard_tft.show()\n";else{const t=n.match(/\d+/g);var o="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");s="onboard_tft.fill(0x"+((16252928&o)>>8|(64512&o)>>5|(255&o)>>3).toString(16)+")\nonboard_tft.show()\n"}return s},JN=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock";var n=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a=_+"=Clock("+n+","+s+","+o+","+p+")\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a=_+"=Clock("+n+","+s+","+o+",0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},QN=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".set_rtctime()\n"},zN=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".set_time("+e.valueToCode(this,"h",e.ORDER_ASSIGNMENT)+","+e.valueToCode(this,"m",e.ORDER_ASSIGNMENT)+","+e.valueToCode(this,"s",e.ORDER_ASSIGNMENT)+")\n"},qN=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".draw_clock()\n"},jN=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock";var n=e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==s.slice(0,2))var o=n+".clear("+s+")\n";else{const t=s.match(/\d+/g);var _="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");o=n+".clear(0x"+((16252928&_)>>8|(64512&_)>>5|(255&_)>>3).toString(16)+")\n"}return o},ZN=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),o=e.valueToCode(t,"r",e.ORDER_ATOMIC),_=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),p=t.getFieldValue("shape");if("0x"==_.slice(0,2))var a="onboard_tft.ellipse("+n+", "+s+", "+o+", "+o+", "+_+","+p+")\nonboard_tft.show()\n";else{const t=_.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a="onboard_tft.ellipse("+n+", "+s+", "+o+", "+o+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+","+p+")\nonboard_tft.show()\n"}return a},$N=function(t,e){var i=this.getFieldValue("path"),n=this.getFieldValue("module");return e.definitions_["import_"+i+"_"+n]="from "+i+" import "+n,""},tD=function(t,e){var i=this.getFieldValue("module");return e.definitions_["import_"+i]="import "+i,""},eD=function(t,e){for(var i=this.getFieldValue("NAME"),n=new Array(this.itemCount_),s=0;s {\n"+e.statementToCode(this,"do")+"})\n"},Hv=function(){return"control.reset()\n"},Wv=function(t,e){return"control.waitMicros("+(e.valueToCode(this,"data",e.ORDER_ATOMIC)||rt.Profile.default.serial)+")\n"},Kv=function(t,e){return"control.raiseEvent("+(e.valueToCode(this,"system_event_bus_source",e.ORDER_ATOMIC)||rt.Profile.default.serial)+", "+(e.valueToCode(this,"system_event_bus_value",e.ORDER_ATOMIC)||rt.Profile.default.serial)+")\n"},Jv=function(t,e){return"control.onEvent("+(e.valueToCode(this,"system_event_bus_source",e.ORDER_ATOMIC)||rt.Profile.default.serial)+", "+(e.valueToCode(this,"system_event_bus_value",e.ORDER_ATOMIC)||rt.Profile.default.serial)+", () => {\n"+e.statementToCode(this,"do")+")\n"},Qv=function(t,e){return["control.eventTimestamp()",e.ORDER_ATOMIC]},zv=function(t,e){return["control.eventValue()",e.ORDER_ATOMIC]},qv=function(t,e){return[this.getFieldValue("key"),e.ORDER_ATOMIC]},jv=function(t,e){return[this.getFieldValue("key"),e.ORDER_ATOMIC]},Zv=function(t,e){return["control.deviceName()",e.ORDER_ATOMIC]},$v=function(t,e){return["control.deviceSerialNumber()",e.ORDER_ATOMIC]},tY=function(t,e){return"panic("+(e.valueToCode(this,"STATUS_CODE",e.ORDER_ATOMIC)||"1000")+")\n"},eY=function(t,e){switch(e.definitions_.import_time="import time",this.getFieldValue("Time")){case"ms":return["time.ticks_ms()",e.ORDER_ATOMIC];case"us":return["time.ticks_us()",e.ORDER_ATOMIC]}},iY=function(){return"while True:\n pass\n"},nY=function(t,e){return e.definitions_.import_mixgo="import mixgo","reset()\n"},sY=function(t,e){return e.definitions_.import_os="import os","os.uname()"},oY=function(t,e){e.definitions_.import_time="import time";var i=e.valueToCode(this,"DELAY_TIME",e.ORDER_ATOMIC)||"1000";switch(this.getFieldValue("Time")){case"s":return"time.sleep("+i+")\n";case"ms":return"time.sleep_ms("+i+")\n";case"us":return"time.sleep_us("+i+")\n"}},_Y=function(t,e){e.definitions_.import_time="import time";var i=e.valueToCode(this,"DELAY_TIME",e.ORDER_ATOMIC)||"1000";switch(this.getFieldValue("Time")){case"s":return"time.sleep("+i+")\n";case"ms":return"time.sleep_ms("+i+")\n";case"us":return"time.sleep_us("+i+")\n"}},pY=function(t,e){return e.definitions_.import_mixgo="import mixgo",(e.valueToCode(this,"VAR",e.ORDER_NONE)||"None")+".init(period = "+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+", mode = Timer."+(e.valueToCode(this,"mode",e.ORDER_NONE)||"None")+", callback = "+(e.valueToCode(this,"callback",e.ORDER_NONE)||"None")+")\n"},aY=function(t,e){return e.definitions_.import_machine="import machine",(e.valueToCode(this,"VAR",e.ORDER_NONE)||"None")+".init(period = "+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+", mode = machine.Timer."+this.getFieldValue("mode")+", callback = "+(e.valueToCode(this,"callback",e.ORDER_NONE)||"None")+")\n"},uY=function(t,e){return e.definitions_.import_time="import time",["time.ticks_diff("+(e.valueToCode(this,"END",e.ORDER_NONE)||"0")+", "+(e.valueToCode(this,"START",e.ORDER_NONE)||"0")+")",e.ORDER_ATOMIC]},rY=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return e.definitions_.import_machine="import machine",i+" = machine.Timer(0)\n"},lY=function(t,e){return e.definitions_.import_machine="import machine","wdt = machine.WDT(timeout= "+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+")\n"},dY=function(t,e){e.definitions_.import_machine="import machine";return"wdt.feed()\n"},IY=function(t,e){e.definitions_.import_machine="import machine";return"machine.reset()\n"},TY=function(t,e){e.definitions_.import_bitbot_onboard_bot51="from bitbot import onboard_bot51";return"onboard_bot51.shutdown()\n"},hY=rY,MY=aY,mY=uY,OY=oY,EY=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api."+this.getFieldValue("mode")+"("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+","+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},RY=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api."+this.getFieldValue("mode")+"("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+","+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+","+e.valueToCode(this,"day",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},cY=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api.weather_hourly("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+","+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+","+e.valueToCode(this,"hour",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},gY={};gY["飞乙"]={description:"MicroPython[ESP32C3 Bitbot]",digital_pin:rt.Profile.generate(["0-11","18-21"]),input_pin:rt.Profile.generate(["0-11","18-21"]),output_pin:rt.Profile.generate(["0-11","18-21"]),pwm_input:rt.Profile.generate(["0-11","18-21"],"pwm","pwm"),analog_input:rt.Profile.generate(["0-5"],"adc","adc"),pwm_output:rt.Profile.generate(["0-11","18-21"],"pwm","pwm"),analog_output:rt.Profile.generate(["0-5"],"adc","adc"),espnow_channel:rt.Profile.generate(["1-13"]),haskylens_model:rt.Profile.generate(["0-4"]),digital:rt.Profile.generate(["0-11","18-21"],"pin","pin"),pwm_pin:rt.Profile.generate(["0-11","18-21"]),pwm:rt.Profile.generate(["0-11","18-21"],"pwm","pwm"),analog_pin:rt.Profile.generate(["0-5"]),analog:rt.Profile.generate(["0-5"],"adc","adc"),button:[["A","button_a"],["B","button_b"]],axis:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"]],exlcdh:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"],["10","10"],["11","11"]],exlcdv:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"],["10","10"],["11","11"]],brightness:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"]],tts_voice:rt.Profile.generate(["0-16"]),tts_builtin_music:rt.Profile.generate(["0-47"]),tts_bgmusic:rt.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["SILLY","onboard_matrix.SILLY"],["FABULOUS","onboard_matrix.FABULOUS"],["SURPRISED","onboard_matrix.SURPRISED"],["ASLEEP","onboard_matrix.ASLEEP"],["ANGRY","onboard_matrix.ANGRY"],["CONFUSED","onboard_matrix.CONFUSED"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"],["LEFT_ARROW","onboard_matrix.LEFT_ARROW"],["RIGHT_ARROW","onboard_matrix.RIGHT_ARROW"],["DRESS","onboard_matrix.DRESS"],["TRANSFORMERS","onboard_matrix.TRANSFORMERS"],["SCISSORS","onboard_matrix.SCISSORS"],["EXIT","onboard_matrix.EXIT"],["TREE","onboard_matrix.TREE"],["PACMAN","onboard_matrix.PACMAN"],["TARGET","onboard_matrix.TARGET"],["TSHIRT","onboard_matrix.TSHIRT"],["ROLLERSKATE","onboard_matrix.ROLLERSKATE"],["DUCK","onboard_matrix.DUCK"],["HOUSE","onboard_matrix.HOUSE"],["TORTOISE","onboard_matrix.TORTOISE"],["BUTTERFLY","onboard_matrix.BUTTERFLY"],["STICKFIGURE","onboard_matrix.STICKFIGURE"],["GHOST","onboard_matrix.GHOST"],["PITCHFORK","onboard_matrix.PITCHFORK"],["MUSIC_QUAVERS","onboard_matrix.MUSIC_QUAVERS"],["MUSIC_QUAVER","onboard_matrix.MUSIC_QUAVER"],["MUSIC_CROTCHET","onboard_matrix.MUSIC_CROTCHET"],["COW","onboard_matrix.COW"],["RABBIT","onboard_matrix.RABBIT"],["SQUARE_SMALL","onboard_matrix.SQUARE_SMALL"],["SQUARE","onboard_matrix.SQUARE"],["DIAMOND_SMALL","onboard_matrix.DIAMOND_SMALL"],["DIAMOND","onboard_matrix.DIAMOND"],["CHESSBOARD","onboard_matrix.CHESSBOARD"],["TRIANGLE_LEFT","onboard_matrix.TRIANGLE_LEFT"],["TRIANGLE","onboard_matrix.TRIANGLE"],["SNAKE","onboard_matrix.SNAKE"],["UMBRELLA","onboard_matrix.UMBRELLA"],["SKULL","onboard_matrix.SKULL"],["GIRAFFE","onboard_matrix.GIRAFFE"],["SWORD","onboard_matrix.SWORD"]],imglist:[["ALL_CLOCKS","onboard_matrix.ALL_CLOCKS"],["ALL_ARROWS","onboard_matrix.ALL_ARROWS"]],playlist:[["DADADADUM","onboard_music.DADADADUM"],["ENTERTAINER","onboard_music.ENTERTAINER"],["PRELUDE","onboard_music.PRELUDE"],["ODE","onboard_music.ODE"],["NYAN","onboard_music.NYAN"],["RINGTONE","onboard_music.RINGTONE"],["FUNK","onboard_music.FUNK"],["BLUES","onboard_music.BLUES"],["BIRTHDAY","onboard_music.BIRTHDAY"],["WEDDING","onboard_music.WEDDING"],["FUNERAL","onboard_music.FUNERAL"],["PUNCHLINE","onboard_music.PUNCHLINE"],["PYTHON","onboard_music.PYTHON"],["BADDY","onboard_music.BADDY"],["CHASE","onboard_music.CHASE"],["BA_DING","onboard_music.BA_DING"],["WAWAWAWAA","onboard_music.WAWAWAWAA"],["JUMP_UP","onboard_music.JUMP_UP"],["JUMP_DOWN","onboard_music.JUMP_DOWN"],["POWER_UP","onboard_music.POWER_UP"],["POWER_DOWN","onboard_music.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],tone_notes:[["NOTE_C3","131"],["NOTE_D3","147"],["NOTE_E3","165"],["NOTE_F3","175"],["NOTE_G3","196"],["NOTE_A3","220"],["NOTE_B3","247"],["NOTE_C4","262"],["NOTE_D4","294"],["NOTE_E4","330"],["NOTE_F4","349"],["NOTE_G4","392"],["NOTE_A4","440"],["NOTE_B4","494"],["NOTE_C5","523"],["NOTE_D5","587"],["NOTE_E5","659"],["NOTE_F5","698"],["NOTE_G5","784"],["NOTE_A5","880"],["NOTE_B5","988"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"],["3","3"]],extern_addr:rt.Profile.generate(["0-1"]),als_num:rt.Profile.generate(["0-3"])},gY["超霸大师"]={description:"MicroPython[ESP32 Mixbot]",digital_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["12","12"],["13","13"],["14","14"],["15","15"],["16","16"],["17","17"],["18","18"],["19","19"],["21","21"],["22","22"],["23","23"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["39","39"]],digital:[["pin0","pin0"],["pin2","pin2"],["pin4","pin4"],["pin5","pin5"],["pin12","pin12"],["pin13","pin13"],["pin14","pin14"],["pin15","pin15"],["pin16","pin16"],["pin17","pin17"],["pin18","pin18"],["pin19","pin19"],["pin21","pin21"],["pin22","pin22"],["pin23","pin23"],["pin25","pin25"],["pin26","pin26"],["pin27","pin27"],["pin32","pin32"],["pin33","pin33"],["pin34","pin34"],["pin35","pin35"],["pin36","pin36"],["pin39","pin39"]],input_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["12","12"],["13","13"],["14","14"],["15","15"],["16","16"],["17","17"],["18","18"],["19","19"],["21","21"],["22","22"],["23","23"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["39","39"]],output_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["12","12"],["13","13"],["14","14"],["15","15"],["16","16"],["17","17"],["18","18"],["19","19"],["21","21"],["22","22"],["23","23"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"]],pwm_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["12","12"],["13","13"],["14","14"],["15","15"],["16","16"],["17","17"],["18","18"],["19","19"],["20","20"],["21","21"],["22","22"],["23","23"],["25","25"],["26","26"],["27","27"],["32","32"]],pwm:[["pwm0","pwm0"],["pwm2","pwm2"],["pwm4","pwm4"],["pwm5","pwm5"],["pwm12","pwm12"],["pwm13","pwm13"],["pwm14","pwm14"],["pwm15","pwm15"],["pwm16","pwm16"],["pwm17","pwm17"],["pwm18","pwm18"],["pwm19","pwm19"],["pwm20","pwm20"],["pwm21","pwm21"],["pwm22","pwm22"],["pwm23","pwm23"],["pwm25","pwm25"],["pwm26","pwm26"],["pwm27","pwm27"],["pwm32","pwm32"]],analog_pin:[["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["37","37"],["38","38"],["39","39"]],analog:[["adc32","adc32"],["adc33","adc33"],["adc34","adc34"],["adc35","adc35"],["adc36","adc36"],["adc37","adc37"],["adc38","adc38"],["adc39","adc39"]],espnow_channel:rt.Profile.generate(["1-13"]),haskylens_model:rt.Profile.generate(["0-4"]),dac_pin:[["25","25"],["26","26"]],dac:[["dac25","dac25"],["dac26","dac26"]],touch:[["tc0","tc0"],["tc2","tc2"],["tc4","tc4"],["tc12","tc12"],["tc13","tc13"],["tc14","tc14"],["tc15","tc15"],["tc27","tc27"],["tc32","tc32"],["tc33","tc33"]],touch_pin:[["0","0"],["2","2"],["4","4"],["12","12"],["13","13"],["14","14"],["15","15"],["27","27"],["32","32"],["33","33"]],button:[["P","button_p"],["A","button_a"],["B","button_b"]],axis:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"]],exlcdh:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"],["10","10"],["11","11"],["12","12"],["13","13"],["14","14"],["15","15"]],exlcdv:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],brightness:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"]],tts_voice:rt.Profile.generate(["0-16"]),tts_builtin_music:rt.Profile.generate(["0-47"]),tts_bgmusic:rt.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["SILLY","onboard_matrix.SILLY"],["FABULOUS","onboard_matrix.FABULOUS"],["SURPRISED","onboard_matrix.SURPRISED"],["ASLEEP","onboard_matrix.ASLEEP"],["ANGRY","onboard_matrix.ANGRY"],["CONFUSED","onboard_matrix.CONFUSED"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"],["LEFT_ARROW","onboard_matrix.LEFT_ARROW"],["RIGHT_ARROW","onboard_matrix.RIGHT_ARROW"],["DRESS","onboard_matrix.DRESS"],["TRANSFORMERS","onboard_matrix.TRANSFORMERS"],["SCISSORS","onboard_matrix.SCISSORS"],["EXIT","onboard_matrix.EXIT"],["TREE","onboard_matrix.TREE"],["PACMAN","onboard_matrix.PACMAN"],["TARGET","onboard_matrix.TARGET"],["TSHIRT","onboard_matrix.TSHIRT"],["ROLLERSKATE","onboard_matrix.ROLLERSKATE"],["DUCK","onboard_matrix.DUCK"],["HOUSE","onboard_matrix.HOUSE"],["TORTOISE","onboard_matrix.TORTOISE"],["BUTTERFLY","onboard_matrix.BUTTERFLY"],["STICKFIGURE","onboard_matrix.STICKFIGURE"],["GHOST","onboard_matrix.GHOST"],["PITCHFORK","onboard_matrix.PITCHFORK"],["MUSIC_QUAVERS","onboard_matrix.MUSIC_QUAVERS"],["MUSIC_QUAVER","onboard_matrix.MUSIC_QUAVER"],["MUSIC_CROTCHET","onboard_matrix.MUSIC_CROTCHET"],["COW","onboard_matrix.COW"],["RABBIT","onboard_matrix.RABBIT"],["SQUARE_SMALL","onboard_matrix.SQUARE_SMALL"],["SQUARE","onboard_matrix.SQUARE"],["DIAMOND_SMALL","onboard_matrix.DIAMOND_SMALL"],["DIAMOND","onboard_matrix.DIAMOND"],["CHESSBOARD","onboard_matrix.CHESSBOARD"],["TRIANGLE_LEFT","onboard_matrix.TRIANGLE_LEFT"],["TRIANGLE","onboard_matrix.TRIANGLE"],["SNAKE","onboard_matrix.SNAKE"],["UMBRELLA","onboard_matrix.UMBRELLA"],["SKULL","onboard_matrix.SKULL"],["GIRAFFE","onboard_matrix.GIRAFFE"],["SWORD","onboard_matrix.SWORD"]],imglist:[["ALL_CLOCKS","onboard_matrix.ALL_CLOCKS"],["ALL_ARROWS","onboard_matrix.ALL_ARROWS"]],playlist:[["DADADADUM","onboard_music.DADADADUM"],["ENTERTAINER","onboard_music.ENTERTAINER"],["PRELUDE","onboard_music.PRELUDE"],["ODE","onboard_music.ODE"],["NYAN","onboard_music.NYAN"],["RINGTONE","onboard_music.RINGTONE"],["FUNK","onboard_music.FUNK"],["BLUES","onboard_music.BLUES"],["BIRTHDAY","onboard_music.BIRTHDAY"],["WEDDING","onboard_music.WEDDING"],["FUNERAL","onboard_music.FUNERAL"],["PUNCHLINE","onboard_music.PUNCHLINE"],["PYTHON","onboard_music.PYTHON"],["BADDY","onboard_music.BADDY"],["CHASE","onboard_music.CHASE"],["BA_DING","onboard_music.BA_DING"],["WAWAWAWAA","onboard_music.WAWAWAWAA"],["JUMP_UP","onboard_music.JUMP_UP"],["JUMP_DOWN","onboard_music.JUMP_DOWN"],["POWER_UP","onboard_music.POWER_UP"],["POWER_DOWN","onboard_music.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],tone_notes:[["NOTE_C3","131"],["NOTE_D3","147"],["NOTE_E3","165"],["NOTE_F3","175"],["NOTE_G3","196"],["NOTE_A3","220"],["NOTE_B3","247"],["NOTE_C4","262"],["NOTE_D4","294"],["NOTE_E4","330"],["NOTE_F4","349"],["NOTE_G4","392"],["NOTE_A4","440"],["NOTE_B4","494"],["NOTE_C5","523"],["NOTE_D5","587"],["NOTE_E5","659"],["NOTE_F5","698"],["NOTE_G5","784"],["NOTE_A5","880"],["NOTE_B5","988"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"],["3","3"]],extern_addr:rt.Profile.generate(["0-3"])},gY["ESP32 Generic"]={description:"MicroPython[ESP32 Generic]",digital_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"],["10","10"],["11","11"],["12","12"],["13","13"],["14","14"],["15","15"],["16","16"],["17","17"],["18","18"],["19","19"],["20","20"],["21","21"],["22","22"],["23","23"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["37","37"],["38","38"],["39","39"]],digital:[["pin0","pin0"],["pin2","pin2"],["pin4","pin4"],["pin5","pin5"],["pin6","pin6"],["pin7","pin7"],["pin8","pin8"],["pin9","pin9"],["pin10","pin10"],["pin11","pin11"],["pin12","pin12"],["pin13","pin13"],["pin14","pin14"],["pin15","pin15"],["pin16","pin16"],["pin17","pin17"],["pin18","pin18"],["pin19","pin19"],["pin20","pin20"],["pin21","pin21"],["pin22","pin22"],["pin23","pin23"],["pin25","pin25"],["pin26","pin26"],["pin27","pin27"],["pin32","pin32"],["pin33","pin33"],["pin34","pin34"],["pin35","pin35"],["pin36","pin36"],["pin37","pin37"],["pin38","pin38"],["pin39","pin39"]],input_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["7","7"],["8","8"],["12","12"],["13","13"],["14","14"],["15","15"],["19","19"],["20","20"],["21","21"],["22","22"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["37","37"],["38","38"],["39","39"]],output_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["7","7"],["8","8"],["12","12"],["13","13"],["14","14"],["15","15"],["19","19"],["20","20"],["21","21"],["22","22"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"]],pwm_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["12","12"],["13","13"],["14","14"],["15","15"],["16","16"],["17","17"],["18","18"],["19","19"],["20","20"],["21","21"],["22","22"],["23","23"],["25","25"],["26","26"],["27","27"],["32","32"]],pwm:[["pwm0","pwm0"],["pwm2","pwm2"],["pwm4","pwm4"],["pwm5","pwm5"],["pwm12","pwm12"],["pwm13","pwm13"],["pwm14","pwm14"],["pwm15","pwm15"],["pwm16","pwm16"],["pwm17","pwm17"],["pwm18","pwm18"],["pwm19","pwm19"],["pwm20","pwm20"],["pwm21","pwm21"],["pwm22","pwm22"],["pwm23","pwm23"],["pwm25","pwm25"],["pwm26","pwm26"],["pwm27","pwm27"],["pwm32","pwm32"]],analog_pin:[["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["37","37"],["38","38"],["39","39"]],analog:[["adc32","adc32"],["adc33","adc33"],["adc34","adc34"],["adc35","adc35"],["adc36","adc36"],["adc37","adc37"],["adc38","adc38"],["adc39","adc39"]],espnow_channel:rt.Profile.generate(["1-13"]),haskylens_model:rt.Profile.generate(["0-4"]),dac_pin:[["25","25"],["26","26"]],dac:[["dac25","dac25"],["dac26","dac26"]],touch:[["tc0","tc0"],["tc2","tc2"],["tc4","tc4"],["tc12","tc12"],["tc13","tc13"],["tc14","tc14"],["tc15","tc15"],["tc27","tc27"],["tc32","tc32"],["tc33","tc33"]],touch_pin:[["0","0"],["2","2"],["4","4"],["12","12"],["13","13"],["14","14"],["15","15"],["27","27"],["32","32"],["33","33"]],button:[["A","button_a"],["B","button_b"]],axis:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"]],exlcdh:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"],["10","10"],["11","11"],["12","12"],["13","13"],["14","14"],["15","15"]],exlcdv:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],brightness:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"]],tts_voice:rt.Profile.generate(["0-16"]),tts_builtin_music:rt.Profile.generate(["0-47"]),tts_bgmusic:rt.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["SILLY","onboard_matrix.SILLY"],["FABULOUS","onboard_matrix.FABULOUS"],["SURPRISED","onboard_matrix.SURPRISED"],["ASLEEP","onboard_matrix.ASLEEP"],["ANGRY","onboard_matrix.ANGRY"],["CONFUSED","onboard_matrix.CONFUSED"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"],["LEFT_ARROW","onboard_matrix.LEFT_ARROW"],["RIGHT_ARROW","onboard_matrix.RIGHT_ARROW"],["DRESS","onboard_matrix.DRESS"],["TRANSFORMERS","onboard_matrix.TRANSFORMERS"],["SCISSORS","onboard_matrix.SCISSORS"],["EXIT","onboard_matrix.EXIT"],["TREE","onboard_matrix.TREE"],["PACMAN","onboard_matrix.PACMAN"],["TARGET","onboard_matrix.TARGET"],["TSHIRT","onboard_matrix.TSHIRT"],["ROLLERSKATE","onboard_matrix.ROLLERSKATE"],["DUCK","onboard_matrix.DUCK"],["HOUSE","onboard_matrix.HOUSE"],["TORTOISE","onboard_matrix.TORTOISE"],["BUTTERFLY","onboard_matrix.BUTTERFLY"],["STICKFIGURE","onboard_matrix.STICKFIGURE"],["GHOST","onboard_matrix.GHOST"],["PITCHFORK","onboard_matrix.PITCHFORK"],["onboard_music_QUAVERS","onboard_matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","onboard_matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","onboard_matrix.onboard_music_CROTCHET"],["COW","onboard_matrix.COW"],["RABBIT","onboard_matrix.RABBIT"],["SQUARE_SMALL","onboard_matrix.SQUARE_SMALL"],["SQUARE","onboard_matrix.SQUARE"],["DIAMOND_SMALL","onboard_matrix.DIAMOND_SMALL"],["DIAMOND","onboard_matrix.DIAMOND"],["CHESSBOARD","onboard_matrix.CHESSBOARD"],["TRIANGLE_LEFT","onboard_matrix.TRIANGLE_LEFT"],["TRIANGLE","onboard_matrix.TRIANGLE"],["SNAKE","onboard_matrix.SNAKE"],["UMBRELLA","onboard_matrix.UMBRELLA"],["SKULL","onboard_matrix.SKULL"],["GIRAFFE","onboard_matrix.GIRAFFE"],["SWORD","onboard_matrix.SWORD"]],builtinimg_extern:[["HEART","matrix32x12.Matrix.HEART"],["HEART_SMALL","matrix32x12.Matrix.HEART_SMALL"],["HAPPY","matrix32x12.Matrix.HAPPY"],["SAD","matrix32x12.Matrix.SAD"],["SMILE","matrix32x12.Matrix.SMILE"],["SILLY","matrix32x12.Matrix.SILLY"],["FABULOUS","matrix32x12.Matrix.FABULOUS"],["SURPRISED","matrix32x12.Matrix.SURPRISED"],["ASLEEP","matrix32x12.Matrix.ASLEEP"],["ANGRY","matrix32x12.Matrix.ANGRY"],["CONFUSED","matrix32x12.Matrix.CONFUSED"],["NO","matrix32x12.Matrix.NO"],["YES","matrix32x12.Matrix.YES"],["LEFT_ARROW","matrix32x12.Matrix.LEFT_ARROW"],["RIGHT_ARROW","matrix32x12.Matrix.RIGHT_ARROW"],["DRESS","matrix32x12.Matrix.DRESS"],["TRANSFORMERS","matrix32x12.Matrix.TRANSFORMERS"],["SCISSORS","matrix32x12.Matrix.SCISSORS"],["EXIT","matrix32x12.Matrix.EXIT"],["TREE","matrix32x12.Matrix.TREE"],["PACMAN","matrix32x12.Matrix.PACMAN"],["TARGET","matrix32x12.Matrix.TARGET"],["TSHIRT","matrix32x12.Matrix.TSHIRT"],["ROLLERSKATE","matrix32x12.Matrix.ROLLERSKATE"],["DUCK","matrix32x12.Matrix.DUCK"],["HOUSE","matrix32x12.Matrix.HOUSE"],["TORTOISE","matrix32x12.Matrix.TORTOISE"],["BUTTERFLY","matrix32x12.Matrix.BUTTERFLY"],["STICKFIGURE","matrix32x12.Matrix.STICKFIGURE"],["GHOST","matrix32x12.Matrix.GHOST"],["PITCHFORK","matrix32x12.Matrix.PITCHFORK"],["onboard_music_QUAVERS","matrix32x12.Matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","matrix32x12.Matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","matrix32x12.Matrix.onboard_music_CROTCHET"],["COW","matrix32x12.Matrix.COW"],["RABBIT","matrix32x12.Matrix.RABBIT"],["SQUARE_SMALL","matrix32x12.Matrix.SQUARE_SMALL"],["SQUARE","matrix32x12.Matrix.SQUARE"],["DIAMOND_SMALL","matrix32x12.Matrix.DIAMOND_SMALL"],["DIAMOND","matrix32x12.Matrix.DIAMOND"],["CHESSBOARD","matrix32x12.Matrix.CHESSBOARD"],["TRIANGLE_LEFT","matrix32x12.Matrix.TRIANGLE_LEFT"],["TRIANGLE","matrix32x12.Matrix.TRIANGLE"],["SNAKE","matrix32x12.Matrix.SNAKE"],["UMBRELLA","matrix32x12.Matrix.UMBRELLA"],["SKULL","matrix32x12.Matrix.SKULL"],["GIRAFFE","matrix32x12.Matrix.GIRAFFE"],["SWORD","matrix32x12.Matrix.SWORD"]],imglist:[["ALL_CLOCKS","onboard_matrix.ALL_CLOCKS"],["ALL_ARROWS","onboard_matrix.ALL_ARROWS"]],playlist:[["DADADADUM","onboard_music.DADADADUM"],["ENTERTAINER","onboard_music.ENTERTAINER"],["PRELUDE","onboard_music.PRELUDE"],["ODE","onboard_music.ODE"],["NYAN","onboard_music.NYAN"],["RINGTONE","onboard_music.RINGTONE"],["FUNK","onboard_music.FUNK"],["BLUES","onboard_music.BLUES"],["BIRTHDAY","onboard_music.BIRTHDAY"],["WEDDING","onboard_music.WEDDING"],["FUNERAL","onboard_music.FUNERAL"],["PUNCHLINE","onboard_music.PUNCHLINE"],["PYTHON","onboard_music.PYTHON"],["BADDY","onboard_music.BADDY"],["CHASE","onboard_music.CHASE"],["BA_DING","onboard_music.BA_DING"],["WAWAWAWAA","onboard_music.WAWAWAWAA"],["JUMP_UP","onboard_music.JUMP_UP"],["JUMP_DOWN","onboard_music.JUMP_DOWN"],["POWER_UP","onboard_music.POWER_UP"],["POWER_DOWN","onboard_music.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],tone_notes:[["NOTE_C3","131"],["NOTE_D3","147"],["NOTE_E3","165"],["NOTE_F3","175"],["NOTE_G3","196"],["NOTE_A3","220"],["NOTE_B3","247"],["NOTE_C4","262"],["NOTE_D4","294"],["NOTE_E4","330"],["NOTE_F4","349"],["NOTE_G4","392"],["NOTE_A4","440"],["NOTE_B4","494"],["NOTE_C5","523"],["NOTE_D5","587"],["NOTE_E5","659"],["NOTE_F5","698"],["NOTE_G5","784"],["NOTE_A5","880"],["NOTE_B5","988"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"],["3","3"]]},gY["机器人大师"]={description:"MicroPython[ESP32 Generic]",digital_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["12","12"],["13","13"],["14","14"],["15","15"],["18","18"],["19","19"],["21","21"],["22","22"],["23","23"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["37","37"],["38","38"],["39","39"]],digital:[["pin0","pin0"],["pin2","pin2"],["pin4","pin4"],["pin5","pin5"],["pin12","pin12"],["pin13","pin13"],["pin14","pin14"],["pin15","pin15"],["pin16","pin16"],["pin17","pin17"],["pin18","pin18"],["pin19","pin19"],["pin20","pin20"],["pin21","pin21"],["pin22","pin22"],["pin23","pin23"],["pin25","pin25"],["pin26","pin26"],["pin27","pin27"],["pin32","pin32"],["pin33","pin33"],["pin34","pin34"],["pin35","pin35"],["pin36","pin36"],["pin37","pin37"],["pin38","pin38"],["pin39","pin39"]],input_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["12","12"],["13","13"],["14","14"],["15","15"],["18","18"],["19","19"],["21","21"],["22","22"],["23","23"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["37","37"],["38","38"],["39","39"]],output_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["12","12"],["13","13"],["14","14"],["15","15"],["18","18"],["19","19"],["21","21"],["22","22"],["23","23"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"]],pwm_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["12","12"],["13","13"],["14","14"],["15","15"],["16","16"],["17","17"],["18","18"],["19","19"],["20","20"],["21","21"],["22","22"],["23","23"],["25","25"],["26","26"],["27","27"],["32","32"]],pwm:[["pwm0","pwm0"],["pwm2","pwm2"],["pwm4","pwm4"],["pwm5","pwm5"],["pwm12","pwm12"],["pwm13","pwm13"],["pwm14","pwm14"],["pwm15","pwm15"],["pwm16","pwm16"],["pwm17","pwm17"],["pwm18","pwm18"],["pwm19","pwm19"],["pwm20","pwm20"],["pwm21","pwm21"],["pwm22","pwm22"],["pwm23","pwm23"],["pwm25","pwm25"],["pwm26","pwm26"],["pwm27","pwm27"],["pwm32","pwm32"]],espnow_channel:rt.Profile.generate(["1-13"]),haskylens_model:rt.Profile.generate(["0-4"]),analog_pin:[["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["37","37"],["38","38"],["39","39"]],analog:[["adc32","adc32"],["adc33","adc33"],["adc34","adc34"],["adc35","adc35"],["adc36","adc36"],["adc37","adc37"],["adc38","adc38"],["adc39","adc39"]],dac_pin:[["25","25"],["26","26"]],dac:[["dac25","dac25"],["dac26","dac26"]],touch:[["tc0","tc0"],["tc2","tc2"],["tc4","tc4"],["tc12","tc12"],["tc13","tc13"],["tc14","tc14"],["tc15","tc15"],["tc27","tc27"],["tc32","tc32"],["tc33","tc33"]],touch_pin:[["0","0"],["2","2"],["4","4"],["12","12"],["13","13"],["14","14"],["15","15"],["27","27"],["32","32"],["33","33"]],button:[["p","button_p"],["cw","button_cw"],["ccw","button_ccw"]],axis:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"]],exlcdh:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"],["10","10"],["11","11"],["12","12"],["13","13"],["14","14"],["15","15"]],exlcdv:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],brightness:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"]],tts_voice:rt.Profile.generate(["0-16"]),tts_builtin_music:rt.Profile.generate(["0-47"]),tts_bgmusic:rt.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["SILLY","onboard_matrix.SILLY"],["FABULOUS","onboard_matrix.FABULOUS"],["SURPRISED","onboard_matrix.SURPRISED"],["ASLEEP","onboard_matrix.ASLEEP"],["ANGRY","onboard_matrix.ANGRY"],["CONFUSED","onboard_matrix.CONFUSED"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"],["LEFT_ARROW","onboard_matrix.LEFT_ARROW"],["RIGHT_ARROW","onboard_matrix.RIGHT_ARROW"],["DRESS","onboard_matrix.DRESS"],["TRANSFORMERS","onboard_matrix.TRANSFORMERS"],["SCISSORS","onboard_matrix.SCISSORS"],["EXIT","onboard_matrix.EXIT"],["TREE","onboard_matrix.TREE"],["PACMAN","onboard_matrix.PACMAN"],["TARGET","onboard_matrix.TARGET"],["TSHIRT","onboard_matrix.TSHIRT"],["ROLLERSKATE","onboard_matrix.ROLLERSKATE"],["DUCK","onboard_matrix.DUCK"],["HOUSE","onboard_matrix.HOUSE"],["TORTOISE","onboard_matrix.TORTOISE"],["BUTTERFLY","onboard_matrix.BUTTERFLY"],["STICKFIGURE","onboard_matrix.STICKFIGURE"],["GHOST","onboard_matrix.GHOST"],["PITCHFORK","onboard_matrix.PITCHFORK"],["onboard_music_QUAVERS","onboard_matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","onboard_matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","onboard_matrix.onboard_music_CROTCHET"],["COW","onboard_matrix.COW"],["RABBIT","onboard_matrix.RABBIT"],["SQUARE_SMALL","onboard_matrix.SQUARE_SMALL"],["SQUARE","onboard_matrix.SQUARE"],["DIAMOND_SMALL","onboard_matrix.DIAMOND_SMALL"],["DIAMOND","onboard_matrix.DIAMOND"],["CHESSBOARD","onboard_matrix.CHESSBOARD"],["TRIANGLE_LEFT","onboard_matrix.TRIANGLE_LEFT"],["TRIANGLE","onboard_matrix.TRIANGLE"],["SNAKE","onboard_matrix.SNAKE"],["UMBRELLA","onboard_matrix.UMBRELLA"],["SKULL","onboard_matrix.SKULL"],["GIRAFFE","onboard_matrix.GIRAFFE"],["SWORD","onboard_matrix.SWORD"]],builtinimg_extern:[["HEART","matrix32x12.Matrix.HEART"],["HEART_SMALL","matrix32x12.Matrix.HEART_SMALL"],["HAPPY","matrix32x12.Matrix.HAPPY"],["SAD","matrix32x12.Matrix.SAD"],["SMILE","matrix32x12.Matrix.SMILE"],["SILLY","matrix32x12.Matrix.SILLY"],["FABULOUS","matrix32x12.Matrix.FABULOUS"],["SURPRISED","matrix32x12.Matrix.SURPRISED"],["ASLEEP","matrix32x12.Matrix.ASLEEP"],["ANGRY","matrix32x12.Matrix.ANGRY"],["CONFUSED","matrix32x12.Matrix.CONFUSED"],["NO","matrix32x12.Matrix.NO"],["YES","matrix32x12.Matrix.YES"],["LEFT_ARROW","matrix32x12.Matrix.LEFT_ARROW"],["RIGHT_ARROW","matrix32x12.Matrix.RIGHT_ARROW"],["DRESS","matrix32x12.Matrix.DRESS"],["TRANSFORMERS","matrix32x12.Matrix.TRANSFORMERS"],["SCISSORS","matrix32x12.Matrix.SCISSORS"],["EXIT","matrix32x12.Matrix.EXIT"],["TREE","matrix32x12.Matrix.TREE"],["PACMAN","matrix32x12.Matrix.PACMAN"],["TARGET","matrix32x12.Matrix.TARGET"],["TSHIRT","matrix32x12.Matrix.TSHIRT"],["ROLLERSKATE","matrix32x12.Matrix.ROLLERSKATE"],["DUCK","matrix32x12.Matrix.DUCK"],["HOUSE","matrix32x12.Matrix.HOUSE"],["TORTOISE","matrix32x12.Matrix.TORTOISE"],["BUTTERFLY","matrix32x12.Matrix.BUTTERFLY"],["STICKFIGURE","matrix32x12.Matrix.STICKFIGURE"],["GHOST","matrix32x12.Matrix.GHOST"],["PITCHFORK","matrix32x12.Matrix.PITCHFORK"],["onboard_music_QUAVERS","matrix32x12.Matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","matrix32x12.Matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","matrix32x12.Matrix.onboard_music_CROTCHET"],["COW","matrix32x12.Matrix.COW"],["RABBIT","matrix32x12.Matrix.RABBIT"],["SQUARE_SMALL","matrix32x12.Matrix.SQUARE_SMALL"],["SQUARE","matrix32x12.Matrix.SQUARE"],["DIAMOND_SMALL","matrix32x12.Matrix.DIAMOND_SMALL"],["DIAMOND","matrix32x12.Matrix.DIAMOND"],["CHESSBOARD","matrix32x12.Matrix.CHESSBOARD"],["TRIANGLE_LEFT","matrix32x12.Matrix.TRIANGLE_LEFT"],["TRIANGLE","matrix32x12.Matrix.TRIANGLE"],["SNAKE","matrix32x12.Matrix.SNAKE"],["UMBRELLA","matrix32x12.Matrix.UMBRELLA"],["SKULL","matrix32x12.Matrix.SKULL"],["GIRAFFE","matrix32x12.Matrix.GIRAFFE"],["SWORD","matrix32x12.Matrix.SWORD"]],imglist:[["ALL_CLOCKS","onboard_matrix.ALL_CLOCKS"],["ALL_ARROWS","onboard_matrix.ALL_ARROWS"]],playlist:[["DADADADUM","onboard_music.DADADADUM"],["ENTERTAINER","onboard_music.ENTERTAINER"],["PRELUDE","onboard_music.PRELUDE"],["ODE","onboard_music.ODE"],["NYAN","onboard_music.NYAN"],["RINGTONE","onboard_music.RINGTONE"],["FUNK","onboard_music.FUNK"],["BLUES","onboard_music.BLUES"],["BIRTHDAY","onboard_music.BIRTHDAY"],["WEDDING","onboard_music.WEDDING"],["FUNERAL","onboard_music.FUNERAL"],["PUNCHLINE","onboard_music.PUNCHLINE"],["PYTHON","onboard_music.PYTHON"],["BADDY","onboard_music.BADDY"],["CHASE","onboard_music.CHASE"],["BA_DING","onboard_music.BA_DING"],["WAWAWAWAA","onboard_music.WAWAWAWAA"],["JUMP_UP","onboard_music.JUMP_UP"],["JUMP_DOWN","onboard_music.JUMP_DOWN"],["POWER_UP","onboard_music.POWER_UP"],["POWER_DOWN","onboard_music.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],tone_notes:[["NOTE_C3","131"],["NOTE_D3","147"],["NOTE_E3","165"],["NOTE_F3","175"],["NOTE_G3","196"],["NOTE_A3","220"],["NOTE_B3","247"],["NOTE_C4","262"],["NOTE_D4","294"],["NOTE_E4","330"],["NOTE_F4","349"],["NOTE_G4","392"],["NOTE_A4","440"],["NOTE_B4","494"],["NOTE_C5","523"],["NOTE_D5","587"],["NOTE_E5","659"],["NOTE_F5","698"],["NOTE_G5","784"],["NOTE_A5","880"],["NOTE_B5","988"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"],["3","3"]]};const CY=gY,SY=230,AY={init:function(){this.setColour(SY),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.digital),"PIN"),this.setOutput(!0)}},LY={init:function(){this.setColour(SY),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.digital_pin),"PIN"),this.setOutput(!0,Number)}},NY={init:function(){this.setColour(SY),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.input_pin),"PIN"),this.setOutput(!0,Number)}},DY={init:function(){this.setColour(SY),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.output_pin),"PIN"),this.setOutput(!0,Number)}},fY={init:function(){this.setColour(SY),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.touch_mpython),"PIN"),this.setOutput(!0,Number)}},FY={init:function(){this.setColour(SY),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.espnow_channel),"PIN"),this.setOutput(!0,Number)}},PY={init:function(){this.setColour(SY),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.haskylens_model),"PIN"),this.setOutput(!0,Number)}},vY={init:function(){this.setColour(SY),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.pwm_input),"PIN"),this.setOutput(!0)}},YY={init:function(){this.setColour(SY),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.analog_input),"PIN"),this.setOutput(!0)}},xY={init:function(){this.setColour(SY),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.pwm_output),"PIN"),this.setOutput(!0)}},bY={init:function(){this.setColour(SY),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.analog_output),"PIN"),this.setOutput(!0)}},XY={init:function(){this.setColour(SY),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.i2c_A_pin),"PIN"),this.setOutput(!0,Number)}},yY={init:function(){this.setColour(SY),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.i2c_B_pin),"PIN"),this.setOutput(!0,Number)}},VY={init:function(){this.setColour(SY),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.spi_A_pin),"PIN"),this.setOutput(!0,Number)}},BY={init:function(){this.setColour(SY),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.spi_B_pin),"PIN"),this.setOutput(!0,Number)}},GY={init:function(){this.setColour(SY),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.spi_C_pin),"PIN"),this.setOutput(!0,Number)}},UY={init:function(){this.setColour(SY),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.spi_D_pin),"PIN"),this.setOutput(!0,Number)}},wY={init:function(){this.setColour(SY),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.analog),"PIN"),this.setOutput(!0)}},kY={init:function(){this.setColour(SY),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.analog_pin),"PIN"),this.setOutput(!0,Number)}},HY={init:function(){this.setColour(SY),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.dac),"PIN"),this.setOutput(!0)}},WY={init:function(){this.setColour(SY),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.dac_pin),"PIN"),this.setOutput(!0,Number)}},KY={init:function(){this.setColour(SY),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.button),"PIN"),this.setOutput(!0,Number)}},JY={init:function(){this.setColour(SY),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.pwm),"PIN"),this.setOutput(!0)}},QY={init:function(){this.setColour(SY),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.pwm_pin),"PIN"),this.setOutput(!0,Number)}},zY={init:function(){this.setColour(SY),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.touch_pin),"PIN"),this.setOutput(!0,Number)}},qY={init:function(){this.setColour(SY),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.touch),"PIN"),this.setOutput(!0)}},jY={init:function(){this.setColour(SY),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.serial_pin),"PIN"),this.setOutput(!0,Number)}},ZY={init:function(){this.setColour(SY),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.builtinimg),"PIN"),this.setOutput(!0,"esp32_image")}},$Y={init:function(){this.setColour(SY),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.builtinimg_extern),"PIN"),this.setOutput(!0,"esp32_image")}},tx={init:function(){this.setColour(SY),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.imglist),"PIN"),this.setOutput(!0)}},ex={init:function(){this.setColour(SY),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.playlist),"PIN"),this.setOutput(!0)}},ix={init:function(){this.setColour(SY),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.playlist_extern),"PIN"),this.setOutput(!0)}},nx={init:function(){this.setColour(SY),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.exlcdh),"PIN"),this.setOutput(!0,Number)}},sx={init:function(){this.setColour(SY),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.exlcdv),"PIN"),this.setOutput(!0,Number)}},ox={init:function(){this.setColour(SY),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.axis),"PIN"),this.setOutput(!0,Number)}},_x={init:function(){this.setColour(SY),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.brightness),"PIN"),this.setOutput(!0,Number)}},px={init:function(){this.setColour(SY),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.tts_voice),"PIN"),this.setOutput(!0,Number)}},ax={init:function(){this.setColour(SY),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.tts_builtin_music),"PIN"),this.setOutput(!0,Number)}},ux={init:function(){this.setColour(SY),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.tts_bgmusic),"PIN"),this.setOutput(!0,Number)}},rx={init:function(){this.setColour(SY),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.tone_notes),"PIN"),this.setOutput(!0,Number)}},lx={init:function(){this.setColour(SY),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.radio_power),"PIN"),this.setOutput(!0,Number)}},dx={init:function(){this.setColour(SY),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.radio_datarate),"PIN"),this.setOutput(!0,Number)}},Ix={init:function(){this.setColour(SY),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.one_more),"PIN"),this.setOutput(!0)}},Tx={init:function(){this.setColour(SY),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.digital_dot),"PIN"),this.setOutput(!0,Number)}},hx=function(t,e){return[this.getFieldValue("PIN"),e.ORDER_ATOMIC]},Mx=hx,mx=hx,Ox=hx,Ex=hx,Rx=hx,cx=hx,gx=hx,Cx=hx,Sx=hx,Ax=hx,Lx=hx,Nx=hx,Dx=hx,fx=hx,Fx=hx,Px=hx,vx=hx,Yx=hx,xx=hx,bx=hx,Xx=hx,yx=hx,Vx=hx,Bx=hx,Gx=hx,Ux=hx,wx=hx,kx=hx,Hx=hx,Wx=hx,Kx=hx,Jx=hx,Qx=hx,zx=hx;Object.assign(ut.Variables,dt),Object.assign(ut.Procedures,yn),ut.Python=Za,ut.generator=Za,rt.Profile.default={},Object.assign(rt.Profile,CY),Object.assign(rt.Profile.default,CY["ESP32 Generic"]),Object.assign(ut.Blocks,e,i,n,s,o,_,p,a,u,r,l,d,I,X,w,U,v,y,k,f,G,B,V,F,D,N,x,Y,b,P,pt),Object.assign(ut.Python.forBlock,T,h,M,m,O,E,R,c,g,C,S,A,L,$,ot,st,z,tt,_t,K,nt,it,et,J,W,H,j,q,Z,Q,at)})(); \ No newline at end of file +class It{constructor(t,e){if(this.variablePrefix_=e||"",this.reservedDict_=Object.create(null),t)for(var i=t.split(","),n=0;n0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?i[s]=e.getInputTargetBlock("IF"+s).previousConnection:i[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?n[s]=e.getInputTargetBlock("DO"+s).previousConnection:n[s]=null,this.removeInput("DO"+s);this.elseifCount_=parseInt(t.getAttribute("elseif"),10),this.elseCount_=parseInt(t.getAttribute("else"),10);for(s=1;s<=this.elseifCount_;s++)this.appendValueInput("IF"+s).setCheck([Boolean,Number]).appendField(ut.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+s).appendField(ut.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(ut.Msg.CONTROLS_IF_MSG_ELSE);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"IF"+s);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_if_if");e.initSvg();for(var i=e.getInput("STACK").connection,n=1;n<=this.elseifCount_;n++){var s=t.newBlock("controls_if_elseif");s.initSvg(),i.connect(s.previousConnection),i=s.nextConnection}if(this.elseCount_){var o=t.newBlock("controls_if_else");o.initSvg(),i.connect(o.previousConnection)}return e},compose:function(t){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var e=this.elseifCount_;e>0;e--)this.removeInput("IF"+e),this.removeInput("DO"+e);this.elseifCount_=0;for(var i=t.getInputTargetBlock("STACK"),n=[null],s=[null],o=null;i;){switch(i.type){case"controls_if_elseif":this.elseifCount_++,n.push(i.valueConnection_),s.push(i.statementConnection_);break;case"controls_if_else":this.elseCount_++,o=i.statementConnection_;break;default:throw Error("Unknown block type: "+i.type)}i=i.nextConnection&&i.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(n,s,o)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),i=1;e;){switch(e.type){case"controls_if_elseif":var n=this.getInput("IF"+i),s=this.getInput("DO"+i);e.valueConnection_=n&&n.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,i++;break;case"controls_if_else":s=this.getInput("ELSE");e.statementConnection_=s&&s.connection.targetConnection;break;default:throw"Unknown block type."}e=e.nextConnection&&e.nextConnection.targetBlock()}},rebuildShape_:function(){var t=[null],e=[null],i=null;this.getInput("ELSE")&&(i=this.getInput("ELSE").connection.targetConnection);for(var n=1;this.getInput("IF"+n);){var s=this.getInput("IF"+n),o=this.getInput("DO"+n);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(o.connection.targetConnection),n++}this.updateShape_(),this.reconnectChildBlocks_(t,e,i)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var t=1;this.getInput("IF"+t);)this.removeInput("IF"+t),this.removeInput("DO"+t),t++;for(t=1;t<=this.elseifCount_;t++)this.appendValueInput("IF"+t).setCheck([Number,Boolean]).appendField(ut.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+t).appendField(ut.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(ut.Msg.CONTROLS_IF_MSG_ELSE)},reconnectChildBlocks_:function(t,e,i){for(var n=1;n<=this.elseifCount_;n++)t[n]&&t[n].reconnect(this,"IF"+n),e[n]&&e[n].reconnect(this,"DO"+n);i&&i.reconnect(this,"ELSE")}},Dt={init:function(){this.setColour(gt),this.appendValueInput("FROM").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.PYTHON_RANGE).appendField(ut.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.PYTHON_RANGE_STEP),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(ut.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},ft={init:function(){this.setColour(gt),this.appendValueInput("LIST").setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.CONTROLS_FOREACH_INPUT),this.appendValueInput("VAR").appendField(ut.Msg.CONTROLS_FOREACH_INPUT_ITEM),this.appendStatementInput("DO").appendField(ut.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip((function(){return ut.Msg.CONTROLS_FOR_TOOLTIP.replace("“%1”","")}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ut.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Ft={init:function(){this.setColour(gt),this.appendValueInput("BOOL").setCheck([Boolean,Number]).appendField(ut.Msg.MIXLY_MICROBIT_JS_CURRENT).appendField(new ut.FieldDropdown(this.OPERATORS),"MODE"),this.appendStatementInput("DO").appendField(ut.Msg.LANG_CONTROLS_WHILEUNTIL_TITLE_REPEAT+ut.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return{WHILE:ut.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_WHILE,UNTIL:ut.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL}[e]}))}},Pt={init:function(){this.setColour(gt),this.appendDummyInput().appendField(ut.Msg.MIXLY_PYTHON_TRY),this.appendStatementInput("try"),this.appendValueInput("IF1").appendField(ut.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO1").appendField(""),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new ut.icons.MutatorIcon(["controls_except","controls_finally"],this)),this.setTooltip(ut.Msg.MIXLY_MIXPY_CONTROL_TRY_TOOLTIP),this.elseifCount_=1,this.elseCount_=0},mutationToDom:function(){if(!this.elseifCount_&&!this.elseCount_)return null;var t=document.createElement("mutation");return this.elseifCount_&&t.setAttribute("elseif",this.elseifCount_),this.elseCount_&&t.setAttribute("else",1),t},domToMutation:function(t){var e=this,i=[],n=[];this.elseCount_&&this.removeInput("ELSE");for(var s=this.elseifCount_;s>0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?i[s]=e.getInputTargetBlock("IF"+s).previousConnection:i[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?n[s]=e.getInputTargetBlock("DO"+s).previousConnection:n[s]=null,this.removeInput("DO"+s);this.elseifCount_=parseInt(t.getAttribute("elseif"),10),this.elseCount_=parseInt(t.getAttribute("else"),10);for(s=1;s<=this.elseifCount_;s++)this.appendValueInput("IF"+s).setCheck([Boolean,Number]).appendField(ut.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+s).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(ut.Msg.MIXLY_PYTHON_FINALLY);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"IF"+s);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_try");e.initSvg();for(var i=e.getInput("STACK").connection,n=1;n<=this.elseifCount_;n++){var s=t.newBlock("controls_except");s.initSvg(),i.connect(s.previousConnection),i=s.nextConnection}if(this.elseCount_){var o=t.newBlock("controls_finally");o.initSvg(),i.connect(o.previousConnection)}return e},compose:function(t){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var e=this.elseifCount_;e>0;e--)this.removeInput("IF"+e),this.removeInput("DO"+e);this.elseifCount_=0;for(var i=t.getInputTargetBlock("STACK"),n=[null],s=[null],o=null;i;){switch(i.type){case"controls_except":this.elseifCount_++,n.push(i.valueConnection_),s.push(i.statementConnection_);break;case"controls_finally":this.elseCount_++,o=i.statementConnection_;break;default:throw Error("Unknown block type: "+i.type)}i=i.nextConnection&&i.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(n,s,o)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),i=1;e;){switch(e.type){case"controls_except":var n=this.getInput("IF"+i),s=this.getInput("DO"+i);e.valueConnection_=n&&n.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,i++;break;case"controls_finally":s=this.getInput("ELSE");e.statementConnection_=s&&s.connection.targetConnection;break;default:throw"Unknown block type."}e=e.nextConnection&&e.nextConnection.targetBlock()}},rebuildShape_:function(){var t=[null],e=[null],i=null;this.getInput("ELSE")&&(i=this.getInput("ELSE").connection.targetConnection);for(var n=1;this.getInput("IF"+n);){var s=this.getInput("IF"+n),o=this.getInput("DO"+n);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(o.connection.targetConnection),n++}this.updateShape_(),this.reconnectChildBlocks_(t,e,i)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var t=1;this.getInput("IF"+t);)this.removeInput("IF"+t),this.removeInput("DO"+t),t++;for(t=1;t<=this.elseifCount_;t++)this.appendValueInput("IF"+t).setCheck([Number,Boolean]).appendField(ut.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+t).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(ut.Msg.MIXLY_PYTHON_FINALLY)},reconnectChildBlocks_:function(t,e,i){for(var n=1;n<=this.elseifCount_;n++)t[n]&&t[n].reconnect(this,"IF"+n),e[n]&&e[n].reconnect(this,"DO"+n);i&&i.reconnect(this,"ELSE")}},vt={init:function(){this.setColour(gt);var t=new ut.FieldDropdown(this.OPERATORS);this.appendDummyInput().appendField(t,"FLOW").appendField(ut.Msg.LANG_CONTROLS_FLOW_STATEMENTS_INPUT_OFLOOP),this.setPreviousStatement(!0),this.setTooltip(ut.Msg.MIXLY_PYTHON_CONTROLS_FLOW_STATEMENTS_TOOLTIP);var e=this;this.setTooltip((function(){var t=e.getFieldValue("FLOW");return{BREAK:ut.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK,CONTINUE:ut.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE}[t]}))},onchange:function(){if(this.workspace){var t=!1,e=this;do{if("controls_repeat"==e.type||"controls_for"==e.type||"controls_forEach"==e.type||"controls_repeat_ext"==e.type||"controls_whileUntil"==e.type||"do_while"==e.type){t=!0;break}e=e.getSurroundParent()}while(e);t?this.setWarningText(null):this.setWarningText(ut.Msg.LANG_CONTROLS_FLOW_STATEMENTS_WARNING)}}},Yt={init:function(){this.setColour(gt),this.appendDummyInput().appendField(ut.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new ut.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(ut.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return ut.Msg.CONTROLS_FOR_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ut.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},xt={init:function(){this.setColour(gt),this.appendDummyInput().appendField(ut.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new ut.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(ut.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return ut.Msg.MIXLY_PYTHON_CONTROLS_FOR_RANGE_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ut.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}};Ft.OPERATORS=[[ut.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"WHILE"],[ut.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"UNTIL"]],vt.OPERATORS=[[ut.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK,"BREAK"],[ut.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE,"CONTINUE"]];const bt={init:function(){this.setColour(gt),this.appendDummyInput().appendField(ut.Msg.CONTROLS_IF_IF_TITLE_IF),this.appendStatementInput("STACK"),this.setTooltip(ut.Msg.CONTROLS_IF_IF_TOOLTIP),this.contextMenu=!1}},Xt={init:function(){this.setColour(gt),this.appendDummyInput().appendField(ut.Msg.CONTROLS_IF_ELSEIF_TITLE_ELSEIF),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.CONTROLS_IF_ELSEIF_TOOLTIP),this.contextMenu=!1}},yt={init:function(){this.setColour(gt),this.appendDummyInput().appendField(ut.Msg.CONTROLS_IF_ELSE_TITLE_ELSE),this.setPreviousStatement(!0),this.setTooltip(ut.Msg.CONTROLS_IF_ELSE_TOOLTIP),this.contextMenu=!1}},Vt={init:function(){this.setColour(gt),this.appendDummyInput().appendField("try"),this.appendStatementInput("STACK"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.contextMenu=!1}},Bt={init:function(){this.setColour(gt),this.appendDummyInput().appendField(ut.Msg.MIXLY_PYTHON_EXCEPT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.contextMenu=!1,this.setTooltip(ut.Msg.MIXLY_MIXPY_CONTROL_EXCEPT_TOOLTIP)}},Gt={init:function(){this.setColour(gt),this.appendDummyInput().appendField(ut.Msg.MIXLY_PYTHON_FINALLY),this.setPreviousStatement(!0),this.contextMenu=!1,this.setTooltip(ut.Msg.MIXLY_MIXPY_CONTROL_FINALLY_TOOLTIP)}},Ut={init:function(){this.jsonInit({message0:ut.Msg.CONTROLS_REPEAT_TITLE,args0:[{type:"input_value",name:"TIMES"}],previousStatement:null,nextStatement:null,colour:gt,tooltip:ut.Msg.CONTROLS_REPEAT_TOOLTIP,helpUrl:ut.Msg.CONTROLS_REPEAT_HELPURL}),this.appendStatementInput("DO")}},wt={init:function(){this.setColour(gt),this.appendValueInput("BOOL").appendField("lambda"),this.appendStatementInput("DO").appendField(ut.Msg.MIXLY_STAT),this.setOutput(!0)}},kt={init:function(){this.setColour(gt),this.appendDummyInput().appendField(ut.Msg.MIXLY_PYTHON_PASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.MIXLY_PYTHON_CONTROLS_PASS_TOOLTIP)}},Ht={init:function(){this.setColour(gt),this.appendDummyInput().appendField(ut.Msg.MIXLY_PYTHON_CONTROLS_THREAD_START),this.appendValueInput("callback").appendField(ut.Msg.MIXLY_PYTHON_CONTROLS_THREAD_USE),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_PYTHON_CONTROLS_THREAD_TOOLTIP)}},Wt={init:function(){this.appendDummyInput().appendField(ut.Msg.CONTROLS_REPEAT_TITLE_REPEAT+ut.Msg.MIXLY_DO),this.appendStatementInput("input_data").setCheck(null),this.appendValueInput("select_data").setCheck(null).appendField(ut.Msg.CONTROLS_OPERATOR_UNTIL).appendField(new ut.FieldDropdown([[ut.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"true"],[ut.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"false"]]),"type"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(gt),this.setTooltip("do-while loop"),this.setHelpUrl("")}},Kt={init:function(){this.setColour(gt),this.appendDummyInput().appendField(ut.Msg.MIXLY_OP_GARBAGE_COLLECT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Jt={init:function(){this.setColour(gt),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET_MEM_ALLOC),this.setOutput(!0)}},Qt={init:function(){this.setColour(gt),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET_MEM_FREE),this.setOutput(!0)}},zt=230;ut.FieldTextInput.math_number_validator=function(t){return String(t)},ut.FieldTextInput.math_number_validator_include_blank=function(t){if(""===t)return"";return/^-?(0X|0x|0O|0o|0B|0b)?[a-fA-F0-9]{1,}(\.[a-fA-F0-9]+)?$/.test(t)?String(t):null};const qt={init:function(){this.setColour(zt),this.appendDummyInput().appendField(new ut.FieldTextInput("0",ut.FieldTextInput.math_number_validator),"NUM"),this.setOutput(!0,Number),this.setTooltip(ut.Msg.MATH_NUMBER_TOOLTIP)}},jt={init:function(){this.setColour(zt);this.appendDummyInput("").appendField(ut.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new ut.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:ut.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_TOOLTIP,e:ut.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_TOOLTIP}[e]}))}},Zt={init:function(){this.setColour(zt);this.appendDummyInput("").appendField(ut.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new ut.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:ut.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_MP_TOOLTIP,e:ut.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_MP_TOOLTIP}[e]}))}},$t={init:function(){this.setColour(zt),this.setOutput(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new ut.FieldDropdown([["+","ADD"],["-","MINUS"],["×","MULTIPLY"],["÷","DIVIDE"],["%","QUYU"],["//","ZHENGCHU"],["**","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:ut.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:ut.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:ut.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:ut.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:ut.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:ut.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:ut.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},te={init:function(){this.setColour(zt),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new ut.FieldDropdown([["+=","ADD"],["-=","MINUS"],["×=","MULTIPLY"],["÷=","DIVIDE"],["%=","QUYU"],["//=","ZHENGCHU"],["**=","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:ut.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:ut.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:ut.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:ut.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:ut.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:ut.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:ut.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},ee={init:function(){this.setColour(zt),this.setOutput(!0,Number),this.appendValueInput("A").setCheck(Number),this.appendValueInput("B").setCheck(Number).appendField(new ut.FieldDropdown([["&","&"],["|","|"],[">>",">>"],["<<","<<"]]),"OP"),this.setInputsInline(!0),this.setTooltip("位运算")}},ie={init:function(){this.setColour(zt),this.setOutput(!0,Number),this.appendValueInput("NUM").setCheck(Number).appendField(new ut.FieldDropdown([["sin","SIN"],["cos","COS"],["tan","TAN"],["asin","ASIN"],["acos","ACOS"],["atan","ATAN"],["-","-"],["ln","LN"],["log10","LOG10"],["e^","EXP"],["10^","POW10"]]),"OP");var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{SIN:ut.Msg.MATH_TRIG_TOOLTIP_SIN,COS:ut.Msg.MATH_TRIG_TOOLTIP_COS,TAN:ut.Msg.MATH_TRIG_TOOLTIP_TAN,ASIN:ut.Msg.MATH_TRIG_TOOLTIP_ASIN,ACOS:ut.Msg.MATH_TRIG_TOOLTIP_ACOS,ATAN:ut.Msg.MATH_TRIG_TOOLTIP_ATAN,LN:ut.Msg.MATH_SINGLE_TOOLTIP_LN}[e]}))}},ne={init:function(){var t=[[ut.Msg.MATH_BIN,"bin"],[ut.Msg.MATH_OCT,"oct"],[ut.Msg.MATH_HEX,"hex"]];this.setColour(zt),this.setOutput(!0,String),this.appendValueInput("NUM").setCheck(Number).appendField(new ut.FieldDropdown(t),"OP");var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{bin:ut.Msg.MATH_DEC_TOOLTIP_BIN,oct:ut.Msg.MATH_DEC_TOOLTIP_OCT,hex:ut.Msg.MATH_DEC_TOOLTIP_HEX}[t]}))}},se={init:function(){var t=[[ut.Msg.LANG_MATH_TO_ROUND,"round"],[ut.Msg.LANG_MATH_TO_CEIL,"ceil"],[ut.Msg.LANG_MATH_TO_FLOOR,"floor"],[ut.Msg.MATH_ABS,"fabs"],[ut.Msg.MATH_SQRT,"sqrt"]];this.setColour(zt),this.appendValueInput("A").setCheck(Number).appendField(new ut.FieldDropdown(t),"OP"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{sqrt:ut.Msg.MATH_SINGLE_TOOLTIP_ROOT,fabs:ut.Msg.MATH_SINGLE_TOOLTIP_ABS,sq:ut.Msg.MATH_SINGLE_TOOLTIP_SQ,round:ut.Msg.MATH_SINGLE_TOOLTIP_ROUND,ceil:ut.Msg.MATH_SINGLE_TOOLTIP_CEIL,floor:ut.Msg.MATH_SINGLE_TOOLTIP_FLOOR}[t]}))}},oe={init:function(){var t=[[ut.Msg.MIXLY_MAX,"max"],[ut.Msg.MIXLY_MIN,"min"]];this.setColour(zt),this.appendValueInput("A").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(new ut.FieldDropdown(t),"OP").appendField("("),this.appendValueInput("B").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(","),this.appendDummyInput("").setAlign(ut.inputs.Align.RIGHT).appendField(")"),this.setInputsInline(!0),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{max:ut.Msg.MIXLY_TOOLTIP_MATH_MAX,min:ut.Msg.MIXLY_TOOLTIP_MATH_MIN}[t]}))}},_e={init:function(){var t=[[ut.Msg.MATH_TWO,"two"],[ut.Msg.MATH_EIGHT,"eight"],[ut.Msg.MATH_TEN,"ten"],[ut.Msg.MATH_SIXTEEN,"sixteen"]];this.setColour(zt),this.appendDummyInput("").appendField(ut.Msg.MATH_BA),this.appendValueInput("NUM").appendField(new ut.FieldDropdown(t),"OP").appendField(ut.Msg.MATH_JinZhi).setCheck(Number),this.appendDummyInput("").appendField(ut.Msg.MATH_ZHW).appendField(new ut.FieldDropdown(t),"OP2").appendField(ut.Msg.MATH_JinZhi),this.setFieldValue("ten","OP2"),this.setOutput(!0),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP"),i={two:ut.Msg.MATH_Before_two,eight:ut.Msg.MATH_Before_eight,ten:ut.Msg.MATH_Before_ten,sixteen:ut.Msg.MATH_Before_sixteen},n=e.getFieldValue("OP2"),s={two:ut.Msg.MATH_Behind_two,eight:ut.Msg.MATH_Behind_eight,ten:ut.Msg.MATH_Behind_ten,sixteen:ut.Msg.MATH_Behind_sixteen};return i[t]+s[n]}))}},pe={init:function(){var t=[[ut.Msg.LANG_MATH_INT,"int"],[ut.Msg.LANG_MATH_FLOAT,"float"]];this.setColour(zt),this.setOutput(!0,Number),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_RANDOM).appendField(new ut.FieldDropdown(t),"TYPE"),this.appendValueInput("FROM").setCheck(Number).appendField(ut.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.LANG_MATH_RANDOM_INT_INPUT_TO),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TYPE"),i={int:ut.Msg.LANG_MATH_INT,float:ut.Msg.LANG_MATH_FLOAT_RANDOM};return ut.Msg.MATH_RANDOM_INT_TOOLTIP+i[t]}))}},ae={init:function(){this.setColour(zt),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number).appendField(ut.Msg.LANG_MATH_CONSTRAIN_INPUT_CONSTRAIN),this.appendValueInput("LOW").setCheck(Number).appendField(ut.Msg.LANG_MATH_CONSTRAIN_INPUT_LOW),this.appendValueInput("HIGH").setCheck(Number).appendField(ut.Msg.LANG_MATH_CONSTRAIN_INPUT_HIGH),this.setInputsInline(!0),this.setTooltip(ut.Msg.MATH_CONSTRAIN_TOOLTIP)}},ue={init:function(){this.setColour(zt),this.appendValueInput("NUM",Number).appendField(ut.Msg.MIXLY_MAP).setCheck(Number),this.appendValueInput("fromLow",Number).appendField(ut.Msg.MIXLY_MAP_FROM).setCheck(Number),this.appendValueInput("fromHigh",Number).appendField(",").setCheck(Number),this.appendValueInput("toLow",Number).appendField(ut.Msg.MIXLY_MAP_TO).setCheck(Number),this.appendValueInput("toHigh",Number).appendField(",").setCheck(Number),this.appendDummyInput("").appendField("]"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(ut.Msg.MIXLY_TOOLTIP_MATH_MAP)}},re={init:function(){this.setColour(zt),this.appendDummyInput().appendField(new ut.FieldTextInput("0",ut.FieldTextInput.math_number_validator_include_blank),"NUM"),this.setOutput(!0),this.setTooltip(ut.Msg.MATH_NUMBER_TOOLTIP)}},le={init:function(){this.setColour(zt),this.appendValueInput("NUM").setCheck(Number).appendField(ut.Msg.LANG_MATH_RANDOM_SEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.MIXLY_TOOLTIP_MATH_RANDOM_SEED)}},de={init:function(){this.setColour(zt),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number),this.appendValueInput("VAR").setCheck(Number).appendField(ut.Msg.MATH_ROUND).appendField(ut.Msg.TEXT_KEEP),this.appendDummyInput().appendField(ut.Msg.TEXT_DECIMAL),this.setInputsInline(!0),this.setTooltip(ut.Msg.MATH_ROUND_NEW_TOOLTIP)}},Ie={init:function(){var t=[[ut.Msg.MIXLY_TO_INT,"int"],[ut.Msg.MIXLY_TO_FLOAT,"float"],[ut.Msg.MIXLY_TO_BITES,"b"]];this.setColour(zt),this.appendValueInput("VAR").appendField(new ut.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:ut.Msg.MIXLY_PYTHON_TOOLTIP_TOINT,float:ut.Msg.MIXLY_PYTHON_TOOLTIP_TOFLOAT,b:ut.Msg.MIXLY_TOOLTIP_TEXT_TOBYTE}[t]}))}},Te={init:function(){var t=[[ut.Msg.MIXLY_TO_INT,"int"],[ut.Msg.MIXLY_TO_FLOAT,"float"]];this.setColour(zt),this.appendValueInput("VAR").appendField(new ut.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:ut.Msg.MIXLY_TOOLTIP_TEXT_TOINT,float:ut.Msg.MIXLY_TOOLTIP_TEXT_TOFLOAT}[t]}))}},he=ue,Me=160,me={init:function(){this.setColour(Me),this.appendDummyInput().appendField(this.newQuote_(!0)).appendField(new ut.FieldTextInput(""),"TEXT").appendField(this.newQuote_(!1)),this.setOutput(!0,String),this.setTooltip(ut.Msg.TEXT_TEXT_TOOLTIP)},newQuote_:function(t){if(t==this.RTL)var e="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAKCAQAAAAqJXdxAAAAqUlEQVQI1z3KvUpCcRiA8ef9E4JNHhI0aFEacm1o0BsI0Slx8wa8gLauoDnoBhq7DcfWhggONDmJJgqCPA7neJ7p934EOOKOnM8Q7PDElo/4x4lFb2DmuUjcUzS3URnGib9qaPNbuXvBO3sGPHJDRG6fGVdMSeWDP2q99FQdFrz26Gu5Tq7dFMzUvbXy8KXeAj57cOklgA+u1B5AoslLtGIHQMaCVnwDnADZIFIrXsoXrgAAAABJRU5ErkJggg==";else e="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAKCAQAAAAqJXdxAAAAn0lEQVQI1z3OMa5BURSF4f/cQhAKjUQhuQmFNwGJEUi0RKN5rU7FHKhpjEH3TEMtkdBSCY1EIv8r7nFX9e29V7EBAOvu7RPjwmWGH/VuF8CyN9/OAdvqIXYLvtRaNjx9mMTDyo+NjAN1HNcl9ZQ5oQMM3dgDUqDo1l8DzvwmtZN7mnD+PkmLa+4mhrxVA9fRowBWmVBhFy5gYEjKMfz9AylsaRRgGzvZAAAAAElFTkSuQmCC";return new ut.FieldImage(e,12,12,'"')}},Oe={init:function(){this.setColour(Me),this.appendDummyInput().appendField(this.newQuote_(!0)).appendField(new ut.FieldMultilineInput("Hello\nMixly"),"VALUE").appendField(this.newQuote_(!1)),this.setOutput(!0,String),this.setTooltip(ut.Msg.TEXT_LINES_TOOLTIP)},newQuote_:function(t){if(t==this.RTL)var e="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAKCAQAAAAqJXdxAAAAqUlEQVQI1z3KvUpCcRiA8ef9E4JNHhI0aFEacm1o0BsI0Slx8wa8gLauoDnoBhq7DcfWhggONDmJJgqCPA7neJ7p934EOOKOnM8Q7PDElo/4x4lFb2DmuUjcUzS3URnGib9qaPNbuXvBO3sGPHJDRG6fGVdMSeWDP2q99FQdFrz26Gu5Tq7dFMzUvbXy8KXeAj57cOklgA+u1B5AoslLtGIHQMaCVnwDnADZIFIrXsoXrgAAAABJRU5ErkJggg==";else e="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAKCAQAAAAqJXdxAAAAn0lEQVQI1z3OMa5BURSF4f/cQhAKjUQhuQmFNwGJEUi0RKN5rU7FHKhpjEH3TEMtkdBSCY1EIv8r7nFX9e29V7EBAOvu7RPjwmWGH/VuF8CyN9/OAdvqIXYLvtRaNjx9mMTDyo+NjAN1HNcl9ZQ5oQMM3dgDUqDo1l8DzvwmtZN7mnD+PkmLa+4mhrxVA9fRowBWmVBhFy5gYEjKMfz9AylsaRRgGzvZAAAAAElFTkSuQmCC";return new ut.FieldImage(e,12,12,'"')}};ut.FieldTextInput.char_validator=function(t){if(t.length>1&&"\\"===t.charAt(0)){var e=t.charAt(1);if("0"===e||"b"===e||"f"===e||"n"===e||"r"===e||"t"===e||"\\"===e||"'"===e)return String(t).substring(0,2);if("x"===e&&"0"===t.charAt(2)&&"B"===t.charAt(3))return String(t).substring(0,4)}return String(t).substring(0,1)};const Ee={init:function(){this.setColour(Me),this.appendDummyInput().appendField(this.newQuote_(!0)).appendField(new ut.FieldTextInput("",ut.FieldTextInput.char_validator),"TEXT").appendField(this.newQuote_(!1)),this.setOutput(!0,Number),this.setTooltip(ut.Msg.TEXT_CHAR_TOOLTIP)},newQuote_:function(t){if(1==t)var e="../../media/quote2.png";else e="../../media/quote3.png";return new ut.FieldImage(e,7,12,'"')}},Re={init:function(){this.setColour(Me),this.appendValueInput("A").setCheck([String,Number]),this.appendValueInput("B").setCheck([String,Number]).appendField(ut.Msg.MIXLY_TEXT_JOIN),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(ut.Msg.MIXLY_TOOLTIP_TEXT_JOIN)}},ce={init:function(){this.setColour(Me),this.appendValueInput("VAR").setCheck(Number).appendField(ut.Msg.MIXLY_TOCHAR),this.setOutput(!0,String),this.setTooltip(ut.Msg.MIXLY_TOOLTIP_TEXT_TOCHAR)}},ge={init:function(){this.setColour(Me),this.appendValueInput("VAR").setCheck(String).appendField(ut.Msg.MIXLY_TOASCII),this.setOutput(!0,Number),this.setTooltip(ut.Msg.MIXLY_TOOLTIP_TEXT_TOASCII)}},Ce={init:function(){this.setColour(Me),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_TOSTRING),this.setOutput(!0,String),this.setTooltip(ut.Msg.MIXLY_PYTHON_TOOLTIP_TOTEXT)}},Se={init:function(){this.setColour(Me),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_LENGTH),this.setOutput(!0,Number),this.setTooltip(ut.Msg.MIXLY_TOOLTIP_TEXT_LENGTH)}},Ae={init:function(){this.WHERE_OPTIONS=[[ut.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[ut.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[ut.Msg.TEXT_GET_INDEX_RANDOM+1+ut.Msg.TEXT_CHARAT2,"RANDOM"]],this.setHelpUrl(ut.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(Me),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number),this.appendDummyInput().appendField(ut.Msg.LISTS_GET_INDEX_GET,"MODE"),ut.Msg.LISTS_GET_INDEX_TAIL&&this.appendDummyInput("TAIL").appendField(ut.Msg.LISTS_GET_INDEX_TAIL),this.setInputsInline(!0),this.setOutput(!0),this.updateAt_(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=t.getFieldValue("WHERE"),n="";switch(e+" "+i){case"GET FROM_START":case"GET FROM_END":n=ut.Msg.LISTS_GET_INDEX_TOOLTIP_GET_FROM;break;case"GET RANDOM":n=ut.Msg.LISTS_GET_INDEX_TOOLTIP_GET_RANDOM;break;case"GET_REMOVE FROM_START":case"GET_REMOVE FROM_END":n=ut.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM;break;case"GET_REMOVE RANDOM":n=ut.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM}return"FROM_START"!=i&&"FROM_END"!=i||(n+=" "+ut.Msg.LISTS_INDEX_FROM_START_TOOLTIP.replace("%1",ut.Msg.ONE_BASED_INDEXING?"#1":"#0")),n}));var e=this;this.setTooltip((function(){var t=e.getFieldValue("WHERE"),i={FROM_START:ut.Msg.LISTS_GET_INDEX_FROM_START,FROM_END:ut.Msg.LISTS_GET_INDEX_FROM_END,RANDOM:ut.Msg.TEXT_GET_INDEX_RANDOM};return ut.Msg.PROCEDURES_DEFRETURN_RETURN+ut.Msg.MIXLY_MICROBIT_TYPE_STRING+i[t]+"n"+ut.Msg.TEXT_CHARAT2}))},mutationToDom:function(){var t=document.createElement("mutation");t.setAttribute("statement",!this.outputConnection);var e=this.getInput("AT").type==ut.INPUT_VALUE;return t.setAttribute("at",e),t},domToMutation:function(t){var e="true"==t.getAttribute("statement");this.updateStatement_(e),t="false"!=t.getAttribute("at"),this.updateAt_(t)},updateStatement_:function(t){t!=!this.outputConnection&&(this.unplug(!0,!0),t?(this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)):(this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)))},updateAt_:function(t){this.removeInput("AT"),this.removeInput("ORDINAL",!0),t?(this.appendValueInput("AT").setCheck(Number),ut.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL").appendField(ut.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT");var e=new ut.FieldDropdown(this.WHERE_OPTIONS,(function(e){var i="FROM_START"==e||"FROM_END"==e;if(i!=t){var n=this.sourceBlock_;return n.updateAt_(i),n.setFieldValue(e,"WHERE"),null}}));this.getInput("AT").appendField(e,"WHERE"),ut.Msg.LISTS_GET_INDEX_TAIL&&this.moveInputBefore("TAIL",null)}},Le={init:function(){this.setHelpUrl(ut.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(Me),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number).appendField(ut.Msg.LISTS_GET_INDEX_GET+" "+ut.Msg.LISTS_GET_INDEX_FROM_START),this.appendDummyInput().appendField(ut.Msg.TEXT_CHARAT2),this.setOutput(!0),this.setTooltip(ut.Msg.PROCEDURES_DEFRETURN_RETURN+ut.Msg.MIXLY_MICROBIT_TYPE_STRING+ut.Msg.LISTS_GET_INDEX_FROM_START+"n"+ut.Msg.TEXT_CHARAT2)}},Ne={init:function(){this.setHelpUrl(ut.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(Me),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput().appendField(ut.Msg.TEXT_RANDOM_CHAR),this.setOutput(!0),this.setTooltip(ut.Msg.TEXT_RANDOM_CHAR_TOOLTIP)}},De={init:function(){this.WHERE_OPTIONS_1=[[ut.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[ut.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[ut.Msg.LISTS_GET_SUBLIST_START_FIRST,"FIRST"]],this.WHERE_OPTIONS_2=[[ut.Msg.LISTS_GET_SUBLIST_END_FROM_START,"FROM_START"],[ut.Msg.LISTS_GET_SUBLIST_END_FROM_END,"FROM_END"],[ut.Msg.LISTS_GET_SUBLIST_END_LAST,"LAST"]],this.setHelpUrl(ut.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(Me),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput("").appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput("AT1"),this.appendDummyInput("AT2"),this.setInputsInline(!0),this.setOutput(!0,"List"),this.updateAt_(1,!0),this.updateAt_(2,!0),this.setTooltip(ut.Msg._GET_TEXT_SUBLIST_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT1").type==ut.INPUT_VALUE;t.setAttribute("at1",e);var i=this.getInput("AT2").type==ut.INPUT_VALUE;return t.setAttribute("at2",i),t},domToMutation:function(t){var e="true"==t.getAttribute("at1"),i="true"==t.getAttribute("at2");this.updateAt_(1,e),this.updateAt_(2,i)},updateAt_:function(t,e){this.removeInput("AT"+t),this.removeInput("ORDINAL"+t,!0),e?(this.appendValueInput("AT"+t).setCheck(Number),ut.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL"+t).appendField(ut.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT"+t);var i=new ut.FieldDropdown(this["WHERE_OPTIONS_"+t],(function(i){var n="FROM_START"==i||"FROM_END"==i;if(n!=e){var s=this.sourceBlock_;return s.updateAt_(t,n),s.setFieldValue(i,"WHERE"+t),null}}));this.getInput("AT"+t).appendField(i,"WHERE"+t),1==t&&(this.moveInputBefore("AT1","AT2"),this.getInput("ORDINAL1")&&this.moveInputBefore("ORDINAL1","AT2"))}},fe={init:function(){this.setHelpUrl(ut.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(Me),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT1").appendField(ut.Msg.LISTS_GET_INDEX_GET+" "+ut.Msg.LISTS_GET_INDEX_FROM_START),this.appendValueInput("AT2").appendField(ut.Msg.LISTS_GET_SUBLIST_END_FROM_START),this.appendDummyInput().appendField(ut.Msg.TEXT_CHARAT2),this.setInputsInline(!0),this.setOutput(!0,["List",String]),this.setTooltip(ut.Msg._GET_TEXT_SUBLIST_TOOLTIP)}},Fe={init:function(){var t=[[ut.Msg.MIXLY_EQUALS,"==="],[ut.Msg.MIXLY_STARTSWITH,"startswith"],[ut.Msg.MIXLY_ENDSWITH,"endswith"]];this.setColour(Me),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(new ut.FieldDropdown(t),"DOWHAT").setCheck(String),this.setOutput(!0,[Boolean,Number]),this.setInputsInline(!0)}},Pe={init:function(){this.setColour(Me),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(ut.Msg.MIXLY_COMPARETO).setCheck(String),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_COMPARETO_HELP)}},ve={init:function(){var t=[[ut.Msg.TEXT_UPPER,"upper"],[ut.Msg.TEXT_TITLE,"title"],[ut.Msg.TEXT_CAPITALIZE,"capitalize"],[ut.Msg.TEXT_SWAPCASE,"swapcase"],[ut.Msg.TEXT_LOWER,"lower"]];this.setColour(Me),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new ut.FieldDropdown(t),"CAPITAL").setCheck(String),this.setOutput(!0,String);var e=this;this.setTooltip((function(){var t=e.getFieldValue("CAPITAL");return{upper:ut.Msg.MIXLY_MIXPY_TEXT_UPPER_TOOLTIP,title:ut.Msg.MIXLY_MIXPY_TEXT_TITLE_TOOLTIP,swapcase:ut.Msg.MIXLY_MIXPY_TEXT_SWAPCASE_TOOLTIP,capitalize:ut.Msg.MIXLY_MIXPY_TEXT_CAPITALIZE_TOOLTIP,lower:ut.Msg.MIXLY_MIXPY_TEXT_LOWER_TOOLTIP}[t]}))}},Ye={init:function(){var t=[[ut.Msg.TEXT_LJUST,"ljust"],[ut.Msg.TEXT_CENTER,"center"],[ut.Msg.TEXT_RJUST,"rjust"]];this.setColour(Me),this.appendValueInput("VAR").appendField(new ut.FieldDropdown(t),"CENTER").setCheck(String),this.appendValueInput("WID").appendField(ut.Msg.MIXLY_WIDTH).setCheck(Number),this.appendValueInput("Symbol").appendField(ut.Msg.MIXLY_RECT_Fill).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(ut.Msg.MIXLY_MIXPY_TEXT_CENTER_TOOLTIP)}},xe={init:function(){this.setColour(Me),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).setCheck(String),this.appendValueInput("STR").appendField(ut.Msg.MIXLY_MID+ut.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER).setCheck(String),this.appendDummyInput().appendField(ut.Msg.MIXLY_LIST_INDEX),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(ut.Msg.MIXLY_MIXPY_TEXT_FIND_TOOLTIP)}},be={init:function(){this.setColour(Me),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_USE_STR).setCheck(String),this.appendValueInput("LIST").appendField(ut.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_SEQ).setCheck("List","Tuple","Set","Dict"),this.appendDummyInput().appendField(ut.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_GET_STR),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(ut.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_TOOLTIP)}},Xe={init:function(){this.setColour(Me),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("STR1").appendField(ut.Msg.MIXLY_MIXPY_REPLACE).setCheck(String),this.appendValueInput("STR2").appendField(ut.Msg.LISTS_SET_INDEX_INPUT_TO).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(ut.Msg.MIXLY_MIXPY_TEXT_REPLACE_TOOLTIP)}},ye={init:function(){this.setColour(Me),this.appendValueInput("VAR"),this.appendValueInput("VAL").appendField(ut.Msg.LIST_SPLIT_AS),this.appendDummyInput("").appendField(ut.Msg.LIST_SPLIT),this.setOutput(!0,"List"),this.setTooltip(ut.Msg.MIXLY_MIXPY_TEXT_SPLIT_TOOLTIP),this.setInputsInline(!0)}},Ve={init:function(){var t=[[ut.Msg.TEXT_TRIM_BOTH,"strip"],[ut.Msg.TEXT_TRIM_LEFT,"lstrip"],[ut.Msg.TEXT_TRIM_RIGHT,"rstrip"]];this.setColour(Me),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(ut.Msg.TEXT_STRIM),this.appendDummyInput("").appendField(new ut.FieldDropdown(t),"TOWHAT"),this.appendDummyInput("").appendField(ut.Msg.TEXT_BLANK),this.setOutput(!0,String),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{strip:ut.Msg.TEXT_TRIM_BOTH_TOOLTIP,lstrip:ut.Msg.TEXT_TRIM_LEFT_TOOLTIP,rstrip:ut.Msg.TEXT_TRIM_RIGHT_TOOLTIP}[t]}))}},Be={init:function(){this.setColour(Me),this.appendDummyInput("").appendField(ut.Msg.MIXLY_MICROPYTHON_FORMAT),this.appendDummyInput("").appendField(new ut.FieldTextInput("str"),"VAR"),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new ut.icons.MutatorIcon(["text_create_with_item"],this)),this.setOutput(!0),this.setTooltip(ut.Msg.MIXLY_MIXPY_TEXT_FORMAT_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("text_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ut.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},bi={init:function(){this.setColour(Yi),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(ut.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},Xi={init:function(){this.setColour(Yi),this.appendDummyInput().appendField(ut.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},yi={init:function(){this.setColour(Yi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(ut.Msg.DICT_KEYS),this.setTooltip(ut.Msg.DICTS_KEYS_TOOLTIP),this.setOutput(!0,"List")}},Vi={init:function(){this.setColour(Yi),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(ut.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(ut.Msg.DICTS_ADD_VALUE),this.setOutput(!0),this.setTooltip(ut.Msg.DICTS_GET_TOOLTIP)}},Bi={init:function(){this.setColour(Yi),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(ut.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(ut.Msg.DICTS_ADD_VALUE),this.appendValueInput("VAR").appendField(ut.Msg.DICTS_DEFAULT_VALUE),this.setOutput(!0),this.setTooltip(ut.Msg.DICTS_GET_DEFAULT_TOOLTIP)}},Gi={init:function(){this.setColour(Yi),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(ut.Msg.DICTS_ADD),this.appendDummyInput(),this.appendValueInput("VAR").appendField(ut.Msg.DICTS_ADD_VALUE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.DICTS_ADD_OR_CHANGE_TOOLTIP)}},Ui={init:function(){this.setColour(Yi),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(ut.Msg.DICTS_DELETE_IN),this.appendDummyInput("").appendField(ut.Msg.DICTS_DELETE_VALUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.DICTS_DELETE_TOOLTIP)}},wi={init:function(){this.setColour(Yi),this.appendValueInput("DICT2").setCheck("Dict").appendField(ut.Msg.MAKE_DICT),this.appendValueInput("DICT").setCheck("Dict").appendField(ut.Msg.DICT_UPDATE),this.appendDummyInput("").appendField(ut.Msg.MIXLY_MID),this.setTooltip(ut.Msg.DICTS_UPDATE_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},ki={init:function(){this.setColour(Yi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(ut.Msg.DICT_CLEAR),this.setTooltip(ut.Msg.DICTS_CLEAR_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Hi={init:function(){this.setColour(Yi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(ut.Msg.DICT_ITEMS),this.setTooltip(ut.Msg.DICTS_ITEMS_TOOLTIP),this.setOutput(!0,"List")}},Wi={init:function(){this.setColour(Yi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(ut.Msg.DICT_VALUES),this.setTooltip(ut.Msg.DICTS_VALUES_TOOLTIP),this.setOutput(!0,"List")}},Ki={init:function(){this.setColour(Yi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_LENGTH),this.setTooltip(ut.Msg.DICT_LENGTH_TOOLTIP),this.setOutput(!0,Number)}},Ji={init:function(){this.setColour(Yi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(ut.Msg.DICT_DELDICT),this.setTooltip(ut.Msg.DICTS_DEL_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Qi={init:function(){this.MODE=[[ut.Msg.DICTS_ADD_OR_CHANGE,"INSERT"],[ut.Msg.MIXLY_MICROBIT_JS_DELETE_VAR,"DELETE"]],this.setHelpUrl(ut.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(Yi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("AT2"),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).appendField(ut.Msg.DICTS_ADD_VALUE),this.updateAt_(!0),this.setInputsInline(!0),this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e="";switch(t.getFieldValue("WHERE")){case"INSERT":e=ut.Msg.DICTS_ADD_TOOLTIP;break;case"DELETE":e=ut.Msg.DICTS_DELETE_TOOLTIP}return e}))},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT2").type==ut.INPUT_VALUE;return t.setAttribute("at2",e),t},domToMutation:function(t){var e="true"==t.getAttribute("at2");this.updateAt_(e)},updateAt_:function(t){this.removeInput("AT2"),this.removeInput("ORDINAL",!0),t?this.appendValueInput("AT2").setCheck(Number):this.appendDummyInput("AT2");var e=new ut.FieldDropdown(this.MODE,(function(e){var i="INSERT"==e;if(i!=t){var n=this.sourceBlock_;return n.updateAt_(i),n.setFieldValue(e,"WHERE"),null}}));this.getInput("AT2").appendField(e,"WHERE")}},zi={init:function(){this.setColour(Yi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(ut.Msg.blockpy_DICT_POP),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(ut.Msg.DICTS_ADD_VALUE),this.setTooltip(ut.Msg.DICT_POP_TOOLTIP),this.setInputsInline(!0),this.setOutput(!0)}},qi={init:function(){this.setColour(Yi),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(ut.Msg.DICTS_SET_DEFAULT),this.appendDummyInput("").appendField(ut.Msg.DICTS_DEFAULT_VALUE),this.appendValueInput("VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.DICTS_SETDEFAULT_TOOLTIP)}},ji={init:function(){this.setColour(Yi),this.appendDummyInput("").appendField(new ut.FieldLabel(ut.Msg.MIXLY_MICROBIT_TYPE_DICT),"TIP").appendField(" "),this.itemCount_=3,this.updateShape_(),this.setOutput(!0,"Dict"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setMutator(new ut.icons.MutatorIcon(["dicts_create_with_item"],this)),this.setTooltip(ut.Msg.DICTS_CREATE_WITH_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("dicts_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ut.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Zi={init:function(){this.setColour(Yi),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_TODICT),this.setOutput(!0),this.setTooltip(ut.Msg.MIXLY_PYTHON_TOOLTIP_TODICT)}},$i={init:function(){this.setColour(Yi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_TO_JSON),this.setTooltip(ut.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0,Number)}},tn={init:function(){this.setColour(Yi),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_CONVERT_TO_JSON),this.setTooltip(ut.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0,Number)}},en=210,nn={init:function(){var t=ut.RTL?[["=","EQ"],["≠","NEQ"],[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["=","EQ"],["≠","NEQ"],["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(en),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new ut.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{EQ:ut.Msg.LOGIC_COMPARE_TOOLTIP_EQ,NEQ:ut.Msg.LOGIC_COMPARE_TOOLTIP_NEQ,LT:ut.Msg.LOGIC_COMPARE_TOOLTIP_LT,LTE:ut.Msg.LOGIC_COMPARE_TOOLTIP_LTE,GT:ut.Msg.LOGIC_COMPARE_TOOLTIP_GT,GTE:ut.Msg.LOGIC_COMPARE_TOOLTIP_GTE}[t]})),this.prevBlocks_=[null,null]}},sn={init:function(){var t=ut.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]],e=ut.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(en),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new ut.FieldDropdown(t),"OP1"),this.appendValueInput("C").appendField(new ut.FieldDropdown(e),"OP2"),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_PYTHON_LOGIC_COMPARE_CONTINOUS_TOOLTIP)}},on={init:function(){var t=[[ut.Msg.LOGIC_OPERATION_AND,"AND"],[ut.Msg.LOGIC_OPERATION_OR,"OR"],[ut.Msg.LOGIC_OPERATION_NOR,"NOR"],[ut.Msg.LOGIC_OPERATION_XOR,"XOR"]];this.setColour(en),this.setOutput(!0,Boolean),this.appendValueInput("A").setCheck([Boolean,Number]),this.appendValueInput("B").setCheck([Boolean,Number]).appendField(new ut.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{AND:ut.Msg.LOGIC_OPERATION_TOOLTIP_AND,OR:ut.Msg.LOGIC_OPERATION_TOOLTIP_OR,NOR:ut.Msg.LOGIC_OPERATION_TOOLTIP_NOR,XOR:ut.Msg.LOGIC_OPERATION_TOOLTIP_XOR}[t]}))}},_n={init:function(){this.setColour(en),this.setOutput(!0,Boolean),this.appendValueInput("BOOL").setCheck([Number,Boolean]).appendField(ut.Msg.LOGIC_NEGATE_TITLE),this.setTooltip(ut.Msg.LOGIC_NEGATE_TOOLTIP)}},pn={init:function(){var t=[[ut.Msg.LOGIC_BOOLEAN_TRUE,"TRUE"],[ut.Msg.LOGIC_BOOLEAN_FALSE,"FALSE"]];this.setColour(en),this.setOutput(!0,Boolean),this.appendDummyInput().appendField(new ut.FieldDropdown(t),"BOOL"),this.setTooltip(ut.Msg.LOGIC_BOOLEAN_TOOLTIP)}},an={init:function(){this.setColour(en),this.setOutput(!0),this.appendDummyInput().appendField(ut.Msg.LOGIC_NULL),this.setTooltip(ut.Msg.LOGIC_NULL_TOOLTIP)}},un={init:function(){this.setColour(en),this.appendValueInput("A"),this.appendValueInput("B").appendField(ut.Msg.LOGIC_TERNARY_IF_TRUE),this.appendValueInput("C").appendField(ut.Msg.LOGIC_TERNARY_IF_FALSE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_TOOLTIP_LOGIT_TRUEORFALSE)}},rn={init:function(){var t=[[ut.Msg.TEXT_APPEND_TO,"in"],[ut.Msg.MIXLY_PYTHON_LOGIC_IS_NOT_IN,"not in"]];this.setColour(en),this.appendValueInput("A"),this.appendValueInput("B").setCheck([String,"List"]).appendField(new ut.FieldDropdown(t),"BOOL"),this.appendDummyInput("").appendField(ut.Msg.MICROBIT_LOGIC_IS_IN),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(ut.Msg.IN)}},ln={init:function(){var t=[[ut.Msg.MIXLY_PYTHON_LOGIC_IS,"is"],[ut.Msg.MIXLY_PYTHON_LOGIC_IS_NOT,"is not"]];this.setColour(en),this.appendValueInput("A"),this.appendValueInput("B").appendField(new ut.FieldDropdown(t),"BOOL"),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_PYTHON_LOGIC_IS_TOOLTIP)}},dn={init:function(){this.setColour(en),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_TOBOOL),this.setOutput(!0,Boolean),this.setTooltip(ut.Msg.MIXLY_PYTHON_TOOLTIP_TOBOOL)}},In={init:function(){this.setColour(0),this.appendValueInput("fn").setCheck(String).appendField(ut.Msg.MIXLY_PYTHON_STORAGE_OPEN_FILE_WITH_OS+"(For Windows)"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Tn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendValueInput("FILE").appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_AS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=ut.Msg.MIXLY_USE,n=ut.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=ut.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,o=ut.Msg.MIXLY_BELONG;return i+{r:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+o+n+s}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ut.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},hn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=ut.Msg.MIXLY_USE,n=ut.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=ut.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,o=ut.Msg.MIXLY_BELONG,_=ut.Msg.PY_STORAGE_FILE_OBJECT;return i+{r:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+o+n+s+_}))}},Mn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE);this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendDummyInput().appendField(ut.Msg.MIXPY_TEXT_ENCODE).appendField(new ut.FieldDropdown([["ANSI","ANSI"],["gbk","gbk"],["utf-8","utf-8"]]),"CODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=ut.Msg.MIXLY_USE,n=ut.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=ut.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,o=ut.Msg.MIXLY_BELONG,_=ut.Msg.PY_STORAGE_FILE_OBJECT;return i+{r:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+o+n+s+_}))}},mn={init:function(){this.setColour(0),this.appendValueInput("data").setCheck(String).appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendValueInput("FILE").appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE+ut.Msg.MIXLY_MICROBIT_TYPE_STRING+ut.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE)}},On={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL,"read"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE,"readline"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES,"readlines"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String)}},En={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,"read"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,"readline"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE,"readlines"]]),"MODE"),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=ut.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE,n=ut.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER;return i+{read:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,readline:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,readlines:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE}[e]+"x"+n}))}},Rn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.setNextStatement(!0),this.appendValueInput("SIZE").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(ut.Msg.MICROBIT_PYTHON_TYPE)}},cn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(ut.Msg.HTML_FILE),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean),this.setTooltip(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT1)}},gn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_FILENAME),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILENAME)}},Cn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE)}},Sn={init:function(){this.setColour(0),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES)}};ut.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE;const An={init:function(){this.setColour(0),this.appendDummyInput().appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE,"remove"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_DIRS,"removedirs"]]),"MODE"),this.appendValueInput("FILE").setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE)}},Ln={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE+ut.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE)}},Nn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_RETURN_FILE),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_PRESENT_LOCATION),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_TELL)}},Dn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION),this.appendDummyInput().appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,"start"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,"current"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END,"end"]]),"MODE"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=ut.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION+ut.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION,n=ut.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER,s=ut.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET;return i+" "+{start:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,current:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,end:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END}[e]+s+"x"+n}))}},fn={init:function(){this.setColour(0),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR)}},Fn={init:function(){this.setColour(0),this.appendValueInput("PATH").setCheck(String).appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_SET),this.appendDummyInput().appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,"mkdir"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_MAKEDIRS,"makedirs"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return ut.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH+"x"+ut.Msg.MIXLY_ESP32_SET+{mkdir:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,makedirs:ut.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},Pn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME),this.appendValueInput("NEWFILE").setCheck(String).appendField(ut.Msg.MIXLY_AS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME)}},vn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR)}},Yn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT),this.appendDummyInput().appendField(new ut.FieldDropdown([[ut.Msg.HTML_FILE,"isfile"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_DIR,"isdir"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean);let t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return ut.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH+"x"+ut.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT+{isfile:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,isdir:ut.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},xn={init:function(){this.setColour(0),this.appendValueInput("SPISUB").appendField(ut.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_SETUP+ut.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(ut.Msg.MIXLY_SD_CARD),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},bn={init:function(){this.setColour(0),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_SD_CARD),this.appendValueInput("DIR").setCheck(String).appendField(ut.Msg.MIXLY_SDCARD_MOUNT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip()}},Xn={};Xn.NAME_TYPE=ut.PROCEDURE_CATEGORY_NAME,Xn.allProcedures=function(t){for(var e=t.getAllBlocks(!1),i=[],n=[],s=0;s"),this.appendValueInput("style").appendField(ut.Msg.MIXLY_AIP_ATTR).setAlign(ut.inputs.Align.RIGHT),this.appendStatementInput("DO").appendField(""),this.setInputsInline(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Ps={init:function(){this.setColour(As),this.appendDummyInput().appendField(ut.Msg.HTML_STYLE),this.appendStatementInput("STYLE"),this.setOutput(!0)}},vs={init:function(){this.setColour(As),this.appendDummyInput().appendField(ut.Msg.HTML_FORM_CONTENT).appendField(new ut.FieldDropdown([[ut.Msg.HTML_TEXT,"text"],[ut.Msg.HTML_EMAIL,"email"],[ut.Msg.HTML_NUMBER,"number"],[ut.Msg.HTML_PASSWORD,"password"],[ut.Msg.HTML_CHECKBOX,"checkbox"],[ut.Msg.HTML_RADIOBUTTON,"radiobutton"],[ut.Msg.HTML_BUTTON,"button"],[ut.Msg.HTML_COLOUR,"colour"],[ut.Msg.HTML_DATE,"date"],[ut.Msg.HTML_LOCALTIME,"local time"],[ut.Msg.HTML_FILE,"file"],[ut.Msg.HTML_HIDDEN,"hidden"],[ut.Msg.HTML_IMAGE,"image"],[ut.Msg.HTML_MONTH,"month"],[ut.Msg.HTML_RANGE,"range"],[ut.Msg.HTML_RESET,"reset"],[ut.Msg.HTML_SEARCH,"search"],[ut.Msg.HTML_SUBMIT,"submit"],[ut.Msg.HTML_TELEPHONENUMBER,"telephone number"],[ut.Msg.HTML_TIME,"time"],[ut.Msg.HTML_URL,"url"],[ut.Msg.HTML_WEEK,"week"]]),"LEVEL"),this.appendDummyInput().appendField(ut.Msg.HTML_NAME).appendField(new ut.FieldTextInput("car"),"NAME"),this.appendDummyInput().appendField(ut.Msg.HTML_VALUE).appendField(new ut.FieldTextInput("go"),"VALUE"),this.appendValueInput("style").appendField(ut.Msg.MIXLY_AIP_ATTR).setAlign(ut.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Ys={init:function(){this.setColour(As),this.appendDummyInput().appendField(new ut.FieldTextInput("property"),"KEY").appendField(":").appendField(new ut.FieldTextInput("value"),"VALUE"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},xs={init:function(){this.setColour(As),this.appendDummyInput().appendField(new ut.FieldTextInput("property"),"KEY").appendField(":").appendField(new ut.FieldColour("#ff0000"),"RGB_LED_COLOR"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},bs={init:function(){this.setColour(As),this.appendDummyInput().appendField(ut.Msg.HTML_TEXT).appendField(new ut.FieldTextInput("text"),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Xs=160,ys={init:function(){this.setColour(Xs),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Tabular Abstraction:"),this.appendDummyInput().appendField(new ut.FieldTable(""),"TEXT")}},Vs={init:function(){this.setColour(Xs),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Code Block:"),this.appendDummyInput().appendField(new ut.FieldMultilineInput(""),"TEXT")}},Bs={init:function(){this.setColour(Xs),this.appendDummyInput().appendField("Code Expression:"),this.appendDummyInput().appendField(new ut.FieldMultilineInput(""),"TEXT"),this.setOutput(!0)}},Gs={init:function(){this.setColour(Xs),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("VALUE").appendField(""),this.setInputsInline(!1)}},Us={init:function(){this.setColour(Xs),this.appendDummyInput().appendTitle("Comment:").appendTitle(new ut.FieldTextInput(""),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("This comment will be ignored by Python")}},ws={init:function(){this.setColour(Xs),this.appendValueInput("VALUE").appendField(ut.Msg.TYPE_CHECK),this.setInputsInline(!1),this.setOutput(!0,"Type")}},ks={init:function(){this.setColour(Xs),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new ut.icons.MutatorIcon(["text_print_multiple_item"],this)),this.setTooltip(ut.Msg.TEXT_PRINT_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=ut.Block.obtain(t,"text_print_multiple_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n= stop:"," yield start"," start -= abs(step)"])};if(t=function(t,e,i){return"("+t+" <= "+e+") and "+a()+"("+t+", "+e+", "+i+") or "+u()+"("+t+", "+e+", "+i+")"},ut.isNumber(n)&&ut.isNumber(s)&&ut.isNumber(o))n=parseFloat(n),s=parseFloat(s),o=Math.abs(parseFloat(o)),0==n%1&&0==s%1&&0==o%1?(n<=s?(s++,t=0==n&&1==o?s:n+", "+s,1!=o&&(t+=", "+o)):t=n+", "+--s+", -"+o,t="range("+t+")"):(t=n",GTE:">="};const Lp=function(t,e){var i=this.getFieldValue("OP"),n="&&"==i?e.ORDER_LOGICAL_AND:e.ORDER_LOGICAL_OR,s=e.valueToCode(this,"A",n)||"False",o=e.valueToCode(this,"B",n)||"False";if("AND"==i)var _=s+" and "+o;else if("OR"==i)_=s+" or "+o;else if("NOR"==i)_="not("+s+"^"+o+")";else _=s+"^"+o;return[_,n]},Np=function(t,e){var i=e.ORDER_UNARY_PREFIX;return["not "+(e.valueToCode(this,"BOOL",i)||"False"),i]},Dp=function(t,e){return["TRUE"==this.getFieldValue("BOOL")?"True":"False",e.ORDER_ATOMIC]},fp=function(t,e){return["None",e.ORDER_ATOMIC]},Fp=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"False";return["("+(e.valueToCode(this,"B",e.ORDER_ATOMIC)||"False")+" if "+i+" else "+(e.valueToCode(this,"C",e.ORDER_ATOMIC)||"False")+")",e.ORDER_ATOMIC]},Pp=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",n=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[i+" "+this.getFieldValue("BOOL")+" "+n,e.ORDER_ATOMIC]},vp=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",n=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[i+" "+this.getFieldValue("BOOL")+" "+n,e.ORDER_ATOMIC]},Yp=function(t,e){return["bool("+(e.valueToCode(this,"VAR",e.ORDER_ATOMIC)||"0")+")",e.ORDER_ATOMIC]},xp=function(t,e){return e.definitions_.import_os="import os","os.startfile("+e.valueToCode(this,"fn",e.ORDER_ATOMIC)+")\n"},bp=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+" = open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')\n"},Xp=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')",e.ORDER_ATOMIC]},yp=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"', encoding=\""+this.getFieldValue("CODE")+'")',e.ORDER_ATOMIC]},Vp=function(t,e){var i=e.valueToCode(this,"data",e.ORDER_ATOMIC);return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".write("+i+")\n"},Bp=function(t,e){var i=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+i+"()",e.ORDER_ATOMIC]},Gp=function(t,e){var i=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+i+"("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Up=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".readline("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},wp=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".writable()",e.ORDER_ATOMIC]},kp=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".name()",e.ORDER_ATOMIC]},Hp=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".close()\n"},Wp=function(t,e){e.definitions_.import_os="import os";return["os.listdir()",e.ORDER_ATOMIC]},Kp=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},Jp=function(t,e){return e.definitions_.import_os="import os",["os.path.getsize("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Qp=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".tell()",e.ORDER_ATOMIC]},zp=function(t,e){var i=this.getFieldValue("MODE"),n=0;return n="start"==i?0:"current"==i?1:2,e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".seek("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+","+n+")\n"},qp=function(t,e){return e.definitions_.import_os="import os","os.chdir("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},jp=function(t,e){e.definitions_.import_os="import os";return["os.getcwd()",e.ORDER_ATOMIC]},Zp=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"PATH",e.ORDER_ATOMIC)+")\n"},$p=function(t,e){return e.definitions_.import_os="import os","os.rename("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+","+e.valueToCode(this,"NEWFILE",e.ORDER_ATOMIC)+")\n"},ta=function(t,e){e.definitions_.import_os="import os";var i=e.valueToCode(this,"FILE",e.ORDER_ATOMIC);return["os."+this.getFieldValue("MODE")+"("+i+")",e.ORDER_ATOMIC]},ea=function(t,e){return e.definitions_.import_os="import os",e.definitions_.import_sdcard="import sdcard",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+" = sdcard.SDCard("+e.valueToCode(this,"SPISUB",e.ORDER_ATOMIC)+","+e.valueToCode(this,"PINSUB",e.ORDER_ATOMIC)+")\n"},ia=function(t,e){return e.definitions_.import_os="import os",e.definitions_.import_sdcard="import sdcard","os.mount("+e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+","+e.valueToCode(this,"DIR",e.ORDER_ATOMIC)+")\n"},na=function(t,e){var i=e.variableDB_.getName(this.getFieldValue("NAME"),ut.Procedures.NAME_TYPE),n=e.statementToCode(this,"STACK")||" pass\n";e.INFINITE_LOOP_TRAP&&(n=e.INFINITE_LOOP_TRAP.replace(/%1/g,"'"+this.id+"'")+n);var s=e.valueToCode(this,"RETURN",e.ORDER_NONE)||"";s&&(s=" return "+s+"\n");for(var o=[],_=0;_\n\n\n\t\n"+e.statementToCode(this,"HEAD")+"\n\n"+e.statementToCode(this,"BODY")+"\n\n'''",e.ORDER_ATOMIC]},ya=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");return"\n"+i+"\n"},Va=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");if("head"==n)var s="<"+n+'>\n\t\n'+i+"\n";else s="<"+n+">\n"+i+"\n";return s},Ba=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");return"<"+n+">\n"+i+"\n"},Ga=function(t,e){var i=e.statementToCode(this,"DO"),n=e.valueToCode(this,"style"),s=this.getFieldValue("LEVEL");return"<"+s+" "+n+" >\n"+i+"\n"},Ua=function(t,e){return['style="'+e.statementToCode(this,"STYLE")+'"',e.ORDER_ATOMIC]},wa=function(t,e){return'"},ka=function(){return this.getFieldValue("KEY")+":"+this.getFieldValue("VALUE")+";"},Ha=function(){return this.getFieldValue("TEXT")+"\n"},Wa=function(t){return t.getFieldValue("TEXT")+"\n"},Ka=function(t,e){return[t.getFieldValue("TEXT"),e.ORDER_ATOMIC]},Ja=function(t,e){return(e.valueToCode(t,"VALUE",e.ORDER_ATOMIC)||"")+"\n"},Qa=function(){return""},za=function(t,e){return["type("+(e.valueToCode(t,"VALUE",e.ORDER_MEMBER)||"___")+")",e.ORDER_ATOMIC]},qa=function(t,e){for(var i=t.getFieldValue("NAME"),n=t.hasReturn_,s=new Array(t.itemCount_),o=0;o0?e.join("\n")+"\n"+n.join("\n")+"\n"+s.join("")+"\n"+t+"while True:\n"+o.join("")+_.join("\n"):e.join("\n")+"\n"+n.join("\n")+"\n"+s.join("")+"\n"+t+_.join("\n")},Za.scrubNakedValue=function(t){return t+"\n"},Za.quote_=function(t){var e="'";return-1!==(t=t.replace(/\\/g,"\\\\").replace(/\n/g,"\\\n")).indexOf("'")&&(-1===t.indexOf('"')?e='"':t=t.replace(/'/g,"\\'")),e+t+e},Za.multiline_quote_=function(t){return"'''"+(t=t.replace(/'''/g,"\\'\\'\\'"))+"'''"},Za.scrub_=function(t,e,i){var n="";if(!t.outputConnection||!t.outputConnection.targetConnection){(o=t.getCommentText())&&(o=ut.utils.string.wrap(o,Za.COMMENT_WRAP-3),n+=Za.prefixLines(o+"\n","# "));for(var s=0;s0?"int("+p+" + "+s+")":s<0?"int("+p+" - "+-s+")":"int("+p+")",n&&(p="-"+p)),p};const $a="#74A55B",tu={init:function(){this.setColour($a),this.appendDummyInput("").appendField(ut.Msg.MIXLY_MIDI),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_SETUP).setCheck("var"),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(ut.Msg.MIXLY_RGB_PIN_COUNT)}},eu={init:function(){this.setColour($a),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(ut.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},iu={init:function(){this.setColour($a),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(ut.Msg.MIXLY_FREQUENCY),this.appendValueInput("time").setCheck(Number).appendField(ut.Msg.MIXLY_DURATION),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE2)}},nu={init:function(){this.setColour($a),this.appendValueInput("SUB"),this.appendValueInput("LIST").appendField(ut.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS)}},su={init:function(){this.setColour($a),this.appendValueInput("SUB"),this.appendValueInput("TICKS").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_JS_SET_TEMPO).appendField(ut.Msg.MICROBIT_ACTUATOR_ticks),this.appendValueInput("BPM").setCheck(Number).appendField(ut.Msg.MIXLY_SPEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_MUSIC_SET_TEMPO)}},ou={init:function(){this.setColour($a),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_Get_current_tempo),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_MUSIC_GET_TEMPO)}},_u={init:function(){this.setColour($a),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_Reset_music),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_MUSIC_RESET)}},pu={init:function(){this.setColour($a),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},au={init:function(){this.setColour($a),this.appendDummyInput().appendField(ut.Msg.MIXLY_SETTING).appendField(ut.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(ut.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("bright").appendField(ut.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_EXTERN_LED_SETONOFF)}},uu={init:function(){this.setColour($a),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(ut.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(ut.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(ut.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_EXTERN_LED_GETONOFF)}},ru={init:function(){this.setColour($a),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(ut.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(ut.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(ut.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_EXTERN_LED_GETONOFF)}},lu={init:function(){this.setColour($a),this.appendDummyInput().appendField(ut.Msg.MIXLY_SETTING).appendField(ut.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(ut.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("bright").appendField(ut.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_EXTERN_LED_SETBRIGHT)}},du={init:function(){this.setColour($a),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_SETUP+ut.Msg.MIXLY_SERVO),this.appendValueInput("PIN",Number).appendField(ut.Msg.MIXLY_PIN),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Iu={init:function(){this.setColour($a),this.appendValueInput("PIN",Number).appendField(ut.Msg.MIXLY_SERVO).appendField(ut.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("DEGREE",Number).setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_DEGREE_0_180),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_SERVO_MOVE)}},Tu={init:function(){this.setColour($a),this.appendValueInput("VAR").appendField("360°"+ut.Msg.MIXLY_SERVO),this.appendValueInput("SPEED",Number).setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_SETTING+ut.Msg.blockpy_turtle_rotate+ut.Msg.MIXLY_SPEED+" (-10~10)"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_SERVO_360_TOOLTIP)}},hu={init:function(){this.setColour($a),this.appendValueInput("PIN",Number).appendField("180°"+ut.Msg.MIXLY_SERVO).appendField(ut.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_SERVO_MOVE)}},Mu={init:function(){this.setColour($a),this.appendValueInput("PIN",Number).appendField("360°"+ut.Msg.MIXLY_SERVO).appendField(ut.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_SERVO_SPEED_TOOLIPS)}},mu={init:function(){this.setColour($a),this.appendValueInput("PIN",Number).appendField("180°"+ut.Msg.MIXLY_SERVO).appendField(ut.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET+ut.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setOutput(!0,Number),this.setInputsInline(!0)}},Ou={init:function(){this.setColour($a),this.appendValueInput("PIN",Number).appendField("360°"+ut.Msg.MIXLY_SERVO).appendField(ut.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET+ut.Msg.MIXLY_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},Eu={init:function(){this.setColour($a),this.appendValueInput("SUB").appendField("初始化").setCheck("var"),this.appendDummyInput().appendField("电机驱动"),this.appendDummyInput().appendField("地址").appendField(new ut.FieldDropdown([["A","ms32006.ADDRESS_A"],["B","ms32006.ADDRESS_B"]]),"mode"),this.appendValueInput("SUB1").setCheck("var").setAlign(ut.inputs.Align.RIGHT).appendField("通信"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("初始化MS32006电机驱动,使用I2C通信")}},Ru={init:function(){this.setColour($a),this.appendValueInput("SUB").appendField("直流电机").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_Direction).appendField(new ut.FieldDropdown([[ut.Msg.CLOCKWISE,"ms32006.MOT_CW"],[ut.Msg.ANTI_CLOCKWISE,"ms32006.MOT_CCW"],[ut.Msg.MOTOR_N,"ms32006.MOT_N"],[ut.Msg.MOTOR_P,"ms32006.MOT_P"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_STEPPER_SET_SPEED),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("设置直流电机的状态及转速(0-100)")}},cu={init:function(){this.setColour($a),this.appendValueInput("SUB").appendField("步进电机").setCheck("var"),this.appendDummyInput().appendField("选择").appendField(new ut.FieldDropdown([["A","ms32006.MOT_A"],["B","ms32006.MOT_B"]]),"mode"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_Direction).appendField(new ut.FieldDropdown([[ut.Msg.CLOCKWISE,"ms32006.MOT_CW"],[ut.Msg.ANTI_CLOCKWISE,"ms32006.MOT_CCW"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField("转速"),this.appendValueInput("steps").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField("步数"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("设置步进电机的状态、转速、步数(0-2047)")}},gu={init:function(){this.setColour($a),this.appendDummyInput("").appendField(ut.Msg.MIXLY_RGB),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_SETUP).setCheck("var"),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_PIN),this.appendValueInput("LEDCOUNT").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_COUNT),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(ut.Msg.MIXLY_RGB_PIN_COUNT)}},Cu={init:function(){this.setColour($a),this.appendDummyInput("").appendField(ut.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("_LED_").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(ut.Msg.MIXLY_RGB_NUM_R_G_B_MP)}},Su={init:function(){this.setColour($a),this.appendDummyInput("").appendField(ut.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("RVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(ut.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},Au={init:function(){this.setColour($a),this.appendDummyInput("").appendField(ut.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_RGB_WRITE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(ut.Msg.MIXLY_ESP32_MUSIC_WRI)}},Lu={init:function(){this.setColour($a),this.appendDummyInput("").appendField(ut.Msg.CONTROLS_FOR_INPUT_WITH+"uart").appendField(new ut.FieldDropdown([["uart1","uart1"],["uart2","uart2"]]),"key"),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_SETUP+ut.Msg.LISTS_SET_INDEX_INPUT_TO+"SYN6288"+ut.Msg.MIXLY_AipSpeech_synthesis),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setFieldValue("LTR308","key")}},Nu={init:function(){this.setColour($a),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("VOICE").setCheck(Number).appendField(ut.Msg.MIXLY_SET_VOLUME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_SET_VOLUME_TOOLTIP)}},Du={init:function(){this.setColour($a),this.appendValueInput("SUB").appendField("SYN6288"),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET_VOLUME),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_SET_VOLUME_TOOLTIP)}},fu={init:function(){this.setColour($a),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("VOICE").setCheck(Number).appendField(ut.Msg.MIXLY_PLAY_HINTS),this.appendDummyInput().appendField(ut.Msg.MIXLY_PROGRAM_BLOCK).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[ut.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"mode"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_PLAY_HINTS_TOOLTIP)}},Fu={init:function(){this.setColour($a),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("data").setCheck(String).appendField(ut.Msg.MIXLY_AipSpeech_synthesis),this.appendValueInput("VOICE").setCheck(Number).appendField(ut.Msg.MIXLY_BACKGROUND_MUSIC),this.appendDummyInput().appendField(ut.Msg.MIXLY_PROGRAM_BLOCK).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[ut.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"mode"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_PLAY_TTS_TOOLTIP)}},Pu={init:function(){this.setColour($a),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.extern_addr),"PIN"),this.setOutput(!0,Number)}},vu={init:function(){this.setColour($a),this.appendDummyInput().appendField(ut.Msg.ME_GO_MOTOR_EXTERN+ut.Msg.MIXLY_MOTOR).appendField(ut.Msg.PIN_NUMBERING).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_LEFT,"0"],[ut.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MIXBOT_MOTOR_EXTERN_TOOLTIP)}},Yu={init:function(){this.setColour($a),this.appendDummyInput().appendField(ut.Msg.ME_GO_MOTOR_EXTERN+ut.Msg.MIXLY_MOTOR).appendField(ut.Msg.PIN_NUMBERING).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_LEFT,"0"],[ut.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_GET+ut.Msg.MIXLY_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},xu={init:function(){this.setColour($a),this.appendDummyInput().appendField(ut.Msg.ME_GO_MOTOR_EXTERN+ut.Msg.MIXLY_TRAFFIC_LIGHT).appendField(ut.Msg.PIN_NUMBERING).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_LEFT,"0"],[ut.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.LISTS_SET_INDEX_SET).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_Turn_off_display,"0"],[ut.Msg.MIXLY_TRAFFIC_LIGHT_RED_ON,"1"],[ut.Msg.MIXLY_TRAFFIC_LIGHT_RED_BLINK,"2"],[ut.Msg.MIXLY_TRAFFIC_LIGHT_YELLOW_ON,"3"],[ut.Msg.MIXLY_TRAFFIC_LIGHT_YELLOW_BLINK,"4"],[ut.Msg.MIXLY_TRAFFIC_LIGHT_GREEN_ON,"5"],[ut.Msg.MIXLY_TRAFFIC_LIGHT_GREEN_BLINK,"6"]]),"light"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},bu={init:function(){this.setColour($a),this.appendDummyInput().appendField(ut.Msg.ME_GO_MOTOR_EXTERN).appendField(new ut.FieldDropdown([[ut.Msg.COLOUR_RGB_WHITE,"W"],[ut.Msg.COLOUR_RGB_RED,"R"],[ut.Msg.COLOUR_RGB_YELLOW,"Y"],[ut.Msg.COLOUR_RGB_GREEN,"G"],[ut.Msg.COLOUR_RGB_BLUE,"B"]]),"color").appendField("LED").appendField(ut.Msg.PIN_NUMBERING).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_LEFT,"0"],[ut.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendValueInput("value").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.BRIGHTNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Xu={init:function(){this.setColour($a),this.appendDummyInput().appendField(ut.Msg.ME_GO_MOTOR_EXTERN).appendField(new ut.FieldDropdown([[ut.Msg.COLOUR_RGB_WHITE,"W"],[ut.Msg.COLOUR_RGB_RED,"R"],[ut.Msg.COLOUR_RGB_YELLOW,"Y"],[ut.Msg.COLOUR_RGB_GREEN,"G"],[ut.Msg.COLOUR_RGB_BLUE,"B"]]),"color").appendField("LED").appendField(ut.Msg.PIN_NUMBERING).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_LEFT,"0"],[ut.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET+ut.Msg.BRIGHTNESS),this.setOutput(!0,Number),this.setInputsInline(!0)}},yu={init:function(){this.setColour($a),this.appendDummyInput().appendField(ut.Msg.ME_GO_MOTOR_EXTERN+ut.Msg.MIXLY_SERVO_MOTOR).appendField(ut.Msg.PIN_NUMBERING).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_LEFT,"0"],[ut.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"[0]"],[ut.Msg.MIXLY_SPEED,"[1]"],[ut.Msg.MATH_SINGLE_OP_ABSOLUTE+ut.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"[2]"],[ut.Msg.MIXLY_RELATIVE+ut.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"[3]"],[ut.Msg.MIXLY_MIXBOT_SERVO_BLOCK_OR_NOT,"[4]"],[ut.Msg.MIXLY_MIXBOT_SERVO_FINISH_OR_NOT,"[5]"],[ut.Msg.MIXLY_ALL,""]]),"status"),this.setOutput(!0,Number),this.setInputsInline(!0)}},Vu={init:function(){this.setColour($a),this.appendDummyInput().appendField(ut.Msg.ME_GO_MOTOR_EXTERN+ut.Msg.MIXLY_SERVO_MOTOR).appendField(ut.Msg.PIN_NUMBERING).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_LEFT,"0"],[ut.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MIXBOT_SERVO_SET_STOP_MODE).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_KEEP,"0"],[ut.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_COAST,"1"],[ut.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_BRAKE,"2"]]),"status"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Bu={init:function(){this.setColour($a),this.appendDummyInput().appendField(ut.Msg.ME_GO_MOTOR_EXTERN+ut.Msg.MIXLY_SERVO_MOTOR).appendField(ut.Msg.PIN_NUMBERING).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_LEFT,"0"],[ut.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(ut.Msg.MIXLY_STOP),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Gu={init:function(){this.setColour($a),this.appendDummyInput().appendField(ut.Msg.ME_GO_MOTOR_EXTERN+ut.Msg.MIXLY_SERVO_MOTOR).appendField(ut.Msg.MATH_SINGLE_OP_ABSOLUTE+ut.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+ut.Msg.MSG.run).appendField(ut.Msg.PIN_NUMBERING).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_LEFT,"0"],[ut.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MODE).setAlign(ut.inputs.Align.RIGHT).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_SPEED+ut.Msg.MIXLY_MODE,"0"],[ut.Msg.MIXLY_MICROBIT_JS_BLE_POWER+ut.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(ut.inputs.Align.RIGHT).appendField("%"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MIXBOT_SERVO_TURN_DIRECTION).setAlign(ut.inputs.Align.RIGHT).appendField(new ut.FieldDropdown([[ut.Msg.CLOCKWISE,"0"],[ut.Msg.MIXLY_MIXBOT_SERVO_NEAREST_PATH,"1"],[ut.Msg.ANTI_CLOCKWISE,"2"]]),"direction"),this.appendValueInput("angle").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_DISPLAY_MATRIX_ROTATE+ut.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MIXBOT_SERVO_ABSOLUTE_ANGLE_TOOLTIP)}},Uu={init:function(){this.setColour($a),this.appendDummyInput().appendField(ut.Msg.ME_GO_MOTOR_EXTERN+ut.Msg.MIXLY_SERVO_MOTOR).appendField(ut.Msg.MIXLY_RELATIVE+ut.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+ut.Msg.MSG.run).appendField(ut.Msg.PIN_NUMBERING).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_LEFT,"0"],[ut.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MIXBOT_SERVO_RELATIVE_ORIGIN_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},wu={init:function(){this.setColour($a),this.appendDummyInput().appendField(ut.Msg.ME_GO_MOTOR_EXTERN+ut.Msg.MIXLY_SERVO_MOTOR).appendField(ut.Msg.MIXLY_RELATIVE+ut.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+ut.Msg.MSG.run).appendField("("+ut.Msg.MIXLY_MIXBOT_SERVO_LIKE_ENCODING_MOTOR+")").appendField(ut.Msg.PIN_NUMBERING).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_LEFT,"0"],[ut.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MODE).setAlign(ut.inputs.Align.RIGHT).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_SPEED+ut.Msg.MIXLY_MODE,"0"],[ut.Msg.MIXLY_MICROBIT_JS_BLE_POWER+ut.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(ut.inputs.Align.RIGHT).appendField("%"),this.appendValueInput("angle").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_DISPLAY_MATRIX_ROTATE+ut.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MIXBOT_SERVO_RELATIVE_ANGLE_TOOLTIP)}},ku={init:function(){this.setColour($a),this.appendDummyInput().appendField(ut.Msg.ME_GO_MOTOR_EXTERN+ut.Msg.MIXLY_SERVO_MOTOR).appendField(ut.Msg.MIXLY_RELATIVE+ut.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+ut.Msg.MSG.run).appendField("("+ut.Msg.MIXLY_MIXBOT_SERVO_LIKE_ORDINARY_MOTOR+")").appendField(ut.Msg.PIN_NUMBERING).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_LEFT,"0"],[ut.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MODE).setAlign(ut.inputs.Align.RIGHT).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_SPEED+ut.Msg.MIXLY_MODE,"0"],[ut.Msg.MIXLY_MICROBIT_JS_BLE_POWER+ut.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(ut.inputs.Align.RIGHT).appendField("%"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MIXBOT_SERVO_TURN_DIRECTION).setAlign(ut.inputs.Align.RIGHT).appendField(new ut.FieldDropdown([[ut.Msg.CLOCKWISE,"0"],[ut.Msg.ANTI_CLOCKWISE,"2"]]),"direction"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Hu={init:function(){this.setColour($a),this.appendDummyInput().appendField(ut.Msg.MIXBOT).appendField(ut.Msg.ME_GO_MOTOR_EXTERN).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MOTOR,"ext_motor"],[ut.Msg.MIXLY_TRAFFIC_LIGHT,"ext_traffic"],[ut.Msg.COLOUR_RGB_WHITE+"LED","W_LED"],[ut.Msg.COLOUR_RGB_RED+"LED","R_LED"],[ut.Msg.COLOUR_RGB_YELLOW+"LED","Y_LED"],[ut.Msg.COLOUR_RGB_GREEN+"LED","G_LED"],[ut.Msg.COLOUR_RGB_BLUE+"LED","B_LED"],[ut.Msg.MIXLY_SERVO_MOTOR,"ext_servo"]]),"name"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MIXBOT_EXTERN_GET_ADDR),this.setOutput(!0),this.setInputsInline(!0)}},Wu={init:function(){this.setColour($a),this.appendDummyInput().appendField(ut.Msg.MIXBOT).appendField(ut.Msg.ME_GO_MOTOR_EXTERN).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MOTOR,"ext_motor"],[ut.Msg.MIXLY_TRAFFIC_LIGHT,"ext_traffic"],[ut.Msg.COLOUR_RGB_WHITE+"LED","W_LED"],[ut.Msg.COLOUR_RGB_RED+"LED","R_LED"],[ut.Msg.COLOUR_RGB_YELLOW+"LED","Y_LED"],[ut.Msg.COLOUR_RGB_GREEN+"LED","G_LED"],[ut.Msg.COLOUR_RGB_BLUE+"LED","B_LED"],[ut.Msg.MIXLY_SERVO_MOTOR,"ext_servo"]]),"name"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MIXBOT_EXTERN_SET_ADDR),this.appendValueInput("old").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE),this.appendValueInput("new").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_UPDATE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Ku="#6C9858",Ju={init:function(){this.setColour(Ku),this.appendDummyInput("").appendField(new ut.FieldDropdown([["L1","1"],["L2","2"]]),"op"),this.setOutput(!0)}},Qu={init:function(){this.setColour(Ku),this.appendDummyInput("").appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_ESP32_ON,"1"],[ut.Msg.MIXLY_ESP32_OFF,"0"],[ut.Msg.MIXLY_ESP32_TOGGLE,"-1"]]),"flag"),this.setOutput(!0),this.setTooltip(ut.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW)}},zu={init:function(){this.setColour(Ku),this.appendDummyInput().appendField(ut.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(ut.Msg.MIXLY_BUILDIN_LED),this.appendValueInput("bright").appendField(ut.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_LED_SETONOFF)}},qu={init:function(){this.setColour(Ku),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("led").appendField(ut.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput().appendField(ut.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_LED_GETONOFF)}},ju={init:function(){this.setColour(Ku),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("led").appendField(ut.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput().appendField(ut.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_LED_GETONOFF)}},Zu={init:function(){this.setColour(Ku),this.appendDummyInput().appendField(ut.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(ut.Msg.MIXLY_BUILDIN_LED),this.appendValueInput("bright").appendField(ut.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_SETTING+ut.Msg.MIXLY_BUILDIN_LED+ut.Msg.MIXLY_BRIGHTNESS+"(0-100%)")}},$u={init:function(){this.setColour(Ku),this.appendDummyInput().appendField(ut.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(ut.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput("").appendField(ut.Msg.MIXLY_LCD_SETCOLOR).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_LIGHT_OFF,"0"],[ut.Msg.MIXLY_LIGHT_RED,"1"],[ut.Msg.MIXLY_LIGHT_GREEN,"2"],[ut.Msg.MIXLY_LIGHT_BLUE,"3"],[ut.Msg.MIXLY_LIGHT_YELLOW,"4"],[ut.Msg.MIXLY_LIGHT_CYAN,"5"],[ut.Msg.MIXLY_LIGHT_PURPLE,"6"],[ut.Msg.MIXLY_LIGHT_WHITE,"7"]]),"colorvalue"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip()}},tr={init:function(){this.setColour(Ku),this.appendDummyInput().appendField(ut.Msg.MIXLY_SETTING).appendField(ut.Msg.MIXLY_BUILDIN_LED).appendField(new ut.FieldDropdown([[ut.Msg.COLOUR_RGB_RED,"r"],[ut.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendValueInput("bright").appendField(ut.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_LED_SETONOFF)}},er={init:function(){this.setColour(Ku),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(ut.Msg.MIXLY_BUILDIN_LED).appendField(new ut.FieldDropdown([[ut.Msg.COLOUR_RGB_RED,"r"],[ut.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendDummyInput().appendField(ut.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_LED_GETONOFF)}},ir={init:function(){this.setColour(Ku),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(ut.Msg.MIXLY_BUILDIN_LED).appendField(new ut.FieldDropdown([[ut.Msg.COLOUR_RGB_RED,"r"],[ut.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendDummyInput().appendField(ut.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_LED_GETONOFF)}},nr={init:function(){this.setColour(Ku),this.appendDummyInput().appendField(ut.Msg.MIXLY_SETTING).appendField(ut.Msg.MIXLY_BUILDIN_LED).appendField(new ut.FieldDropdown([[ut.Msg.COLOUR_RGB_RED,"r"],[ut.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendValueInput("bright").appendField(ut.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_SETTING+ut.Msg.MIXLY_BUILDIN_LED+ut.Msg.MIXLY_BRIGHTNESS+"(0-10)")}},sr={init:function(){this.setColour(Ku),this.appendDummyInput("").appendField(new ut.FieldDropdown([["L1","20"],["L2","21"]]),"op"),this.setOutput(!0)}},or={init:function(){this.setColour(Ku),this.appendDummyInput("").appendField(ut.Msg.MIXLY_RGB),this.appendValueInput("_LED_").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);switch(rt.Boards.getSelectedBoardKey()){case"micropython:esp32c3:mixgo_cc":case"micropython:esp32s2:mixgo_ce":this.setTooltip(ut.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOCC);break;case"micropython:esp32c3:mixgo_me":default:this.setTooltip(ut.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOME);break;case"micropython:esp32:mPython":this.setTooltip(ut.Msg.MIXLY_RGB_NUM_R_G_B_MPYTHON)}}},_r={init:function(){this.setColour(Ku),this.appendDummyInput("").appendField(ut.Msg.MIXLY_RGB),this.appendValueInput("RVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(ut.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},pr={init:function(){this.setColour(Ku),this.appendDummyInput("").appendField(ut.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(ut.Msg.MIXLY_RAINBOW),this.appendValueInput("time").setCheck(Number).appendField(ut.Msg.MIXLY_DURATION).appendField(ut.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},ar={init:function(){this.setColour(Ku),this.appendDummyInput("").appendField(ut.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(ut.Msg.MIXLY_CHASE),this.appendValueInput("RVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_B),this.appendValueInput("time").setCheck(Number).appendField(ut.Msg.PYTHON_RANGE_STEP).appendField(ut.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},ur={init:function(){this.setColour(Ku),this.appendDummyInput("").appendField(ut.Msg.MIXLY_RGB),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_RGB_WRITE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(ut.Msg.MIXLY_ESP32_MUSIC_WRI)}},rr={init:function(){this.setColour(Ku),this.appendDummyInput("").appendField(ut.Msg.MIXLY_RGB),this.appendValueInput("_LED_").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);switch(rt.Boards.getSelectedBoardKey()){case"micropython:esp32c3:mixgocc":this.setTooltip(ut.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOCC);break;case"micropython:esp32c3:mixgome":default:this.setTooltip(ut.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOME);break;case"micropython:esp32:mPython":this.setTooltip(ut.Msg.MIXLY_RGB_NUM_R_G_B_MPYTHON)}}},lr={init:function(){this.setColour(Ku),this.appendDummyInput("").appendField(ut.Msg.MIXLY_RGB),this.appendValueInput("RVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(ut.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},dr={init:function(){this.setColour(Ku),this.appendDummyInput("").appendField(ut.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(ut.Msg.MIXLY_CHASE),this.appendValueInput("RVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_B),this.appendValueInput("time").setCheck(Number).appendField(ut.Msg.PYTHON_RANGE_STEP).appendField(ut.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},Ir={init:function(){this.setColour(Ku),this.appendValueInput("TICKS").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_JS_SET_TEMPO).appendField(ut.Msg.MICROBIT_ACTUATOR_ticks),this.appendValueInput("BPM").setCheck(Number).appendField(ut.Msg.MIXLY_SPEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_MUSIC_SET_TEMPO)}},Tr={init:function(){this.setColour(Ku),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_Get_current_tempo),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_MUSIC_GET_TEMPO)}},hr={init:function(){this.setColour(Ku),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_Reset_music),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_MUSIC_RESET)}},Mr={init:function(){this.setColour(Ku),this.appendDummyInput().appendField(ut.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(ut.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},mr={init:function(){this.setColour(Ku),this.appendDummyInput().appendField(ut.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(ut.Msg.MIXLY_FREQUENCY),this.appendValueInput("time").setCheck(Number).appendField(ut.Msg.MIXLY_DURATION),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE2)}},Or={init:function(){this.setColour(Ku),this.appendDummyInput().appendField(ut.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Er={init:function(){this.setColour(Ku),this.appendValueInput("LIST").appendField(ut.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS)}},Rr={init:function(){this.setColour(Ku),this.appendDummyInput().appendField(ut.Msg.MOTOR_DC).appendField(new ut.FieldDropdown([["1","1"],["2","2"],["3","3"]]),"wheel"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_Direction).appendField(new ut.FieldDropdown([[ut.Msg.CLOCKWISE,"CW"],[ut.Msg.ANTI_CLOCKWISE,"CCW"],[ut.Msg.MOTOR_P,"P"],[ut.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},cr={init:function(){this.setColour(Ku),this.appendDummyInput().appendField("MixGo Car").appendField(new ut.FieldDropdown([[ut.Msg.blockpy_forward,"F"],[ut.Msg.blockpy_backward,"B"],[ut.Msg.blockpy_left,"L"],[ut.Msg.blockpy_right,"R"]]),"VAR"),this.appendValueInput("speed").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},gr={init:function(){this.setColour(Ku),this.appendDummyInput("").appendField("MixGo Car").appendField(new ut.FieldDropdown([[ut.Msg.MOTOR_P,"P"],[ut.Msg.MOTOR_N,"N"]]),"VAR"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},Cr={init:function(){this.setColour(Ku),this.appendDummyInput().appendField(ut.Msg.MOTOR_DC).appendField(new ut.FieldDropdown([[ut.Msg.MIXLYCAR_WHEEL_LEFT,"L"],[ut.Msg.MIXLYCAR_WHEEL_RIGHT,"R"]]),"wheel"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_Direction).appendField(new ut.FieldDropdown([[ut.Msg.CLOCKWISE,"CW"],[ut.Msg.ANTI_CLOCKWISE,"CCW"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Sr={init:function(){this.setColour(Ku),this.appendDummyInput().appendField(ut.Msg.MOTOR_DC).appendField(new ut.FieldDropdown([[ut.Msg.MIXLYCAR_WHEEL_LEFT,"L"],[ut.Msg.MIXLYCAR_WHEEL_RIGHT,"R"]]),"wheel"),this.appendDummyInput().appendField(ut.Msg.MIXLY_STOP).appendField(new ut.FieldDropdown([[ut.Msg.MOTOR_P,"P"],[ut.Msg.MOTOR_N,"N"]]),"direction"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Ar={init:function(){this.setColour(Ku),this.appendDummyInput().appendField(ut.Msg.MIXLY_MIXBOT_MOTOR_STATUS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MIXBOT_MOTOR_STATUS_TOOLTIP)}},Lr={init:function(){this.setColour(Ku),this.appendDummyInput().appendField(ut.Msg.MIXBOT).appendField(new ut.FieldDropdown([[ut.Msg.blockpy_forward,"F"],[ut.Msg.blockpy_backward,"B"],[ut.Msg.blockpy_left,"L"],[ut.Msg.blockpy_right,"R"]]),"VAR"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"PWR"],[ut.Msg.MIXLY_SPEED,"SPEED"],[ut.Msg.MIXLY_MIXBOT_MOTOR_TURNS,"TURNS"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MIXBOT_MOVE_TOOLTIP)}},Nr={init:function(){this.setColour(Ku),this.appendDummyInput().appendField(ut.Msg.MIXBOT).appendField(new ut.FieldDropdown([[ut.Msg.MOTOR_P,"P"],[ut.Msg.MOTOR_N,"N"]]),"VAR"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Dr={init:function(){this.setColour(Ku),this.appendDummyInput().appendField(ut.Msg.MIXBOT).appendField(ut.Msg.MIXLY_MOTOR).appendField(new ut.FieldDropdown([[ut.Msg.TEXT_TRIM_LEFT,"1"],[ut.Msg.TEXT_TRIM_RIGHT,"2"],[ut.Msg.TEXT_TRIM_BOTH,"0"]]),"wheel"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"PWR"],[ut.Msg.MIXLY_SPEED,"SPEED"],[ut.Msg.MIXLY_MIXBOT_MOTOR_TURNS,"TURNS"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MIXBOT_MOVE_TOOLTIP)}},fr={init:function(){this.setColour(Ku),this.appendDummyInput().appendField(ut.Msg.MIXLY_MIXBOT_BUZZER),this.appendDummyInput().appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_ON,"0"],[ut.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_OFF,"1"]]),"on_off"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Fr={init:function(){this.setColour(Ku),this.appendDummyInput().appendField(ut.Msg.BITBOT).appendField(new ut.FieldDropdown([[ut.Msg.blockpy_forward,"F"],[ut.Msg.blockpy_backward,"B"],[ut.Msg.blockpy_left,"L"],[ut.Msg.blockpy_right,"R"]]),"VAR"),this.appendValueInput("speed").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Pr={init:function(){this.setColour(Ku),this.appendDummyInput().appendField(ut.Msg.BITBOT).appendField(new ut.FieldDropdown([[ut.Msg.MOTOR_P,"P"],[ut.Msg.MOTOR_N,"N"]]),"VAR"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},vr={init:function(){this.setColour(Ku),this.appendDummyInput().appendField(ut.Msg.BITBOT).appendField(ut.Msg.MIXLY_MOTOR).appendField(new ut.FieldDropdown([[ut.Msg.TEXT_TRIM_LEFT,"0"],[ut.Msg.TEXT_TRIM_RIGHT,"1"]]),"wheel"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_Direction).appendField(new ut.FieldDropdown([[ut.Msg.CLOCKWISE,"CW"],[ut.Msg.ANTI_CLOCKWISE,"CCW"],[ut.Msg.MOTOR_P,"P"],[ut.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Yr={init:function(){this.setColour(Ku),this.appendValueInput("bright").appendField(ut.Msg.MIXLY_MIXBOT_SOUND_SET_LOUDNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_LED_SETONOFF)}},xr={init:function(){this.setColour(Ku),this.appendDummyInput().appendField(ut.Msg.MIXLY_MIXBOT_SOUND_LOUDNESS+"(%)"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_LED_GETONOFF)}},br={init:function(){this.setColour(Ku),this.appendValueInput("bright").appendField(ut.Msg.MIXLY_SETTING+ut.Msg.MIXLY_MIXBOT_BUZZER+ut.Msg.MIXLY_MP3_VOL),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_LED_SETONOFF)}},Xr={init:function(){this.setColour(Ku),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET+ut.Msg.MIXLY_MIXBOT_BUZZER+ut.Msg.MIXLY_MP3_VOL+"(%)"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_LED_GETONOFF)}},yr={init:function(){this.setColour(Ku),this.appendValueInput("PATH").appendField(ut.Msg.MIXLY_RECORD_AUDIO).appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.appendValueInput("TIME").setCheck(Number).appendField(ut.Msg.MIXLY_GET_PRESSES_TIME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Vr={init:function(){this.setColour(Ku),this.appendValueInput("PATH").appendField(ut.Msg.MIXLY_PLAY_AUDIO).appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Br={init:function(){this.setColour(Ku),this.appendValueInput("PATH").appendField(ut.Msg.MIXLY_PLAY_ONLINE_AUDIO).appendField("URL"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Gr={init:function(){this.setColour(Ku),this.appendDummyInput().appendField(ut.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(ut.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},Ur={init:function(){this.setColour(Ku),this.appendDummyInput().appendField(ut.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},wr={init:function(){this.setColour(Ku),this.appendDummyInput().appendField(ut.Msg.LISTS_SET_INDEX_SET+ut.Msg.ME_GO_MOTOR_EXTERN).appendField(ut.Msg.PIN_NUMBERING).appendField(new ut.FieldDropdown([["1","1"],["2","2"]]),"index"),this.appendValueInput("duty").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.blynk_IOT_IR_POWER+ut.Msg.MIXLY_PINMODEOUT),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip()}},kr={init:function(){this.setColour(Ku),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET+ut.Msg.ME_GO_MOTOR_EXTERN).appendField(ut.Msg.PIN_NUMBERING).appendField(new ut.FieldDropdown([["1","1"],["2","2"]]),"index"),this.appendDummyInput().setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.blynk_IOT_IR_POWER+ut.Msg.MIXLY_PINMODEOUT+ut.Msg.MIXLY_DUTY_RATIO),this.setOutput(!0,Number),this.setInputsInline(!0)}},Hr={init:function(){this.setColour(Ku),this.appendDummyInput().appendField(ut.Msg.LISTS_SET_INDEX_SET+ut.Msg.ME_GO_MOTOR_EXTERN).appendField(ut.Msg.MIXLY_ALL+ut.Msg.PIN_NUMBERING),this.appendValueInput("duty").setCheck(Number).setAlign(ut.ALIGN_RIGHT).appendField(ut.Msg.blynk_IOT_IR_POWER+ut.Msg.MIXLY_PINMODEOUT+ut.Msg.MIXLY_FREQUENCY),this.appendDummyInput().appendField("Hz"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MIXBOT_MOTOR_EXTERN_TOOLTIP)}},Wr="#90A244",Kr={init:function(){this.setColour(Wr),this.appendDummyInput("").appendField(ut.Msg.CONTROLS_FOR_INPUT_WITH+"uart").appendField(new ut.FieldDropdown([["uart1","uart1"],["uart2","uart2"]]),"key"),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_SETUP+ut.Msg.LISTS_SET_INDEX_INPUT_TO+"MixGo AI"+ut.Msg.MSG.catSensor),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Jr={init:function(){this.setColour(Wr),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_QR_CODE+ut.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_ALL_CODE_ANALYSIS),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET).appendField(new ut.FieldDropdown([[ut.Msg.OLED_STRING,"info1"],[ut.Msg.MIXLY_POSITION_XY+"-xywh","rect"],["x"+ut.Msg.MIXLY_POSITION_XY,"rect[0]"],["y"+ut.Msg.MIXLY_POSITION_XY,"rect[1]"],["w"+ut.Msg.MIXLY_POSITION_XY,"rect[2]"],["h"+ut.Msg.MIXLY_POSITION_XY,"rect[3]"],[ut.Msg.MICROPYTHON_HUSKYLENS_X_CENTERED+ut.Msg.MIXLY_POSITION_XY,"xc"],[ut.Msg.MICROPYTHON_HUSKYLENS_Y_CENTERED+ut.Msg.MIXLY_POSITION_XY,"yc"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_AI_SENSOR_QR_CODE_TOOLTIP)}},Qr={init:function(){this.setColour(Wr),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_QR_CODE+ut.Msg.MIXPY_OBJECT,"qrcode"],[ut.Msg.MIXLY_BAR_CODE+ut.Msg.MIXPY_OBJECT,"barcode"],[ut.Msg.MIXLY_TAG+ut.Msg.MIXPY_OBJECT,"apriltag"]]),"TYPE"),this.appendDummyInput().appendField(ut.Msg.MIXLY_ANALYSIS_RESULT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip()}},zr={init:function(){this.setColour(Wr),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ut.Msg.MIXLY_QR_CODE_RECOGNTITION),this.appendDummyInput().setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.PROCEDURES_DEFRETURN_RETURN+"[qrcode]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_AI_SENSOR_QR_CODE_RECOGNTITION_TOOLTIP)}},qr={init:function(){this.setColour(Wr),this.appendValueInput("SUB"),this.appendValueInput("RX").appendField(ut.Msg.MIXLY_SETTING+ut.Msg.MIXLY_ETHERNET_CLINET_PORT).appendField("RX#").setCheck(Number).setAlign(ut.inputs.Align.RIGHT),this.appendValueInput("TX").appendField("TX#").setCheck(Number).setAlign(ut.inputs.Align.RIGHT),this.appendDummyInput().appendField(ut.Msg.SOFT_RESET+ut.Msg.MIXLY_ESP32_RGB_WRITE).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[ut.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"mode"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_AI_SENSOR_CONFIG_TOOLTIP)}},jr={init:function(){this.setColour(Wr),this.appendValueInput("SUB"),this.appendValueInput("led1").appendField(ut.Msg.MIXLY_SETTING).appendField("RGB1").setCheck(Number).setAlign(ut.inputs.Align.RIGHT),this.appendValueInput("led2").appendField("RGB2").setCheck(Number).setAlign(ut.inputs.Align.RIGHT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_AI_SENSOR_CONFIG_TOOLTIP)}},Zr={init:function(){this.setColour(Wr),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_BAR_CODE+ut.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_ALL_CODE_ANALYSIS),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET).appendField(new ut.FieldDropdown([[ut.Msg.OLED_STRING,"info1"],[ut.Msg.MIXLY_POSITION_XY+"-xywh","rect"],["x"+ut.Msg.MIXLY_POSITION_XY,"rect[0]"],["y"+ut.Msg.MIXLY_POSITION_XY,"rect[1]"],["w"+ut.Msg.MIXLY_POSITION_XY,"rect[2]"],["h"+ut.Msg.MIXLY_POSITION_XY,"rect[3]"],[ut.Msg.MICROPYTHON_HUSKYLENS_X_CENTERED+ut.Msg.MIXLY_POSITION_XY,"xc"],[ut.Msg.MICROPYTHON_HUSKYLENS_Y_CENTERED+ut.Msg.MIXLY_POSITION_XY,"yc"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_AI_SENSOR_BAR_CODE_TOOLTIP)}},$r={init:function(){this.setColour(Wr),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ut.Msg.MIXLY_BAR_CODE_RECOGNTITION),this.appendDummyInput().setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.PROCEDURES_DEFRETURN_RETURN+"[barcode]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_AI_SENSOR_BAR_CODE_RECOGNTITION_TOOLTIP)}},tl={init:function(){this.setColour(Wr),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_TAG+ut.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_ALL_CODE_ANALYSIS),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET).appendField(new ut.FieldDropdown([[ut.Msg.OLED_STRING,"info1"],[ut.Msg.blockpy_turtle_rotate+ut.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"info2"],[ut.Msg.MIXLY_POSITION_XY+"-xywh","rect"],["x"+ut.Msg.MIXLY_POSITION_XY,"rect[0]"],["y"+ut.Msg.MIXLY_POSITION_XY,"rect[1]"],["w"+ut.Msg.MIXLY_POSITION_XY,"rect[2]"],["h"+ut.Msg.MIXLY_POSITION_XY,"rect[3]"],[ut.Msg.MICROPYTHON_HUSKYLENS_X_CENTERED+ut.Msg.MIXLY_POSITION_XY,"xc"],[ut.Msg.MICROPYTHON_HUSKYLENS_Y_CENTERED+ut.Msg.MIXLY_POSITION_XY,"yc"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_AI_SENSOR_TAG_TOOLTIP)}},el={init:function(){this.setColour(Wr),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ut.Msg.MIXLY_TAG_RECOGNTITION),this.appendDummyInput().setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.PROCEDURES_DEFRETURN_RETURN+"[tag]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_AI_SENSOR_TAG_RECOGNTITION_TOOLTIP)}},il={init:function(){this.setColour(Wr),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_LINE+ut.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_ALL_CODE_ANALYSIS),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_LINE_ANGLE,"info1"],[ut.Msg.MIXLY_POSITION_XY+"-x1x2y1y2","rect"],["x1"+ut.Msg.MIXLY_POSITION_XY,"rect[0]"],["x2"+ut.Msg.MIXLY_POSITION_XY,"rect[1]"],["y1"+ut.Msg.MIXLY_POSITION_XY,"rect[2]"],["y2"+ut.Msg.MIXLY_POSITION_XY,"rect[3]"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_AI_SENSOR_LINE_TOOLTIP)}},nl={init:function(){this.setColour(Wr),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ut.Msg.MIXLY_LINE_RECOGNTITION),this.appendValueInput("VAR1").appendField(ut.Msg.MIXLY_ESP32_THRESHOLD).setCheck(Number).setAlign(ut.inputs.Align.RIGHT),this.appendValueInput("VAR2").appendField(ut.Msg.MIXLY_LINE_RECOGNTITION_ANGLE).setCheck(Number).setAlign(ut.inputs.Align.RIGHT),this.appendValueInput("VAR3").appendField(ut.Msg.MIXLY_LINE_RECOGNTITION_SLOPE).setCheck(Number).setAlign(ut.inputs.Align.RIGHT),this.appendDummyInput().setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.PROCEDURES_DEFRETURN_RETURN+"[line]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_AI_SENSOR_LINE_RECOGNTITION_TOOLTIP)}},sl={init:function(){this.setColour(Wr),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_CIRCLE+ut.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_ALL_CODE_ANALYSIS),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_CIRCLE_AREA,"info1"],[ut.Msg.MIXLY_POSITION_XY+"-xywh","rect"],["x"+ut.Msg.MIXLY_POSITION_XY,"rect[0]"],["y"+ut.Msg.MIXLY_POSITION_XY,"rect[1]"],["w"+ut.Msg.MIXLY_POSITION_XY,"rect[2]"],["h"+ut.Msg.MIXLY_POSITION_XY,"rect[3]"],[ut.Msg.MICROPYTHON_HUSKYLENS_X_CENTERED+ut.Msg.MIXLY_POSITION_XY,"xc"],[ut.Msg.MICROPYTHON_HUSKYLENS_Y_CENTERED+ut.Msg.MIXLY_POSITION_XY,"yc"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_AI_SENSOR_CIRCLE_TOOLTIP)}},ol={init:function(){this.setColour(Wr),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ut.Msg.MIXLY_CIRCLE_RECOGNTITION),this.appendValueInput("VAR1").appendField(ut.Msg.MIXLY_ESP32_THRESHOLD).setCheck(Number).setAlign(ut.inputs.Align.RIGHT),this.appendValueInput("VAR2").appendField(ut.Msg.MIXLY_CIRCLE_RECOGNTITION_MIN).setCheck(Number).setAlign(ut.inputs.Align.RIGHT),this.appendValueInput("VAR3").appendField(ut.Msg.MIXLY_CIRCLE_RECOGNTITION_MAX).setCheck(Number).setAlign(ut.inputs.Align.RIGHT),this.appendDummyInput().setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.PROCEDURES_DEFRETURN_RETURN+"[circle]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_AI_SENSOR_CIRCLE_RECOGNTITION_TOOLTIP)}},_l={init:function(){this.setColour(Wr),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_RECT+ut.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_ALL_CODE_ANALYSIS),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_CIRCLE_AREA,"info1"],[ut.Msg.MIXLY_POSITION_XY+"-xywh","rect"],["x"+ut.Msg.MIXLY_POSITION_XY,"rect[0]"],["y"+ut.Msg.MIXLY_POSITION_XY,"rect[1]"],["w"+ut.Msg.MIXLY_POSITION_XY,"rect[2]"],["h"+ut.Msg.MIXLY_POSITION_XY,"rect[3]"],[ut.Msg.MICROPYTHON_HUSKYLENS_X_CENTERED+ut.Msg.MIXLY_POSITION_XY,"xc"],[ut.Msg.MICROPYTHON_HUSKYLENS_Y_CENTERED+ut.Msg.MIXLY_POSITION_XY,"yc"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_AI_SENSOR_RECT_TOOLTIP)}},pl={init:function(){this.setColour(Wr),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ut.Msg.MIXLY_RECT_RECOGNTITION),this.appendValueInput("VAR1").appendField(ut.Msg.MIXLY_ESP32_THRESHOLD).setCheck(Number).setAlign(ut.inputs.Align.RIGHT),this.appendDummyInput().setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.PROCEDURES_DEFRETURN_RETURN+"[rect]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_AI_SENSOR_COLOR_RECOGNTITION_TOOLTIP)}},al={init:function(){this.setColour(Wr),this.appendValueInput("VAR").appendField(ut.Msg.HTML_COLOUR+ut.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_COLOR_ANALYSIS),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET).appendField(new ut.FieldDropdown([["RGB"+ut.Msg.HTML_COLOUR,"[0]"],["LAB"+ut.Msg.MIXLY_COLOR_LAB,"[1]"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_AI_SENSOR_COLOR_TOOLTIP)}},ul={init:function(){this.setColour(Wr),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ut.Msg.MIXLY_COLOR_RECOGNTITION),this.appendDummyInput().setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.PROCEDURES_DEFRETURN_RETURN+"color"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_AI_SENSOR_COLOR_RECOGNTITION_TOOLTIP)}},rl={init:function(){this.setColour(Wr),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_COLOR_CHASE+ut.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_COLOR_CHASE_ANALYSIS),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_CIRCLE_AREA,"info1"],[ut.Msg.MIXLY_POSITION_XY+"-xywh","rect"],["x"+ut.Msg.MIXLY_POSITION_XY,"rect[0]"],["y"+ut.Msg.MIXLY_POSITION_XY,"rect[1]"],["w"+ut.Msg.MIXLY_POSITION_XY,"rect[2]"],["h"+ut.Msg.MIXLY_POSITION_XY,"rect[3]"],[ut.Msg.MICROPYTHON_HUSKYLENS_X_CENTERED+ut.Msg.MIXLY_POSITION_XY,"xc"],[ut.Msg.MICROPYTHON_HUSKYLENS_Y_CENTERED+ut.Msg.MIXLY_POSITION_XY,"yc"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_AI_SENSOR_CIRCLE_TOOLTIP)}},ll={init:function(){this.setColour(Wr),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ut.Msg.MIXLY_COLOR_CHASE),this.appendValueInput("VAR1").appendField("LAB"+ut.Msg.MIXLY_COLOR_LAB).setAlign(ut.inputs.Align.RIGHT),this.appendValueInput("VAR2").appendField(ut.Msg.MIXLY_ESP32_THRESHOLD).setCheck(Number).setAlign(ut.inputs.Align.RIGHT),this.appendValueInput("VAR3").appendField(ut.Msg.MIXLY_COLOR_CHASE_MERGE).setCheck(Number).setAlign(ut.inputs.Align.RIGHT),this.appendDummyInput().setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.PROCEDURES_DEFRETURN_RETURN+"[colors]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_AI_SENSOR_CIRCLE_RECOGNTITION_TOOLTIP)}},dl={init:function(){this.setColour(Wr),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ut.Msg.MIXLY_LOCAL_TRAIN),this.appendValueInput("VAR1").appendField(ut.Msg.MIXLY_OBJECT_LIST).setAlign(ut.inputs.Align.RIGHT),this.appendValueInput("VAR2").appendField(ut.Msg.MICROPYTHON_HUSKYLENS_SAVE_AS+ut.Msg.MIXLY_MODEL_NAME).setAlign(ut.inputs.Align.RIGHT),this.appendValueInput("VAR3").appendField(ut.Msg.MIXLY_TRAIN_TIME).setAlign(ut.inputs.Align.RIGHT),this.appendValueInput("VAR4").appendField(ut.Msg.MIXLY_AipNlp_Topic_Title).setAlign(ut.inputs.Align.RIGHT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_AI_SENSOR_LOCAL_TRAIN_TOOLTIP)}},Il={init:function(){this.setColour(Wr),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ut.Msg.MIXLY_LOCAL_CLASS),this.appendValueInput("VAR1").appendField(ut.Msg.MIXLY_OBJECT_LIST).setAlign(ut.inputs.Align.RIGHT),this.appendValueInput("VAR2").appendField(ut.Msg.MIXLY_MODEL_NAME).setAlign(ut.inputs.Align.RIGHT),this.appendValueInput("VAR4").appendField(ut.Msg.MIXLY_AipNlp_Topic_Title).setAlign(ut.inputs.Align.RIGHT),this.appendDummyInput().setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.PROCEDURES_DEFRETURN_RETURN+"[objects]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_AI_SENSOR_MODEL_NAME_TOOLTIP)}},Tl={init:function(){this.setColour(Wr),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_LOCAL_CLASS+ut.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_COLOR_CHASE_ANALYSIS),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET).appendField(new ut.FieldDropdown([["ID","info1"],[ut.Msg.MIXLY_CONFIDENCE_DEGREE,"info2"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_AI_SENSOR_LOCAL_CLASS_TOOLTIP)}},hl={init:function(){this.setColour(Wr),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MUSIC_RECORD),this.appendValueInput("VAR1").appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH).setAlign(ut.inputs.Align.RIGHT),this.appendValueInput("VAR2").appendField(ut.Msg.MIXPY_AI_AUDIO_TIME).setAlign(ut.inputs.Align.RIGHT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_AI_SENSOR_MUSIC_RECORD_TOOLTIP)}},Ml={init:function(){this.setColour(Wr),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MUSIC_PLAY),this.appendValueInput("VAR1").appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH).setAlign(ut.inputs.Align.RIGHT),this.appendValueInput("VAR2").appendField(ut.Msg.MIXLY_MP3_VOL).setAlign(ut.inputs.Align.RIGHT),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},ml={init:function(){this.setColour(Wr),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ut.Msg.MIXLY_YOLO_RECOGNIZE),this.appendValueInput("VAR1").appendField(ut.Msg.MIXLY_ANCHOR).setAlign(ut.inputs.Align.RIGHT),this.appendValueInput("VAR2").appendField(ut.Msg.MIXLY_MODEL_PATH).setAlign(ut.inputs.Align.RIGHT),this.appendValueInput("VAR4").appendField(ut.Msg.MIXLY_AipNlp_Topic_Title).setAlign(ut.inputs.Align.RIGHT),this.appendDummyInput().setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.PROCEDURES_DEFRETURN_RETURN+"[objects]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_AI_SENSOR_YOLO_RECOGNIZE_TOOLTIP)}},Ol={init:function(){this.setColour(Wr),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_YOLO_RECOGNIZE+ut.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_COLOR_CHASE_ANALYSIS),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET).appendField(new ut.FieldDropdown([["ID","info1"],[ut.Msg.MIXLY_CONFIDENCE_DEGREE,"info2"],[ut.Msg.MIXLY_POSITION_XY+"-xywh","rect"],["x"+ut.Msg.MIXLY_POSITION_XY,"rect[0]"],["y"+ut.Msg.MIXLY_POSITION_XY,"rect[1]"],["w"+ut.Msg.MIXLY_POSITION_XY,"rect[2]"],["h"+ut.Msg.MIXLY_POSITION_XY,"rect[3]"],[ut.Msg.MICROPYTHON_HUSKYLENS_X_CENTERED+ut.Msg.MIXLY_POSITION_XY,"xc"],[ut.Msg.MICROPYTHON_HUSKYLENS_Y_CENTERED+ut.Msg.MIXLY_POSITION_XY,"yc"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_AI_SENSOR_YOLO_RECOGNIZE_RESULT_TOOLTIP)}},El={init:function(){this.setColour(Wr),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ut.Msg.MIXLY_AipSpeech_asr),this.appendValueInput("VAR1").appendField(ut.Msg.MIXLY_AI_SENSOR_ASR_RECOGNISE_CORPUS).setAlign(ut.inputs.Align.RIGHT),this.appendValueInput("VAR2").appendField(ut.Msg.MIXLY_ESP32_THRESHOLD).setAlign(ut.inputs.Align.RIGHT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_AI_SENSOR_ASR_RECOGNISE_TOOLTIP)}},Rl={init:function(){this.setColour(Wr),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_LICENSEPLATE+ut.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_ALL_CODE_ANALYSIS),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET).appendField(new ut.FieldDropdown([["ID","info1"],[ut.Msg.MIXLY_POSITION_XY+"-xywh","rect"],["x"+ut.Msg.MIXLY_POSITION_XY,"rect[0]"],["y"+ut.Msg.MIXLY_POSITION_XY,"rect[1]"],["w"+ut.Msg.MIXLY_POSITION_XY,"rect[2]"],["h"+ut.Msg.MIXLY_POSITION_XY,"rect[3]"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_AI_SENSOR_LICENSEPLATE_TOOLTIP)}},cl={init:function(){this.setColour(Wr),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ut.Msg.MIXLY_AipOcr_licensePlate),this.appendDummyInput().setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.PROCEDURES_DEFRETURN_RETURN+"[licensePlate]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_AI_SENSOR_LICENSEPLATE_RECOGNTITION_TOOLTIP)}},gl={init:function(){this.setColour(Wr),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_FACE+ut.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_ALL_CODE_ANALYSIS),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET).appendField(new ut.FieldDropdown([["ID","info1"],[ut.Msg.MIXLY_CONFIDENCE_DEGREE,"info2"],[ut.Msg.MIXLY_POSITION_XY+"-xywh","rect"],["x"+ut.Msg.MIXLY_POSITION_XY,"rect[0]"],["y"+ut.Msg.MIXLY_POSITION_XY,"rect[1]"],["w"+ut.Msg.MIXLY_POSITION_XY,"rect[2]"],["h"+ut.Msg.MIXLY_POSITION_XY,"rect[3]"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_AI_SENSOR_FACE_TOOLTIP)}},Cl={init:function(){this.setColour(Wr),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ut.Msg.MIXLY_AipFace),this.appendDummyInput().setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.PROCEDURES_DEFRETURN_RETURN+"[face]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_AI_SENSOR_BAR_FACE_CLASSIFIER_TOOLTIP)}},Sl={init:function(){this.setColour(Wr),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_20OBJECTS+ut.Msg.MIXPY_OBJECT).setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_ALL_CODE_ANALYSIS),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET).appendField(new ut.FieldDropdown([["ID","info1"],[ut.Msg.MIXLY_CONFIDENCE_DEGREE,"info2"],[ut.Msg.MIXLY_POSITION_XY+"-xywh","rect"],["x"+ut.Msg.MIXLY_POSITION_XY,"rect[0]"],["y"+ut.Msg.MIXLY_POSITION_XY,"rect[1]"],["w"+ut.Msg.MIXLY_POSITION_XY,"rect[2]"],["h"+ut.Msg.MIXLY_POSITION_XY,"rect[3]"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_AI_SENSOR_20OBJECTS_TOOLTIP)}},Al={init:function(){this.setColour(Wr),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ut.Msg.MIXLY_FIND_20OBJECTS),this.appendDummyInput().setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.PROCEDURES_DEFRETURN_RETURN+"[20objects]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_AI_SENSOR_BAR_FIND_20OBJECTS_TOOLTIP)}},Ll={init:function(){this.setColour(205),this.appendDummyInput("").appendField(ut.Msg.MIXLY_SETUP).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_AipSpeech_asr,"ASR"],[ut.Msg.MIXLY_AI_UNIT,"UNIT"]]),"CTYPE"),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_Client).setAlign(ut.inputs.Align.RIGHT),this.appendValueInput("API_KEY").appendField("API_KEY").setAlign(ut.inputs.Align.RIGHT),this.appendValueInput("SECRET_KEY").appendField("SECRET_KEY").setAlign(ut.inputs.Align.RIGHT),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Nl={init:function(){this.setColour(205),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_AI_UNIT).appendField(ut.Msg.MIXLY_Client).setAlign(ut.inputs.Align.RIGHT),this.appendValueInput("ID").appendField("ID").setAlign(ut.inputs.Align.RIGHT),this.appendValueInput("STR").appendField(ut.Msg.OLED_STRING).setAlign(ut.inputs.Align.RIGHT),this.setInputsInline(!0),this.setOutput(!0)}},Dl={init:function(){this.setColour(205),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_AipSpeech_asr).appendField(ut.Msg.MIXLY_Client).setAlign(ut.inputs.Align.RIGHT),this.appendValueInput("FILE").appendField(ut.Msg.MIXPY_AI_AUDIO_TIME).setAlign(ut.inputs.Align.RIGHT),this.appendDummyInput("").appendField(ut.Msg.MIXLY_LANGUAGE).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_AI_LANGUAGE_CHINESE,"1537"],[ut.Msg.MIXLY_AI_LANGUAGE_ENGLISH,"1737"],[ut.Msg.MIXLY_AI_LANGUAGE_CANTONESE,"1637"]]),"LANGUAGE"),this.setInputsInline(!0),this.setOutput(!0)}},fl="#2FAD7A",Fl={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:fl,helpUrl:ut.Msg.MPYTHON_BLYNK_TERMINAL_WIDGET_VPIN_HELPURL,tooltip:ut.Msg.MPYTHON_BLYNK_TERMINAL_WIDGET_VPIN_TOOLTIP,message0:ut.Msg.MPYTHON_BLYNK_TERMINAL_WIDGET_VPIN_MESSAGE0,args0:[{check:Number,type:"input_value",name:"virtual_pin"}]})}},Pl={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:fl,helpUrl:ut.Msg.MPYTHON_BLYNK_SYNC_VIRTUAL_HELPURL,tooltip:ut.Msg.MPYTHON_BLYNK_SYNC_VIRTUAL_TOOLTIP,message0:ut.Msg.MPYTHON_BLYNK_SYNC_VIRTUAL_MESSAGE0,args0:[{check:Number,type:"input_value",name:"virtual_pin"}]})}},vl={init:function(){this.jsonInit({inputsInline:!0,colour:fl,helpUrl:ut.Msg.MPYTHON_BLYNK_ON_DISCONNECTED_HELPURL,tooltip:ut.Msg.MPYTHON_BLYNK_ON_DISCONNECTED_TOOLTIP,message0:ut.Msg.MPYTHON_BLYNK_ON_DISCONNECTED_MESSAGE0}),this.appendStatementInput("DO").appendField(ut.CONTROLS_REPEAT_INPUT_DO)}},Yl={init:function(){this.jsonInit({inputsInline:!0,colour:fl,helpUrl:ut.Msg.MPYTHON_BLYNK_ON_CONNECTED_HELPURL,tooltip:ut.Msg.MPYTHON_BLYNK_ON_CONNECTED_TOOLTIP,message0:ut.Msg.MPYTHON_BLYNK_ON_CONNECTED_MESSAGE0}),this.appendStatementInput("DO").appendField(ut.CONTROLS_REPEAT_INPUT_DO)}},xl={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:fl,helpUrl:ut.Msg.MPYTHON_BLYNKTIMER_RUN_HELPURL,tooltip:ut.Msg.MPYTHON_BLYNKTIMER_RUN_TOOLTIP,message0:ut.Msg.MPYTHON_BLYNKTIMER_RUN_MESSAGE0})}},bl={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:fl,helpUrl:ut.Msg.MPYTHON_BLYNK_RUN_HELPURL,tooltip:ut.Msg.MPYTHON_BLYNK_RUN_TOOLTIP,message0:ut.Msg.MPYTHON_BLYNK_RUN_MESSAGE0})}},Xl={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:fl,helpUrl:ut.Msg.MPYTHON_BLYNK_APP_NOTIFY_HELPURL,tooltip:ut.Msg.MPYTHON_BLYNK_APP_NOTIFY_TOOLTIP,message0:ut.Msg.MPYTHON_BLYNK_APP_NOTIFY_MESSAGE0,args0:[{check:String,type:"input_value",name:"notification"}]})}},yl={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:fl,helpUrl:ut.Msg.MPYTHON_BLYNK_STOP_TIMERS_HELPURL,tooltip:ut.Msg.MPYTHON_BLYNKTIMER_TOOLTIP,message0:ut.Msg.MPYTHON_BLYNK_STOP_TIMERS_MESSAGE0,args0:[{check:Number,type:"input_value",name:"timer_num"}]})}},Vl={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:fl,helpUrl:ut.Msg.MPYTHON_BLYNK_SET_PROPERTY_HELPURL,tooltip:ut.Msg.MPYTHON_BLYNK_SET_PROPERTY_TOOLTIP,message0:ut.Msg.MPYTHON_BLYNK_SET_PROPERTY_MESSAGE0,args0:[{check:String,type:"input_value",name:"attribute_name"},{type:"input_value",name:"attribute_value"}]})}},Bl={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:fl,helpUrl:ut.Msg.MPYTHON_BLYNK_EMAIL_HELPURL,tooltip:ut.Msg.MPYTHON_BLYNK_EMAIL_TOOLTIP,message0:ut.Msg.MPYTHON_BLYNK_EMAIL_MESSAGE0,args0:[{check:String,type:"input_value",name:"TargetEmail"},{check:String,type:"input_value",name:"subject"},{check:String,type:"input_value",name:"body"}]})}},Gl={init:function(){this.jsonInit({inputsInline:!0,output:null,colour:fl,helpUrl:ut.Msg.MPYTHON_BLYNK_GET_TIMERS_HELPURL,tooltip:ut.Msg.MPYTHON_BLYNK_GET_TIMERS_TOOLTIP,message0:ut.Msg.MPYTHON_BLYNK_GET_TIMERS_MESSAGE0})}},Ul={init:function(){this.jsonInit({message0:ut.Msg.MPYTHON_BLYNKTIMER_MESSAGE0,colour:fl,helpUrl:ut.Msg.MPYTHON_BLYNKTIMER_HELPURL,tooltip:ut.Msg.MPYTHON_BLYNKTIMER_TOOLTIP,args0:[{check:Number,type:"input_value",name:"Num"},{options:[[ut.Msg.MIXLY_PYTHON_PERIODIC,"False"],[ut.Msg.MIXLY_PYTHON_ONE_SHOT,"True"]],type:"field_dropdown",name:"Timer_mode"},{check:Number,type:"input_value",name:"period"}]}),this.appendStatementInput("DO").appendField(ut.CONTROLS_REPEAT_INPUT_DO)}},wl={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:fl,helpUrl:ut.Msg.MPYTHON_BLYNK_SENSOR_DATA_TO_APP_HELPURL,tooltip:ut.Msg.MPYTHON_BLYNK_SENSOR_DATA_TO_APP_TOOLTIP,message0:ut.Msg.MPYTHON_BLYNK_SENSOR_DATA_TO_APP_MESSAGE0,args0:[{type:"input_value",name:"sensor_data"},{check:Number,type:"input_value",name:"virtual_pin"}]})}},kl={init:function(){this.jsonInit({inputsInline:!0,colour:fl,helpUrl:ut.Msg.MPYTHON_BLYNK_APP_DATA_HELPURL,tooltip:ut.Msg.MPYTHON_BLYNK_SENSOR_DATA_TO_APP_TOOLTIP,message0:ut.Msg.MPYTHON_BLYNK_APP_DATA_MESSAGE0,args0:[{check:Number,type:"input_value",name:"virtual_pin"},{type:"input_value",name:"virtual_pin_val"}]}),this.appendStatementInput("DO").appendField(ut.CONTROLS_REPEAT_INPUT_DO)}},Hl={init:function(){this.jsonInit({nextStatement:null,previousStatement:null,colour:fl,helpUrl:ut.Msg.MPYTHON_BLYNK_SETUP_HELPURL,tooltip:ut.Msg.MPYTHON_BLYNK_SETUP_TOOLTIP,message0:ut.Msg.MPYTHON_BLYNK_SETUP_MESSAGE0,args0:[{type:"input_dummy"},{check:String,type:"input_value",name:"server"},{check:Number,type:"input_value",name:"port"},{check:String,type:"input_value",name:"auth"}]})}},Wl=140,Kl={init:function(){this.setColour(Wl),this.appendDummyInput().appendField(ut.Msg.MIXLY_LED_ON_BOARD+"I2C"),this.setOutput(!0),this.setInputsInline(!0)}},Jl={init:function(){this.setColour(Wl),this.appendDummyInput().appendField(ut.Msg.MIXLY_LED_ON_BOARD+"SPI"),this.setOutput(!0),this.setInputsInline(!0)}},Ql={init:function(){this.setColour(Wl),this.appendValueInput("SUB").appendField("I2C "+ut.Msg.MIXLY_SETUP).setCheck("var"),this.appendValueInput("TX",Number).appendField("SCL").setCheck(Number).setAlign(ut.inputs.Align.RIGHT),this.appendValueInput("RX",Number).appendField("SDA").setCheck(Number).setAlign(ut.inputs.Align.RIGHT),this.appendValueInput("freq").setCheck(Number).appendField(ut.Msg.MIXLY_FREQUENCY).setAlign(ut.inputs.Align.RIGHT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_I2C_INIT)}},zl={init:function(){this.setColour(Wl),this.appendValueInput("VAR").appendField("I2C").setCheck("var"),this.appendValueInput("address").setCheck(Number).appendField(ut.Msg.MIXLY_ESP32_RNUMBER),this.appendValueInput("data").setCheck(Number).appendField(ut.Msg.LANG_MATH_BYTE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MICROBIT_JS_I2C_READ)}},ql={init:function(){this.setColour(Wl),this.appendValueInput("VAR").appendField("I2C").setCheck("var"),this.appendValueInput("address").setCheck(Number).appendField(ut.Msg.MIXLY_ESP32_WNUMBER),this.appendValueInput("data").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_JS_I2C_VALUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MICROBIT_JS_I2C_WRITE)}},jl={init:function(){this.setColour(Wl),this.appendValueInput("VAR").appendField("I2C").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_I2C_SCAN1+ut.Msg.MIXLY_ESP32_I2C_SCAN2),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_I2C_SCAN)}},Zl={init:function(){this.setColour(Wl),this.appendValueInput("VAR").setCheck("var").appendField(ut.Msg.MIXLY_ESP32_SPI_INIT),this.appendValueInput("freq").setCheck(Number).appendField(ut.Msg.MIXLY_SERIAL_BEGIN),this.appendValueInput("sck").setCheck(Number).appendField("SCK"),this.appendValueInput("mosi").setCheck(Number).appendField("MOSI"),this.appendValueInput("miso").setCheck(Number).appendField("MISO"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_SPI_INIT_TOOLTIP)}},$l={init:function(){this.setColour(Wl),this.appendValueInput("VAR").setCheck("var").appendField("SPI"),this.appendValueInput("data").setCheck(Number).appendField(ut.Msg.MIXLY_SETTING+ut.Msg.MIXLY_SERIAL_BEGIN),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_SPI_SET)}},td={init:function(){this.setColour(Wl),this.appendValueInput("VAR").setCheck("var").appendField("SPI"),this.appendValueInput("data").setCheck(Number).appendField(ut.Msg.MIXLY_ESP32_SET+ut.Msg.MIXLY_ESP32_SPI_BUFFER),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_SPI_BUFFER_SET)}},ed={init:function(){this.setColour(Wl),this.appendValueInput("VAR").setCheck("var").appendField("SPI"),this.appendValueInput("data").setCheck(Number).appendField(ut.Msg.MIXLY_SERIAL_READ),this.appendDummyInput("").appendField(ut.Msg.MIXLY_4DIGITDISPLAY_NOMBER2+ut.Msg.LANG_MATH_BYTE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_SPI_READ)}},id={init:function(){this.setColour(Wl),this.appendValueInput("VAR").setCheck("var").appendField("SPI"),this.appendValueInput("data").setCheck(Number).appendField(ut.Msg.MIXLY_SERIAL_READ),this.appendDummyInput("").appendField(ut.Msg.MIXLY_4DIGITDISPLAY_NOMBER2+ut.Msg.LANG_MATH_BYTE+" "+ut.Msg.MIXLY_ESP32_SPI_OUTPUT),this.appendValueInput("val").setCheck(Number),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_SPI_READ_OUTPUT)}},nd={init:function(){this.setColour(Wl),this.appendValueInput("VAR").setCheck("var").appendField("SPI"),this.appendValueInput("data").setCheck("var").appendField(ut.Msg.MIXLY_SERIAL_READ+ut.Msg.MIXLY_ESP32_SPI_BUFFER),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_SPI_READINTO)}},sd={init:function(){this.setColour(Wl),this.appendValueInput("VAR").setCheck("var").appendField("SPI"),this.appendValueInput("data").setCheck("var").appendField(ut.Msg.MIXLY_SERIAL_READ+ut.Msg.MIXLY_ESP32_SPI_BUFFER),this.appendValueInput("val").setCheck(Number).appendField(ut.Msg.MIXLY_ESP32_SPI_OUTPUT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_SPI_READINTO_OUTPUT)}},od={init:function(){this.setColour(Wl),this.appendValueInput("VAR").setCheck("var").appendField("SPI"),this.appendValueInput("data").setCheck(String).appendField(ut.Msg.MIXLY_ESP32_WRITE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_SPI_WRITE)}},_d={init:function(){this.setColour(Wl),this.appendValueInput("VAR").setCheck("var").appendField("SPI"),this.appendValueInput("data").setCheck(String).appendField(ut.Msg.MIXLY_ESP32_WRITE),this.appendValueInput("val").setCheck("var").appendField(ut.Msg.MIXLY_ESP32_BUFFER_READ),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_SPI_WRITE_READINTO)}},pd={init:function(){this.setColour(Wl),this.appendValueInput("VAR").setCheck("var").appendField("I2C"),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_READ),this.setOutput(!0,Number)}},ad={init:function(){this.setColour(Wl),this.appendValueInput("VAR").setCheck("var").appendField("I2C"),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_READ+ut.Msg.MIXLY_ESP32_SUCCESS),this.setOutput(!0,Boolean),this.setTooltip(ut.Msg.MIXLY_ESP32_I2C_AVAILABLE)}},ud={init:function(){this.setColour(Wl),this.appendValueInput("PIN",Number).appendField(ut.Msg.MIXLY_I2C_SLAVE_ONRECEIVE).setCheck(Number),this.appendStatementInput("DO").appendField(ut.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0)}},rd={init:function(){this.setColour(Wl),this.appendValueInput("VAR").setCheck("var").appendField("OneWire "+ut.Msg.MIXLY_SETUP),this.appendValueInput("BUS").setCheck(Number).appendField(ut.Msg.MIXLY_PIN),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_OW_INIT)}},ld={init:function(){this.setColour(Wl),this.appendValueInput("VAR").setCheck("var").appendField("OneWire"),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_ONEWIRE_SCAN),this.setOutput(!0,"List"),this.setTooltip(ut.Msg.MIXLY_ESP32_OW_SCAN)}},dd={init:function(){this.setColour(Wl),this.appendValueInput("VAR").setCheck("var").appendField("OneWire"),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_ONEWIRE_READ),this.setOutput(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_OW_READ)}},Id={init:function(){this.setColour(Wl),this.appendValueInput("VAR").setCheck("var").appendField("OneWire"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_ESP32_WRITE).appendField(new ut.FieldDropdown([[ut.Msg.LANG_MATH_STRING,"write"],[ut.Msg.LANG_MATH_BYTE,"writebyte"]]),"op"),this.appendValueInput("byte").setCheck([Number,String]),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_OW_WRITE)}},Td={init:function(){this.setColour(Wl),this.appendValueInput("VAR").appendField("OneWire").setCheck("var"),this.appendValueInput("byte").setCheck(String).appendField(ut.Msg.LISTS_SET_INDEX_SET).appendField("ROM"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_OW_SELECT)}},hd={init:function(){this.setColour(Wl),this.appendValueInput("VAR").appendField("OneWire").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.blockpy_turtle_reset),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_OW_RESET)}},Md={init:function(){this.setColour(Wl),this.appendValueInput("PIN").appendField(ut.Msg.MIXLY_SETUP+ut.Msg.MIXLY_IR_RECEIVE),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_TYPE).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_IR_INPUT1,"8"],[ut.Msg.MIXLY_IR_INPUT2,"16"],[ut.Msg.MIXLY_IR_INPUT3,"0"],[ut.Msg.MIXLY_TR_SEND_RC,"RC5"]]),"type"),this.appendValueInput("SUB").appendField(ut.Msg.CONTROLS_REPEAT_INPUT_DO+ut.Msg.MIXLY_ESP32_ONENET_SUB),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},md={init:function(){this.setColour(Wl),this.appendDummyInput().appendField(ut.Msg.MIXlY_RECV_FUN),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_IR_CMD_CODE,"0"],[ut.Msg.MIXLY_IR_ADDR_CODE,"1"],[ut.Msg.MIXLY_IR_RAW_CODE,"2"],[ut.Msg.MIXLY_IR_PULSE,"3"]]),"index"),this.setOutput(!0),this.setInputsInline(!0)}},Od={init:function(){this.setColour(Wl),this.appendDummyInput().appendField(ut.Msg.MIXlY_RECV_FUN).appendField(new ut.FieldDropdown([[ut.Msg.MILY_PAUSE,"True"],[ut.Msg.MIXLY_RECOVER,"False"]]),"en"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Ed={init:function(){this.setColour(Wl),this.appendDummyInput().appendField(ut.Msg.MIXlY_RECV_FUN),this.appendDummyInput().appendField(ut.Msg.MIXLY_IR_WHETHER_RECV),this.setOutput(!0),this.setInputsInline(!0)}},Rd={init:function(){this.setColour(Wl),this.appendValueInput("time").appendField(ut.Msg.MIXlY_RECV_FUN).appendField(ut.Msg.MIXLY_IR_TIMEOUT),this.appendDummyInput().appendField(ut.Msg.MIXLY_MILLISECOND),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},cd={init:function(){this.setColour(Wl),this.appendValueInput("PIN").appendField(ut.Msg.MIXLY_SETUP+ut.Msg.MIXLY_IR_SEND).appendField(ut.Msg.MIXLY_PIN),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_TYPE).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_IR_SEND_samsung1,"False"],[ut.Msg.MIXLY_IR_SEND_samsung2,"True"],[ut.Msg.MIXLY_TR_SEND_RC,"RC5"]]),"type").appendField(ut.Msg.MIXLY_MICROBIT_JS_BLE_POWER),this.appendValueInput("power"),this.appendDummyInput().appendField(ut.Msg.MATH_QUYU_SYMBOL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},gd={init:function(){this.setColour(Wl),this.appendDummyInput().appendField(ut.Msg.MIXLY_IR_SEND),this.appendValueInput("cmd").appendField(ut.Msg.MIXLY_IR_CMD_CODE),this.appendValueInput("addr").appendField(ut.Msg.MIXLY_IR_ADDR_CODE),this.appendValueInput("toggle").appendField(ut.Msg.MIXLY_CONTROL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_TRANSMIT_CONVEN_DATA)}},Cd={init:function(){this.setColour(Wl),this.appendDummyInput().appendField(ut.Msg.MIXLY_IR_SEND),this.appendValueInput("LIST").appendField(ut.Msg.MIXLY_IR_PULSE).setAlign(ut.inputs.Align.RIGHT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Sd={init:function(){this.setColour(Wl),this.appendDummyInput().appendField(ut.Msg.MIXLY_IR_SEND),this.appendValueInput("raw").appendField(ut.Msg.MIXLY_IR_RAW_CODE).setAlign(ut.inputs.Align.RIGHT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Ad={init:function(){this.setColour(Wl),this.appendDummyInput().appendField(ut.Msg.MIXLY_IR_TRANSMIT_DONE),this.setOutput(!0),this.setInputsInline(!0)}},Ld={init:function(){this.setColour(Wl),this.appendValueInput("VAR").appendField(ut.Msg.MSG.catBLE).setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MSG.catEthernet_init+ut.Msg.MIXLY_MICROBIT_PY_STORAGE_AS+ut.Msg.MSG.catBLE_UART),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Nd={init:function(){this.setColour(Wl),this.appendValueInput("VAR").appendField(ut.Msg.MSG.catBLE).setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MSG.catEthernet_init+ut.Msg.MIXLY_MICROBIT_PY_STORAGE_AS+ut.Msg.MSG.catBLE_HID),this.appendValueInput("data").setCheck(String).appendField(ut.Msg.HTML_NAME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Dd={init:function(){this.setColour(Wl),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_ONEWIRE_SCAN+ut.Msg.MSG.catBLE),this.setOutput(!0),this.setInputsInline(!0)}},fd={init:function(){this.setColour(Wl),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MIXGO_ESPNOW_MAC),this.setOutput(!0),this.setInputsInline(!0)}},Fd={init:function(){this.setColour(Wl),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_TEXT_JOIN+ut.Msg.MSG.catBLE).appendField(new ut.FieldDropdown([[ut.Msg.HTML_NAME,"name"],[ut.Msg.MIXLY_ETHERNET_MAC_ADDRESS,"mac"]]),"mode"),this.appendValueInput("data").setCheck(String),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Pd={init:function(){this.setColour(Wl),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_DISCONNECT_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},vd={init:function(){this.setColour(Wl),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MSG.catBLE+ut.Msg.MIXLY_SEND_DATA),this.appendValueInput("data").appendField(ut.Msg.HTML_BODY),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Yd={init:function(){this.setColour(Wl),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MSG.catBLE+ut.Msg.MIXLY_EMQX_IS_CONNECT),this.setOutput(!0),this.setInputsInline(!0)}},xd={init:function(){this.setColour(Wl),this.appendValueInput("VAR").setCheck("var"),this.appendValueInput("METHOD").appendField(ut.Msg.MIXLY_MIXGO_ESPNOW_RECV).appendField(ut.Msg.CONTROLS_REPEAT_INPUT_DO+ut.Msg.MIXLY_ESP32_ONENET_SUB),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},bd={init:function(){this.setColour(Wl),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MIXGO_ESPNOW_RECV),this.setOutput(!0),this.setInputsInline(!0)}},Xd={init:function(){this.setColour(Wl),this.appendValueInput("VAR").setCheck("var").appendField(ut.Msg.MIXLY_BLE_HANDLE),this.appendValueInput("METHOD").appendField(ut.Msg.MIXLY_MIXGO_ESPNOW_RECV).appendField(ut.Msg.CONTROLS_REPEAT_INPUT_DO+ut.Msg.MIXLY_ESP32_ONENET_SUB),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},yd={init:function(){this.setColour(Wl),this.appendValueInput("VAR").setCheck("var").appendField("ESPnow "+ut.Msg.MIXLY_SETUP),this.appendValueInput("CHNL").setCheck(Number).appendField(ut.Msg.MIXLY_MP_ESPNOW_CHANNEL),this.appendDummyInput("").appendField(ut.Msg.MIXLY_TX_POWER).appendField(new ut.FieldDropdown([["20","20"],["18","18"],["16","16"],["15","15"],["14","14"],["13","13"],["11","11"],["8","8"],["7","7"],["5","5"],["2","2"]]),"op"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Vd={init:function(){this.setColour(Wl),this.appendValueInput("VAR").setCheck("var").appendField("ESPnow "+ut.Msg.MIXLY_SETUP),this.appendValueInput("CHNL").setCheck(Number).appendField(ut.Msg.MIXLY_MP_ESPNOW_CHANNEL),this.appendValueInput("DB").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_JS_BLE_POWER),this.appendDummyInput().appendField("db"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MP_ESPNOW_INIT_TOOLTIP)}},Bd={init:function(){this.setColour(Wl),this.appendValueInput("VAR").setCheck("var").appendField("ESPnow "),this.appendDummyInput().appendField(ut.Msg.MIXLY_MIXGO_ESPNOW_MAC),this.setOutput(!0),this.setInputsInline(!0)}},Gd={init:function(){this.setColour(Wl),this.appendValueInput("VAR").setCheck("var").appendField("ESPnow "),this.appendDummyInput().appendField(ut.Msg.MIXLY_MIXGO_ESPNOW_INFO),this.setOutput(!0),this.setInputsInline(!0)}},Ud={init:function(){this.setColour(Wl),this.appendValueInput("VAR").setCheck("var").appendField("ESPnow "),this.appendDummyInput().appendField(ut.Msg.MIXLY_MIXGO_ESPNOW_RECV),this.appendDummyInput().appendField(new ut.FieldDropdown([["("+ut.Msg.MIXLY_ETHERNET_MAC_ADDRESS+", "+ut.Msg.OLED_STRING+")",""],[ut.Msg.MIXLY_ETHERNET_MAC_ADDRESS,"[0]"],[ut.Msg.OLED_STRING,"[1]"]]),"mode"),this.setOutput(!0),this.setInputsInline(!0)}},wd={init:function(){this.setColour(Wl),this.appendValueInput("VAR").setCheck("var").appendField("ESPnow "),this.appendValueInput("mac").appendField(ut.Msg.MIXLY_MIXGO_ESPNOW_SEND_MAC),this.appendValueInput("content").appendField(ut.Msg.MIXLY_MIXGO_ESPNOW_SEND),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MIXGO_ESPNOW_SEND_TOOLTIP)}},kd={init:function(){this.setColour(Wl),this.appendValueInput("VAR").setCheck("var").appendField("ESPnow "),this.appendValueInput("METHOD").appendField(ut.Msg.MIXLY_EMQX_SET_METHOD),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Hd={init:function(){this.setColour(Wl),this.appendDummyInput().appendField(ut.Msg.MIXLY_MP_ESPNOW_RADIO_INIT),this.appendValueInput("CHNL").setCheck(Number),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Wd={init:function(){this.setColour(Wl),this.appendDummyInput().appendField(ut.Msg.MIXLY_SETTING+ut.Msg.MIXLY_MP_ESPNOW_RADIO+ut.Msg.MIXLY_TX_POWER).appendField(new ut.FieldDropdown([["20","20"],["18","18"],["16","16"],["15","15"],["14","14"],["13","13"],["11","11"],["8","8"],["7","7"],["5","5"],["2","2"]]),"op"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Kd={init:function(){this.setColour(Wl),this.appendDummyInput().appendField(ut.Msg.MIXLY_MP_ESPNOW_RADIO_INIT),this.appendValueInput("CHNL").setCheck(Number),this.appendValueInput("DB").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_JS_BLE_POWER),this.appendDummyInput().appendField("db"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MP_ESPNOW_RADIO_INIT_TOOLTIP)}},Jd={init:function(){this.setColour(Wl),this.appendDummyInput().appendField(ut.Msg.MIXLY_MP_ESPNOW_RADIO),this.appendDummyInput().appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_ON,"True"],[ut.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_OFF,"False"]]),"on_off"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Qd={init:function(){this.setColour(Wl),this.appendDummyInput().appendField(ut.Msg.MIXLY_MP_ESPNOW_RADIO).appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.appendValueInput("send").setCheck(String),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MIXGO_ESPNOW_SEND_TOOLTIP)}},zd={init:function(){this.setColour(Wl),this.appendDummyInput().appendField(ut.Msg.MIXLY_MP_ESPNOW_RADIO).appendField(ut.Msg.MIXLY_MIXGO_ESPNOW_RECV),this.setOutput(!0),this.setInputsInline(!0)}},qd={init:function(){this.setColour(Wl),this.appendDummyInput().appendField(ut.Msg.MIXLY_MP_ESPNOW_RADIO_RECEIVED_MSG),this.setOutput(!0),this.setInputsInline(!0)}},jd={init:function(){this.setColour(Wl),this.appendDummyInput().appendField(ut.Msg.MIXLY_MP_ESPNOW_RADIO_MSG_RECEIVED),this.appendStatementInput("DO").appendField(ut.Msg.MIXLY_DO),this.setPreviousStatement(!1),this.setNextStatement(!1)}},Zd={init:function(){this.setColour(Wl),this.appendDummyInput().appendField(ut.Msg.MIXLY_MP_ESPNOW_RADIO_MSG_RECEIVED_CERTAIN).appendField('"').appendField(new ut.FieldTextInput("on"),"msg").appendField('"'),this.appendStatementInput("DO").appendField(ut.Msg.MIXLY_DO),this.setPreviousStatement(!1),this.setNextStatement(!1)}},$d={init:function(){this.setColour(Wl),this.appendDummyInput().appendField(ut.Msg.MIXLY_MP_ESPNOW_RADIO_MSG_RECEIVED),this.appendStatementInput("DO").appendField(ut.Msg.MIXLY_DO),this.setPreviousStatement(!1),this.setNextStatement(!1)}},tI={init:function(){this.setColour(Wl),this.appendDummyInput().appendField(ut.Msg.MIXLY_MP_ESPNOW_RADIO_MSG_RECEIVED_CERTAIN).appendField('"').appendField(new ut.FieldTextInput("on"),"msg").appendField('"'),this.appendStatementInput("DO").appendField(ut.Msg.MIXLY_DO),this.setPreviousStatement(!1),this.setNextStatement(!1)}},eI={init:function(){this.setColour(Wl),this.appendValueInput("SUB").appendField("Lora"+ut.Msg.MIXLY_SETUP).setCheck("var"),this.appendValueInput("SPISUB").appendField(ut.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("frequency").appendField(ut.Msg.MIXLY_FREQUENCY),this.appendValueInput("rate").appendField(ut.Msg.MIXLY_CODE_RATE),this.appendValueInput("factor").appendField(ut.Msg.MIXLY_SPREADING_FACTOR),this.appendValueInput("power").appendField(ut.Msg.MIXLY_TX_POWER),this.appendDummyInput().appendField(ut.Msg.MIXLY_SIGNAL_BANDWIDTH).appendField(new ut.FieldDropdown([["7800","7800"],["10400","10400"],["15600","15600"],["20800","20800"],["31250","31250"],["41700","41700"],["62500","62500"],["125000","125000"],["250000","250000"],["500000","500000"]]),"bandwidth"),this.setFieldValue("125000","bandwidth"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(ut.Msg.MIXLY_LORA_INIT_TOOLTIP)}},iI={init:function(){this.setColour(Wl),this.appendValueInput("VAR").setCheck("var").appendField("Lora "),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET+ut.Msg.MIXLY_PACKAGE).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_SIGNAL_STRENGTH,"packet_rssi"],[ut.Msg.MIXLY_SIGNAL_NOISE_RATE,"packet_snr"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},nI={init:function(){this.setColour(Wl),this.appendValueInput("VAR").setCheck("var").appendField("Lora "),this.appendDummyInput().appendField(ut.Msg.MIXLY_SEND_DATA),this.appendValueInput("data").setCheck(String).appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},sI={init:function(){this.setColour(Wl),this.appendValueInput("VAR").setCheck("var").appendField("Lora "),this.appendDummyInput().appendField(ut.Msg.MIXLY_MIXGO_ESPNOW_RECV),this.setOutput(!0,String),this.setInputsInline(!0)}},oI={init:function(){this.setColour(Wl),this.appendValueInput("DOMAIN").appendField(ut.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(ut.Msg.blockpy_REQUESTS_GET).appendField(new ut.FieldTextInput("response"),"VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.blockpy_REQUESTS_GET_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ut.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},_I={init:function(){this.appendValueInput("VAL");var t=[[ut.Msg.blockpy_REQUESTS_GET_ATTR_HEADER,"headers"],[ut.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE,"status_code"],[ut.Msg.blockpy_REQUESTS_GET_ATTR_TEXT,"text"],[ut.Msg.blockpy_REQUESTS_GET_ATTR_COOKIES,"cookies"],[ut.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT,"content"]];this.setColour(Wl),this.appendDummyInput("").appendField(ut.Msg.MIXLY_MICROBIT_JS_GET).appendField(new ut.FieldDropdown(t),"ATTR"),this.setInputsInline(!0),this.setOutput(!0,String);var e=this;this.setTooltip((function(){var t=e.getFieldValue("DIR");return{clear:ut.Msg.MIXLY_TOOLTIP_TURTEL_CLEAR,reset:ut.Msg.MIXLY_TOOLTIP_TURTEL_RESET,home:ut.Msg.MIXLY_TOOLTIP_TURTEL_HOME}[t]}))}},pI={init:function(){this.appendValueInput("VAR").appendField(ut.Msg.DISPLAY_IMAGE_LET2).setCheck(String);this.setColour(Wl),this.appendDummyInput("").appendField(ut.Msg.blockpy_CONDUCT).appendField(new ut.FieldDropdown([["get","get"],["post","post"],["put","put"],["delete","delete"],["head","head"],["option","option"]]),"DIR"),this.appendDummyInput("").appendField(ut.Msg.blockpy_REQUESTS),this.setOutput(!0),this.setInputsInline(!0)}},aI=Ql,uI=zl,rI=ql,lI=jl,dI=Zl,II=$l,TI=td,hI=ed,MI=id,mI=nd,OI=sd,EI=od,RI=_d,cI=pd,gI=ad,CI=120;({init:function(){this.setColour(CI),this.appendValueInput("BOOL").setCheck([Boolean,Number]).appendField(ut.Msg.LANG_CONTROLS_WHILEUNTIL_TITLE_REPEAT).appendField(new ut.FieldDropdown(this.OPERATORS),"MODE"),this.appendStatementInput("DO").appendField(ut.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return{WHILE:ut.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_WHILE,UNTIL:ut.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL}[e]}))}}).OPERATORS=[[ut.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"WHILE"],[ut.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"UNTIL"]];({init:function(){this.setColour(CI);var t=new ut.FieldDropdown(this.OPERATORS);this.appendDummyInput().appendField(t,"FLOW").appendField(ut.Msg.LANG_CONTROLS_FLOW_STATEMENTS_INPUT_OFLOOP),this.setPreviousStatement(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("FLOW");return{BREAK:ut.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK,CONTINUE:ut.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE}[t]}))},onchange:function(){if(this.workspace){var t=!1,e=this;do{if("controls_repeat"==e.type||"controls_for"==e.type||"controls_forEach"==e.type||"controls_repeat_ext"==e.type||"controls_whileUntil"==e.type){t=!0;break}e=e.getSurroundParent()}while(e);t?this.setWarningText(null):this.setWarningText(ut.Msg.LANG_CONTROLS_FLOW_STATEMENTS_WARNING)}}}).OPERATORS=[[ut.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK,"BREAK"],[ut.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE,"CONTINUE"]];const SI="5BA5A5",AI={init:function(){this.setColour(SI),this.appendValueInput("I2CSUB").appendField(ut.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_SETUP+ut.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new ut.FieldDropdown([["32x12 Matrix","32x12 Matrix"],["16x8 Matrix","16x8 Matrix"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},LI={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(SI),this.appendValueInput("data").setCheck([String,"esp32_image","List","Tuple"]).appendField(ut.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.OLED_BITMAP_OR_STRING)}},NI={init:function(){this.setColour(SI),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("data").setCheck(String).appendField(ut.Msg.OLED_DRAWSTR),this.appendValueInput("space").setCheck(Number).appendField(ut.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendDummyInput("").appendField(ut.Msg.TEXT_CENTER).appendField(new ut.FieldDropdown([[ut.Msg.MICROPYTHON_DISPLAY_YES,"True"],[ut.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"center"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY)}},DI={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(SI),this.appendValueInput("data").setCheck(String).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},fI={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(SI),this.appendValueInput("data").setCheck(String).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.appendValueInput("space").setCheck(Number).appendField(ut.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendValueInput("time").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_SCROLL_IMAGE_OR_STRING_DELAY)}},FI={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(SI),this.appendValueInput("data").setCheck(String).appendField(ut.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},PI={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(SI),this.appendValueInput("data").setCheck(String).appendField(ut.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.appendValueInput("time").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},vI={init:function(){var t=[[ut.Msg.MIXLY_UP,"shift_up"],[ut.Msg.MIXLY_DOWN,"shift_down"],[ut.Msg.MIXLY_LEFT,"shift_left"],[ut.Msg.MIXLY_RIGHT,"shift_right"]];this.appendValueInput("SUB").setCheck("var"),this.setColour(SI),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.appendDummyInput("").appendField(ut.Msg.DISPLAY_IMAGE_LET),this.appendDummyInput("").appendField(ut.Msg.DISPLAY_IMAGE_LET2).appendField(new ut.FieldDropdown(t),"OP"),this.appendValueInput("val").appendField(ut.Msg.DISPLAY_IMAGE_SHIFT).setCheck(Number),this.appendDummyInput("").appendField(ut.Msg.DISPLAY_IMAGE_UNIT);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP"),i=ut.Msg.DISPLAY_IMAGE_LET,n=ut.Msg.DISPLAY_IMAGE_LET2,s=ut.Msg.DISPLAY_IMAGE_LET3;return i+n+{up:ut.Msg.MIXLY_UP,down:ut.Msg.MIXLY_DOWN,left:ut.Msg.MIXLY_LEFT,right:ut.Msg.MIXLY_RIGHT}[t]+s}))}},YI={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(SI),this.appendValueInput("x").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_JS_MONITOR_GET_POINT),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(ut.Msg.MIXLY_ESP32_JS_MONITOR_BRIGHTNESS)}},xI={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(SI),this.appendValueInput("x").setCheck(Number).appendField(ut.Msg.MIXLY_ESP32_JS_MONITOR_SET_BRIGHTNESS).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendValueInput("STAT").setCheck([Number,Boolean]),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL)}},bI={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(SI),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(ut.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS)}},XI={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(SI),this.appendValueInput("x").setCheck(Number).appendField(ut.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS+" 0.0-1.0")}},yI={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(SI),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_Clear_display),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MICROBIT_Clear_display)}},VI={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(SI),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_Built_in_image1).appendField(new ut.FieldDropdown([["HEART","HEART"],["HEART_SMALL","HEART_SMALL"],["HAPPY","HAPPY"],["SAD","SAD"],["SMILE","SMILE"],["SILLY","SILLY"],["FABULOUS","FABULOUS"],["SURPRISED","SURPRISED"],["ASLEEP","ASLEEP"],["ANGRY","ANGRY"],["CONFUSED","CONFUSED"],["NO","NO"],["YES","YES"]]),"image"),this.setOutput(!0,"esp32_image"),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MICROBIT_Clear_display)}},BI={init:function(){var t=[[ut.Msg.MICROBIT_DISPLAY_UNION,"add"],[ut.Msg.MICROBIT_DISPLAY_MINUS,"sub"]];this.appendValueInput("SUB").setCheck("var"),this.setColour(SI),this.setOutput(!0,"esp32_image"),this.appendValueInput("A").appendField(ut.Msg.MICROBIT_DISPLAY_MERGE_SHAPE),this.appendValueInput("B").appendField(new ut.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{"+":ut.Msg.MIXLY_MICROBIT_image_add,"-":ut.Msg.MIXLY_MICROBIT_image_reduce}[t]}))}},GI={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(SI),this.appendValueInput("A").setCheck("esp32_image").appendField(ut.Msg.MIXLY_MICROBIT_Invert_image1),this.setInputsInline(!0),this.setOutput(!0,"esp32_image")}},UI={init:function(){this.setColour(SI),this.appendValueInput("I2CSUB").appendField(ut.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendValueInput("row").appendField(ut.Msg.MIXLY_SETUP+ut.Msg.LISTS_SET_INDEX_INPUT_TO+"OLED").setCheck(Number),this.appendValueInput("column").appendField("X").setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip()}},wI={init:function(){this.appendValueInput("VAR").appendField(ut.Msg.OLED).setCheck("var"),this.appendValueInput("Text_line1","String").setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.OLEDDISPLAY+ut.Msg.line1),this.appendValueInput("Text_line2","String").setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.line2),this.appendValueInput("Text_line3","String").setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.line3),this.appendValueInput("Text_line4","String").setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.line4),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(SI),this.setTooltip(ut.Msg.MIXLY_DF_LCD+ut.Msg.OLEDDISPLAY+ut.Msg.MIXLY_MICROBIT_TYPE_STRING)}},kI={init:function(){var t=[[ut.Msg.MIXLY_HEIGHT,"height"],[ut.Msg.MIXLY_WIDTH,"width"]];this.setColour(SI),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+ut.Msg.MIXLY_MICROBIT_IMAGE),this.appendValueInput("VAR").setCheck("esp32_image"),this.appendDummyInput("").appendField(new ut.FieldDropdown(t),"OP"),this.setInputsInline(!0),this.setOutput(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+ut.Msg.MIXLY_MICROBIT_IMAGE+{height:ut.Msg.MIXLY_HEIGHT,width:ut.Msg.MIXLY_WIDTH}[t]}))}},HI={init:function(){var t=[[ut.Msg.MIXLY_4DIGITDISPLAY_ON,"1"],[ut.Msg.MIXLY_4DIGITDISPLAY_OFF,"0"]];this.setColour(SI),this.appendValueInput("VAR").appendField(ut.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_RECT).appendField(new ut.FieldDropdown(t),"OP"),this.jsonInit({message0:ut.Msg.MIXLY_MICROBIT_SHOW_RECT,args0:[{check:Number,type:"input_value",name:"x"},{check:Number,type:"input_value",name:"y"},{check:Number,type:"input_value",name:"width"},{check:Number,type:"input_value",name:"height"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"fill"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(ut.Msg.MIXLY_OLED_RECT)}},WI={init:function(){this.setColour(SI),this.appendValueInput("VAR").appendField(ut.Msg.OLED).setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_DISPLAY_DRAW).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_DISPLAY_RLINE,"hline"],[ut.Msg.MIXLY_DISPLAY_VLINE,"vline"]]),"direction"),this.jsonInit({message0:ut.Msg.MIXLY_MICROBIT_SHOW_LINE,args0:[{check:Number,type:"input_value",name:"x"},{check:Number,type:"input_value",name:"y"},{check:Number,type:"input_value",name:"length"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(ut.Msg.MIXLY_OLED_LINE)}},KI={init:function(){this.setColour(SI),this.appendValueInput("VAR").appendField(ut.Msg.OLED).setCheck("var"),this.jsonInit({message0:ut.Msg.MIXLY_MICROBIT_SHOW_LINE_ARBITRARILY,args0:[{check:Number,type:"input_value",name:"x1"},{check:Number,type:"input_value",name:"y1"},{check:Number,type:"input_value",name:"x2"},{check:Number,type:"input_value",name:"y2"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(ut.Msg.MIXLY_OLED_LINE_ARBIT)}},JI={init:function(){this.setColour(SI),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_MONITOR_GET_SCREEN_IMAGE),this.setInputsInline(!0),this.setOutput(!0,"esp32_image"),this.setTooltip(ut.Msg.MIXLY_ESP32_MONITOR_GET_SCREEN_IMAGE_TOOLTIP)}},QI={init:function(){this.setColour(SI),this.appendValueInput("x").setCheck(Number).appendField(ut.Msg.MIXLY_ESP32_JS_MONITOR_SET_BLINK_RATE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_JS_MONITOR_SET_BLINK_RATE)}},zI={init:function(){this.setColour(SI),this.appendDummyInput("").appendField(ut.Msg.MIXLY_RGB),this.appendValueInput("_LED_").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_NUM),this.appendDummyInput("").appendField(ut.Msg.LISTS_SET_INDEX_SET+ut.Msg.MIXLY_MICROBIT_PY_STORAGE_AS).appendField(new ut.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),"FIELDNAME"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(ut.Msg.MIXLY_RGB_NUM_R_G_B)}},qI={init:function(){this.setColour(SI),this.appendDummyInput("").appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_ESP32_ON,"ON"],[ut.Msg.MIXLY_ESP32_OFF,"OFF"]]),"ONOFF"),this.setOutput(!0,Boolean),this.setTooltip(ut.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW)}},jI={init:function(){this.setColour(SI),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_LCD_STAT_CLEAR,"0"],[ut.Msg.MIXLY_HANDBIT_DISLPAY_OLED_FILL,"1"]]),"key"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i={0:ut.Msg.MIXLY_LCD_STAT_CLEAR,1:ut.Msg.MIXLY_HANDBIT_DISLPAY_OLED_FILL};return ut.Msg.MIXLY_DF_LCD+i[e]}))}},ZI={init:function(){this.setColour(SI),this.setOutput(!0,"Tuple"),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_DISPLAY_ANIMATE).appendField(new ut.FieldDropdown([["ALL_CLOCKS","ALL_CLOCKS"],["ALL_ARROWS","ALL_ARROWS"]]),"ANIMATION")}},$I={init:function(){var t=[[ut.Msg.MIXLY_4DIGITDISPLAY_ON,"1"],[ut.Msg.MIXLY_4DIGITDISPLAY_OFF,"0"]];this.setColour(SI),this.appendValueInput("VAR").appendField(ut.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_MIXPY_TURTLE_DRAW_CIRCLE).appendField(new ut.FieldDropdown(t),"OP"),this.jsonInit({message0:ut.Msg.MIXLY_HANBIT_SHOW_CIRCLE,args0:[{check:Number,type:"input_value",name:"x"},{check:Number,type:"input_value",name:"y"},{check:Number,type:"input_value",name:"r"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"fill"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(ut.Msg.MIXLY_MIXPY_TURTLE_DRAW_CIRCLE)}},tT={init:function(){var t=[[ut.Msg.MIXLY_4DIGITDISPLAY_ON,"1"],[ut.Msg.MIXLY_4DIGITDISPLAY_OFF,"0"]];this.setColour(SI),this.appendValueInput("VAR").appendField(ut.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_DISPLAY_DRAW+ut.Msg.MIXLY_HANBIT_DRAW_TRIANGLE).appendField(new ut.FieldDropdown(t),"OP"),this.jsonInit({message0:ut.Msg.MIXLY_HANBIT_SHOW_triangle,args0:[{check:Number,type:"input_value",name:"x0"},{check:Number,type:"input_value",name:"y0"},{check:Number,type:"input_value",name:"x1"},{check:Number,type:"input_value",name:"y1"},{check:Number,type:"input_value",name:"x2"},{check:Number,type:"input_value",name:"y2"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"fill"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(ut.Msg.MIXLY_DISPLAY_DRAW+ut.Msg.MIXLY_HANBIT_DRAW_TRIANGLE)}},eT={init:function(){this.setColour("#555555"),this.appendDummyInput("").appendField(ut.Msg.MIXGO_ONBOARDDISPLAY_HELP),this.setInputsInline(!0),this.setTooltip("")}},iT={init:function(){this.setColour(SI),this.appendValueInput("VAR").appendField(ut.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.OLED_BITMAP),this.appendValueInput("START_X",Number).appendField(ut.Msg.OLED_START_X).setCheck(Number),this.appendValueInput("START_Y",Number).appendField(ut.Msg.OLED_START_Y).setCheck(Number),this.appendValueInput("bitmap_name",String).appendField(ut.Msg.OLED_BITMAP_NAME),this.appendValueInput("WIDTH",Number).appendField(ut.Msg.MIXLY_WIDTH).setCheck(Number),this.appendValueInput("HEIGHT",Number).appendField(ut.Msg.MIXLY_HEIGHT).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.OLED_SHOW_BMP_TOOLTIP)}},nT={init:function(){this.setColour(SI),this.appendValueInput("VAR").appendField(ut.Msg.OLED),this.appendDummyInput("").appendField(ut.Msg.OLED_DRAWPIXEL),this.appendValueInput("POS_X").appendField(ut.Msg.OLED_POSX),this.appendValueInput("POS_Y").appendField(ut.Msg.OLED_POSY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.OLED_DRAW_PIXE_TOOLTIP)}},sT={init:function(){this.setColour(SI),this.appendValueInput("I2CSUB").appendField(ut.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_SETUP+ut.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new ut.FieldDropdown([["TM1650","TM1650"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return ut.Msg.MIXLY_ESP32_SENSOR_USE_I2C_TOOLTIP+{TM1650:"TM1650"}[e]}))}},oT={init:function(){this.setColour(SI),this.appendDummyInput().appendField(ut.Msg.MIXLY_4DIGITDISPLAY).appendField(new ut.FieldDropdown([["TM1650","tm1650"]]),"TYPE"),this.appendValueInput("VAR"),this.appendDummyInput().appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_ON,"on"],[ut.Msg.MIXLY_OFF,"off"],[ut.Msg.MIXLY_LCD_STAT_CLEAR,"clear"]]),"STAT"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(ut.Msg.MIXLY_TOOLTIP_4digitdisplay_power)}},_T={init:function(){this.setColour(SI),this.appendDummyInput().appendField(ut.Msg.MIXLY_4DIGITDISPLAY).appendField(new ut.FieldDropdown([["TM1650","tm1650"]]),"TYPE"),this.appendValueInput("VAR"),this.appendValueInput("VALUE").setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_SHOW_NUMBER),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},pT={init:function(){this.setColour(SI),this.appendDummyInput().appendField(ut.Msg.MIXLY_4DIGITDISPLAY).appendField(new ut.FieldDropdown([["TM1650","tm1650"]]),"TYPE"),this.appendValueInput("VAR"),this.appendValueInput("NO").appendField(ut.Msg.MIXLY_4DIGITDISPLAY_NOMBER1),this.appendValueInput("STAT").appendField(ut.Msg.MIXLY_4DIGITDISPLAY_NOMBER2+ut.Msg.MIXLY_4DIGITDISPLAY_DOT),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(ut.Msg.MIXLY_TOOLTIP_4digitdisplay_showDot)}},aT={init:function(){this.setColour(SI),this.appendDummyInput().appendField(ut.Msg.MIXLY_4DIGITDISPLAY).appendField(new ut.FieldDropdown([["TM1650","tm1650"]]),"TYPE"),this.appendValueInput("VAR"),this.appendValueInput("VALUE").setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_SET_BRIGHTNESS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(ut.Msg.MIXLY_4DIGITDISPLAY_4DIGITDISPLAY_BRIGHTNESS_TOOLTIP)}},uT={init:function(){this.setColour(SI),this.appendValueInput("SPISUB").appendField(ut.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINDC").appendField("DC"),this.appendValueInput("PINCS").appendField("CS"),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_SETUP+ut.Msg.LISTS_SET_INDEX_INPUT_TO+ut.Msg.MSG.catTFT),this.appendValueInput("WIDTH").appendField(ut.Msg.MIXLY_WIDTH).setCheck(Number),this.appendValueInput("HEIGHT").appendField(ut.Msg.MIXLY_HEIGHT).setCheck(Number),this.appendDummyInput("").appendField(ut.Msg.blockpy_turtle_rotate).appendField(new ut.FieldDropdown([[ut.Msg.MICROPYTHON_DISPLAY_NO,"0"],[ut.Msg.ANTI_CLOCKWISE+"90°","1"],[ut.Msg.ANTI_CLOCKWISE+"180°","2"],[ut.Msg.ANTI_CLOCKWISE+"270°","3"]]),"rotate"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},rT={init:function(){this.setColour(SI),this.appendValueInput("SUB").appendField(ut.Msg.MSG.catTFT),this.appendValueInput("data").appendField(ut.Msg.OLED_BITMAP),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_JS_NUMBER),this.appendValueInput("VAR").appendField(ut.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.OLED_BITMAP_OR_STRING)}},lT={init:function(){this.setColour(SI);let t=new ut.FieldColour("#f00",null,{colourOptions:["#f00","#000"],columns:2});this.appendDummyInput("").setAlign(ut.inputs.Align.RIGHT).appendField(t,"COLOR"),this.setInputsInline(!0),this.setOutput(!0,String)}},dT={init:function(){this.setColour(SI),this.appendValueInput("SUB").appendField(ut.Msg.MSG.catTFT),this.appendValueInput("data").setCheck(String).appendField(ut.Msg.OLED_DRAWSTR),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(ut.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(ut.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendDummyInput("").appendField(ut.Msg.TEXT_CENTER).appendField(new ut.FieldDropdown([[ut.Msg.MICROPYTHON_DISPLAY_YES,"True"],[ut.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"center"),this.appendValueInput("VAR").appendField(ut.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY)}},IT={init:function(){this.setColour(SI),this.appendValueInput("SUB").appendField(ut.Msg.MSG.catTFT),this.appendValueInput("data").setCheck(String).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(ut.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(ut.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendValueInput("time").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.appendValueInput("VAR").appendField(ut.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_SCROLL_IMAGE_OR_STRING_DELAY)}},TT={init:function(){this.setColour(SI),this.appendValueInput("SUB").appendField(ut.Msg.MSG.catTFT),this.appendValueInput("data").setCheck(String).appendField(ut.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.appendValueInput("size").setCheck(Number).appendField(ut.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("time").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.appendValueInput("VAR").appendField(ut.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},hT={init:function(){this.setColour(SI),this.appendValueInput("SUB").setCheck("var").appendField(ut.Msg.MSG.catTFT),this.appendDummyInput().appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_LCD_STAT_CLEAR,"BLACK"],[ut.Msg.MIXLY_HANDBIT_DISLPAY_OLED_FILL,"WHITE"]]),"key"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i={0:ut.Msg.MIXLY_LCD_STAT_CLEAR,1:ut.Msg.MIXLY_HANDBIT_DISLPAY_OLED_FILL};return ut.Msg.MIXLY_DF_LCD+i[e]}))}},MT={init:function(){this.setColour(SI),this.appendValueInput("SUB").appendField(ut.Msg.MSG.catTFT).setCheck("var"),this.jsonInit({message0:ut.Msg.MIXLY_MICROBIT_SHOW_LINE_ARBITRARILY,args0:[{check:Number,type:"input_value",name:"x1"},{check:Number,type:"input_value",name:"y1"},{check:Number,type:"input_value",name:"x2"},{check:Number,type:"input_value",name:"y2"}]}),this.appendValueInput("VAR").appendField(ut.Msg.HTML_COLOUR),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(ut.Msg.MIXLY_OLED_LINE_ARBIT)}},mT={init:function(){this.setColour(SI),this.appendValueInput("I2CSUB").appendField(ut.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_SETUP+ut.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new ut.FieldDropdown([["LCD1602","16"],["LCD2004","20"]]),"key"),this.appendValueInput("ADDR").setCheck(Number).appendField(ut.Msg.MQTT_SERVER_ADD),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return ut.Msg.MIXLY_SETUP+{16:"LCD1602",20:"LCD2004"}[e]}))}},OT={init:function(){this.setColour(SI),this.appendValueInput("SUB").appendField(ut.Msg.MSG.catLCD),this.appendValueInput("data").setCheck(String).appendField(ut.Msg.OLED_DRAWSTR),this.appendValueInput("x").setCheck(Number).appendField(ut.Msg.array2_cols),this.appendValueInput("y").setCheck(Number).appendField(ut.Msg.array2_rows),this.appendDummyInput("").appendField(ut.Msg.TEXT_CENTER).appendField(new ut.FieldDropdown([[ut.Msg.MICROPYTHON_DISPLAY_YES,"True"],[ut.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"center"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY)}},ET={init:function(){this.setColour(SI),this.appendValueInput("SUB").appendField(ut.Msg.MSG.catLCD),this.appendValueInput("data").setCheck(String).appendField(ut.Msg.MIXLY_SERIAL_PRINT+ut.Msg.OLED_DRAWSTR),this.appendValueInput("x").setCheck(Number).appendField(ut.Msg.array2_cols),this.appendValueInput("y").setCheck(Number).appendField(ut.Msg.array2_rows),this.appendValueInput("time").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},RT={init:function(){this.setColour(SI),this.appendValueInput("SUB").setCheck("var").appendField(ut.Msg.MSG.catLCD),this.appendDummyInput().appendField(ut.Msg.TFT_Brightness).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_Turn_on_display,"1"],[ut.Msg.MIXLY_MICROBIT_Turn_off_display,"0"]]),"key"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i={1:ut.Msg.MIXLY_MICROBIT_Turn_on_display,0:ut.Msg.MIXLY_MICROBIT_Turn_off_display};return ut.Msg.MSG.catLCD+ut.Msg.TFT_Brightness+i[e]}))}},cT={init:function(){this.appendValueInput("SUB").setCheck("var").appendField(ut.Msg.MSG.catLCD),this.setColour(SI),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_Clear_display),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MICROBIT_Clear_display)}},gT={init:function(){this.setColour(SI),this.appendValueInput("I2CSUB").appendField(ut.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_SETUP+ut.Msg.LISTS_SET_INDEX_INPUT_TO+"oled128x64"),this.appendValueInput("ADDR").setCheck(Number).appendField(ut.Msg.MQTT_SERVER_ADD),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return ut.Msg.MIXLY_SETUP+{16:"LCD1602",20:"LCD2004"}[e]}))}},CT={init:function(){this.setColour(SI),this.appendValueInput("SUB").setCheck("var").appendField(ut.Msg.MSG.catOLED),this.appendValueInput("data").appendField(ut.Msg.OLED_BITMAP),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.OLED_BITMAP_OR_STRING)}},ST={init:function(){this.setColour(SI),this.appendValueInput("SUB").setCheck("var").appendField(ut.Msg.MSG.catOLED),this.appendValueInput("data").appendField(ut.Msg.OLED_BITMAP),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_JS_NUMBER),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.OLED_BITMAP_OR_STRING)}},AT={init:function(){this.setColour(SI),this.appendValueInput("SUB").setCheck("var").appendField(ut.Msg.MSG.catOLED),this.appendValueInput("data").setCheck([String,"esp32_image","List","Tuple"]).appendField(ut.Msg.OLED_DRAWSTR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.OLED_BITMAP_OR_STRING)}},LT={init:function(){this.setColour(SI),this.appendValueInput("SUB").setCheck("var").appendField(ut.Msg.MSG.catOLED),this.appendValueInput("data").setCheck(String).appendField(ut.Msg.OLED_DRAWSTR),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(ut.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(ut.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendDummyInput("").appendField(ut.Msg.TEXT_CENTER).appendField(new ut.FieldDropdown([[ut.Msg.MICROPYTHON_DISPLAY_YES,"True"],[ut.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"center"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY)}},NT={init:function(){this.setColour(SI),this.appendValueInput("SUB").setCheck("var").appendField(ut.Msg.MSG.catOLED),this.appendValueInput("data").setCheck(String).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},DT={init:function(){this.setColour(SI),this.appendValueInput("SUB").setCheck("var").appendField(ut.Msg.MSG.catOLED),this.appendValueInput("data").setCheck(String).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(ut.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(ut.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendValueInput("time").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_SCROLL_IMAGE_OR_STRING_DELAY)}},fT={init:function(){this.setColour(SI),this.appendValueInput("SUB").setCheck("var").appendField(ut.Msg.MSG.catOLED),this.appendValueInput("data").setCheck(String).appendField(ut.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},FT={init:function(){this.setColour(SI),this.appendValueInput("SUB").setCheck("var").appendField(ut.Msg.MSG.catOLED),this.appendValueInput("data").setCheck(String).appendField(ut.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.appendValueInput("size").setCheck(Number).appendField(ut.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("time").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},PT={init:function(){var t=[[ut.Msg.MIXLY_UP,"shift_up"],[ut.Msg.MIXLY_DOWN,"shift_down"],[ut.Msg.MIXLY_LEFT,"shift_left"],[ut.Msg.MIXLY_RIGHT,"shift_right"]];this.setColour(SI),this.appendValueInput("SUB").setCheck("var").appendField(ut.Msg.MSG.catOLED),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.appendDummyInput("").appendField(ut.Msg.DISPLAY_IMAGE_LET),this.appendDummyInput("").appendField(ut.Msg.DISPLAY_IMAGE_LET2).appendField(new ut.FieldDropdown(t),"OP"),this.appendValueInput("val").appendField(ut.Msg.DISPLAY_IMAGE_SHIFT).setCheck(Number),this.appendDummyInput("").appendField(ut.Msg.DISPLAY_IMAGE_UNIT);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP"),i=ut.Msg.DISPLAY_IMAGE_LET,n=ut.Msg.DISPLAY_IMAGE_LET2,s=ut.Msg.DISPLAY_IMAGE_LET3;return i+n+{up:ut.Msg.MIXLY_UP,down:ut.Msg.MIXLY_DOWN,left:ut.Msg.MIXLY_LEFT,right:ut.Msg.MIXLY_RIGHT}[t]+s}))}},vT={init:function(){this.setColour(SI),this.appendValueInput("SUB").setCheck("var").appendField(ut.Msg.MSG.catOLED),this.appendValueInput("x").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_JS_MONITOR_GET_POINT),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(ut.Msg.MIXLY_ESP32_JS_MONITOR_BRIGHTNESS)}},YT={init:function(){this.setColour(SI),this.appendValueInput("SUB").setCheck("var").appendField(ut.Msg.MSG.catOLED),this.appendValueInput("x").setCheck(Number).appendField(ut.Msg.MIXLY_ESP32_JS_MONITOR_SET_BRIGHTNESS).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendValueInput("STAT").setCheck([Number,Boolean]),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL)}},xT={init:function(){this.setColour(SI),this.appendValueInput("SUB").setCheck("var").appendField(ut.Msg.MSG.catOLED),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_Clear_display),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MICROBIT_Clear_display)}},bT={init:function(){this.jsonInit({colour:SI,args0:[{name:"SUB",type:"input_value"},{name:"state",options:[[ut.Msg.MPYTHON_DISPLAY_MODE_1,"1"],[ut.Msg.MPYTHON_DISPLAY_MODE_0,"0"]],type:"field_dropdown"},{name:"shape",options:[[ut.Msg.MPYTHON_DISPLAY_HOLLOW,"rect"],[ut.Msg.MPYTHON_DISPLAY_SOLID,"fill_rect"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"w",type:"input_value"},{name:"h",type:"input_value"}],inputsInline:!0,helpUrl:ut.Msg.mpython_HELPURL,tooltip:ut.Msg.MPYTHON_DISPLAY_SHAPE_RECT_TOOLTIP,message0:ut.Msg.MPYTHON_DISPLAY_SHAPE_RECT_MESSAGE1,nextStatement:null,previousStatement:null})}},XT={init:function(){this.jsonInit({colour:SI,args0:[{name:"SUB",type:"input_value"},{name:"state",options:[[ut.Msg.MPYTHON_DISPLAY_MODE_1,"1"],[ut.Msg.MPYTHON_DISPLAY_MODE_0,"0"]],type:"field_dropdown"},{name:"dir_h_v",options:[[ut.Msg.mpython_vertical,"0"],[ut.Msg.mpython_horizontal,"1"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"length",type:"input_value"}],inputsInline:!0,helpUrl:ut.Msg.mpython_HELPURL,tooltip:ut.Msg.MPYTHON_DISPLAY_HVLINE_TOOLTIP,message0:ut.Msg.MPYTHON_DISPLAY_HVLINE_MESSAGE1,nextStatement:null,previousStatement:null})}},yT={init:function(){this.jsonInit({colour:SI,args0:[{name:"SUB",type:"input_value"},{name:"state",options:[[ut.Msg.mpython_display_hline_1,"1"],[ut.Msg.mpython_display_hline_0,"0"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x1",type:"input_value"},{name:"y1",type:"input_value"},{name:"x2",type:"input_value"},{name:"y2",type:"input_value"}],inputsInline:!0,helpUrl:ut.Msg.mpython_HELPURL,tooltip:ut.Msg.mpython_display_line_TOOLTIP,message0:ut.Msg.mpython_display_line_MESSAGE1,nextStatement:null,previousStatement:null})}},VT="#569A98",BT={init:function(){this.setColour(VT),this.appendValueInput("data").setCheck([String,"esp32_image","List","Tuple"]).appendField(ut.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),"micropython:esp32:mixbot"==rt.Boards.getSelectedBoardKey()&&this.setTooltip(ut.Msg.MIXLY_MIXBOT_SHOW_SCROLL_STRING_TOOLTIP)}},GT={init:function(){this.setColour(VT),this.appendValueInput("data").setCheck(String).appendField(ut.Msg.OLED_DRAWSTR),this.appendValueInput("space").setCheck(Number).appendField(ut.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendDummyInput("").appendField(ut.Msg.TEXT_CENTER).appendField(new ut.FieldDropdown([[ut.Msg.MICROPYTHON_DISPLAY_YES,"True"],[ut.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"center"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},UT={init:function(){this.setColour(VT),this.appendValueInput("data").setCheck(String).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},wT={init:function(){this.setColour(VT),this.appendValueInput("data").setCheck(String).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.appendValueInput("space").setCheck(Number).appendField(ut.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendValueInput("time").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},kT={init:function(){this.setColour(VT),this.appendValueInput("data").setCheck(String).appendField(ut.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},HT={init:function(){this.setColour(VT),this.appendValueInput("data").setCheck(String).appendField(ut.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.appendValueInput("time").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},WT={init:function(){this.appendDummyInput("").appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<12;t++){let e=this.appendDummyInput();for(let i=0;i<32;i++)e.appendField(new ut.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.setOutput(!0),this.setColour(VT),this.setTooltip(ut.Msg.MIXLY_MICROBIT_Create_image1)}},KT={init:function(){this.jsonInit({colour:VT,args0:[{name:"image",options:[["HEART","HEART"],["HEART_SMALL","HEART_SMALL"],["HAPPY","HAPPY"],["SAD","SAD"],["SMILE","SMILE"],["SILLY","SILLY"],["FABULOUS","FABULOUS"],["SURPRISED","SURPRISED"],["ASLEEP","ASLEEP"],["ANGRY","ANGRY"],["CONFUSED","CONFUSED"],["NO","NO"],["YES","YES"]],type:"field_dropdown"}],output:["esp32_image","List"],helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/image.html#attributes",tooltip:ut.Msg.MIXLY_MICROBIT_Built_in_image1,message0:ut.Msg.MIXLY_MICROBIT_Built_in_image})}},JT={init:function(){this.jsonInit({colour:VT,args0:[{name:"image",options:[["HEART","HEART"],["HEART_SMALL","HEART_SMALL"],["HAPPY","HAPPY"],["SAD","SAD"],["SMILE","SMILE"],["SILLY","SILLY"],["FABULOUS","FABULOUS"],["SURPRISED","SURPRISED"],["ASLEEP","ASLEEP"],["ANGRY","ANGRY"],["CONFUSED","CONFUSED"],["NO","NO"],["YES","YES"],["LEFT_ARROW","LEFT_ARROW"],["RIGHT_ARROW","RIGHT_ARROW"],["DRESS","DRESS"],["TRANSFORMERS","TRANSFORMERS"],["SCISSORS","SCISSORS"],["EXIT","EXIT"],["TREE","TREE"],["PACMAN","PACMAN"],["TARGET","TARGET"],["TSHIRT","TSHIRT"],["ROLLERSKATE","ROLLERSKATE"],["DUCK","DUCK"],["HOUSE","HOUSE"],["TORTOISE","TORTOISE"],["BUTTERFLY","BUTTERFLY"],["STICKFIGURE","STICKFIGURE"],["GHOST","GHOST"],["PITCHFORK","PITCHFORK"],["MUSIC_QUAVERS","MUSIC_QUAVERS"],["MUSIC_QUAVER","MUSIC_QUAVER"],["MUSIC_CROTCHET","MUSIC_CROTCHET"],["COW","COW"],["RABBIT","RABBIT"],["SQUARE_SMALL","SQUARE_SMALL"],["SQUARE","SQUARE"],["DIAMOND_SMALL","DIAMOND_SMALL"],["DIAMOND","DIAMOND"],["CHESSBOARD","CHESSBOARD"],["TRIANGLE_LEFT","TRIANGLE_LEFT"],["TRIANGLE","TRIANGLE"],["SNAKE","SNAKE"],["UMBRELLA","UMBRELLA"],["SKULL","SKULL"],["GIRAFFE","GIRAFFE"],["SWORD","SWORD"]],type:"field_dropdown"}],output:["esp32_image","List"],helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/image.html#attributes",tooltip:ut.Msg.MIXLY_MICROBIT_Built_in_image1,message0:ut.Msg.MIXLY_MICROBIT_Built_in_image})}},QT={init:function(){var t=[[ut.Msg.MICROBIT_DISPLAY_UNION,"add"],[ut.Msg.MICROBIT_DISPLAY_MINUS,"sub"]];this.setColour(VT),this.setOutput(!0,"esp32_image"),this.appendValueInput("A").appendField(ut.Msg.MICROBIT_DISPLAY_MERGE_SHAPE),this.appendValueInput("B").appendField(new ut.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{"+":ut.Msg.MIXLY_MICROBIT_image_add,"-":ut.Msg.MIXLY_MICROBIT_image_reduce}[t]}))}},zT={init:function(){this.setColour(VT),this.appendValueInput("A").setCheck("esp32_image").appendField(ut.Msg.MIXLY_MICROBIT_Invert_image1),this.setInputsInline(!0),this.setOutput(!0,"esp32_image")}},qT={init:function(){var t=[[ut.Msg.MIXLY_UP,"shift_up"],[ut.Msg.MIXLY_DOWN,"shift_down"],[ut.Msg.MIXLY_LEFT,"shift_left"],[ut.Msg.MIXLY_RIGHT,"shift_right"]];this.setColour(VT),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.appendDummyInput("").appendField(ut.Msg.DISPLAY_IMAGE_LET),this.appendDummyInput("").appendField(ut.Msg.DISPLAY_IMAGE_LET2).appendField(new ut.FieldDropdown(t),"OP"),this.appendValueInput("val").appendField(ut.Msg.DISPLAY_IMAGE_SHIFT).setCheck(Number),this.appendDummyInput("").appendField(ut.Msg.DISPLAY_IMAGE_UNIT);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP"),i=ut.Msg.DISPLAY_IMAGE_LET,n=ut.Msg.DISPLAY_IMAGE_LET2,s=ut.Msg.DISPLAY_IMAGE_LET3;return i+n+{shift_up:ut.Msg.MIXLY_UP,shift_down:ut.Msg.MIXLY_DOWN,shift_left:ut.Msg.MIXLY_LEFT,shift_right:ut.Msg.MIXLY_RIGHT}[t]+s}))}},jT={init:function(){this.setColour(VT),this.appendValueInput("x").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_JS_MONITOR_GET_POINT),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(ut.Msg.MIXLY_ESP32_JS_MONITOR_BRIGHTNESS)}},ZT={init:function(){this.setColour(VT),this.appendValueInput("x").setCheck(Number).appendField(ut.Msg.MIXLY_ESP32_JS_MONITOR_SET_BRIGHTNESS).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendValueInput("STAT").setCheck([Number,Boolean]),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL)}},$T={init:function(){this.setColour(VT),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(ut.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS)}},th={init:function(){this.setColour(VT),this.appendValueInput("x").setCheck(Number).appendField(ut.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS+" 0.0-1.0")}},eh={init:function(){this.setColour(VT),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_Clear_display),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MICROBIT_Clear_display)}},ih={init:function(){this.appendDummyInput("").appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<5;t++){let e=this.appendDummyInput();for(let i=0;i<8;i++)e.appendField(new ut.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.setOutput(!0),this.setColour(VT),this.setTooltip(ut.Msg.MIXLY_MICROBIT_Create_image1)}},nh={init:function(){this.appendDummyInput("").appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<8;t++){let e=this.appendDummyInput();for(let i=0;i<12;i++)e.appendField(new ut.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.setOutput(!0),this.setColour(VT),this.setTooltip(ut.Msg.MIXLY_MICROBIT_Create_image1)}},sh={init:function(){this.appendDummyInput("").appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<8;t++){let e=this.appendDummyInput();for(let i=0;i<16;i++)e.appendField(new ut.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.setOutput(!0,"esp32_image"),this.setColour(VT),this.setTooltip(ut.Msg.MIXLY_MICROBIT_Create_image1)}},oh={init:function(){var t=[["4x5"+ut.Msg.MIXGO_ME_DISPLAY_HORIZONTAL,"'4x5'"],["5x5"+ut.Msg.MIXGO_ME_DISPLAY_HORIZONTAL,"'5x5'"],["5x8"+ut.Msg.MIXGO_ME_DISPLAY_VERTICAL,"'5x8'"]];this.setColour(VT),this.appendDummyInput().appendField(ut.Msg.OLED_SET_FONT).appendField(new ut.FieldDropdown(t),"OP"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},_h={init:function(){this.setColour(VT),this.appendValueInput("data").appendField(ut.Msg.OLED_BITMAP),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.OLED_BITMAP_OR_STRING)}},ph={init:function(){this.setColour(VT),this.appendValueInput("data").appendField(ut.Msg.OLED_BITMAP),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_JS_NUMBER),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.OLED_BITMAP_OR_STRING)}},ah={init:function(){this.setColour(VT),this.appendValueInput("data").setCheck([String,"esp32_image","List","Tuple"]).appendField(ut.Msg.OLED_DRAWSTR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.OLED_BITMAP_OR_STRING)}},uh={init:function(){this.setColour(VT),this.appendValueInput("data").setCheck(String).appendField(ut.Msg.OLED_DRAWSTR),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(ut.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(ut.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendDummyInput("").appendField(ut.Msg.TEXT_CENTER).appendField(new ut.FieldDropdown([[ut.Msg.MICROPYTHON_DISPLAY_YES,"True"],[ut.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"center"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY)}},rh={init:function(){this.setColour(VT),this.appendValueInput("data").setCheck(String).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(ut.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(ut.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendValueInput("time").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_SCROLL_IMAGE_OR_STRING_DELAY)}},lh={init:function(){this.setColour(VT),this.appendValueInput("data").setCheck(String).appendField(ut.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.appendValueInput("size").setCheck(Number).appendField(ut.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("time").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},dh={init:function(){this.setColour(VT),this.appendValueInput("x").setCheck(Number).appendField(ut.Msg.MIXLY_ESP32_JS_MONITOR_SET_BRIGHTNESS).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendValueInput("STAT").setCheck([Number,Boolean]),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL)}},Ih={init:function(){this.jsonInit({colour:VT,args0:[{name:"state",options:[[ut.Msg.MPYTHON_DISPLAY_MODE_1,"1"],[ut.Msg.MPYTHON_DISPLAY_MODE_0,"0"]],type:"field_dropdown"},{name:"shape",options:[[ut.Msg.MPYTHON_DISPLAY_HOLLOW,"rect"],[ut.Msg.MPYTHON_DISPLAY_SOLID,"fill_rect"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"w",type:"input_value"},{name:"h",type:"input_value"}],inputsInline:!0,helpUrl:ut.Msg.mpython_HELPURL,tooltip:ut.Msg.MPYTHON_DISPLAY_SHAPE_RECT_TOOLTIP,message0:ut.Msg.MPYTHON_DISPLAY_SHAPE_RECT_MESSAGE0,nextStatement:null,previousStatement:null})}},Th={init:function(){this.jsonInit({colour:VT,args0:[{name:"state",options:[[ut.Msg.MPYTHON_DISPLAY_MODE_1,"1"],[ut.Msg.MPYTHON_DISPLAY_MODE_0,"0"]],type:"field_dropdown"},{name:"dir_h_v",options:[[ut.Msg.mpython_vertical,"0"],[ut.Msg.mpython_horizontal,"1"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"length",type:"input_value"}],inputsInline:!0,helpUrl:ut.Msg.mpython_HELPURL,tooltip:ut.Msg.MPYTHON_DISPLAY_HVLINE_TOOLTIP,message0:ut.Msg.MPYTHON_DISPLAY_HVLINE_MESSAGE0,nextStatement:null,previousStatement:null})}},hh={init:function(){this.jsonInit({colour:VT,args0:[{name:"state",options:[[ut.Msg.mpython_display_hline_1,"1"],[ut.Msg.mpython_display_hline_0,"0"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x1",type:"input_value"},{name:"y1",type:"input_value"},{name:"x2",type:"input_value"},{name:"y2",type:"input_value"}],inputsInline:!0,helpUrl:ut.Msg.mpython_HELPURL,tooltip:ut.Msg.mpython_display_line_TOOLTIP,message0:ut.Msg.mpython_display_line_MESSAGE0,nextStatement:null,previousStatement:null})}},Mh={init:function(){this.jsonInit({colour:VT,args0:[{type:"field_label",name:"size_image",text:ut.Msg.MIXLY_MICROBIT_Built_in_image1},{name:"path",options:[["Heart","Heart"],["Angry","Angry"],["Bored","Bored"],["Confused","Confused"],["Happy","Happy"],["Paper","Paper"],["Rock","Rock"],["Sad","Sad"],["Scissors","Scissors"],["Silly","Silly"],["Sleep","Sleep"],["Small_heart","Small_heart"],["Small_paper","Small_paper"],["Small_rock","Small_rock"],["Small_scissors","Small_scissors"],["Smile","Smile"],["Surprise","Surprise"],["Wonderful","Wonderful"],["Eyes_Angry","Eyes_Angry"],["Awake","Awake"],["Black_eye","Black_eye"],["Bottom_left","Bottom_left"],["Bottom_right","Bottom_right"],["Crazy_1","Crazy_1"],["Crazy_2","Crazy_2"],["Disappointed","Disappointed"],["Dizzy","Dizzy"],["Down","Down"],["Evil","Evil"],["Hurt","Hurt"],["Knocked_out","Knocked_out"],["Love","Love"],["Middle_left","Middle_left"],["Middle_right","Middle_right"],["Neutral","Neutral"],["Nuclear","Nuclear"],["Pinch_left","Pinch_left"],["Pinch_middle","Pinch_middle"],["Pinch_right","Pinch_right"],["Tear","Tear"],["Tired_left","Tired_left"],["Tired_middle","Tired_middle"],["Tired_right","Tired_right"],["Toxic","Toxic"],["Up","Up"],["Winking","Winking"],["Accept","Accept"],["Backward","Backward"],["Decline","Decline"],["Forward","Forward"],["Left","Left"],["No_go","No_go"],["Question_mark","Question_mark"],["Right","Right"],["Stop_1","Stop_1"],["Stop_2","Stop_2"],["Thumbs_down","Thumbs_down"],["Thumbs_up","Thumbs_up"],["Warning","Warning"],["Bomb","Bomb"],["Boom","Boom"],["Fire","Fire"],["Flowers","Flowers"],["Forest","Forest"],["Lightning","Lightning"],["Light_off","Light_off"],["Light_on","Light_on"],["Night","Night"],["Pirate","Pirate"],["Snow","Snow"],["Target","Target"],["Bar_0","Bar_0"],["Bar_1","Bar_1"],["Bar_2","Bar_2"],["Bar_3","Bar_3"],["Bar_4","Bar_4"],["Dial_0","Dial_0"],["Dial_1","Dial_1"],["Dial_2","Dial_2"],["Dial_3","Dial_3"],["Dial_4","Dial_4"],["Dots_0","Dots_0"],["Dots_1","Dots_1"],["Dots_2","Dots_2"],["Dots_3","Dots_3"],["Hourglass_0","Hourglass_0"],["Hourglass_1","Hourglass_1"],["Hourglass_2","Hourglass_2"],["Timer_0","Timer_0"],["Timer_1","Timer_1"],["Timer_2","Timer_2"],["Timer_3","Timer_3"],["Timer_4","Timer_4"],["Water_level_0","Water_level_0"],["Water_level_1","Water_level_1"],["Water_level_2","Water_level_2"],["Water_level_3","Water_level_3"]],type:"field_dropdown"}],output:"String",helpUrl:"",tooltip:"",message0:"%1 %2"})}},mh={init:function(){this.appendDummyInput("").appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<5;t++){let e=this.appendDummyInput();for(let i=0;i<5;i++)e.appendField(new ut.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.setOutput(!0),this.setColour(VT),this.setTooltip(ut.Msg.MIXLY_MICROBIT_Create_image1)}},Oh={init:function(){this.setColour(VT),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(ut.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS)}},Eh={init:function(){this.setColour(VT),this.appendDummyInput().appendField(ut.Msg.MIXLY_MIXBOT_AMBIENTBRIGHT),this.setInputsInline(!0),this.setOutput(!0,Number)}},Rh={init:function(){this.setColour(VT),this.appendValueInput("x").setCheck(Number).appendField(ut.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS+" 0.0-1.0")}},ch={init:function(){var t=[[ut.Msg.mixpy_PL_PIE_SHADOW_N,"0"],[ut.Msg.CLOCKWISE+"90"+ut.Msg.blockpy_setheading_degree,"1"],[ut.Msg.CLOCKWISE+"180"+ut.Msg.blockpy_setheading_degree,"2"],[ut.Msg.CLOCKWISE+"270"+ut.Msg.blockpy_setheading_degree,"3"]];this.setColour(VT),this.appendDummyInput().appendField(ut.Msg.MIXLY_MIXBOT_SCREEN_ROTATE).appendField(new ut.FieldDropdown(t),"OP"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},gh={init:function(){this.appendDummyInput("").appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<12;t++){let e=this.appendDummyInput();for(let i=0;i<12;i++)e.appendField(new ut.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.setOutput(!0),this.setColour(VT),this.setTooltip(ut.Msg.MIXLY_MICROBIT_Create_image1)}},Ch={init:function(){this.setColour(VT),this.appendValueInput("data").appendField(ut.Msg.OLED_BITMAP),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.OLED_BITMAP_OR_STRING)}},Sh={init:function(){this.setColour(VT),this.appendValueInput("data").appendField(ut.Msg.OLED_BITMAP),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_JS_NUMBER),this.appendValueInput("VAR").appendField(ut.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.OLED_BITMAP_OR_STRING)}},Ah={init:function(){this.setColour(VT),this.appendValueInput("data").setCheck(String).appendField(ut.Msg.OLED_DRAWSTR),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(ut.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(ut.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendDummyInput("").appendField(ut.Msg.TEXT_CENTER).appendField(new ut.FieldDropdown([[ut.Msg.MICROPYTHON_DISPLAY_YES,"True"],[ut.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"center"),this.appendValueInput("VAR").appendField(ut.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY)}},Lh={init:function(){this.setColour(VT),this.appendValueInput("data").setCheck(String).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Nh={init:function(){this.setColour(VT),this.appendValueInput("data").setCheck(String).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(ut.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(ut.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendValueInput("time").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.appendValueInput("VAR").appendField(ut.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_SCROLL_IMAGE_OR_STRING_DELAY)}},Dh={init:function(){this.setColour(VT),this.appendValueInput("data").setCheck(String).appendField(ut.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},fh={init:function(){this.setColour(VT),this.appendValueInput("data").setCheck(String).appendField(ut.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.appendValueInput("size").setCheck(Number).appendField(ut.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("time").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.appendValueInput("VAR").appendField(ut.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Fh={init:function(){this.jsonInit({colour:VT,args0:[{name:"shape",options:[[ut.Msg.MPYTHON_DISPLAY_HOLLOW,"rect"],[ut.Msg.MPYTHON_DISPLAY_SOLID,"fill_rect"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"w",type:"input_value"},{name:"h",type:"input_value"},{name:"VAR",type:"input_value"}],inputsInline:!0,helpUrl:ut.Msg.mpython_HELPURL,tooltip:ut.Msg.MPYTHON_DISPLAY_SHAPE_RECT_TOOLTIP,message0:ut.Msg.ONBOARD_TFT_DISPLAY_SHAPE_RECT_MESSAGE0,nextStatement:null,previousStatement:null})}},Ph={init:function(){this.jsonInit({colour:VT,args0:[{name:"dir_h_v",options:[[ut.Msg.mpython_vertical,"0"],[ut.Msg.mpython_horizontal,"1"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"length",type:"input_value"},{name:"VAR",type:"input_value"}],inputsInline:!0,helpUrl:ut.Msg.mpython_HELPURL,tooltip:ut.Msg.MPYTHON_DISPLAY_HVLINE_TOOLTIP,message0:ut.Msg.ONBOARD_TFT_DISPLAY_HVLINE_MESSAGE0,nextStatement:null,previousStatement:null})}},vh={init:function(){this.jsonInit({colour:VT,args0:[{type:"input_dummy"},{name:"x1",type:"input_value"},{name:"y1",type:"input_value"},{name:"x2",type:"input_value"},{name:"y2",type:"input_value"},{name:"VAR",type:"input_value"}],inputsInline:!0,helpUrl:ut.Msg.mpython_HELPURL,tooltip:ut.Msg.mpython_display_line_TOOLTIP,message0:ut.Msg.mpython_display_line_MESSAGE0,nextStatement:null,previousStatement:null})}},Yh={init:function(){var t=[[ut.Msg.MIXLY_UP,"shift_up"],[ut.Msg.MIXLY_DOWN,"shift_down"],[ut.Msg.MIXLY_LEFT,"shift_left"],[ut.Msg.MIXLY_RIGHT,"shift_right"]];this.setColour(VT),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.appendDummyInput("").appendField(ut.Msg.DISPLAY_IMAGE_LET),this.appendDummyInput("").appendField(ut.Msg.DISPLAY_IMAGE_LET2).appendField(new ut.FieldDropdown(t),"OP"),this.appendValueInput("val").appendField(ut.Msg.DISPLAY_IMAGE_SHIFT).setCheck(Number),this.appendDummyInput("").appendField(ut.Msg.DISPLAY_IMAGE_UNIT);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP"),i=ut.Msg.DISPLAY_IMAGE_LET,n=ut.Msg.DISPLAY_IMAGE_LET2,s=ut.Msg.DISPLAY_IMAGE_LET3;return i+n+{up:ut.Msg.MIXLY_UP,down:ut.Msg.MIXLY_DOWN,left:ut.Msg.MIXLY_LEFT,right:ut.Msg.MIXLY_RIGHT}[t]+s}))}},xh={init:function(){this.setColour(VT),this.appendDummyInput("").appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("x").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendDummyInput().appendField(ut.Msg.HTML_COLOUR),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(ut.Msg.MIXLY_ESP32_JS_MONITOR_BRIGHTNESS)}},bh={init:function(){this.setColour(VT),this.appendValueInput("x").setCheck(Number).appendField(ut.Msg.MIXLY_LCD_SETCOLOR).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendValueInput("VAR").appendField(ut.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL)}},Xh={init:function(){this.setColour(VT),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_Clear_display),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MICROBIT_Clear_display)}},yh={init:function(){this.setColour(VT),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(ut.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS)}},Vh={init:function(){this.setColour(VT),this.appendValueInput("x").setCheck(Number).appendField(ut.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS+" 0.0-1.0")}},Bh={init:function(){this.setColour(VT),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_SCREEN_FILL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Gh={init:function(){this.setColour(VT),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_INIT_CLOCK),this.appendDummyInput().appendField(ut.Msg.MIXLY_CENTER_POS),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(ut.Msg.OLED_CIRCLE_RADIUS),this.appendValueInput("VAR").appendField(ut.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Uh={init:function(){this.setColour(VT),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ut.Msg.GET_RTCTIME),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},wh={init:function(){this.setColour(VT),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ut.Msg.SET_TIME),this.appendValueInput("h").setCheck(Number).appendField(ut.Msg.MIXLY_HOUR),this.appendValueInput("m").setCheck(Number).appendField(ut.Msg.MIXLY_MINUTE),this.appendValueInput("s").setCheck(Number).appendField(ut.Msg.MIXLY_SECOND),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},kh={init:function(){this.setColour(VT),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ut.Msg.DRAW_CLOCK),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Hh={init:function(){this.setColour(VT),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ut.Msg.CLEAR_CLOCK),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_STM32_TFT_BACKGROUND_COLOR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Wh={init:function(){this.jsonInit({colour:VT,args0:[{name:"shape",options:[[ut.Msg.MPYTHON_DISPLAY_HOLLOW,"False"],[ut.Msg.MPYTHON_DISPLAY_SOLID,"True"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"r",type:"input_value"},{name:"VAR",type:"input_value"}],inputsInline:!0,helpUrl:ut.Msg.mpython_HELPURL,message0:ut.Msg.ONBOARD_TFT_DISPLAY_SHAPE_CIRCLE_MESSAGE0,nextStatement:null,previousStatement:null})}},Kh="#777777",Jh={init:function(){this.setColour(Kh),this.appendDummyInput("").appendField("from ").appendField(new ut.FieldTextInput("ESP32"),"path").appendField(" import ").appendField(new ut.FieldTextInput("*"),"module"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Qh={init:function(){this.setColour(Kh),this.appendDummyInput("").appendField("import ").appendField(new ut.FieldTextInput("module"),"module"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},zh={init:function(){this.setColour(Kh),this.appendDummyInput("").appendField(new ut.FieldTextInput("my_function"),"NAME"),this.itemCount_=1,this.arguments_=["x"],this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new ut.icons.MutatorIcon(["factory_create_with_item"],this))},mutationToDom:function(){var t=document.createElement("mutation");t.setAttribute("items",this.itemCount_);for(var e=0;ee?t[e]:'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ut.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},XM={init:function(){this.setColour(fM),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(ut.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},yM={init:function(){this.setColour(fM),this.appendDummyInput().appendField(ut.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},VM={init:function(){this.setColour(fM),this.appendDummyInput().appendField(ut.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},BM={init:function(){this.setColour(fM),this.appendDummyInput().appendField(ut.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").setCheck(String).appendField(ut.Msg.MIXLY_EMQX_SERVER).setAlign(ut.inputs.Align.RIGHT),this.appendValueInput("USERNAME").setCheck(String).appendField(ut.Msg.MIXLY_WIFI_USERNAME).setAlign(ut.inputs.Align.RIGHT),this.appendValueInput("PASSWORD").setCheck(String).appendField(ut.Msg.MIXLY_IOT_PASSWORD).setAlign(ut.inputs.Align.RIGHT),this.appendValueInput("PROJECT").setCheck(String).appendField(ut.Msg.MIXLY_EMQX_PROJECT).setAlign(ut.inputs.Align.RIGHT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},GM={init:function(){this.setColour(fM),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(ut.Msg.MIXLY_EMQX_PUBLISH_NEW).appendField(ut.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MSG").appendField(ut.Msg.HTML_BODY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_IOT_EMQX_PUBLISH_TOOLTIP)}},UM={init:function(){this.setColour(fM),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(ut.Msg.MIXLY_EMQX_SUBSCRIBE+ut.Msg.MIXLY_MICROBIT_MSG).appendField(ut.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("METHOD").appendField(ut.Msg.MIXLY_EMQX_SET_METHOD),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_IOT_EMQX_SUBSCRIBE_TOOLTIP)}},wM={init:function(){this.setColour(fM),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_DISCONNECT_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},kM={init:function(){this.setColour(fM),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(ut.Msg.MIXLY_EMQX_CONNECT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},HM={init:function(){this.setColour(fM),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_CHECK_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},WM={init:function(){this.setColour(fM),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROPYTHON_FORMAT).appendField(ut.Msg.MQTT_Topic),this.setInputsInline(!0),this.setOutput(!0)}},KM={init:function(){this.setColour(fM),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROPYTHON_FORMAT).appendField(ut.Msg.MIXLY_EMQX_PUBLISH_MSG),this.setInputsInline(!0),this.setOutput(!0)}},JM={init:function(){this.setColour(fM),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_ESP32_IOT_MAP_FORMATING),this.setOutput(!0)}},QM={init:function(){this.setColour(fM),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_MICROPYTHON_FORMAT+"(Json)"),this.setOutput(!0)}},zM={init:function(){this.setColour(fM),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(ut.Msg.MIXLY_EMQX_PING),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_IOT_EMQX_PING_TOOLTIP)}},qM={init:function(){this.setColour(fM),this.appendDummyInput().appendField("MixIO").appendField(ut.Msg.MIXLY_GET_NTP),this.appendValueInput("addr").appendField(ut.Msg.blynk_SERVER_ADD),this.setInputsInline(!0),this.setOutput(!0)}},jM={init:function(){this.setColour(fM),this.appendDummyInput().appendField(ut.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").appendField(ut.Msg.MIXLY_EMQX_SERVER).setAlign(ut.inputs.Align.RIGHT),this.appendValueInput("KEY").appendField(ut.Msg.CONTROLS_FOR_INPUT_WITH+ut.Msg.MIXLY_MIXIO_SHARE_KEY).setAlign(ut.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},ZM={init:function(){this.setColour(fM),this.appendDummyInput().appendField(ut.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").appendField(ut.Msg.MIXLY_EMQX_SERVER).setAlign(ut.inputs.Align.RIGHT),this.appendValueInput("KEY").appendField(ut.Msg.CONTROLS_FOR_INPUT_WITH+"Mixly Key").setAlign(ut.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},$M={init:function(){this.VISITOR_ID=rt.Config.BOARD.visitorId.str32.substring(0,8).toUpperCase(),this.setColour(fM),this.appendDummyInput("").appendField(new ut.FieldTextInput(this.visitorId),"VISITOR_ID"),this.setOutput(!0,null)},onchange:function(){const t=this.getFieldValue("VISITOR_ID");this.VISITOR_ID!==t&&this.setFieldValue(this.VISITOR_ID,"VISITOR_ID")}},tm={init:function(){this.setColour(fM),this.appendDummyInput().appendField("MixIO").appendField(ut.Msg.MSG.catEthernet_clinet),this.setOutput(!0),this.setInputsInline(!0)}},em={init:function(){this.setColour(fM),this.appendDummyInput().appendField("HTTP"+ut.Msg.MIXLY_Client),this.appendValueInput("addr").appendField(ut.Msg.DISPLAY_IMAGE_LET2),this.appendDummyInput().appendField(ut.Msg.MIXLY_REQUESTS_GET).appendField(ut.Msg.MIXLY_GET_CURRENT_TIME).appendField(ut.Msg.MIXLY_OPEN_DEBUG).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[ut.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},im={init:function(){this.setColour(fM),this.appendDummyInput().appendField("HTTP"+ut.Msg.MIXLY_Client).appendField(ut.Msg.MIXLY_GET).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_REQUESTS_LEN,"client_len"],[ut.Msg.MIXLY_REQUESTS_GET_LEN,"server_len"],[ut.Msg.MIXLY_REQUESTS_MESSAGE,"text"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},nm={init:function(){this.setColour(fM),this.appendDummyInput().appendField("MQTT"+ut.Msg.MIXLY_Client),this.appendValueInput("addr").appendField(ut.Msg.MIXLY_CONNECTTO),this.appendDummyInput().appendField(ut.Msg.MIXLY_INIT_SUBSCRIBE).appendField(ut.Msg.MQTT_Topic).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_GET_CURRENT_TIME,""]]),"key").appendField(ut.Msg.MIXLY_OPEN_DEBUG).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[ut.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"key2"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},sm={init:function(){this.setColour(fM),this.appendDummyInput().appendField("MQTT"+ut.Msg.MIXLY_Client).appendField(ut.Msg.MIXLY_GET).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_REQUESTS_LEN,"client_len"],[ut.Msg.MIXLY_REQUESTS_GET_LEN,"server_len"],[ut.Msg.MIXLY_REQUESTS_MESSAGE,"time_msg()"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},om=FM,_m=PM,pm=vM,am=YM,um=bM,rm=225,lm={init:function(){this.setColour(rm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_NETWORK_INIT),this.appendDummyInput().appendField(ut.Msg.MIXLY_NETWORK_MODE).appendField(new ut.FieldDropdown([["STA","STA"],["AP","AP"]]),"mode"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_NETWORK_INIT_TOOLTIP)}},dm={init:function(){this.setColour(rm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_NETWORK_WIFI_OPEN,"True"],[ut.Msg.MIXLY_NETWORK_WIFI_CLOSE,"False"]]),"op"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_NETWORK_WIFI_FLAG),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("op"),i=ut.Msg.MIXLY_ESP32_NETWORK_OPEN_TOOLTIP;return{True:ut.Msg.MIXLY_NETWORK_WIFI_OPEN,False:ut.Msg.MIXLY_NETWORK_WIFI_CLOSE}[e]+i}))}},Im={init:function(){this.setColour(rm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_NETWORK_WIFI_IS_ACTIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_NETWORK_WIFI_IS_ACTIVE)}},Tm={init:function(){this.setColour(rm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_NETWORK_WIFI_SCAN),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip((function(){return ut.Msg.MIXLY_ESP32_NETWORK_SCAN_TOOLTIP+{0:"ssid",1:"bssid",2:"channel",3:"RSSI",4:"authmode",5:"hidden",all:ut.Msg.MIXLY_NETWORK_WIFI_SCAN_ATTRIBUTE}.all}))}},hm={init:function(){this.setColour(rm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_ESP32_NETWORK_CONNECT),this.appendValueInput("id").setCheck(String).appendField(ut.Msg.HTML_NAME),this.appendValueInput("password").setCheck(String).appendField(ut.Msg.HTML_PASSWORD),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_NETWORK_CONNECT_TOOLTIP)}},Mm={init:function(){this.setColour(rm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_NETWORK_WIFI_CONNECT),this.appendDummyInput("").appendField(ut.Msg.MIXLY_SYMBOL_QUESTION),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_NETWORK_WIFI_CONNECT_TOOLTIP)}},mm={init:function(){this.setColour(rm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_ESP32_NETWORK_GET_WIFI),this.appendDummyInput("").appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_ESP32_NETWORK_IP,"0"],[ut.Msg.MIXLY_ESP32_NETWORK_MASK,"1"],[ut.Msg.MIXLY_ESP32_NETWORK_GATEWAY,"2"],["DNS","3"]]),"mode"),this.setOutput(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("mode");return ut.Msg.MIXLY_ESP32_NETWORK_GET_WIFI_TOOLTIP+{0:ut.Msg.MIXLY_ESP32_NETWORK_IP,1:ut.Msg.MIXLY_ESP32_NETWORK_MASK,2:ut.Msg.MIXLY_ESP32_NETWORK_GATEWAY,3:"DNS"}[e]}))}},Om={init:function(){this.setColour(rm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_ESP32_NETWORK_STOP_CONNECT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_NETWORK_STOP_TOOLTIP)}},Em={init:function(){this.setColour(rm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_ESP32_NETWORK_GET_WIFI),this.appendDummyInput().appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_NETWORK_WIFI_ESSID,"essid"],[ut.Msg.MIXLY_NETWORK_WIFI_CHANNEL,"channel"]]),"op"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_NETWORK_GET_WIFI_TOOLTIP)}},Rm={init:function(){this.setColour(rm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.LISTS_SET_INDEX_SET),this.appendValueInput("essid").setCheck(String).appendField(ut.Msg.MIXLY_NETWORK_WIFI_ESSID),this.appendValueInput("channel").setCheck(Number).appendField(ut.Msg.MIXLY_NETWORK_WIFI_CHANNEL),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_NETWORK_AP_CONNECT_TOOLTIP)}},cm={init:function(){this.setColour(rm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_ESP32_NETWORK_SERVER1),this.appendDummyInput("").appendField(ut.Msg.MIXLY_ESP32_NETWORK_SERVER2),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_NETWORK_SOCKET_CLOSE_TOOLTIP)}},gm={init:function(){this.setColour(rm),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_INIT).setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_TYPE).appendField(new ut.FieldDropdown([["TCP","TCP"],["UDP","UDP"]]),"mode"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("mode");return ut.Msg.MIXLY_ESP32_NETWORK_SOCKET_INIT_TOOLTIP+{TCP:"TCP",UDP:"UDP"}[e]}))}},Cm={init:function(){this.setColour(rm),this.appendValueInput("VAR").setCheck("var").appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_LET_SOCKET),this.appendValueInput("address").appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_BIND_TO_ADDRESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_NETWORK_SOCKET_BIND_TOOLTIP)}},Sm={init:function(){this.setColour(rm),this.appendValueInput("VAR").setCheck("var").appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_LET_SOCKET),this.appendValueInput("address").appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_CONNECT_TO_ADDRESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_NETWORK_SOCKET_CONNECT_TOOLTIP)}},Am={init:function(){this.setColour(rm),this.appendValueInput("VAR").setCheck("var"),this.appendValueInput("queue").setCheck(Number).appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_LISTEN).appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_QUEUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_NETWORK_SOCKET_LISTEN_TOOLTIP)}},Lm={init:function(){this.setColour(rm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_ACCEPT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_NETWORK_SOCKET_ACCEPT_TOOLTIP)}},Nm={init:function(){this.setColour(rm),this.appendValueInput("VAR").setCheck("var").appendField("TCP"),this.appendValueInput("size").setCheck(Number).appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_RECEIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_NETWORK_SOCKET_RECEIVE_TOOLTIP)}},Dm={init:function(){this.setColour(rm),this.appendValueInput("VAR").setCheck("var").appendField("TCP"),this.appendValueInput("content").appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_NETWORK_SOCKET_SEND_TOOLTIP)}},fm={init:function(){this.setColour(rm),this.appendValueInput("VAR").setCheck("var").appendField("UDP"),this.appendValueInput("size").setCheck(Number).appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_RECEIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_NETWORK_SOCKET_RECEIVE_FROM_TOOLTIP)}},Fm={init:function(){this.setColour(rm),this.appendValueInput("VAR").setCheck("var").appendField("UDP"),this.appendValueInput("content").appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.appendValueInput("address").appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_TO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_NETWORK_SOCKET_SEND_TO_TOOLTIP)}},Pm={init:function(){this.setColour(rm),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_CLOSE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_NETWORK_SOCKET_CLOSE_TOOLTIP)}},vm={init:function(){this.setColour(rm),this.appendValueInput("DOMAIN").appendField(ut.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(ut.Msg.blockpy_REQUESTS_GET).appendField(new ut.FieldTextInput("response"),"VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.blockpy_REQUESTS_GET_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ut.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Ym={init:function(){this.appendValueInput("VAL");var t=[[ut.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE,"status_code"],[ut.Msg.blockpy_REQUESTS_GET_ATTR_TEXT,"text"],[ut.Msg.blockpy_REQUESTS_GET_ATTR_COOKIES,"cookies"],[ut.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT,"content"]];this.setColour(rm),this.appendDummyInput("").appendField(ut.Msg.MIXLY_MICROBIT_JS_GET).appendField(new ut.FieldDropdown(t),"ATTR"),this.setInputsInline(!0),this.setOutput(!0,String);var e=this;this.setTooltip((function(){var t=e.getFieldValue("DIR");return{clear:ut.Msg.MIXLY_TOOLTIP_TURTEL_CLEAR,reset:ut.Msg.MIXLY_TOOLTIP_TURTEL_RESET,home:ut.Msg.MIXLY_TOOLTIP_TURTEL_HOME}[t]}))}},xm={init:function(){this.appendValueInput("VAR").appendField(ut.Msg.DISPLAY_IMAGE_LET2).setCheck(String);this.setColour(rm),this.appendDummyInput("").appendField(ut.Msg.blockpy_CONDUCT).appendField(new ut.FieldDropdown([["post","post"],["put","put"],["delete","delete"],["head","head"],["option","option"]]),"DIR"),this.appendDummyInput("").appendField(ut.Msg.blockpy_REQUESTS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{forward:ut.Msg.MIXLY_TOOLTIP_TURTEL_FORWARD,backward:ut.Msg.MIXLY_TOOLTIP_TURTEL_BACKWARD}[e]}))}},bm={init:function(){this.setColour(rm),this.appendDummyInput("").appendField(ut.Msg.MIXLY_GET_NTP+"(NTP)"),this.appendValueInput("data").appendField(ut.Msg.blynk_SERVER_ADD),this.setOutput(!0,"Tuple"),this.setInputsInline(!0)}},Xm={init:function(){this.setColour(rm),this.appendDummyInput("").appendField(new ut.FieldDropdown([["ntp.aliyun.com","ntp.aliyun.com"],["ntp1.aliyun.com","ntp1.aliyun.com"],["ntp2.aliyun.com","ntp2.aliyun.com"],["ntp3.aliyun.com","ntp3.aliyun.com"],["ntp4.aliyun.com","ntp4.aliyun.com"],["ntp5.aliyun.com","ntp5.aliyun.com"],["ntp6.aliyun.com","ntp6.aliyun.com"],["ntp7.aliyun.com","ntp7.aliyun.com"],["time1.cloud.tencent.com","time1.cloud.tencent.com"],["time2.cloud.tencent.com","time2.cloud.tencent.com"],["time3.cloud.tencent.com","time3.cloud.tencent.com"],["time4.cloud.tencent.com","time4.cloud.tencent.com"],["time5.cloud.tencent.com","time5.cloud.tencent.com"]]),"op"),this.setOutput(!0)}},ym="#A58C5B",Vm={init:function(){this.setColour(ym),this.appendValueInput("PIN",Number).appendField(ut.Msg.MIXLY_BUTTON).appendField(ut.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(ut.Msg.MIXLY_IS_PRESSED),this.appendValueInput("STAT").appendField(ut.Msg.MIXLY_ELECLEVEL),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_SENOR_IS_PRESSED)}},Bm={init:function(){this.setColour(ym),this.appendValueInput("PIN",Number).appendField(ut.Msg.MIXLY_BUTTON).appendField(ut.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(ut.Msg.MIXLY_WAS_PRESSED),this.appendValueInput("STAT").appendField(ut.Msg.MIXLY_ELECLEVEL),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_SENOR_WAS_PRESSED)}},Gm={init:function(){this.setColour(ym),this.appendValueInput("PIN",Number).appendField(ut.Msg.MIXLY_BUTTON).appendField(ut.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET_PRESSES),this.appendValueInput("VAR").setCheck(Number).appendField(ut.Msg.MIXLY_GET_PRESSES_TIME),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(ut.Msg.PROCEDURES_DEFRETURN_RETURN+ut.Msg.MIXLY_BUTTON+ut.Msg.MIXLY_GET_PRESSES)}},Um={init:function(){this.setColour(ym),this.appendValueInput("PIN",Number).appendField(ut.Msg.MIXLY_BUTTON).appendField(ut.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(ut.Msg.MIXLY_MODE).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_RISING,"machine.Pin.IRQ_RISING"],[ut.Msg.MIXLY_FALLING,"machine.Pin.IRQ_FALLING"],[ut.Msg.MIXLY_CHANGE,"(machine.Pin.IRQ_RISING | machine.Pin.IRQ_FALLING)"]]),"mode"),this.appendValueInput("DO").appendField(ut.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.MIXLY_TOOLTIP_INOUT_ATTACHINTERRUPT)}},wm={init:function(){this.setColour(ym),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_shake,"shake"],[ut.Msg.MIXLY_UP,"up"],[ut.Msg.MIXLY_DOWN,"down"],[ut.Msg.MIXLY_LEFT,"left"],[ut.Msg.MIXLY_RIGHT,"right"],[ut.Msg.MIXLY_MICROBIT_face_up,"face up"],[ut.Msg.MIXLY_MICROBIT_face_down,"face down"],[ut.Msg.MIXLY_MICROBIT_freefall,"freefall"],["3g","3g"],["6g","6g"],["8g","8g"]]),"gesture"),this.appendStatementInput("DO").appendField(ut.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("gesture"),i=ut.Msg.MIXLY_MICROBIT_JS_CURRENT,n=ut.Msg.MSG.catSensor,s=ut.Msg.MIXLY_MICROBIT_JS_STATE,o=ut.Msg.MIXLY_MICROBIT_PERFORMANCE;return i+n+s+{shake:ut.Msg.MIXLY_MICROBIT_shake,up:ut.Msg.MIXLY_UP,down:ut.Msg.MIXLY_DOWN,left:ut.Msg.MIXLY_LEFT,right:ut.Msg.MIXLY_RIGHT,"face up":ut.Msg.MIXLY_MICROBIT_face_up,"face down":ut.Msg.MIXLY_MICROBIT_face_down,freefall:ut.Msg.MIXLY_MICROBIT_freefall,"3g":"3g","6g":"6g","8g":"8g"}[e]+o}))}},km={init:function(){this.setColour(ym),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_ADXL345).setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_JS_ACCELERATION).appendField(new ut.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=ut.Msg.MIXLY_MICROBIT_Direction,s=ut.Msg.MIXLY_MICROBIT_JS_ACCELERATION1;return i+{x:"x",y:"y",z:"z","(x,y,z)":ut.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},Hm={init:function(){this.setColour(ym),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_JS_LIGHT_LEVEL),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_SENSOR_LIGHT_LEVEL_TOOLTIP)}},Wm={init:function(){var t=[[ut.Msg.MIXLY_GETTEMPERATUE,"temperature"],[ut.Msg.MIXLY_GETHUMIDITY,"humidity"]];this.setColour(ym),this.appendValueInput("PIN",Number).appendField(new ut.FieldDropdown([["DHT11","DHT11"],["DHT22","DHT22"]]),"TYPE").appendField(ut.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(new ut.FieldDropdown(t),"WHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("WHAT");return{temperature:ut.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_TEM,relative_humidity:ut.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_HUM,tempandhum:ut.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_TEM_HUM}[t]}))}},Km={init:function(){this.setColour(ym),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_EXTERN_LIGHT),this.appendValueInput("PIN",Number).appendField(ut.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_EXTERN_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(ut.Msg.ESP32_SENSOR_NIXGO_LIGHT_TOOLTIP)}},Jm={init:function(){this.setColour(ym),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_EXTERN_SOUND),this.appendValueInput("PIN",Number).appendField(ut.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_EXTERN_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(ut.Msg.ESP32_SENSOR_NIXGO_SOUND_TOOLTIP)}},Qm={init:function(){this.setColour(ym),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new ut.FieldDropdown([[ut.Msg.TEXT_TRIM_LEFT,"left"],[ut.Msg.TEXT_TRIM_RIGHT,"right"]]),"direction").appendField(ut.Msg.MIXLY_ESP32_NEAR),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("direction"),i=ut.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP,n=ut.Msg.MIXLY_ESP32_NEAR;return i+{left:ut.Msg.TEXT_TRIM_LEFT,right:ut.Msg.TEXT_TRIM_RIGHT}[e]+n}))}},zm={init:function(){this.setColour(ym),this.appendValueInput("SUB").appendField("BMP280").setCheck("var"),this.appendDummyInput("").appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_GETTEMPERATUE,"get_BMP_temperature()"],[ut.Msg.MIXLY_GETPRESSURE,"get_BMP_pressure()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{"get_BMP_temperature()":ut.Msg.MIXLY_MICROBIT_SENSOR_BMP_temperature_TOOLTIP,"get_BMP_pressure()":ut.Msg.MIXLY_MICROBIT_SENSOR_BMP_press_TOOLTIP}[e]}))}},qm={init:function(){this.setColour(ym),this.appendValueInput("SUB").appendField("SHT20").setCheck("var"),this.appendDummyInput("").appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_GETTEMPERATUE,"get_SHT_temperature()"],[ut.Msg.MIXLY_GETHUMIDITY,"get_SHT_relative_humidity()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{"get_SHT_temperature()":ut.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,"get_SHT_relative_humidity()":ut.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},jm={init:function(){this.setColour(ym),this.appendValueInput("PIN",Number).appendField("DS18x20 "+ut.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(ut.Msg.MIXLY_GETTEMPERATUE),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(ut.Msg.MIXLY_MICROBIT_SENSOR_DS18X20_TOOLTIP)}},Zm={init:function(){this.setColour(ym),this.appendDummyInput("").appendField("LM35"+ut.Msg.MIXLY_TEMP),this.appendValueInput("PIN",Number).appendField(ut.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(ut.Msg.MIXLY_GETTEMPERATUE),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(ut.Msg.MIXLY_TOOLTIP_LM35)}},$m={init:function(){this.setColour(ym),this.appendValueInput("I2CSUB").appendField(ut.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_SETUP+ut.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new ut.FieldDropdown([["MPU9250","MPU9250"],["BMP280","BMP280"],["SHT20","SHT20"],["ADXL345","ADXL345"],["LTR308","LTR308"],["LTR381RGB","LTR381RGB"],["HP203X","HP203X"],["SHTC3","SHTC3"],["AHT21","AHT21"],["VL53L0X","VL53L0X"],["QMC5883L","QMC5883L"],["MAX30102","MAX30102"],["APDS9960","APDS9960"],["RFID","RFID"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setFieldValue("LTR308","key")}},tO={init:function(){this.setColour(ym),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_MAX30102+" MAX30102"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_ESP32_MAX30102_IR,"[0]"],[ut.Msg.MIXLY_ESP32_MAX30102_RED,"[1]"],[ut.Msg.MIXLY_ESP32_MAX30102_IR+","+ut.Msg.MIXLY_ESP32_MAX30102_RED,""]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},eO={init:function(){this.setColour(ym),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_APDS9960+" APDS9960"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_ESP32_APDS9960_COLOR,"color"],[ut.Msg.MIXLY_ESP32_APDS9960_GESTURE,"gesture"],[ut.Msg.MIXLY_ESP32_APDS9960_APPROACH,"proximity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},iO={init:function(){this.setColour(ym),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_EXTERN_LIGHT+" LTR308"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET_LIGHT_INTENSITY),this.setOutput(!0,Number),this.setInputsInline(!0)}},nO={init:function(){this.setColour(ym),this.appendValueInput("SUB").appendField(ut.Msg.HTML_COLOUR+ut.Msg.MSG.catSensor+" LTR381RGB").setCheck("var"),this.appendDummyInput("").appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_GET+ut.Msg.HTML_COLOUR,"[2]"],[ut.Msg.MIXLY_GET+ut.Msg.MIXLY_IR_STRENGTH,"[1]"],[ut.Msg.MIXLY_GET+ut.Msg.MIXLY_LIGHT_STRENGTH,"[0]"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},sO={init:function(){this.setColour(ym),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_EXTERN_LIGHTUV+" LTR390UV").setCheck("var"),this.appendDummyInput().appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_GET_ENV_LIGHT,"E"],[ut.Msg.MIXLY_GET_ULTRAVIOLET,"U"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},oO={init:function(){this.setColour(ym),this.appendDummyInput().appendField(ut.Msg.MIXLY_LASER_RANGE+" VL53L0X"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET_DISTANCE+"(mm)"),this.setOutput(!0,Number),this.setInputsInline(!0)}},_O={init:function(){this.setColour(ym),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_TEM_HUM+" SHTC3").setCheck("var"),this.appendDummyInput("").appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_GETTEMPERATUE,"temperature"],[ut.Msg.MIXLY_GETHUMIDITY,"humidity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{temperature:ut.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,humidity:ut.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},pO={init:function(){this.setColour(ym),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_TEM_HUM+" AHT21").setCheck("var"),this.appendDummyInput("").appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_GETTEMPERATUE,"temperature"],[ut.Msg.MIXLY_GETHUMIDITY,"humidity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{temperature:ut.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,relative_humidity:ut.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},aO={init:function(){this.setColour(ym),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_Altitude+ut.Msg.MSG.catSensor+" HP203X").setCheck("var"),this.appendDummyInput("").appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_GETPRESSURE,"pressure()"],[ut.Msg.MIXLY_GETTEMPERATUE,"temperature()"],[ut.Msg.MIXLY_GET_ALTITUDE,"altitude()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},uO={init:function(){this.setColour(ym),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_MIXGOPE_FIELD+ut.Msg.MSG.catSensor+" QMC5883L").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_MICROBIT_JS_GET).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"get_bearing()"],[ut.Msg.MIXLY_TEMPERATURE,"get_temp()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},rO={init:function(){this.setColour(ym),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_shake,"shake"],[ut.Msg.MIXLY_UP,"up"],[ut.Msg.MIXLY_DOWN,"down"],[ut.Msg.MIXLY_LEFT,"left"],[ut.Msg.MIXLY_RIGHT,"right"],[ut.Msg.MIXLY_MICROBIT_face_up,"face up"],[ut.Msg.MIXLY_MICROBIT_face_down,"face down"]]),"gesture"),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("gesture"),i=ut.Msg.MIXLY_MICROBIT_JS_CURRENT,n=ut.Msg.MSG.catSensor,s=ut.Msg.MIXLY_MICROBIT_JS_STATE,o=ut.Msg.MIXLY_MICROBIT_PERFORMANCE;return i+n+s+{shake:ut.Msg.MIXLY_MICROBIT_shake,up:ut.Msg.MIXLY_UP,down:ut.Msg.MIXLY_DOWN,left:ut.Msg.MIXLY_LEFT,right:ut.Msg.MIXLY_RIGHT,"face up":ut.Msg.MIXLY_MICROBIT_face_up,"face down":ut.Msg.MIXLY_MICROBIT_face_down}[e]+o}))}},lO={init:function(){this.setColour(ym),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_JS_ACCELERATION).appendField(new ut.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=ut.Msg.MIXLY_MICROBIT_Direction,s=ut.Msg.MIXLY_MICROBIT_JS_ACCELERATION1;return i+{x:"x",y:"y",z:"z","(x,y,z)":ut.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},dO={init:function(){this.setColour(ym),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_JS_GET+ut.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH).appendField(new ut.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=ut.Msg.MIXLY_MICROBIT_Direction,s=ut.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH;return i+{x:"x",y:"y",z:"z","(x,y,z)":ut.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},IO={init:function(){this.setColour(ym),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+ut.Msg.MIXLY_ESP32_SENOR_GYRO).appendField(new ut.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=ut.Msg.MIXLY_MICROBIT_Direction,s=ut.Msg.MIXLY_ESP32_SENOR_GYRO;return i+{x:"x",y:"y",z:"z","(x,y,z)":ut.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},TO={init:function(){this.setColour(ym),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS)}},hO={init:function(){this.setColour(ym),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_GETTEMPERATUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_GETTEMPERATUE)}},MO={init:function(){this.setColour(ym),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_JS_GET_COMPASS).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH,"strength"],[ut.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"heading"]]),"compass"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("compass");return ut.Msg.MIXLY_MICROBIT_JS_GET_COMPASS+{strength:ut.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH,heading:ut.Msg.MIXLY_MICROBIT_JS_BY_ANGLE}[e]}))}},mO={init:function(){this.setColour(ym),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_Reset_COMPASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MICROBIT_Reset_COMPASS)}},OO={init:function(){this.setColour(ym),this.appendValueInput("SPISUB").appendField(ut.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_SETUP+ut.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new ut.FieldDropdown([["RFID","RFID"],["WS-LoRa","Weather"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setFieldValue("RFID","key")}},EO={init:function(){this.setColour(ym),this.appendDummyInput().appendField("RFID"+ut.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(ut.Msg.MIXLY_LIST_INDEX),this.appendDummyInput("").appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_RFID_READ_CARD_UID,"id"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL,"content"],[ut.Msg.MIXLY_ALL,"ALL"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},RO={init:function(){this.setColour(ym),this.appendDummyInput().appendField("RFID"+ut.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_RFID_READ_CARD_UID),this.setOutput(!0,Number),this.setInputsInline(!0)}},cO={init:function(){this.setColour(ym),this.appendDummyInput().appendField("RFID"+ut.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(ut.Msg.MIXLY_LIST_INDEX),this.appendDummyInput("").appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL),this.setOutput(!0,"Tuple"),this.setInputsInline(!0)}},gO={init:function(){this.setColour(ym),this.appendDummyInput().appendField(ut.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(ut.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(ut.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},CO={init:function(){this.setColour(ym),this.appendDummyInput().appendField(ut.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(ut.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(ut.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.appendDummyInput().appendField(ut.Msg.RETURN_SUCCESS_OR_NOT),this.setInputsInline(!0),this.setOutput(!0,Boolean)}},SO={init:function(){this.setColour(ym),this.appendDummyInput().appendField("RFID"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput("").appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_RFID_SCAN_OK,"0"],[ut.Msg.MIXLY_RFID_SCAN_NOTAGERR,"1"],[ut.Msg.MIXLY_RFID_SCAN_ERROR,"2"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},AO={init:function(){this.setColour(ym),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_MICROBIT_JS_GET).appendField(new ut.FieldDropdown([["全部(元组)","data()[0]"],["全部(json)","data()[1]"],["全部(json,附带位置信息)","data()[2]"],["编号","data()[0][0]"],["电量","data()[0][1]"],["风速","data()[0][2]"],["阵风","data()[0][3]"],["风向","data()[0][4]"],["雨量","data()[0][5]"],["温度","data()[0][6]"],["湿度","data()[0][7]"],["光照","data()[0][8]"],["紫外线","data()[0][9]"],["大气压","data()[0][10]"],["信号强度","data()[0][11]"],["信噪比","data()[0][12]"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip("返回气象数据元组 data= (设备id,电池状态,风速m/s,阵风m/s,风向°,雨量mm,温度℃,湿度%,光照Lux,UVI,大气压Pa,信号强度dB,信噪比dB)")}},LO={init:function(){this.setColour(ym),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_SERIAL_AVAILABLE),this.setOutput(!0,Number),this.setInputsInline(!0)}},NO={init:function(){this.setColour(ym),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendValueInput("BASE").appendField("以主题"),this.appendDummyInput("").appendField("串口发送至MixIO"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},DO={init:function(){this.setColour(ym),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.itemCount_=2,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new ut.icons.MutatorIcon(["weather_set_label_item"],this)),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip()},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("weather_set_label_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n>6),i.push(128|63&o)):(2048<=o&&o<=55295||57344<=o&&o<=65535)&&(n+=3,i.push(224|15&o>>12),i.push(128|63&o>>6),i.push(128|63&o))}for(s=0;s>8,255&n].concat(i)}(t,!0),i="",n=0;n=0?"0x700000":["mixgo_zero"].indexOf(n)>=0?"0xE00000":"0x3A0000","32x12 Matrix"==_?(e.definitions_.import_matrix32x12="import matrix32x12",i=s+" = matrix32x12.Matrix("+o+",font_address="+p+")\n"):"16x8 Matrix"==_&&(e.definitions_.import_matrix16x8="import matrix16x8",i=s+" = matrix16x8.Matrix("+o+")\n"),i},VA=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},BA=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",space = "+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+",center = "+this.getFieldValue("center")+")\n"},GA=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},UA=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",delay = "+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},wA=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},kA=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",speed ="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+",space = "+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+")\n"},HA=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".fill(0)\n"+i+".show()\n"},WA=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("OP")+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")\n"},KA=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+"))",e.ORDER_ATOMIC]},JA=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".pixel(int("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+"), int("+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+"), "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"+i+".show()\n"},QA=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".get_brightness()",e.ORDER_ATOMIC]},zA=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".set_brightness("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+")\n"},qA=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("image"),e.ORDER_ATOMIC]},jA=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".map_"+t.getFieldValue("OP")+"("+e.valueToCode(t,"A",e.ORDER_ATOMIC)+","+e.valueToCode(t,"B",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},ZA=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".map_invert("+e.valueToCode(t,"A",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},$A=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC);return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+" = ssd1306.SSD1306_I2C("+e.valueToCode(this,"row",e.ORDER_ATOMIC)+","+e.valueToCode(this,"column",e.ORDER_ATOMIC)+","+i+")\n"},tL=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_str("+(e.valueToCode(this,"Text_line1",e.ORDER_ASSIGNMENT)||"''")+","+(e.valueToCode(this,"Text_line2",e.ORDER_ASSIGNMENT)||"''")+","+(e.valueToCode(this,"Text_line3",e.ORDER_ASSIGNMENT)||"''")+","+(e.valueToCode(this,"Text_line4",e.ORDER_ASSIGNMENT)||"''")+")\n"},eL=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_line("+e.valueToCode(this,"x1",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"y1",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"x2",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"y2",e.ORDER_ATOMIC)+", 1)\n"},iL=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),o=e.valueToCode(this,"width",e.ORDER_ATOMIC),_=e.valueToCode(this,"height",e.ORDER_ATOMIC),p="TRUE"==this.getFieldValue("fill")?"True":"False",a=this.getFieldValue("OP");switch(p){case"True":return i+".show_fill_rect("+n+", "+s+", "+o+", "+_+","+a+")\n";case"False":return i+".show_rect("+n+", "+s+", "+o+", "+_+","+a+")\n"}},nL=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),o=e.valueToCode(this,"length",e.ORDER_ATOMIC);return i+".show_"+this.getFieldValue("direction")+"("+n+", "+s+", "+o+", 1)\n"},sL=function(t,e){return["ON"==this.getFieldValue("ONOFF")?"1":"0",e.ORDER_ATOMIC]},oL=function(t,e){e.definitions_.import_matrix="import matrix";var i=t.getFieldValue("OP");return[e.valueToCode(t,"img",e.ORDER_ATOMIC)+".shift_"+i+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},_L=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return e.definitions_.import_ssd1306="import ssd1306",e.definitions_.import_machine="import machine",i+".show_fill("+this.getFieldValue("key")+")\n"},pL=function(t,e){return["matrix.Image."+this.getFieldValue("ANIMATION"),e.ORDER_ATOMIC]},aL=function(t,e){var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),o=e.valueToCode(this,"r",e.ORDER_ATOMIC),_="TRUE"==this.getFieldValue("fill")?"True":"False",p=this.getFieldValue("OP");switch(_){case"True":return i+".show_fill_circle("+n+", "+s+", "+o+", "+p+")\n";case"False":return i+".show_circle("+n+", "+s+", "+o+", "+p+")\n"}},uL=function(t,e){var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var n=e.valueToCode(this,"x0",e.ORDER_ATOMIC),s=e.valueToCode(this,"y0",e.ORDER_ATOMIC),o=e.valueToCode(this,"x1",e.ORDER_ATOMIC),_=e.valueToCode(this,"y1",e.ORDER_ATOMIC),p=e.valueToCode(this,"x2",e.ORDER_ATOMIC),a=e.valueToCode(this,"y2",e.ORDER_ATOMIC),u="TRUE"==this.getFieldValue("fill")?"True":"False",r=this.getFieldValue("OP");switch(u){case"True":return i+".show_fill_triangle("+n+", "+s+", "+o+", "+_+", "+p+", "+a+", "+r+")\n";case"False":return i+".show_triangle("+n+", "+s+", "+o+", "+_+", "+p+", "+a+", "+r+")\n"}},rL=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_bitmap("+e.valueToCode(this,"START_X",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"START_Y",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"bitmap_name",e.ORDER_ATOMIC)+","+e.valueToCode(this,"WIDTH",e.ORDER_ATOMIC)+","+e.valueToCode(this,"HEIGHT",e.ORDER_ATOMIC)+")\n"},lL=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_pixel("+e.valueToCode(this,"POS_X",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"POS_Y",e.ORDER_ATOMIC)+")\n"},dL=function(t,e){var i,n=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),s=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),o=this.getFieldValue("key");return"TM1650"==o?(e.definitions_.import_tm1650="import tm1650",i=n+" = tm1650."+o+"("+s+")\n"):"TM1637"==o&&(e.definitions_.import_tm1637="import tm1637",i=n+" = tm1637."+o+"("+s+")\n"),i},IL=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+"."+this.getFieldValue("STAT")+"()\n"},TL=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".shownum("+e.valueToCode(this,"VALUE",e.ORDER_ATOMIC)+")\n"},hL=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".showDP("+e.valueToCode(this,"NO",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"},ML=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".intensity("+e.valueToCode(this,"VALUE",e.ORDER_ATOMIC)+")\n"},mL=function(t,e){e.definitions_.import_st7789="import st7789";var i=rt.Boards.getSelectedBoardKey().split(":")[2],n="";n=["mpython","mixgo_pe","mixgo_nova"].indexOf(i)>=0?"0x700000":["mixgo_zero"].indexOf(i)>=0?"0xE00000":"0x3A0000";var s=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),o=e.valueToCode(this,"SPISUB",e.ORDER_ATOMIC),_=e.valueToCode(this,"PINCS",e.ORDER_ATOMIC),p=e.valueToCode(this,"PINDC",e.ORDER_ATOMIC);return s+" = st7789.ST7789("+o+","+e.valueToCode(this,"WIDTH",e.ORDER_ATOMIC)+","+e.valueToCode(this,"HEIGHT",e.ORDER_ATOMIC)+",dc_pin="+p+",cs_pin="+_+",rotation="+this.getFieldValue("rotate")+",font_address="+n+")\n"},OL=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a=i+".image("+n+",x = "+s+",y = "+o+",size = "+_+",color="+p+")\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a=i+".image("+n+",x = "+s+",y = "+o+",size = "+_+",color=0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},EL=function(t,e){var i="0x"+this.getFieldValue("COLOR").slice(1);return["0x"+((16252928&i)>>8|(64512&i)>>5|(255&i)>>3).toString(16),e.ORDER_ATOMIC]},RL=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),u=this.getFieldValue("center");if("0x"==a.slice(0,2))var r=i+".shows("+n+",x = "+s+",y = "+o+",size = "+_+",space = "+p+",center = "+u+",color="+a+")\n";else{const t=a.match(/\d+/g);var l="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");r=i+".shows("+n+",x = "+s+",y = "+o+",size = "+_+",space = "+p+",center = "+u+",color=0x"+((16252928&l)>>8|(64512&l)>>5|(255&l)>>3).toString(16)+")\n"}return r},cL=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==_.slice(0,2))var p=i+".frame("+n+",size = "+s+",delay = "+o+",color="+_+")\n";else{const t=_.match(/\d+/g);var a="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");p=i+".frame("+n+",size = "+s+",delay = "+o+",color=0x"+((16252928&a)>>8|(64512&a)>>5|(255&a)>>3).toString(16)+")\n"}return p},gL=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==a.slice(0,2))var u=i+".scroll("+n+",y = "+s+",size = "+o+",speed ="+_+",space = "+p+",color="+a+")\n";else{const t=a.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u=i+".scroll("+n+",y = "+s+",size = "+o+",speed ="+_+",space = "+p+",color=0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\n"}return u},CL=function(t,e){return e.definitions_.import_st7789="import st7789",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".fill(st7789."+this.getFieldValue("key")+")\n"},SL=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"x1",e.ORDER_ATOMIC),s=e.valueToCode(this,"y1",e.ORDER_ATOMIC),o=e.valueToCode(this,"x2",e.ORDER_ATOMIC),_=e.valueToCode(this,"y2",e.ORDER_ATOMIC),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a=i+".line("+n+", "+s+", "+o+", "+_+", color="+p+")\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a=i+".line("+n+", "+s+", "+o+", "+_+", color=0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},AL=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),s=this.getFieldValue("key"),o=e.valueToCode(this,"ADDR",e.ORDER_ATOMIC);return e.definitions_.import_i2clcd="import i2clcd",i+" = i2clcd.LCD("+n+",lcd_width="+s+",i2c_addr="+o+")\n"},LL=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",column = "+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+",line = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",center = "+this.getFieldValue("center")+")\n"},NL=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".print("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",column = "+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+",line = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",delay="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},DL=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".backlight("+this.getFieldValue("key")+")\n"},fL=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".clear()\n"},FL=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),s=e.valueToCode(this,"ADDR",e.ORDER_ATOMIC),o=rt.Boards.getSelectedBoardKey().split(":")[2],_="";return _=["mpython","mixgo_pe","mixgo_nova"].indexOf(o)>=0?"0x700000":["mixgo_zero"].indexOf(o)>=0?"0xE00000":"0x3A0000",e.definitions_.import_oled128x64="import oled128x64",i+" = oled128x64.OLED("+n+",address="+s+",font_address="+_+")\n"},PL=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".image("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},vL=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".image("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",x = "+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+",y = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",size = "+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+")\n"},YL=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},xL=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",x = "+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+",y = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",size = "+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+",space = "+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+",center = "+this.getFieldValue("center")+")\n"},bL=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},XL=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",size = "+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+",delay = "+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},yL=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},VL=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",y = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",size = "+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+",speed ="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+",space = "+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+")\n"},BL=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".fill(0)\n"+i+".show()\n"},GL=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("OP")+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")\n"},UL=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+"))",e.ORDER_ATOMIC]},wL=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".pixel(int("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+"), int("+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+"), "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"+i+".show()\n"},kL=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),o=e.valueToCode(t,"w",e.ORDER_ATOMIC),_=e.valueToCode(t,"h",e.ORDER_ATOMIC),p=t.getFieldValue("state");return i+"."+t.getFieldValue("shape")+"("+n+", "+s+", "+o+", "+_+", "+p+")\n"+i+".show()\n"},HL=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),o=e.valueToCode(t,"length",e.ORDER_ATOMIC),_=t.getFieldValue("state");return i+"."+("0"==t.getFieldValue("dir_h_v")?"v":"h")+"line("+n+", "+s+", "+o+", "+_+")\n"+i+".show()\n"},WL=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".line("+e.valueToCode(t,"x1",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"y1",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"x2",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"y2",e.ORDER_ATOMIC)+", "+t.getFieldValue("state")+")\n"+i+".show()\n"},KL=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix","onboard_matrix.shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},JL=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),o=this.getFieldValue("center");return"mixgo_zero"==i||"mixgo_nova"==i?(e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft","onboard_tft.shows("+n+",space = "+s+",center = "+o+")\n"):(e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix","onboard_matrix.shows("+n+",space = "+s+",center = "+o+")\n")},QL=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];if("mpython"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var n="onboard_oled.frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";n="onboard_matrix.frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}return n},zL=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix","onboard_matrix.frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",delay = "+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},qL=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];if("mpython"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var n="onboard_oled.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";n="onboard_matrix.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}return n},jL=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix","onboard_matrix.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",speed ="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+",space = "+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+")\n"},ZL=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix",["onboard_matrix."+t.getFieldValue("image"),e.ORDER_ATOMIC]},$L=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix",["onboard_matrix."+t.getFieldValue("image"),e.ORDER_ATOMIC]},tN=function(t,e){var i={"#000000":"0","#ff0000":"1"};function n(t){let e="";if(t.length%2==1&&(t="0"+t),t.length<8){let e=8-t.length;for(let i=1;i<=e;i++)t="0"+t}for(let i=1;i<=t.length;i++)i%2==0&&i!==t.length?e=e+t[i-1]+",0x":e+=t[i-1];return"0x"+e}let s=[];for(let e=0;e<12;e++){let o="",_=0,p=0;for(let n=0;n<32;n++)n<8?p=7-n:n<16?p=23-n:n<24?p=39-n:n<32&&(p=55-n),_+=Number(i[t.getFieldValue(e+"-"+n)])*Math.pow(2,31-p);o+=n(_.toString(16)),s.unshift(o)}let o=[];for(let t=0;t>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},vN=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=this.getFieldValue("center"),u=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==u.slice(0,2))var r="onboard_tft.shows("+n+",x = "+s+",y = "+o+",size = "+_+",space = "+p+",center = "+a+",color="+u+")\n";else{const t=u.match(/\d+/g);var l="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");r="onboard_tft.shows("+n+",x = "+s+",y = "+o+",size = "+_+",space = "+p+",center = "+a+",color=0x"+((16252928&l)>>8|(64512&l)>>5|(255&l)>>3).toString(16)+")\n"}return r},YN=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_tft","onboard_tft.frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",color=0xffff)\n"},xN=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==_.slice(0,2))var p="onboard_tft.frame("+n+",size = "+s+",delay = "+o+",color="+_+")\n";else{const t=_.match(/\d+/g);var a="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");p="onboard_tft.frame("+n+",size = "+s+",delay = "+o+",color=0x"+((16252928&a)>>8|(64512&a)>>5|(255&a)>>3).toString(16)+")\n"}return p},bN=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_tft","onboard_tft.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",color=0xffff)\n"},XN=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==a.slice(0,2))var u="onboard_tft.scroll("+n+",y = "+s+",size = "+o+",speed ="+_+",space = "+p+",color="+a+")\n";else{const t=a.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u="onboard_tft.scroll("+n+",y = "+s+",size = "+o+",speed ="+_+",space = "+p+",color=0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\n"}return u},yN=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),o=e.valueToCode(t,"w",e.ORDER_ATOMIC),_=e.valueToCode(t,"h",e.ORDER_ATOMIC),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),a=t.getFieldValue("shape");if("0x"==p.slice(0,2))var u="onboard_tft."+a+"("+n+", "+s+", "+o+", "+_+", "+p+")\nonboard_tft.show()\n";else{const t=p.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u="onboard_tft."+a+"("+n+", "+s+", "+o+", "+_+", 0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\nonboard_tft.show()\n"}return u},VN=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),o=e.valueToCode(t,"length",e.ORDER_ATOMIC),_=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),p=t.getFieldValue("dir_h_v");if("0x"==_.slice(0,2))var a="onboard_tft."+("0"==p?"v":"h")+"line("+n+", "+s+", "+o+", "+_+")\nonboard_tft.show()\n";else{const t=_.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a="onboard_tft."+("0"==p?"v":"h")+"line("+n+", "+s+", "+o+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\nonboard_tft.show()\n"}return a},BN=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x1",e.ORDER_ATOMIC),s=e.valueToCode(t,"y1",e.ORDER_ATOMIC),o=e.valueToCode(t,"x2",e.ORDER_ATOMIC),_=e.valueToCode(t,"y2",e.ORDER_ATOMIC),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a="onboard_tft.line("+n+", "+s+", "+o+", "+_+", "+p+")\nonboard_tft.show()\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a="onboard_tft.line("+n+", "+s+", "+o+", "+_+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\nonboard_tft.show()\n"}return a},GN=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";return"onboard_tft.fill(0)\nonboard_tft.show()\n"},UN=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft","onboard_tft."+t.getFieldValue("OP")+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")\n"},wN=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft",["hex(onboard_tft.pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+")))",e.ORDER_ATOMIC]},kN=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==o.slice(0,2))var _="onboard_tft.pixel(int("+n+"), int("+s+"), "+o+")\nonboard_tft.show()\n";else{const t=o.match(/\d+/g);var p="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");_="onboard_tft.pixel(int("+n+"), int("+s+"), 0x"+((16252928&p)>>8|(64512&p)>>5|(255&p)>>3).toString(16)+")\nonboard_tft.show()\n"}return _},HN=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";return["onboard_tft.get_brightness()",e.ORDER_ATOMIC]},WN=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft","onboard_tft.set_brightness("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+")\n"},KN=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"VAR",e.ORDER_ASSIGNMENT);if("0x"==n.slice(0,2))var s="onboard_tft.fill("+n+")\nonboard_tft.show()\n";else{const t=n.match(/\d+/g);var o="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");s="onboard_tft.fill(0x"+((16252928&o)>>8|(64512&o)>>5|(255&o)>>3).toString(16)+")\nonboard_tft.show()\n"}return s},JN=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock";var n=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a=_+"=Clock("+n+","+s+","+o+","+p+")\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a=_+"=Clock("+n+","+s+","+o+",0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},QN=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".set_rtctime()\n"},zN=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".set_time("+e.valueToCode(this,"h",e.ORDER_ASSIGNMENT)+","+e.valueToCode(this,"m",e.ORDER_ASSIGNMENT)+","+e.valueToCode(this,"s",e.ORDER_ASSIGNMENT)+")\n"},qN=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".draw_clock()\n"},jN=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock";var n=e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==s.slice(0,2))var o=n+".clear("+s+")\n";else{const t=s.match(/\d+/g);var _="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");o=n+".clear(0x"+((16252928&_)>>8|(64512&_)>>5|(255&_)>>3).toString(16)+")\n"}return o},ZN=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),o=e.valueToCode(t,"r",e.ORDER_ATOMIC),_=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),p=t.getFieldValue("shape");if("0x"==_.slice(0,2))var a="onboard_tft.ellipse("+n+", "+s+", "+o+", "+o+", "+_+","+p+")\nonboard_tft.show()\n";else{const t=_.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a="onboard_tft.ellipse("+n+", "+s+", "+o+", "+o+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+","+p+")\nonboard_tft.show()\n"}return a},$N=function(t,e){var i=this.getFieldValue("path"),n=this.getFieldValue("module");return e.definitions_["import_"+i+"_"+n]="from "+i+" import "+n,""},tD=function(t,e){var i=this.getFieldValue("module");return e.definitions_["import_"+i]="import "+i,""},eD=function(t,e){for(var i=this.getFieldValue("NAME"),n=new Array(this.itemCount_),s=0;s {\n"+e.statementToCode(this,"do")+"})\n"},Hv=function(){return"control.reset()\n"},Wv=function(t,e){return"control.waitMicros("+(e.valueToCode(this,"data",e.ORDER_ATOMIC)||rt.Profile.default.serial)+")\n"},Kv=function(t,e){return"control.raiseEvent("+(e.valueToCode(this,"system_event_bus_source",e.ORDER_ATOMIC)||rt.Profile.default.serial)+", "+(e.valueToCode(this,"system_event_bus_value",e.ORDER_ATOMIC)||rt.Profile.default.serial)+")\n"},Jv=function(t,e){return"control.onEvent("+(e.valueToCode(this,"system_event_bus_source",e.ORDER_ATOMIC)||rt.Profile.default.serial)+", "+(e.valueToCode(this,"system_event_bus_value",e.ORDER_ATOMIC)||rt.Profile.default.serial)+", () => {\n"+e.statementToCode(this,"do")+")\n"},Qv=function(t,e){return["control.eventTimestamp()",e.ORDER_ATOMIC]},zv=function(t,e){return["control.eventValue()",e.ORDER_ATOMIC]},qv=function(t,e){return[this.getFieldValue("key"),e.ORDER_ATOMIC]},jv=function(t,e){return[this.getFieldValue("key"),e.ORDER_ATOMIC]},Zv=function(t,e){return["control.deviceName()",e.ORDER_ATOMIC]},$v=function(t,e){return["control.deviceSerialNumber()",e.ORDER_ATOMIC]},tY=function(t,e){return"panic("+(e.valueToCode(this,"STATUS_CODE",e.ORDER_ATOMIC)||"1000")+")\n"},eY=function(t,e){switch(e.definitions_.import_time="import time",this.getFieldValue("Time")){case"ms":return["time.ticks_ms()",e.ORDER_ATOMIC];case"us":return["time.ticks_us()",e.ORDER_ATOMIC]}},iY=function(){return"while True:\n pass\n"},nY=function(t,e){return e.definitions_.import_mixgo="import mixgo","reset()\n"},sY=function(t,e){return e.definitions_.import_os="import os","os.uname()"},oY=function(t,e){e.definitions_.import_time="import time";var i=e.valueToCode(this,"DELAY_TIME",e.ORDER_ATOMIC)||"1000";switch(this.getFieldValue("Time")){case"s":return"time.sleep("+i+")\n";case"ms":return"time.sleep_ms("+i+")\n";case"us":return"time.sleep_us("+i+")\n"}},_Y=function(t,e){e.definitions_.import_time="import time";var i=e.valueToCode(this,"DELAY_TIME",e.ORDER_ATOMIC)||"1000";switch(this.getFieldValue("Time")){case"s":return"time.sleep("+i+")\n";case"ms":return"time.sleep_ms("+i+")\n";case"us":return"time.sleep_us("+i+")\n"}},pY=function(t,e){return e.definitions_.import_mixgo="import mixgo",(e.valueToCode(this,"VAR",e.ORDER_NONE)||"None")+".init(period = "+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+", mode = Timer."+(e.valueToCode(this,"mode",e.ORDER_NONE)||"None")+", callback = "+(e.valueToCode(this,"callback",e.ORDER_NONE)||"None")+")\n"},aY=function(t,e){return e.definitions_.import_machine="import machine",(e.valueToCode(this,"VAR",e.ORDER_NONE)||"None")+".init(period = "+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+", mode = machine.Timer."+this.getFieldValue("mode")+", callback = "+(e.valueToCode(this,"callback",e.ORDER_NONE)||"None")+")\n"},uY=function(t,e){return e.definitions_.import_time="import time",["time.ticks_diff("+(e.valueToCode(this,"END",e.ORDER_NONE)||"0")+", "+(e.valueToCode(this,"START",e.ORDER_NONE)||"0")+")",e.ORDER_ATOMIC]},rY=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return e.definitions_.import_machine="import machine",i+" = machine.Timer(0)\n"},lY=function(t,e){return e.definitions_.import_machine="import machine","wdt = machine.WDT(timeout= "+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+")\n"},dY=function(t,e){e.definitions_.import_machine="import machine";return"wdt.feed()\n"},IY=function(t,e){e.definitions_.import_machine="import machine";return"machine.reset()\n"},TY=function(t,e){e.definitions_.import_bitbot_onboard_bot51="from bitbot import onboard_bot51";return"onboard_bot51.shutdown()\n"},hY=rY,MY=aY,mY=uY,OY=oY,EY=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api."+this.getFieldValue("mode")+"("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+","+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},RY=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api."+this.getFieldValue("mode")+"("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+","+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+","+e.valueToCode(this,"day",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},cY=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api.weather_hourly("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+","+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+","+e.valueToCode(this,"hour",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},gY={};gY["飞乙"]={description:"MicroPython[ESP32C3 Bitbot]",digital_pin:rt.Profile.generate(["0-11","18-21"]),input_pin:rt.Profile.generate(["0-11","18-21"]),output_pin:rt.Profile.generate(["0-11","18-21"]),pwm_input:rt.Profile.generate(["0-11","18-21"],"pwm","pwm"),analog_input:rt.Profile.generate(["0-5"],"adc","adc"),pwm_output:rt.Profile.generate(["0-11","18-21"],"pwm","pwm"),analog_output:rt.Profile.generate(["0-5"],"adc","adc"),espnow_channel:rt.Profile.generate(["1-13"]),haskylens_model:rt.Profile.generate(["0-4"]),digital:rt.Profile.generate(["0-11","18-21"],"pin","pin"),pwm_pin:rt.Profile.generate(["0-11","18-21"]),pwm:rt.Profile.generate(["0-11","18-21"],"pwm","pwm"),analog_pin:rt.Profile.generate(["0-5"]),analog:rt.Profile.generate(["0-5"],"adc","adc"),button:[["A","button_a"],["B","button_b"]],axis:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"]],exlcdh:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"],["10","10"],["11","11"]],exlcdv:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"],["10","10"],["11","11"]],brightness:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"]],tts_voice:rt.Profile.generate(["0-16"]),tts_builtin_music:rt.Profile.generate(["0-47"]),tts_bgmusic:rt.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["SILLY","onboard_matrix.SILLY"],["FABULOUS","onboard_matrix.FABULOUS"],["SURPRISED","onboard_matrix.SURPRISED"],["ASLEEP","onboard_matrix.ASLEEP"],["ANGRY","onboard_matrix.ANGRY"],["CONFUSED","onboard_matrix.CONFUSED"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"],["LEFT_ARROW","onboard_matrix.LEFT_ARROW"],["RIGHT_ARROW","onboard_matrix.RIGHT_ARROW"],["DRESS","onboard_matrix.DRESS"],["TRANSFORMERS","onboard_matrix.TRANSFORMERS"],["SCISSORS","onboard_matrix.SCISSORS"],["EXIT","onboard_matrix.EXIT"],["TREE","onboard_matrix.TREE"],["PACMAN","onboard_matrix.PACMAN"],["TARGET","onboard_matrix.TARGET"],["TSHIRT","onboard_matrix.TSHIRT"],["ROLLERSKATE","onboard_matrix.ROLLERSKATE"],["DUCK","onboard_matrix.DUCK"],["HOUSE","onboard_matrix.HOUSE"],["TORTOISE","onboard_matrix.TORTOISE"],["BUTTERFLY","onboard_matrix.BUTTERFLY"],["STICKFIGURE","onboard_matrix.STICKFIGURE"],["GHOST","onboard_matrix.GHOST"],["PITCHFORK","onboard_matrix.PITCHFORK"],["MUSIC_QUAVERS","onboard_matrix.MUSIC_QUAVERS"],["MUSIC_QUAVER","onboard_matrix.MUSIC_QUAVER"],["MUSIC_CROTCHET","onboard_matrix.MUSIC_CROTCHET"],["COW","onboard_matrix.COW"],["RABBIT","onboard_matrix.RABBIT"],["SQUARE_SMALL","onboard_matrix.SQUARE_SMALL"],["SQUARE","onboard_matrix.SQUARE"],["DIAMOND_SMALL","onboard_matrix.DIAMOND_SMALL"],["DIAMOND","onboard_matrix.DIAMOND"],["CHESSBOARD","onboard_matrix.CHESSBOARD"],["TRIANGLE_LEFT","onboard_matrix.TRIANGLE_LEFT"],["TRIANGLE","onboard_matrix.TRIANGLE"],["SNAKE","onboard_matrix.SNAKE"],["UMBRELLA","onboard_matrix.UMBRELLA"],["SKULL","onboard_matrix.SKULL"],["GIRAFFE","onboard_matrix.GIRAFFE"],["SWORD","onboard_matrix.SWORD"]],imglist:[["ALL_CLOCKS","onboard_matrix.ALL_CLOCKS"],["ALL_ARROWS","onboard_matrix.ALL_ARROWS"]],playlist:[["DADADADUM","onboard_music.DADADADUM"],["ENTERTAINER","onboard_music.ENTERTAINER"],["PRELUDE","onboard_music.PRELUDE"],["ODE","onboard_music.ODE"],["NYAN","onboard_music.NYAN"],["RINGTONE","onboard_music.RINGTONE"],["FUNK","onboard_music.FUNK"],["BLUES","onboard_music.BLUES"],["BIRTHDAY","onboard_music.BIRTHDAY"],["WEDDING","onboard_music.WEDDING"],["FUNERAL","onboard_music.FUNERAL"],["PUNCHLINE","onboard_music.PUNCHLINE"],["PYTHON","onboard_music.PYTHON"],["BADDY","onboard_music.BADDY"],["CHASE","onboard_music.CHASE"],["BA_DING","onboard_music.BA_DING"],["WAWAWAWAA","onboard_music.WAWAWAWAA"],["JUMP_UP","onboard_music.JUMP_UP"],["JUMP_DOWN","onboard_music.JUMP_DOWN"],["POWER_UP","onboard_music.POWER_UP"],["POWER_DOWN","onboard_music.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],tone_notes:[["NOTE_C3","131"],["NOTE_D3","147"],["NOTE_E3","165"],["NOTE_F3","175"],["NOTE_G3","196"],["NOTE_A3","220"],["NOTE_B3","247"],["NOTE_C4","262"],["NOTE_D4","294"],["NOTE_E4","330"],["NOTE_F4","349"],["NOTE_G4","392"],["NOTE_A4","440"],["NOTE_B4","494"],["NOTE_C5","523"],["NOTE_D5","587"],["NOTE_E5","659"],["NOTE_F5","698"],["NOTE_G5","784"],["NOTE_A5","880"],["NOTE_B5","988"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"],["3","3"]],extern_addr:rt.Profile.generate(["0-1"]),als_num:rt.Profile.generate(["0-3"])},gY["超霸大师"]={description:"MicroPython[ESP32 Mixbot]",digital_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["12","12"],["13","13"],["14","14"],["15","15"],["16","16"],["17","17"],["18","18"],["19","19"],["21","21"],["22","22"],["23","23"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["39","39"]],digital:[["pin0","pin0"],["pin2","pin2"],["pin4","pin4"],["pin5","pin5"],["pin12","pin12"],["pin13","pin13"],["pin14","pin14"],["pin15","pin15"],["pin16","pin16"],["pin17","pin17"],["pin18","pin18"],["pin19","pin19"],["pin21","pin21"],["pin22","pin22"],["pin23","pin23"],["pin25","pin25"],["pin26","pin26"],["pin27","pin27"],["pin32","pin32"],["pin33","pin33"],["pin34","pin34"],["pin35","pin35"],["pin36","pin36"],["pin39","pin39"]],input_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["12","12"],["13","13"],["14","14"],["15","15"],["16","16"],["17","17"],["18","18"],["19","19"],["21","21"],["22","22"],["23","23"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["39","39"]],output_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["12","12"],["13","13"],["14","14"],["15","15"],["16","16"],["17","17"],["18","18"],["19","19"],["21","21"],["22","22"],["23","23"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"]],pwm_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["12","12"],["13","13"],["14","14"],["15","15"],["16","16"],["17","17"],["18","18"],["19","19"],["20","20"],["21","21"],["22","22"],["23","23"],["25","25"],["26","26"],["27","27"],["32","32"]],pwm:[["pwm0","pwm0"],["pwm2","pwm2"],["pwm4","pwm4"],["pwm5","pwm5"],["pwm12","pwm12"],["pwm13","pwm13"],["pwm14","pwm14"],["pwm15","pwm15"],["pwm16","pwm16"],["pwm17","pwm17"],["pwm18","pwm18"],["pwm19","pwm19"],["pwm20","pwm20"],["pwm21","pwm21"],["pwm22","pwm22"],["pwm23","pwm23"],["pwm25","pwm25"],["pwm26","pwm26"],["pwm27","pwm27"],["pwm32","pwm32"]],analog_pin:[["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["37","37"],["38","38"],["39","39"]],analog:[["adc32","adc32"],["adc33","adc33"],["adc34","adc34"],["adc35","adc35"],["adc36","adc36"],["adc37","adc37"],["adc38","adc38"],["adc39","adc39"]],espnow_channel:rt.Profile.generate(["1-13"]),haskylens_model:rt.Profile.generate(["0-4"]),dac_pin:[["25","25"],["26","26"]],dac:[["dac25","dac25"],["dac26","dac26"]],touch:[["tc0","tc0"],["tc2","tc2"],["tc4","tc4"],["tc12","tc12"],["tc13","tc13"],["tc14","tc14"],["tc15","tc15"],["tc27","tc27"],["tc32","tc32"],["tc33","tc33"]],touch_pin:[["0","0"],["2","2"],["4","4"],["12","12"],["13","13"],["14","14"],["15","15"],["27","27"],["32","32"],["33","33"]],button:[["P","button_p"],["A","button_a"],["B","button_b"]],axis:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"]],exlcdh:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"],["10","10"],["11","11"],["12","12"],["13","13"],["14","14"],["15","15"]],exlcdv:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],brightness:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"]],tts_voice:rt.Profile.generate(["0-16"]),tts_builtin_music:rt.Profile.generate(["0-47"]),tts_bgmusic:rt.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["SILLY","onboard_matrix.SILLY"],["FABULOUS","onboard_matrix.FABULOUS"],["SURPRISED","onboard_matrix.SURPRISED"],["ASLEEP","onboard_matrix.ASLEEP"],["ANGRY","onboard_matrix.ANGRY"],["CONFUSED","onboard_matrix.CONFUSED"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"],["LEFT_ARROW","onboard_matrix.LEFT_ARROW"],["RIGHT_ARROW","onboard_matrix.RIGHT_ARROW"],["DRESS","onboard_matrix.DRESS"],["TRANSFORMERS","onboard_matrix.TRANSFORMERS"],["SCISSORS","onboard_matrix.SCISSORS"],["EXIT","onboard_matrix.EXIT"],["TREE","onboard_matrix.TREE"],["PACMAN","onboard_matrix.PACMAN"],["TARGET","onboard_matrix.TARGET"],["TSHIRT","onboard_matrix.TSHIRT"],["ROLLERSKATE","onboard_matrix.ROLLERSKATE"],["DUCK","onboard_matrix.DUCK"],["HOUSE","onboard_matrix.HOUSE"],["TORTOISE","onboard_matrix.TORTOISE"],["BUTTERFLY","onboard_matrix.BUTTERFLY"],["STICKFIGURE","onboard_matrix.STICKFIGURE"],["GHOST","onboard_matrix.GHOST"],["PITCHFORK","onboard_matrix.PITCHFORK"],["MUSIC_QUAVERS","onboard_matrix.MUSIC_QUAVERS"],["MUSIC_QUAVER","onboard_matrix.MUSIC_QUAVER"],["MUSIC_CROTCHET","onboard_matrix.MUSIC_CROTCHET"],["COW","onboard_matrix.COW"],["RABBIT","onboard_matrix.RABBIT"],["SQUARE_SMALL","onboard_matrix.SQUARE_SMALL"],["SQUARE","onboard_matrix.SQUARE"],["DIAMOND_SMALL","onboard_matrix.DIAMOND_SMALL"],["DIAMOND","onboard_matrix.DIAMOND"],["CHESSBOARD","onboard_matrix.CHESSBOARD"],["TRIANGLE_LEFT","onboard_matrix.TRIANGLE_LEFT"],["TRIANGLE","onboard_matrix.TRIANGLE"],["SNAKE","onboard_matrix.SNAKE"],["UMBRELLA","onboard_matrix.UMBRELLA"],["SKULL","onboard_matrix.SKULL"],["GIRAFFE","onboard_matrix.GIRAFFE"],["SWORD","onboard_matrix.SWORD"]],imglist:[["ALL_CLOCKS","onboard_matrix.ALL_CLOCKS"],["ALL_ARROWS","onboard_matrix.ALL_ARROWS"]],playlist:[["DADADADUM","onboard_music.DADADADUM"],["ENTERTAINER","onboard_music.ENTERTAINER"],["PRELUDE","onboard_music.PRELUDE"],["ODE","onboard_music.ODE"],["NYAN","onboard_music.NYAN"],["RINGTONE","onboard_music.RINGTONE"],["FUNK","onboard_music.FUNK"],["BLUES","onboard_music.BLUES"],["BIRTHDAY","onboard_music.BIRTHDAY"],["WEDDING","onboard_music.WEDDING"],["FUNERAL","onboard_music.FUNERAL"],["PUNCHLINE","onboard_music.PUNCHLINE"],["PYTHON","onboard_music.PYTHON"],["BADDY","onboard_music.BADDY"],["CHASE","onboard_music.CHASE"],["BA_DING","onboard_music.BA_DING"],["WAWAWAWAA","onboard_music.WAWAWAWAA"],["JUMP_UP","onboard_music.JUMP_UP"],["JUMP_DOWN","onboard_music.JUMP_DOWN"],["POWER_UP","onboard_music.POWER_UP"],["POWER_DOWN","onboard_music.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],tone_notes:[["NOTE_C3","131"],["NOTE_D3","147"],["NOTE_E3","165"],["NOTE_F3","175"],["NOTE_G3","196"],["NOTE_A3","220"],["NOTE_B3","247"],["NOTE_C4","262"],["NOTE_D4","294"],["NOTE_E4","330"],["NOTE_F4","349"],["NOTE_G4","392"],["NOTE_A4","440"],["NOTE_B4","494"],["NOTE_C5","523"],["NOTE_D5","587"],["NOTE_E5","659"],["NOTE_F5","698"],["NOTE_G5","784"],["NOTE_A5","880"],["NOTE_B5","988"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"],["3","3"]],extern_addr:rt.Profile.generate(["0-3"])},gY["ESP32 Generic"]={description:"MicroPython[ESP32 Generic]",digital_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"],["10","10"],["11","11"],["12","12"],["13","13"],["14","14"],["15","15"],["16","16"],["17","17"],["18","18"],["19","19"],["20","20"],["21","21"],["22","22"],["23","23"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["37","37"],["38","38"],["39","39"]],digital:[["pin0","pin0"],["pin2","pin2"],["pin4","pin4"],["pin5","pin5"],["pin6","pin6"],["pin7","pin7"],["pin8","pin8"],["pin9","pin9"],["pin10","pin10"],["pin11","pin11"],["pin12","pin12"],["pin13","pin13"],["pin14","pin14"],["pin15","pin15"],["pin16","pin16"],["pin17","pin17"],["pin18","pin18"],["pin19","pin19"],["pin20","pin20"],["pin21","pin21"],["pin22","pin22"],["pin23","pin23"],["pin25","pin25"],["pin26","pin26"],["pin27","pin27"],["pin32","pin32"],["pin33","pin33"],["pin34","pin34"],["pin35","pin35"],["pin36","pin36"],["pin37","pin37"],["pin38","pin38"],["pin39","pin39"]],input_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["7","7"],["8","8"],["12","12"],["13","13"],["14","14"],["15","15"],["19","19"],["20","20"],["21","21"],["22","22"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["37","37"],["38","38"],["39","39"]],output_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["7","7"],["8","8"],["12","12"],["13","13"],["14","14"],["15","15"],["19","19"],["20","20"],["21","21"],["22","22"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"]],pwm_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["12","12"],["13","13"],["14","14"],["15","15"],["16","16"],["17","17"],["18","18"],["19","19"],["20","20"],["21","21"],["22","22"],["23","23"],["25","25"],["26","26"],["27","27"],["32","32"]],pwm:[["pwm0","pwm0"],["pwm2","pwm2"],["pwm4","pwm4"],["pwm5","pwm5"],["pwm12","pwm12"],["pwm13","pwm13"],["pwm14","pwm14"],["pwm15","pwm15"],["pwm16","pwm16"],["pwm17","pwm17"],["pwm18","pwm18"],["pwm19","pwm19"],["pwm20","pwm20"],["pwm21","pwm21"],["pwm22","pwm22"],["pwm23","pwm23"],["pwm25","pwm25"],["pwm26","pwm26"],["pwm27","pwm27"],["pwm32","pwm32"]],analog_pin:[["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["37","37"],["38","38"],["39","39"]],analog:[["adc32","adc32"],["adc33","adc33"],["adc34","adc34"],["adc35","adc35"],["adc36","adc36"],["adc37","adc37"],["adc38","adc38"],["adc39","adc39"]],espnow_channel:rt.Profile.generate(["1-13"]),haskylens_model:rt.Profile.generate(["0-4"]),dac_pin:[["25","25"],["26","26"]],dac:[["dac25","dac25"],["dac26","dac26"]],touch:[["tc0","tc0"],["tc2","tc2"],["tc4","tc4"],["tc12","tc12"],["tc13","tc13"],["tc14","tc14"],["tc15","tc15"],["tc27","tc27"],["tc32","tc32"],["tc33","tc33"]],touch_pin:[["0","0"],["2","2"],["4","4"],["12","12"],["13","13"],["14","14"],["15","15"],["27","27"],["32","32"],["33","33"]],button:[["A","button_a"],["B","button_b"]],axis:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"]],exlcdh:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"],["10","10"],["11","11"],["12","12"],["13","13"],["14","14"],["15","15"]],exlcdv:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],brightness:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"]],tts_voice:rt.Profile.generate(["0-16"]),tts_builtin_music:rt.Profile.generate(["0-47"]),tts_bgmusic:rt.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["SILLY","onboard_matrix.SILLY"],["FABULOUS","onboard_matrix.FABULOUS"],["SURPRISED","onboard_matrix.SURPRISED"],["ASLEEP","onboard_matrix.ASLEEP"],["ANGRY","onboard_matrix.ANGRY"],["CONFUSED","onboard_matrix.CONFUSED"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"],["LEFT_ARROW","onboard_matrix.LEFT_ARROW"],["RIGHT_ARROW","onboard_matrix.RIGHT_ARROW"],["DRESS","onboard_matrix.DRESS"],["TRANSFORMERS","onboard_matrix.TRANSFORMERS"],["SCISSORS","onboard_matrix.SCISSORS"],["EXIT","onboard_matrix.EXIT"],["TREE","onboard_matrix.TREE"],["PACMAN","onboard_matrix.PACMAN"],["TARGET","onboard_matrix.TARGET"],["TSHIRT","onboard_matrix.TSHIRT"],["ROLLERSKATE","onboard_matrix.ROLLERSKATE"],["DUCK","onboard_matrix.DUCK"],["HOUSE","onboard_matrix.HOUSE"],["TORTOISE","onboard_matrix.TORTOISE"],["BUTTERFLY","onboard_matrix.BUTTERFLY"],["STICKFIGURE","onboard_matrix.STICKFIGURE"],["GHOST","onboard_matrix.GHOST"],["PITCHFORK","onboard_matrix.PITCHFORK"],["onboard_music_QUAVERS","onboard_matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","onboard_matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","onboard_matrix.onboard_music_CROTCHET"],["COW","onboard_matrix.COW"],["RABBIT","onboard_matrix.RABBIT"],["SQUARE_SMALL","onboard_matrix.SQUARE_SMALL"],["SQUARE","onboard_matrix.SQUARE"],["DIAMOND_SMALL","onboard_matrix.DIAMOND_SMALL"],["DIAMOND","onboard_matrix.DIAMOND"],["CHESSBOARD","onboard_matrix.CHESSBOARD"],["TRIANGLE_LEFT","onboard_matrix.TRIANGLE_LEFT"],["TRIANGLE","onboard_matrix.TRIANGLE"],["SNAKE","onboard_matrix.SNAKE"],["UMBRELLA","onboard_matrix.UMBRELLA"],["SKULL","onboard_matrix.SKULL"],["GIRAFFE","onboard_matrix.GIRAFFE"],["SWORD","onboard_matrix.SWORD"]],builtinimg_extern:[["HEART","matrix32x12.Matrix.HEART"],["HEART_SMALL","matrix32x12.Matrix.HEART_SMALL"],["HAPPY","matrix32x12.Matrix.HAPPY"],["SAD","matrix32x12.Matrix.SAD"],["SMILE","matrix32x12.Matrix.SMILE"],["SILLY","matrix32x12.Matrix.SILLY"],["FABULOUS","matrix32x12.Matrix.FABULOUS"],["SURPRISED","matrix32x12.Matrix.SURPRISED"],["ASLEEP","matrix32x12.Matrix.ASLEEP"],["ANGRY","matrix32x12.Matrix.ANGRY"],["CONFUSED","matrix32x12.Matrix.CONFUSED"],["NO","matrix32x12.Matrix.NO"],["YES","matrix32x12.Matrix.YES"],["LEFT_ARROW","matrix32x12.Matrix.LEFT_ARROW"],["RIGHT_ARROW","matrix32x12.Matrix.RIGHT_ARROW"],["DRESS","matrix32x12.Matrix.DRESS"],["TRANSFORMERS","matrix32x12.Matrix.TRANSFORMERS"],["SCISSORS","matrix32x12.Matrix.SCISSORS"],["EXIT","matrix32x12.Matrix.EXIT"],["TREE","matrix32x12.Matrix.TREE"],["PACMAN","matrix32x12.Matrix.PACMAN"],["TARGET","matrix32x12.Matrix.TARGET"],["TSHIRT","matrix32x12.Matrix.TSHIRT"],["ROLLERSKATE","matrix32x12.Matrix.ROLLERSKATE"],["DUCK","matrix32x12.Matrix.DUCK"],["HOUSE","matrix32x12.Matrix.HOUSE"],["TORTOISE","matrix32x12.Matrix.TORTOISE"],["BUTTERFLY","matrix32x12.Matrix.BUTTERFLY"],["STICKFIGURE","matrix32x12.Matrix.STICKFIGURE"],["GHOST","matrix32x12.Matrix.GHOST"],["PITCHFORK","matrix32x12.Matrix.PITCHFORK"],["onboard_music_QUAVERS","matrix32x12.Matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","matrix32x12.Matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","matrix32x12.Matrix.onboard_music_CROTCHET"],["COW","matrix32x12.Matrix.COW"],["RABBIT","matrix32x12.Matrix.RABBIT"],["SQUARE_SMALL","matrix32x12.Matrix.SQUARE_SMALL"],["SQUARE","matrix32x12.Matrix.SQUARE"],["DIAMOND_SMALL","matrix32x12.Matrix.DIAMOND_SMALL"],["DIAMOND","matrix32x12.Matrix.DIAMOND"],["CHESSBOARD","matrix32x12.Matrix.CHESSBOARD"],["TRIANGLE_LEFT","matrix32x12.Matrix.TRIANGLE_LEFT"],["TRIANGLE","matrix32x12.Matrix.TRIANGLE"],["SNAKE","matrix32x12.Matrix.SNAKE"],["UMBRELLA","matrix32x12.Matrix.UMBRELLA"],["SKULL","matrix32x12.Matrix.SKULL"],["GIRAFFE","matrix32x12.Matrix.GIRAFFE"],["SWORD","matrix32x12.Matrix.SWORD"]],imglist:[["ALL_CLOCKS","onboard_matrix.ALL_CLOCKS"],["ALL_ARROWS","onboard_matrix.ALL_ARROWS"]],playlist:[["DADADADUM","onboard_music.DADADADUM"],["ENTERTAINER","onboard_music.ENTERTAINER"],["PRELUDE","onboard_music.PRELUDE"],["ODE","onboard_music.ODE"],["NYAN","onboard_music.NYAN"],["RINGTONE","onboard_music.RINGTONE"],["FUNK","onboard_music.FUNK"],["BLUES","onboard_music.BLUES"],["BIRTHDAY","onboard_music.BIRTHDAY"],["WEDDING","onboard_music.WEDDING"],["FUNERAL","onboard_music.FUNERAL"],["PUNCHLINE","onboard_music.PUNCHLINE"],["PYTHON","onboard_music.PYTHON"],["BADDY","onboard_music.BADDY"],["CHASE","onboard_music.CHASE"],["BA_DING","onboard_music.BA_DING"],["WAWAWAWAA","onboard_music.WAWAWAWAA"],["JUMP_UP","onboard_music.JUMP_UP"],["JUMP_DOWN","onboard_music.JUMP_DOWN"],["POWER_UP","onboard_music.POWER_UP"],["POWER_DOWN","onboard_music.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],tone_notes:[["NOTE_C3","131"],["NOTE_D3","147"],["NOTE_E3","165"],["NOTE_F3","175"],["NOTE_G3","196"],["NOTE_A3","220"],["NOTE_B3","247"],["NOTE_C4","262"],["NOTE_D4","294"],["NOTE_E4","330"],["NOTE_F4","349"],["NOTE_G4","392"],["NOTE_A4","440"],["NOTE_B4","494"],["NOTE_C5","523"],["NOTE_D5","587"],["NOTE_E5","659"],["NOTE_F5","698"],["NOTE_G5","784"],["NOTE_A5","880"],["NOTE_B5","988"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"],["3","3"]]},gY["机器人大师"]={description:"MicroPython[ESP32 Generic]",digital_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["12","12"],["13","13"],["14","14"],["15","15"],["18","18"],["19","19"],["21","21"],["22","22"],["23","23"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["37","37"],["38","38"],["39","39"]],digital:[["pin0","pin0"],["pin2","pin2"],["pin4","pin4"],["pin5","pin5"],["pin12","pin12"],["pin13","pin13"],["pin14","pin14"],["pin15","pin15"],["pin16","pin16"],["pin17","pin17"],["pin18","pin18"],["pin19","pin19"],["pin20","pin20"],["pin21","pin21"],["pin22","pin22"],["pin23","pin23"],["pin25","pin25"],["pin26","pin26"],["pin27","pin27"],["pin32","pin32"],["pin33","pin33"],["pin34","pin34"],["pin35","pin35"],["pin36","pin36"],["pin37","pin37"],["pin38","pin38"],["pin39","pin39"]],input_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["12","12"],["13","13"],["14","14"],["15","15"],["18","18"],["19","19"],["21","21"],["22","22"],["23","23"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["37","37"],["38","38"],["39","39"]],output_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["12","12"],["13","13"],["14","14"],["15","15"],["18","18"],["19","19"],["21","21"],["22","22"],["23","23"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"]],pwm_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["12","12"],["13","13"],["14","14"],["15","15"],["16","16"],["17","17"],["18","18"],["19","19"],["20","20"],["21","21"],["22","22"],["23","23"],["25","25"],["26","26"],["27","27"],["32","32"]],pwm:[["pwm0","pwm0"],["pwm2","pwm2"],["pwm4","pwm4"],["pwm5","pwm5"],["pwm12","pwm12"],["pwm13","pwm13"],["pwm14","pwm14"],["pwm15","pwm15"],["pwm16","pwm16"],["pwm17","pwm17"],["pwm18","pwm18"],["pwm19","pwm19"],["pwm20","pwm20"],["pwm21","pwm21"],["pwm22","pwm22"],["pwm23","pwm23"],["pwm25","pwm25"],["pwm26","pwm26"],["pwm27","pwm27"],["pwm32","pwm32"]],espnow_channel:rt.Profile.generate(["1-13"]),haskylens_model:rt.Profile.generate(["0-4"]),analog_pin:[["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["37","37"],["38","38"],["39","39"]],analog:[["adc32","adc32"],["adc33","adc33"],["adc34","adc34"],["adc35","adc35"],["adc36","adc36"],["adc37","adc37"],["adc38","adc38"],["adc39","adc39"]],dac_pin:[["25","25"],["26","26"]],dac:[["dac25","dac25"],["dac26","dac26"]],touch:[["tc0","tc0"],["tc2","tc2"],["tc4","tc4"],["tc12","tc12"],["tc13","tc13"],["tc14","tc14"],["tc15","tc15"],["tc27","tc27"],["tc32","tc32"],["tc33","tc33"]],touch_pin:[["0","0"],["2","2"],["4","4"],["12","12"],["13","13"],["14","14"],["15","15"],["27","27"],["32","32"],["33","33"]],button:[["p","button_p"],["cw","button_cw"],["ccw","button_ccw"]],axis:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"]],exlcdh:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"],["10","10"],["11","11"],["12","12"],["13","13"],["14","14"],["15","15"]],exlcdv:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],brightness:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"]],tts_voice:rt.Profile.generate(["0-16"]),tts_builtin_music:rt.Profile.generate(["0-47"]),tts_bgmusic:rt.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["SILLY","onboard_matrix.SILLY"],["FABULOUS","onboard_matrix.FABULOUS"],["SURPRISED","onboard_matrix.SURPRISED"],["ASLEEP","onboard_matrix.ASLEEP"],["ANGRY","onboard_matrix.ANGRY"],["CONFUSED","onboard_matrix.CONFUSED"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"],["LEFT_ARROW","onboard_matrix.LEFT_ARROW"],["RIGHT_ARROW","onboard_matrix.RIGHT_ARROW"],["DRESS","onboard_matrix.DRESS"],["TRANSFORMERS","onboard_matrix.TRANSFORMERS"],["SCISSORS","onboard_matrix.SCISSORS"],["EXIT","onboard_matrix.EXIT"],["TREE","onboard_matrix.TREE"],["PACMAN","onboard_matrix.PACMAN"],["TARGET","onboard_matrix.TARGET"],["TSHIRT","onboard_matrix.TSHIRT"],["ROLLERSKATE","onboard_matrix.ROLLERSKATE"],["DUCK","onboard_matrix.DUCK"],["HOUSE","onboard_matrix.HOUSE"],["TORTOISE","onboard_matrix.TORTOISE"],["BUTTERFLY","onboard_matrix.BUTTERFLY"],["STICKFIGURE","onboard_matrix.STICKFIGURE"],["GHOST","onboard_matrix.GHOST"],["PITCHFORK","onboard_matrix.PITCHFORK"],["onboard_music_QUAVERS","onboard_matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","onboard_matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","onboard_matrix.onboard_music_CROTCHET"],["COW","onboard_matrix.COW"],["RABBIT","onboard_matrix.RABBIT"],["SQUARE_SMALL","onboard_matrix.SQUARE_SMALL"],["SQUARE","onboard_matrix.SQUARE"],["DIAMOND_SMALL","onboard_matrix.DIAMOND_SMALL"],["DIAMOND","onboard_matrix.DIAMOND"],["CHESSBOARD","onboard_matrix.CHESSBOARD"],["TRIANGLE_LEFT","onboard_matrix.TRIANGLE_LEFT"],["TRIANGLE","onboard_matrix.TRIANGLE"],["SNAKE","onboard_matrix.SNAKE"],["UMBRELLA","onboard_matrix.UMBRELLA"],["SKULL","onboard_matrix.SKULL"],["GIRAFFE","onboard_matrix.GIRAFFE"],["SWORD","onboard_matrix.SWORD"]],builtinimg_extern:[["HEART","matrix32x12.Matrix.HEART"],["HEART_SMALL","matrix32x12.Matrix.HEART_SMALL"],["HAPPY","matrix32x12.Matrix.HAPPY"],["SAD","matrix32x12.Matrix.SAD"],["SMILE","matrix32x12.Matrix.SMILE"],["SILLY","matrix32x12.Matrix.SILLY"],["FABULOUS","matrix32x12.Matrix.FABULOUS"],["SURPRISED","matrix32x12.Matrix.SURPRISED"],["ASLEEP","matrix32x12.Matrix.ASLEEP"],["ANGRY","matrix32x12.Matrix.ANGRY"],["CONFUSED","matrix32x12.Matrix.CONFUSED"],["NO","matrix32x12.Matrix.NO"],["YES","matrix32x12.Matrix.YES"],["LEFT_ARROW","matrix32x12.Matrix.LEFT_ARROW"],["RIGHT_ARROW","matrix32x12.Matrix.RIGHT_ARROW"],["DRESS","matrix32x12.Matrix.DRESS"],["TRANSFORMERS","matrix32x12.Matrix.TRANSFORMERS"],["SCISSORS","matrix32x12.Matrix.SCISSORS"],["EXIT","matrix32x12.Matrix.EXIT"],["TREE","matrix32x12.Matrix.TREE"],["PACMAN","matrix32x12.Matrix.PACMAN"],["TARGET","matrix32x12.Matrix.TARGET"],["TSHIRT","matrix32x12.Matrix.TSHIRT"],["ROLLERSKATE","matrix32x12.Matrix.ROLLERSKATE"],["DUCK","matrix32x12.Matrix.DUCK"],["HOUSE","matrix32x12.Matrix.HOUSE"],["TORTOISE","matrix32x12.Matrix.TORTOISE"],["BUTTERFLY","matrix32x12.Matrix.BUTTERFLY"],["STICKFIGURE","matrix32x12.Matrix.STICKFIGURE"],["GHOST","matrix32x12.Matrix.GHOST"],["PITCHFORK","matrix32x12.Matrix.PITCHFORK"],["onboard_music_QUAVERS","matrix32x12.Matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","matrix32x12.Matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","matrix32x12.Matrix.onboard_music_CROTCHET"],["COW","matrix32x12.Matrix.COW"],["RABBIT","matrix32x12.Matrix.RABBIT"],["SQUARE_SMALL","matrix32x12.Matrix.SQUARE_SMALL"],["SQUARE","matrix32x12.Matrix.SQUARE"],["DIAMOND_SMALL","matrix32x12.Matrix.DIAMOND_SMALL"],["DIAMOND","matrix32x12.Matrix.DIAMOND"],["CHESSBOARD","matrix32x12.Matrix.CHESSBOARD"],["TRIANGLE_LEFT","matrix32x12.Matrix.TRIANGLE_LEFT"],["TRIANGLE","matrix32x12.Matrix.TRIANGLE"],["SNAKE","matrix32x12.Matrix.SNAKE"],["UMBRELLA","matrix32x12.Matrix.UMBRELLA"],["SKULL","matrix32x12.Matrix.SKULL"],["GIRAFFE","matrix32x12.Matrix.GIRAFFE"],["SWORD","matrix32x12.Matrix.SWORD"]],imglist:[["ALL_CLOCKS","onboard_matrix.ALL_CLOCKS"],["ALL_ARROWS","onboard_matrix.ALL_ARROWS"]],playlist:[["DADADADUM","onboard_music.DADADADUM"],["ENTERTAINER","onboard_music.ENTERTAINER"],["PRELUDE","onboard_music.PRELUDE"],["ODE","onboard_music.ODE"],["NYAN","onboard_music.NYAN"],["RINGTONE","onboard_music.RINGTONE"],["FUNK","onboard_music.FUNK"],["BLUES","onboard_music.BLUES"],["BIRTHDAY","onboard_music.BIRTHDAY"],["WEDDING","onboard_music.WEDDING"],["FUNERAL","onboard_music.FUNERAL"],["PUNCHLINE","onboard_music.PUNCHLINE"],["PYTHON","onboard_music.PYTHON"],["BADDY","onboard_music.BADDY"],["CHASE","onboard_music.CHASE"],["BA_DING","onboard_music.BA_DING"],["WAWAWAWAA","onboard_music.WAWAWAWAA"],["JUMP_UP","onboard_music.JUMP_UP"],["JUMP_DOWN","onboard_music.JUMP_DOWN"],["POWER_UP","onboard_music.POWER_UP"],["POWER_DOWN","onboard_music.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],tone_notes:[["NOTE_C3","131"],["NOTE_D3","147"],["NOTE_E3","165"],["NOTE_F3","175"],["NOTE_G3","196"],["NOTE_A3","220"],["NOTE_B3","247"],["NOTE_C4","262"],["NOTE_D4","294"],["NOTE_E4","330"],["NOTE_F4","349"],["NOTE_G4","392"],["NOTE_A4","440"],["NOTE_B4","494"],["NOTE_C5","523"],["NOTE_D5","587"],["NOTE_E5","659"],["NOTE_F5","698"],["NOTE_G5","784"],["NOTE_A5","880"],["NOTE_B5","988"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"],["3","3"]]};const CY=gY,SY=230,AY={init:function(){this.setColour(SY),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.digital),"PIN"),this.setOutput(!0)}},LY={init:function(){this.setColour(SY),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.digital_pin),"PIN"),this.setOutput(!0,Number)}},NY={init:function(){this.setColour(SY),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.input_pin),"PIN"),this.setOutput(!0,Number)}},DY={init:function(){this.setColour(SY),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.output_pin),"PIN"),this.setOutput(!0,Number)}},fY={init:function(){this.setColour(SY),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.touch_mpython),"PIN"),this.setOutput(!0,Number)}},FY={init:function(){this.setColour(SY),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.espnow_channel),"PIN"),this.setOutput(!0,Number)}},PY={init:function(){this.setColour(SY),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.haskylens_model),"PIN"),this.setOutput(!0,Number)}},vY={init:function(){this.setColour(SY),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.pwm_input),"PIN"),this.setOutput(!0)}},YY={init:function(){this.setColour(SY),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.analog_input),"PIN"),this.setOutput(!0)}},xY={init:function(){this.setColour(SY),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.pwm_output),"PIN"),this.setOutput(!0)}},bY={init:function(){this.setColour(SY),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.analog_output),"PIN"),this.setOutput(!0)}},XY={init:function(){this.setColour(SY),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.i2c_A_pin),"PIN"),this.setOutput(!0,Number)}},yY={init:function(){this.setColour(SY),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.i2c_B_pin),"PIN"),this.setOutput(!0,Number)}},VY={init:function(){this.setColour(SY),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.spi_A_pin),"PIN"),this.setOutput(!0,Number)}},BY={init:function(){this.setColour(SY),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.spi_B_pin),"PIN"),this.setOutput(!0,Number)}},GY={init:function(){this.setColour(SY),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.spi_C_pin),"PIN"),this.setOutput(!0,Number)}},UY={init:function(){this.setColour(SY),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.spi_D_pin),"PIN"),this.setOutput(!0,Number)}},wY={init:function(){this.setColour(SY),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.analog),"PIN"),this.setOutput(!0)}},kY={init:function(){this.setColour(SY),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.analog_pin),"PIN"),this.setOutput(!0,Number)}},HY={init:function(){this.setColour(SY),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.dac),"PIN"),this.setOutput(!0)}},WY={init:function(){this.setColour(SY),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.dac_pin),"PIN"),this.setOutput(!0,Number)}},KY={init:function(){this.setColour(SY),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.button),"PIN"),this.setOutput(!0,Number)}},JY={init:function(){this.setColour(SY),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.pwm),"PIN"),this.setOutput(!0)}},QY={init:function(){this.setColour(SY),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.pwm_pin),"PIN"),this.setOutput(!0,Number)}},zY={init:function(){this.setColour(SY),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.touch_pin),"PIN"),this.setOutput(!0,Number)}},qY={init:function(){this.setColour(SY),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.touch),"PIN"),this.setOutput(!0)}},jY={init:function(){this.setColour(SY),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.serial_pin),"PIN"),this.setOutput(!0,Number)}},ZY={init:function(){this.setColour(SY),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.builtinimg),"PIN"),this.setOutput(!0,"esp32_image")}},$Y={init:function(){this.setColour(SY),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.builtinimg_extern),"PIN"),this.setOutput(!0,"esp32_image")}},tx={init:function(){this.setColour(SY),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.imglist),"PIN"),this.setOutput(!0)}},ex={init:function(){this.setColour(SY),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.playlist),"PIN"),this.setOutput(!0)}},ix={init:function(){this.setColour(SY),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.playlist_extern),"PIN"),this.setOutput(!0)}},nx={init:function(){this.setColour(SY),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.exlcdh),"PIN"),this.setOutput(!0,Number)}},sx={init:function(){this.setColour(SY),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.exlcdv),"PIN"),this.setOutput(!0,Number)}},ox={init:function(){this.setColour(SY),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.axis),"PIN"),this.setOutput(!0,Number)}},_x={init:function(){this.setColour(SY),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.brightness),"PIN"),this.setOutput(!0,Number)}},px={init:function(){this.setColour(SY),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.tts_voice),"PIN"),this.setOutput(!0,Number)}},ax={init:function(){this.setColour(SY),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.tts_builtin_music),"PIN"),this.setOutput(!0,Number)}},ux={init:function(){this.setColour(SY),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.tts_bgmusic),"PIN"),this.setOutput(!0,Number)}},rx={init:function(){this.setColour(SY),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.tone_notes),"PIN"),this.setOutput(!0,Number)}},lx={init:function(){this.setColour(SY),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.radio_power),"PIN"),this.setOutput(!0,Number)}},dx={init:function(){this.setColour(SY),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.radio_datarate),"PIN"),this.setOutput(!0,Number)}},Ix={init:function(){this.setColour(SY),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.one_more),"PIN"),this.setOutput(!0)}},Tx={init:function(){this.setColour(SY),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.digital_dot),"PIN"),this.setOutput(!0,Number)}},hx=function(t,e){return[this.getFieldValue("PIN"),e.ORDER_ATOMIC]},Mx=hx,mx=hx,Ox=hx,Ex=hx,Rx=hx,cx=hx,gx=hx,Cx=hx,Sx=hx,Ax=hx,Lx=hx,Nx=hx,Dx=hx,fx=hx,Fx=hx,Px=hx,vx=hx,Yx=hx,xx=hx,bx=hx,Xx=hx,yx=hx,Vx=hx,Bx=hx,Gx=hx,Ux=hx,wx=hx,kx=hx,Hx=hx,Wx=hx,Kx=hx,Jx=hx,Qx=hx,zx=hx;Object.assign(ut.Variables,dt),Object.assign(ut.Procedures,yn),ut.Python=Za,ut.generator=Za,rt.Profile.default={},Object.assign(rt.Profile,CY),Object.assign(rt.Profile.default,CY["ESP32 Generic"]),Object.assign(ut.Blocks,e,i,n,s,o,_,p,a,u,r,l,d,I,X,w,U,v,y,k,f,G,B,V,F,D,N,x,Y,b,P,pt),Object.assign(ut.Python.forBlock,T,h,M,m,O,E,R,c,g,C,S,A,L,$,ot,st,z,tt,_t,K,nt,it,et,J,W,H,j,q,Z,Q,at)})(); \ No newline at end of file diff --git a/boards/default/micropython_robot/styles/main.75aef604.css b/boards/default/micropython_robot/styles/main.7e5d3949.css similarity index 100% rename from boards/default/micropython_robot/styles/main.75aef604.css rename to boards/default/micropython_robot/styles/main.7e5d3949.css diff --git a/boards/default/python_mixpy/examples/Mdsk7jAZBjm.mix b/boards/default/python_mixpy/examples/AipImage.mix similarity index 100% rename from boards/default/python_mixpy/examples/Mdsk7jAZBjm.mix rename to boards/default/python_mixpy/examples/AipImage.mix diff --git a/boards/default/python_mixpy/examples/T47hqJc8J_q.mix b/boards/default/python_mixpy/examples/AipNlp.mix similarity index 100% rename from boards/default/python_mixpy/examples/T47hqJc8J_q.mix rename to boards/default/python_mixpy/examples/AipNlp.mix diff --git a/boards/default/python_mixpy/examples/raFYx_jctQl.mix b/boards/default/python_mixpy/examples/AipNlp_simnet.mix similarity index 100% rename from boards/default/python_mixpy/examples/raFYx_jctQl.mix rename to boards/default/python_mixpy/examples/AipNlp_simnet.mix diff --git a/boards/default/python_mixpy/examples/1WIUKv0gjMo.mix b/boards/default/python_mixpy/examples/AipOcr.mix similarity index 100% rename from boards/default/python_mixpy/examples/1WIUKv0gjMo.mix rename to boards/default/python_mixpy/examples/AipOcr.mix diff --git a/boards/default/python_mixpy/examples/10cJbNokP4k.mix b/boards/default/python_mixpy/examples/AipSpeech.mix similarity index 100% rename from boards/default/python_mixpy/examples/10cJbNokP4k.mix rename to boards/default/python_mixpy/examples/AipSpeech.mix diff --git a/boards/default/python_mixpy/examples/YVEdC03EKZf.mix b/boards/default/python_mixpy/examples/guoqi.mix similarity index 100% rename from boards/default/python_mixpy/examples/YVEdC03EKZf.mix rename to boards/default/python_mixpy/examples/guoqi.mix diff --git a/boards/default/python_mixpy/examples/map.json b/boards/default/python_mixpy/examples/map.json index e0fb166c..ca86fc16 100644 --- a/boards/default/python_mixpy/examples/map.json +++ b/boards/default/python_mixpy/examples/map.json @@ -1,182 +1,182 @@ { - "xLXJkGIjZG": { - "-CXLJ1YmeB.mix": { + "AipImage.mix": { + "__file__": true, + "__name__": "AipImage.mix" + }, + "AipNlp.mix": { + "__file__": true, + "__name__": "AipNlp.mix" + }, + "AipNlp_simnet.mix": { + "__file__": true, + "__name__": "AipNlp_simnet.mix" + }, + "AipOcr.mix": { + "__file__": true, + "__name__": "AipOcr.mix" + }, + "AipSpeech.mix": { + "__file__": true, + "__name__": "AipSpeech.mix" + }, + "guoqi.mix": { + "__file__": true, + "__name__": "guoqi.mix" + }, + "sin.mix": { + "__file__": true, + "__name__": "sin.mix" + }, + "人工智能mix": { + "02语音合成-1.mix": { "__file__": true, - "__name__": "e1FvHKK6mm0-.mix" + "__name__": "02语音合成-1.mix" }, - "IZkqRawoFx.mix": { + "03语音识别-1.mix": { "__file__": true, - "__name__": "H8r8zTxWO-G9.mix" + "__name__": "03语音识别-1.mix" }, - "E0fWmiGKFP.mix": { + "03语音识别-2.mix": { "__file__": true, - "__name__": "Hxk5CmXVoOI5.mix" + "__name__": "03语音识别-2.mix" }, - "w4h80h8f52.mix": { + "04图片识别-1.mix": { "__file__": true, - "__name__": "KW6-9siSeahy.mix" + "__name__": "04图片识别-1.mix" }, - "7ylel8SmF2.mix": { + "04图片识别-2.mix": { "__file__": true, - "__name__": "msy6yoOup7Cl.mix" + "__name__": "04图片识别-2.mix" }, - "x2ZHUuMgtZ.mix": { + "05人脸识别-1.mix": { "__file__": true, - "__name__": "ohM1sXOs5ucR.mix" + "__name__": "05人脸识别-1.mix" }, - "OwwRhSjA-G.mix": { + "05人脸识别-2.mix": { "__file__": true, - "__name__": "OTEsQyYB3y3V.mix" + "__name__": "05人脸识别-2.mix" }, - "Phfo2m0HoF.mix": { + "06文字识别-1.mix": { "__file__": true, - "__name__": "pf-5Gn5ZjW5T.mix" + "__name__": "06文字识别-1.mix" }, - "OdwPbsdVM5.mix": { + "06文字识别-2.mix": { "__file__": true, - "__name__": "qpFALGBRhJ7V.mix" + "__name__": "06文字识别-2.mix" }, - "TfX4Y1crsX.mix": { + "07拓展发现-1.mix": { "__file__": true, - "__name__": "RU8UP8tLmYZK.mix" + "__name__": "07拓展发现-1.mix" }, - "kQp-cpQToz.mix": { + "07拓展发现-2.mix": { "__file__": true, - "__name__": "r_McN2nAUYoA.mix" + "__name__": "07拓展发现-2.mix" }, - "bIBO6zZeHs.mix": { + "08文本纠错-1.mix": { "__file__": true, - "__name__": "sbR3lOLZSrGF.mix" + "__name__": "08文本纠错-1.mix" }, - "SgfW8m_m9q.mix": { + "08文本纠错-2.mix": { "__file__": true, - "__name__": "WXFcFGev8saM.mix" + "__name__": "08文本纠错-2.mix" }, - "0iYWy_skv7.mix": { + "09词法分析-2.mix": { "__file__": true, - "__name__": "XlLl38Xkcey2.mix" + "__name__": "09词法分析-2.mix" }, - "rK5SW3TcCes.mix": { + "09词法分析.mix": { "__file__": true, - "__name__": "YbfEiXYA1L75.mix" + "__name__": "09词法分析.mix" }, "__file__": false, - "__name__": "b3nOKxYrNCQR" + "__name__": "人工智能mix" }, - "raFYx_jctQl.mix": { - "__file__": true, - "__name__": "dgDnWh-rc3YJ.mix" - }, - "Mdsk7jAZBjm.mix": { - "__file__": true, - "__name__": "fiJiUJ6C0pOK.mix" - }, - "vcTp80aR9Fd.mix": { - "__file__": true, - "__name__": "p4vLzL6gw8VI.mix" - }, - "YVEdC03EKZf.mix": { - "__file__": true, - "__name__": "PDtIpORYNRbi.mix" - }, - "r-kPuWQ_WC_": { - "talrIyHDJCK": { - "Mp6asHUh3KW.mix": { + "海龟画图": { + "mix": { + "海龟画图01小房子_01小房子.mix": { "__file__": true, - "__name__": "21Qt30U5PUOD.mix" + "__name__": "海龟画图01小房子_01小房子.mix" }, - "6VzdHQea_8p.mix": { + "海龟画图02小汽车_01正五边形.mix": { "__file__": true, - "__name__": "65jBiwqymjWV.mix" + "__name__": "海龟画图02小汽车_01正五边形.mix" }, - "acPfdoPv1Pf.mix": { + "海龟画图02小汽车_02小汽车.mix": { "__file__": true, - "__name__": "6I_yXcbZG2tm.mix" + "__name__": "海龟画图02小汽车_02小汽车.mix" }, - "q1aiOaiEdFr.mix": { + "海龟画图03小橙子_01完整橙子.mix": { "__file__": true, - "__name__": "6q9SmcpHGg6E.mix" + "__name__": "海龟画图03小橙子_01完整橙子.mix" }, - "mz26Cgs-WJJ.mix": { + "海龟画图03小橙子_02切开的橙子.mix": { "__file__": true, - "__name__": "7LqrIE3Y5WgL.mix" + "__name__": "海龟画图03小橙子_02切开的橙子.mix" }, - "yEIwo21tqgZ.mix": { + "海龟画图04盛开的向日葵_01太阳公公.mix": { "__file__": true, - "__name__": "dX5jBS6t5FX6.mix" + "__name__": "海龟画图04盛开的向日葵_01太阳公公.mix" }, - "_JngRO1aXNP.mix": { + "海龟画图04盛开的向日葵_02向日葵.mix": { "__file__": true, - "__name__": "g0B5xQBFnrDs.mix" + "__name__": "海龟画图04盛开的向日葵_02向日葵.mix" }, - "JBVOPqmi2ia.mix": { + "海龟画图05炫彩螺旋线_01螺旋四边形.mix": { "__file__": true, - "__name__": "IV88rhcSwRE3.mix" + "__name__": "海龟画图05炫彩螺旋线_01螺旋四边形.mix" }, - "h1RgHVv2rzZ.mix": { + "海龟画图05炫彩螺旋线_02彩色螺旋线.mix": { "__file__": true, - "__name__": "jRsUiHZMeXL8.mix" + "__name__": "海龟画图05炫彩螺旋线_02彩色螺旋线.mix" }, - "6Dau8G9MxqN.mix": { + "海龟画图06米思齐Logo_01米思齐Logo.mix": { "__file__": true, - "__name__": "JuhETL_YLg2O.mix" + "__name__": "海龟画图06米思齐Logo_01米思齐Logo.mix" }, - "4R1mW9U0LQD.mix": { + "海龟画图07闪烁星星_01正五角星.mix": { "__file__": true, - "__name__": "LgkIqeKDAf95.mix" + "__name__": "海龟画图07闪烁星星_01正五角星.mix" }, - "-wiw-clT4NO.mix": { + "海龟画图07闪烁星星_02正n角星.mix": { "__file__": true, - "__name__": "Lp_JO0YCGE12.mix" + "__name__": "海龟画图07闪烁星星_02正n角星.mix" }, - "7DemSDbXdjz.mix": { + "海龟画图08猜一猜_01猜性别.mix": { "__file__": true, - "__name__": "OCu-28eKqM_U.mix" + "__name__": "海龟画图08猜一猜_01猜性别.mix" }, - "a6UD2CPrWIq.mix": { + "海龟画图08猜一猜_02猜年龄.mix": { "__file__": true, - "__name__": "p3PlIDdC_vt-.mix" + "__name__": "海龟画图08猜一猜_02猜年龄.mix" }, - "tlKOdEef5YX.mix": { + "海龟画图09大树的年龄_01年轮.mix": { "__file__": true, - "__name__": "ppdrET_SATod.mix" + "__name__": "海龟画图09大树的年龄_01年轮.mix" }, - "HuWZOhuChBE.mix": { + "海龟画图09大树的年龄_02树年龄.mix": { "__file__": true, - "__name__": "QW4Eixpa-aO7.mix" + "__name__": "海龟画图09大树的年龄_02树年龄.mix" }, - "rRP-DIv90Br.mix": { + "海龟画图10公共汽车_01公共汽车.mix": { "__file__": true, - "__name__": "sNirHvTXJnVU.mix" + "__name__": "海龟画图10公共汽车_01公共汽车.mix" }, - "j27npVInBgM.mix": { + "海龟画图11美丽星空_01星空.mix": { "__file__": true, - "__name__": "U-KAaEwp2JlT.mix" + "__name__": "海龟画图11美丽星空_01星空.mix" }, - "D8sktkU4L1b.mix": { + "海龟画图12斐波那契数列_01输出斐波那契额数列.mix": { "__file__": true, - "__name__": "XaHlKkrKbrI4.mix" + "__name__": "海龟画图12斐波那契数列_01输出斐波那契额数列.mix" }, - "_n_2ndQOFpc.mix": { + "海龟画图12斐波那契数列_02斐波那契额螺旋线.mix": { "__file__": true, - "__name__": "YZ-tdcZokU-e.mix" + "__name__": "海龟画图12斐波那契数列_02斐波那契额螺旋线.mix" }, "__file__": false, - "__name__": "hct-tkCqiq01" + "__name__": "mix" }, "__file__": false, - "__name__": "qH8U_24k3XYf" - }, - "T47hqJc8J_q.mix": { - "__file__": true, - "__name__": "uE7vH_oLl359.mix" - }, - "10cJbNokP4k.mix": { - "__file__": true, - "__name__": "wQjnjbFpJi-D.mix" - }, - "1WIUKv0gjMo.mix": { - "__file__": true, - "__name__": "YpbMgkp75-0w.mix" + "__name__": "海龟画图" } } diff --git a/boards/default/python_mixpy/examples/vcTp80aR9Fd.mix b/boards/default/python_mixpy/examples/sin.mix similarity index 100% rename from boards/default/python_mixpy/examples/vcTp80aR9Fd.mix rename to boards/default/python_mixpy/examples/sin.mix diff --git a/boards/default/python_mixpy/examples/pu5oovP6zx4/02语音合成-1.py b/boards/default/python_mixpy/examples/人工智能Py/02语音合成-1.py similarity index 100% rename from boards/default/python_mixpy/examples/pu5oovP6zx4/02语音合成-1.py rename to boards/default/python_mixpy/examples/人工智能Py/02语音合成-1.py diff --git a/boards/default/python_mixpy/examples/pu5oovP6zx4/03语音识别-1.py b/boards/default/python_mixpy/examples/人工智能Py/03语音识别-1.py similarity index 100% rename from boards/default/python_mixpy/examples/pu5oovP6zx4/03语音识别-1.py rename to boards/default/python_mixpy/examples/人工智能Py/03语音识别-1.py diff --git a/boards/default/python_mixpy/examples/pu5oovP6zx4/03语音识别-2.py b/boards/default/python_mixpy/examples/人工智能Py/03语音识别-2.py similarity index 100% rename from boards/default/python_mixpy/examples/pu5oovP6zx4/03语音识别-2.py rename to boards/default/python_mixpy/examples/人工智能Py/03语音识别-2.py diff --git a/boards/default/python_mixpy/examples/pu5oovP6zx4/04图片识别-1.py b/boards/default/python_mixpy/examples/人工智能Py/04图片识别-1.py similarity index 100% rename from boards/default/python_mixpy/examples/pu5oovP6zx4/04图片识别-1.py rename to boards/default/python_mixpy/examples/人工智能Py/04图片识别-1.py diff --git a/boards/default/python_mixpy/examples/pu5oovP6zx4/04图片识别-2.py b/boards/default/python_mixpy/examples/人工智能Py/04图片识别-2.py similarity index 100% rename from boards/default/python_mixpy/examples/pu5oovP6zx4/04图片识别-2.py rename to boards/default/python_mixpy/examples/人工智能Py/04图片识别-2.py diff --git a/boards/default/python_mixpy/examples/pu5oovP6zx4/05人脸识别-1.py b/boards/default/python_mixpy/examples/人工智能Py/05人脸识别-1.py similarity index 100% rename from boards/default/python_mixpy/examples/pu5oovP6zx4/05人脸识别-1.py rename to boards/default/python_mixpy/examples/人工智能Py/05人脸识别-1.py diff --git a/boards/default/python_mixpy/examples/pu5oovP6zx4/05人脸识别-2.py b/boards/default/python_mixpy/examples/人工智能Py/05人脸识别-2.py similarity index 100% rename from boards/default/python_mixpy/examples/pu5oovP6zx4/05人脸识别-2.py rename to boards/default/python_mixpy/examples/人工智能Py/05人脸识别-2.py diff --git a/boards/default/python_mixpy/examples/pu5oovP6zx4/06文字识别-1.py b/boards/default/python_mixpy/examples/人工智能Py/06文字识别-1.py similarity index 100% rename from boards/default/python_mixpy/examples/pu5oovP6zx4/06文字识别-1.py rename to boards/default/python_mixpy/examples/人工智能Py/06文字识别-1.py diff --git a/boards/default/python_mixpy/examples/pu5oovP6zx4/06文字识别-2.py b/boards/default/python_mixpy/examples/人工智能Py/06文字识别-2.py similarity index 100% rename from boards/default/python_mixpy/examples/pu5oovP6zx4/06文字识别-2.py rename to boards/default/python_mixpy/examples/人工智能Py/06文字识别-2.py diff --git a/boards/default/python_mixpy/examples/pu5oovP6zx4/07拓展发现-1.py b/boards/default/python_mixpy/examples/人工智能Py/07拓展发现-1.py similarity index 100% rename from boards/default/python_mixpy/examples/pu5oovP6zx4/07拓展发现-1.py rename to boards/default/python_mixpy/examples/人工智能Py/07拓展发现-1.py diff --git a/boards/default/python_mixpy/examples/pu5oovP6zx4/07拓展发现-2.py b/boards/default/python_mixpy/examples/人工智能Py/07拓展发现-2.py similarity index 100% rename from boards/default/python_mixpy/examples/pu5oovP6zx4/07拓展发现-2.py rename to boards/default/python_mixpy/examples/人工智能Py/07拓展发现-2.py diff --git a/boards/default/python_mixpy/examples/pu5oovP6zx4/08文本纠错-1.py b/boards/default/python_mixpy/examples/人工智能Py/08文本纠错-1.py similarity index 100% rename from boards/default/python_mixpy/examples/pu5oovP6zx4/08文本纠错-1.py rename to boards/default/python_mixpy/examples/人工智能Py/08文本纠错-1.py diff --git a/boards/default/python_mixpy/examples/pu5oovP6zx4/08文本纠错-2.py b/boards/default/python_mixpy/examples/人工智能Py/08文本纠错-2.py similarity index 100% rename from boards/default/python_mixpy/examples/pu5oovP6zx4/08文本纠错-2.py rename to boards/default/python_mixpy/examples/人工智能Py/08文本纠错-2.py diff --git a/boards/default/python_mixpy/examples/pu5oovP6zx4/09词法分析-1.py b/boards/default/python_mixpy/examples/人工智能Py/09词法分析-1.py similarity index 100% rename from boards/default/python_mixpy/examples/pu5oovP6zx4/09词法分析-1.py rename to boards/default/python_mixpy/examples/人工智能Py/09词法分析-1.py diff --git a/boards/default/python_mixpy/examples/pu5oovP6zx4/09词法分析-2.py b/boards/default/python_mixpy/examples/人工智能Py/09词法分析-2.py similarity index 100% rename from boards/default/python_mixpy/examples/pu5oovP6zx4/09词法分析-2.py rename to boards/default/python_mixpy/examples/人工智能Py/09词法分析-2.py diff --git a/boards/default/python_mixpy/examples/xLXJkGIjZG/kQp-cpQToz.mix b/boards/default/python_mixpy/examples/人工智能mix/02语音合成-1.mix similarity index 100% rename from boards/default/python_mixpy/examples/xLXJkGIjZG/kQp-cpQToz.mix rename to boards/default/python_mixpy/examples/人工智能mix/02语音合成-1.mix diff --git a/boards/default/python_mixpy/examples/xLXJkGIjZG/OwwRhSjA-G.mix b/boards/default/python_mixpy/examples/人工智能mix/03语音识别-1.mix similarity index 100% rename from boards/default/python_mixpy/examples/xLXJkGIjZG/OwwRhSjA-G.mix rename to boards/default/python_mixpy/examples/人工智能mix/03语音识别-1.mix diff --git a/boards/default/python_mixpy/examples/xLXJkGIjZG/IZkqRawoFx.mix b/boards/default/python_mixpy/examples/人工智能mix/03语音识别-2.mix similarity index 100% rename from boards/default/python_mixpy/examples/xLXJkGIjZG/IZkqRawoFx.mix rename to boards/default/python_mixpy/examples/人工智能mix/03语音识别-2.mix diff --git a/boards/default/python_mixpy/examples/xLXJkGIjZG/7ylel8SmF2.mix b/boards/default/python_mixpy/examples/人工智能mix/04图片识别-1.mix similarity index 100% rename from boards/default/python_mixpy/examples/xLXJkGIjZG/7ylel8SmF2.mix rename to boards/default/python_mixpy/examples/人工智能mix/04图片识别-1.mix diff --git a/boards/default/python_mixpy/examples/xLXJkGIjZG/w4h80h8f52.mix b/boards/default/python_mixpy/examples/人工智能mix/04图片识别-2.mix similarity index 100% rename from boards/default/python_mixpy/examples/xLXJkGIjZG/w4h80h8f52.mix rename to boards/default/python_mixpy/examples/人工智能mix/04图片识别-2.mix diff --git a/boards/default/python_mixpy/examples/xLXJkGIjZG/0iYWy_skv7.mix b/boards/default/python_mixpy/examples/人工智能mix/05人脸识别-1.mix similarity index 100% rename from boards/default/python_mixpy/examples/xLXJkGIjZG/0iYWy_skv7.mix rename to boards/default/python_mixpy/examples/人工智能mix/05人脸识别-1.mix diff --git a/boards/default/python_mixpy/examples/xLXJkGIjZG/TfX4Y1crsX.mix b/boards/default/python_mixpy/examples/人工智能mix/05人脸识别-2.mix similarity index 100% rename from boards/default/python_mixpy/examples/xLXJkGIjZG/TfX4Y1crsX.mix rename to boards/default/python_mixpy/examples/人工智能mix/05人脸识别-2.mix diff --git a/boards/default/python_mixpy/examples/xLXJkGIjZG/E0fWmiGKFP.mix b/boards/default/python_mixpy/examples/人工智能mix/06文字识别-1.mix similarity index 100% rename from boards/default/python_mixpy/examples/xLXJkGIjZG/E0fWmiGKFP.mix rename to boards/default/python_mixpy/examples/人工智能mix/06文字识别-1.mix diff --git a/boards/default/python_mixpy/examples/xLXJkGIjZG/x2ZHUuMgtZ.mix b/boards/default/python_mixpy/examples/人工智能mix/06文字识别-2.mix similarity index 100% rename from boards/default/python_mixpy/examples/xLXJkGIjZG/x2ZHUuMgtZ.mix rename to boards/default/python_mixpy/examples/人工智能mix/06文字识别-2.mix diff --git a/boards/default/python_mixpy/examples/xLXJkGIjZG/Phfo2m0HoF.mix b/boards/default/python_mixpy/examples/人工智能mix/07拓展发现-1.mix similarity index 100% rename from boards/default/python_mixpy/examples/xLXJkGIjZG/Phfo2m0HoF.mix rename to boards/default/python_mixpy/examples/人工智能mix/07拓展发现-1.mix diff --git a/boards/default/python_mixpy/examples/xLXJkGIjZG/rK5SW3TcCes.mix b/boards/default/python_mixpy/examples/人工智能mix/07拓展发现-2.mix similarity index 100% rename from boards/default/python_mixpy/examples/xLXJkGIjZG/rK5SW3TcCes.mix rename to boards/default/python_mixpy/examples/人工智能mix/07拓展发现-2.mix diff --git a/boards/default/python_mixpy/examples/xLXJkGIjZG/bIBO6zZeHs.mix b/boards/default/python_mixpy/examples/人工智能mix/08文本纠错-1.mix similarity index 100% rename from boards/default/python_mixpy/examples/xLXJkGIjZG/bIBO6zZeHs.mix rename to boards/default/python_mixpy/examples/人工智能mix/08文本纠错-1.mix diff --git a/boards/default/python_mixpy/examples/xLXJkGIjZG/OdwPbsdVM5.mix b/boards/default/python_mixpy/examples/人工智能mix/08文本纠错-2.mix similarity index 100% rename from boards/default/python_mixpy/examples/xLXJkGIjZG/OdwPbsdVM5.mix rename to boards/default/python_mixpy/examples/人工智能mix/08文本纠错-2.mix diff --git a/boards/default/python_mixpy/examples/xLXJkGIjZG/SgfW8m_m9q.mix b/boards/default/python_mixpy/examples/人工智能mix/09词法分析-2.mix similarity index 100% rename from boards/default/python_mixpy/examples/xLXJkGIjZG/SgfW8m_m9q.mix rename to boards/default/python_mixpy/examples/人工智能mix/09词法分析-2.mix diff --git a/boards/default/python_mixpy/examples/xLXJkGIjZG/-CXLJ1YmeB.mix b/boards/default/python_mixpy/examples/人工智能mix/09词法分析.mix similarity index 100% rename from boards/default/python_mixpy/examples/xLXJkGIjZG/-CXLJ1YmeB.mix rename to boards/default/python_mixpy/examples/人工智能mix/09词法分析.mix diff --git a/boards/default/python_mixpy/examples/r-kPuWQ_WC_/talrIyHDJCK/6VzdHQea_8p.mix b/boards/default/python_mixpy/examples/海龟画图/mix/海龟画图01小房子_01小房子.mix similarity index 100% rename from boards/default/python_mixpy/examples/r-kPuWQ_WC_/talrIyHDJCK/6VzdHQea_8p.mix rename to boards/default/python_mixpy/examples/海龟画图/mix/海龟画图01小房子_01小房子.mix diff --git a/boards/default/python_mixpy/examples/r-kPuWQ_WC_/talrIyHDJCK/HuWZOhuChBE.mix b/boards/default/python_mixpy/examples/海龟画图/mix/海龟画图02小汽车_01正五边形.mix similarity index 100% rename from boards/default/python_mixpy/examples/r-kPuWQ_WC_/talrIyHDJCK/HuWZOhuChBE.mix rename to boards/default/python_mixpy/examples/海龟画图/mix/海龟画图02小汽车_01正五边形.mix diff --git a/boards/default/python_mixpy/examples/r-kPuWQ_WC_/talrIyHDJCK/rRP-DIv90Br.mix b/boards/default/python_mixpy/examples/海龟画图/mix/海龟画图02小汽车_02小汽车.mix similarity index 100% rename from boards/default/python_mixpy/examples/r-kPuWQ_WC_/talrIyHDJCK/rRP-DIv90Br.mix rename to boards/default/python_mixpy/examples/海龟画图/mix/海龟画图02小汽车_02小汽车.mix diff --git a/boards/default/python_mixpy/examples/r-kPuWQ_WC_/talrIyHDJCK/q1aiOaiEdFr.mix b/boards/default/python_mixpy/examples/海龟画图/mix/海龟画图03小橙子_01完整橙子.mix similarity index 100% rename from boards/default/python_mixpy/examples/r-kPuWQ_WC_/talrIyHDJCK/q1aiOaiEdFr.mix rename to boards/default/python_mixpy/examples/海龟画图/mix/海龟画图03小橙子_01完整橙子.mix diff --git a/boards/default/python_mixpy/examples/r-kPuWQ_WC_/talrIyHDJCK/j27npVInBgM.mix b/boards/default/python_mixpy/examples/海龟画图/mix/海龟画图03小橙子_02切开的橙子.mix similarity index 100% rename from boards/default/python_mixpy/examples/r-kPuWQ_WC_/talrIyHDJCK/j27npVInBgM.mix rename to boards/default/python_mixpy/examples/海龟画图/mix/海龟画图03小橙子_02切开的橙子.mix diff --git a/boards/default/python_mixpy/examples/r-kPuWQ_WC_/talrIyHDJCK/JBVOPqmi2ia.mix b/boards/default/python_mixpy/examples/海龟画图/mix/海龟画图04盛开的向日葵_01太阳公公.mix similarity index 100% rename from boards/default/python_mixpy/examples/r-kPuWQ_WC_/talrIyHDJCK/JBVOPqmi2ia.mix rename to boards/default/python_mixpy/examples/海龟画图/mix/海龟画图04盛开的向日葵_01太阳公公.mix diff --git a/boards/default/python_mixpy/examples/r-kPuWQ_WC_/talrIyHDJCK/-wiw-clT4NO.mix b/boards/default/python_mixpy/examples/海龟画图/mix/海龟画图04盛开的向日葵_02向日葵.mix similarity index 100% rename from boards/default/python_mixpy/examples/r-kPuWQ_WC_/talrIyHDJCK/-wiw-clT4NO.mix rename to boards/default/python_mixpy/examples/海龟画图/mix/海龟画图04盛开的向日葵_02向日葵.mix diff --git a/boards/default/python_mixpy/examples/r-kPuWQ_WC_/talrIyHDJCK/h1RgHVv2rzZ.mix b/boards/default/python_mixpy/examples/海龟画图/mix/海龟画图05炫彩螺旋线_01螺旋四边形.mix similarity index 100% rename from boards/default/python_mixpy/examples/r-kPuWQ_WC_/talrIyHDJCK/h1RgHVv2rzZ.mix rename to boards/default/python_mixpy/examples/海龟画图/mix/海龟画图05炫彩螺旋线_01螺旋四边形.mix diff --git a/boards/default/python_mixpy/examples/r-kPuWQ_WC_/talrIyHDJCK/tlKOdEef5YX.mix b/boards/default/python_mixpy/examples/海龟画图/mix/海龟画图05炫彩螺旋线_02彩色螺旋线.mix similarity index 100% rename from boards/default/python_mixpy/examples/r-kPuWQ_WC_/talrIyHDJCK/tlKOdEef5YX.mix rename to boards/default/python_mixpy/examples/海龟画图/mix/海龟画图05炫彩螺旋线_02彩色螺旋线.mix diff --git a/boards/default/python_mixpy/examples/r-kPuWQ_WC_/talrIyHDJCK/6Dau8G9MxqN.mix b/boards/default/python_mixpy/examples/海龟画图/mix/海龟画图06米思齐Logo_01米思齐Logo.mix similarity index 100% rename from boards/default/python_mixpy/examples/r-kPuWQ_WC_/talrIyHDJCK/6Dau8G9MxqN.mix rename to boards/default/python_mixpy/examples/海龟画图/mix/海龟画图06米思齐Logo_01米思齐Logo.mix diff --git a/boards/default/python_mixpy/examples/r-kPuWQ_WC_/talrIyHDJCK/4R1mW9U0LQD.mix b/boards/default/python_mixpy/examples/海龟画图/mix/海龟画图07闪烁星星_01正五角星.mix similarity index 100% rename from boards/default/python_mixpy/examples/r-kPuWQ_WC_/talrIyHDJCK/4R1mW9U0LQD.mix rename to boards/default/python_mixpy/examples/海龟画图/mix/海龟画图07闪烁星星_01正五角星.mix diff --git a/boards/default/python_mixpy/examples/r-kPuWQ_WC_/talrIyHDJCK/yEIwo21tqgZ.mix b/boards/default/python_mixpy/examples/海龟画图/mix/海龟画图07闪烁星星_02正n角星.mix similarity index 100% rename from boards/default/python_mixpy/examples/r-kPuWQ_WC_/talrIyHDJCK/yEIwo21tqgZ.mix rename to boards/default/python_mixpy/examples/海龟画图/mix/海龟画图07闪烁星星_02正n角星.mix diff --git a/boards/default/python_mixpy/examples/r-kPuWQ_WC_/talrIyHDJCK/_n_2ndQOFpc.mix b/boards/default/python_mixpy/examples/海龟画图/mix/海龟画图08猜一猜_01猜性别.mix similarity index 100% rename from boards/default/python_mixpy/examples/r-kPuWQ_WC_/talrIyHDJCK/_n_2ndQOFpc.mix rename to boards/default/python_mixpy/examples/海龟画图/mix/海龟画图08猜一猜_01猜性别.mix diff --git a/boards/default/python_mixpy/examples/r-kPuWQ_WC_/talrIyHDJCK/Mp6asHUh3KW.mix b/boards/default/python_mixpy/examples/海龟画图/mix/海龟画图08猜一猜_02猜年龄.mix similarity index 100% rename from boards/default/python_mixpy/examples/r-kPuWQ_WC_/talrIyHDJCK/Mp6asHUh3KW.mix rename to boards/default/python_mixpy/examples/海龟画图/mix/海龟画图08猜一猜_02猜年龄.mix diff --git a/boards/default/python_mixpy/examples/r-kPuWQ_WC_/talrIyHDJCK/a6UD2CPrWIq.mix b/boards/default/python_mixpy/examples/海龟画图/mix/海龟画图09大树的年龄_01年轮.mix similarity index 100% rename from boards/default/python_mixpy/examples/r-kPuWQ_WC_/talrIyHDJCK/a6UD2CPrWIq.mix rename to boards/default/python_mixpy/examples/海龟画图/mix/海龟画图09大树的年龄_01年轮.mix diff --git a/boards/default/python_mixpy/examples/r-kPuWQ_WC_/talrIyHDJCK/acPfdoPv1Pf.mix b/boards/default/python_mixpy/examples/海龟画图/mix/海龟画图09大树的年龄_02树年龄.mix similarity index 100% rename from boards/default/python_mixpy/examples/r-kPuWQ_WC_/talrIyHDJCK/acPfdoPv1Pf.mix rename to boards/default/python_mixpy/examples/海龟画图/mix/海龟画图09大树的年龄_02树年龄.mix diff --git a/boards/default/python_mixpy/examples/r-kPuWQ_WC_/talrIyHDJCK/7DemSDbXdjz.mix b/boards/default/python_mixpy/examples/海龟画图/mix/海龟画图10公共汽车_01公共汽车.mix similarity index 100% rename from boards/default/python_mixpy/examples/r-kPuWQ_WC_/talrIyHDJCK/7DemSDbXdjz.mix rename to boards/default/python_mixpy/examples/海龟画图/mix/海龟画图10公共汽车_01公共汽车.mix diff --git a/boards/default/python_mixpy/examples/r-kPuWQ_WC_/talrIyHDJCK/_JngRO1aXNP.mix b/boards/default/python_mixpy/examples/海龟画图/mix/海龟画图11美丽星空_01星空.mix similarity index 100% rename from boards/default/python_mixpy/examples/r-kPuWQ_WC_/talrIyHDJCK/_JngRO1aXNP.mix rename to boards/default/python_mixpy/examples/海龟画图/mix/海龟画图11美丽星空_01星空.mix diff --git a/boards/default/python_mixpy/examples/r-kPuWQ_WC_/talrIyHDJCK/mz26Cgs-WJJ.mix b/boards/default/python_mixpy/examples/海龟画图/mix/海龟画图12斐波那契数列_01输出斐波那契额数列.mix similarity index 100% rename from boards/default/python_mixpy/examples/r-kPuWQ_WC_/talrIyHDJCK/mz26Cgs-WJJ.mix rename to boards/default/python_mixpy/examples/海龟画图/mix/海龟画图12斐波那契数列_01输出斐波那契额数列.mix diff --git a/boards/default/python_mixpy/examples/r-kPuWQ_WC_/talrIyHDJCK/D8sktkU4L1b.mix b/boards/default/python_mixpy/examples/海龟画图/mix/海龟画图12斐波那契数列_02斐波那契额螺旋线.mix similarity index 100% rename from boards/default/python_mixpy/examples/r-kPuWQ_WC_/talrIyHDJCK/D8sktkU4L1b.mix rename to boards/default/python_mixpy/examples/海龟画图/mix/海龟画图12斐波那契数列_02斐波那契额螺旋线.mix diff --git a/boards/default/python_mixpy/examples/r-kPuWQ_WC_/mHgGeciabM7/海龟画图01小房子_01小房子.py b/boards/default/python_mixpy/examples/海龟画图/py/海龟画图01小房子_01小房子.py similarity index 100% rename from boards/default/python_mixpy/examples/r-kPuWQ_WC_/mHgGeciabM7/海龟画图01小房子_01小房子.py rename to boards/default/python_mixpy/examples/海龟画图/py/海龟画图01小房子_01小房子.py diff --git a/boards/default/python_mixpy/examples/r-kPuWQ_WC_/mHgGeciabM7/海龟画图02小汽车_01正五边形.py b/boards/default/python_mixpy/examples/海龟画图/py/海龟画图02小汽车_01正五边形.py similarity index 100% rename from boards/default/python_mixpy/examples/r-kPuWQ_WC_/mHgGeciabM7/海龟画图02小汽车_01正五边形.py rename to boards/default/python_mixpy/examples/海龟画图/py/海龟画图02小汽车_01正五边形.py diff --git a/boards/default/python_mixpy/examples/r-kPuWQ_WC_/mHgGeciabM7/海龟画图02小汽车_02小汽车.py b/boards/default/python_mixpy/examples/海龟画图/py/海龟画图02小汽车_02小汽车.py similarity index 100% rename from boards/default/python_mixpy/examples/r-kPuWQ_WC_/mHgGeciabM7/海龟画图02小汽车_02小汽车.py rename to boards/default/python_mixpy/examples/海龟画图/py/海龟画图02小汽车_02小汽车.py diff --git a/boards/default/python_mixpy/examples/r-kPuWQ_WC_/mHgGeciabM7/海龟画图03小橙子_01完整橙子.py b/boards/default/python_mixpy/examples/海龟画图/py/海龟画图03小橙子_01完整橙子.py similarity index 100% rename from boards/default/python_mixpy/examples/r-kPuWQ_WC_/mHgGeciabM7/海龟画图03小橙子_01完整橙子.py rename to boards/default/python_mixpy/examples/海龟画图/py/海龟画图03小橙子_01完整橙子.py diff --git a/boards/default/python_mixpy/examples/r-kPuWQ_WC_/mHgGeciabM7/海龟画图03小橙子_02切开的橙子.py b/boards/default/python_mixpy/examples/海龟画图/py/海龟画图03小橙子_02切开的橙子.py similarity index 100% rename from boards/default/python_mixpy/examples/r-kPuWQ_WC_/mHgGeciabM7/海龟画图03小橙子_02切开的橙子.py rename to boards/default/python_mixpy/examples/海龟画图/py/海龟画图03小橙子_02切开的橙子.py diff --git a/boards/default/python_mixpy/examples/r-kPuWQ_WC_/mHgGeciabM7/海龟画图04盛开的向日葵_01太阳公公.py b/boards/default/python_mixpy/examples/海龟画图/py/海龟画图04盛开的向日葵_01太阳公公.py similarity index 100% rename from boards/default/python_mixpy/examples/r-kPuWQ_WC_/mHgGeciabM7/海龟画图04盛开的向日葵_01太阳公公.py rename to boards/default/python_mixpy/examples/海龟画图/py/海龟画图04盛开的向日葵_01太阳公公.py diff --git a/boards/default/python_mixpy/examples/r-kPuWQ_WC_/mHgGeciabM7/海龟画图04盛开的向日葵_02向日葵.py b/boards/default/python_mixpy/examples/海龟画图/py/海龟画图04盛开的向日葵_02向日葵.py similarity index 100% rename from boards/default/python_mixpy/examples/r-kPuWQ_WC_/mHgGeciabM7/海龟画图04盛开的向日葵_02向日葵.py rename to boards/default/python_mixpy/examples/海龟画图/py/海龟画图04盛开的向日葵_02向日葵.py diff --git a/boards/default/python_mixpy/examples/r-kPuWQ_WC_/mHgGeciabM7/海龟画图05炫彩螺旋线_01螺旋四边形.py b/boards/default/python_mixpy/examples/海龟画图/py/海龟画图05炫彩螺旋线_01螺旋四边形.py similarity index 100% rename from boards/default/python_mixpy/examples/r-kPuWQ_WC_/mHgGeciabM7/海龟画图05炫彩螺旋线_01螺旋四边形.py rename to boards/default/python_mixpy/examples/海龟画图/py/海龟画图05炫彩螺旋线_01螺旋四边形.py diff --git a/boards/default/python_mixpy/examples/r-kPuWQ_WC_/mHgGeciabM7/海龟画图05炫彩螺旋线_02彩色螺旋线.py b/boards/default/python_mixpy/examples/海龟画图/py/海龟画图05炫彩螺旋线_02彩色螺旋线.py similarity index 100% rename from boards/default/python_mixpy/examples/r-kPuWQ_WC_/mHgGeciabM7/海龟画图05炫彩螺旋线_02彩色螺旋线.py rename to boards/default/python_mixpy/examples/海龟画图/py/海龟画图05炫彩螺旋线_02彩色螺旋线.py diff --git a/boards/default/python_mixpy/examples/r-kPuWQ_WC_/mHgGeciabM7/海龟画图06米思齐Logo_01米思齐Logo.py b/boards/default/python_mixpy/examples/海龟画图/py/海龟画图06米思齐Logo_01米思齐Logo.py similarity index 100% rename from boards/default/python_mixpy/examples/r-kPuWQ_WC_/mHgGeciabM7/海龟画图06米思齐Logo_01米思齐Logo.py rename to boards/default/python_mixpy/examples/海龟画图/py/海龟画图06米思齐Logo_01米思齐Logo.py diff --git a/boards/default/python_mixpy/examples/r-kPuWQ_WC_/mHgGeciabM7/海龟画图07闪烁星星_01正五角星.py b/boards/default/python_mixpy/examples/海龟画图/py/海龟画图07闪烁星星_01正五角星.py similarity index 100% rename from boards/default/python_mixpy/examples/r-kPuWQ_WC_/mHgGeciabM7/海龟画图07闪烁星星_01正五角星.py rename to boards/default/python_mixpy/examples/海龟画图/py/海龟画图07闪烁星星_01正五角星.py diff --git a/boards/default/python_mixpy/examples/r-kPuWQ_WC_/mHgGeciabM7/海龟画图07闪烁星星_02正n角星.py b/boards/default/python_mixpy/examples/海龟画图/py/海龟画图07闪烁星星_02正n角星.py similarity index 100% rename from boards/default/python_mixpy/examples/r-kPuWQ_WC_/mHgGeciabM7/海龟画图07闪烁星星_02正n角星.py rename to boards/default/python_mixpy/examples/海龟画图/py/海龟画图07闪烁星星_02正n角星.py diff --git a/boards/default/python_mixpy/examples/r-kPuWQ_WC_/mHgGeciabM7/海龟画图08猜一猜_01猜性别.py b/boards/default/python_mixpy/examples/海龟画图/py/海龟画图08猜一猜_01猜性别.py similarity index 100% rename from boards/default/python_mixpy/examples/r-kPuWQ_WC_/mHgGeciabM7/海龟画图08猜一猜_01猜性别.py rename to boards/default/python_mixpy/examples/海龟画图/py/海龟画图08猜一猜_01猜性别.py diff --git a/boards/default/python_mixpy/examples/r-kPuWQ_WC_/mHgGeciabM7/海龟画图08猜一猜_02猜年龄.py b/boards/default/python_mixpy/examples/海龟画图/py/海龟画图08猜一猜_02猜年龄.py similarity index 100% rename from boards/default/python_mixpy/examples/r-kPuWQ_WC_/mHgGeciabM7/海龟画图08猜一猜_02猜年龄.py rename to boards/default/python_mixpy/examples/海龟画图/py/海龟画图08猜一猜_02猜年龄.py diff --git a/boards/default/python_mixpy/examples/r-kPuWQ_WC_/mHgGeciabM7/海龟画图09大树的年龄_01年轮.py b/boards/default/python_mixpy/examples/海龟画图/py/海龟画图09大树的年龄_01年轮.py similarity index 100% rename from boards/default/python_mixpy/examples/r-kPuWQ_WC_/mHgGeciabM7/海龟画图09大树的年龄_01年轮.py rename to boards/default/python_mixpy/examples/海龟画图/py/海龟画图09大树的年龄_01年轮.py diff --git a/boards/default/python_mixpy/examples/r-kPuWQ_WC_/mHgGeciabM7/海龟画图09大树的年龄_02树年龄.py b/boards/default/python_mixpy/examples/海龟画图/py/海龟画图09大树的年龄_02树年龄.py similarity index 100% rename from boards/default/python_mixpy/examples/r-kPuWQ_WC_/mHgGeciabM7/海龟画图09大树的年龄_02树年龄.py rename to boards/default/python_mixpy/examples/海龟画图/py/海龟画图09大树的年龄_02树年龄.py diff --git a/boards/default/python_mixpy/examples/r-kPuWQ_WC_/mHgGeciabM7/海龟画图10公共汽车_01公共汽车.py b/boards/default/python_mixpy/examples/海龟画图/py/海龟画图10公共汽车_01公共汽车.py similarity index 100% rename from boards/default/python_mixpy/examples/r-kPuWQ_WC_/mHgGeciabM7/海龟画图10公共汽车_01公共汽车.py rename to boards/default/python_mixpy/examples/海龟画图/py/海龟画图10公共汽车_01公共汽车.py diff --git a/boards/default/python_mixpy/examples/r-kPuWQ_WC_/mHgGeciabM7/海龟画图11美丽星空_01星空.py b/boards/default/python_mixpy/examples/海龟画图/py/海龟画图11美丽星空_01星空.py similarity index 100% rename from boards/default/python_mixpy/examples/r-kPuWQ_WC_/mHgGeciabM7/海龟画图11美丽星空_01星空.py rename to boards/default/python_mixpy/examples/海龟画图/py/海龟画图11美丽星空_01星空.py diff --git a/boards/default/python_mixpy/examples/r-kPuWQ_WC_/mHgGeciabM7/海龟画图12斐波那契数列_01输出斐波那契额数列.py b/boards/default/python_mixpy/examples/海龟画图/py/海龟画图12斐波那契数列_01输出斐波那契额数列.py similarity index 100% rename from boards/default/python_mixpy/examples/r-kPuWQ_WC_/mHgGeciabM7/海龟画图12斐波那契数列_01输出斐波那契额数列.py rename to boards/default/python_mixpy/examples/海龟画图/py/海龟画图12斐波那契数列_01输出斐波那契额数列.py diff --git a/boards/default/python_mixpy/examples/r-kPuWQ_WC_/mHgGeciabM7/海龟画图12斐波那契数列_02斐波那契额螺旋线.py b/boards/default/python_mixpy/examples/海龟画图/py/海龟画图12斐波那契数列_02斐波那契额螺旋线.py similarity index 100% rename from boards/default/python_mixpy/examples/r-kPuWQ_WC_/mHgGeciabM7/海龟画图12斐波那契数列_02斐波那契额螺旋线.py rename to boards/default/python_mixpy/examples/海龟画图/py/海龟画图12斐波那契数列_02斐波那契额螺旋线.py diff --git a/boards/default/python_skulpt/examples/e234tQL40cR.mix b/boards/default/python_skulpt/examples/01-1 海归画图初体验.mix similarity index 100% rename from boards/default/python_skulpt/examples/e234tQL40cR.mix rename to boards/default/python_skulpt/examples/01-1 海归画图初体验.mix diff --git a/boards/default/python_skulpt/examples/DvwGAvuOFHd.mix b/boards/default/python_skulpt/examples/01-2 绘制四边形.mix similarity index 100% rename from boards/default/python_skulpt/examples/DvwGAvuOFHd.mix rename to boards/default/python_skulpt/examples/01-2 绘制四边形.mix diff --git a/boards/default/python_skulpt/examples/k43pthT5wWU.mix b/boards/default/python_skulpt/examples/01-2-2 绘制四边形.mix similarity index 100% rename from boards/default/python_skulpt/examples/k43pthT5wWU.mix rename to boards/default/python_skulpt/examples/01-2-2 绘制四边形.mix diff --git a/boards/default/python_skulpt/examples/hMFerzbSWiN.mix b/boards/default/python_skulpt/examples/01-3 绘制多边形.mix similarity index 100% rename from boards/default/python_skulpt/examples/hMFerzbSWiN.mix rename to boards/default/python_skulpt/examples/01-3 绘制多边形.mix diff --git a/boards/default/python_skulpt/examples/_4RMzteZfID.mix b/boards/default/python_skulpt/examples/01-3-2 绘制多边形.mix similarity index 100% rename from boards/default/python_skulpt/examples/_4RMzteZfID.mix rename to boards/default/python_skulpt/examples/01-3-2 绘制多边形.mix diff --git a/boards/default/python_skulpt/examples/F0f7ZEGHV8i.mix b/boards/default/python_skulpt/examples/02-1 一笔画五角形.mix similarity index 100% rename from boards/default/python_skulpt/examples/F0f7ZEGHV8i.mix rename to boards/default/python_skulpt/examples/02-1 一笔画五角形.mix diff --git a/boards/default/python_skulpt/examples/8I-8w93ysTf.mix b/boards/default/python_skulpt/examples/02-1-2 一笔画五角形.mix similarity index 100% rename from boards/default/python_skulpt/examples/8I-8w93ysTf.mix rename to boards/default/python_skulpt/examples/02-1-2 一笔画五角形.mix diff --git a/boards/default/python_skulpt/examples/fvECqhFoXSi.mix b/boards/default/python_skulpt/examples/02-2 绘制红心.mix similarity index 100% rename from boards/default/python_skulpt/examples/fvECqhFoXSi.mix rename to boards/default/python_skulpt/examples/02-2 绘制红心.mix diff --git a/boards/default/python_skulpt/examples/RWZnm1sFsc7.mix b/boards/default/python_skulpt/examples/02-2-2 绘制红心.mix similarity index 100% rename from boards/default/python_skulpt/examples/RWZnm1sFsc7.mix rename to boards/default/python_skulpt/examples/02-2-2 绘制红心.mix diff --git a/boards/default/python_skulpt/examples/VLLpgULOuZc.mix b/boards/default/python_skulpt/examples/03-1 绘制螺旋线.mix similarity index 100% rename from boards/default/python_skulpt/examples/VLLpgULOuZc.mix rename to boards/default/python_skulpt/examples/03-1 绘制螺旋线.mix diff --git a/boards/default/python_skulpt/examples/l3MR8lJvKZN.mix b/boards/default/python_skulpt/examples/03-1-2 绘制螺旋线.mix similarity index 100% rename from boards/default/python_skulpt/examples/l3MR8lJvKZN.mix rename to boards/default/python_skulpt/examples/03-1-2 绘制螺旋线.mix diff --git a/boards/default/python_skulpt/examples/B1kplULCROb.mix b/boards/default/python_skulpt/examples/03-2 绘制螺旋线-字典.mix similarity index 100% rename from boards/default/python_skulpt/examples/B1kplULCROb.mix rename to boards/default/python_skulpt/examples/03-2 绘制螺旋线-字典.mix diff --git a/boards/default/python_skulpt/examples/t3MCnRK9ZOQ.mix b/boards/default/python_skulpt/examples/03-2 绘制螺旋线.mix similarity index 100% rename from boards/default/python_skulpt/examples/t3MCnRK9ZOQ.mix rename to boards/default/python_skulpt/examples/03-2 绘制螺旋线.mix diff --git a/boards/default/python_skulpt/examples/buK6TZhRsxt.mix b/boards/default/python_skulpt/examples/04-0 投票选举.mix similarity index 100% rename from boards/default/python_skulpt/examples/buK6TZhRsxt.mix rename to boards/default/python_skulpt/examples/04-0 投票选举.mix diff --git a/boards/default/python_skulpt/examples/gV7-k1mst4N.mix b/boards/default/python_skulpt/examples/04-1 投票选举.mix similarity index 100% rename from boards/default/python_skulpt/examples/gV7-k1mst4N.mix rename to boards/default/python_skulpt/examples/04-1 投票选举.mix diff --git a/boards/default/python_skulpt/examples/CAu4Jv7lKG-.mix b/boards/default/python_skulpt/examples/05-1 凯撒加密(一位密码).mix similarity index 100% rename from boards/default/python_skulpt/examples/CAu4Jv7lKG-.mix rename to boards/default/python_skulpt/examples/05-1 凯撒加密(一位密码).mix diff --git a/boards/default/python_skulpt/examples/2ExY-RIRK-Q.mix b/boards/default/python_skulpt/examples/05-2 凯撒加密(ASCII码补充解密验证).mix similarity index 100% rename from boards/default/python_skulpt/examples/2ExY-RIRK-Q.mix rename to boards/default/python_skulpt/examples/05-2 凯撒加密(ASCII码补充解密验证).mix diff --git a/boards/default/python_skulpt/examples/5q17X-1eIR8.mix b/boards/default/python_skulpt/examples/05-2 凯撒加密(ASCII码).mix similarity index 100% rename from boards/default/python_skulpt/examples/5q17X-1eIR8.mix rename to boards/default/python_skulpt/examples/05-2 凯撒加密(ASCII码).mix diff --git a/boards/default/python_skulpt/examples/_PhgfyKlcsp.mix b/boards/default/python_skulpt/examples/05-2 凯撒加密(多位密码).mix similarity index 100% rename from boards/default/python_skulpt/examples/_PhgfyKlcsp.mix rename to boards/default/python_skulpt/examples/05-2 凯撒加密(多位密码).mix diff --git a/boards/default/python_skulpt/examples/HHrpLJqWnOs.mix b/boards/default/python_skulpt/examples/06-1 人机出数字比大小.mix similarity index 100% rename from boards/default/python_skulpt/examples/HHrpLJqWnOs.mix rename to boards/default/python_skulpt/examples/06-1 人机出数字比大小.mix diff --git a/boards/default/python_skulpt/examples/2UPx_l37c3o.mix b/boards/default/python_skulpt/examples/06-1 猜数字游戏.mix similarity index 100% rename from boards/default/python_skulpt/examples/2UPx_l37c3o.mix rename to boards/default/python_skulpt/examples/06-1 猜数字游戏.mix diff --git a/boards/default/python_skulpt/examples/qQoRIglEJ_2.mix b/boards/default/python_skulpt/examples/06-1-2 人机出数字比大小.mix similarity index 100% rename from boards/default/python_skulpt/examples/qQoRIglEJ_2.mix rename to boards/default/python_skulpt/examples/06-1-2 人机出数字比大小.mix diff --git a/boards/default/python_skulpt/examples/uNN3jesFRtS.mix b/boards/default/python_skulpt/examples/06-2-2 猜数字限定次数.mix similarity index 100% rename from boards/default/python_skulpt/examples/uNN3jesFRtS.mix rename to boards/default/python_skulpt/examples/06-2-2 猜数字限定次数.mix diff --git a/boards/default/python_skulpt/examples/aGhCEJGUXvi.mix b/boards/default/python_skulpt/examples/06-2-3 二分法.mix similarity index 100% rename from boards/default/python_skulpt/examples/aGhCEJGUXvi.mix rename to boards/default/python_skulpt/examples/06-2-3 二分法.mix diff --git a/boards/default/python_skulpt/examples/D9fjDKIm2RT.mix b/boards/default/python_skulpt/examples/07-1 鸡兔同笼.mix similarity index 100% rename from boards/default/python_skulpt/examples/D9fjDKIm2RT.mix rename to boards/default/python_skulpt/examples/07-1 鸡兔同笼.mix diff --git a/boards/default/python_skulpt/examples/gTynjKBXNni.mix b/boards/default/python_skulpt/examples/07-2 韩信点兵.mix similarity index 100% rename from boards/default/python_skulpt/examples/gTynjKBXNni.mix rename to boards/default/python_skulpt/examples/07-2 韩信点兵.mix diff --git a/boards/default/python_skulpt/examples/qc2eFL5ccia.mix b/boards/default/python_skulpt/examples/08-1 冒泡排序.mix similarity index 100% rename from boards/default/python_skulpt/examples/qc2eFL5ccia.mix rename to boards/default/python_skulpt/examples/08-1 冒泡排序.mix diff --git a/boards/default/python_skulpt/examples/65O3f_6kHza.mix b/boards/default/python_skulpt/examples/08-2 选择排序.mix similarity index 100% rename from boards/default/python_skulpt/examples/65O3f_6kHza.mix rename to boards/default/python_skulpt/examples/08-2 选择排序.mix diff --git a/boards/default/python_skulpt/examples/WVChOpwoqPg.mix b/boards/default/python_skulpt/examples/08-3 插入排序.mix similarity index 100% rename from boards/default/python_skulpt/examples/WVChOpwoqPg.mix rename to boards/default/python_skulpt/examples/08-3 插入排序.mix diff --git a/boards/default/python_skulpt/examples/TCLFiQ-gtFU.mix b/boards/default/python_skulpt/examples/08-4 快速排序.mix similarity index 100% rename from boards/default/python_skulpt/examples/TCLFiQ-gtFU.mix rename to boards/default/python_skulpt/examples/08-4 快速排序.mix diff --git a/boards/default/python_skulpt/examples/9oyrhn5Y4Bu.mix b/boards/default/python_skulpt/examples/09-1 2层汉诺塔算法.mix similarity index 100% rename from boards/default/python_skulpt/examples/9oyrhn5Y4Bu.mix rename to boards/default/python_skulpt/examples/09-1 2层汉诺塔算法.mix diff --git a/boards/default/python_skulpt/examples/5elTun8FtDI.mix b/boards/default/python_skulpt/examples/09-2 3层汉诺塔算法.mix similarity index 100% rename from boards/default/python_skulpt/examples/5elTun8FtDI.mix rename to boards/default/python_skulpt/examples/09-2 3层汉诺塔算法.mix diff --git a/boards/default/python_skulpt/examples/vTfq4Ff3heO.mix b/boards/default/python_skulpt/examples/09-2 多层汉诺塔算法.mix similarity index 100% rename from boards/default/python_skulpt/examples/vTfq4Ff3heO.mix rename to boards/default/python_skulpt/examples/09-2 多层汉诺塔算法.mix diff --git a/boards/default/python_skulpt/examples/2PYz0Azqahv.mix b/boards/default/python_skulpt/examples/10-1 回溯算法.mix similarity index 100% rename from boards/default/python_skulpt/examples/2PYz0Azqahv.mix rename to boards/default/python_skulpt/examples/10-1 回溯算法.mix diff --git a/boards/default/python_skulpt/examples/n1tw4oV3O0T.mix b/boards/default/python_skulpt/examples/11-1 贪心算法.mix similarity index 100% rename from boards/default/python_skulpt/examples/n1tw4oV3O0T.mix rename to boards/default/python_skulpt/examples/11-1 贪心算法.mix diff --git a/boards/default/python_skulpt/examples/YzgJYaXpODt.mix b/boards/default/python_skulpt/examples/2-2-3凯撒加密(ASCII码补充解密验证).mix similarity index 100% rename from boards/default/python_skulpt/examples/YzgJYaXpODt.mix rename to boards/default/python_skulpt/examples/2-2-3凯撒加密(ASCII码补充解密验证).mix diff --git a/boards/default/python_skulpt/examples/map.json b/boards/default/python_skulpt/examples/map.json index a76698e4..4b173284 100644 --- a/boards/default/python_skulpt/examples/map.json +++ b/boards/default/python_skulpt/examples/map.json @@ -1,146 +1,146 @@ { - "hMFerzbSWiN.mix": { + "01-1 海归画图初体验.mix": { "__file__": true, - "__name__": "23v0wxjrI21L.mix" + "__name__": "01-1 海归画图初体验.mix" }, - "_PhgfyKlcsp.mix": { + "01-2 绘制四边形.mix": { "__file__": true, - "__name__": "2oRQMtpzyb-I.mix" + "__name__": "01-2 绘制四边形.mix" }, - "HHrpLJqWnOs.mix": { + "01-2-2 绘制四边形.mix": { "__file__": true, - "__name__": "4apuwfFYze8l.mix" + "__name__": "01-2-2 绘制四边形.mix" }, - "_4RMzteZfID.mix": { + "01-3 绘制多边形.mix": { "__file__": true, - "__name__": "97zuHiabKqB7.mix" + "__name__": "01-3 绘制多边形.mix" }, - "l3MR8lJvKZN.mix": { + "01-3-2 绘制多边形.mix": { "__file__": true, - "__name__": "alJGA_DMoclp.mix" + "__name__": "01-3-2 绘制多边形.mix" }, - "5elTun8FtDI.mix": { + "02-1 一笔画五角形.mix": { "__file__": true, - "__name__": "aroEs3o38g50.mix" + "__name__": "02-1 一笔画五角形.mix" }, - "2UPx_l37c3o.mix": { + "02-1-2 一笔画五角形.mix": { "__file__": true, - "__name__": "bdEf2D42u_B_.mix" + "__name__": "02-1-2 一笔画五角形.mix" }, - "VLLpgULOuZc.mix": { + "02-2 绘制红心.mix": { "__file__": true, - "__name__": "BZZa-Twh2dLb.mix" + "__name__": "02-2 绘制红心.mix" }, - "5q17X-1eIR8.mix": { + "02-2-2 绘制红心.mix": { "__file__": true, - "__name__": "cOBu_HVzbILB.mix" + "__name__": "02-2-2 绘制红心.mix" }, - "65O3f_6kHza.mix": { + "03-1 绘制螺旋线.mix": { "__file__": true, - "__name__": "dH3arC12r_Zk.mix" + "__name__": "03-1 绘制螺旋线.mix" }, - "e234tQL40cR.mix": { + "03-1-2 绘制螺旋线.mix": { "__file__": true, - "__name__": "FFiqKvtClCQ0.mix" + "__name__": "03-1-2 绘制螺旋线.mix" }, - "t3MCnRK9ZOQ.mix": { + "03-2 绘制螺旋线-字典.mix": { "__file__": true, - "__name__": "FxPMtHR5dsMT.mix" + "__name__": "03-2 绘制螺旋线-字典.mix" }, - "2PYz0Azqahv.mix": { + "03-2 绘制螺旋线.mix": { "__file__": true, - "__name__": "JF-F-hZsDMr_.mix" + "__name__": "03-2 绘制螺旋线.mix" }, - "uNN3jesFRtS.mix": { + "04-0 投票选举.mix": { "__file__": true, - "__name__": "JorCcVxXdxSj.mix" + "__name__": "04-0 投票选举.mix" }, - "D9fjDKIm2RT.mix": { + "04-1 投票选举.mix": { "__file__": true, - "__name__": "KeIxidKEtkP7.mix" + "__name__": "04-1 投票选举.mix" }, - "B1kplULCROb.mix": { + "05-1 凯撒加密(一位密码).mix": { "__file__": true, - "__name__": "kowb6TX93tIF.mix" + "__name__": "05-1 凯撒加密(一位密码).mix" }, - "gTynjKBXNni.mix": { + "05-2 凯撒加密(ASCII码补充解密验证).mix": { "__file__": true, - "__name__": "nRjfv4eg_5tH.mix" + "__name__": "05-2 凯撒加密(ASCII码补充解密验证).mix" }, - "qc2eFL5ccia.mix": { + "05-2 凯撒加密(ASCII码).mix": { "__file__": true, - "__name__": "nSmrFcaSildx.mix" + "__name__": "05-2 凯撒加密(ASCII码).mix" }, - "2ExY-RIRK-Q.mix": { + "05-2 凯撒加密(多位密码).mix": { "__file__": true, - "__name__": "obCW4xNmLrWq.mix" + "__name__": "05-2 凯撒加密(多位密码).mix" }, - "qQoRIglEJ_2.mix": { + "06-1 人机出数字比大小.mix": { "__file__": true, - "__name__": "pHMeYPz4nPkT.mix" + "__name__": "06-1 人机出数字比大小.mix" }, - "k43pthT5wWU.mix": { + "06-1 猜数字游戏.mix": { "__file__": true, - "__name__": "pkpRGrIvyLzE.mix" + "__name__": "06-1 猜数字游戏.mix" }, - "TCLFiQ-gtFU.mix": { + "06-1-2 人机出数字比大小.mix": { "__file__": true, - "__name__": "pPx9SEFTPBBZ.mix" + "__name__": "06-1-2 人机出数字比大小.mix" }, - "gV7-k1mst4N.mix": { + "06-2-2 猜数字限定次数.mix": { "__file__": true, - "__name__": "PYmiDj5C4dOC.mix" + "__name__": "06-2-2 猜数字限定次数.mix" }, - "WVChOpwoqPg.mix": { + "06-2-3 二分法.mix": { "__file__": true, - "__name__": "qs8phrOyyKIP.mix" + "__name__": "06-2-3 二分法.mix" }, - "DvwGAvuOFHd.mix": { + "07-1 鸡兔同笼.mix": { "__file__": true, - "__name__": "rqcC6-tHHFhW.mix" + "__name__": "07-1 鸡兔同笼.mix" }, - "RWZnm1sFsc7.mix": { + "07-2 韩信点兵.mix": { "__file__": true, - "__name__": "UrgcM9xB8edN.mix" + "__name__": "07-2 韩信点兵.mix" }, - "fvECqhFoXSi.mix": { + "08-1 冒泡排序.mix": { "__file__": true, - "__name__": "v2KBAROvBuu1.mix" + "__name__": "08-1 冒泡排序.mix" }, - "n1tw4oV3O0T.mix": { + "08-2 选择排序.mix": { "__file__": true, - "__name__": "vd_UC1J5GUm_.mix" + "__name__": "08-2 选择排序.mix" }, - "CAu4Jv7lKG-.mix": { + "08-3 插入排序.mix": { "__file__": true, - "__name__": "xL7wmZ9hYsbD.mix" + "__name__": "08-3 插入排序.mix" }, - "8I-8w93ysTf.mix": { + "08-4 快速排序.mix": { "__file__": true, - "__name__": "xThXVx0O6l3f.mix" + "__name__": "08-4 快速排序.mix" }, - "9oyrhn5Y4Bu.mix": { + "09-1 2层汉诺塔算法.mix": { "__file__": true, - "__name__": "xyg3De_ZWLSc.mix" + "__name__": "09-1 2层汉诺塔算法.mix" }, - "aGhCEJGUXvi.mix": { + "09-2 3层汉诺塔算法.mix": { "__file__": true, - "__name__": "YBWC87hf16-E.mix" + "__name__": "09-2 3层汉诺塔算法.mix" }, - "YzgJYaXpODt.mix": { + "09-2 多层汉诺塔算法.mix": { "__file__": true, - "__name__": "YHC-MALTimbF.mix" + "__name__": "09-2 多层汉诺塔算法.mix" }, - "F0f7ZEGHV8i.mix": { + "10-1 回溯算法.mix": { "__file__": true, - "__name__": "Yp1NBsb_Kvt9.mix" + "__name__": "10-1 回溯算法.mix" }, - "vTfq4Ff3heO.mix": { + "11-1 贪心算法.mix": { "__file__": true, - "__name__": "zCHvv9J85TSK.mix" + "__name__": "11-1 贪心算法.mix" }, - "buK6TZhRsxt.mix": { + "2-2-3凯撒加密(ASCII码补充解密验证).mix": { "__file__": true, - "__name__": "_jVJCv3aIaCa.mix" + "__name__": "2-2-3凯撒加密(ASCII码补充解密验证).mix" } } diff --git a/boards/default/python_skulpt_mixtoy/examples/2XiGSPimen4.mix b/boards/default/python_skulpt_mixtoy/examples/1644591921-1-filename.mix similarity index 100% rename from boards/default/python_skulpt_mixtoy/examples/2XiGSPimen4.mix rename to boards/default/python_skulpt_mixtoy/examples/1644591921-1-filename.mix diff --git a/boards/default/python_skulpt_mixtoy/examples/3nSfgAroL3Z.mix b/boards/default/python_skulpt_mixtoy/examples/1644592048-1-first.mix similarity index 100% rename from boards/default/python_skulpt_mixtoy/examples/3nSfgAroL3Z.mix rename to boards/default/python_skulpt_mixtoy/examples/1644592048-1-first.mix diff --git a/boards/default/python_skulpt_mixtoy/examples/s4q2v5XkPCF.mix b/boards/default/python_skulpt_mixtoy/examples/1644835576-57-第一关.mix similarity index 100% rename from boards/default/python_skulpt_mixtoy/examples/s4q2v5XkPCF.mix rename to boards/default/python_skulpt_mixtoy/examples/1644835576-57-第一关.mix diff --git a/boards/default/python_skulpt_mixtoy/examples/yIYzzrGWKFT.mix b/boards/default/python_skulpt_mixtoy/examples/1644835589-57-第二关.mix similarity index 100% rename from boards/default/python_skulpt_mixtoy/examples/yIYzzrGWKFT.mix rename to boards/default/python_skulpt_mixtoy/examples/1644835589-57-第二关.mix diff --git a/boards/default/python_skulpt_mixtoy/examples/oXByvEMiJSy.mix b/boards/default/python_skulpt_mixtoy/examples/1644835604-57-第三关.mix similarity index 100% rename from boards/default/python_skulpt_mixtoy/examples/oXByvEMiJSy.mix rename to boards/default/python_skulpt_mixtoy/examples/1644835604-57-第三关.mix diff --git a/boards/default/python_skulpt_mixtoy/examples/7aQGlMkX9Gi.mix b/boards/default/python_skulpt_mixtoy/examples/1646029690-1-地图11.mix similarity index 100% rename from boards/default/python_skulpt_mixtoy/examples/7aQGlMkX9Gi.mix rename to boards/default/python_skulpt_mixtoy/examples/1646029690-1-地图11.mix diff --git a/boards/default/python_skulpt_mixtoy/examples/njzK2XT740F.mix b/boards/default/python_skulpt_mixtoy/examples/1646030057-1-地图11.mix similarity index 100% rename from boards/default/python_skulpt_mixtoy/examples/njzK2XT740F.mix rename to boards/default/python_skulpt_mixtoy/examples/1646030057-1-地图11.mix diff --git a/boards/default/python_skulpt_mixtoy/examples/ew__SSE6Rrp.mix b/boards/default/python_skulpt_mixtoy/examples/1646031090-1-1-1.mix similarity index 100% rename from boards/default/python_skulpt_mixtoy/examples/ew__SSE6Rrp.mix rename to boards/default/python_skulpt_mixtoy/examples/1646031090-1-1-1.mix diff --git a/boards/default/python_skulpt_mixtoy/examples/CxmcuHKe3Vb.mix b/boards/default/python_skulpt_mixtoy/examples/1646031217-1-1-1.mix similarity index 100% rename from boards/default/python_skulpt_mixtoy/examples/CxmcuHKe3Vb.mix rename to boards/default/python_skulpt_mixtoy/examples/1646031217-1-1-1.mix diff --git a/boards/default/python_skulpt_mixtoy/examples/ak_ZTizAUuh.mix b/boards/default/python_skulpt_mixtoy/examples/1646031510-1-1-2.mix similarity index 100% rename from boards/default/python_skulpt_mixtoy/examples/ak_ZTizAUuh.mix rename to boards/default/python_skulpt_mixtoy/examples/1646031510-1-1-2.mix diff --git a/boards/default/python_skulpt_mixtoy/examples/YkAQA4xsDht.mix b/boards/default/python_skulpt_mixtoy/examples/1646031571-1-1-3.mix similarity index 100% rename from boards/default/python_skulpt_mixtoy/examples/YkAQA4xsDht.mix rename to boards/default/python_skulpt_mixtoy/examples/1646031571-1-1-3.mix diff --git a/boards/default/python_skulpt_mixtoy/examples/Vjq_hbZjCOe.mix b/boards/default/python_skulpt_mixtoy/examples/1646031798-1-2-1.mix similarity index 100% rename from boards/default/python_skulpt_mixtoy/examples/Vjq_hbZjCOe.mix rename to boards/default/python_skulpt_mixtoy/examples/1646031798-1-2-1.mix diff --git a/boards/default/python_skulpt_mixtoy/examples/mFqFngfKdWc.mix b/boards/default/python_skulpt_mixtoy/examples/1647180522-60-3-1.mix similarity index 100% rename from boards/default/python_skulpt_mixtoy/examples/mFqFngfKdWc.mix rename to boards/default/python_skulpt_mixtoy/examples/1647180522-60-3-1.mix diff --git a/boards/default/python_skulpt_mixtoy/examples/ObLZhz3JepZ.mix b/boards/default/python_skulpt_mixtoy/examples/1647180554-60-3-2.mix similarity index 100% rename from boards/default/python_skulpt_mixtoy/examples/ObLZhz3JepZ.mix rename to boards/default/python_skulpt_mixtoy/examples/1647180554-60-3-2.mix diff --git a/boards/default/python_skulpt_mixtoy/examples/saLaToxrRv7.mix b/boards/default/python_skulpt_mixtoy/examples/1647180673-60-3-3.mix similarity index 100% rename from boards/default/python_skulpt_mixtoy/examples/saLaToxrRv7.mix rename to boards/default/python_skulpt_mixtoy/examples/1647180673-60-3-3.mix diff --git a/boards/default/python_skulpt_mixtoy/examples/vgWxwNTZI88.mix b/boards/default/python_skulpt_mixtoy/examples/1647181126-60-3-3.mix similarity index 100% rename from boards/default/python_skulpt_mixtoy/examples/vgWxwNTZI88.mix rename to boards/default/python_skulpt_mixtoy/examples/1647181126-60-3-3.mix diff --git a/boards/default/python_skulpt_mixtoy/examples/EVWJ69CXN-W.mix b/boards/default/python_skulpt_mixtoy/examples/1647181709-60-4-2.mix similarity index 100% rename from boards/default/python_skulpt_mixtoy/examples/EVWJ69CXN-W.mix rename to boards/default/python_skulpt_mixtoy/examples/1647181709-60-4-2.mix diff --git a/boards/default/python_skulpt_mixtoy/examples/P2pVyYwQlgK.mix b/boards/default/python_skulpt_mixtoy/examples/1647181760-60-4-2.mix similarity index 100% rename from boards/default/python_skulpt_mixtoy/examples/P2pVyYwQlgK.mix rename to boards/default/python_skulpt_mixtoy/examples/1647181760-60-4-2.mix diff --git a/boards/default/python_skulpt_mixtoy/examples/5mcine76ol7.mix b/boards/default/python_skulpt_mixtoy/examples/1647182686-60-4-1.mix similarity index 100% rename from boards/default/python_skulpt_mixtoy/examples/5mcine76ol7.mix rename to boards/default/python_skulpt_mixtoy/examples/1647182686-60-4-1.mix diff --git a/boards/default/python_skulpt_mixtoy/examples/Yd6pC72BIxy.mix b/boards/default/python_skulpt_mixtoy/examples/1647182723-60-4-2.mix similarity index 100% rename from boards/default/python_skulpt_mixtoy/examples/Yd6pC72BIxy.mix rename to boards/default/python_skulpt_mixtoy/examples/1647182723-60-4-2.mix diff --git a/boards/default/python_skulpt_mixtoy/examples/LAVKMZZGxlo.mix b/boards/default/python_skulpt_mixtoy/examples/1647182843-60-4-1.mix similarity index 100% rename from boards/default/python_skulpt_mixtoy/examples/LAVKMZZGxlo.mix rename to boards/default/python_skulpt_mixtoy/examples/1647182843-60-4-1.mix diff --git a/boards/default/python_skulpt_mixtoy/examples/SbP4-RJU2ns.mix b/boards/default/python_skulpt_mixtoy/examples/1647183296-1-4-1.mix similarity index 100% rename from boards/default/python_skulpt_mixtoy/examples/SbP4-RJU2ns.mix rename to boards/default/python_skulpt_mixtoy/examples/1647183296-1-4-1.mix diff --git a/boards/default/python_skulpt_mixtoy/examples/nrvLFdf3glb.mix b/boards/default/python_skulpt_mixtoy/examples/1647183320-1-4-2.mix similarity index 100% rename from boards/default/python_skulpt_mixtoy/examples/nrvLFdf3glb.mix rename to boards/default/python_skulpt_mixtoy/examples/1647183320-1-4-2.mix diff --git a/boards/default/python_skulpt_mixtoy/examples/map.json b/boards/default/python_skulpt_mixtoy/examples/map.json index 5dee297f..d56ac5bb 100644 --- a/boards/default/python_skulpt_mixtoy/examples/map.json +++ b/boards/default/python_skulpt_mixtoy/examples/map.json @@ -1,94 +1,94 @@ { - "nrvLFdf3glb.mix": { + "1644591921-1-filename.mix": { "__file__": true, - "__name__": "1R2jmvcJyH-4.mix" + "__name__": "1644591921-1-filename.mix" }, - "LAVKMZZGxlo.mix": { + "1644592048-1-first.mix": { "__file__": true, - "__name__": "A2FulsKXz22q.mix" + "__name__": "1644592048-1-first.mix" }, - "5mcine76ol7.mix": { + "1644835576-57-第一关.mix": { "__file__": true, - "__name__": "awypRFFayUK8.mix" + "__name__": "1644835576-57-第一关.mix" }, - "CxmcuHKe3Vb.mix": { + "1644835589-57-第二关.mix": { "__file__": true, - "__name__": "CLIhqzccNnsM.mix" + "__name__": "1644835589-57-第二关.mix" }, - "P2pVyYwQlgK.mix": { + "1644835604-57-第三关.mix": { "__file__": true, - "__name__": "CTisYL7L-xpQ.mix" + "__name__": "1644835604-57-第三关.mix" }, - "saLaToxrRv7.mix": { + "1646029690-1-地图11.mix": { "__file__": true, - "__name__": "EI_JPdZLvndJ.mix" + "__name__": "1646029690-1-地图11.mix" }, - "Yd6pC72BIxy.mix": { + "1646030057-1-地图11.mix": { "__file__": true, - "__name__": "fEzcMsl4V_6N.mix" + "__name__": "1646030057-1-地图11.mix" }, - "Vjq_hbZjCOe.mix": { + "1646031090-1-1-1.mix": { "__file__": true, - "__name__": "ftOtLLdIxCX6.mix" + "__name__": "1646031090-1-1-1.mix" }, - "ew__SSE6Rrp.mix": { + "1646031217-1-1-1.mix": { "__file__": true, - "__name__": "KhQSF34up6HD.mix" + "__name__": "1646031217-1-1-1.mix" }, - "njzK2XT740F.mix": { + "1646031510-1-1-2.mix": { "__file__": true, - "__name__": "lRwkwu8GThsO.mix" + "__name__": "1646031510-1-1-2.mix" }, - "oXByvEMiJSy.mix": { + "1646031571-1-1-3.mix": { "__file__": true, - "__name__": "MJ8Fyq1CXSWf.mix" + "__name__": "1646031571-1-1-3.mix" }, - "2XiGSPimen4.mix": { + "1646031798-1-2-1.mix": { "__file__": true, - "__name__": "MLiiV-16Alm_.mix" + "__name__": "1646031798-1-2-1.mix" }, - "s4q2v5XkPCF.mix": { + "1647180522-60-3-1.mix": { "__file__": true, - "__name__": "MWpDwoLQb_5L.mix" + "__name__": "1647180522-60-3-1.mix" }, - "mFqFngfKdWc.mix": { + "1647180554-60-3-2.mix": { "__file__": true, - "__name__": "nINLksOKg4k9.mix" + "__name__": "1647180554-60-3-2.mix" }, - "3nSfgAroL3Z.mix": { + "1647180673-60-3-3.mix": { "__file__": true, - "__name__": "RsQsGPkXq14r.mix" + "__name__": "1647180673-60-3-3.mix" }, - "ak_ZTizAUuh.mix": { + "1647181126-60-3-3.mix": { "__file__": true, - "__name__": "sBkxjwlKUNEG.mix" + "__name__": "1647181126-60-3-3.mix" }, - "yIYzzrGWKFT.mix": { + "1647181709-60-4-2.mix": { "__file__": true, - "__name__": "t-ixTMd5Hr0X.mix" + "__name__": "1647181709-60-4-2.mix" }, - "7aQGlMkX9Gi.mix": { + "1647181760-60-4-2.mix": { "__file__": true, - "__name__": "Woq8ylp2Z2tT.mix" + "__name__": "1647181760-60-4-2.mix" }, - "EVWJ69CXN-W.mix": { + "1647182686-60-4-1.mix": { "__file__": true, - "__name__": "XzANsgTuHfmY.mix" + "__name__": "1647182686-60-4-1.mix" }, - "SbP4-RJU2ns.mix": { + "1647182723-60-4-2.mix": { "__file__": true, - "__name__": "YkMN0LbUmmR4.mix" + "__name__": "1647182723-60-4-2.mix" }, - "vgWxwNTZI88.mix": { + "1647182843-60-4-1.mix": { "__file__": true, - "__name__": "yxl3uWBfYu8g.mix" + "__name__": "1647182843-60-4-1.mix" }, - "YkAQA4xsDht.mix": { + "1647183296-1-4-1.mix": { "__file__": true, - "__name__": "ZDtXSP-S5LVO.mix" + "__name__": "1647183296-1-4-1.mix" }, - "ObLZhz3JepZ.mix": { + "1647183320-1-4-2.mix": { "__file__": true, - "__name__": "_6jokaGjzuUC.mix" + "__name__": "1647183320-1-4-2.mix" } } diff --git a/boards/default_src/arduino/package.json b/boards/default_src/arduino/package.json index 659cbf82..1460e6fb 100644 --- a/boards/default_src/arduino/package.json +++ b/boards/default_src/arduino/package.json @@ -5,6 +5,7 @@ "scripts": { "build:dev": "webpack --config=webpack.dev.js", "build:prod": "webpack --config=webpack.prod.js", + "build:examples": "node ../../../scripts/build-examples.js -t special", "publish:board": "npm publish --registry https://registry.npmjs.org/" }, "main": "./export.js", diff --git a/boards/default_src/arduino_avr/package.json b/boards/default_src/arduino_avr/package.json index c886aab9..330b2eb1 100644 --- a/boards/default_src/arduino_avr/package.json +++ b/boards/default_src/arduino_avr/package.json @@ -5,6 +5,7 @@ "scripts": { "build:dev": "webpack --config=webpack.dev.js", "build:prod": "webpack --config=webpack.prod.js", + "build:examples": "node ../../../scripts/build-examples.js -t special", "publish:board": "npm publish --registry https://registry.npmjs.org/" }, "main": "./export.js", diff --git a/boards/default_src/arduino_esp32/package.json b/boards/default_src/arduino_esp32/package.json index ca5759c7..53fa4be3 100644 --- a/boards/default_src/arduino_esp32/package.json +++ b/boards/default_src/arduino_esp32/package.json @@ -5,6 +5,7 @@ "scripts": { "build:dev": "webpack --config=webpack.dev.js", "build:prod": "webpack --config=webpack.prod.js", + "build:examples": "node ../../../scripts/build-examples.js -t special", "publish:board": "npm publish --registry https://registry.npmjs.org/" }, "main": "./export.js", diff --git a/boards/default_src/arduino_esp8266/package.json b/boards/default_src/arduino_esp8266/package.json index 9eb23327..3260af15 100644 --- a/boards/default_src/arduino_esp8266/package.json +++ b/boards/default_src/arduino_esp8266/package.json @@ -5,6 +5,7 @@ "scripts": { "build:dev": "webpack --config=webpack.dev.js", "build:prod": "webpack --config=webpack.prod.js", + "build:examples": "node ../../../scripts/build-examples.js -t special", "publish:board": "npm publish --registry https://registry.npmjs.org/" }, "main": "./export.js", diff --git a/boards/default_src/micropython/package.json b/boards/default_src/micropython/package.json index 07078294..06d807d0 100644 --- a/boards/default_src/micropython/package.json +++ b/boards/default_src/micropython/package.json @@ -5,6 +5,7 @@ "scripts": { "build:dev": "webpack --config=webpack.dev.js", "build:prod": "webpack --config=webpack.prod.js", + "build:examples": "node ../../../scripts/build-examples.js -t special", "publish:board": "npm publish --registry https://registry.npmjs.org/" }, "main": "./export.js", diff --git a/boards/default_src/micropython_esp32/package.json b/boards/default_src/micropython_esp32/package.json index 3002365f..7471daec 100644 --- a/boards/default_src/micropython_esp32/package.json +++ b/boards/default_src/micropython_esp32/package.json @@ -5,6 +5,7 @@ "scripts": { "build:dev": "webpack --config=webpack.dev.js", "build:prod": "webpack --config=webpack.prod.js", + "build:examples": "node ../../../scripts/build-examples.js -t special", "publish:board": "npm publish --registry https://registry.npmjs.org/" }, "main": "./export.js", diff --git a/boards/default_src/micropython_esp32c2/package.json b/boards/default_src/micropython_esp32c2/package.json index b1ad4f0c..915c22c1 100644 --- a/boards/default_src/micropython_esp32c2/package.json +++ b/boards/default_src/micropython_esp32c2/package.json @@ -5,6 +5,7 @@ "scripts": { "build:dev": "webpack --config=webpack.dev.js", "build:prod": "webpack --config=webpack.prod.js", + "build:examples": "node ../../../scripts/build-examples.js -t special", "publish:board": "npm publish --registry https://registry.npmjs.org/" }, "main": "./export.js", diff --git a/boards/default_src/micropython_esp32c3/package.json b/boards/default_src/micropython_esp32c3/package.json index 6a7e5e56..de47fff0 100644 --- a/boards/default_src/micropython_esp32c3/package.json +++ b/boards/default_src/micropython_esp32c3/package.json @@ -5,6 +5,7 @@ "scripts": { "build:dev": "webpack --config=webpack.dev.js", "build:prod": "webpack --config=webpack.prod.js", + "build:examples": "node ../../../scripts/build-examples.js -t special", "publish:board": "npm publish --registry https://registry.npmjs.org/" }, "main": "./export.js", diff --git a/boards/default_src/micropython_esp32s2/package.json b/boards/default_src/micropython_esp32s2/package.json index 326ede49..c32d0a5a 100644 --- a/boards/default_src/micropython_esp32s2/package.json +++ b/boards/default_src/micropython_esp32s2/package.json @@ -5,6 +5,7 @@ "scripts": { "build:dev": "webpack --config=webpack.dev.js", "build:prod": "webpack --config=webpack.prod.js", + "build:examples": "node ../../../scripts/build-examples.js -t special", "publish:board": "npm publish --registry https://registry.npmjs.org/" }, "main": "./export.js", diff --git a/boards/default_src/micropython_esp32s3/package.json b/boards/default_src/micropython_esp32s3/package.json index e18bb807..2cd59a66 100644 --- a/boards/default_src/micropython_esp32s3/package.json +++ b/boards/default_src/micropython_esp32s3/package.json @@ -5,6 +5,7 @@ "scripts": { "build:dev": "webpack --config=webpack.dev.js", "build:prod": "webpack --config=webpack.prod.js", + "build:examples": "node ../../../scripts/build-examples.js -t special", "publish:board": "npm publish --registry https://registry.npmjs.org/" }, "main": "./export.js", diff --git a/boards/default_src/micropython_k210_mixgoai/package.json b/boards/default_src/micropython_k210_mixgoai/package.json index 4460d701..3cb0397c 100644 --- a/boards/default_src/micropython_k210_mixgoai/package.json +++ b/boards/default_src/micropython_k210_mixgoai/package.json @@ -5,6 +5,7 @@ "scripts": { "build:dev": "webpack --config=webpack.dev.js", "build:prod": "webpack --config=webpack.prod.js", + "build:examples": "node ../../../scripts/build-examples.js -t special", "publish:board": "npm publish --registry https://registry.npmjs.org/" }, "main": "./export.js", diff --git a/boards/default_src/micropython_nrf51822_microbit/package.json b/boards/default_src/micropython_nrf51822_microbit/package.json index 241dd5b3..1d44cc4b 100644 --- a/boards/default_src/micropython_nrf51822_microbit/package.json +++ b/boards/default_src/micropython_nrf51822_microbit/package.json @@ -5,6 +5,7 @@ "scripts": { "build:dev": "webpack --config=webpack.dev.js", "build:prod": "webpack --config=webpack.prod.js", + "build:examples": "node ../../../scripts/build-examples.js -t special", "publish:board": "npm publish --registry https://registry.npmjs.org/" }, "main": "./export.js", diff --git a/boards/default_src/micropython_nrf51822_mithoncc/package.json b/boards/default_src/micropython_nrf51822_mithoncc/package.json index 55f291a8..c2b28aa5 100644 --- a/boards/default_src/micropython_nrf51822_mithoncc/package.json +++ b/boards/default_src/micropython_nrf51822_mithoncc/package.json @@ -5,6 +5,7 @@ "scripts": { "build:dev": "webpack --config=webpack.dev.js", "build:prod": "webpack --config=webpack.prod.js", + "build:examples": "node ../../../scripts/build-examples.js -t special", "publish:board": "npm publish --registry https://registry.npmjs.org/" }, "main": "./export.js", diff --git a/boards/default_src/micropython_robot/package.json b/boards/default_src/micropython_robot/package.json index 08635e64..741f4f64 100644 --- a/boards/default_src/micropython_robot/package.json +++ b/boards/default_src/micropython_robot/package.json @@ -5,6 +5,7 @@ "scripts": { "build:dev": "webpack --config=webpack.dev.js", "build:prod": "webpack --config=webpack.prod.js", + "build:examples": "node ../../../scripts/build-examples.js -t special", "publish:board": "npm publish --registry https://registry.npmjs.org/" }, "main": "./export.js", diff --git a/boards/default_src/python/package.json b/boards/default_src/python/package.json index 1771725a..42d78fbb 100644 --- a/boards/default_src/python/package.json +++ b/boards/default_src/python/package.json @@ -5,6 +5,7 @@ "scripts": { "build:dev": "webpack --config=webpack.dev.js", "build:prod": "webpack --config=webpack.prod.js", + "build:examples": "node ../../../scripts/build-examples.js -t special", "publish:board": "npm publish --registry https://registry.npmjs.org/" }, "main": "./export.js", diff --git a/boards/default_src/python_mixpy/package.json b/boards/default_src/python_mixpy/package.json index 1f76cd78..cfbb9401 100644 --- a/boards/default_src/python_mixpy/package.json +++ b/boards/default_src/python_mixpy/package.json @@ -5,6 +5,7 @@ "scripts": { "build:dev": "webpack --config=webpack.dev.js", "build:prod": "webpack --config=webpack.prod.js", + "build:examples": "node ../../../scripts/build-examples.js -t special", "publish:board": "npm publish --registry https://registry.npmjs.org/" }, "main": "./export.js", diff --git a/boards/default_src/python_skulpt/package.json b/boards/default_src/python_skulpt/package.json index b52e5033..135f9c69 100644 --- a/boards/default_src/python_skulpt/package.json +++ b/boards/default_src/python_skulpt/package.json @@ -5,6 +5,7 @@ "scripts": { "build:dev": "webpack --config=webpack.dev.js", "build:prod": "webpack --config=webpack.prod.js", + "build:examples": "node ../../../scripts/build-examples.js -t special", "publish:board": "npm publish --registry https://registry.npmjs.org/" }, "devDependencies": { diff --git a/boards/default_src/python_skulpt_car/package.json b/boards/default_src/python_skulpt_car/package.json index f733312a..8949f595 100644 --- a/boards/default_src/python_skulpt_car/package.json +++ b/boards/default_src/python_skulpt_car/package.json @@ -5,6 +5,7 @@ "scripts": { "build:dev": "webpack --config=webpack.dev.js", "build:prod": "webpack --config=webpack.prod.js", + "build:examples": "node ../../../scripts/build-examples.js -t special", "publish:board": "npm publish --registry https://registry.npmjs.org/" }, "devDependencies": { diff --git a/boards/default_src/python_skulpt_mixtoy/package.json b/boards/default_src/python_skulpt_mixtoy/package.json index be3ec0d5..f2778764 100644 --- a/boards/default_src/python_skulpt_mixtoy/package.json +++ b/boards/default_src/python_skulpt_mixtoy/package.json @@ -5,6 +5,7 @@ "scripts": { "build:dev": "webpack --config=webpack.dev.js", "build:prod": "webpack --config=webpack.prod.js", + "build:examples": "node ../../../scripts/build-examples.js -t special", "publish:board": "npm publish --registry https://registry.npmjs.org/" }, "devDependencies": { diff --git a/package.json b/package.json index b5b4d649..30e5b416 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "static": "node ./static-server/server.js", "test": "npm run deps && npm run static", "deps": "node scripts/deps-gen.js", - "build:boards:all": "node scripts/build-boards.js --type all && npm run build:examples", + "build:boards:all": "node scripts/build-boards.js --type all", "build:boards:arduino": "node scripts/build-boards.js --type arduino", "build:boards:micropython": "node scripts/build-boards.js --type micropython", "build:boards:python": "node scripts/build-boards.js --type python", @@ -14,7 +14,7 @@ "publish:boards:arduino": "node scripts/publish-boards.js --type arduino", "publish:boards:micropython": "node scripts/publish-boards.js --type micropython", "publish:boards:python": "node scripts/publish-boards.js --type python", - "build:examples": "node scripts/build-examples.js" + "build:examples": "node scripts/build-examples.js -t all" }, "author": "Mixly", "license": "MIT", diff --git a/scripts/build-examples.js b/scripts/build-examples.js index 2ea15ead..eb20c214 100644 --- a/scripts/build-examples.js +++ b/scripts/build-examples.js @@ -1,8 +1,32 @@ const fs_extra = require('fs-extra'); const fs_plus = require('fs-plus'); const fs = require('fs'); +const crypto = require('crypto'); const path = require('path'); -const shortid = require('shortid'); +const { Command, Option } = require('commander'); + +const program = new Command(); + +program + .addOption(new Option('-t, --type ', 'boards type', 'all').choices([ + 'all', 'special' + ])); + +program.parse(); + +const options = program.opts(); + +options.type = options.type ?? 'all'; + +if (options.type === 'special') { + options.type = path.basename(process.cwd()); +} + +const generateHash = (inputString) => { + const hash = crypto.createHash('sha256'); + hash.update(inputString); + return hash.digest('hex'); +} const getExamples = (dirPath, convertExample = false) => { let examples = {}; @@ -15,7 +39,7 @@ const getExamples = (dirPath, convertExample = false) => { if (fs_plus.isDirectorySync(dataPath)) { let id = data; if (convertExample) { - id = shortid.generate(); + id = generateHash(data); const newDataPath = path.resolve(dirPath, id); fs.renameSync(dataPath, newDataPath); dataPath = newDataPath; @@ -36,7 +60,7 @@ const getExamples = (dirPath, convertExample = false) => { } let id = data; if (convertExample) { - id = shortid.generate() + extname; + id = generateHash(data) + extname; const newDataPath = path.resolve(dirPath, id); fs.renameSync(dataPath, newDataPath); dataPath = newDataPath; @@ -50,12 +74,15 @@ const getExamples = (dirPath, convertExample = false) => { return examples; } -const ORIGIN_DIR = process.cwd(); +const ORIGIN_DIR = path.resolve(__dirname, '../'); const DEFAULT_SRC_DIR = path.resolve(ORIGIN_DIR, 'boards/default_src'); if (fs_plus.isDirectorySync(DEFAULT_SRC_DIR)) { const names = fs.readdirSync(DEFAULT_SRC_DIR); for (let name of names) { + if (!['all', name].includes(options.type)) { + continue; + } const now = path.resolve(DEFAULT_SRC_DIR, name); if (!fs_plus.isDirectorySync(now)) { continue; @@ -77,6 +104,9 @@ const DEFAULT_DIR = path.resolve(ORIGIN_DIR, 'boards/default'); if (fs_plus.isDirectorySync(DEFAULT_DIR)) { const names = fs.readdirSync(DEFAULT_DIR); for (let name of names) { + if (!['all', name].includes(options.type)) { + continue; + } const now = path.resolve(DEFAULT_DIR, name); if (!fs_plus.isDirectorySync(now)) { continue;