From f7c7ec0a1d62cda3d2352ea0193996efdc25780c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E7=AB=8B=E5=B8=AE?= <3294713004@qq.com> Date: Fri, 29 Nov 2024 14:18:30 +0800 Subject: [PATCH] =?UTF-8?q?Update:=20=E5=90=88=E5=B9=B6python=5Fmixpy?= =?UTF-8?q?=E4=B8=ADxml=E5=88=B0python=5Fpyodide?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- boards/default/python_mixpy/index.xml | 2 +- boards/default/python_mixpy/main.bundle.js | 4 +- boards/default/python_pyodide/index.xml | 2 +- boards/default/python_pyodide/main.bundle.js | 2 +- .../{main.370663e9.css => main.4c4d08ac.css} | 24 ++--- boards/default_src/python_mixpy/template.xml | 94 +++++++++++++++++++ .../css/color_mixpy_python_advance.css | 16 ++-- .../default_src/python_pyodide/template.xml | 12 +-- 8 files changed, 125 insertions(+), 31 deletions(-) rename boards/default/python_pyodide/styles/{main.370663e9.css => main.4c4d08ac.css} (92%) diff --git a/boards/default/python_mixpy/index.xml b/boards/default/python_mixpy/index.xml index da9b8fe3..1b6f9fd6 100644 --- a/boards/default/python_mixpy/index.xml +++ b/boards/default/python_mixpy/index.xml @@ -1 +1 @@ -promptHelloHelloHello,HelloMixly2100,1,2,3051iDIVIDE10Exception as eetestThreadtestThreadWHILETRUEHello Mixly from Thread!1090x151100a10.998124.821100101010001100501100110000x2x0,1,2,30,1,2,30,1,2,3xMixlyHelloMixly65axMixlyMixly0Mixly02MixlyMixlyHello,mixlyHello,mixly50*Hello,mixlyl--mylistHello,mixlymixlymixpyI love mixly!I love mixlyRandom No. is {}int1100input('1+2*3')dirmylist1,2,3,4,5mylist0mylist02mylist00mylist0101mylistmylist2mylistmylist0mylist00mylist00mylist0mylist0mylist0mylistmylistmylistxmytup1,2,3,4,5mytup0mytup02mytupmytupmytupmytup0mytupmytup1mytup2xmydictmydictkeymydictkey0mydictkey0mydictkeymydictkeymydictkey0mydictmydictmydictmydictxmydict{"name":"Mixly","color":"green"}s11,2,3,4,5s1s1s1s2s1s2s10s1Mixlys1s2xreadme.txtffilename.txtfffilename.txtfMixlyfff0fffpathpathfilename.txtsrcname.txtdstname.txtfilename.txtpathff0reponsehttps://mixio.mixly.cnreponsehttps://mixio.mixly.cnreponsemixio.mixly.cnmixio.mixly.cnA1B2C3mixio.mixly.cnusernamepasswordMyProjecttopicmsgtopicmethodtopicmethodEQmsg1content"long""lat""message"012content"key1""key2""key3"012tina20tina90tina0tina2020tina50tinatinatinatinatinatina5tinatina225tina5#ff0000#FF0000tina#ff0000#FF0000tina#ff0000#FF0000tina#ff0000#FF0000#ff0000#FF0000tina#FF0000tina#FF0000tina#FF0000tina50tina50360tinascreenkeyfuncUpkeyfunctina100tina90screenclickfuncclickfunctinax20y20screentimerfunc3000timerfunctina100tina90screenscreenturtle.epstina10tinaMixly!tinaMixly!Arial8NUMInput a number:100100Input your nameWhat's your name?d:\\1.wav3d:\\1.jpgqclientEnter Your API_KEYEnter Your SECRET_KEYclient今天天气真好clientclientclientC:/mixly.jpgC:/mixpy.jpgclientclient我爱米思齐client米思齐米思皮client米思齐团队米思齐团队由一群具有共同理想的学生和老师组成,他们始终致力于为开展更好的创客教育而努力。client米思齐团队由一群具有共同理想的学生和老师组成,他们始终致力于为开展更好的创客教育而努力。20df1data.csvdfdfarrayNonearrayNonearrayarrayarraydfvalueFalsedfdfcolumns0x1.55.50.511array1array2myMatrixmyMatrixmyMatrixarraymatrix1matrix2array1array20,1,2,3xmyArraymyArraymyDimensionsmyArraymyArraymyFeatures0imagetemplatesmyArray0myArray0mylistmylist0,1,2,3mydictmydict'a','b','c','d'mydict'ABCD''a','b','c','d'ser1ser10df1tagdf1tagdf11df1GTcolumndf1tag1df1tagmindf1columndf1tagser1ser11,2,3,45,6,7,81,2,3,45,6,7,820,20,20,20tag1,2,3,45,6,7,8tag1,2,3,45,6,7,80.5tag0.25,0.35,0.1,0.3'a','b','c','d'0.2,0,0,011,21,31,41,51,61,71,81,910,20,40,60,80,100211Titleaxis1,2,3,41,2,3,415581.pngimg1.jpgfacehaarcascade_frontalface_default.xmlfaceRectsimgface1.15faceRectsimgface1.15100100200200Mixlyimg2.jpgimg0img001001003imgMixly02004310020220221001001010.00.010021.0-10.0,10.0TRUEirisiris_Xiris_y0.3modelTRUEFALSEmodel1.0TRUEFALSE300modelmodel100model5modelmodel8300modelX_trainy_trainmodelX_testy_testmodelX_testmodelmodelmodelD:/mixly/test.pkl \ No newline at end of file +promptHelloHelloHello,HelloMixly2100,1,2,3051iDIVIDE10Exception as eetestThreadtestThreadWHILETRUEHello Mixly from Thread!101802990x151100a10.998124.8211001010100011005011001100020x2x0,1,2,30,1,2,30,1,2,3xMixlyHelloMixly65axMixlyMixly0Mixly02MixlyMixlyHello,mixlyHello,mixly50*Hello,mixlyl--mylistHello,mixlymixlymixpyI love mixly!I love mixlyRandom No. is {}int1100input('1+2*3')dirmylist1,2,3,4,5mylist0mylist02mylist00mylist0101mylistmylist2mylistmylist0mylist00mylist00mylist0mylist0mylist0mylistmylistmylistxmylist0mytup1,2,3,4,5mytup0mytup02mytupmytupmytupmytup0mytupmytup1mytup2xmydictmydictkeymydictkey0mydictkey0mydictkeymydictkeymydictkey0mydictmydictmydictmydictxmydict{"name":"Mixly","color":"green"}mydictresults0locationnames11,2,3,4,5s1s1s1s2s1s2s10s1Mixlys1s2xreadme.txtffilename.txtfffilename.txtfMixlyfff0fffpathpathfilename.txtsrcname.txtdstname.txtfilename.txtpathff0reponsehttps://mixio.mixly.cnreponsehttps://mixio.mixly.cnreponsemixio.mixly.cnmixio.mixly.cnA1B2C3mixio.mixly.cnusernamepasswordMyProjecttopicmsgtopicmethodtopicmethodEQmsg1content"long""lat""message"012content"key1""key2""key3"012tina20tina90tina0tina2020tina50tinatinatinatinatinatina5tinatina225tina5#ff0000#FF0000tina#ff0000#FF0000tina#ff0000#FF0000tina#ff0000#FF0000#ff0000#FF0000tina#FF0000tina#FF0000tina#FF0000tina50tina50360tinascreenkeyfuncUpkeyfunctina100tina90screenclickfuncclickfunctinax20y20screentimerfunc3000timerfunctina100tina90screenscreenturtle.epstina10tinaMixly!tinaMixly!Arial8NUMInput a number:100100Input your nameWhat's your name?d:\\1.wav3d:\\1.jpgqclientEnter Your API_KEYEnter Your SECRET_KEYclient今天天气真好clientclientclientC:/mixly.jpgC:/mixpy.jpgclientclient我爱米思齐client米思齐米思皮client米思齐团队米思齐团队由一群具有共同理想的学生和老师组成,他们始终致力于为开展更好的创客教育而努力。client米思齐团队由一群具有共同理想的学生和老师组成,他们始终致力于为开展更好的创客教育而努力。20df1data.csvdfdfarrayNonearrayNonearrayarrayarraydfvalueFalsedfdf'a','b','c','d'x1.55.50.511array1array2myMatrixmyMatrixmyMatrixarraymatrix1matrix2array1array20,1,2,3xmyArraymyArraymyDimensionsmyArraymyArraymyFeatures0imagetemplatesmyArray0myArray0myArraymylistmylist0,1,2,3mydictmydict'a','b','c','d'mydict'ABCD''a','b','c','d'ser1ser10df1tagdf1tagdf11df1GTcolumndf1tag1df1tagmindf1columndf1tagser1ser11,2,3,45,6,7,81,2,3,45,6,7,820,20,20,20tag1,2,3,45,6,7,8tag1,2,3,45,6,7,80.5tag0.25,0.35,0.1,0.3'a','b','c','d'0.2,0,0,011,21,31,41,51,61,71,81,910,20,40,60,80,100211Titleaxis1,2,3,41,2,3,415581.pngimg1.jpgfacehaarcascade_frontalface_default.xmlfaceRectsimgface1.15faceRectsimgface1.15100100200200Mixlyimg2.jpgimg0img001001003imgMixly02004310020220221001001010.00.010021.0-10.0,10.0TRUEirisiris_Xiris_y0.3modelTRUEFALSEmodel1.0TRUEFALSE300modelmodel100pca2pcaXmodel5modelmodel8300modelXmodelX_trainy_trainmodelX_testy_testmodelX_testmodelmodelmodelD:/mixly/test.pkl \ No newline at end of file diff --git a/boards/default/python_mixpy/main.bundle.js b/boards/default/python_mixpy/main.bundle.js index d553a04b..5c1d7bf7 100644 --- a/boards/default/python_mixpy/main.bundle.js +++ b/boards/default/python_mixpy/main.bundle.js @@ -1,4 +1,4 @@ -(()=>{"use strict";var __webpack_modules__={131:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{cv_destroy_all:()=>cv_destroy_all,cv_face_classifier:()=>cv_face_classifier,cv_face_detect:()=>cv_face_detect,cv_face_detect_all:()=>cv_face_detect_all,cv_line_rect:()=>cv_line_rect,cv_read_image:()=>cv_read_image,cv_show_image:()=>cv_show_image,cv_text:()=>cv_text,cv_waitkey:()=>cv_waitkey,cv_write_image:()=>cv_write_image});const cv_read_image=function(e,t){return t.definitions_.import_cv2="import cv2",["cv2.imread("+t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+")",t.ORDER_ATOMIC]},cv_show_image=function(e,t){return t.definitions_.import_cv2="import cv2","cv2.imshow("+t.valueToCode(this,"data",t.ORDER_ATOMIC)+","+t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+")\n"},cv_write_image=function(e,t){return t.definitions_.import_cv2="import cv2","cv2.imwrite("+t.valueToCode(this,"data",t.ORDER_ATOMIC)+","+t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+")\n"},cv_waitkey=function(e,t){return t.definitions_.import_cv2="import cv2","cv2.waitKey("+t.valueToCode(this,"data",t.ORDER_ATOMIC)+")\n"},cv_destroy_all=function(e,t){t.definitions_.import_cv2="import cv2";return"cv2.destroyAllWindows()\n"},cv_line_rect=function(_,generator){generator.definitions_.import_cv2="import cv2";var file=generator.valueToCode(this,"FILE",generator.ORDER_ATOMIC),x1=generator.valueToCode(this,"x1",generator.ORDER_ATOMIC),y1=generator.valueToCode(this,"y1",generator.ORDER_ATOMIC),x2=generator.valueToCode(this,"x2",generator.ORDER_ATOMIC),y2=generator.valueToCode(this,"y2",generator.ORDER_ATOMIC),thick=generator.valueToCode(this,"thick",generator.ORDER_ATOMIC),color=this.getFieldValue("FIELDNAME"),color1=eval("0x"+color[1]+color[2]),color2=eval("0x"+color[3]+color[4]),color3=eval("0x"+color[5]+color[6]),direction=this.getFieldValue("DIR"),code="cv2."+direction+"("+file+",("+x1+","+y1+"),("+x2+","+y2+"),("+color3+","+color2+","+color1+"),"+thick+")\n";return code},cv_text=function(_,generator){generator.definitions_.import_cv2="import cv2";var file=generator.valueToCode(this,"FILE",generator.ORDER_ATOMIC),x1=generator.valueToCode(this,"x1",generator.ORDER_ATOMIC),y1=generator.valueToCode(this,"y1",generator.ORDER_ATOMIC),data=generator.valueToCode(this,"data",generator.ORDER_ATOMIC),size=generator.valueToCode(this,"size",generator.ORDER_ATOMIC),thick=generator.valueToCode(this,"thick",generator.ORDER_ATOMIC),color=this.getFieldValue("FIELDNAME"),color1=eval("0x"+color[1]+color[2]),color2=eval("0x"+color[3]+color[4]),color3=eval("0x"+color[5]+color[6]),font=this.getFieldValue("font"),code="cv2.putText("+file+","+data+",("+x1+","+y1+"),cv2.FONT_HERSHEY_"+font+","+size+",("+color3+","+color2+","+color1+"),"+thick+")\n";return code},cv_face_classifier=function(e,t){return t.definitions_.import_cv2="import cv2",["cv2.CascadeClassifier("+t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+")",t.ORDER_ATOMIC]},cv_face_detect=function(e,t){t.definitions_.import_cv2="import cv2";var n=t.valueToCode(this,"FILE",t.ORDER_ATOMIC);return[t.valueToCode(this,"FACE",t.ORDER_ATOMIC)+".detectMultiScale("+n+",scaleFactor="+t.valueToCode(this,"SCALE",t.ORDER_ATOMIC)+",minNeighbors="+t.valueToCode(this,"NEIGHBOR",t.ORDER_ATOMIC)+")",t.ORDER_ATOMIC]},cv_face_detect_all=function(e,t){t.definitions_.import_cv2="import cv2";var n=t.valueToCode(this,"FILE",t.ORDER_ATOMIC);return[t.valueToCode(this,"FACE",t.ORDER_ATOMIC)+".detectMultiScale("+n+",scaleFactor="+t.valueToCode(this,"SCALE",t.ORDER_ATOMIC)+",minNeighbors="+t.valueToCode(this,"NEIGHBOR",t.ORDER_ATOMIC)+",minSize=("+t.valueToCode(this,"x1",t.ORDER_ATOMIC)+","+t.valueToCode(this,"y1",t.ORDER_ATOMIC)+"),maxSize=("+t.valueToCode(this,"x2",t.ORDER_ATOMIC)+","+t.valueToCode(this,"y2",t.ORDER_ATOMIC)+"))",t.ORDER_ATOMIC]}}},__webpack_module_cache__={};function __webpack_require__(e){var t=__webpack_module_cache__[e];if(void 0!==t)return t.exports;var n=__webpack_module_cache__[e]={exports:{}};return __webpack_modules__[e](n,n.exports,__webpack_require__),n.exports}__webpack_require__.d=(e,t)=>{for(var n in t)__webpack_require__.o(t,n)&&!__webpack_require__.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},__webpack_require__.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),__webpack_require__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var __webpack_exports__={},blocks_variables_namespaceObject={};__webpack_require__.r(blocks_variables_namespaceObject),__webpack_require__.d(blocks_variables_namespaceObject,{controls_type:()=>controls_type,controls_typeLists:()=>controls_typeLists,lists_zip:()=>lists_zip,lists_zip_container:()=>lists_zip_container,lists_zip_item:()=>lists_zip_item,unpack_iterable_object:()=>unpack_iterable_object,variables_change:()=>variables_change,variables_get:()=>variables_get,variables_global:()=>variables_global,variables_set:()=>variables_set});var control_namespaceObject={};__webpack_require__.r(control_namespaceObject),__webpack_require__.d(control_namespaceObject,{base_setup:()=>base_setup,controls_delay:()=>controls_delay,controls_end_program:()=>controls_end_program,controls_except:()=>controls_except,controls_finally:()=>controls_finally,controls_flow_statements:()=>controls_flow_statements,controls_for:()=>controls_for,controls_forEach:()=>controls_forEach,controls_for_range:()=>controls_for_range,controls_if:()=>controls_if,controls_if_else:()=>controls_if_else,controls_if_elseif:()=>controls_if_elseif,controls_if_if:()=>controls_if_if,controls_lambda:()=>controls_lambda,controls_main:()=>controls_main,controls_pass:()=>controls_pass,controls_range:()=>controls_range,controls_repeat_ext:()=>controls_repeat_ext,controls_thread:()=>controls_thread,controls_try:()=>controls_try,controls_try_finally:()=>controls_try_finally,controls_whileUntil:()=>controls_whileUntil,datetime_fromtimestamp:()=>datetime_fromtimestamp,do_while:()=>do_while,garbage_collection:()=>garbage_collection,get_mem_alloc:()=>get_mem_alloc,get_mem_free:()=>get_mem_free,get_unique_identifier:()=>get_unique_identifier});var math_namespaceObject={};__webpack_require__.r(math_namespaceObject),__webpack_require__.d(math_namespaceObject,{base_map:()=>base_map,generate_cartesian_product:()=>generate_cartesian_product,math_arithmetic:()=>math_arithmetic,math_bit:()=>math_bit,math_constant:()=>math_constant,math_constant_mp:()=>math_constant_mp,math_constrain:()=>math_constrain,math_dec:()=>math_dec,math_indexer_number:()=>math_indexer_number,math_map:()=>math_map,math_max_min:()=>math_max_min,math_number:()=>math_number,math_number_base_conversion:()=>math_number_base_conversion,math_random:()=>math_random,math_random_seed:()=>math_random_seed,math_round:()=>math_round,math_selfcalcu:()=>math_selfcalcu,math_to_int:()=>math_to_int,math_trig:()=>math_trig,text_to_number:()=>text_to_number,text_to_number_skulpt:()=>text_to_number_skulpt,turn_to_int:()=>turn_to_int});var text_namespaceObject={};__webpack_require__.r(text_namespaceObject),__webpack_require__.d(text_namespaceObject,{ascii_to_char:()=>ascii_to_char,char_to_ascii:()=>char_to_ascii,number_to_text:()=>number_to_text,os_system:()=>os_system,text:()=>text_text,text_capital:()=>text_capital,text_center:()=>text_center,text_char:()=>text_char,text_char_at:()=>text_char_at,text_char_at2:()=>text_char_at2,text_char_at3:()=>text_char_at3,text_compareTo:()=>text_compareTo,text_compare_to:()=>text_compare_to,text_create_with_container:()=>text_create_with_container,text_create_with_item:()=>text_create_with_item,text_encode:()=>text_encode,text_equals_starts_ends:()=>text_equals_starts_ends,text_eval:()=>text_eval,text_find:()=>text_find,text_format:()=>text_format,text_format_noreturn:()=>text_format_noreturn,text_join:()=>text_join,text_join_seq:()=>text_join_seq,text_length:()=>text_length,text_random_char:()=>text_random_char,text_replace:()=>text_replace,text_split:()=>text_split,text_strip:()=>text_strip,text_substring:()=>text_substring,text_substring2:()=>text_substring2,text_substring3:()=>text_substring3,text_textarea:()=>text_textarea});var lists_namespaceObject={};__webpack_require__.r(lists_namespaceObject),__webpack_require__.d(lists_namespaceObject,{ENUMERATE:()=>ENUMERATE,enumerate:()=>enumerate,list_many_input:()=>list_many_input,list_tolist:()=>list_tolist,list_tolist2:()=>list_tolist2,list_trig:()=>list_trig,lists_2d_get_col_row_data:()=>lists_2d_get_col_row_data,lists_2d_get_data_with_col_row:()=>lists_2d_get_data_with_col_row,lists_append_extend:()=>lists_append_extend,lists_change_to:()=>lists_change_to,lists_change_to_general:()=>lists_change_to_general,lists_clear:()=>lists_clear,lists_create_with:()=>lists_create_with,lists_create_with2:()=>lists_create_with2,lists_create_with_container:()=>lists_create_with_container,lists_create_with_item:()=>lists_create_with_item,lists_create_with_noreturn:()=>lists_create_with_noreturn,lists_create_with_text:()=>lists_create_with_text,lists_create_with_text2:()=>lists_create_with_text2,lists_del_general:()=>lists_del_general,lists_find:()=>lists_find,lists_getIndex3:()=>lists_getIndex3,lists_getSublist3:()=>lists_getSublist3,lists_get_index:()=>lists_get_index,lists_get_random_item:()=>lists_get_random_item,lists_get_random_sublist:()=>lists_get_random_sublist,lists_get_sublist:()=>lists_get_sublist,lists_insert_value:()=>lists_insert_value,lists_insert_value2:()=>lists_insert_value2,lists_pop:()=>lists_pop,lists_remove_at:()=>lists_remove_at,lists_remove_at2:()=>lists_remove_at2,lists_reverse:()=>lists_reverse,lists_setIndex3:()=>lists_setIndex3,lists_set_index:()=>lists_set_index,lists_sort:()=>lists_sort});var dicts_namespaceObject={};__webpack_require__.r(dicts_namespaceObject),__webpack_require__.d(dicts_namespaceObject,{dicts_add_change_del:()=>dicts_add_change_del,dicts_add_or_change:()=>dicts_add_or_change,dicts_clear:()=>dicts_clear,dicts_create_with:()=>dicts_create_with,dicts_create_with_container:()=>dicts_create_with_container,dicts_create_with_item:()=>dicts_create_with_item,dicts_create_with_noreturn:()=>dicts_create_with_noreturn,dicts_deldict:()=>dicts_deldict,dicts_delete:()=>dicts_delete,dicts_get:()=>dicts_get,dicts_get_default:()=>dicts_get_default,dicts_items:()=>dicts_items,dicts_keys:()=>dicts_keys,dicts_length:()=>dicts_length,dicts_pop:()=>dicts_pop,dicts_setdefault:()=>dicts_setdefault,dicts_to_json:()=>dicts_to_json,dicts_to_to:()=>dicts_to_to,dicts_todict:()=>dicts_todict,dicts_update:()=>dicts_update,dicts_values:()=>dicts_values,json_to_dicts:()=>json_to_dicts});var logic_namespaceObject={};__webpack_require__.r(logic_namespaceObject),__webpack_require__.d(logic_namespaceObject,{logic_boolean:()=>logic_boolean,logic_compare:()=>logic_compare,logic_compare_continous:()=>logic_compare_continous,logic_is:()=>logic_is,logic_is_in:()=>logic_is_in,logic_negate:()=>logic_negate,logic_null:()=>logic_null,logic_operation:()=>logic_operation,logic_tobool:()=>logic_tobool,logic_true_or_false:()=>logic_true_or_false});var storage_namespaceObject={};__webpack_require__.r(storage_namespaceObject),__webpack_require__.d(storage_namespaceObject,{sdcard_mount:()=>sdcard_mount,sdcard_use_spi_init:()=>sdcard_use_spi_init,storage_can_write_ornot:()=>storage_can_write_ornot,storage_change_dir:()=>storage_change_dir,storage_close_file:()=>storage_close_file,storage_delete_file:()=>storage_delete_file,storage_file_seek:()=>storage_file_seek,storage_file_tell:()=>storage_file_tell,storage_file_write:()=>storage_file_write,storage_fileopen:()=>storage_fileopen,storage_fileopen_new:()=>storage_fileopen_new,storage_fileopen_new_encoding:()=>storage_fileopen_new_encoding,storage_get_a_line:()=>storage_get_a_line,storage_get_contents:()=>storage_get_contents,storage_get_contents_without_para:()=>storage_get_contents_without_para,storage_get_current_dir:()=>storage_get_current_dir,storage_get_file_size:()=>storage_get_file_size,storage_get_filename:()=>storage_get_filename,storage_is_file:()=>storage_is_file,storage_list_all_files:()=>storage_list_all_files,storage_make_dir:()=>storage_make_dir,storage_open_file_with_os:()=>storage_open_file_with_os,storage_rename:()=>storage_rename});var blocks_procedures_namespaceObject={};__webpack_require__.r(blocks_procedures_namespaceObject),__webpack_require__.d(blocks_procedures_namespaceObject,{procedures_callnoreturn:()=>procedures_callnoreturn,procedures_callreturn:()=>procedures_callreturn,procedures_defnoreturn:()=>procedures_defnoreturn,procedures_defreturn:()=>procedures_defreturn,procedures_ifreturn:()=>procedures_ifreturn,procedures_mutatorarg:()=>procedures_mutatorarg,procedures_mutatorcontainer:()=>procedures_mutatorcontainer,procedures_return:()=>procedures_return});var tuple_namespaceObject={};__webpack_require__.r(tuple_namespaceObject),__webpack_require__.d(tuple_namespaceObject,{tuple_change_to:()=>tuple_change_to,tuple_create_with:()=>tuple_create_with,tuple_create_with_container:()=>tuple_create_with_container,tuple_create_with_item:()=>tuple_create_with_item,tuple_create_with_noreturn:()=>tuple_create_with_noreturn,tuple_create_with_text2:()=>tuple_create_with_text2,tuple_create_with_text_return:()=>tuple_create_with_text_return,tuple_del:()=>tuple_del,tuple_find:()=>tuple_find,tuple_getIndex:()=>tuple_getIndex,tuple_getSublist:()=>tuple_getSublist,tuple_get_random_item:()=>tuple_get_random_item,tuple_get_sublist:()=>tuple_get_sublist,tuple_join:()=>tuple_join,tuple_length:()=>tuple_length,tuple_max:()=>tuple_max,tuple_totuple:()=>tuple_totuple,tuple_trig:()=>tuple_trig});var set_namespaceObject={};__webpack_require__.r(set_namespaceObject),__webpack_require__.d(set_namespaceObject,{set_add_discard:()=>set_add_discard,set_clear:()=>set_clear,set_create_with:()=>set_create_with,set_create_with_container:()=>set_create_with_container,set_create_with_item:()=>set_create_with_item,set_create_with_text_return:()=>set_create_with_text_return,set_length:()=>set_length,set_operate:()=>set_operate,set_operate_update:()=>set_operate_update,set_pop:()=>set_pop,set_sub:()=>set_sub,set_toset:()=>set_toset,set_update:()=>set_update});var html_namespaceObject={};__webpack_require__.r(html_namespaceObject),__webpack_require__.d(html_namespaceObject,{html_content:()=>html_content,html_content_more:()=>html_content_more,html_document:()=>html_document,html_form:()=>html_form,html_head_body:()=>html_head_body,html_style:()=>html_style,html_style_color:()=>html_style_color,html_style_content:()=>html_style_content,html_text:()=>html_text,html_title:()=>html_title});var utility_namespaceObject={};__webpack_require__.r(utility_namespaceObject),__webpack_require__.d(utility_namespaceObject,{attribute_access:()=>attribute_access,function_call:()=>function_call,function_call_container:()=>function_call_container,function_call_item:()=>function_call_item,raw_block:()=>raw_block,raw_empty:()=>raw_empty,raw_expression:()=>raw_expression,raw_table:()=>raw_table,text_comment:()=>text_comment,text_print_multiple:()=>text_print_multiple,text_print_multiple_container:()=>text_print_multiple_container,text_print_multiple_item:()=>text_print_multiple_item,type_check:()=>type_check});var generators_variables_namespaceObject={};__webpack_require__.r(generators_variables_namespaceObject),__webpack_require__.d(generators_variables_namespaceObject,{controls_type:()=>variables_controls_type,controls_typeLists:()=>variables_controls_typeLists,lists_zip:()=>variables_lists_zip,unpack_iterable_object:()=>variables_unpack_iterable_object,variables_change:()=>variables_variables_change,variables_get:()=>variables_variables_get,variables_global:()=>variables_variables_global,variables_set:()=>variables_variables_set});var generators_control_namespaceObject={};__webpack_require__.r(generators_control_namespaceObject),__webpack_require__.d(generators_control_namespaceObject,{Panic_with_status_code:()=>Panic_with_status_code,base_setup:()=>control_base_setup,controls_delay:()=>control_controls_delay,controls_flow_statements:()=>control_controls_flow_statements,controls_for:()=>control_controls_for,controls_forEach:()=>control_controls_forEach,controls_for_range:()=>control_controls_for_range,controls_if:()=>control_controls_if,controls_interrupts:()=>controls_interrupts,controls_lambda:()=>control_controls_lambda,controls_main:()=>control_controls_main,controls_millis:()=>controls_millis,controls_nointerrupts:()=>controls_nointerrupts,controls_pass:()=>control_controls_pass,controls_range:()=>control_controls_range,controls_repeat:()=>controls_repeat,controls_repeat_ext:()=>control_controls_repeat_ext,controls_thread:()=>control_controls_thread,controls_try_finally:()=>control_controls_try_finally,controls_whileUntil:()=>control_controls_whileUntil,datetime_fromtimestamp:()=>control_datetime_fromtimestamp,do_while:()=>control_do_while,garbage_collection:()=>control_garbage_collection,get_mem_alloc:()=>control_get_mem_alloc,get_mem_free:()=>control_get_mem_free,get_unique_identifier:()=>control_get_unique_identifier,reset:()=>control_reset,time_sleep:()=>time_sleep});var generators_math_namespaceObject={};__webpack_require__.r(generators_math_namespaceObject),__webpack_require__.d(generators_math_namespaceObject,{base_map:()=>math_base_map,generate_cartesian_product:()=>math_generate_cartesian_product,math_arithmetic:()=>math_math_arithmetic,math_bit:()=>math_math_bit,math_constant:()=>math_math_constant,math_constant_mp:()=>math_math_constant_mp,math_constrain:()=>math_math_constrain,math_dec:()=>math_math_dec,math_indexer_number:()=>math_math_indexer_number,math_map:()=>math_math_map,math_max_min:()=>math_math_max_min,math_number:()=>math_math_number,math_number_base_conversion:()=>math_math_number_base_conversion,math_random:()=>math_math_random,math_random_seed:()=>math_math_random_seed,math_round:()=>math_math_round,math_selfcalcu:()=>math_math_selfcalcu,math_single:()=>math_single,math_to_int:()=>math_math_to_int,math_trig:()=>math_math_trig,text_to_number:()=>math_text_to_number,text_to_number_skulpt:()=>math_text_to_number_skulpt,turn_to_int:()=>math_turn_to_int});var generators_text_namespaceObject={};__webpack_require__.r(generators_text_namespaceObject),__webpack_require__.d(generators_text_namespaceObject,{ascii_to_char:()=>text_ascii_to_char,char_to_ascii:()=>text_char_to_ascii,number_to_text:()=>text_number_to_text,os_system:()=>text_os_system,text:()=>generators_text_text,text_capital:()=>text_text_capital,text_center:()=>text_text_center,text_char:()=>text_text_char,text_char_at:()=>text_text_char_at,text_char_at2:()=>text_text_char_at2,text_char_at3:()=>text_text_char_at3,text_compareTo:()=>text_text_compareTo,text_compare_to:()=>text_text_compare_to,text_encode:()=>text_text_encode,text_equals_starts_ends:()=>text_text_equals_starts_ends,text_eval:()=>text_text_eval,text_find:()=>text_text_find,text_format:()=>text_text_format,text_format_noreturn:()=>text_text_format_noreturn,text_join:()=>text_text_join,text_join_seq:()=>text_text_join_seq,text_length:()=>text_text_length,text_random_char:()=>text_text_random_char,text_replace:()=>text_text_replace,text_split:()=>text_text_split,text_strip:()=>text_text_strip,text_substring:()=>text_text_substring,text_substring2:()=>text_text_substring2,text_substring3:()=>text_text_substring3,text_textarea:()=>text_text_textarea});var generators_lists_namespaceObject={};__webpack_require__.r(generators_lists_namespaceObject),__webpack_require__.d(generators_lists_namespaceObject,{enumerate:()=>lists_enumerate,list_many_input:()=>lists_list_many_input,list_tolist:()=>lists_list_tolist,list_tolist2:()=>lists_list_tolist2,list_trig:()=>lists_list_trig,lists_2d_get_col_row_data:()=>lists_lists_2d_get_col_row_data,lists_2d_get_data_with_col_row:()=>lists_lists_2d_get_data_with_col_row,lists_append_extend:()=>lists_lists_append_extend,lists_change_to:()=>lists_lists_change_to,lists_change_to_general:()=>lists_lists_change_to_general,lists_clear:()=>lists_lists_clear,lists_create_with:()=>lists_lists_create_with,lists_create_with2:()=>lists_lists_create_with2,lists_create_with_noreturn:()=>lists_lists_create_with_noreturn,lists_create_with_text:()=>lists_lists_create_with_text,lists_create_with_text2:()=>lists_lists_create_with_text2,lists_del_general:()=>lists_lists_del_general,lists_find:()=>lists_lists_find,lists_getIndex3:()=>lists_lists_getIndex3,lists_getSublist3:()=>lists_lists_getSublist3,lists_get_index:()=>lists_lists_get_index,lists_get_random_item:()=>lists_lists_get_random_item,lists_get_random_sublist:()=>lists_lists_get_random_sublist,lists_get_sublist:()=>lists_lists_get_sublist,lists_insert_value:()=>lists_lists_insert_value,lists_insert_value2:()=>lists_lists_insert_value2,lists_pop:()=>lists_lists_pop,lists_remove_at:()=>lists_lists_remove_at,lists_remove_at2:()=>lists_lists_remove_at2,lists_reverse:()=>lists_lists_reverse,lists_setIndex3:()=>lists_lists_setIndex3,lists_set_index:()=>lists_lists_set_index,lists_sort:()=>lists_lists_sort});var generators_dicts_namespaceObject={};__webpack_require__.r(generators_dicts_namespaceObject),__webpack_require__.d(generators_dicts_namespaceObject,{dicts_add_change_del:()=>dicts_dicts_add_change_del,dicts_add_or_change:()=>dicts_dicts_add_or_change,dicts_clear:()=>dicts_dicts_clear,dicts_create_with:()=>dicts_dicts_create_with,dicts_create_with_noreturn:()=>dicts_dicts_create_with_noreturn,dicts_deldict:()=>dicts_dicts_deldict,dicts_delete:()=>dicts_dicts_delete,dicts_get:()=>dicts_dicts_get,dicts_get_default:()=>dicts_dicts_get_default,dicts_items:()=>dicts_dicts_items,dicts_keys:()=>dicts_dicts_keys,dicts_length:()=>dicts_dicts_length,dicts_pop:()=>dicts_dicts_pop,dicts_setdefault:()=>dicts_dicts_setdefault,dicts_to_json:()=>dicts_dicts_to_json,dicts_to_to:()=>dicts_dicts_to_to,dicts_todict:()=>dicts_dicts_todict,dicts_update:()=>dicts_dicts_update,dicts_values:()=>dicts_dicts_values,json_to_dicts:()=>dicts_json_to_dicts});var generators_logic_namespaceObject={};__webpack_require__.r(generators_logic_namespaceObject),__webpack_require__.d(generators_logic_namespaceObject,{logic_boolean:()=>logic_logic_boolean,logic_compare:()=>logic_logic_compare,logic_compare_continous:()=>logic_logic_compare_continous,logic_is:()=>logic_logic_is,logic_is_in:()=>logic_logic_is_in,logic_negate:()=>logic_logic_negate,logic_null:()=>logic_logic_null,logic_operation:()=>logic_logic_operation,logic_tobool:()=>logic_logic_tobool,logic_true_or_false:()=>logic_logic_true_or_false});var generators_storage_namespaceObject={};__webpack_require__.r(generators_storage_namespaceObject),__webpack_require__.d(generators_storage_namespaceObject,{sdcard_mount:()=>storage_sdcard_mount,sdcard_use_spi_init:()=>storage_sdcard_use_spi_init,storage_can_write_ornot:()=>storage_storage_can_write_ornot,storage_change_dir:()=>storage_storage_change_dir,storage_close_file:()=>storage_storage_close_file,storage_delete_file:()=>storage_storage_delete_file,storage_file_seek:()=>storage_storage_file_seek,storage_file_tell:()=>storage_storage_file_tell,storage_file_write:()=>storage_storage_file_write,storage_fileopen:()=>storage_storage_fileopen,storage_fileopen_new:()=>storage_storage_fileopen_new,storage_fileopen_new_encoding:()=>storage_storage_fileopen_new_encoding,storage_get_a_line:()=>storage_storage_get_a_line,storage_get_contents:()=>storage_storage_get_contents,storage_get_contents_without_para:()=>storage_storage_get_contents_without_para,storage_get_current_dir:()=>storage_storage_get_current_dir,storage_get_file_size:()=>storage_storage_get_file_size,storage_get_filename:()=>storage_storage_get_filename,storage_is_file:()=>storage_storage_is_file,storage_list_all_files:()=>storage_storage_list_all_files,storage_make_dir:()=>storage_storage_make_dir,storage_open_file_with_os:()=>storage_storage_open_file_with_os,storage_rename:()=>storage_storage_rename});var generators_procedures_namespaceObject={};__webpack_require__.r(generators_procedures_namespaceObject),__webpack_require__.d(generators_procedures_namespaceObject,{procedures_callnoreturn:()=>procedures_procedures_callnoreturn,procedures_callreturn:()=>procedures_procedures_callreturn,procedures_defnoreturn:()=>procedures_procedures_defnoreturn,procedures_defreturn:()=>procedures_procedures_defreturn,procedures_ifreturn:()=>procedures_procedures_ifreturn,procedures_return:()=>procedures_procedures_return});var generators_tuple_namespaceObject={};__webpack_require__.r(generators_tuple_namespaceObject),__webpack_require__.d(generators_tuple_namespaceObject,{tuple_change_to:()=>tuple_tuple_change_to,tuple_create_with:()=>tuple_tuple_create_with,tuple_create_with_noreturn:()=>tuple_tuple_create_with_noreturn,tuple_create_with_text2:()=>tuple_tuple_create_with_text2,tuple_create_with_text_return:()=>tuple_tuple_create_with_text_return,tuple_del:()=>tuple_tuple_del,tuple_find:()=>tuple_tuple_find,tuple_getIndex:()=>tuple_tuple_getIndex,tuple_getSublist:()=>tuple_tuple_getSublist,tuple_get_random_item:()=>tuple_tuple_get_random_item,tuple_get_sublist:()=>tuple_tuple_get_sublist,tuple_join:()=>tuple_tuple_join,tuple_length:()=>tuple_tuple_length,tuple_max:()=>tuple_tuple_max,tuple_totuple:()=>tuple_tuple_totuple,tuple_trig:()=>tuple_tuple_trig});var generators_set_namespaceObject={};__webpack_require__.r(generators_set_namespaceObject),__webpack_require__.d(generators_set_namespaceObject,{set_add_discard:()=>set_set_add_discard,set_clear:()=>set_set_clear,set_create_with:()=>set_set_create_with,set_create_with_text_return:()=>set_set_create_with_text_return,set_length:()=>set_set_length,set_operate:()=>set_set_operate,set_operate_update:()=>set_set_operate_update,set_pop:()=>set_set_pop,set_sub:()=>set_set_sub,set_toset:()=>set_set_toset,set_update:()=>set_set_update});var generators_html_namespaceObject={};__webpack_require__.r(generators_html_namespaceObject),__webpack_require__.d(generators_html_namespaceObject,{html_content:()=>html_html_content,html_content_more:()=>html_html_content_more,html_document:()=>html_html_document,html_form:()=>html_html_form,html_head_body:()=>html_html_head_body,html_style:()=>html_html_style,html_style_content:()=>html_html_style_content,html_text:()=>html_html_text,html_title:()=>html_html_title});var generators_utility_namespaceObject={};__webpack_require__.r(generators_utility_namespaceObject),__webpack_require__.d(generators_utility_namespaceObject,{attribute_access:()=>utility_attribute_access,function_call:()=>utility_function_call,raw_block:()=>utility_raw_block,raw_empty:()=>utility_raw_empty,raw_expression:()=>utility_raw_expression,raw_table:()=>utility_raw_table,type_check:()=>utility_type_check});var ai_namespaceObject={};__webpack_require__.r(ai_namespaceObject),__webpack_require__.d(ai_namespaceObject,{AI_ChooseAndGet:()=>AI_ChooseAndGet,AI_Face_match:()=>AI_Face_match,AI_ImageClassify:()=>AI_ImageClassify,AI_ImageClassify_Func:()=>AI_ImageClassify_Func,AI_Nlp:()=>AI_Nlp,AI_Nlp_Func:()=>AI_Nlp_Func,AI_Nlp_Func_sim:()=>AI_Nlp_Func_sim,AI_Nlp_Sim:()=>AI_Nlp_Sim,AI_Nlp_Topic:()=>AI_Nlp_Topic,AI_Nlp_newsSummary:()=>AI_Nlp_newsSummary,AI_Ocr:()=>AI_Ocr,AI_Ocr_Func:()=>AI_Ocr_Func,AI_Speech_asr:()=>AI_Speech_asr,AI_Speech_synthesis:()=>AI_Speech_synthesis,AI_audio:()=>AI_audio,AI_client:()=>AI_client,AI_photo:()=>AI_photo,AI_result:()=>AI_result});var algorithm_namespaceObject={};__webpack_require__.r(algorithm_namespaceObject),__webpack_require__.d(algorithm_namespaceObject,{algorithm_add_path:()=>algorithm_add_path,algorithm_add_school:()=>algorithm_add_school,algorithm_all_books:()=>algorithm_all_books,algorithm_all_books_sequence:()=>algorithm_all_books_sequence,algorithm_book_scale:()=>algorithm_book_scale,algorithm_check_feet:()=>algorithm_check_feet,algorithm_chick_calculate:()=>algorithm_chick_calculate,algorithm_color_seclet:()=>algorithm_color_seclet,algorithm_current_school:()=>algorithm_current_school,algorithm_del_path:()=>algorithm_del_path,algorithm_delete_book:()=>algorithm_delete_book,algorithm_delete_books:()=>algorithm_delete_books,algorithm_delete_books2:()=>algorithm_delete_books2,algorithm_divide_books:()=>algorithm_divide_books,algorithm_find_path:()=>algorithm_find_path,algorithm_first_book:()=>algorithm_first_book,algorithm_fz_calc:()=>algorithm_fz_calc,algorithm_fz_calc_first_min:()=>algorithm_fz_calc_first_min,algorithm_fz_compare:()=>algorithm_fz_compare,algorithm_fz_move:()=>algorithm_fz_move,algorithm_fz_set_min:()=>algorithm_fz_set_min,algorithm_get_book_num:()=>algorithm_get_book_num,algorithm_get_current_location:()=>algorithm_get_current_location,algorithm_get_half_books:()=>algorithm_get_half_books,algorithm_hxdb_add:()=>algorithm_hxdb_add,algorithm_hxdb_init_soldier:()=>algorithm_hxdb_init_soldier,algorithm_hxdb_last_line:()=>algorithm_hxdb_last_line,algorithm_hxdb_result:()=>algorithm_hxdb_result,algorithm_hxdb_stand_in_line:()=>algorithm_hxdb_stand_in_line,algorithm_init_fzsf:()=>algorithm_init_fzsf,algorithm_init_hxdb:()=>algorithm_init_hxdb,algorithm_init_jttl:()=>algorithm_init_jttl,algorithm_move_recent:()=>algorithm_move_recent,algorithm_new_path:()=>algorithm_new_path,algorithm_next_book:()=>algorithm_next_book,algorithm_no_left:()=>algorithm_no_left,algorithm_no_path:()=>algorithm_no_path,algorithm_no_ring2:()=>algorithm_no_ring2,algorithm_not_home:()=>algorithm_not_home,algorithm_not_school:()=>algorithm_not_school,algorithm_number_add:()=>algorithm_number_add,algorithm_number_zero:()=>algorithm_number_zero,algorithm_prepare:()=>algorithm_prepare,algorithm_prepare2:()=>algorithm_prepare2,algorithm_prepare_2_1:()=>algorithm_prepare_2_1,algorithm_prepare_2_2:()=>algorithm_prepare_2_2,algorithm_print_book2:()=>algorithm_print_book2,algorithm_print_divide:()=>algorithm_print_divide,algorithm_print_jttl_answer:()=>algorithm_print_jttl_answer,algorithm_print_number:()=>algorithm_print_number,algorithm_print_path:()=>algorithm_print_path,algorithm_print_path2:()=>algorithm_print_path2,algorithm_print_sequence:()=>algorithm_print_sequence,algorithm_rabbit_add:()=>algorithm_rabbit_add,algorithm_rabbit_number_in_range:()=>algorithm_rabbit_number_in_range,algorithm_rabbit_zero:()=>algorithm_rabbit_zero,algorithm_return_path:()=>algorithm_return_path,algorithm_set_path:()=>algorithm_set_path,algorithm_two_left:()=>algorithm_two_left,algorithm_void_path:()=>algorithm_void_path,algorithm_yes_ring2:()=>algorithm_yes_ring2,hanoi_init:()=>hanoi_init,hanoi_init_offline:()=>hanoi_init_offline,hanoi_move:()=>hanoi_move});var communicate_namespaceObject={};__webpack_require__.r(communicate_namespaceObject),__webpack_require__.d(communicate_namespaceObject,{requests_attribute:()=>requests_attribute,requests_get:()=>requests_get,requests_get_old:()=>requests_get_old,requests_method:()=>requests_method,requests_post:()=>requests_post});var cv_namespaceObject={};__webpack_require__.r(cv_namespaceObject),__webpack_require__.d(cv_namespaceObject,{cv_destroy_all:()=>cv_destroy_all,cv_face_classifier:()=>cv_face_classifier,cv_face_detect:()=>cv_face_detect,cv_face_detect_all:()=>cv_face_detect_all,cv_line_rect:()=>cv_line_rect,cv_read_image:()=>cv_read_image,cv_show_image:()=>cv_show_image,cv_text:()=>cv_text,cv_waitkey:()=>cv_waitkey,cv_write_image:()=>cv_write_image});var data_namespaceObject={};__webpack_require__.r(data_namespaceObject),__webpack_require__.d(data_namespaceObject,{array_create:()=>array_create,array_toarray:()=>array_toarray,dataframe_aggregate_func:()=>dataframe_aggregate_func,dataframe_create:()=>dataframe_create,dataframe_create_from_index:()=>dataframe_create_from_index,dataframe_create_from_one_index:()=>dataframe_create_from_one_index,dataframe_fillna:()=>dataframe_fillna,dataframe_get:()=>dataframe_get,dataframe_groupby:()=>dataframe_groupby,dataframe_head_tail:()=>dataframe_head_tail,dataframe_info:()=>dataframe_info,dataframe_median:()=>dataframe_median,dataframe_select:()=>dataframe_select,dataframe_sort_values:()=>dataframe_sort_values,matrix_multiplication:()=>matrix_multiplication,matrix_transpose:()=>matrix_transpose,numpy_argmin_template_match:()=>numpy_argmin_template_match,numpy_astype:()=>numpy_astype,numpy_c_:()=>numpy_c_,numpy_dot:()=>numpy_dot,numpy_linalg_det:()=>numpy_linalg_det,numpy_linalg_inv:()=>numpy_linalg_inv,numpy_max:()=>numpy_max,numpy_mean:()=>numpy_mean,numpy_mean_digit:()=>numpy_mean_digit,numpy_min:()=>numpy_min,numpy_ones:()=>numpy_ones,numpy_random_random:()=>numpy_random_random,numpy_reshape:()=>numpy_reshape,numpy_shape:()=>numpy_shape,numpy_size:()=>numpy_size,numpy_square:()=>numpy_square,numpy_std:()=>numpy_std,numpy_sum:()=>numpy_sum,numpy_trig:()=>numpy_trig,pandas_drop_columns:()=>pandas_drop_columns,pandas_dropna:()=>pandas_dropna,pandas_readcsv:()=>pandas_readcsv,pl_axes:()=>pl_axes,pl_bar:()=>pl_bar,pl_hist:()=>pl_hist,pl_label:()=>pl_label,pl_legend:()=>pl_legend,pl_pie:()=>pl_pie,pl_plot:()=>pl_plot,pl_plot_bar:()=>pl_plot_bar,pl_plot_easy:()=>pl_plot_easy,pl_plot_scatter:()=>pl_plot_scatter,pl_plot_xy:()=>pl_plot_xy,pl_savefig:()=>pl_savefig,pl_show:()=>pl_show,pl_subplot:()=>pl_subplot,pl_text:()=>pl_text,pl_ticks:()=>pl_ticks,pl_title:()=>pl_title,plot_axes:()=>plot_axes,plot_bar:()=>plot_bar,plot_cla:()=>plot_cla,plot_hist:()=>plot_hist,plot_label:()=>plot_label,plot_legend:()=>plot_legend,plot_pie:()=>plot_pie,plot_plot:()=>plot_plot,plot_plot_bar:()=>plot_plot_bar,plot_plot_easy:()=>plot_plot_easy,plot_plot_scatter:()=>plot_plot_scatter,plot_plot_xy:()=>plot_plot_xy,plot_savefig:()=>plot_savefig,plot_show:()=>plot_show,plot_subplot:()=>plot_subplot,plot_text:()=>plot_text,plot_ticks:()=>plot_ticks,plot_title:()=>plot_title,py_sum:()=>py_sum,pylab_imshow:()=>pylab_imshow,series_create:()=>series_create,series_create_from_index:()=>series_create_from_index,series_create_from_text:()=>series_create_from_text,series_get_num:()=>series_get_num,series_index_value:()=>series_index_value});var datastructure_namespaceObject={};__webpack_require__.r(datastructure_namespaceObject),__webpack_require__.d(datastructure_namespaceObject,{ds_add_node_by_attr:()=>ds_add_node_by_attr,ds_add_node_by_name:()=>ds_add_node_by_name,ds_create_linkedlist:()=>ds_create_linkedlist,ds_create_linkedlist_container:()=>ds_create_linkedlist_container,ds_create_linkedlist_item:()=>ds_create_linkedlist_item,ds_create_node:()=>ds_create_node,ds_del_node_by_attr:()=>ds_del_node_by_attr,ds_del_node_by_name:()=>ds_del_node_by_name,ds_get_node_attr:()=>ds_get_node_attr,ds_reverse_linkedlist:()=>ds_reverse_linkedlist,ds_set_node_attr:()=>ds_set_node_attr});var factory_namespaceObject={};__webpack_require__.r(factory_namespaceObject),__webpack_require__.d(factory_namespaceObject,{factory_block:()=>factory_block,factory_block_return:()=>factory_block_return,factory_block_return_with_textarea:()=>factory_block_return_with_textarea,factory_block_with_textarea:()=>factory_block_with_textarea,factory_callMethod_noreturn:()=>factory_callMethod_noreturn,factory_callMethod_return:()=>factory_callMethod_return,factory_create_with_container:()=>factory_create_with_container,factory_create_with_item:()=>factory_create_with_item,factory_declare:()=>factory_declare,factory_from_import:()=>factory_from_import,factory_function_noreturn:()=>factory_function_noreturn,factory_function_return:()=>factory_function_return,factory_import:()=>factory_import});var hardware_namespaceObject={};__webpack_require__.r(hardware_namespaceObject),__webpack_require__.d(hardware_namespaceObject,{hardware_arduino_analog_read:()=>hardware_arduino_analog_read,hardware_arduino_analog_write:()=>hardware_arduino_analog_write,hardware_arduino_digital_read:()=>hardware_arduino_digital_read,hardware_arduino_digital_write:()=>hardware_arduino_digital_write,hardware_arduino_start:()=>hardware_arduino_start,inout_highlow:()=>inout_highlow});var inout_namespaceObject={};__webpack_require__.r(inout_namespaceObject),__webpack_require__.d(inout_namespaceObject,{inout_input:()=>inout_input,inout_print:()=>inout_print,inout_print_container:()=>inout_print_container,inout_print_end:()=>inout_print_end,inout_print_inline:()=>inout_print_inline,inout_print_item:()=>inout_print_item,inout_print_many:()=>inout_print_many,inout_type_input:()=>inout_type_input,pyinout_type_input:()=>pyinout_type_input});var iot_namespaceObject={};__webpack_require__.r(iot_namespaceObject),__webpack_require__.d(iot_namespaceObject,{IOT_EMQX_INIT_AND_CONNECT_BY_MIXLY_CODE:()=>IOT_EMQX_INIT_AND_CONNECT_BY_MIXLY_CODE,IOT_EMQX_INIT_AND_CONNECT_BY_SHARE_CODE:()=>IOT_EMQX_INIT_AND_CONNECT_BY_SHARE_CODE,IOT_EMQX_PING:()=>IOT_EMQX_PING,IOT_FORMATTING:()=>IOT_FORMATTING,IOT_FORMAT_STRING:()=>IOT_FORMAT_STRING,IOT_MIXIO_NTP:()=>IOT_MIXIO_NTP,IOT_MIXIO_PUBLISH:()=>IOT_MIXIO_PUBLISH,IOT_MIXIO_SUBSCRIBE:()=>IOT_MIXIO_SUBSCRIBE,IOT_MIXIO_UNSUBSCRIBE:()=>IOT_MIXIO_UNSUBSCRIBE,iot_checkonenet:()=>iot_checkonenet,iot_client_onboard:()=>iot_client_onboard,iot_create_with_item:()=>iot_create_with_item,iot_http_client:()=>iot_http_client,iot_http_data:()=>iot_http_data,iot_mixio_check:()=>iot_mixio_check,iot_mixio_connect:()=>iot_mixio_connect,iot_mixio_connect_only:()=>iot_mixio_connect_only,iot_mixio_disconnect:()=>iot_mixio_disconnect,iot_mixio_format_msg:()=>iot_mixio_format_msg,iot_mixio_format_topic:()=>iot_mixio_format_topic,iot_mixly_key:()=>iot_mixly_key,iot_mixly_key_py:()=>iot_mixly_key_py,iot_mqtt_client:()=>iot_mqtt_client,iot_mqtt_data:()=>iot_mqtt_data,iot_onenet_check:()=>iot_onenet_check,iot_onenet_connect:()=>iot_onenet_connect,iot_onenet_disconnect:()=>iot_onenet_disconnect,iot_onenet_publish:()=>iot_onenet_publish,iot_onenet_publish_dict:()=>iot_onenet_publish_dict,iot_onenetconnect:()=>iot_onenetconnect,iot_onenetdisconnect:()=>iot_onenetdisconnect,iot_publish:()=>iot_publish,iot_publish_container:()=>iot_publish_container,iot_publish_item:()=>iot_publish_item});var pins_namespaceObject={};__webpack_require__.r(pins_namespaceObject),__webpack_require__.d(pins_namespaceObject,{pins_analog_read:()=>pins_analog_read,pins_analog_write:()=>pins_analog_write,pins_digital_read:()=>pins_digital_read,pins_digital_write:()=>pins_digital_write});var serial_namespaceObject={};__webpack_require__.r(serial_namespaceObject),__webpack_require__.d(serial_namespaceObject,{serial_close:()=>serial_close,serial_open:()=>serial_open,serial_read_b:()=>serial_read_b,serial_write:()=>serial_write});var sklearn_namespaceObject={};__webpack_require__.r(sklearn_namespaceObject),__webpack_require__.d(sklearn_namespaceObject,{sklearn_DecisionTreeClassifier_Regressor:()=>sklearn_DecisionTreeClassifier_Regressor,sklearn_GaussianNB:()=>sklearn_GaussianNB,sklearn_KMeans:()=>sklearn_KMeans,sklearn_KNeighborsClassifier_Regressor:()=>sklearn_KNeighborsClassifier_Regressor,sklearn_LinearRegression:()=>sklearn_LinearRegression,sklearn_RandomForestClassifier_Regressor:()=>sklearn_RandomForestClassifier_Regressor,sklearn_Ridge:()=>sklearn_Ridge,sklearn_cluster_centers_labels_inertia:()=>sklearn_cluster_centers_labels_inertia,sklearn_coef_intercept:()=>sklearn_coef_intercept,sklearn_data_target:()=>sklearn_data_target,sklearn_fit:()=>sklearn_fit,sklearn_fit_no_target:()=>sklearn_fit_no_target,sklearn_load:()=>sklearn_load,sklearn_make_blobs:()=>sklearn_make_blobs,sklearn_make_classification:()=>sklearn_make_classification,sklearn_make_regression:()=>sklearn_make_regression,sklearn_predict:()=>sklearn_predict,sklearn_save_load_model:()=>sklearn_save_load_model,sklearn_score:()=>sklearn_score,sklearn_score_no_target:()=>sklearn_score_no_target,sklearn_train_test_split:()=>sklearn_train_test_split,sklearn_train_test_split_no_target:()=>sklearn_train_test_split_no_target});var system_namespaceObject={};__webpack_require__.r(system_namespaceObject),__webpack_require__.d(system_namespaceObject,{Panic_with_status_code:()=>system_Panic_with_status_code,base_delay:()=>base_delay,controls_millis:()=>system_controls_millis,controls_mstimer2:()=>controls_mstimer2,controls_mstimer2_start:()=>controls_mstimer2_start,controls_mstimer2_stop:()=>controls_mstimer2_stop,reset:()=>system_reset,time_localtime:()=>time_localtime,time_sleep:()=>system_time_sleep});var turtle_namespaceObject={};__webpack_require__.r(turtle_namespaceObject),__webpack_require__.d(turtle_namespaceObject,{turtle_bgcolor:()=>turtle_bgcolor,turtle_bgcolor_hex:()=>turtle_bgcolor_hex,turtle_bgcolor_hex_new:()=>turtle_bgcolor_hex_new,turtle_circle:()=>turtle_circle,turtle_circle_advanced:()=>turtle_circle_advanced,turtle_clear:()=>turtle_clear,turtle_clone:()=>turtle_clone,turtle_color:()=>turtle_color,turtle_color_hex:()=>turtle_color_hex,turtle_color_seclet:()=>turtle_color_seclet,turtle_create:()=>turtle_create,turtle_done:()=>turtle_done,turtle_exitonclick:()=>turtle_exitonclick,turtle_fill:()=>turtle_fill,turtle_fillcolor:()=>turtle_fillcolor,turtle_fillcolor_hex:()=>turtle_fillcolor_hex,turtle_fillcolor_hex_new:()=>turtle_fillcolor_hex_new,turtle_getscreen:()=>turtle_getscreen,turtle_goto:()=>turtle_goto,turtle_listen:()=>turtle_listen,turtle_move:()=>turtle_move,turtle_numinput:()=>turtle_numinput,turtle_onclick:()=>turtle_onclick,turtle_onkey:()=>turtle_onkey,turtle_ontimer:()=>turtle_ontimer,turtle_pencolor:()=>turtle_pencolor,turtle_pencolor_hex:()=>turtle_pencolor_hex,turtle_pencolor_hex_new:()=>turtle_pencolor_hex_new,turtle_penup:()=>turtle_penup,turtle_pos_shape:()=>turtle_pos_shape,turtle_rotate:()=>turtle_rotate,turtle_screen_delay:()=>turtle_screen_delay,turtle_screen_savefig:()=>turtle_screen_savefig,turtle_setheading:()=>turtle_setheading,turtle_setxy:()=>turtle_setxy,turtle_shape:()=>turtle_shape,turtle_shapesize:()=>turtle_shapesize,turtle_size:()=>turtle_size,turtle_size_speed:()=>turtle_size_speed,turtle_speed:()=>turtle_speed,turtle_textinput:()=>turtle_textinput,turtle_visible:()=>turtle_visible,turtle_write:()=>turtle_write,turtle_write_format:()=>turtle_write_format,turtle_write_format_skulpt:()=>turtle_write_format_skulpt});var generators_ai_namespaceObject={};__webpack_require__.r(generators_ai_namespaceObject),__webpack_require__.d(generators_ai_namespaceObject,{AI_ChooseAndGet:()=>ai_AI_ChooseAndGet,AI_Face_match:()=>ai_AI_Face_match,AI_ImageClassify:()=>ai_AI_ImageClassify,AI_ImageClassify_Func:()=>ai_AI_ImageClassify_Func,AI_Nlp:()=>ai_AI_Nlp,AI_Nlp_Func:()=>ai_AI_Nlp_Func,AI_Nlp_Func_sim:()=>ai_AI_Nlp_Func_sim,AI_Nlp_Sim:()=>ai_AI_Nlp_Sim,AI_Nlp_Topic:()=>ai_AI_Nlp_Topic,AI_Nlp_newsSummary:()=>ai_AI_Nlp_newsSummary,AI_Ocr:()=>ai_AI_Ocr,AI_Ocr_Func:()=>ai_AI_Ocr_Func,AI_Speech_asr:()=>ai_AI_Speech_asr,AI_Speech_synthesis:()=>ai_AI_Speech_synthesis,AI_audio:()=>ai_AI_audio,AI_client:()=>ai_AI_client,AI_photo:()=>ai_AI_photo,AI_result:()=>ai_AI_result});var generators_algorithm_namespaceObject={};__webpack_require__.r(generators_algorithm_namespaceObject),__webpack_require__.d(generators_algorithm_namespaceObject,{algorithm_add_path:()=>algorithm_algorithm_add_path,algorithm_add_school:()=>algorithm_algorithm_add_school,algorithm_all_books:()=>algorithm_algorithm_all_books,algorithm_all_books_sequence:()=>algorithm_algorithm_all_books_sequence,algorithm_book_scale:()=>algorithm_algorithm_book_scale,algorithm_check_feet:()=>algorithm_algorithm_check_feet,algorithm_chick_calculate:()=>algorithm_algorithm_chick_calculate,algorithm_color_seclet:()=>algorithm_algorithm_color_seclet,algorithm_current_school:()=>algorithm_algorithm_current_school,algorithm_del_path:()=>algorithm_algorithm_del_path,algorithm_delete_book:()=>algorithm_algorithm_delete_book,algorithm_divide_books:()=>algorithm_algorithm_divide_books,algorithm_find_path:()=>algorithm_algorithm_find_path,algorithm_first_book:()=>algorithm_algorithm_first_book,algorithm_fz_calc:()=>algorithm_algorithm_fz_calc,algorithm_fz_compare:()=>algorithm_algorithm_fz_compare,algorithm_fz_move:()=>algorithm_algorithm_fz_move,algorithm_fz_set_min:()=>algorithm_algorithm_fz_set_min,algorithm_get_current_location:()=>algorithm_algorithm_get_current_location,algorithm_get_half_books:()=>algorithm_algorithm_get_half_books,algorithm_hxdb_add:()=>algorithm_algorithm_hxdb_add,algorithm_hxdb_init_soldier:()=>algorithm_algorithm_hxdb_init_soldier,algorithm_hxdb_last_line:()=>algorithm_algorithm_hxdb_last_line,algorithm_hxdb_result:()=>algorithm_algorithm_hxdb_result,algorithm_hxdb_stand_in_line:()=>algorithm_algorithm_hxdb_stand_in_line,algorithm_init_fzsf:()=>algorithm_algorithm_init_fzsf,algorithm_init_hxdb:()=>algorithm_algorithm_init_hxdb,algorithm_init_jttl:()=>algorithm_algorithm_init_jttl,algorithm_move_recent:()=>algorithm_algorithm_move_recent,algorithm_new_path:()=>algorithm_algorithm_new_path,algorithm_next_book:()=>algorithm_algorithm_next_book,algorithm_no_left:()=>algorithm_algorithm_no_left,algorithm_no_path:()=>algorithm_algorithm_no_path,algorithm_no_ring2:()=>algorithm_algorithm_no_ring2,algorithm_not_home:()=>algorithm_algorithm_not_home,algorithm_not_school:()=>algorithm_algorithm_not_school,algorithm_number_add:()=>algorithm_algorithm_number_add,algorithm_number_zero:()=>algorithm_algorithm_number_zero,algorithm_prepare:()=>algorithm_algorithm_prepare,algorithm_prepare2:()=>algorithm_algorithm_prepare2,algorithm_prepare_2_1:()=>algorithm_algorithm_prepare_2_1,algorithm_prepare_2_2:()=>algorithm_algorithm_prepare_2_2,algorithm_print_book2:()=>algorithm_algorithm_print_book2,algorithm_print_jttl_answer:()=>algorithm_algorithm_print_jttl_answer,algorithm_print_number:()=>algorithm_algorithm_print_number,algorithm_print_path:()=>algorithm_algorithm_print_path,algorithm_print_path2:()=>algorithm_algorithm_print_path2,algorithm_rabbit_add:()=>algorithm_algorithm_rabbit_add,algorithm_rabbit_number_in_range:()=>algorithm_algorithm_rabbit_number_in_range,algorithm_rabbit_zero:()=>algorithm_algorithm_rabbit_zero,algorithm_return_path:()=>algorithm_algorithm_return_path,algorithm_set_path:()=>algorithm_algorithm_set_path,algorithm_two_left:()=>algorithm_algorithm_two_left,algorithm_void_path:()=>algorithm_algorithm_void_path,algorithm_yes_ring2:()=>algorithm_algorithm_yes_ring2,hanoi_init:()=>algorithm_hanoi_init,hanoi_init_offline:()=>algorithm_hanoi_init_offline,hanoi_move:()=>algorithm_hanoi_move});var generators_communicate_namespaceObject={};__webpack_require__.r(generators_communicate_namespaceObject),__webpack_require__.d(generators_communicate_namespaceObject,{requests_attribute:()=>communicate_requests_attribute,requests_get:()=>communicate_requests_get,requests_get_old:()=>communicate_requests_get_old,requests_method:()=>communicate_requests_method,requests_post:()=>communicate_requests_post});var generators_data_namespaceObject={};__webpack_require__.r(generators_data_namespaceObject),__webpack_require__.d(generators_data_namespaceObject,{array_create:()=>data_array_create,array_toarray:()=>data_array_toarray,dataframe_aggregate_func:()=>data_dataframe_aggregate_func,dataframe_create:()=>data_dataframe_create,dataframe_create_from_index:()=>data_dataframe_create_from_index,dataframe_create_from_one_index:()=>data_dataframe_create_from_one_index,dataframe_fillna:()=>data_dataframe_fillna,dataframe_get:()=>data_dataframe_get,dataframe_groupby:()=>data_dataframe_groupby,dataframe_head_tail:()=>data_dataframe_head_tail,dataframe_info:()=>data_dataframe_info,dataframe_median:()=>data_dataframe_median,dataframe_select:()=>data_dataframe_select,dataframe_sort_values:()=>data_dataframe_sort_values,matrix_multiplication:()=>data_matrix_multiplication,matrix_transpose:()=>data_matrix_transpose,numpy_argmin_template_match:()=>data_numpy_argmin_template_match,numpy_astype:()=>data_numpy_astype,numpy_c_:()=>data_numpy_c_,numpy_dot:()=>data_numpy_dot,numpy_linalg_det:()=>data_numpy_linalg_det,numpy_linalg_inv:()=>data_numpy_linalg_inv,numpy_max:()=>data_numpy_max,numpy_mean:()=>data_numpy_mean,numpy_mean_digit:()=>data_numpy_mean_digit,numpy_min:()=>data_numpy_min,numpy_ones:()=>data_numpy_ones,numpy_random_random:()=>data_numpy_random_random,numpy_reshape:()=>data_numpy_reshape,numpy_shape:()=>data_numpy_shape,numpy_size:()=>data_numpy_size,numpy_square:()=>data_numpy_square,numpy_std:()=>data_numpy_std,numpy_sum:()=>data_numpy_sum,numpy_trig:()=>data_numpy_trig,pandas_drop_columns:()=>data_pandas_drop_columns,pandas_dropna:()=>data_pandas_dropna,pandas_readcsv:()=>data_pandas_readcsv,pl_axes:()=>data_pl_axes,pl_bar:()=>data_pl_bar,pl_hist:()=>data_pl_hist,pl_label:()=>data_pl_label,pl_legend:()=>data_pl_legend,pl_pie:()=>data_pl_pie,pl_plot:()=>data_pl_plot,pl_plot_bar:()=>data_pl_plot_bar,pl_plot_easy:()=>data_pl_plot_easy,pl_plot_scatter:()=>data_pl_plot_scatter,pl_plot_xy:()=>data_pl_plot_xy,pl_savefig:()=>data_pl_savefig,pl_show:()=>data_pl_show,pl_subplot:()=>data_pl_subplot,pl_text:()=>data_pl_text,pl_ticks:()=>data_pl_ticks,pl_title:()=>data_pl_title,plot_axes:()=>data_plot_axes,plot_bar:()=>data_plot_bar,plot_cla:()=>data_plot_cla,plot_hist:()=>data_plot_hist,plot_label:()=>data_plot_label,plot_legend:()=>data_plot_legend,plot_pie:()=>data_plot_pie,plot_plot:()=>data_plot_plot,plot_plot_bar:()=>data_plot_plot_bar,plot_plot_easy:()=>data_plot_plot_easy,plot_plot_scatter:()=>data_plot_plot_scatter,plot_plot_xy:()=>data_plot_plot_xy,plot_savefig:()=>data_plot_savefig,plot_show:()=>data_plot_show,plot_subplot:()=>data_plot_subplot,plot_text:()=>data_plot_text,plot_ticks:()=>data_plot_ticks,plot_title:()=>data_plot_title,py_sum:()=>data_py_sum,pylab_imshow:()=>data_pylab_imshow,series_create:()=>data_series_create,series_create_from_index:()=>data_series_create_from_index,series_create_from_text:()=>data_series_create_from_text,series_get_num:()=>data_series_get_num,series_index_value:()=>data_series_index_value});var generators_datastructure_namespaceObject={};__webpack_require__.r(generators_datastructure_namespaceObject),__webpack_require__.d(generators_datastructure_namespaceObject,{ds_add_node_by_attr:()=>datastructure_ds_add_node_by_attr,ds_add_node_by_name:()=>datastructure_ds_add_node_by_name,ds_create_linkedlist:()=>datastructure_ds_create_linkedlist,ds_create_node:()=>datastructure_ds_create_node,ds_del_node_by_attr:()=>datastructure_ds_del_node_by_attr,ds_del_node_by_name:()=>datastructure_ds_del_node_by_name,ds_get_node_attr:()=>datastructure_ds_get_node_attr,ds_reverse_linkedlist:()=>datastructure_ds_reverse_linkedlist,ds_set_node_attr:()=>datastructure_ds_set_node_attr});var generators_factory_namespaceObject={};__webpack_require__.r(generators_factory_namespaceObject),__webpack_require__.d(generators_factory_namespaceObject,{factory_block:()=>factory_factory_block,factory_block_return:()=>factory_factory_block_return,factory_block_return_with_textarea:()=>factory_factory_block_return_with_textarea,factory_block_with_textarea:()=>factory_factory_block_with_textarea,factory_callMethod_noreturn:()=>factory_factory_callMethod_noreturn,factory_callMethod_return:()=>factory_factory_callMethod_return,factory_declare:()=>factory_factory_declare,factory_from_import:()=>factory_factory_from_import,factory_function_noreturn:()=>factory_factory_function_noreturn,factory_function_return:()=>factory_factory_function_return,factory_import:()=>factory_factory_import});var generators_hardware_namespaceObject={};__webpack_require__.r(generators_hardware_namespaceObject),__webpack_require__.d(generators_hardware_namespaceObject,{hardware_arduino_analog_read:()=>hardware_hardware_arduino_analog_read,hardware_arduino_analog_write:()=>hardware_hardware_arduino_analog_write,hardware_arduino_digital_read:()=>hardware_hardware_arduino_digital_read,hardware_arduino_digital_write:()=>hardware_hardware_arduino_digital_write,hardware_arduino_start:()=>hardware_hardware_arduino_start,inout_highlow:()=>hardware_inout_highlow});var generators_inout_namespaceObject={};__webpack_require__.r(generators_inout_namespaceObject),__webpack_require__.d(generators_inout_namespaceObject,{inout_input:()=>inout_inout_input,inout_print:()=>inout_inout_print,inout_print_end:()=>inout_inout_print_end,inout_print_inline:()=>inout_inout_print_inline,inout_print_many:()=>inout_inout_print_many,inout_type_input:()=>inout_inout_type_input,pyinout_type_input:()=>inout_pyinout_type_input});var generators_iot_namespaceObject={};__webpack_require__.r(generators_iot_namespaceObject),__webpack_require__.d(generators_iot_namespaceObject,{IOT_EMQX_INIT_AND_CONNECT_BY_MIXLY_CODE:()=>iot_IOT_EMQX_INIT_AND_CONNECT_BY_MIXLY_CODE,IOT_EMQX_INIT_AND_CONNECT_BY_SHARE_CODE:()=>iot_IOT_EMQX_INIT_AND_CONNECT_BY_SHARE_CODE,IOT_EMQX_PING:()=>iot_IOT_EMQX_PING,IOT_FORMATTING:()=>iot_IOT_FORMATTING,IOT_FORMAT_STRING:()=>iot_IOT_FORMAT_STRING,IOT_MIXIO_NTP:()=>iot_IOT_MIXIO_NTP,IOT_MIXIO_PUBLISH:()=>iot_IOT_MIXIO_PUBLISH,IOT_MIXIO_SUBSCRIBE:()=>iot_IOT_MIXIO_SUBSCRIBE,IOT_MIXIO_UNSUBSCRIBE:()=>iot_IOT_MIXIO_UNSUBSCRIBE,iot_mixio_check:()=>iot_iot_mixio_check,iot_mixio_connect:()=>iot_iot_mixio_connect,iot_mixio_connect_only:()=>iot_iot_mixio_connect_only,iot_mixio_disconnect:()=>iot_iot_mixio_disconnect,iot_mixio_format_msg:()=>iot_iot_mixio_format_msg,iot_mixio_format_topic:()=>iot_iot_mixio_format_topic,iot_mixly_key:()=>iot_iot_mixly_key,iot_mixly_key_py:()=>iot_iot_mixly_key_py});var generators_pins_namespaceObject={};__webpack_require__.r(generators_pins_namespaceObject),__webpack_require__.d(generators_pins_namespaceObject,{pins_analog_read:()=>pins_pins_analog_read,pins_analog_write:()=>pins_pins_analog_write,pins_digital:()=>pins_digital,pins_digital_read:()=>pins_pins_digital_read,pins_digital_write:()=>pins_pins_digital_write});var generators_serial_namespaceObject={};__webpack_require__.r(generators_serial_namespaceObject),__webpack_require__.d(generators_serial_namespaceObject,{serial_close:()=>serial_serial_close,serial_open:()=>serial_serial_open,serial_read_b:()=>serial_serial_read_b,serial_write:()=>serial_serial_write});var generators_sklearn_namespaceObject={};__webpack_require__.r(generators_sklearn_namespaceObject),__webpack_require__.d(generators_sklearn_namespaceObject,{sklearn_DecisionTreeClassifier_Regressor:()=>sklearn_sklearn_DecisionTreeClassifier_Regressor,sklearn_GaussianNB:()=>sklearn_sklearn_GaussianNB,sklearn_KMeans:()=>sklearn_sklearn_KMeans,sklearn_KNeighborsClassifier_Regressor:()=>sklearn_sklearn_KNeighborsClassifier_Regressor,sklearn_LinearRegression:()=>sklearn_sklearn_LinearRegression,sklearn_RandomForestClassifier_Regressor:()=>sklearn_sklearn_RandomForestClassifier_Regressor,sklearn_Ridge:()=>sklearn_sklearn_Ridge,sklearn_cluster_centers_labels_inertia:()=>sklearn_sklearn_cluster_centers_labels_inertia,sklearn_coef_intercept:()=>sklearn_sklearn_coef_intercept,sklearn_data_target:()=>sklearn_sklearn_data_target,sklearn_fit:()=>sklearn_sklearn_fit,sklearn_fit_no_target:()=>sklearn_sklearn_fit_no_target,sklearn_load:()=>sklearn_sklearn_load,sklearn_make_blobs:()=>sklearn_sklearn_make_blobs,sklearn_make_classification:()=>sklearn_sklearn_make_classification,sklearn_make_regression:()=>sklearn_sklearn_make_regression,sklearn_predict:()=>sklearn_sklearn_predict,sklearn_save_load_model:()=>sklearn_sklearn_save_load_model,sklearn_score:()=>sklearn_sklearn_score,sklearn_score_no_target:()=>sklearn_sklearn_score_no_target,sklearn_train_test_split:()=>sklearn_sklearn_train_test_split,sklearn_train_test_split_no_target:()=>sklearn_sklearn_train_test_split_no_target});var generators_system_namespaceObject={};__webpack_require__.r(generators_system_namespaceObject),__webpack_require__.d(generators_system_namespaceObject,{controls_end_program:()=>system_controls_end_program,controls_millis:()=>generators_system_controls_millis,time_localtime:()=>system_time_localtime});var generators_turtle_namespaceObject={};__webpack_require__.r(generators_turtle_namespaceObject),__webpack_require__.d(generators_turtle_namespaceObject,{turtle_bgcolor:()=>turtle_turtle_bgcolor,turtle_bgcolor_hex:()=>turtle_turtle_bgcolor_hex,turtle_bgcolor_hex_new:()=>turtle_turtle_bgcolor_hex_new,turtle_circle:()=>turtle_turtle_circle,turtle_circle_advanced:()=>turtle_turtle_circle_advanced,turtle_clear:()=>turtle_turtle_clear,turtle_clone:()=>turtle_turtle_clone,turtle_color:()=>turtle_turtle_color,turtle_color_hex:()=>turtle_turtle_color_hex,turtle_color_seclet:()=>turtle_turtle_color_seclet,turtle_create:()=>turtle_turtle_create,turtle_done:()=>turtle_turtle_done,turtle_exitonclick:()=>turtle_turtle_exitonclick,turtle_fill:()=>turtle_turtle_fill,turtle_fillcolor:()=>turtle_turtle_fillcolor,turtle_fillcolor_hex:()=>turtle_turtle_fillcolor_hex,turtle_fillcolor_hex_new:()=>turtle_turtle_fillcolor_hex_new,turtle_getscreen:()=>turtle_turtle_getscreen,turtle_goto:()=>turtle_turtle_goto,turtle_listen:()=>turtle_turtle_listen,turtle_move:()=>turtle_turtle_move,turtle_numinput:()=>turtle_turtle_numinput,turtle_onclick:()=>turtle_turtle_onclick,turtle_onkey:()=>turtle_turtle_onkey,turtle_ontimer:()=>turtle_turtle_ontimer,turtle_pencolor:()=>turtle_turtle_pencolor,turtle_pencolor_hex:()=>turtle_turtle_pencolor_hex,turtle_pencolor_hex_new:()=>turtle_turtle_pencolor_hex_new,turtle_penup:()=>turtle_turtle_penup,turtle_pos_shape:()=>turtle_turtle_pos_shape,turtle_rotate:()=>turtle_turtle_rotate,turtle_screen_delay:()=>turtle_turtle_screen_delay,turtle_screen_savefig:()=>turtle_turtle_screen_savefig,turtle_setheading:()=>turtle_turtle_setheading,turtle_setxy:()=>turtle_turtle_setxy,turtle_shape:()=>turtle_turtle_shape,turtle_shapesize:()=>turtle_turtle_shapesize,turtle_size:()=>turtle_turtle_size,turtle_size_speed:()=>turtle_turtle_size_speed,turtle_speed:()=>turtle_turtle_speed,turtle_textinput:()=>turtle_turtle_textinput,turtle_visible:()=>turtle_turtle_visible,turtle_write:()=>turtle_turtle_write,turtle_write_format:()=>turtle_turtle_write_format,turtle_write_format_skulpt:()=>turtle_turtle_write_format_skulpt});const external_Blockly_namespaceObject=Blockly,external_Mixly_namespaceObject=Mixly,Variables={NAME_TYPE:"VARIABLE",allVariables:function(e){var t;if(e.getDescendants)t=e.getDescendants();else{if(!e.getAllBlocks)throw"Not Block or Workspace: "+e;t=e.getAllBlocks()}for(var n=Object.create(null),a=0;a1&&(i+=a)):n=i}else n="i";return n}},variables=Variables; +(()=>{"use strict";var __webpack_modules__={131:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{cv_destroy_all:()=>cv_destroy_all,cv_face_classifier:()=>cv_face_classifier,cv_face_detect:()=>cv_face_detect,cv_face_detect_all:()=>cv_face_detect_all,cv_line_rect:()=>cv_line_rect,cv_read_image:()=>cv_read_image,cv_show_image:()=>cv_show_image,cv_text:()=>cv_text,cv_waitkey:()=>cv_waitkey,cv_write_image:()=>cv_write_image});const cv_read_image=function(e,t){return t.definitions_.import_cv2="import cv2",["cv2.imread("+t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+")",t.ORDER_ATOMIC]},cv_show_image=function(e,t){return t.definitions_.import_cv2="import cv2","cv2.imshow("+t.valueToCode(this,"data",t.ORDER_ATOMIC)+","+t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+")\n"},cv_write_image=function(e,t){return t.definitions_.import_cv2="import cv2","cv2.imwrite("+t.valueToCode(this,"data",t.ORDER_ATOMIC)+","+t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+")\n"},cv_waitkey=function(e,t){return t.definitions_.import_cv2="import cv2","cv2.waitKey("+t.valueToCode(this,"data",t.ORDER_ATOMIC)+")\n"},cv_destroy_all=function(e,t){t.definitions_.import_cv2="import cv2";return"cv2.destroyAllWindows()\n"},cv_line_rect=function(_,generator){generator.definitions_.import_cv2="import cv2";var file=generator.valueToCode(this,"FILE",generator.ORDER_ATOMIC),x1=generator.valueToCode(this,"x1",generator.ORDER_ATOMIC),y1=generator.valueToCode(this,"y1",generator.ORDER_ATOMIC),x2=generator.valueToCode(this,"x2",generator.ORDER_ATOMIC),y2=generator.valueToCode(this,"y2",generator.ORDER_ATOMIC),thick=generator.valueToCode(this,"thick",generator.ORDER_ATOMIC),color=this.getFieldValue("FIELDNAME"),color1=eval("0x"+color[1]+color[2]),color2=eval("0x"+color[3]+color[4]),color3=eval("0x"+color[5]+color[6]),direction=this.getFieldValue("DIR"),code="cv2."+direction+"("+file+",("+x1+","+y1+"),("+x2+","+y2+"),("+color3+","+color2+","+color1+"),"+thick+")\n";return code},cv_text=function(_,generator){generator.definitions_.import_cv2="import cv2";var file=generator.valueToCode(this,"FILE",generator.ORDER_ATOMIC),x1=generator.valueToCode(this,"x1",generator.ORDER_ATOMIC),y1=generator.valueToCode(this,"y1",generator.ORDER_ATOMIC),data=generator.valueToCode(this,"data",generator.ORDER_ATOMIC),size=generator.valueToCode(this,"size",generator.ORDER_ATOMIC),thick=generator.valueToCode(this,"thick",generator.ORDER_ATOMIC),color=this.getFieldValue("FIELDNAME"),color1=eval("0x"+color[1]+color[2]),color2=eval("0x"+color[3]+color[4]),color3=eval("0x"+color[5]+color[6]),font=this.getFieldValue("font"),code="cv2.putText("+file+","+data+",("+x1+","+y1+"),cv2.FONT_HERSHEY_"+font+","+size+",("+color3+","+color2+","+color1+"),"+thick+")\n";return code},cv_face_classifier=function(e,t){return t.definitions_.import_cv2="import cv2",["cv2.CascadeClassifier("+t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+")",t.ORDER_ATOMIC]},cv_face_detect=function(e,t){t.definitions_.import_cv2="import cv2";var n=t.valueToCode(this,"FILE",t.ORDER_ATOMIC);return[t.valueToCode(this,"FACE",t.ORDER_ATOMIC)+".detectMultiScale("+n+",scaleFactor="+t.valueToCode(this,"SCALE",t.ORDER_ATOMIC)+",minNeighbors="+t.valueToCode(this,"NEIGHBOR",t.ORDER_ATOMIC)+")",t.ORDER_ATOMIC]},cv_face_detect_all=function(e,t){t.definitions_.import_cv2="import cv2";var n=t.valueToCode(this,"FILE",t.ORDER_ATOMIC);return[t.valueToCode(this,"FACE",t.ORDER_ATOMIC)+".detectMultiScale("+n+",scaleFactor="+t.valueToCode(this,"SCALE",t.ORDER_ATOMIC)+",minNeighbors="+t.valueToCode(this,"NEIGHBOR",t.ORDER_ATOMIC)+",minSize=("+t.valueToCode(this,"x1",t.ORDER_ATOMIC)+","+t.valueToCode(this,"y1",t.ORDER_ATOMIC)+"),maxSize=("+t.valueToCode(this,"x2",t.ORDER_ATOMIC)+","+t.valueToCode(this,"y2",t.ORDER_ATOMIC)+"))",t.ORDER_ATOMIC]}}},__webpack_module_cache__={};function __webpack_require__(e){var t=__webpack_module_cache__[e];if(void 0!==t)return t.exports;var n=__webpack_module_cache__[e]={exports:{}};return __webpack_modules__[e](n,n.exports,__webpack_require__),n.exports}__webpack_require__.d=(e,t)=>{for(var n in t)__webpack_require__.o(t,n)&&!__webpack_require__.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},__webpack_require__.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),__webpack_require__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var __webpack_exports__={},blocks_variables_namespaceObject={};__webpack_require__.r(blocks_variables_namespaceObject),__webpack_require__.d(blocks_variables_namespaceObject,{controls_type:()=>controls_type,controls_typeLists:()=>controls_typeLists,lists_zip:()=>lists_zip,lists_zip_container:()=>lists_zip_container,lists_zip_item:()=>lists_zip_item,unpack_iterable_object:()=>unpack_iterable_object,variables_change:()=>variables_change,variables_get:()=>variables_get,variables_global:()=>variables_global,variables_set:()=>variables_set});var control_namespaceObject={};__webpack_require__.r(control_namespaceObject),__webpack_require__.d(control_namespaceObject,{base_setup:()=>base_setup,controls_delay:()=>controls_delay,controls_end_program:()=>controls_end_program,controls_except:()=>controls_except,controls_finally:()=>controls_finally,controls_flow_statements:()=>controls_flow_statements,controls_for:()=>controls_for,controls_forEach:()=>controls_forEach,controls_for_range:()=>controls_for_range,controls_if:()=>controls_if,controls_if_else:()=>controls_if_else,controls_if_elseif:()=>controls_if_elseif,controls_if_if:()=>controls_if_if,controls_lambda:()=>controls_lambda,controls_main:()=>controls_main,controls_pass:()=>controls_pass,controls_range:()=>controls_range,controls_repeat_ext:()=>controls_repeat_ext,controls_thread:()=>controls_thread,controls_try:()=>controls_try,controls_try_finally:()=>controls_try_finally,controls_whileUntil:()=>controls_whileUntil,datetime_fromtimestamp:()=>datetime_fromtimestamp,do_while:()=>do_while,garbage_collection:()=>garbage_collection,get_mem_alloc:()=>get_mem_alloc,get_mem_free:()=>get_mem_free,get_unique_identifier:()=>get_unique_identifier});var math_namespaceObject={};__webpack_require__.r(math_namespaceObject),__webpack_require__.d(math_namespaceObject,{base_map:()=>base_map,generate_cartesian_product:()=>generate_cartesian_product,math_arithmetic:()=>math_arithmetic,math_bit:()=>math_bit,math_constant:()=>math_constant,math_constant_mp:()=>math_constant_mp,math_constrain:()=>math_constrain,math_dec:()=>math_dec,math_indexer_number:()=>math_indexer_number,math_map:()=>math_map,math_max_min:()=>math_max_min,math_number:()=>math_number,math_number_base_conversion:()=>math_number_base_conversion,math_random:()=>math_random,math_random_seed:()=>math_random_seed,math_round:()=>math_round,math_selfcalcu:()=>math_selfcalcu,math_to_int:()=>math_to_int,math_trig:()=>math_trig,text_to_number:()=>text_to_number,text_to_number_skulpt:()=>text_to_number_skulpt,turn_to_int:()=>turn_to_int});var text_namespaceObject={};__webpack_require__.r(text_namespaceObject),__webpack_require__.d(text_namespaceObject,{ascii_to_char:()=>ascii_to_char,char_to_ascii:()=>char_to_ascii,number_to_text:()=>number_to_text,os_system:()=>os_system,text:()=>text_text,text_capital:()=>text_capital,text_center:()=>text_center,text_char:()=>text_char,text_char_at:()=>text_char_at,text_char_at2:()=>text_char_at2,text_char_at3:()=>text_char_at3,text_compareTo:()=>text_compareTo,text_compare_to:()=>text_compare_to,text_create_with_container:()=>text_create_with_container,text_create_with_item:()=>text_create_with_item,text_encode:()=>text_encode,text_equals_starts_ends:()=>text_equals_starts_ends,text_eval:()=>text_eval,text_find:()=>text_find,text_format:()=>text_format,text_format_noreturn:()=>text_format_noreturn,text_join:()=>text_join,text_join_seq:()=>text_join_seq,text_length:()=>text_length,text_random_char:()=>text_random_char,text_replace:()=>text_replace,text_split:()=>text_split,text_strip:()=>text_strip,text_substring:()=>text_substring,text_substring2:()=>text_substring2,text_substring3:()=>text_substring3,text_textarea:()=>text_textarea});var lists_namespaceObject={};__webpack_require__.r(lists_namespaceObject),__webpack_require__.d(lists_namespaceObject,{ENUMERATE:()=>ENUMERATE,enumerate:()=>enumerate,list_many_input:()=>list_many_input,list_tolist:()=>list_tolist,list_tolist2:()=>list_tolist2,list_trig:()=>list_trig,lists_2d_get_col_row_data:()=>lists_2d_get_col_row_data,lists_2d_get_data_with_col_row:()=>lists_2d_get_data_with_col_row,lists_append_extend:()=>lists_append_extend,lists_change_to:()=>lists_change_to,lists_change_to_general:()=>lists_change_to_general,lists_clear:()=>lists_clear,lists_create_with:()=>lists_create_with,lists_create_with2:()=>lists_create_with2,lists_create_with_container:()=>lists_create_with_container,lists_create_with_item:()=>lists_create_with_item,lists_create_with_noreturn:()=>lists_create_with_noreturn,lists_create_with_text:()=>lists_create_with_text,lists_create_with_text2:()=>lists_create_with_text2,lists_del_general:()=>lists_del_general,lists_find:()=>lists_find,lists_getIndex3:()=>lists_getIndex3,lists_getSublist3:()=>lists_getSublist3,lists_get_index:()=>lists_get_index,lists_get_random_item:()=>lists_get_random_item,lists_get_random_sublist:()=>lists_get_random_sublist,lists_get_sublist:()=>lists_get_sublist,lists_insert_value:()=>lists_insert_value,lists_insert_value2:()=>lists_insert_value2,lists_pop:()=>lists_pop,lists_remove_at:()=>lists_remove_at,lists_remove_at2:()=>lists_remove_at2,lists_reverse:()=>lists_reverse,lists_setIndex3:()=>lists_setIndex3,lists_set_index:()=>lists_set_index,lists_sort:()=>lists_sort});var dicts_namespaceObject={};__webpack_require__.r(dicts_namespaceObject),__webpack_require__.d(dicts_namespaceObject,{dicts_add_change_del:()=>dicts_add_change_del,dicts_add_or_change:()=>dicts_add_or_change,dicts_clear:()=>dicts_clear,dicts_create_with:()=>dicts_create_with,dicts_create_with_container:()=>dicts_create_with_container,dicts_create_with_item:()=>dicts_create_with_item,dicts_create_with_noreturn:()=>dicts_create_with_noreturn,dicts_deldict:()=>dicts_deldict,dicts_delete:()=>dicts_delete,dicts_get:()=>dicts_get,dicts_get_default:()=>dicts_get_default,dicts_items:()=>dicts_items,dicts_keys:()=>dicts_keys,dicts_length:()=>dicts_length,dicts_pop:()=>dicts_pop,dicts_setdefault:()=>dicts_setdefault,dicts_to_json:()=>dicts_to_json,dicts_to_to:()=>dicts_to_to,dicts_todict:()=>dicts_todict,dicts_update:()=>dicts_update,dicts_values:()=>dicts_values,json_to_dicts:()=>json_to_dicts});var logic_namespaceObject={};__webpack_require__.r(logic_namespaceObject),__webpack_require__.d(logic_namespaceObject,{logic_boolean:()=>logic_boolean,logic_compare:()=>logic_compare,logic_compare_continous:()=>logic_compare_continous,logic_is:()=>logic_is,logic_is_in:()=>logic_is_in,logic_negate:()=>logic_negate,logic_null:()=>logic_null,logic_operation:()=>logic_operation,logic_tobool:()=>logic_tobool,logic_true_or_false:()=>logic_true_or_false});var storage_namespaceObject={};__webpack_require__.r(storage_namespaceObject),__webpack_require__.d(storage_namespaceObject,{sdcard_mount:()=>sdcard_mount,sdcard_use_spi_init:()=>sdcard_use_spi_init,storage_can_write_ornot:()=>storage_can_write_ornot,storage_change_dir:()=>storage_change_dir,storage_close_file:()=>storage_close_file,storage_delete_file:()=>storage_delete_file,storage_file_seek:()=>storage_file_seek,storage_file_tell:()=>storage_file_tell,storage_file_write:()=>storage_file_write,storage_fileopen:()=>storage_fileopen,storage_fileopen_new:()=>storage_fileopen_new,storage_fileopen_new_encoding:()=>storage_fileopen_new_encoding,storage_get_a_line:()=>storage_get_a_line,storage_get_contents:()=>storage_get_contents,storage_get_contents_without_para:()=>storage_get_contents_without_para,storage_get_current_dir:()=>storage_get_current_dir,storage_get_file_size:()=>storage_get_file_size,storage_get_filename:()=>storage_get_filename,storage_is_file:()=>storage_is_file,storage_list_all_files:()=>storage_list_all_files,storage_make_dir:()=>storage_make_dir,storage_open_file_with_os:()=>storage_open_file_with_os,storage_rename:()=>storage_rename});var blocks_procedures_namespaceObject={};__webpack_require__.r(blocks_procedures_namespaceObject),__webpack_require__.d(blocks_procedures_namespaceObject,{procedures_callnoreturn:()=>procedures_callnoreturn,procedures_callreturn:()=>procedures_callreturn,procedures_defnoreturn:()=>procedures_defnoreturn,procedures_defreturn:()=>procedures_defreturn,procedures_ifreturn:()=>procedures_ifreturn,procedures_mutatorarg:()=>procedures_mutatorarg,procedures_mutatorcontainer:()=>procedures_mutatorcontainer,procedures_return:()=>procedures_return});var tuple_namespaceObject={};__webpack_require__.r(tuple_namespaceObject),__webpack_require__.d(tuple_namespaceObject,{tuple_change_to:()=>tuple_change_to,tuple_create_with:()=>tuple_create_with,tuple_create_with_container:()=>tuple_create_with_container,tuple_create_with_item:()=>tuple_create_with_item,tuple_create_with_noreturn:()=>tuple_create_with_noreturn,tuple_create_with_text2:()=>tuple_create_with_text2,tuple_create_with_text_return:()=>tuple_create_with_text_return,tuple_del:()=>tuple_del,tuple_find:()=>tuple_find,tuple_getIndex:()=>tuple_getIndex,tuple_getSublist:()=>tuple_getSublist,tuple_get_random_item:()=>tuple_get_random_item,tuple_get_sublist:()=>tuple_get_sublist,tuple_join:()=>tuple_join,tuple_length:()=>tuple_length,tuple_max:()=>tuple_max,tuple_totuple:()=>tuple_totuple,tuple_trig:()=>tuple_trig});var set_namespaceObject={};__webpack_require__.r(set_namespaceObject),__webpack_require__.d(set_namespaceObject,{set_add_discard:()=>set_add_discard,set_clear:()=>set_clear,set_create_with:()=>set_create_with,set_create_with_container:()=>set_create_with_container,set_create_with_item:()=>set_create_with_item,set_create_with_text_return:()=>set_create_with_text_return,set_length:()=>set_length,set_operate:()=>set_operate,set_operate_update:()=>set_operate_update,set_pop:()=>set_pop,set_sub:()=>set_sub,set_toset:()=>set_toset,set_update:()=>set_update});var html_namespaceObject={};__webpack_require__.r(html_namespaceObject),__webpack_require__.d(html_namespaceObject,{html_content:()=>html_content,html_content_more:()=>html_content_more,html_document:()=>html_document,html_form:()=>html_form,html_head_body:()=>html_head_body,html_style:()=>html_style,html_style_color:()=>html_style_color,html_style_content:()=>html_style_content,html_text:()=>html_text,html_title:()=>html_title});var utility_namespaceObject={};__webpack_require__.r(utility_namespaceObject),__webpack_require__.d(utility_namespaceObject,{attribute_access:()=>attribute_access,function_call:()=>function_call,function_call_container:()=>function_call_container,function_call_item:()=>function_call_item,raw_block:()=>raw_block,raw_empty:()=>raw_empty,raw_expression:()=>raw_expression,raw_table:()=>raw_table,text_comment:()=>text_comment,text_print_multiple:()=>text_print_multiple,text_print_multiple_container:()=>text_print_multiple_container,text_print_multiple_item:()=>text_print_multiple_item,type_check:()=>type_check});var generators_variables_namespaceObject={};__webpack_require__.r(generators_variables_namespaceObject),__webpack_require__.d(generators_variables_namespaceObject,{controls_type:()=>variables_controls_type,controls_typeLists:()=>variables_controls_typeLists,lists_zip:()=>variables_lists_zip,unpack_iterable_object:()=>variables_unpack_iterable_object,variables_change:()=>variables_variables_change,variables_get:()=>variables_variables_get,variables_global:()=>variables_variables_global,variables_set:()=>variables_variables_set});var generators_control_namespaceObject={};__webpack_require__.r(generators_control_namespaceObject),__webpack_require__.d(generators_control_namespaceObject,{Panic_with_status_code:()=>Panic_with_status_code,base_setup:()=>control_base_setup,controls_delay:()=>control_controls_delay,controls_flow_statements:()=>control_controls_flow_statements,controls_for:()=>control_controls_for,controls_forEach:()=>control_controls_forEach,controls_for_range:()=>control_controls_for_range,controls_if:()=>control_controls_if,controls_interrupts:()=>controls_interrupts,controls_lambda:()=>control_controls_lambda,controls_main:()=>control_controls_main,controls_millis:()=>controls_millis,controls_nointerrupts:()=>controls_nointerrupts,controls_pass:()=>control_controls_pass,controls_range:()=>control_controls_range,controls_repeat:()=>controls_repeat,controls_repeat_ext:()=>control_controls_repeat_ext,controls_thread:()=>control_controls_thread,controls_try_finally:()=>control_controls_try_finally,controls_whileUntil:()=>control_controls_whileUntil,datetime_fromtimestamp:()=>control_datetime_fromtimestamp,do_while:()=>control_do_while,garbage_collection:()=>control_garbage_collection,get_mem_alloc:()=>control_get_mem_alloc,get_mem_free:()=>control_get_mem_free,get_unique_identifier:()=>control_get_unique_identifier,reset:()=>control_reset,time_sleep:()=>time_sleep});var generators_math_namespaceObject={};__webpack_require__.r(generators_math_namespaceObject),__webpack_require__.d(generators_math_namespaceObject,{base_map:()=>math_base_map,generate_cartesian_product:()=>math_generate_cartesian_product,math_arithmetic:()=>math_math_arithmetic,math_bit:()=>math_math_bit,math_constant:()=>math_math_constant,math_constant_mp:()=>math_math_constant_mp,math_constrain:()=>math_math_constrain,math_dec:()=>math_math_dec,math_indexer_number:()=>math_math_indexer_number,math_map:()=>math_math_map,math_max_min:()=>math_math_max_min,math_number:()=>math_math_number,math_number_base_conversion:()=>math_math_number_base_conversion,math_random:()=>math_math_random,math_random_seed:()=>math_math_random_seed,math_round:()=>math_math_round,math_selfcalcu:()=>math_math_selfcalcu,math_single:()=>math_single,math_to_int:()=>math_math_to_int,math_trig:()=>math_math_trig,text_to_number:()=>math_text_to_number,text_to_number_skulpt:()=>math_text_to_number_skulpt,turn_to_int:()=>math_turn_to_int});var generators_text_namespaceObject={};__webpack_require__.r(generators_text_namespaceObject),__webpack_require__.d(generators_text_namespaceObject,{ascii_to_char:()=>text_ascii_to_char,char_to_ascii:()=>text_char_to_ascii,number_to_text:()=>text_number_to_text,os_system:()=>text_os_system,text:()=>generators_text_text,text_capital:()=>text_text_capital,text_center:()=>text_text_center,text_char:()=>text_text_char,text_char_at:()=>text_text_char_at,text_char_at2:()=>text_text_char_at2,text_char_at3:()=>text_text_char_at3,text_compareTo:()=>text_text_compareTo,text_compare_to:()=>text_text_compare_to,text_encode:()=>text_text_encode,text_equals_starts_ends:()=>text_text_equals_starts_ends,text_eval:()=>text_text_eval,text_find:()=>text_text_find,text_format:()=>text_text_format,text_format_noreturn:()=>text_text_format_noreturn,text_join:()=>text_text_join,text_join_seq:()=>text_text_join_seq,text_length:()=>text_text_length,text_random_char:()=>text_text_random_char,text_replace:()=>text_text_replace,text_split:()=>text_text_split,text_strip:()=>text_text_strip,text_substring:()=>text_text_substring,text_substring2:()=>text_text_substring2,text_substring3:()=>text_text_substring3,text_textarea:()=>text_text_textarea});var generators_lists_namespaceObject={};__webpack_require__.r(generators_lists_namespaceObject),__webpack_require__.d(generators_lists_namespaceObject,{enumerate:()=>lists_enumerate,list_many_input:()=>lists_list_many_input,list_tolist:()=>lists_list_tolist,list_tolist2:()=>lists_list_tolist2,list_trig:()=>lists_list_trig,lists_2d_get_col_row_data:()=>lists_lists_2d_get_col_row_data,lists_2d_get_data_with_col_row:()=>lists_lists_2d_get_data_with_col_row,lists_append_extend:()=>lists_lists_append_extend,lists_change_to:()=>lists_lists_change_to,lists_change_to_general:()=>lists_lists_change_to_general,lists_clear:()=>lists_lists_clear,lists_create_with:()=>lists_lists_create_with,lists_create_with2:()=>lists_lists_create_with2,lists_create_with_noreturn:()=>lists_lists_create_with_noreturn,lists_create_with_text:()=>lists_lists_create_with_text,lists_create_with_text2:()=>lists_lists_create_with_text2,lists_del_general:()=>lists_lists_del_general,lists_find:()=>lists_lists_find,lists_getIndex3:()=>lists_lists_getIndex3,lists_getSublist3:()=>lists_lists_getSublist3,lists_get_index:()=>lists_lists_get_index,lists_get_random_item:()=>lists_lists_get_random_item,lists_get_random_sublist:()=>lists_lists_get_random_sublist,lists_get_sublist:()=>lists_lists_get_sublist,lists_insert_value:()=>lists_lists_insert_value,lists_insert_value2:()=>lists_lists_insert_value2,lists_pop:()=>lists_lists_pop,lists_remove_at:()=>lists_lists_remove_at,lists_remove_at2:()=>lists_lists_remove_at2,lists_reverse:()=>lists_lists_reverse,lists_setIndex3:()=>lists_lists_setIndex3,lists_set_index:()=>lists_lists_set_index,lists_sort:()=>lists_lists_sort});var generators_dicts_namespaceObject={};__webpack_require__.r(generators_dicts_namespaceObject),__webpack_require__.d(generators_dicts_namespaceObject,{dicts_add_change_del:()=>dicts_dicts_add_change_del,dicts_add_or_change:()=>dicts_dicts_add_or_change,dicts_clear:()=>dicts_dicts_clear,dicts_create_with:()=>dicts_dicts_create_with,dicts_create_with_noreturn:()=>dicts_dicts_create_with_noreturn,dicts_deldict:()=>dicts_dicts_deldict,dicts_delete:()=>dicts_dicts_delete,dicts_get:()=>dicts_dicts_get,dicts_get_default:()=>dicts_dicts_get_default,dicts_items:()=>dicts_dicts_items,dicts_keys:()=>dicts_dicts_keys,dicts_length:()=>dicts_dicts_length,dicts_pop:()=>dicts_dicts_pop,dicts_setdefault:()=>dicts_dicts_setdefault,dicts_to_json:()=>dicts_dicts_to_json,dicts_to_to:()=>dicts_dicts_to_to,dicts_todict:()=>dicts_dicts_todict,dicts_update:()=>dicts_dicts_update,dicts_values:()=>dicts_dicts_values,json_to_dicts:()=>dicts_json_to_dicts});var generators_logic_namespaceObject={};__webpack_require__.r(generators_logic_namespaceObject),__webpack_require__.d(generators_logic_namespaceObject,{logic_boolean:()=>logic_logic_boolean,logic_compare:()=>logic_logic_compare,logic_compare_continous:()=>logic_logic_compare_continous,logic_is:()=>logic_logic_is,logic_is_in:()=>logic_logic_is_in,logic_negate:()=>logic_logic_negate,logic_null:()=>logic_logic_null,logic_operation:()=>logic_logic_operation,logic_tobool:()=>logic_logic_tobool,logic_true_or_false:()=>logic_logic_true_or_false});var generators_storage_namespaceObject={};__webpack_require__.r(generators_storage_namespaceObject),__webpack_require__.d(generators_storage_namespaceObject,{sdcard_mount:()=>storage_sdcard_mount,sdcard_use_spi_init:()=>storage_sdcard_use_spi_init,storage_can_write_ornot:()=>storage_storage_can_write_ornot,storage_change_dir:()=>storage_storage_change_dir,storage_close_file:()=>storage_storage_close_file,storage_delete_file:()=>storage_storage_delete_file,storage_file_seek:()=>storage_storage_file_seek,storage_file_tell:()=>storage_storage_file_tell,storage_file_write:()=>storage_storage_file_write,storage_fileopen:()=>storage_storage_fileopen,storage_fileopen_new:()=>storage_storage_fileopen_new,storage_fileopen_new_encoding:()=>storage_storage_fileopen_new_encoding,storage_get_a_line:()=>storage_storage_get_a_line,storage_get_contents:()=>storage_storage_get_contents,storage_get_contents_without_para:()=>storage_storage_get_contents_without_para,storage_get_current_dir:()=>storage_storage_get_current_dir,storage_get_file_size:()=>storage_storage_get_file_size,storage_get_filename:()=>storage_storage_get_filename,storage_is_file:()=>storage_storage_is_file,storage_list_all_files:()=>storage_storage_list_all_files,storage_make_dir:()=>storage_storage_make_dir,storage_open_file_with_os:()=>storage_storage_open_file_with_os,storage_rename:()=>storage_storage_rename});var generators_procedures_namespaceObject={};__webpack_require__.r(generators_procedures_namespaceObject),__webpack_require__.d(generators_procedures_namespaceObject,{procedures_callnoreturn:()=>procedures_procedures_callnoreturn,procedures_callreturn:()=>procedures_procedures_callreturn,procedures_defnoreturn:()=>procedures_procedures_defnoreturn,procedures_defreturn:()=>procedures_procedures_defreturn,procedures_ifreturn:()=>procedures_procedures_ifreturn,procedures_return:()=>procedures_procedures_return});var generators_tuple_namespaceObject={};__webpack_require__.r(generators_tuple_namespaceObject),__webpack_require__.d(generators_tuple_namespaceObject,{tuple_change_to:()=>tuple_tuple_change_to,tuple_create_with:()=>tuple_tuple_create_with,tuple_create_with_noreturn:()=>tuple_tuple_create_with_noreturn,tuple_create_with_text2:()=>tuple_tuple_create_with_text2,tuple_create_with_text_return:()=>tuple_tuple_create_with_text_return,tuple_del:()=>tuple_tuple_del,tuple_find:()=>tuple_tuple_find,tuple_getIndex:()=>tuple_tuple_getIndex,tuple_getSublist:()=>tuple_tuple_getSublist,tuple_get_random_item:()=>tuple_tuple_get_random_item,tuple_get_sublist:()=>tuple_tuple_get_sublist,tuple_join:()=>tuple_tuple_join,tuple_length:()=>tuple_tuple_length,tuple_max:()=>tuple_tuple_max,tuple_totuple:()=>tuple_tuple_totuple,tuple_trig:()=>tuple_tuple_trig});var generators_set_namespaceObject={};__webpack_require__.r(generators_set_namespaceObject),__webpack_require__.d(generators_set_namespaceObject,{set_add_discard:()=>set_set_add_discard,set_clear:()=>set_set_clear,set_create_with:()=>set_set_create_with,set_create_with_text_return:()=>set_set_create_with_text_return,set_length:()=>set_set_length,set_operate:()=>set_set_operate,set_operate_update:()=>set_set_operate_update,set_pop:()=>set_set_pop,set_sub:()=>set_set_sub,set_toset:()=>set_set_toset,set_update:()=>set_set_update});var generators_html_namespaceObject={};__webpack_require__.r(generators_html_namespaceObject),__webpack_require__.d(generators_html_namespaceObject,{html_content:()=>html_html_content,html_content_more:()=>html_html_content_more,html_document:()=>html_html_document,html_form:()=>html_html_form,html_head_body:()=>html_html_head_body,html_style:()=>html_html_style,html_style_content:()=>html_html_style_content,html_text:()=>html_html_text,html_title:()=>html_html_title});var generators_utility_namespaceObject={};__webpack_require__.r(generators_utility_namespaceObject),__webpack_require__.d(generators_utility_namespaceObject,{attribute_access:()=>utility_attribute_access,function_call:()=>utility_function_call,raw_block:()=>utility_raw_block,raw_empty:()=>utility_raw_empty,raw_expression:()=>utility_raw_expression,raw_table:()=>utility_raw_table,type_check:()=>utility_type_check});var ai_namespaceObject={};__webpack_require__.r(ai_namespaceObject),__webpack_require__.d(ai_namespaceObject,{AI_ChooseAndGet:()=>AI_ChooseAndGet,AI_Face_match:()=>AI_Face_match,AI_ImageClassify:()=>AI_ImageClassify,AI_ImageClassify_Func:()=>AI_ImageClassify_Func,AI_Nlp:()=>AI_Nlp,AI_Nlp_Func:()=>AI_Nlp_Func,AI_Nlp_Func_sim:()=>AI_Nlp_Func_sim,AI_Nlp_Sim:()=>AI_Nlp_Sim,AI_Nlp_Topic:()=>AI_Nlp_Topic,AI_Nlp_newsSummary:()=>AI_Nlp_newsSummary,AI_Ocr:()=>AI_Ocr,AI_Ocr_Func:()=>AI_Ocr_Func,AI_Speech_asr:()=>AI_Speech_asr,AI_Speech_synthesis:()=>AI_Speech_synthesis,AI_audio:()=>AI_audio,AI_client:()=>AI_client,AI_photo:()=>AI_photo,AI_result:()=>AI_result});var algorithm_namespaceObject={};__webpack_require__.r(algorithm_namespaceObject),__webpack_require__.d(algorithm_namespaceObject,{algorithm_add_path:()=>algorithm_add_path,algorithm_add_school:()=>algorithm_add_school,algorithm_all_books:()=>algorithm_all_books,algorithm_all_books_sequence:()=>algorithm_all_books_sequence,algorithm_book_scale:()=>algorithm_book_scale,algorithm_check_feet:()=>algorithm_check_feet,algorithm_chick_calculate:()=>algorithm_chick_calculate,algorithm_color_seclet:()=>algorithm_color_seclet,algorithm_current_school:()=>algorithm_current_school,algorithm_del_path:()=>algorithm_del_path,algorithm_delete_book:()=>algorithm_delete_book,algorithm_delete_books:()=>algorithm_delete_books,algorithm_delete_books2:()=>algorithm_delete_books2,algorithm_divide_books:()=>algorithm_divide_books,algorithm_find_path:()=>algorithm_find_path,algorithm_first_book:()=>algorithm_first_book,algorithm_fz_calc:()=>algorithm_fz_calc,algorithm_fz_calc_first_min:()=>algorithm_fz_calc_first_min,algorithm_fz_compare:()=>algorithm_fz_compare,algorithm_fz_move:()=>algorithm_fz_move,algorithm_fz_set_min:()=>algorithm_fz_set_min,algorithm_get_book_num:()=>algorithm_get_book_num,algorithm_get_current_location:()=>algorithm_get_current_location,algorithm_get_half_books:()=>algorithm_get_half_books,algorithm_hxdb_add:()=>algorithm_hxdb_add,algorithm_hxdb_init_soldier:()=>algorithm_hxdb_init_soldier,algorithm_hxdb_last_line:()=>algorithm_hxdb_last_line,algorithm_hxdb_result:()=>algorithm_hxdb_result,algorithm_hxdb_stand_in_line:()=>algorithm_hxdb_stand_in_line,algorithm_init_fzsf:()=>algorithm_init_fzsf,algorithm_init_hxdb:()=>algorithm_init_hxdb,algorithm_init_jttl:()=>algorithm_init_jttl,algorithm_move_recent:()=>algorithm_move_recent,algorithm_new_path:()=>algorithm_new_path,algorithm_next_book:()=>algorithm_next_book,algorithm_no_left:()=>algorithm_no_left,algorithm_no_path:()=>algorithm_no_path,algorithm_no_ring2:()=>algorithm_no_ring2,algorithm_not_home:()=>algorithm_not_home,algorithm_not_school:()=>algorithm_not_school,algorithm_number_add:()=>algorithm_number_add,algorithm_number_zero:()=>algorithm_number_zero,algorithm_prepare:()=>algorithm_prepare,algorithm_prepare2:()=>algorithm_prepare2,algorithm_prepare_2_1:()=>algorithm_prepare_2_1,algorithm_prepare_2_2:()=>algorithm_prepare_2_2,algorithm_print_book2:()=>algorithm_print_book2,algorithm_print_divide:()=>algorithm_print_divide,algorithm_print_jttl_answer:()=>algorithm_print_jttl_answer,algorithm_print_number:()=>algorithm_print_number,algorithm_print_path:()=>algorithm_print_path,algorithm_print_path2:()=>algorithm_print_path2,algorithm_print_sequence:()=>algorithm_print_sequence,algorithm_rabbit_add:()=>algorithm_rabbit_add,algorithm_rabbit_number_in_range:()=>algorithm_rabbit_number_in_range,algorithm_rabbit_zero:()=>algorithm_rabbit_zero,algorithm_return_path:()=>algorithm_return_path,algorithm_set_path:()=>algorithm_set_path,algorithm_two_left:()=>algorithm_two_left,algorithm_void_path:()=>algorithm_void_path,algorithm_yes_ring2:()=>algorithm_yes_ring2,hanoi_init:()=>hanoi_init,hanoi_init_offline:()=>hanoi_init_offline,hanoi_move:()=>hanoi_move});var communicate_namespaceObject={};__webpack_require__.r(communicate_namespaceObject),__webpack_require__.d(communicate_namespaceObject,{requests_attribute:()=>requests_attribute,requests_get:()=>requests_get,requests_get_old:()=>requests_get_old,requests_method:()=>requests_method,requests_post:()=>requests_post});var cv_namespaceObject={};__webpack_require__.r(cv_namespaceObject),__webpack_require__.d(cv_namespaceObject,{cv_destroy_all:()=>cv_destroy_all,cv_face_classifier:()=>cv_face_classifier,cv_face_detect:()=>cv_face_detect,cv_face_detect_all:()=>cv_face_detect_all,cv_line_rect:()=>cv_line_rect,cv_read_image:()=>cv_read_image,cv_show_image:()=>cv_show_image,cv_text:()=>cv_text,cv_waitkey:()=>cv_waitkey,cv_write_image:()=>cv_write_image});var data_namespaceObject={};__webpack_require__.r(data_namespaceObject),__webpack_require__.d(data_namespaceObject,{array_create:()=>array_create,array_toarray:()=>array_toarray,dataframe_aggregate_func:()=>dataframe_aggregate_func,dataframe_create:()=>dataframe_create,dataframe_create_from_index:()=>dataframe_create_from_index,dataframe_create_from_one_index:()=>dataframe_create_from_one_index,dataframe_fillna:()=>dataframe_fillna,dataframe_get:()=>dataframe_get,dataframe_groupby:()=>dataframe_groupby,dataframe_head_tail:()=>dataframe_head_tail,dataframe_info:()=>dataframe_info,dataframe_median:()=>dataframe_median,dataframe_select:()=>dataframe_select,dataframe_sort_values:()=>dataframe_sort_values,matrix_multiplication:()=>matrix_multiplication,matrix_transpose:()=>matrix_transpose,numpy_argmin_template_match:()=>numpy_argmin_template_match,numpy_astype:()=>numpy_astype,numpy_c_:()=>numpy_c_,numpy_dot:()=>numpy_dot,numpy_linalg_det:()=>numpy_linalg_det,numpy_linalg_inv:()=>numpy_linalg_inv,numpy_max:()=>numpy_max,numpy_mean:()=>numpy_mean,numpy_mean_digit:()=>numpy_mean_digit,numpy_min:()=>numpy_min,numpy_ones:()=>numpy_ones,numpy_random_random:()=>numpy_random_random,numpy_reshape:()=>numpy_reshape,numpy_shape:()=>numpy_shape,numpy_size:()=>numpy_size,numpy_square:()=>numpy_square,numpy_std:()=>numpy_std,numpy_sum:()=>numpy_sum,numpy_trig:()=>numpy_trig,pandas_drop_columns:()=>pandas_drop_columns,pandas_dropna:()=>pandas_dropna,pandas_readcsv:()=>pandas_readcsv,pl_axes:()=>pl_axes,pl_bar:()=>pl_bar,pl_hist:()=>pl_hist,pl_label:()=>pl_label,pl_legend:()=>pl_legend,pl_pie:()=>pl_pie,pl_plot:()=>pl_plot,pl_plot_bar:()=>pl_plot_bar,pl_plot_easy:()=>pl_plot_easy,pl_plot_scatter:()=>pl_plot_scatter,pl_plot_xy:()=>pl_plot_xy,pl_savefig:()=>pl_savefig,pl_show:()=>pl_show,pl_subplot:()=>pl_subplot,pl_text:()=>pl_text,pl_ticks:()=>pl_ticks,pl_title:()=>pl_title,plot_axes:()=>plot_axes,plot_bar:()=>plot_bar,plot_cla:()=>plot_cla,plot_hist:()=>plot_hist,plot_label:()=>plot_label,plot_legend:()=>plot_legend,plot_pie:()=>plot_pie,plot_plot:()=>plot_plot,plot_plot_bar:()=>plot_plot_bar,plot_plot_easy:()=>plot_plot_easy,plot_plot_scatter:()=>plot_plot_scatter,plot_plot_xy:()=>plot_plot_xy,plot_savefig:()=>plot_savefig,plot_show:()=>plot_show,plot_subplot:()=>plot_subplot,plot_text:()=>plot_text,plot_ticks:()=>plot_ticks,plot_title:()=>plot_title,py_sum:()=>py_sum,pylab_imshow:()=>pylab_imshow,series_create:()=>series_create,series_create_from_index:()=>series_create_from_index,series_create_from_text:()=>series_create_from_text,series_get_num:()=>series_get_num,series_index_value:()=>series_index_value});var datastructure_namespaceObject={};__webpack_require__.r(datastructure_namespaceObject),__webpack_require__.d(datastructure_namespaceObject,{ds_add_node_by_attr:()=>ds_add_node_by_attr,ds_add_node_by_name:()=>ds_add_node_by_name,ds_create_linkedlist:()=>ds_create_linkedlist,ds_create_linkedlist_container:()=>ds_create_linkedlist_container,ds_create_linkedlist_item:()=>ds_create_linkedlist_item,ds_create_node:()=>ds_create_node,ds_del_node_by_attr:()=>ds_del_node_by_attr,ds_del_node_by_name:()=>ds_del_node_by_name,ds_get_node_attr:()=>ds_get_node_attr,ds_reverse_linkedlist:()=>ds_reverse_linkedlist,ds_set_node_attr:()=>ds_set_node_attr});var factory_namespaceObject={};__webpack_require__.r(factory_namespaceObject),__webpack_require__.d(factory_namespaceObject,{factory_block:()=>factory_block,factory_block_return:()=>factory_block_return,factory_block_return_with_textarea:()=>factory_block_return_with_textarea,factory_block_with_textarea:()=>factory_block_with_textarea,factory_callMethod_noreturn:()=>factory_callMethod_noreturn,factory_callMethod_return:()=>factory_callMethod_return,factory_create_with_container:()=>factory_create_with_container,factory_create_with_item:()=>factory_create_with_item,factory_declare:()=>factory_declare,factory_from_import:()=>factory_from_import,factory_function_noreturn:()=>factory_function_noreturn,factory_function_return:()=>factory_function_return,factory_import:()=>factory_import});var hardware_namespaceObject={};__webpack_require__.r(hardware_namespaceObject),__webpack_require__.d(hardware_namespaceObject,{hardware_arduino_analog_read:()=>hardware_arduino_analog_read,hardware_arduino_analog_write:()=>hardware_arduino_analog_write,hardware_arduino_digital_read:()=>hardware_arduino_digital_read,hardware_arduino_digital_write:()=>hardware_arduino_digital_write,hardware_arduino_start:()=>hardware_arduino_start,inout_highlow:()=>inout_highlow});var inout_namespaceObject={};__webpack_require__.r(inout_namespaceObject),__webpack_require__.d(inout_namespaceObject,{inout_input:()=>inout_input,inout_print:()=>inout_print,inout_print_container:()=>inout_print_container,inout_print_end:()=>inout_print_end,inout_print_inline:()=>inout_print_inline,inout_print_item:()=>inout_print_item,inout_print_many:()=>inout_print_many,inout_type_input:()=>inout_type_input,pyinout_type_input:()=>pyinout_type_input});var iot_namespaceObject={};__webpack_require__.r(iot_namespaceObject),__webpack_require__.d(iot_namespaceObject,{IOT_EMQX_INIT_AND_CONNECT_BY_MIXLY_CODE:()=>IOT_EMQX_INIT_AND_CONNECT_BY_MIXLY_CODE,IOT_EMQX_INIT_AND_CONNECT_BY_SHARE_CODE:()=>IOT_EMQX_INIT_AND_CONNECT_BY_SHARE_CODE,IOT_EMQX_PING:()=>IOT_EMQX_PING,IOT_FORMATTING:()=>IOT_FORMATTING,IOT_FORMAT_STRING:()=>IOT_FORMAT_STRING,IOT_MIXIO_NTP:()=>IOT_MIXIO_NTP,IOT_MIXIO_PUBLISH:()=>IOT_MIXIO_PUBLISH,IOT_MIXIO_SUBSCRIBE:()=>IOT_MIXIO_SUBSCRIBE,IOT_MIXIO_UNSUBSCRIBE:()=>IOT_MIXIO_UNSUBSCRIBE,iot_checkonenet:()=>iot_checkonenet,iot_client_onboard:()=>iot_client_onboard,iot_create_with_item:()=>iot_create_with_item,iot_http_client:()=>iot_http_client,iot_http_data:()=>iot_http_data,iot_mixio_check:()=>iot_mixio_check,iot_mixio_connect:()=>iot_mixio_connect,iot_mixio_connect_only:()=>iot_mixio_connect_only,iot_mixio_disconnect:()=>iot_mixio_disconnect,iot_mixio_format_msg:()=>iot_mixio_format_msg,iot_mixio_format_topic:()=>iot_mixio_format_topic,iot_mixly_key:()=>iot_mixly_key,iot_mixly_key_py:()=>iot_mixly_key_py,iot_mqtt_client:()=>iot_mqtt_client,iot_mqtt_data:()=>iot_mqtt_data,iot_onenet_check:()=>iot_onenet_check,iot_onenet_connect:()=>iot_onenet_connect,iot_onenet_disconnect:()=>iot_onenet_disconnect,iot_onenet_publish:()=>iot_onenet_publish,iot_onenet_publish_dict:()=>iot_onenet_publish_dict,iot_onenetconnect:()=>iot_onenetconnect,iot_onenetdisconnect:()=>iot_onenetdisconnect,iot_publish:()=>iot_publish,iot_publish_container:()=>iot_publish_container,iot_publish_item:()=>iot_publish_item});var pins_namespaceObject={};__webpack_require__.r(pins_namespaceObject),__webpack_require__.d(pins_namespaceObject,{pins_analog_read:()=>pins_analog_read,pins_analog_write:()=>pins_analog_write,pins_digital_read:()=>pins_digital_read,pins_digital_write:()=>pins_digital_write});var serial_namespaceObject={};__webpack_require__.r(serial_namespaceObject),__webpack_require__.d(serial_namespaceObject,{serial_close:()=>serial_close,serial_open:()=>serial_open,serial_read_b:()=>serial_read_b,serial_write:()=>serial_write});var sklearn_namespaceObject={};__webpack_require__.r(sklearn_namespaceObject),__webpack_require__.d(sklearn_namespaceObject,{sklearn_DecisionTreeClassifier_Regressor:()=>sklearn_DecisionTreeClassifier_Regressor,sklearn_GaussianNB:()=>sklearn_GaussianNB,sklearn_KMeans:()=>sklearn_KMeans,sklearn_KMeans_fit:()=>sklearn_KMeans_fit,sklearn_KNeighborsClassifier_Regressor:()=>sklearn_KNeighborsClassifier_Regressor,sklearn_LinearRegression:()=>sklearn_LinearRegression,sklearn_RandomForestClassifier_Regressor:()=>sklearn_RandomForestClassifier_Regressor,sklearn_Ridge:()=>sklearn_Ridge,sklearn_cluster_centers_labels_inertia:()=>sklearn_cluster_centers_labels_inertia,sklearn_coef_intercept:()=>sklearn_coef_intercept,sklearn_data_target:()=>sklearn_data_target,sklearn_fit:()=>sklearn_fit,sklearn_fit_no_target:()=>sklearn_fit_no_target,sklearn_load:()=>sklearn_load,sklearn_make_blobs:()=>sklearn_make_blobs,sklearn_make_classification:()=>sklearn_make_classification,sklearn_make_regression:()=>sklearn_make_regression,sklearn_pca:()=>sklearn_pca,sklearn_pca_fit_transform:()=>sklearn_pca_fit_transform,sklearn_predict:()=>sklearn_predict,sklearn_save_load_model:()=>sklearn_save_load_model,sklearn_score:()=>sklearn_score,sklearn_score_no_target:()=>sklearn_score_no_target,sklearn_train_test_split:()=>sklearn_train_test_split,sklearn_train_test_split_no_target:()=>sklearn_train_test_split_no_target});var system_namespaceObject={};__webpack_require__.r(system_namespaceObject),__webpack_require__.d(system_namespaceObject,{Panic_with_status_code:()=>system_Panic_with_status_code,base_delay:()=>base_delay,controls_millis:()=>system_controls_millis,controls_mstimer2:()=>controls_mstimer2,controls_mstimer2_start:()=>controls_mstimer2_start,controls_mstimer2_stop:()=>controls_mstimer2_stop,reset:()=>system_reset,time_localtime:()=>time_localtime,time_sleep:()=>system_time_sleep});var turtle_namespaceObject={};__webpack_require__.r(turtle_namespaceObject),__webpack_require__.d(turtle_namespaceObject,{turtle_bgcolor:()=>turtle_bgcolor,turtle_bgcolor_hex:()=>turtle_bgcolor_hex,turtle_bgcolor_hex_new:()=>turtle_bgcolor_hex_new,turtle_circle:()=>turtle_circle,turtle_circle_advanced:()=>turtle_circle_advanced,turtle_clear:()=>turtle_clear,turtle_clone:()=>turtle_clone,turtle_color:()=>turtle_color,turtle_color_hex:()=>turtle_color_hex,turtle_color_seclet:()=>turtle_color_seclet,turtle_create:()=>turtle_create,turtle_done:()=>turtle_done,turtle_exitonclick:()=>turtle_exitonclick,turtle_fill:()=>turtle_fill,turtle_fillcolor:()=>turtle_fillcolor,turtle_fillcolor_hex:()=>turtle_fillcolor_hex,turtle_fillcolor_hex_new:()=>turtle_fillcolor_hex_new,turtle_getscreen:()=>turtle_getscreen,turtle_goto:()=>turtle_goto,turtle_listen:()=>turtle_listen,turtle_move:()=>turtle_move,turtle_numinput:()=>turtle_numinput,turtle_onclick:()=>turtle_onclick,turtle_onkey:()=>turtle_onkey,turtle_ontimer:()=>turtle_ontimer,turtle_pencolor:()=>turtle_pencolor,turtle_pencolor_hex:()=>turtle_pencolor_hex,turtle_pencolor_hex_new:()=>turtle_pencolor_hex_new,turtle_penup:()=>turtle_penup,turtle_pos_shape:()=>turtle_pos_shape,turtle_rotate:()=>turtle_rotate,turtle_screen_delay:()=>turtle_screen_delay,turtle_screen_savefig:()=>turtle_screen_savefig,turtle_setheading:()=>turtle_setheading,turtle_setxy:()=>turtle_setxy,turtle_shape:()=>turtle_shape,turtle_shapesize:()=>turtle_shapesize,turtle_size:()=>turtle_size,turtle_size_speed:()=>turtle_size_speed,turtle_speed:()=>turtle_speed,turtle_textinput:()=>turtle_textinput,turtle_visible:()=>turtle_visible,turtle_write:()=>turtle_write,turtle_write_format:()=>turtle_write_format,turtle_write_format_skulpt:()=>turtle_write_format_skulpt});var generators_ai_namespaceObject={};__webpack_require__.r(generators_ai_namespaceObject),__webpack_require__.d(generators_ai_namespaceObject,{AI_ChooseAndGet:()=>ai_AI_ChooseAndGet,AI_Face_match:()=>ai_AI_Face_match,AI_ImageClassify:()=>ai_AI_ImageClassify,AI_ImageClassify_Func:()=>ai_AI_ImageClassify_Func,AI_Nlp:()=>ai_AI_Nlp,AI_Nlp_Func:()=>ai_AI_Nlp_Func,AI_Nlp_Func_sim:()=>ai_AI_Nlp_Func_sim,AI_Nlp_Sim:()=>ai_AI_Nlp_Sim,AI_Nlp_Topic:()=>ai_AI_Nlp_Topic,AI_Nlp_newsSummary:()=>ai_AI_Nlp_newsSummary,AI_Ocr:()=>ai_AI_Ocr,AI_Ocr_Func:()=>ai_AI_Ocr_Func,AI_Speech_asr:()=>ai_AI_Speech_asr,AI_Speech_synthesis:()=>ai_AI_Speech_synthesis,AI_audio:()=>ai_AI_audio,AI_client:()=>ai_AI_client,AI_photo:()=>ai_AI_photo,AI_result:()=>ai_AI_result});var generators_algorithm_namespaceObject={};__webpack_require__.r(generators_algorithm_namespaceObject),__webpack_require__.d(generators_algorithm_namespaceObject,{algorithm_add_path:()=>algorithm_algorithm_add_path,algorithm_add_school:()=>algorithm_algorithm_add_school,algorithm_all_books:()=>algorithm_algorithm_all_books,algorithm_all_books_sequence:()=>algorithm_algorithm_all_books_sequence,algorithm_book_scale:()=>algorithm_algorithm_book_scale,algorithm_check_feet:()=>algorithm_algorithm_check_feet,algorithm_chick_calculate:()=>algorithm_algorithm_chick_calculate,algorithm_color_seclet:()=>algorithm_algorithm_color_seclet,algorithm_current_school:()=>algorithm_algorithm_current_school,algorithm_del_path:()=>algorithm_algorithm_del_path,algorithm_delete_book:()=>algorithm_algorithm_delete_book,algorithm_divide_books:()=>algorithm_algorithm_divide_books,algorithm_find_path:()=>algorithm_algorithm_find_path,algorithm_first_book:()=>algorithm_algorithm_first_book,algorithm_fz_calc:()=>algorithm_algorithm_fz_calc,algorithm_fz_compare:()=>algorithm_algorithm_fz_compare,algorithm_fz_move:()=>algorithm_algorithm_fz_move,algorithm_fz_set_min:()=>algorithm_algorithm_fz_set_min,algorithm_get_current_location:()=>algorithm_algorithm_get_current_location,algorithm_get_half_books:()=>algorithm_algorithm_get_half_books,algorithm_hxdb_add:()=>algorithm_algorithm_hxdb_add,algorithm_hxdb_init_soldier:()=>algorithm_algorithm_hxdb_init_soldier,algorithm_hxdb_last_line:()=>algorithm_algorithm_hxdb_last_line,algorithm_hxdb_result:()=>algorithm_algorithm_hxdb_result,algorithm_hxdb_stand_in_line:()=>algorithm_algorithm_hxdb_stand_in_line,algorithm_init_fzsf:()=>algorithm_algorithm_init_fzsf,algorithm_init_hxdb:()=>algorithm_algorithm_init_hxdb,algorithm_init_jttl:()=>algorithm_algorithm_init_jttl,algorithm_move_recent:()=>algorithm_algorithm_move_recent,algorithm_new_path:()=>algorithm_algorithm_new_path,algorithm_next_book:()=>algorithm_algorithm_next_book,algorithm_no_left:()=>algorithm_algorithm_no_left,algorithm_no_path:()=>algorithm_algorithm_no_path,algorithm_no_ring2:()=>algorithm_algorithm_no_ring2,algorithm_not_home:()=>algorithm_algorithm_not_home,algorithm_not_school:()=>algorithm_algorithm_not_school,algorithm_number_add:()=>algorithm_algorithm_number_add,algorithm_number_zero:()=>algorithm_algorithm_number_zero,algorithm_prepare:()=>algorithm_algorithm_prepare,algorithm_prepare2:()=>algorithm_algorithm_prepare2,algorithm_prepare_2_1:()=>algorithm_algorithm_prepare_2_1,algorithm_prepare_2_2:()=>algorithm_algorithm_prepare_2_2,algorithm_print_book2:()=>algorithm_algorithm_print_book2,algorithm_print_jttl_answer:()=>algorithm_algorithm_print_jttl_answer,algorithm_print_number:()=>algorithm_algorithm_print_number,algorithm_print_path:()=>algorithm_algorithm_print_path,algorithm_print_path2:()=>algorithm_algorithm_print_path2,algorithm_rabbit_add:()=>algorithm_algorithm_rabbit_add,algorithm_rabbit_number_in_range:()=>algorithm_algorithm_rabbit_number_in_range,algorithm_rabbit_zero:()=>algorithm_algorithm_rabbit_zero,algorithm_return_path:()=>algorithm_algorithm_return_path,algorithm_set_path:()=>algorithm_algorithm_set_path,algorithm_two_left:()=>algorithm_algorithm_two_left,algorithm_void_path:()=>algorithm_algorithm_void_path,algorithm_yes_ring2:()=>algorithm_algorithm_yes_ring2,hanoi_init:()=>algorithm_hanoi_init,hanoi_init_offline:()=>algorithm_hanoi_init_offline,hanoi_move:()=>algorithm_hanoi_move});var generators_communicate_namespaceObject={};__webpack_require__.r(generators_communicate_namespaceObject),__webpack_require__.d(generators_communicate_namespaceObject,{requests_attribute:()=>communicate_requests_attribute,requests_get:()=>communicate_requests_get,requests_get_old:()=>communicate_requests_get_old,requests_method:()=>communicate_requests_method,requests_post:()=>communicate_requests_post});var generators_data_namespaceObject={};__webpack_require__.r(generators_data_namespaceObject),__webpack_require__.d(generators_data_namespaceObject,{array_create:()=>data_array_create,array_toarray:()=>data_array_toarray,dataframe_aggregate_func:()=>data_dataframe_aggregate_func,dataframe_create:()=>data_dataframe_create,dataframe_create_from_index:()=>data_dataframe_create_from_index,dataframe_create_from_one_index:()=>data_dataframe_create_from_one_index,dataframe_fillna:()=>data_dataframe_fillna,dataframe_get:()=>data_dataframe_get,dataframe_groupby:()=>data_dataframe_groupby,dataframe_head_tail:()=>data_dataframe_head_tail,dataframe_info:()=>data_dataframe_info,dataframe_median:()=>data_dataframe_median,dataframe_select:()=>data_dataframe_select,dataframe_sort_values:()=>data_dataframe_sort_values,matrix_multiplication:()=>data_matrix_multiplication,matrix_transpose:()=>data_matrix_transpose,numpy_argmin_template_match:()=>data_numpy_argmin_template_match,numpy_astype:()=>data_numpy_astype,numpy_c_:()=>data_numpy_c_,numpy_dot:()=>data_numpy_dot,numpy_linalg_det:()=>data_numpy_linalg_det,numpy_linalg_inv:()=>data_numpy_linalg_inv,numpy_max:()=>data_numpy_max,numpy_mean:()=>data_numpy_mean,numpy_mean_digit:()=>data_numpy_mean_digit,numpy_min:()=>data_numpy_min,numpy_ones:()=>data_numpy_ones,numpy_random_random:()=>data_numpy_random_random,numpy_reshape:()=>data_numpy_reshape,numpy_shape:()=>data_numpy_shape,numpy_size:()=>data_numpy_size,numpy_square:()=>data_numpy_square,numpy_std:()=>data_numpy_std,numpy_sum:()=>data_numpy_sum,numpy_trig:()=>data_numpy_trig,pandas_drop_columns:()=>data_pandas_drop_columns,pandas_dropna:()=>data_pandas_dropna,pandas_readcsv:()=>data_pandas_readcsv,pl_axes:()=>data_pl_axes,pl_bar:()=>data_pl_bar,pl_hist:()=>data_pl_hist,pl_label:()=>data_pl_label,pl_legend:()=>data_pl_legend,pl_pie:()=>data_pl_pie,pl_plot:()=>data_pl_plot,pl_plot_bar:()=>data_pl_plot_bar,pl_plot_easy:()=>data_pl_plot_easy,pl_plot_scatter:()=>data_pl_plot_scatter,pl_plot_xy:()=>data_pl_plot_xy,pl_savefig:()=>data_pl_savefig,pl_show:()=>data_pl_show,pl_subplot:()=>data_pl_subplot,pl_text:()=>data_pl_text,pl_ticks:()=>data_pl_ticks,pl_title:()=>data_pl_title,plot_axes:()=>data_plot_axes,plot_bar:()=>data_plot_bar,plot_cla:()=>data_plot_cla,plot_hist:()=>data_plot_hist,plot_label:()=>data_plot_label,plot_legend:()=>data_plot_legend,plot_pie:()=>data_plot_pie,plot_plot:()=>data_plot_plot,plot_plot_bar:()=>data_plot_plot_bar,plot_plot_easy:()=>data_plot_plot_easy,plot_plot_scatter:()=>data_plot_plot_scatter,plot_plot_xy:()=>data_plot_plot_xy,plot_savefig:()=>data_plot_savefig,plot_show:()=>data_plot_show,plot_subplot:()=>data_plot_subplot,plot_text:()=>data_plot_text,plot_ticks:()=>data_plot_ticks,plot_title:()=>data_plot_title,py_sum:()=>data_py_sum,pylab_imshow:()=>data_pylab_imshow,series_create:()=>data_series_create,series_create_from_index:()=>data_series_create_from_index,series_create_from_text:()=>data_series_create_from_text,series_get_num:()=>data_series_get_num,series_index_value:()=>data_series_index_value});var generators_datastructure_namespaceObject={};__webpack_require__.r(generators_datastructure_namespaceObject),__webpack_require__.d(generators_datastructure_namespaceObject,{ds_add_node_by_attr:()=>datastructure_ds_add_node_by_attr,ds_add_node_by_name:()=>datastructure_ds_add_node_by_name,ds_create_linkedlist:()=>datastructure_ds_create_linkedlist,ds_create_node:()=>datastructure_ds_create_node,ds_del_node_by_attr:()=>datastructure_ds_del_node_by_attr,ds_del_node_by_name:()=>datastructure_ds_del_node_by_name,ds_get_node_attr:()=>datastructure_ds_get_node_attr,ds_reverse_linkedlist:()=>datastructure_ds_reverse_linkedlist,ds_set_node_attr:()=>datastructure_ds_set_node_attr});var generators_factory_namespaceObject={};__webpack_require__.r(generators_factory_namespaceObject),__webpack_require__.d(generators_factory_namespaceObject,{factory_block:()=>factory_factory_block,factory_block_return:()=>factory_factory_block_return,factory_block_return_with_textarea:()=>factory_factory_block_return_with_textarea,factory_block_with_textarea:()=>factory_factory_block_with_textarea,factory_callMethod_noreturn:()=>factory_factory_callMethod_noreturn,factory_callMethod_return:()=>factory_factory_callMethod_return,factory_declare:()=>factory_factory_declare,factory_from_import:()=>factory_factory_from_import,factory_function_noreturn:()=>factory_factory_function_noreturn,factory_function_return:()=>factory_factory_function_return,factory_import:()=>factory_factory_import});var generators_hardware_namespaceObject={};__webpack_require__.r(generators_hardware_namespaceObject),__webpack_require__.d(generators_hardware_namespaceObject,{hardware_arduino_analog_read:()=>hardware_hardware_arduino_analog_read,hardware_arduino_analog_write:()=>hardware_hardware_arduino_analog_write,hardware_arduino_digital_read:()=>hardware_hardware_arduino_digital_read,hardware_arduino_digital_write:()=>hardware_hardware_arduino_digital_write,hardware_arduino_start:()=>hardware_hardware_arduino_start,inout_highlow:()=>hardware_inout_highlow});var generators_inout_namespaceObject={};__webpack_require__.r(generators_inout_namespaceObject),__webpack_require__.d(generators_inout_namespaceObject,{inout_input:()=>inout_inout_input,inout_print:()=>inout_inout_print,inout_print_end:()=>inout_inout_print_end,inout_print_inline:()=>inout_inout_print_inline,inout_print_many:()=>inout_inout_print_many,inout_type_input:()=>inout_inout_type_input,pyinout_type_input:()=>inout_pyinout_type_input});var generators_iot_namespaceObject={};__webpack_require__.r(generators_iot_namespaceObject),__webpack_require__.d(generators_iot_namespaceObject,{IOT_EMQX_INIT_AND_CONNECT_BY_MIXLY_CODE:()=>iot_IOT_EMQX_INIT_AND_CONNECT_BY_MIXLY_CODE,IOT_EMQX_INIT_AND_CONNECT_BY_SHARE_CODE:()=>iot_IOT_EMQX_INIT_AND_CONNECT_BY_SHARE_CODE,IOT_EMQX_PING:()=>iot_IOT_EMQX_PING,IOT_FORMATTING:()=>iot_IOT_FORMATTING,IOT_FORMAT_STRING:()=>iot_IOT_FORMAT_STRING,IOT_MIXIO_NTP:()=>iot_IOT_MIXIO_NTP,IOT_MIXIO_PUBLISH:()=>iot_IOT_MIXIO_PUBLISH,IOT_MIXIO_SUBSCRIBE:()=>iot_IOT_MIXIO_SUBSCRIBE,IOT_MIXIO_UNSUBSCRIBE:()=>iot_IOT_MIXIO_UNSUBSCRIBE,iot_mixio_check:()=>iot_iot_mixio_check,iot_mixio_connect:()=>iot_iot_mixio_connect,iot_mixio_connect_only:()=>iot_iot_mixio_connect_only,iot_mixio_disconnect:()=>iot_iot_mixio_disconnect,iot_mixio_format_msg:()=>iot_iot_mixio_format_msg,iot_mixio_format_topic:()=>iot_iot_mixio_format_topic,iot_mixly_key:()=>iot_iot_mixly_key,iot_mixly_key_py:()=>iot_iot_mixly_key_py});var generators_pins_namespaceObject={};__webpack_require__.r(generators_pins_namespaceObject),__webpack_require__.d(generators_pins_namespaceObject,{pins_analog_read:()=>pins_pins_analog_read,pins_analog_write:()=>pins_pins_analog_write,pins_digital:()=>pins_digital,pins_digital_read:()=>pins_pins_digital_read,pins_digital_write:()=>pins_pins_digital_write});var generators_serial_namespaceObject={};__webpack_require__.r(generators_serial_namespaceObject),__webpack_require__.d(generators_serial_namespaceObject,{serial_close:()=>serial_serial_close,serial_open:()=>serial_serial_open,serial_read_b:()=>serial_serial_read_b,serial_write:()=>serial_serial_write});var generators_sklearn_namespaceObject={};__webpack_require__.r(generators_sklearn_namespaceObject),__webpack_require__.d(generators_sklearn_namespaceObject,{sklearn_DecisionTreeClassifier_Regressor:()=>sklearn_sklearn_DecisionTreeClassifier_Regressor,sklearn_GaussianNB:()=>sklearn_sklearn_GaussianNB,sklearn_KMeans:()=>sklearn_sklearn_KMeans,sklearn_KMeans_fit:()=>sklearn_sklearn_KMeans_fit,sklearn_KNeighborsClassifier_Regressor:()=>sklearn_sklearn_KNeighborsClassifier_Regressor,sklearn_LinearRegression:()=>sklearn_sklearn_LinearRegression,sklearn_RandomForestClassifier_Regressor:()=>sklearn_sklearn_RandomForestClassifier_Regressor,sklearn_Ridge:()=>sklearn_sklearn_Ridge,sklearn_cluster_centers_labels_inertia:()=>sklearn_sklearn_cluster_centers_labels_inertia,sklearn_coef_intercept:()=>sklearn_sklearn_coef_intercept,sklearn_data_target:()=>sklearn_sklearn_data_target,sklearn_fit:()=>sklearn_sklearn_fit,sklearn_fit_no_target:()=>sklearn_sklearn_fit_no_target,sklearn_load:()=>sklearn_sklearn_load,sklearn_make_blobs:()=>sklearn_sklearn_make_blobs,sklearn_make_classification:()=>sklearn_sklearn_make_classification,sklearn_make_regression:()=>sklearn_sklearn_make_regression,sklearn_pca:()=>sklearn_sklearn_pca,sklearn_pca_fit_transform:()=>sklearn_sklearn_pca_fit_transform,sklearn_predict:()=>sklearn_sklearn_predict,sklearn_save_load_model:()=>sklearn_sklearn_save_load_model,sklearn_score:()=>sklearn_sklearn_score,sklearn_score_no_target:()=>sklearn_sklearn_score_no_target,sklearn_train_test_split:()=>sklearn_sklearn_train_test_split,sklearn_train_test_split_no_target:()=>sklearn_sklearn_train_test_split_no_target});var generators_system_namespaceObject={};__webpack_require__.r(generators_system_namespaceObject),__webpack_require__.d(generators_system_namespaceObject,{controls_end_program:()=>system_controls_end_program,controls_millis:()=>generators_system_controls_millis,time_localtime:()=>system_time_localtime});var generators_turtle_namespaceObject={};__webpack_require__.r(generators_turtle_namespaceObject),__webpack_require__.d(generators_turtle_namespaceObject,{turtle_bgcolor:()=>turtle_turtle_bgcolor,turtle_bgcolor_hex:()=>turtle_turtle_bgcolor_hex,turtle_bgcolor_hex_new:()=>turtle_turtle_bgcolor_hex_new,turtle_circle:()=>turtle_turtle_circle,turtle_circle_advanced:()=>turtle_turtle_circle_advanced,turtle_clear:()=>turtle_turtle_clear,turtle_clone:()=>turtle_turtle_clone,turtle_color:()=>turtle_turtle_color,turtle_color_hex:()=>turtle_turtle_color_hex,turtle_color_seclet:()=>turtle_turtle_color_seclet,turtle_create:()=>turtle_turtle_create,turtle_done:()=>turtle_turtle_done,turtle_exitonclick:()=>turtle_turtle_exitonclick,turtle_fill:()=>turtle_turtle_fill,turtle_fillcolor:()=>turtle_turtle_fillcolor,turtle_fillcolor_hex:()=>turtle_turtle_fillcolor_hex,turtle_fillcolor_hex_new:()=>turtle_turtle_fillcolor_hex_new,turtle_getscreen:()=>turtle_turtle_getscreen,turtle_goto:()=>turtle_turtle_goto,turtle_listen:()=>turtle_turtle_listen,turtle_move:()=>turtle_turtle_move,turtle_numinput:()=>turtle_turtle_numinput,turtle_onclick:()=>turtle_turtle_onclick,turtle_onkey:()=>turtle_turtle_onkey,turtle_ontimer:()=>turtle_turtle_ontimer,turtle_pencolor:()=>turtle_turtle_pencolor,turtle_pencolor_hex:()=>turtle_turtle_pencolor_hex,turtle_pencolor_hex_new:()=>turtle_turtle_pencolor_hex_new,turtle_penup:()=>turtle_turtle_penup,turtle_pos_shape:()=>turtle_turtle_pos_shape,turtle_rotate:()=>turtle_turtle_rotate,turtle_screen_delay:()=>turtle_turtle_screen_delay,turtle_screen_savefig:()=>turtle_turtle_screen_savefig,turtle_setheading:()=>turtle_turtle_setheading,turtle_setxy:()=>turtle_turtle_setxy,turtle_shape:()=>turtle_turtle_shape,turtle_shapesize:()=>turtle_turtle_shapesize,turtle_size:()=>turtle_turtle_size,turtle_size_speed:()=>turtle_turtle_size_speed,turtle_speed:()=>turtle_turtle_speed,turtle_textinput:()=>turtle_turtle_textinput,turtle_visible:()=>turtle_turtle_visible,turtle_write:()=>turtle_turtle_write,turtle_write_format:()=>turtle_turtle_write_format,turtle_write_format_skulpt:()=>turtle_turtle_write_format_skulpt});const external_Blockly_namespaceObject=Blockly,external_Mixly_namespaceObject=Mixly,Variables={NAME_TYPE:"VARIABLE",allVariables:function(e){var t;if(e.getDescendants)t=e.getDescendants();else{if(!e.getAllBlocks)throw"Not Block or Workspace: "+e;t=e.getAllBlocks()}for(var n=Object.create(null),a=0;a1&&(s+=a)):n=s}else n="i";return n}},variables=Variables; /** * @license * Visual Blocks Editor @@ -18,4 +18,4 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -class Names{constructor(e,t){if(this.variablePrefix_=t||"",this.reservedDict_=Object.create(null),e)for(var n=e.split(","),a=0;a0;_--)t.getInputTargetBlock("IF"+_)&&t.getInputTargetBlock("IF"+_).previousConnection?n[_]=t.getInputTargetBlock("IF"+_).previousConnection:n[_]=null,this.removeInput("IF"+_),t.getInputTargetBlock("DO"+_)&&t.getInputTargetBlock("DO"+_).previousConnection?a[_]=t.getInputTargetBlock("DO"+_).previousConnection:a[_]=null,this.removeInput("DO"+_);this.elseifCount_=parseInt(e.getAttribute("elseif"),10),this.elseCount_=parseInt(e.getAttribute("else"),10);for(_=1;_<=this.elseifCount_;_++)this.appendValueInput("IF"+_).setCheck([Boolean,Number]).appendField(external_Blockly_namespaceObject.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+_).appendField(external_Blockly_namespaceObject.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(external_Blockly_namespaceObject.Msg.CONTROLS_IF_MSG_ELSE);for(_=n.length-2;_>0;_--)n[_]&&n[_].reconnect(this,"IF"+_);for(_=a.length-2;_>0;_--)a[_]&&a[_].reconnect(this,"DO"+_)},decompose:function(e){var t=e.newBlock("controls_if_if");t.initSvg();for(var n=t.getInput("STACK").connection,a=1;a<=this.elseifCount_;a++){var _=e.newBlock("controls_if_elseif");_.initSvg(),n.connect(_.previousConnection),n=_.nextConnection}if(this.elseCount_){var l=e.newBlock("controls_if_else");l.initSvg(),n.connect(l.previousConnection)}return t},compose:function(e){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 n=e.getInputTargetBlock("STACK"),a=[null],_=[null],l=null;n;){switch(n.type){case"controls_if_elseif":this.elseifCount_++,a.push(n.valueConnection_),_.push(n.statementConnection_);break;case"controls_if_else":this.elseCount_++,l=n.statementConnection_;break;default:throw Error("Unknown block type: "+n.type)}n=n.nextConnection&&n.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(a,_,l)},saveConnections:function(e){for(var t=e.getInputTargetBlock("STACK"),n=1;t;){switch(t.type){case"controls_if_elseif":var a=this.getInput("IF"+n),_=this.getInput("DO"+n);t.valueConnection_=a&&a.connection.targetConnection,t.statementConnection_=_&&_.connection.targetConnection,n++;break;case"controls_if_else":_=this.getInput("ELSE");t.statementConnection_=_&&_.connection.targetConnection;break;default:throw"Unknown block type."}t=t.nextConnection&&t.nextConnection.targetBlock()}},rebuildShape_:function(){var e=[null],t=[null],n=null;this.getInput("ELSE")&&(n=this.getInput("ELSE").connection.targetConnection);for(var a=1;this.getInput("IF"+a);){var _=this.getInput("IF"+a),l=this.getInput("DO"+a);console.log(_.connection.targetConnection),e.push(_.connection.targetConnection),t.push(l.connection.targetConnection),a++}this.updateShape_(),this.reconnectChildBlocks_(e,t,n)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var e=1;this.getInput("IF"+e);)this.removeInput("IF"+e),this.removeInput("DO"+e),e++;for(e=1;e<=this.elseifCount_;e++)this.appendValueInput("IF"+e).setCheck([Number,Boolean]).appendField(external_Blockly_namespaceObject.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+e).appendField(external_Blockly_namespaceObject.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(external_Blockly_namespaceObject.Msg.CONTROLS_IF_MSG_ELSE)},reconnectChildBlocks_:function(e,t,n){for(var a=1;a<=this.elseifCount_;a++)e[a]&&e[a].reconnect(this,"IF"+a),t[a]&&t[a].reconnect(this,"DO"+a);n&&n.reconnect(this,"ELSE")}},controls_range={init:function(){this.setColour(LOOPS_HUE),this.appendValueInput("FROM").setCheck(Number).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.PYTHON_RANGE).appendField(external_Blockly_namespaceObject.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.PYTHON_RANGE_STEP),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},controls_forEach={init:function(){this.setColour(LOOPS_HUE),this.appendValueInput("LIST").setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.CONTROLS_FOREACH_INPUT),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.CONTROLS_FOREACH_INPUT_ITEM),this.appendStatementInput("DO").appendField(external_Blockly_namespaceObject.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip((function(){return external_Blockly_namespaceObject.Msg.CONTROLS_FOR_TOOLTIP.replace("“%1”","")}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},controls_whileUntil={init:function(){this.setColour(LOOPS_HUE),this.appendValueInput("BOOL").setCheck([Boolean,Number]).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_JS_CURRENT).appendField(new external_Blockly_namespaceObject.FieldDropdown(this.OPERATORS),"MODE"),this.appendStatementInput("DO").appendField(external_Blockly_namespaceObject.Msg.LANG_CONTROLS_WHILEUNTIL_TITLE_REPEAT+external_Blockly_namespaceObject.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("MODE");return{WHILE:external_Blockly_namespaceObject.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_WHILE,UNTIL:external_Blockly_namespaceObject.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL}[t]}))}},controls_try_finally={init:function(){this.setColour(LOOPS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_TRY),this.appendStatementInput("try"),this.appendValueInput("IF1").appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO1").appendField(""),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new external_Blockly_namespaceObject.icons.MutatorIcon(["controls_except","controls_finally"],this)),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_CONTROL_TRY_TOOLTIP),this.elseifCount_=1,this.elseCount_=0},mutationToDom:function(){if(!this.elseifCount_&&!this.elseCount_)return null;var e=document.createElement("mutation");return this.elseifCount_&&e.setAttribute("elseif",this.elseifCount_),this.elseCount_&&e.setAttribute("else",1),e},domToMutation:function(e){var t=this,n=[],a=[];this.elseCount_&&this.removeInput("ELSE");for(var _=this.elseifCount_;_>0;_--)t.getInputTargetBlock("IF"+_)&&t.getInputTargetBlock("IF"+_).previousConnection?n[_]=t.getInputTargetBlock("IF"+_).previousConnection:n[_]=null,this.removeInput("IF"+_),t.getInputTargetBlock("DO"+_)&&t.getInputTargetBlock("DO"+_).previousConnection?a[_]=t.getInputTargetBlock("DO"+_).previousConnection:a[_]=null,this.removeInput("DO"+_);this.elseifCount_=parseInt(e.getAttribute("elseif"),10),this.elseCount_=parseInt(e.getAttribute("else"),10);for(_=1;_<=this.elseifCount_;_++)this.appendValueInput("IF"+_).setCheck([Boolean,Number]).appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+_).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_FINALLY);for(_=n.length-2;_>0;_--)n[_]&&n[_].reconnect(this,"IF"+_);for(_=a.length-2;_>0;_--)a[_]&&a[_].reconnect(this,"DO"+_)},decompose:function(e){var t=e.newBlock("controls_try");t.initSvg();for(var n=t.getInput("STACK").connection,a=1;a<=this.elseifCount_;a++){var _=e.newBlock("controls_except");_.initSvg(),n.connect(_.previousConnection),n=_.nextConnection}if(this.elseCount_){var l=e.newBlock("controls_finally");l.initSvg(),n.connect(l.previousConnection)}return t},compose:function(e){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 n=e.getInputTargetBlock("STACK"),a=[null],_=[null],l=null;n;){switch(n.type){case"controls_except":this.elseifCount_++,a.push(n.valueConnection_),_.push(n.statementConnection_);break;case"controls_finally":this.elseCount_++,l=n.statementConnection_;break;default:throw Error("Unknown block type: "+n.type)}n=n.nextConnection&&n.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(a,_,l)},saveConnections:function(e){for(var t=e.getInputTargetBlock("STACK"),n=1;t;){switch(t.type){case"controls_except":var a=this.getInput("IF"+n),_=this.getInput("DO"+n);t.valueConnection_=a&&a.connection.targetConnection,t.statementConnection_=_&&_.connection.targetConnection,n++;break;case"controls_finally":_=this.getInput("ELSE");t.statementConnection_=_&&_.connection.targetConnection;break;default:throw"Unknown block type."}t=t.nextConnection&&t.nextConnection.targetBlock()}},rebuildShape_:function(){var e=[null],t=[null],n=null;this.getInput("ELSE")&&(n=this.getInput("ELSE").connection.targetConnection);for(var a=1;this.getInput("IF"+a);){var _=this.getInput("IF"+a),l=this.getInput("DO"+a);console.log(_.connection.targetConnection),e.push(_.connection.targetConnection),t.push(l.connection.targetConnection),a++}this.updateShape_(),this.reconnectChildBlocks_(e,t,n)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var e=1;this.getInput("IF"+e);)this.removeInput("IF"+e),this.removeInput("DO"+e),e++;for(e=1;e<=this.elseifCount_;e++)this.appendValueInput("IF"+e).setCheck([Number,Boolean]).appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+e).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_FINALLY)},reconnectChildBlocks_:function(e,t,n){for(var a=1;a<=this.elseifCount_;a++)e[a]&&e[a].reconnect(this,"IF"+a),t[a]&&t[a].reconnect(this,"DO"+a);n&&n.reconnect(this,"ELSE")}},controls_flow_statements={init:function(){this.setColour(LOOPS_HUE);var e=new external_Blockly_namespaceObject.FieldDropdown(this.OPERATORS);this.appendDummyInput().appendField(e,"FLOW").appendField(external_Blockly_namespaceObject.Msg.LANG_CONTROLS_FLOW_STATEMENTS_INPUT_OFLOOP),this.setPreviousStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_CONTROLS_FLOW_STATEMENTS_TOOLTIP);var t=this;this.setTooltip((function(){var e=t.getFieldValue("FLOW");return{BREAK:external_Blockly_namespaceObject.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK,CONTINUE:external_Blockly_namespaceObject.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE}[e]}))},onchange:function(){if(this.workspace){var e=!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){e=!0;break}t=t.getSurroundParent()}while(t);e?this.setWarningText(null):this.setWarningText(external_Blockly_namespaceObject.Msg.LANG_CONTROLS_FLOW_STATEMENTS_WARNING)}}},controls_for={init:function(){this.setColour(LOOPS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new external_Blockly_namespaceObject.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(external_Blockly_namespaceObject.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var e=this;this.setTooltip((function(){return external_Blockly_namespaceObject.Msg.CONTROLS_FOR_TOOLTIP.replace("%1",e.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},controls_for_range={init:function(){this.setColour(LOOPS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new external_Blockly_namespaceObject.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(external_Blockly_namespaceObject.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var e=this;this.setTooltip((function(){return external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_CONTROLS_FOR_RANGE_TOOLTIP.replace("%1",e.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}};controls_whileUntil.OPERATORS=[[external_Blockly_namespaceObject.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"WHILE"],[external_Blockly_namespaceObject.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"UNTIL"]],controls_flow_statements.OPERATORS=[[external_Blockly_namespaceObject.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK,"BREAK"],[external_Blockly_namespaceObject.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE,"CONTINUE"]];const controls_if_if={init:function(){this.setColour(LOOPS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.CONTROLS_IF_IF_TITLE_IF),this.appendStatementInput("STACK"),this.setTooltip(external_Blockly_namespaceObject.Msg.CONTROLS_IF_IF_TOOLTIP),this.contextMenu=!1}},controls_if_elseif={init:function(){this.setColour(LOOPS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.CONTROLS_IF_ELSEIF_TITLE_ELSEIF),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.CONTROLS_IF_ELSEIF_TOOLTIP),this.contextMenu=!1}},controls_if_else={init:function(){this.setColour(LOOPS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.CONTROLS_IF_ELSE_TITLE_ELSE),this.setPreviousStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.CONTROLS_IF_ELSE_TOOLTIP),this.contextMenu=!1}},controls_try={init:function(){this.setColour(LOOPS_HUE),this.appendDummyInput().appendField("try"),this.appendStatementInput("STACK"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.contextMenu=!1}},controls_except={init:function(){this.setColour(LOOPS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_EXCEPT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.contextMenu=!1,this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_CONTROL_EXCEPT_TOOLTIP)}},controls_finally={init:function(){this.setColour(LOOPS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_FINALLY),this.setPreviousStatement(!0),this.contextMenu=!1,this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_CONTROL_FINALLY_TOOLTIP)}},controls_repeat_ext={init:function(){this.jsonInit({message0:external_Blockly_namespaceObject.Msg.CONTROLS_REPEAT_TITLE,args0:[{type:"input_value",name:"TIMES"}],previousStatement:null,nextStatement:null,colour:LOOPS_HUE,tooltip:external_Blockly_namespaceObject.Msg.CONTROLS_REPEAT_TOOLTIP,helpUrl:external_Blockly_namespaceObject.Msg.CONTROLS_REPEAT_HELPURL}),this.appendStatementInput("DO")}},controls_lambda={init:function(){this.setColour(LOOPS_HUE),this.appendValueInput("BOOL").appendField("lambda"),this.appendStatementInput("DO").appendField(external_Blockly_namespaceObject.Msg.MIXLY_STAT),this.setOutput(!0)}},controls_pass={init:function(){this.setColour(LOOPS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_PASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_CONTROLS_PASS_TOOLTIP)}},controls_thread={init:function(){this.setColour(LOOPS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_CONTROLS_THREAD_START),this.appendValueInput("callback").appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_CONTROLS_THREAD_USE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_CONTROLS_THREAD_TOOLTIP)}},do_while={init:function(){this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.CONTROLS_REPEAT_TITLE_REPEAT+external_Blockly_namespaceObject.Msg.MIXLY_DO),this.appendStatementInput("input_data").setCheck(null),this.appendValueInput("select_data").setCheck(null).appendField(external_Blockly_namespaceObject.Msg.CONTROLS_OPERATOR_UNTIL).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"true"],[external_Blockly_namespaceObject.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"false"]]),"type"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(LOOPS_HUE),this.setTooltip("do-while loop"),this.setHelpUrl("")}},garbage_collection={init:function(){this.setColour(LOOPS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_OP_GARBAGE_COLLECT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},get_mem_alloc={init:function(){this.setColour(LOOPS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_GET_MEM_ALLOC),this.setOutput(!0)}},get_mem_free={init:function(){this.setColour(LOOPS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_GET_MEM_FREE),this.setOutput(!0)}},get_unique_identifier={init:function(){this.setColour(LOOPS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_GET+external_Blockly_namespaceObject.Msg.MIXLY_DEVICE+"ID"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.PROCEDURES_DEFRETURN_RETURN+external_Blockly_namespaceObject.Msg.MIXLY_GET_UNIQUE_IDEN)}},datetime_fromtimestamp={init:function(){this.setColour(LOOPS_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_RTC_TIMESTAMP),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_TIMESTAMP_TO_DATA),this.setInputsInline(!0),this.setOutput(!0,Number)}},MATH_HUE=230;external_Blockly_namespaceObject.FieldTextInput.math_number_validator=function(e){return String(e)},external_Blockly_namespaceObject.FieldTextInput.math_number_validator_include_blank=function(e){if(""===e)return"";return/^-?(0X|0x|0O|0o|0B|0b)?[a-fA-F0-9]{1,}(\.[a-fA-F0-9]+)?$/.test(e)?String(e):null};const math_number={init:function(){this.setColour(MATH_HUE),this.appendDummyInput().appendField(new external_Blockly_namespaceObject.FieldTextInput("0",external_Blockly_namespaceObject.FieldTextInput.math_number_validator),"NUM"),this.setOutput(!0,Number),this.setTooltip(external_Blockly_namespaceObject.Msg.MATH_NUMBER_TOOLTIP)}},math_constant={init:function(){this.setColour(MATH_HUE);this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new external_Blockly_namespaceObject.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("CONSTANT");return{pi:external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_TOOLTIP,e:external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_TOOLTIP}[t]}))}},math_constant_mp={init:function(){this.setColour(MATH_HUE);this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new external_Blockly_namespaceObject.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("CONSTANT");return{pi:external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_MP_TOOLTIP,e:external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_MP_TOOLTIP}[t]}))}},math_arithmetic={init:function(){this.setColour(MATH_HUE),this.setOutput(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new external_Blockly_namespaceObject.FieldDropdown([["+","ADD"],["-","MINUS"],["×","MULTIPLY"],["÷","DIVIDE"],["%","QUYU"],["//","ZHENGCHU"],["**","POWER"]]),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{ADD:external_Blockly_namespaceObject.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:external_Blockly_namespaceObject.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:external_Blockly_namespaceObject.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:external_Blockly_namespaceObject.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:external_Blockly_namespaceObject.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:external_Blockly_namespaceObject.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:external_Blockly_namespaceObject.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[t]}))}},math_selfcalcu={init:function(){this.setColour(MATH_HUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new external_Blockly_namespaceObject.FieldDropdown([["+=","ADD"],["-=","MINUS"],["×=","MULTIPLY"],["÷=","DIVIDE"],["%=","QUYU"],["//=","ZHENGCHU"],["**=","POWER"]]),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{ADD:external_Blockly_namespaceObject.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:external_Blockly_namespaceObject.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:external_Blockly_namespaceObject.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:external_Blockly_namespaceObject.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:external_Blockly_namespaceObject.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:external_Blockly_namespaceObject.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:external_Blockly_namespaceObject.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[t]}))}},math_bit={init:function(){this.setColour(MATH_HUE),this.setOutput(!0,Number),this.appendValueInput("A").setCheck(Number),this.appendValueInput("B").setCheck(Number).appendField(new external_Blockly_namespaceObject.FieldDropdown([["&","&"],["|","|"],[">>",">>"],["<<","<<"]]),"OP"),this.setInputsInline(!0),this.setTooltip("位运算")}},math_trig={init:function(){this.setColour(MATH_HUE),this.setOutput(!0,Number),this.appendValueInput("NUM").setCheck(Number).appendField(new external_Blockly_namespaceObject.FieldDropdown([["sin","SIN"],["cos","COS"],["tan","TAN"],["asin","ASIN"],["acos","ACOS"],["atan","ATAN"],["-","-"],["ln","LN"],["log10","LOG10"],["e^","EXP"],["10^","POW10"]]),"OP");var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{SIN:external_Blockly_namespaceObject.Msg.MATH_TRIG_TOOLTIP_SIN,COS:external_Blockly_namespaceObject.Msg.MATH_TRIG_TOOLTIP_COS,TAN:external_Blockly_namespaceObject.Msg.MATH_TRIG_TOOLTIP_TAN,ASIN:external_Blockly_namespaceObject.Msg.MATH_TRIG_TOOLTIP_ASIN,ACOS:external_Blockly_namespaceObject.Msg.MATH_TRIG_TOOLTIP_ACOS,ATAN:external_Blockly_namespaceObject.Msg.MATH_TRIG_TOOLTIP_ATAN,LN:external_Blockly_namespaceObject.Msg.MATH_SINGLE_TOOLTIP_LN}[t]}))}},math_dec={init:function(){var e=[[external_Blockly_namespaceObject.Msg.MATH_BIN,"bin"],[external_Blockly_namespaceObject.Msg.MATH_OCT,"oct"],[external_Blockly_namespaceObject.Msg.MATH_HEX,"hex"]];this.setColour(MATH_HUE),this.setOutput(!0,String),this.appendValueInput("NUM").setCheck(Number).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"OP");var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{bin:external_Blockly_namespaceObject.Msg.MATH_DEC_TOOLTIP_BIN,oct:external_Blockly_namespaceObject.Msg.MATH_DEC_TOOLTIP_OCT,hex:external_Blockly_namespaceObject.Msg.MATH_DEC_TOOLTIP_HEX}[e]}))}},math_to_int={init:function(){var e=[[external_Blockly_namespaceObject.Msg.LANG_MATH_TO_ROUND,"round"],[external_Blockly_namespaceObject.Msg.LANG_MATH_TO_CEIL,"ceil"],[external_Blockly_namespaceObject.Msg.LANG_MATH_TO_FLOOR,"floor"],[external_Blockly_namespaceObject.Msg.MATH_ABS,"fabs"],[external_Blockly_namespaceObject.Msg.MATH_SQRT,"sqrt"]];this.setColour(MATH_HUE),this.appendValueInput("A").setCheck(Number).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"OP"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{sqrt:external_Blockly_namespaceObject.Msg.MATH_SINGLE_TOOLTIP_ROOT,fabs:external_Blockly_namespaceObject.Msg.MATH_SINGLE_TOOLTIP_ABS,sq:external_Blockly_namespaceObject.Msg.MATH_SINGLE_TOOLTIP_SQ,round:external_Blockly_namespaceObject.Msg.MATH_SINGLE_TOOLTIP_ROUND,ceil:external_Blockly_namespaceObject.Msg.MATH_SINGLE_TOOLTIP_CEIL,floor:external_Blockly_namespaceObject.Msg.MATH_SINGLE_TOOLTIP_FLOOR}[e]}))}},math_max_min={init:function(){var e=[[external_Blockly_namespaceObject.Msg.MIXLY_MAX,"max"],[external_Blockly_namespaceObject.Msg.MIXLY_MIN,"min"]];this.setColour(MATH_HUE),this.appendValueInput("A").setCheck(Number).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"OP").appendField("("),this.appendValueInput("B").setCheck(Number).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(","),this.appendDummyInput("").setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(")"),this.setInputsInline(!0),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{max:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_MATH_MAX,min:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_MATH_MIN}[e]}))}},math_number_base_conversion={init:function(){var e=[[external_Blockly_namespaceObject.Msg.MATH_TWO,"two"],[external_Blockly_namespaceObject.Msg.MATH_EIGHT,"eight"],[external_Blockly_namespaceObject.Msg.MATH_TEN,"ten"],[external_Blockly_namespaceObject.Msg.MATH_SIXTEEN,"sixteen"]];this.setColour(MATH_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MATH_BA),this.appendValueInput("NUM").appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"OP").appendField(external_Blockly_namespaceObject.Msg.MATH_JinZhi).setCheck(Number),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MATH_ZHW).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"OP2").appendField(external_Blockly_namespaceObject.Msg.MATH_JinZhi),this.setFieldValue("ten","OP2"),this.setOutput(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP"),n={two:external_Blockly_namespaceObject.Msg.MATH_Before_two,eight:external_Blockly_namespaceObject.Msg.MATH_Before_eight,ten:external_Blockly_namespaceObject.Msg.MATH_Before_ten,sixteen:external_Blockly_namespaceObject.Msg.MATH_Before_sixteen},a=t.getFieldValue("OP2"),_={two:external_Blockly_namespaceObject.Msg.MATH_Behind_two,eight:external_Blockly_namespaceObject.Msg.MATH_Behind_eight,ten:external_Blockly_namespaceObject.Msg.MATH_Behind_ten,sixteen:external_Blockly_namespaceObject.Msg.MATH_Behind_sixteen};return n[e]+_[a]}))}},math_random={init:function(){var e=[[external_Blockly_namespaceObject.Msg.LANG_MATH_INT,"int"],[external_Blockly_namespaceObject.Msg.LANG_MATH_FLOAT,"float"]];this.setColour(MATH_HUE),this.setOutput(!0,Number),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_RANDOM).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"TYPE"),this.appendValueInput("FROM").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.LANG_MATH_RANDOM_INT_INPUT_TO),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("TYPE"),n={int:external_Blockly_namespaceObject.Msg.LANG_MATH_INT,float:external_Blockly_namespaceObject.Msg.LANG_MATH_FLOAT_RANDOM};return external_Blockly_namespaceObject.Msg.MATH_RANDOM_INT_TOOLTIP+n[e]}))}},math_constrain={init:function(){this.setColour(MATH_HUE),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.LANG_MATH_CONSTRAIN_INPUT_CONSTRAIN),this.appendValueInput("LOW").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.LANG_MATH_CONSTRAIN_INPUT_LOW),this.appendValueInput("HIGH").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.LANG_MATH_CONSTRAIN_INPUT_HIGH),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MATH_CONSTRAIN_TOOLTIP)}},math_map={init:function(){this.setColour(MATH_HUE),this.appendValueInput("NUM",Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MAP).setCheck(Number),this.appendValueInput("fromLow",Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MAP_FROM).setCheck(Number),this.appendValueInput("fromHigh",Number).appendField(",").setCheck(Number),this.appendValueInput("toLow",Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MAP_TO).setCheck(Number),this.appendValueInput("toHigh",Number).appendField(",").setCheck(Number),this.appendDummyInput("").appendField("]"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_MATH_MAP)}},math_indexer_number={init:function(){this.setColour(MATH_HUE),this.appendDummyInput().appendField(new external_Blockly_namespaceObject.FieldTextInput("0",external_Blockly_namespaceObject.FieldTextInput.math_number_validator_include_blank),"NUM"),this.setOutput(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MATH_NUMBER_TOOLTIP)}},math_random_seed={init:function(){this.setColour(MATH_HUE),this.appendValueInput("NUM").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.LANG_MATH_RANDOM_SEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_MATH_RANDOM_SEED)}},math_round={init:function(){this.setColour(MATH_HUE),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number),this.appendValueInput("VAR").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MATH_ROUND).appendField(external_Blockly_namespaceObject.Msg.TEXT_KEEP),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.TEXT_DECIMAL),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MATH_ROUND_NEW_TOOLTIP)}},text_to_number={init:function(){var e=[[external_Blockly_namespaceObject.Msg.MIXLY_TO_INT,"int"],[external_Blockly_namespaceObject.Msg.MIXLY_TO_FLOAT,"float"],[external_Blockly_namespaceObject.Msg.MIXLY_TO_BITES,"b"],[external_Blockly_namespaceObject.Msg.LANG_MATH_BYTE+external_Blockly_namespaceObject.Msg.MIXLY_TO_INT,"bti"]];this.setColour(MATH_HUE),this.appendValueInput("VAR").appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"TOWHAT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("TOWHAT");return{int:external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_TOOLTIP_TOINT,float:external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_TOOLTIP_TOFLOAT,b:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TEXT_TOBYTE}[e]}))}},text_to_number_skulpt={init:function(){var e=[[external_Blockly_namespaceObject.Msg.MIXLY_TO_INT,"int"],[external_Blockly_namespaceObject.Msg.MIXLY_TO_FLOAT,"float"]];this.setColour(MATH_HUE),this.appendValueInput("VAR").appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"TOWHAT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("TOWHAT");return{int:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TEXT_TOINT,float:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TEXT_TOFLOAT}[e]}))}},base_map=math_map,turn_to_int={init:function(){this.setColour(MATH_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.LANG_MATH_BYTE+external_Blockly_namespaceObject.Msg.MIXLY_TO_HEX),this.setOutput(!0,Number),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_TOOLTIP_TOHEX)}},generate_cartesian_product={init:function(){this.setColour(MATH_HUE),this.itemCount_=1,this.setMutator(new external_Blockly_namespaceObject.icons.MutatorIcon(["lists_create_with_item"],this)),this.appendDummyInput("DUMMY").appendField(external_Blockly_namespaceObject.Msg.MIXLY_PRODUCT+external_Blockly_namespaceObject.Msg.MIXLY_GENERATE_CARTESIAN_PRODUCT),this.appendValueInput("REPEAT").appendField(external_Blockly_namespaceObject.Msg.MIXLY_EVERY_PER_ELEPER_ELEMENT),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.CONTROLS_REPEAT_TITLE_TIMES),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.LISTS_CREATE_WITH_PYTHON_TOOLTIP),this.updateShape_()},mutationToDom:function(){var e=document.createElement("mutation");return e.setAttribute("items",this.itemCount_),e},domToMutation:function(e){this.itemCount_=parseInt(e.getAttribute("items"),10),this.updateShape_()},decompose:function(e){var t=e.newBlock("lists_create_with_container");t.initSvg();for(var n=t.getInput("STACK").connection,a=0;a1&&"\\"===e.charAt(0)){var t=e.charAt(1);if("0"===t||"b"===t||"f"===t||"n"===t||"r"===t||"t"===t||"\\"===t||"'"===t)return String(e).substring(0,2);if("x"===t&&"0"===e.charAt(2)&&"B"===e.charAt(3))return String(e).substring(0,4)}return String(e).substring(0,1)};const text_char={init:function(){this.setColour(TEXTS_HUE),this.appendDummyInput().appendField(this.newQuote_(!0)).appendField(new external_Blockly_namespaceObject.FieldTextInput("",external_Blockly_namespaceObject.FieldTextInput.char_validator),"TEXT").appendField(this.newQuote_(!1)),this.setOutput(!0,Number),this.setTooltip(external_Blockly_namespaceObject.Msg.TEXT_CHAR_TOOLTIP)},newQuote_:function(e){if(1==e)var t="../../media/quote2.png";else t="../../media/quote3.png";return new external_Blockly_namespaceObject.FieldImage(t,7,12,'"')}},text_join={init:function(){this.setColour(TEXTS_HUE),this.appendValueInput("A").setCheck([String,Number]),this.appendValueInput("B").setCheck([String,Number]).appendField(external_Blockly_namespaceObject.Msg.MIXLY_TEXT_JOIN),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TEXT_JOIN)}},ascii_to_char={init:function(){this.setColour(TEXTS_HUE),this.appendValueInput("VAR").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_TOCHAR),this.setOutput(!0,String),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TEXT_TOCHAR)}},char_to_ascii={init:function(){this.setColour(TEXTS_HUE),this.appendValueInput("VAR").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_TOASCII),this.setOutput(!0,Number),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TEXT_TOASCII)}},number_to_text={init:function(){this.setColour(TEXTS_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_TOSTRING),this.setOutput(!0,String),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_TOOLTIP_TOTEXT)}},text_length={init:function(){this.setColour(TEXTS_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_LENGTH),this.setOutput(!0,Number),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TEXT_LENGTH)}},text_char_at2={init:function(){this.WHERE_OPTIONS=[[external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[external_Blockly_namespaceObject.Msg.TEXT_GET_INDEX_RANDOM+1+external_Blockly_namespaceObject.Msg.TEXT_CHARAT2,"RANDOM"]],this.setHelpUrl(external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(TEXTS_HUE),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_GET,"MODE"),external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_TAIL&&this.appendDummyInput("TAIL").appendField(external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_TAIL),this.setInputsInline(!0),this.setOutput(!0),this.updateAt_(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("MODE"),n=e.getFieldValue("WHERE"),a="";switch(t+" "+n){case"GET FROM_START":case"GET FROM_END":a=external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_TOOLTIP_GET_FROM;break;case"GET RANDOM":a=external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_TOOLTIP_GET_RANDOM;break;case"GET_REMOVE FROM_START":case"GET_REMOVE FROM_END":a=external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM;break;case"GET_REMOVE RANDOM":a=external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM}return"FROM_START"!=n&&"FROM_END"!=n||(a+=" "+external_Blockly_namespaceObject.Msg.LISTS_INDEX_FROM_START_TOOLTIP.replace("%1",external_Blockly_namespaceObject.Msg.ONE_BASED_INDEXING?"#1":"#0")),a}));var t=this;this.setTooltip((function(){var e=t.getFieldValue("WHERE"),n={FROM_START:external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_FROM_START,FROM_END:external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_FROM_END,RANDOM:external_Blockly_namespaceObject.Msg.TEXT_GET_INDEX_RANDOM};return external_Blockly_namespaceObject.Msg.PROCEDURES_DEFRETURN_RETURN+external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_TYPE_STRING+n[e]+"n"+external_Blockly_namespaceObject.Msg.TEXT_CHARAT2}))},mutationToDom:function(){var e=document.createElement("mutation");e.setAttribute("statement",!this.outputConnection);var t=this.getInput("AT").type==external_Blockly_namespaceObject.INPUT_VALUE;return e.setAttribute("at",t),e},domToMutation:function(e){var t="true"==e.getAttribute("statement");this.updateStatement_(t),e="false"!=e.getAttribute("at"),this.updateAt_(e)},updateStatement_:function(e){e!=!this.outputConnection&&(this.unplug(!0,!0),e?(this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)):(this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)))},updateAt_:function(e){this.removeInput("AT"),this.removeInput("ORDINAL",!0),e?(this.appendValueInput("AT").setCheck(Number),external_Blockly_namespaceObject.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL").appendField(external_Blockly_namespaceObject.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT");var t=new external_Blockly_namespaceObject.FieldDropdown(this.WHERE_OPTIONS,(function(t){var n="FROM_START"==t||"FROM_END"==t;if(n!=e){var a=this.sourceBlock_;return a.updateAt_(n),a.setFieldValue(t,"WHERE"),null}}));this.getInput("AT").appendField(t,"WHERE"),external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_TAIL&&this.moveInputBefore("TAIL",null)}},text_char_at={init:function(){this.setHelpUrl(external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(TEXTS_HUE),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_GET+" "+external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_FROM_START),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.TEXT_CHARAT2),this.setOutput(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.PROCEDURES_DEFRETURN_RETURN+external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_TYPE_STRING+external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_FROM_START+"n"+external_Blockly_namespaceObject.Msg.TEXT_CHARAT2)}},text_random_char={init:function(){this.setHelpUrl(external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(TEXTS_HUE),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.TEXT_RANDOM_CHAR),this.setOutput(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.TEXT_RANDOM_CHAR_TOOLTIP)}},text_substring2={init:function(){this.WHERE_OPTIONS_1=[[external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[external_Blockly_namespaceObject.Msg.LISTS_GET_SUBLIST_START_FIRST,"FIRST"]],this.WHERE_OPTIONS_2=[[external_Blockly_namespaceObject.Msg.LISTS_GET_SUBLIST_END_FROM_START,"FROM_START"],[external_Blockly_namespaceObject.Msg.LISTS_GET_SUBLIST_END_FROM_END,"FROM_END"],[external_Blockly_namespaceObject.Msg.LISTS_GET_SUBLIST_END_LAST,"LAST"]],this.setHelpUrl(external_Blockly_namespaceObject.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(TEXTS_HUE),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.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(external_Blockly_namespaceObject.Msg._GET_TEXT_SUBLIST_TOOLTIP)},mutationToDom:function(){var e=document.createElement("mutation"),t=this.getInput("AT1").type==external_Blockly_namespaceObject.INPUT_VALUE;e.setAttribute("at1",t);var n=this.getInput("AT2").type==external_Blockly_namespaceObject.INPUT_VALUE;return e.setAttribute("at2",n),e},domToMutation:function(e){var t="true"==e.getAttribute("at1"),n="true"==e.getAttribute("at2");this.updateAt_(1,t),this.updateAt_(2,n)},updateAt_:function(e,t){this.removeInput("AT"+e),this.removeInput("ORDINAL"+e,!0),t?(this.appendValueInput("AT"+e).setCheck(Number),external_Blockly_namespaceObject.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL"+e).appendField(external_Blockly_namespaceObject.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT"+e);var n=new external_Blockly_namespaceObject.FieldDropdown(this["WHERE_OPTIONS_"+e],(function(n){var a="FROM_START"==n||"FROM_END"==n;if(a!=t){var _=this.sourceBlock_;return _.updateAt_(e,a),_.setFieldValue(n,"WHERE"+e),null}}));this.getInput("AT"+e).appendField(n,"WHERE"+e),1==e&&(this.moveInputBefore("AT1","AT2"),this.getInput("ORDINAL1")&&this.moveInputBefore("ORDINAL1","AT2"))}},text_substring={init:function(){this.setHelpUrl(external_Blockly_namespaceObject.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(TEXTS_HUE),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT1").appendField(external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_GET+" "+external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_FROM_START),this.appendValueInput("AT2").appendField(external_Blockly_namespaceObject.Msg.LISTS_GET_SUBLIST_END_FROM_START),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.TEXT_CHARAT2),this.setInputsInline(!0),this.setOutput(!0,["List",String]),this.setTooltip(external_Blockly_namespaceObject.Msg._GET_TEXT_SUBLIST_TOOLTIP)}},text_equals_starts_ends={init:function(){var e=[[external_Blockly_namespaceObject.Msg.MIXLY_EQUALS,"==="],[external_Blockly_namespaceObject.Msg.MIXLY_STARTSWITH,"startswith"],[external_Blockly_namespaceObject.Msg.MIXLY_ENDSWITH,"endswith"]];this.setColour(TEXTS_HUE),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DOWHAT").setCheck(String),this.setOutput(!0,[Boolean,Number]),this.setInputsInline(!0)}},text_compare_to={init:function(){this.setColour(TEXTS_HUE),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(external_Blockly_namespaceObject.Msg.MIXLY_COMPARETO).setCheck(String),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_COMPARETO_HELP)}},text_capital={init:function(){var e=[[external_Blockly_namespaceObject.Msg.TEXT_UPPER,"upper"],[external_Blockly_namespaceObject.Msg.TEXT_TITLE,"title"],[external_Blockly_namespaceObject.Msg.TEXT_CAPITALIZE,"capitalize"],[external_Blockly_namespaceObject.Msg.TEXT_SWAPCASE,"swapcase"],[external_Blockly_namespaceObject.Msg.TEXT_LOWER,"lower"]];this.setColour(TEXTS_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"CAPITAL").setCheck(String),this.setOutput(!0,String);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CAPITAL");return{upper:external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TEXT_UPPER_TOOLTIP,title:external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TEXT_TITLE_TOOLTIP,swapcase:external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TEXT_SWAPCASE_TOOLTIP,capitalize:external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TEXT_CAPITALIZE_TOOLTIP,lower:external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TEXT_LOWER_TOOLTIP}[e]}))}},text_center={init:function(){var e=[[external_Blockly_namespaceObject.Msg.TEXT_LJUST,"ljust"],[external_Blockly_namespaceObject.Msg.TEXT_CENTER,"center"],[external_Blockly_namespaceObject.Msg.TEXT_RJUST,"rjust"]];this.setColour(TEXTS_HUE),this.appendValueInput("VAR").appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"CENTER").setCheck(String),this.appendValueInput("WID").appendField(external_Blockly_namespaceObject.Msg.MIXLY_WIDTH).setCheck(Number),this.appendValueInput("Symbol").appendField(external_Blockly_namespaceObject.Msg.MIXLY_RECT_Fill).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TEXT_CENTER_TOOLTIP)}},text_find={init:function(){this.setColour(TEXTS_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).setCheck(String),this.appendValueInput("STR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MID+external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER).setCheck(String),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_LIST_INDEX),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TEXT_FIND_TOOLTIP)}},text_join_seq={init:function(){this.setColour(TEXTS_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_USE_STR).setCheck(String),this.appendValueInput("LIST").appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_SEQ).setCheck("List","Tuple","Set","Dict"),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_GET_STR),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_TOOLTIP)}},text_replace={init:function(){this.setColour(TEXTS_HUE),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("STR1").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_REPLACE).setCheck(String),this.appendValueInput("STR2").appendField(external_Blockly_namespaceObject.Msg.LISTS_SET_INDEX_INPUT_TO).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TEXT_REPLACE_TOOLTIP)}},text_split={init:function(){this.setColour(TEXTS_HUE),this.appendValueInput("VAR"),this.appendValueInput("VAL").appendField(external_Blockly_namespaceObject.Msg.LIST_SPLIT_AS),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.LIST_SPLIT),this.setOutput(!0,"List"),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TEXT_SPLIT_TOOLTIP),this.setInputsInline(!0)}},text_strip={init:function(){var e=[[external_Blockly_namespaceObject.Msg.TEXT_TRIM_BOTH,"strip"],[external_Blockly_namespaceObject.Msg.TEXT_TRIM_LEFT,"lstrip"],[external_Blockly_namespaceObject.Msg.TEXT_TRIM_RIGHT,"rstrip"]];this.setColour(TEXTS_HUE),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.TEXT_STRIM),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"TOWHAT"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.TEXT_BLANK),this.setOutput(!0,String),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("TOWHAT");return{strip:external_Blockly_namespaceObject.Msg.TEXT_TRIM_BOTH_TOOLTIP,lstrip:external_Blockly_namespaceObject.Msg.TEXT_TRIM_LEFT_TOOLTIP,rstrip:external_Blockly_namespaceObject.Msg.TEXT_TRIM_RIGHT_TOOLTIP}[e]}))}},text_format={init:function(){this.setColour(TEXTS_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROPYTHON_FORMAT),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldTextInput("str"),"VAR"),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new external_Blockly_namespaceObject.icons.MutatorIcon(["text_create_with_item"],this)),this.setOutput(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TEXT_FORMAT_TOOLTIP)},mutationToDom:function(){var e=document.createElement("mutation");return e.setAttribute("items",this.itemCount_),e},domToMutation:function(e){this.itemCount_=parseInt(e.getAttribute("items"),10),this.updateShape_()},decompose:function(e){var t=e.newBlock("text_create_with_container");t.initSvg();for(var n=t.getInput("STACK").connection,a=0;at?e[t]:0==t?'"key"':'"key'+(t+1)+'"'),"KEY"+t).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},dicts_create_with_container={init:function(){this.setColour(DICTS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(external_Blockly_namespaceObject.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},dicts_create_with_item={init:function(){this.setColour(DICTS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},dicts_keys={init:function(){this.setColour(DICTS_HUE),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DICT_KEYS),this.setTooltip(external_Blockly_namespaceObject.Msg.DICTS_KEYS_TOOLTIP),this.setOutput(!0,"List")}},dicts_get={init:function(){this.setColour(DICTS_HUE),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(external_Blockly_namespaceObject.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DICTS_ADD_VALUE),this.setOutput(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.DICTS_GET_TOOLTIP)}},dicts_get_default={init:function(){this.setColour(DICTS_HUE),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(external_Blockly_namespaceObject.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DICTS_ADD_VALUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.DICTS_DEFAULT_VALUE),this.setOutput(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.DICTS_GET_DEFAULT_TOOLTIP)}},dicts_add_or_change={init:function(){this.setColour(DICTS_HUE),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(external_Blockly_namespaceObject.Msg.DICTS_ADD),this.appendDummyInput(),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.DICTS_ADD_VALUE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.DICTS_ADD_OR_CHANGE_TOOLTIP)}},dicts_delete={init:function(){this.setColour(DICTS_HUE),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(external_Blockly_namespaceObject.Msg.DICTS_DELETE_IN),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DICTS_DELETE_VALUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.DICTS_DELETE_TOOLTIP)}},dicts_update={init:function(){this.setColour(DICTS_HUE),this.appendValueInput("DICT2").setCheck("Dict").appendField(external_Blockly_namespaceObject.Msg.MAKE_DICT),this.appendValueInput("DICT").setCheck("Dict").appendField(external_Blockly_namespaceObject.Msg.DICT_UPDATE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MID),this.setTooltip(external_Blockly_namespaceObject.Msg.DICTS_UPDATE_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},dicts_clear={init:function(){this.setColour(DICTS_HUE),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DICT_CLEAR),this.setTooltip(external_Blockly_namespaceObject.Msg.DICTS_CLEAR_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},dicts_items={init:function(){this.setColour(DICTS_HUE),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DICT_ITEMS),this.setTooltip(external_Blockly_namespaceObject.Msg.DICTS_ITEMS_TOOLTIP),this.setOutput(!0,"List")}},dicts_values={init:function(){this.setColour(DICTS_HUE),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DICT_VALUES),this.setTooltip(external_Blockly_namespaceObject.Msg.DICTS_VALUES_TOOLTIP),this.setOutput(!0,"List")}},dicts_length={init:function(){this.setColour(DICTS_HUE),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_LENGTH),this.setTooltip(external_Blockly_namespaceObject.Msg.DICT_LENGTH_TOOLTIP),this.setOutput(!0,Number)}},dicts_deldict={init:function(){this.setColour(DICTS_HUE),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DICT_DELDICT),this.setTooltip(external_Blockly_namespaceObject.Msg.DICTS_DEL_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},dicts_add_change_del={init:function(){this.MODE=[[external_Blockly_namespaceObject.Msg.DICTS_ADD_OR_CHANGE,"INSERT"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_JS_DELETE_VAR,"DELETE"]],this.setHelpUrl(external_Blockly_namespaceObject.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(DICTS_HUE),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("AT2"),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).appendField(external_Blockly_namespaceObject.Msg.DICTS_ADD_VALUE),this.updateAt_(!0),this.setInputsInline(!0),this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0);var e=this;this.setTooltip((function(){var t="";switch(e.getFieldValue("WHERE")){case"INSERT":t=external_Blockly_namespaceObject.Msg.DICTS_ADD_TOOLTIP;break;case"DELETE":t=external_Blockly_namespaceObject.Msg.DICTS_DELETE_TOOLTIP}return t}))},mutationToDom:function(){var e=document.createElement("mutation"),t=this.getInput("AT2").type==external_Blockly_namespaceObject.INPUT_VALUE;return e.setAttribute("at2",t),e},domToMutation:function(e){var t="true"==e.getAttribute("at2");this.updateAt_(t)},updateAt_:function(e){this.removeInput("AT2"),this.removeInput("ORDINAL",!0),e?this.appendValueInput("AT2").setCheck(Number):this.appendDummyInput("AT2");var t=new external_Blockly_namespaceObject.FieldDropdown(this.MODE,(function(t){var n="INSERT"==t;if(n!=e){var a=this.sourceBlock_;return a.updateAt_(n),a.setFieldValue(t,"WHERE"),null}}));this.getInput("AT2").appendField(t,"WHERE")}},dicts_pop={init:function(){this.setColour(DICTS_HUE),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_DICT_POP),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DICTS_ADD_VALUE),this.setTooltip(external_Blockly_namespaceObject.Msg.DICT_POP_TOOLTIP),this.setInputsInline(!0),this.setOutput(!0)}},dicts_setdefault={init:function(){this.setColour(DICTS_HUE),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(external_Blockly_namespaceObject.Msg.DICTS_SET_DEFAULT),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DICTS_DEFAULT_VALUE),this.appendValueInput("VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.DICTS_SETDEFAULT_TOOLTIP)}},dicts_create_with_noreturn={init:function(){this.setColour(DICTS_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldLabel(external_Blockly_namespaceObject.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 external_Blockly_namespaceObject.icons.MutatorIcon(["dicts_create_with_item"],this)),this.setTooltip(external_Blockly_namespaceObject.Msg.DICTS_CREATE_WITH_TOOLTIP)},mutationToDom:function(){var e=document.createElement("mutation");return e.setAttribute("items",this.itemCount_),e},domToMutation:function(e){this.itemCount_=parseInt(e.getAttribute("items"),10),this.updateShape_()},decompose:function(e){var t=e.newBlock("dicts_create_with_container");t.initSvg();for(var n=t.getInput("STACK").connection,a=0;at?e[t]:0==t?'"key"':'"key'+(t+1)+'"'),"KEY"+t).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},dicts_todict={init:function(){this.setColour(DICTS_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_TODICT),this.setOutput(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_TOOLTIP_TODICT)}},dicts_to_json={init:function(){this.setColour(DICTS_HUE),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_TO_JSON),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0)}},json_to_dicts={init:function(){this.setColour(DICTS_HUE),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_CONVERT_TO_JSON),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0)}},dicts_to_to={init:function(){this.setColour(DICTS_HUE),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("VAR1").appendField("key1"),this.appendValueInput("VAR2").appendField("index"),this.appendValueInput("VAR3").appendField("key2"),this.appendValueInput("VAR4").appendField("key3"),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0)}},LOGIC_HUE=210,logic_compare={init:function(){var e=external_Blockly_namespaceObject.RTL?[["=","EQ"],["≠","NEQ"],[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["=","EQ"],["≠","NEQ"],["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(LOGIC_HUE),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{EQ:external_Blockly_namespaceObject.Msg.LOGIC_COMPARE_TOOLTIP_EQ,NEQ:external_Blockly_namespaceObject.Msg.LOGIC_COMPARE_TOOLTIP_NEQ,LT:external_Blockly_namespaceObject.Msg.LOGIC_COMPARE_TOOLTIP_LT,LTE:external_Blockly_namespaceObject.Msg.LOGIC_COMPARE_TOOLTIP_LTE,GT:external_Blockly_namespaceObject.Msg.LOGIC_COMPARE_TOOLTIP_GT,GTE:external_Blockly_namespaceObject.Msg.LOGIC_COMPARE_TOOLTIP_GTE}[e]})),this.prevBlocks_=[null,null]}},logic_compare_continous={init:function(){var e=external_Blockly_namespaceObject.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]],t=external_Blockly_namespaceObject.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(LOGIC_HUE),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"OP1"),this.appendValueInput("C").appendField(new external_Blockly_namespaceObject.FieldDropdown(t),"OP2"),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_LOGIC_COMPARE_CONTINOUS_TOOLTIP)}},logic_operation={init:function(){var e=[[external_Blockly_namespaceObject.Msg.LOGIC_OPERATION_AND,"AND"],[external_Blockly_namespaceObject.Msg.LOGIC_OPERATION_OR,"OR"],[external_Blockly_namespaceObject.Msg.LOGIC_OPERATION_NOR,"NOR"],[external_Blockly_namespaceObject.Msg.LOGIC_OPERATION_XOR,"XOR"]];this.setColour(LOGIC_HUE),this.setOutput(!0,Boolean),this.appendValueInput("A").setCheck([Boolean,Number]),this.appendValueInput("B").setCheck([Boolean,Number]).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{AND:external_Blockly_namespaceObject.Msg.LOGIC_OPERATION_TOOLTIP_AND,OR:external_Blockly_namespaceObject.Msg.LOGIC_OPERATION_TOOLTIP_OR,NOR:external_Blockly_namespaceObject.Msg.LOGIC_OPERATION_TOOLTIP_NOR,XOR:external_Blockly_namespaceObject.Msg.LOGIC_OPERATION_TOOLTIP_XOR}[e]}))}},logic_negate={init:function(){this.setColour(LOGIC_HUE),this.setOutput(!0,Boolean),this.appendValueInput("BOOL").setCheck([Number,Boolean]).appendField(external_Blockly_namespaceObject.Msg.LOGIC_NEGATE_TITLE),this.setTooltip(external_Blockly_namespaceObject.Msg.LOGIC_NEGATE_TOOLTIP)}},logic_boolean={init:function(){var e=[[external_Blockly_namespaceObject.Msg.LOGIC_BOOLEAN_TRUE,"TRUE"],[external_Blockly_namespaceObject.Msg.LOGIC_BOOLEAN_FALSE,"FALSE"]];this.setColour(LOGIC_HUE),this.setOutput(!0,Boolean),this.appendDummyInput().appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"BOOL"),this.setTooltip(external_Blockly_namespaceObject.Msg.LOGIC_BOOLEAN_TOOLTIP)}},logic_null={init:function(){this.setColour(LOGIC_HUE),this.setOutput(!0),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.LOGIC_NULL),this.setTooltip(external_Blockly_namespaceObject.Msg.LOGIC_NULL_TOOLTIP)}},logic_true_or_false={init:function(){this.setColour(LOGIC_HUE),this.appendValueInput("A"),this.appendValueInput("B").appendField(external_Blockly_namespaceObject.Msg.LOGIC_TERNARY_IF_TRUE),this.appendValueInput("C").appendField(external_Blockly_namespaceObject.Msg.LOGIC_TERNARY_IF_FALSE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_LOGIT_TRUEORFALSE)}},logic_is_in={init:function(){var e=[[external_Blockly_namespaceObject.Msg.TEXT_APPEND_TO,"in"],[external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_LOGIC_IS_NOT_IN,"not in"]];this.setColour(LOGIC_HUE),this.appendValueInput("A"),this.appendValueInput("B").setCheck([String,"List"]).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"BOOL"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MICROBIT_LOGIC_IS_IN),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.IN)}},logic_is={init:function(){var e=[[external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_LOGIC_IS,"is"],[external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_LOGIC_IS_NOT,"is not"]];this.setColour(LOGIC_HUE),this.appendValueInput("A"),this.appendValueInput("B").appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"BOOL"),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_LOGIC_IS_TOOLTIP)}},logic_tobool={init:function(){this.setColour(LOGIC_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_TOBOOL),this.setOutput(!0,Boolean),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_TOOLTIP_TOBOOL)}},STORAGE_HUE=0,storage_open_file_with_os={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("fn").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_STORAGE_OPEN_FILE_WITH_OS+"(For Windows)"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},storage_fileopen={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("FILENAME").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendValueInput("FILE").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_AS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("MODE"),n=external_Blockly_namespaceObject.Msg.MIXLY_USE,a=external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,_=external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,l=external_Blockly_namespaceObject.Msg.MIXLY_BELONG;return n+{r:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[t]+l+a+_}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},storage_fileopen_new={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("FILENAME").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("MODE"),n=external_Blockly_namespaceObject.Msg.MIXLY_USE,a=external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,_=external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,l=external_Blockly_namespaceObject.Msg.MIXLY_BELONG,i=external_Blockly_namespaceObject.Msg.PY_STORAGE_FILE_OBJECT;return n+{r:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[t]+l+a+_+i}))}},storage_fileopen_new_encoding={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("FILENAME").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE);this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXPY_TEXT_ENCODE).appendField(new external_Blockly_namespaceObject.FieldDropdown([["ANSI","ANSI"],["gbk","gbk"],["utf-8","utf-8"]]),"CODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("MODE"),n=external_Blockly_namespaceObject.Msg.MIXLY_USE,a=external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,_=external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,l=external_Blockly_namespaceObject.Msg.MIXLY_BELONG,i=external_Blockly_namespaceObject.Msg.PY_STORAGE_FILE_OBJECT;return n+{r:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[t]+l+a+_+i}))}},storage_file_write={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("data").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendValueInput("FILE").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE+external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_TYPE_STRING+external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE)}},storage_get_contents_without_para={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("FILE").setCheck("Variable").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL,"read"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE,"readline"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES,"readlines"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String)}},storage_get_contents={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("FILE").setCheck("Variable").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,"read"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,"readline"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE,"readlines"]]),"MODE"),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String);var e=this;this.setTooltip((function(){var t=e.getFieldValue("MODE"),n=external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE,a=external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER;return n+{read:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,readline:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,readlines:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE}[t]+"x"+a}))}},storage_get_a_line={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("FILE").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.setNextStatement(!0),this.appendValueInput("SIZE").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(external_Blockly_namespaceObject.Msg.MICROBIT_PYTHON_TYPE)}},storage_can_write_ornot={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("FILE").appendField(external_Blockly_namespaceObject.Msg.HTML_FILE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT1)}},storage_get_filename={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("FILE").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_FILENAME),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILENAME)}},storage_close_file={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("FILE").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE)}},storage_list_all_files={init:function(){this.setColour(STORAGE_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES)}};external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE;const storage_delete_file={init:function(){this.setColour(STORAGE_HUE),this.appendDummyInput().appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE,"remove"],[external_Blockly_namespaceObject.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(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE)}},storage_get_file_size={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("FILE").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE+external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE)}},storage_file_tell={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("FILE").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_RETURN_FILE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_PRESENT_LOCATION),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_TELL)}},storage_file_seek={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("FILE").setCheck("Variable").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION),this.appendDummyInput().appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,"start"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,"current"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END,"end"]]),"MODE"),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("MODE"),n=external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION+external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION,a=external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER,_=external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET;return n+" "+{start:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,current:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,end:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END}[t]+_+"x"+a}))}},storage_get_current_dir={init:function(){this.setColour(STORAGE_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR)}},storage_make_dir={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("PATH").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_ESP32_SET),this.appendDummyInput().appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,"mkdir"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_MAKEDIRS,"makedirs"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1);var e=this;this.setTooltip((function(){var t=e.getFieldValue("MODE");return external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH+"x"+external_Blockly_namespaceObject.Msg.MIXLY_ESP32_SET+{mkdir:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,makedirs:external_Blockly_namespaceObject.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[t]}))}},storage_rename={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("FILE").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME),this.appendValueInput("NEWFILE").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_AS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME)}},storage_change_dir={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("FILE").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR)}},storage_is_file={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("FILE").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT),this.appendDummyInput().appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.HTML_FILE,"isfile"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_DIR,"isdir"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean);let e=this;this.setTooltip((function(){var t=e.getFieldValue("MODE");return external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH+"x"+external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT+{isfile:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,isdir:external_Blockly_namespaceObject.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[t]}))}},sdcard_use_spi_init={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("SPISUB").appendField(external_Blockly_namespaceObject.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("SUB").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_SETUP+external_Blockly_namespaceObject.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(external_Blockly_namespaceObject.Msg.MIXLY_SD_CARD),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},sdcard_mount={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_SD_CARD),this.appendValueInput("DIR").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_SDCARD_MOUNT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip()}},Procedures={};Procedures.NAME_TYPE=external_Blockly_namespaceObject.PROCEDURE_CATEGORY_NAME,Procedures.allProcedures=function(e){for(var t=e.getAllBlocks(!1),n=[],a=[],_=0;_"),this.appendValueInput("style").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AIP_ATTR).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendStatementInput("DO").appendField(""),this.setInputsInline(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)}},html_style={init:function(){this.setColour(HTML_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.HTML_STYLE),this.appendStatementInput("STYLE"),this.setOutput(!0)}},html_form={init:function(){this.setColour(HTML_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.HTML_FORM_CONTENT).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.HTML_TEXT,"text"],[external_Blockly_namespaceObject.Msg.HTML_EMAIL,"email"],[external_Blockly_namespaceObject.Msg.HTML_NUMBER,"number"],[external_Blockly_namespaceObject.Msg.HTML_PASSWORD,"password"],[external_Blockly_namespaceObject.Msg.HTML_CHECKBOX,"checkbox"],[external_Blockly_namespaceObject.Msg.HTML_RADIOBUTTON,"radiobutton"],[external_Blockly_namespaceObject.Msg.HTML_BUTTON,"button"],[external_Blockly_namespaceObject.Msg.HTML_COLOUR,"colour"],[external_Blockly_namespaceObject.Msg.HTML_DATE,"date"],[external_Blockly_namespaceObject.Msg.HTML_LOCALTIME,"local time"],[external_Blockly_namespaceObject.Msg.HTML_FILE,"file"],[external_Blockly_namespaceObject.Msg.HTML_HIDDEN,"hidden"],[external_Blockly_namespaceObject.Msg.HTML_IMAGE,"image"],[external_Blockly_namespaceObject.Msg.HTML_MONTH,"month"],[external_Blockly_namespaceObject.Msg.HTML_RANGE,"range"],[external_Blockly_namespaceObject.Msg.HTML_RESET,"reset"],[external_Blockly_namespaceObject.Msg.HTML_SEARCH,"search"],[external_Blockly_namespaceObject.Msg.HTML_SUBMIT,"submit"],[external_Blockly_namespaceObject.Msg.HTML_TELEPHONENUMBER,"telephone number"],[external_Blockly_namespaceObject.Msg.HTML_TIME,"time"],[external_Blockly_namespaceObject.Msg.HTML_URL,"url"],[external_Blockly_namespaceObject.Msg.HTML_WEEK,"week"]]),"LEVEL"),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.HTML_NAME).appendField(new external_Blockly_namespaceObject.FieldTextInput("car"),"NAME"),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.HTML_VALUE).appendField(new external_Blockly_namespaceObject.FieldTextInput("go"),"VALUE"),this.appendValueInput("style").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AIP_ATTR).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},html_style_content={init:function(){this.setColour(HTML_HUE),this.appendDummyInput().appendField(new external_Blockly_namespaceObject.FieldTextInput("property"),"KEY").appendField(":").appendField(new external_Blockly_namespaceObject.FieldTextInput("value"),"VALUE"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},html_style_color={init:function(){this.setColour(HTML_HUE),this.appendDummyInput().appendField(new external_Blockly_namespaceObject.FieldTextInput("property"),"KEY").appendField(":").appendField(new external_Blockly_namespaceObject.FieldColour("#ff0000"),"RGB_LED_COLOR"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},html_text={init:function(){this.setColour(HTML_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.HTML_TEXT).appendField(new external_Blockly_namespaceObject.FieldTextInput("text"),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},UTILITY_HUE=160,raw_table={init:function(){this.setColour(UTILITY_HUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Tabular Abstraction:"),this.appendDummyInput().appendField(new external_Blockly_namespaceObject.FieldTable(""),"TEXT")}},raw_block={init:function(){this.setColour(UTILITY_HUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Code Block:"),this.appendDummyInput().appendField(new external_Blockly_namespaceObject.FieldMultilineInput(""),"TEXT")}},raw_expression={init:function(){this.setColour(UTILITY_HUE),this.appendDummyInput().appendField("Code Expression:"),this.appendDummyInput().appendField(new external_Blockly_namespaceObject.FieldMultilineInput(""),"TEXT"),this.setOutput(!0)}},raw_empty={init:function(){this.setColour(UTILITY_HUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("VALUE").appendField(""),this.setInputsInline(!1)}},text_comment={init:function(){this.setColour(UTILITY_HUE),this.appendDummyInput().appendTitle("Comment:").appendTitle(new external_Blockly_namespaceObject.FieldTextInput(""),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("This comment will be ignored by Python")}},type_check={init:function(){this.setColour(UTILITY_HUE),this.appendValueInput("VALUE").appendField(external_Blockly_namespaceObject.Msg.TYPE_CHECK),this.setInputsInline(!1),this.setOutput(!0,"Type")}},text_print_multiple={init:function(){this.setColour(UTILITY_HUE),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new external_Blockly_namespaceObject.icons.MutatorIcon(["text_print_multiple_item"],this)),this.setTooltip(external_Blockly_namespaceObject.Msg.TEXT_PRINT_TOOLTIP)},mutationToDom:function(){var e=document.createElement("mutation");return e.setAttribute("items",this.itemCount_),e},domToMutation:function(e){this.itemCount_=parseInt(e.getAttribute("items"),10),this.updateShape_()},decompose:function(e){var t=external_Blockly_namespaceObject.Block.obtain(e,"text_print_multiple_container");t.initSvg();for(var n=t.getInput("STACK").connection,a=0;a= stop:"," yield start"," start -= abs(step)"])};if(e=function(e,t,n){return"("+e+" <= "+t+") and "+o()+"("+e+", "+t+", "+n+") or "+p()+"("+e+", "+t+", "+n+")"},external_Blockly_namespaceObject.isNumber(a)&&external_Blockly_namespaceObject.isNumber(_)&&external_Blockly_namespaceObject.isNumber(l))a=parseFloat(a),_=parseFloat(_),l=Math.abs(parseFloat(l)),0==a%1&&0==_%1&&0==l%1?(a<=_?(_++,e=0==a&&1==l?_:a+", "+_,1!=l&&(e+=", "+l)):e=a+", "+--_+", -"+l,e="range("+e+")"):(e=a<_?o():p(),e+="("+a+", "+_+", "+l+")");else{var r=function(e,a){if(external_Blockly_namespaceObject.isNumber(e))e=parseFloat(e);else{var _=t.variableDB_.getDistinctName(n+a,external_Blockly_namespaceObject.Variables.NAME_TYPE);s+=_+" = "+e+"\n",e=_}return e};a=r(a,"_start"),_=r(_,"_end");r(l,"_inc"),e="number"==typeof a&&"number"==typeof _?a<_?o(0,_):p(0,_):e(a,_,l)}return s+="for "+n+" in "+e+":\n"+i},control_controls_for_range=function(e,t){var n=t.variableDB_.getName(e.getFieldValue("VAR"),external_Blockly_namespaceObject.Variables.NAME_TYPE),a=t.valueToCode(e,"FROM",t.ORDER_NONE)||"0",_=t.valueToCode(e,"TO",t.ORDER_NONE)||"0",l=t.valueToCode(e,"STEP",t.ORDER_NONE)||"1",i=t.statementToCode(e,"DO"),s=t.addLoopTrap(i,e.id)||t.PASS;return t.setups_.mixly_range="def mixly_range(start, stop, step):\n for i in range(start, stop + 1, step):\n yield i\n\n","for "+n+" in mixly_range("+a+", "+_+", "+l+"):\n"+s},control_controls_whileUntil=function(e,t){var n="UNTIL"==e.getFieldValue("MODE"),a=t.valueToCode(e,"BOOL",t.ORDER_NONE)||"False",_=t.statementToCode(e,"DO");return n&&(a="not "+a),"while "+a+":\n"+(_=t.addLoopTrap(_,e.id)||t.PASS)},control_controls_flow_statements=function(e){switch(e.getFieldValue("FLOW")){case"BREAK":return"break\n";case"CONTINUE":return"continue\n"}throw"Unknown flow statement."},control_controls_delay=function(e,t){return"sleep("+(t.valueToCode(this,"DELAY_TIME",t.ORDER_ATOMIC)||"1000")+")\n"},Panic_with_status_code=function(e,t){return"panic("+(t.valueToCode(this,"STATUS_CODE",t.ORDER_ATOMIC)||"1000")+")\n"},controls_millis=function(e,t){t.definitions_.import_time="import time";return["time.time()",t.ORDER_ATOMIC]},control_reset=function(e,t){return t.definitions_.import_microbit="from microbit import *","reset()\n"},controls_interrupts=function(){return"interrupts();\n"},controls_nointerrupts=function(){return"noInterrupts();\n"},control_controls_forEach=function(e,t){var n=t.valueToCode(this,"VAR",t.ORDER_ATOMIC)||"''",a=t.valueToCode(e,"LIST",t.ORDER_RELATIONAL)||"[]",_=t.statementToCode(e,"DO");return"for "+n+" in "+a+":\n"+(_=t.addLoopTrap(_,e.id)||t.PASS)},control_controls_range=function(e,t){return["range("+(t.valueToCode(this,"FROM",t.ORDER_NONE)||"0")+", "+(t.valueToCode(this,"TO",t.ORDER_NONE)||"0")+", "+(t.valueToCode(this,"STEP",t.ORDER_NONE)||"1")+")",t.ORDER_ATOMIC]},control_controls_lambda=function(e,t){var n="lambda "+(t.valueToCode(e,"BOOL",t.ORDER_NONE)||"None")+": "+(t.statementToCode(e,"DO")||"pass");return[n=n.replace("\n","").replace(" ",""),t.ORDER_ATOMIC]},time_sleep=function(e,t){return t.definitions_.import_time="import time","time.sleep("+(t.valueToCode(this,"DELAY_TIME",t.ORDER_ATOMIC)||"1000")+")\n"},control_controls_pass=function(){return"pass\n"},control_controls_thread=function(e,t){t.definitions_.import__thread="import _thread";var n=t.valueToCode(this,"VAR",t.ORDER_NONE)||"None";return"_thread.start_new_thread("+t.variableDB_.getName(t.valueToCode(this,"callback",t.ORDER_NONE)||"None",external_Blockly_namespaceObject.Procedures.NAME_TYPE)+", "+n+")\n"},control_do_while=function(e,t){var n=t.valueToCode(this,"select_data",t.ORDER_NONE)||"False",a=t.statementToCode(this,"input_data");return a="true"==this.getFieldValue("type")?a+" if ("+n+"):\n break\n":a+" if not ("+n+"):\n break\n","while True:\n"+(a=t.addLoopTrap(a,this.id)||t.PASS)},control_controls_repeat_ext=function(e,t){var n=t.valueToCode(this,"TIMES",t.ORDER_ATOMIC),a=t.statementToCode(e,"DO");return"for _my_variable in range("+n+"):\n"+(a=t.addLoopTrap(a,e.id)||t.PASS)},control_garbage_collection=function(e,t){t.definitions_.import_gc="import gc";return"gc.collect()\n"},control_get_mem_alloc=function(e,t){t.definitions_.import_gc="import gc";return["gc.mem_alloc()",t.ORDER_ATOMIC]},control_get_mem_free=function(e,t){t.definitions_.import_gc="import gc";return["gc.mem_free()",t.ORDER_ATOMIC]},control_get_unique_identifier=function(e,t){t.definitions_.import_machine="import machine";return["machine.unique_id()",t.ORDER_ATOMIC]},controls_repeat=control_controls_repeat_ext,control_datetime_fromtimestamp=function(e,t){return t.definitions_.import_datatime="import datatime",["datatime.datatime.fromtimestamp("+t.valueToCode(this,"VAR",t.ORDER_ATOMIC)+")",t.ORDER_ATOMIC]},math_math_number=function(e,t){var n=this.getFieldValue("NUM");return[n,n<0?t.ORDER_UNARY_PREFIX:t.ORDER_ATOMIC]},math_math_constant=function(e,t){return t.definitions_.import_math="import math",["math."+this.getFieldValue("CONSTANT"),t.ORDER_ATOMIC]},math_math_constant_mp=function(e,t){return t.definitions_.import_math="import math",["math."+this.getFieldValue("CONSTANT"),t.ORDER_ATOMIC]},math_math_bit=function(e,t){var n=this.getFieldValue("OP"),a=t.ORDER_ATOMIC;return["("+(t.valueToCode(this,"A",a)||"0")+n+(t.valueToCode(this,"B",a)||"0")+")",a]},math_math_arithmetic=function(e,t){var n=(a={ADD:[" + ",t.ORDER_ADDITIVE],MINUS:[" - ",t.ORDER_ADDITIVE],MULTIPLY:[" * ",t.ORDER_MULTIPLICATIVE],DIVIDE:[" / ",t.ORDER_MULTIPLICATIVE],QUYU:[" % ",t.ORDER_MULTIPLICATIVE],ZHENGCHU:[" // ",t.ORDER_MULTIPLICATIVE],POWER:[" ** ",t.ORDER_EXPONENTIATION]}[e.getFieldValue("OP")])[0],a=a[1];return[(t.valueToCode(e,"A",a)||"0")+n+(e=t.valueToCode(e,"B",a)||"0"),a]},math_math_selfcalcu=function(e,t){var n=t.valueToCode(this,"A",t.ORDER_RELATIONAL)||"0",a=t.valueToCode(this,"B",t.ORDER_RELATIONAL)||"0";switch(this.getFieldValue("OP")){case"ADD":var _="+=";break;case"MINUS":_="-=";break;case"MULTIPLY":_="*=";break;case"DIVIDE":_="/=";break;case"QUYU":_="%=";break;case"ZHENGCHU":_="//=";break;case"POWER":_="**="}return n+" "+_+" "+a+"\n"},math_single=function(e,t){var n,a=e.getFieldValue("OP");if("NEG"==a)return["-"+(n=t.valueToCode(e,"NUM",t.ORDER_UNARY_SIGN)||"0"),t.ORDER_UNARY_SIGN];switch(t.definitions_.import_math="import math",e="SIN"==a||"COS"==a||"TAN"==a?t.valueToCode(e,"NUM",t.ORDER_MULTIPLICATIVE)||"0":t.valueToCode(e,"NUM",t.ORDER_NONE)||"0",a){case"ABS":n="math.fabs("+e+")";break;case"ROOT":n="math.sqrt("+e+")";break;case"LN":n="math.log("+e+")";break;case"LOG10":n="math.log10("+e+")";break;case"EXP":n="math.exp("+e+")";break;case"POW10":n="math.pow(10,"+e+")";break;case"ROUND":n="round("+e+")";break;case"ROUNDUP":n="math.ceil("+e+")";break;case"ROUNDDOWN":n="math.floor("+e+")";break;case"SIN":n="math.sin("+e+")";break;case"COS":n="math.cos("+e+")";break;case"TAN":n="math.tan("+e+")";break;case"++":n="++("+e+")";break;case"--":n="--("+e+")";break;case"-":n="-("+e+")"}if(n)return[n,t.ORDER_EXPONENTIATION];switch(a){case"ASIN":n="math.degrees(math.asin("+e+"))";break;case"ACOS":n="math.degrees(math.acos("+e+"))";break;case"ATAN":n="math.degrees(math.atan("+e+"))"}return[n,t.ORDER_MULTIPLICATIVE]},math_math_trig=math_single,math_math_dec=function(e,t){var n=t.valueToCode(this,"NUM",t.ORDER_NONE)||"0";return[this.getFieldValue("OP")+"("+n+")",t.ORDER_ATOMIC]},math_math_to_int=function(e,t){var n=t.valueToCode(this,"A",t.ORDER_NONE)||"0",a=this.getFieldValue("OP"),_="";return"round"===a?_=a+"("+n+")":(_="math."+a+"("+n+")",t.definitions_.import_math="import math"),[_,t.ORDER_ATOMIC]},math_math_max_min=function(e,t){var n=t.valueToCode(this,"A",t.ORDER_NONE)||"0",a=t.valueToCode(this,"B",t.ORDER_NONE)||"0";return[this.getFieldValue("OP")+"("+n+", "+a+")",t.ORDER_ATOMIC]},math_math_random=function(e,t){t.definitions_.import_random="import random";var n=this.getFieldValue("TYPE"),a=t.valueToCode(this,"FROM",t.ORDER_NONE)||"0",_=t.valueToCode(this,"TO",t.ORDER_NONE)||"0";if("int"==n)var l="random.randint("+a+", "+_+")";else if("float"==n)l="random.uniform("+a+", "+_+")";return[l,t.ORDER_UNARY_POSTFIX]},math_math_map=function(e,t){var n=t.valueToCode(this,"NUM",t.ORDER_NONE),a=t.valueToCode(this,"fromLow",t.ORDER_ATOMIC),_=t.valueToCode(this,"fromHigh",t.ORDER_ATOMIC),l=t.valueToCode(this,"toLow",t.ORDER_ATOMIC),i=t.valueToCode(this,"toHigh",t.ORDER_ATOMIC);return t.definitions_.import_mixpy_math_map="from mixpy import math_map",["math_map("+n+", "+a+", "+_+", "+l+", "+i+")",t.ORDER_NONE]},math_math_constrain=function(e,t){return["min(max("+(t.valueToCode(this,"VALUE",t.ORDER_NONE)||"0")+", "+(t.valueToCode(this,"LOW",t.ORDER_NONE)||"0")+"), "+(t.valueToCode(this,"HIGH",t.ORDER_NONE)||"0")+")",t.ORDER_UNARY_POSTFIX]},math_math_number_base_conversion=function(e,t){var n=e.getFieldValue("OP"),a=t.valueToCode(this,"NUM",t.ORDER_NONE)||"0",_=e.getFieldValue("OP2");t.definitions_.import_math="import math";var l="",i="10";if("two"==n?i="2":"eight"==n?i="8":"ten"==n?i="10":"sixteen"==n&&(i="16"),"two"==_?l="bin":"eight"==_?l="oct":"ten"==_?l="":"sixteen"==_&&(l="hex"),""==l)var s="int(str("+a+"), "+i+")";else s=l+"(int(str("+a+"), "+i+"))";return[s,t.ORDER_ATOMIC]},math_math_random_seed=function(e,t){return t.definitions_.import_random="import random","random.seed("+(t.valueToCode(this,"NUM",t.ORDER_NONE)||"0")+");\n"},math_math_indexer_number=function(e,t){var n=this.getFieldValue("NUM");return[n,n<0?t.ORDER_UNARY_PREFIX:t.ORDER_ATOMIC]},math_math_round=function(e,t){return["round("+(t.valueToCode(this,"VALUE",t.ORDER_NONE)||"0")+", "+(t.valueToCode(this,"VAR",t.ORDER_NONE)||"0")+")",t.ORDER_ATOMIC]},math_text_to_number=function(e,t){var n=this.getFieldValue("TOWHAT"),a=t.valueToCode(this,"VAR",t.ORDER_ATOMIC);return"b"==n?[a+'.encode("utf-8")',t.ORDER_ATOMIC]:"bti"==n?["int.from_bytes("+a+',"big")',t.ORDER_ATOMIC]:[n+"("+a+")",t.ORDER_ATOMIC]},math_text_to_number_skulpt=function(e,t){var n=this.getFieldValue("TOWHAT"),a=t.valueToCode(this,"VAR",t.ORDER_ATOMIC);return"b"==n?[a+'.encode("utf-8")',t.ORDER_ATOMIC]:[n+"("+a+")",t.ORDER_ATOMIC]},math_base_map=math_math_map,math_turn_to_int=function(e,t){return t.definitions_.import_hexlify="from ubinascii import hexlify",["hexlify("+t.valueToCode(this,"VAR",t.ORDER_ATOMIC)+").decode()",t.ORDER_ATOMIC]},math_generate_cartesian_product=function(e,t){t.definitions_.import_itertools="import itertools";let n=t.valueToCode(this,"REPEAT",t.ORDER_ATOMIC),a=new Array(this.itemCount_);for(let e=0;e",GTE:">="};const logic_logic_operation=function(e,t){var n=this.getFieldValue("OP"),a="&&"==n?t.ORDER_LOGICAL_AND:t.ORDER_LOGICAL_OR,_=t.valueToCode(this,"A",a)||"False",l=t.valueToCode(this,"B",a)||"False";if("AND"==n)var i=_+" and "+l;else if("OR"==n)i=_+" or "+l;else if("NOR"==n)i="not("+_+"^"+l+")";else i=_+"^"+l;return[i,a]},logic_logic_negate=function(e,t){var n=t.ORDER_UNARY_PREFIX;return["not "+(t.valueToCode(this,"BOOL",n)||"False"),n]},logic_logic_boolean=function(e,t){return["TRUE"==this.getFieldValue("BOOL")?"True":"False",t.ORDER_ATOMIC]},logic_logic_null=function(e,t){return["None",t.ORDER_ATOMIC]},logic_logic_true_or_false=function(e,t){var n=t.valueToCode(this,"A",t.ORDER_ATOMIC)||"False";return["("+(t.valueToCode(this,"B",t.ORDER_ATOMIC)||"False")+" if "+n+" else "+(t.valueToCode(this,"C",t.ORDER_ATOMIC)||"False")+")",t.ORDER_ATOMIC]},logic_logic_is_in=function(e,t){var n=t.valueToCode(this,"A",t.ORDER_ATOMIC)||"''",a=t.valueToCode(this,"B",t.ORDER_ATOMIC)||"''";return[n+" "+this.getFieldValue("BOOL")+" "+a,t.ORDER_ATOMIC]},logic_logic_is=function(e,t){var n=t.valueToCode(this,"A",t.ORDER_ATOMIC)||"''",a=t.valueToCode(this,"B",t.ORDER_ATOMIC)||"''";return[n+" "+this.getFieldValue("BOOL")+" "+a,t.ORDER_ATOMIC]},logic_logic_tobool=function(e,t){return["bool("+(t.valueToCode(this,"VAR",t.ORDER_ATOMIC)||"0")+")",t.ORDER_ATOMIC]},storage_storage_open_file_with_os=function(e,t){return t.definitions_.import_os="import os","os.startfile("+t.valueToCode(this,"fn",t.ORDER_ATOMIC)+")\n"},storage_storage_fileopen=function(e,t){return t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+" = open("+t.valueToCode(this,"FILENAME",t.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')\n"},storage_storage_fileopen_new=function(e,t){return["open("+t.valueToCode(this,"FILENAME",t.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')",t.ORDER_ATOMIC]},storage_storage_fileopen_new_encoding=function(e,t){return["open("+t.valueToCode(this,"FILENAME",t.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"', encoding=\""+this.getFieldValue("CODE")+'")',t.ORDER_ATOMIC]},storage_storage_file_write=function(e,t){var n=t.valueToCode(this,"data",t.ORDER_ATOMIC);return t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+".write("+n+")\n"},storage_storage_get_contents_without_para=function(e,t){var n=this.getFieldValue("MODE");return[t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+"."+n+"()",t.ORDER_ATOMIC]},storage_storage_get_contents=function(e,t){var n=this.getFieldValue("MODE");return[t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+"."+n+"("+t.valueToCode(this,"SIZE",t.ORDER_ATOMIC)+")",t.ORDER_ATOMIC]},storage_storage_get_a_line=function(e,t){return[t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+".readline("+t.valueToCode(this,"SIZE",t.ORDER_ATOMIC)+")",t.ORDER_ATOMIC]},storage_storage_can_write_ornot=function(e,t){return[t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+".writable()",t.ORDER_ATOMIC]},storage_storage_get_filename=function(e,t){return[t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+".name()",t.ORDER_ATOMIC]},storage_storage_close_file=function(e,t){return t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+".close()\n"},storage_storage_list_all_files=function(e,t){t.definitions_.import_os="import os";return["os.listdir()",t.ORDER_ATOMIC]},storage_storage_delete_file=function(e,t){return t.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+")\n"},storage_storage_get_file_size=function(e,t){return t.definitions_.import_os="import os",["os.path.getsize("+t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+")",t.ORDER_ATOMIC]},storage_storage_file_tell=function(e,t){return[t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+".tell()",t.ORDER_ATOMIC]},storage_storage_file_seek=function(e,t){var n=this.getFieldValue("MODE"),a=0;return a="start"==n?0:"current"==n?1:2,t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+".seek("+t.valueToCode(this,"SIZE",t.ORDER_ATOMIC)+","+a+")\n"},storage_storage_change_dir=function(e,t){return t.definitions_.import_os="import os","os.chdir("+t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+")\n"},storage_storage_get_current_dir=function(e,t){t.definitions_.import_os="import os";return["os.getcwd()",t.ORDER_ATOMIC]},storage_storage_make_dir=function(e,t){return t.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+t.valueToCode(this,"PATH",t.ORDER_ATOMIC)+")\n"},storage_storage_rename=function(e,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"},storage_storage_is_file=function(e,t){t.definitions_.import_os="import os";var n=t.valueToCode(this,"FILE",t.ORDER_ATOMIC);return["os."+this.getFieldValue("MODE")+"("+n+")",t.ORDER_ATOMIC]},storage_sdcard_use_spi_init=function(e,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"},storage_sdcard_mount=function(e,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"},procedures_procedures_defreturn=function(e,t){var n=t.variableDB_.getName(this.getFieldValue("NAME"),external_Blockly_namespaceObject.Procedures.NAME_TYPE),a=(this.getInput("STACK")&&t.statementToCode(this,"STACK"))??" pass\n";t.INFINITE_LOOP_TRAP&&(a=t.INFINITE_LOOP_TRAP.replace(/%1/g,"'"+this.id+"'")+a);var _=t.valueToCode(this,"RETURN",t.ORDER_NONE)||"";_&&(_=" return "+_+"\n");for(var l=[],i=0;i\n\n\n\t\n"+t.statementToCode(this,"HEAD")+"\n\n"+t.statementToCode(this,"BODY")+"\n\n'''",t.ORDER_ATOMIC]},html_html_title=function(e,t){var n=t.statementToCode(this,"DO"),a=this.getFieldValue("LEVEL");return"\n"+n+"\n"},html_html_head_body=function(e,t){var n=t.statementToCode(this,"DO"),a=this.getFieldValue("LEVEL");if("head"==a)var _="<"+a+'>\n\t\n'+n+""+a+">\n";else _="<"+a+">\n"+n+""+a+">\n";return _},html_html_content=function(e,t){var n=t.statementToCode(this,"DO"),a=this.getFieldValue("LEVEL");return"<"+a+">\n"+n+""+a+">\n"},html_html_content_more=function(e,t){var n=t.statementToCode(this,"DO"),a=t.valueToCode(this,"style"),_=this.getFieldValue("LEVEL");return"<"+_+" "+a+" >\n"+n+""+_+">\n"},html_html_style=function(e,t){return['style="'+t.statementToCode(this,"STYLE")+'"',t.ORDER_ATOMIC]},html_html_form=function(e,t){return'"},html_html_style_content=function(){return this.getFieldValue("KEY")+":"+this.getFieldValue("VALUE")+";"},html_html_text=function(){return this.getFieldValue("TEXT")+"\n"},utility_raw_block=function(e){return e.getFieldValue("TEXT")+"\n"},utility_raw_expression=function(e,t){return[e.getFieldValue("TEXT"),t.ORDER_ATOMIC]},utility_raw_empty=function(e,t){return(t.valueToCode(e,"VALUE",t.ORDER_ATOMIC)||"")+"\n"},utility_raw_table=function(){return""},utility_type_check=function(e,t){return["type("+(t.valueToCode(e,"VALUE",t.ORDER_MEMBER)||"___")+")",t.ORDER_ATOMIC]},utility_function_call=function(e,t){for(var n=e.getFieldValue("NAME"),a=e.hasReturn_,_=new Array(e.itemCount_),l=0;l0?t.join("\n")+"\n"+a.join("\n")+"\n"+_.join("")+"\n"+e+"while True:\n"+l.join("")+i.join("\n"):t.join("\n")+"\n"+a.join("\n")+"\n"+_.join("")+"\n"+e+i.join("\n")},Python.scrubNakedValue=function(e){return e+"\n"},Python.quote_=function(e){var t="'";return-1!==(e=e.replace(/\\/g,"\\\\").replace(/\n/g,"\\\n")).indexOf("'")&&(-1===e.indexOf('"')?t='"':e=e.replace(/'/g,"\\'")),t+e+t},Python.multiline_quote_=function(e){return"'''"+(e=e.replace(/'''/g,"\\'\\'\\'"))+"'''"},Python.scrub_=function(e,t,n){var a="";if(!e.outputConnection||!e.outputConnection.targetConnection){(l=e.getCommentText())&&(l=external_Blockly_namespaceObject.utils.string.wrap(l,Python.COMMENT_WRAP-3),a+=Python.prefixLines(l+"\n","# "));for(var _=0;_0?"int("+s+" + "+_+")":_<0?"int("+s+" - "+-_+")":"int("+s+")",a&&(s="-"+s)),s};const AI_HUE=205,AI_ChooseAndGet={init:function(){this.setColour(AI_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_CHOOSE_AND_GET).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_CHOOSE_AND_GET_ONE_FILE_NAME,"getOneFile"],[external_Blockly_namespaceObject.Msg.MIXLY_CHOOSE_AND_GET_MANY_FILE_NAMES,"getManyFiles"],[external_Blockly_namespaceObject.Msg.MIXLY_CHOOSE_AND_GET_DIR,"getDirectory"]]),"TYPE"),this.setInputsInline(!0),this.setOutput(!0)}},AI_client={init:function(){this.setColour(AI_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_SETUP).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_AipImageClassify,"AipImageClassify"],[external_Blockly_namespaceObject.Msg.MIXLY_AipSpeech,"AipSpeech"],[external_Blockly_namespaceObject.Msg.MIXLY_AipImageCensor,"AipImageCensor"],[external_Blockly_namespaceObject.Msg.MIXLY_AipFace,"AipFace"],[external_Blockly_namespaceObject.Msg.MIXLY_AipOcr,"AipOcr"],[external_Blockly_namespaceObject.Msg.MIXLY_AipNlp,"AipNlp"]]),"CTYPE"),this.appendValueInput("SUB").appendField(external_Blockly_namespaceObject.Msg.MIXLY_Client).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("API_KEY").appendField("API_KEY").setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("SECRET_KEY").appendField("SECRET_KEY").setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},AI_Speech_synthesis={init:function(){this.setColour(AI_HUE),this.appendValueInput("SUB").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipSpeech_synthesis).appendField(external_Blockly_namespaceObject.Msg.MIXLY_Client).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("STR").appendField(external_Blockly_namespaceObject.Msg.OLED_STRING).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("ATTR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AIP_ATTR).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_AipSpeech_synthesis_TOOLTIP),this.setInputsInline(!1),this.setOutput(!0)}},AI_Speech_asr={init:function(){this.setColour(AI_HUE),this.appendValueInput("SUB").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipSpeech_asr).appendField(external_Blockly_namespaceObject.Msg.MIXLY_Client).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("FILE").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipSpeech_File).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("ATTR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AIP_ATTR).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_AipSpeech_ASR_TOOLTIP),this.setInputsInline(!1),this.setOutput(!0)}},AI_ImageClassify={init:function(){this.setColour(AI_HUE),this.appendValueInput("SUB").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipImageClassify).appendField(external_Blockly_namespaceObject.Msg.MIXLY_Client).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("FUNC").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AIP_FUNC).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("ADDR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipImageClassify_Image).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("ATTR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AIP_ATTR).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_AipImageClassify_advancedGeneral_TOOLTIP),this.setInputsInline(!1),this.setOutput(!0)}},AI_ImageClassify_Func={init:function(){this.setColour(AI_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_AipImageClassify_advancedGeneral,"advancedGeneral"],[external_Blockly_namespaceObject.Msg.MIXLY_AipImageClassify_dishDetect,"dishDetect"],[external_Blockly_namespaceObject.Msg.MIXLY_AipImageClassify_carDetect,"carDetect"],[external_Blockly_namespaceObject.Msg.MIXLY_AipImageClassify_animalDetect,"animalDetect"],[external_Blockly_namespaceObject.Msg.MIXLY_AipImageClassify_plantDetect,"plantDetect"],[external_Blockly_namespaceObject.Msg.MIXLY_AipImageClassify_logoSearch,"logoSearch"]]),"TYPE"),this.setOutput(!0)}},AI_Face_match={init:function(){this.setColour(AI_HUE),this.appendValueInput("SUB").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipFace_match).appendField(external_Blockly_namespaceObject.Msg.MIXLY_Client).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipImageClassify_Image+"1"+external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("VAR2").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipImageClassify_Image+"2"+external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("ATTR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AIP_ATTR).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_AipFace_match_TOOLTIP),this.setInputsInline(!1),this.setOutput(!0)}},AI_Ocr={init:function(){this.setColour(AI_HUE),this.appendValueInput("SUB").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipOcr).appendField(external_Blockly_namespaceObject.Msg.MIXLY_Client).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("FUNC").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AIP_FUNC).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("ADDR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipImageClassify_Image).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("ATTR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AIP_ATTR).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_AipOcr_TOOLTIP),this.setInputsInline(!1),this.setOutput(!0)}},AI_Ocr_Func={init:function(){this.setColour(AI_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_AipOcr_basicGeneral,"basicGeneral"],[external_Blockly_namespaceObject.Msg.MIXLY_AipOcr_webImage,"webImage"],[external_Blockly_namespaceObject.Msg.MIXLY_AipOcr_idcard,"idcard"],[external_Blockly_namespaceObject.Msg.MIXLY_AipOcr_bankcard,"bankcard"],[external_Blockly_namespaceObject.Msg.MIXLY_AipOcr_drivingLicense,"drivingLicense"],[external_Blockly_namespaceObject.Msg.MIXLY_AipOcr_vehicleLicense,"vehicleLicense"],[external_Blockly_namespaceObject.Msg.MIXLY_AipOcr_licensePlate,"licensePlate"],[external_Blockly_namespaceObject.Msg.MIXLY_AipOcr_businessLicense,"businessLicense"],[external_Blockly_namespaceObject.Msg.MIXLY_AipOcr_receipt,"receipt"],[external_Blockly_namespaceObject.Msg.MIXLY_AipOcr_trainTicket,"trainTicket"],[external_Blockly_namespaceObject.Msg.MIXLY_AipOcr_taxiReceipt,"taxiReceipt"],[external_Blockly_namespaceObject.Msg.MIXLY_AipOcr_form,"tableRecognition"],[external_Blockly_namespaceObject.Msg.MIXLY_AipOcr_vatInvoice,"vatInvoice"],[external_Blockly_namespaceObject.Msg.MIXLY_AipOcr_passport,"passport"],[external_Blockly_namespaceObject.Msg.MIXLY_AipOcr_handwriting,"handwriting"]]),"TYPE"),this.setOutput(!0)}},AI_Nlp={init:function(){this.setColour(AI_HUE),this.appendValueInput("SUB").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipNlp).appendField(external_Blockly_namespaceObject.Msg.MIXLY_Client).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("FUNC").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AIP_FUNC).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("STR").appendField(external_Blockly_namespaceObject.Msg.OLED_STRING).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("ATTR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AIP_ATTR).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_TOOLTIP),this.setInputsInline(!1),this.setOutput(!0)}},AI_Nlp_Sim={init:function(){this.setColour(AI_HUE),this.appendValueInput("SUB").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_Sim).appendField(external_Blockly_namespaceObject.Msg.MIXLY_Client).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("FUNC").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AIP_FUNC).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("STR1").appendField(external_Blockly_namespaceObject.Msg.OLED_STRING+"1").setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("STR2").appendField(external_Blockly_namespaceObject.Msg.OLED_STRING+"2").setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("ATTR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AIP_ATTR).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_Sim_TOOLTIP),this.setInputsInline(!1),this.setOutput(!0)}},AI_Nlp_Func={init:function(){this.setColour(AI_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_lexer,"lexer"],[external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_depParser,"depParser"],[external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_wordEmbedding,"wordEmbedding"],[external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_dnnlm,"dnnlm"],[external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_commentTag,"commentTag"],[external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_sentimentClassify,"sentimentClassify"],[external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_keyword,"keyword"],[external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_topic,"topic"],[external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_ecnet,"ecnet"],[external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_emotion,"emotion"]]),"TYPE"),this.setOutput(!0)}},AI_Nlp_Func_sim={init:function(){this.setColour(AI_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_wordSimEmbedding,"wordSimEmbedding"],[external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_simnet,"simnet"]]),"TYPE"),this.setOutput(!0)}},AI_Nlp_Topic={init:function(){this.setColour(AI_HUE),this.appendValueInput("SUB").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_topic).appendField(external_Blockly_namespaceObject.Msg.MIXLY_Client).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("STR1").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_Topic_Title).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("STR2").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_Topic_Content).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_Topic_TOOLTIP),this.setInputsInline(!1),this.setOutput(!0)}},AI_Nlp_newsSummary={init:function(){this.setColour(AI_HUE),this.appendValueInput("SUB").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_summary).appendField(external_Blockly_namespaceObject.Msg.MIXLY_Client).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("STR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_Topic_Content).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("LEN").appendField(external_Blockly_namespaceObject.Msg.MIXLY_LIST_LEN).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("ATTR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AIP_ATTR).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_Summary_TOOLTIP),this.setInputsInline(!1),this.setOutput(!0)}},AI_audio={init:function(){this.setColour(AI_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXPY_AI_AUDIO),this.appendValueInput("TIME").appendField(external_Blockly_namespaceObject.Msg.MIXPY_AI_AUDIO_TIME),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXPY_AI_AUDIO_TOOLTIP)}},AI_photo={init:function(){this.setColour(AI_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXPY_AI_PHOTO),this.appendValueInput("BUT").appendField(external_Blockly_namespaceObject.Msg.MIXPY_AI_PHOTO_BUTTON),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXPY_AI_PHOTO_TOOLTIP)}},AI_result={init:function(){this.setColour(AI_HUE),this.appendValueInput("AI").appendField(external_Blockly_namespaceObject.Msg.MIXPY_AI_RESULT).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_AipImageClassify,"Image"],[external_Blockly_namespaceObject.Msg.MIXLY_AipSpeech_asr,"Speech"],[external_Blockly_namespaceObject.Msg.MIXLY_AipFace_match,"Face"],[external_Blockly_namespaceObject.Msg.MIXLY_AipOcr,"Ocr"],[external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_simnet,"OcrSimilarity"],[external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_sentimentClassify,"Emotion"]]),"CTYPE"),this.setOutput(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.LOGIC_NEGATE_TOOLTIP)}},ALGORITHM_HUE="#526FC3",algorithm_prepare={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_PREPARE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_add_school={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_ADD_SCHOOL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_find_path={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_FIND_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_new_path={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_NEW_PATH),this.setOutput(!0)}},algorithm_set_path={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_SET_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_add_path={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_ADD_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_del_path={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_DEL_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_return_path={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_RETURN_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_no_left={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_NO_LEFT),this.setOutput(!0)}},algorithm_print_path={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_PRINT_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_prepare2={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_PREPARE2),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_current_school={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_CURRENT_SCHOOL),this.setOutput(!0)}},algorithm_no_path={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_NO_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_prepare_2_1={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_PREPARE_2_1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_prepare_2_2={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_PREPARE_2_2),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_move_recent={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_MOVE_RECENT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_not_home={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_NOT_HOME),this.setOutput(!0)}},algorithm_not_school={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_NOT_SCHOOL),this.setOutput(!0)}},algorithm_print_path2={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_PRINT_PATH2),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},hanoi_init={init:function(){this.appendDummyInput().appendField("准备").appendField(new external_Blockly_namespaceObject.FieldNumber(3,0,100,1),"NUM").appendField("层汉诺塔"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},hanoi_move={init:function(){this.appendDummyInput().appendField("移动圆盘从"),this.appendValueInput("FROM_NUM").setCheck(null).appendField("柱"),this.appendDummyInput().appendField("到"),this.appendValueInput("TO_NUM").setCheck(null).appendField("柱"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_all_books={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_ALL_BOOKS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_all_books_sequence={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_ALL_BOOKS2),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_first_book={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_FIRST_BOOK),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_no_ring2={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_NO_RING),this.setOutput(!0)}},algorithm_yes_ring2={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_YES_RING),this.setOutput(!0)}},algorithm_next_book={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_NEXT_BOOK),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_two_left={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_TWO_LEFT),this.setOutput(!0)}},algorithm_divide_books={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_DIVIDE_BOOKS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_get_half_books={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_GET_HALF_BOOKS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_delete_book={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_DELETE_BOOK),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_delete_books={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_DELETE_BOOKS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_delete_books2={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_DELETE_BOOKS2),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_print_book2={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_PRINT_BOOK),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_book_scale={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("设置待查书总数 N=").appendField(new external_Blockly_namespaceObject.FieldDropdown([["5","5"],["10","10"],["20","20"],["50","50"]]),"NUM"),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_number_zero={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_NUMBER_ZERO),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_number_add={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_NUMBER_ADD),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_print_number={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_PRINT_NUMBER),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_get_book_num={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField("n"+external_Blockly_namespaceObject.Msg.MIXLY_VALUE2).appendField(new external_Blockly_namespaceObject.FieldTextInput("50"),"NUM"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_print_sequence={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_PRINT_SEQUENCE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_print_divide={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_PRINT_DIVIDE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_init_jttl={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("初始化鸡兔同笼问题:"),this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("有若干只鸡、兔在同一个笼子里。"),this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("从上面数鸡兔有10个头,"),this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("从下面数鸡兔有32只脚。"),this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("问笼中有多少只鸡和多少只兔?"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_rabbit_zero={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("假设兔子的数量为0只"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_rabbit_number_in_range={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("兔子的数量在范围之内"),this.setOutput(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_chick_calculate={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("根据(头数-兔子数)计算出鸡的数量"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_check_feet={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("计算得到脚的数量正确"),this.setOutput(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_print_jttl_answer={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("输出鸡、兔的数量"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_rabbit_add={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("假设兔子数量要更多一只"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_init_fzsf={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("加载路线图"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_fz_calc={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("计算").appendField(new external_Blockly_namespaceObject.FieldDropdown([["S1","1"],["S2","2"],["S3","3"],["S4","4"]]),"PATHNAME").appendField("长度"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_fz_calc_first_min={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("设置S1为Smin"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_fz_compare={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField(new external_Blockly_namespaceObject.FieldDropdown([["S1","1"],["S2","2"],["S3","3"],["S4","4"]]),"PATHNAME").appendField("的长度比").appendField(new external_Blockly_namespaceObject.FieldDropdown([["S1","1"],["S2","2"],["S3","3"],["S4","4"]]),"PATHNAME2").appendField("短"),this.setOutput(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_fz_set_min={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("设置").appendField(new external_Blockly_namespaceObject.FieldDropdown([["S1","1"],["S2","2"],["S3","3"],["S4","4"]]),"PATHNAME").appendField("为Smin"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_fz_move={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("按照Smin移动"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_init_hxdb={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("初始化韩信点兵问题:"),this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("有未知数量的若干士兵。"),this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("若3人一排列队,多1人;"),this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("若5人一排列队,多2人;"),this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("若7人一排列队,多2人;"),this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("问士兵的数量最少是多少人?"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_hxdb_init_soldier={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("初始化士兵为").appendField(new external_Blockly_namespaceObject.FieldTextInput("7"),"NUM").appendField("个"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_hxdb_stand_in_line={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("使士兵").appendField(new external_Blockly_namespaceObject.FieldDropdown([["3","3"],["5","5"],["7","7"]]),"NUM").appendField("人一排列队"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_hxdb_last_line={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("剩余").appendField(new external_Blockly_namespaceObject.FieldTextInput("1"),"NUM").appendField("个士兵"),this.setOutput(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_hxdb_add={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("增加1个士兵"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_hxdb_result={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("输出士兵数量"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},hanoi_init_offline={init:function(){this.appendDummyInput().appendField("准备").appendField(new external_Blockly_namespaceObject.FieldNumber(3,0,100,1),"NUM").appendField("层汉诺塔"),this.appendValueInput("VAR").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setInputsInline(!0),this.setTooltip(""),this.setHelpUrl("")}},algorithm_get_current_location={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_GET_CURRENT_LOCATION),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_void_path={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_VOID_PATH),this.setOutput(!0)}},algorithm_color_seclet={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput("").setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(new external_Blockly_namespaceObject.FieldColour("ff0000"),"COLOR"),this.setInputsInline(!0),this.setOutput(!0,String)}},COMMUNICATE_HUE="#3288dd",requests_get_old={init:function(){this.setColour(COMMUNICATE_HUE),this.appendValueInput("DOMAIN").appendField(external_Blockly_namespaceObject.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_REQUESTS_GET).appendField(new external_Blockly_namespaceObject.FieldTextInput("response"),"VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.blockpy_REQUESTS_GET_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},requests_get={init:function(){this.setColour(COMMUNICATE_HUE),this.appendValueInput("URL").appendField(external_Blockly_namespaceObject.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_CONDUCT).appendField(new external_Blockly_namespaceObject.FieldDropdown([["get","get"],["head","head"],["delete","delete"]]),"TYPE").appendField(external_Blockly_namespaceObject.Msg.blockpy_REQUESTS).appendField(external_Blockly_namespaceObject.Msg.MIXPY_REQUESTS_GET_RESULT),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip("")}},requests_post={init:function(){this.setColour(COMMUNICATE_HUE),this.appendValueInput("URL").appendField(external_Blockly_namespaceObject.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_CONDUCT).appendField(new external_Blockly_namespaceObject.FieldDropdown([["post","post"],["put","put"],["patch","patch"]]),"TYPE").appendField(external_Blockly_namespaceObject.Msg.blockpy_REQUESTS),this.appendValueInput("data").appendField(external_Blockly_namespaceObject.Msg.blockpy_REQUESTS+external_Blockly_namespaceObject.Msg.OLED_STRING),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXPY_REQUESTS_GET_RESULT),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip("")}},requests_attribute={init:function(){this.appendValueInput("VAL");var e=[[external_Blockly_namespaceObject.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE,"status_code"],[external_Blockly_namespaceObject.Msg.blockpy_REQUESTS_GET_ATTR_TEXT,"text"],[external_Blockly_namespaceObject.Msg.blockpy_REQUESTS_GET_ATTR_COOKIES,"cookies"],[external_Blockly_namespaceObject.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT,"content"],[external_Blockly_namespaceObject.Msg.MIXPY_TEXT_ENCODE,"encoding"]];this.setColour(COMMUNICATE_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_JS_GET).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"ATTR"),this.setInputsInline(!0),this.setOutput(!0,String)}},requests_method={init:function(){this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.DISPLAY_IMAGE_LET2).setCheck(String);this.setColour(COMMUNICATE_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_CONDUCT).appendField(new external_Blockly_namespaceObject.FieldDropdown([["post","post"],["put","put"],["delete","delete"],["head","head"],["option","option"]]),"DIR"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_REQUESTS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("DIR");return{forward:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_FORWARD,backward:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_BACKWARD}[t]}))}},CV_HUE="f0a559",cv_read_image={init:function(){this.setColour(CV_HUE),this.appendValueInput("FILE").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_CV_IMREAD),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)}},cv_show_image={init:function(){this.setColour(CV_HUE),this.appendValueInput("FILE").appendField(external_Blockly_namespaceObject.Msg.OLED_BITMAP),this.appendValueInput("data").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_Topic_Title),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},cv_write_image={init:function(){this.setColour(CV_HUE),this.appendValueInput("FILE").appendField(external_Blockly_namespaceObject.Msg.MIXLY_CV_IMWRITE),this.appendValueInput("data").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.HTML_NAME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},cv_waitkey={init:function(){this.setColour(CV_HUE),this.appendValueInput("data").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_DELAY),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MILLIS+external_Blockly_namespaceObject.Msg.MIXLY_CV_OR_PRESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_CV_WAITKEY_TOOLTIP)}},cv_destroy_all={init:function(){this.setColour(CV_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_CV_DESTROY_ALL),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},cv_line_rect={init:function(){this.setColour(CV_HUE),this.appendValueInput("FILE").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_IMAGE);var e=[[external_Blockly_namespaceObject.Msg.MIXLY_CV_RECT,"rectangle"],[external_Blockly_namespaceObject.Msg.MIXLY_CV_LINE,"line"]];this.appendValueInput("x1").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_DISPLAY_DRAW).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_CV_DRAWLINE_BEGIN+"(x1"),this.appendValueInput("y1").setCheck(Number).appendField(",y1"),this.appendValueInput("x2").setCheck(Number).appendField(") "+external_Blockly_namespaceObject.Msg.MIXLY_CV_DRAWLINE_END+"(x2"),this.appendValueInput("y2").setCheck(Number).appendField(",y2"),this.appendDummyInput().appendField(") "+external_Blockly_namespaceObject.Msg.MIXLY_CV_DRAWLINE_COLOR).appendField(new external_Blockly_namespaceObject.FieldColour("#ff0000"),"FIELDNAME"),this.appendValueInput("thick").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_CV_DRAWLINE_THICKNESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_CV_DRAWLINE_RECT_TOOLTIP)}},cv_text={init:function(){this.setColour(CV_HUE),this.appendValueInput("FILE").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_IMAGE);this.appendValueInput("data").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_CV_DRAWTEXT),this.appendValueInput("x1").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_CV_DRAWLINE_BEGIN+"(x1"),this.appendValueInput("y1").setCheck(Number).appendField(",y1"),this.appendDummyInput().appendField(") "+external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_FONT_NAME).appendField(new external_Blockly_namespaceObject.FieldDropdown([["SIMPLEX","SIMPLEX"],["PLAIN","PLAIN"],["DUPLEX","DUPLEX"],["COMPLEX","COMPLEX"],["COMPLEX_SMALL","COMPLEX_SMALL"],["TRIPLEX","TRIPLEX"],["SCRIPT_SIMPLEX","SCRIPT_SIMPLEX"],["SCRIPT_COMPLEX","SCRIPT_COMPLEX"]]),"font"),this.appendValueInput("size").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendDummyInput().appendField(") "+external_Blockly_namespaceObject.Msg.MIXLY_CV_DRAWLINE_COLOR).appendField(new external_Blockly_namespaceObject.FieldColour("#ff0000"),"FIELDNAME"),this.appendValueInput("thick").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_CV_DRAWLINE_THICKNESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_CV_DRAWLINE_RECT_TOOLTIP)}},cv_face_classifier={init:function(){this.setColour(CV_HUE),this.appendValueInput("FILE").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_CV_FACE_CLASSIFIER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)}},cv_face_detect={init:function(){this.setColour(CV_HUE),this.appendValueInput("FILE").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_IMAGE),this.appendValueInput("FACE").appendField(external_Blockly_namespaceObject.Msg.MIXLY_CV_FACE_DETECT),this.appendValueInput("SCALE").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_CV_FACE_DETECT_SCALE),this.appendValueInput("NEIGHBOR").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_CV_FACE_DETECT_NEIGHBOR),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)}},cv_face_detect_all={init:function(){this.setColour(CV_HUE),this.appendValueInput("FILE").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_IMAGE),this.appendValueInput("FACE").appendField(external_Blockly_namespaceObject.Msg.MIXLY_CV_FACE_DETECT),this.appendValueInput("SCALE").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_CV_FACE_DETECT_SCALE),this.appendValueInput("NEIGHBOR").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_CV_FACE_DETECT_NEIGHBOR),this.appendValueInput("x1").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_CV_FACE_DETECT_RANGE).appendField(external_Blockly_namespaceObject.Msg.blockpy_TUPLE_MIN),this.appendValueInput("y1").setCheck(Number).appendField("×"),this.appendValueInput("x2").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.blockpy_TUPLE_MAX),this.appendValueInput("y2").setCheck(Number).appendField("×"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)}},DATA_HUE=170,series_create={init:function(){this.setColour(DATA_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_series_create).appendField(new external_Blockly_namespaceObject.FieldTextInput("ser1"),"VAR"),this.appendValueInput("SER").appendField(external_Blockly_namespaceObject.Msg.blockpy_series_via),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.blockpy_series_create_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},series_create_from_index={init:function(){this.setColour(DATA_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_series_create).appendField(new external_Blockly_namespaceObject.FieldTextInput("ser1"),"VAR"),this.appendValueInput("SER").appendField(external_Blockly_namespaceObject.Msg.blockpy_series_via),this.appendValueInput("INDEX").setCheck([String,"List"]).appendField(external_Blockly_namespaceObject.Msg.blockpy_series_set_index),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.blockpy_series_create_index_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},dataframe_create={init:function(){this.setColour(DATA_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_dataframe_create).appendField(new external_Blockly_namespaceObject.FieldTextInput("df1"),"VAR"),this.appendValueInput("SER").appendField(external_Blockly_namespaceObject.Msg.blockpy_series_via),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.blockpy_dataframe_create_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},dataframe_create_from_one_index={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.DATAFRAME_RAW,"index"],[external_Blockly_namespaceObject.Msg.DATAFRAME_COLUMN,"columns"]];this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_dataframe_create).appendField(new external_Blockly_namespaceObject.FieldTextInput("df1"),"VAR"),this.appendValueInput("SER").appendField(external_Blockly_namespaceObject.Msg.blockpy_series_via),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"COLUMN_RAW"),this.appendValueInput("INDEX").setCheck([String,"List"]).appendField(external_Blockly_namespaceObject.Msg.blockpy_series_set_index),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.blockpy_dataframe_create_index_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},dataframe_create_from_index={init:function(){this.setColour(DATA_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_dataframe_create).appendField(new external_Blockly_namespaceObject.FieldTextInput("df1"),"VAR"),this.appendValueInput("SER").appendField(external_Blockly_namespaceObject.Msg.blockpy_series_via),this.appendValueInput("INDEX_COLUMN").setCheck([String,"List"]).appendField(external_Blockly_namespaceObject.Msg.blockpy_dataframe_set_index_column),this.appendValueInput("INDEX_RAW").setCheck([String,"List"]).appendField(external_Blockly_namespaceObject.Msg.blockpy_dataframe_set_index_raw),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.blockpy_dataframe_create_index_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},series_create_from_text={init:function(){this.setColour(DATA_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldTextInput("ser1"),"VAR").appendField(" = [").appendField(new external_Blockly_namespaceObject.FieldTextInput("1,2,3"),"TEXT").appendField("]"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_SERIES_CREATE_FROM_TEXT)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},series_index_value={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.SERIES_INDEX,"index"],[external_Blockly_namespaceObject.Msg.HTML_VALUE,"value"]];this.appendValueInput("SERIES").setCheck("Series"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.SERIES_INDEX_VALUE).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"INDEX_VALUE"),this.setOutput(!0,"List");var t=this;this.setTooltip((function(){var e=t.getFieldValue("INDEX_VALUE");return{index:external_Blockly_namespaceObject.Msg.SERIES_INDEX_TOOLTIP,value:external_Blockly_namespaceObject.Msg.HTML_VALUE_TOOLTIP}[e]}))}},series_get_num={init:function(){this.setColour(DATA_HUE),this.setOutput(!0),this.appendValueInput("SER").setCheck("Series"),this.appendValueInput("AT").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.LANG_LISTS_GET_INDEX1),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.LANG_LISTS_GET_INDEX2),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.TUPLE_GET_INDEX_TOOLTIP)}},pl_plot_easy={init:function(){this.setColour(DATA_HUE),this.appendValueInput("SER").setCheck("Series").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},pl_plot={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE_SOLID,"-"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE_DOTTED,"--"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE_CHAIN,"-."],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE_POINT_DOTTED,":"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,""]],t=[[external_Blockly_namespaceObject.Msg.COLOUR_RGB_BLUE,"b"],[external_Blockly_namespaceObject.Msg.COLOUR_RGB_GREEN,"g"],[external_Blockly_namespaceObject.Msg.COLOUR_RGB_RED,"r"],[external_Blockly_namespaceObject.Msg.COLOUR_CYAN,"c"],[external_Blockly_namespaceObject.Msg.COLOUR_MAGENTA,"m"],[external_Blockly_namespaceObject.Msg.COLOUR_YELLOW,"y"],[external_Blockly_namespaceObject.Msg.COLOUR_BLACK,"k"],[external_Blockly_namespaceObject.Msg.COLOUR_WHITE,"w"]],n=[[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_CIRCULAR,"."],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PIXEL,","],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_LARGE_DOT,"o"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_DOWN,"v"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_UP,"^"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_LEFT,"<"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_RIGHT,">"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_UP,"1"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_DOWN,"2"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_LEFT,"3"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_RIGHT,"4"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_SQUARE,"s"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PENTAGON,"p"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_STAR,"*"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_VERTICAL,"h"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_HORIZONTAL,"H"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PLUS,"+"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_CROSS,"x"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND,"D"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND_SMALL,"d"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_VERTICAL,"|"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HORIZONTAL,"_"]];this.appendValueInput("SER").setCheck("Series").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT).appendField(new external_Blockly_namespaceObject.FieldDropdown(n),"DOT"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"LINE"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.HTML_COLOUR).appendField(new external_Blockly_namespaceObject.FieldDropdown(t),"COLOR"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},pl_show={init:function(){this.setColour(DATA_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_SHOW),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},pl_axes={init:function(){this.setColour(DATA_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.mixpy_PL_AXES),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},pl_legend={init:function(){this.setColour(DATA_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_LEGEND),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},pl_title={init:function(){this.setColour(DATA_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_TITLE),this.appendValueInput("TITLE").setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},pl_label={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.PYLAB_LABEL_X,"x"],[external_Blockly_namespaceObject.Msg.PYLAB_LABEL_Y,"y"]];this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_SET_LABEL).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR"),this.appendValueInput("LABEL").appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_LABEL).setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},array_create={init:function(){this.setColour(DATA_HUE),this.appendValueInput("FROM").setCheck(Number).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MIXLY_SPLITBYDOU).appendField(external_Blockly_namespaceObject.Msg.MIXPY_DATA_ARRAY_CREATE_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MIXPY_DATA_ARRAY_CREATE_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MIXLY_STEP),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},pl_plot_bar={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_BAR_PLOT,"plot"],[external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_BAR_BAR,"bar"]];this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_DISPLAY_DRAW).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR"),this.appendValueInput("A").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_Y),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{plot:external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP,bar:external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_BAR_EASY_TOOLTIP}[e]}))}},pl_plot_scatter={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.COLOUR_RGB_BLUE,"b"],[external_Blockly_namespaceObject.Msg.COLOUR_RGB_GREEN,"g"],[external_Blockly_namespaceObject.Msg.COLOUR_RGB_RED,"r"],[external_Blockly_namespaceObject.Msg.COLOUR_CYAN,"c"],[external_Blockly_namespaceObject.Msg.COLOUR_MAGENTA,"m"],[external_Blockly_namespaceObject.Msg.COLOUR_YELLOW,"y"],[external_Blockly_namespaceObject.Msg.COLOUR_BLACK,"k"],[external_Blockly_namespaceObject.Msg.COLOUR_WHITE,"w"]],t=[[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_CIRCULAR,"."],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PIXEL,","],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_LARGE_DOT,"o"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_DOWN,"v"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_UP,"^"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_LEFT,"<"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_RIGHT,">"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_UP,"1"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_DOWN,"2"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_LEFT,"3"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_RIGHT,"4"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_SQUARE,"s"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PENTAGON,"p"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_STAR,"*"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_VERTICAL,"h"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_HORIZONTAL,"H"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PLUS,"+"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_CROSS,"x"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND,"D"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND_SMALL,"d"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_VERTICAL,"|"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HORIZONTAL,"_"]];this.appendValueInput("A").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_SCATTER).appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_Y),this.appendValueInput("S").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_JS_NUMBER),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT).appendField(new external_Blockly_namespaceObject.FieldDropdown(t),"DOT"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.HTML_COLOUR).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"COLOR"),this.appendValueInput("TAG").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("")}},pl_plot_xy={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE_SOLID,"-"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE_DOTTED,"--"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE_CHAIN,"-."],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE_POINT_DOTTED,":"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,""]],t=[[external_Blockly_namespaceObject.Msg.COLOUR_RGB_BLUE,"b"],[external_Blockly_namespaceObject.Msg.COLOUR_RGB_GREEN,"g"],[external_Blockly_namespaceObject.Msg.COLOUR_RGB_RED,"r"],[external_Blockly_namespaceObject.Msg.COLOUR_CYAN,"c"],[external_Blockly_namespaceObject.Msg.COLOUR_MAGENTA,"m"],[external_Blockly_namespaceObject.Msg.COLOUR_YELLOW,"y"],[external_Blockly_namespaceObject.Msg.COLOUR_BLACK,"k"],[external_Blockly_namespaceObject.Msg.COLOUR_WHITE,"w"]],n=[[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_CIRCULAR,"."],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PIXEL,","],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_LARGE_DOT,"o"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_DOWN,"v"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_UP,"^"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_LEFT,"<"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_RIGHT,">"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_UP,"1"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_DOWN,"2"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_LEFT,"3"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_RIGHT,"4"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_SQUARE,"s"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PENTAGON,"p"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_STAR,"*"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_VERTICAL,"h"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_HORIZONTAL,"H"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PLUS,"+"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_CROSS,"x"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND,"D"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND_SMALL,"d"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_VERTICAL,"|"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HORIZONTAL,"_"]];this.appendValueInput("A").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_XY).appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_Y),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT).appendField(new external_Blockly_namespaceObject.FieldDropdown(n),"DOT"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"LINE"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.HTML_COLOUR).appendField(new external_Blockly_namespaceObject.FieldDropdown(t),"COLOR"),this.appendValueInput("TAG").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP)}},pl_bar={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_ALIGN_CENTER,"center"],[external_Blockly_namespaceObject.Msg.AILGN_EDGE,"edge"]];this.appendValueInput("A").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_BAR).appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_Y),this.appendValueInput("WIDTH").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_WIDTH),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_BAR_ALIGN).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"ALIGN"),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.HTML_COLOUR).appendField(new external_Blockly_namespaceObject.FieldColour("#0000ff"),"COLOR"),this.appendValueInput("TAG").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP)}},pl_pie={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.mixpy_PL_PIE_SHADOW_N,"False"],[external_Blockly_namespaceObject.Msg.mixpy_PL_PIE_SHADOW_Y,"True"]],t=[[external_Blockly_namespaceObject.Msg.mixpy_PL_PIE_SHADOW_N,"None"],[external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PIE_AUTOPCT_Z,"%.0f%%"],[external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PIE_AUTOPCT_O,"%.1f%%"],[external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PIE_AUTOPCT_T,"%.2f%%"]];this.appendValueInput("A").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PIE).appendField(external_Blockly_namespaceObject.Msg.COLOUR_BLEND_RATIO),this.appendValueInput("B").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_TICKS_TAG),this.appendValueInput("EXPLODE").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PIE_EXPLODE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PIE_AUTOPCT).appendField(new external_Blockly_namespaceObject.FieldDropdown(t),"autopct"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PIE_SHADOW).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"SHADOW"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP)}},pl_hist={init:function(){this.setColour(DATA_HUE),this.appendValueInput("A").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_HIST).appendField(external_Blockly_namespaceObject.Msg.MIXLY_SD_DATA),this.appendValueInput("B").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},pl_ticks={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.PYLAB_LABEL_X,"x"],[external_Blockly_namespaceObject.Msg.PYLAB_LABEL_Y,"y"]];this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_SETTING).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR"),this.appendValueInput("A").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_TICKS).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_JS_I2C_VALUE),this.appendValueInput("B").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_TICKS_TOOLTIP)}},numpy_trig={init:function(){var e=[["sin","sin"],["cos","cos"],["tan","tan"],["arcsin","arcsin"],["arccos","arccos"],["arctan","arctan"],[external_Blockly_namespaceObject.Msg.LANG_MATH_TO_ROUND,"round"],[external_Blockly_namespaceObject.Msg.LANG_MATH_TO_CEIL,"ceil"],[external_Blockly_namespaceObject.Msg.LANG_MATH_TO_FLOOR,"floor"]];this.setColour(DATA_HUE),this.setOutput(!0),this.setInputsInline(!0),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.mixpy_NUMPY_TRIG),this.appendValueInput("NUM").setCheck(Number).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"OP"),this.setTooltip(external_Blockly_namespaceObject.Msg.mixpy_NUMPY_TRIG_TOOLTIP)}},pl_subplot={init:function(){this.setColour(DATA_HUE),this.appendValueInput("VET").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.mixpy_SUBPLOT).appendField(external_Blockly_namespaceObject.Msg.mixpy_SUBPLOT_VERTICLE),this.appendValueInput("HOR").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.mixpy_SUBPLOT_HORIZEN),this.appendValueInput("NUM").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.mixpy_SUBPLOT_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},pandas_readcsv={init:function(){this.setColour(DATA_HUE),this.appendValueInput("FILENAME").appendField(external_Blockly_namespaceObject.Msg.MIXPY_PANDAS_READ_CSV),this.appendDummyInput().appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.mixpy_PANDAS_READCSV_HEADER_Y,"0"],[external_Blockly_namespaceObject.Msg.mixpy_PANDAS_READCSV_HEADER_N,"None"]]),"MODE"),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.mixpy_PANDAS_READCSV_TITLE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.mixpy_PANDAS_READCSV_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},dataframe_get={init:function(){this.setColour(DATA_HUE),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(external_Blockly_namespaceObject.Msg.mixpy_DATAFRAME_GET),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.mixpy_DATAFRAME_GET_INDEX).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.DATAFRAME_COLUMN,"column"],[external_Blockly_namespaceObject.Msg.DATAFRAME_RAW,"raw"]]),"MODE"),this.setOutput(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.mixpy_DATAFRAME_GET_TOOLTIP)}},pl_savefig={init:function(){this.setColour(DATA_HUE),this.appendValueInput("FILE").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.mixpy_PL_SAVEFIG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(external_Blockly_namespaceObject.Msg.mixpy_PL_SAVEFIG_TOOLTIP)}},pl_text={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.TEXT_TRIM_LEFT,"right"],[external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_CENTER,"center"],[external_Blockly_namespaceObject.Msg.TEXT_TRIM_RIGHT,"left"]],t=[[external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_TOP,"bottom"],[external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_CENTER,"center"],[external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_BOTTOM,"top"]];this.appendValueInput("VET").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_SETTING).appendField(external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_X),this.appendValueInput("HOR").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_Y),this.appendValueInput("NUM").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_TAG),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_HOR).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"HALIGN"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_VER).appendField(new external_Blockly_namespaceObject.FieldDropdown(t),"VALIGN"),this.appendValueInput("FONTNUM").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_TOOLTIP)}},array_toarray={init:function(){this.setColour(DATA_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_TOARRAY),this.setOutput(!0,"List"),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_TOOLTIP_TOARRAY)}},plot_plot_easy={init:function(){this.setColour(DATA_HUE),this.appendValueInput("SER").setCheck("Series").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},plot_plot={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE_SOLID,"-"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE_DOTTED,"--"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE_CHAIN,"-."],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE_POINT_DOTTED,":"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,""]],t=[[external_Blockly_namespaceObject.Msg.COLOUR_RGB_BLUE,"b"],[external_Blockly_namespaceObject.Msg.COLOUR_RGB_GREEN,"g"],[external_Blockly_namespaceObject.Msg.COLOUR_RGB_RED,"r"],[external_Blockly_namespaceObject.Msg.COLOUR_CYAN,"c"],[external_Blockly_namespaceObject.Msg.COLOUR_MAGENTA,"m"],[external_Blockly_namespaceObject.Msg.COLOUR_YELLOW,"y"],[external_Blockly_namespaceObject.Msg.COLOUR_BLACK,"k"],[external_Blockly_namespaceObject.Msg.COLOUR_WHITE,"w"]],n=[[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_CIRCULAR,"."],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PIXEL,","],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_LARGE_DOT,"o"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_DOWN,"v"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_UP,"^"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_LEFT,"<"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_RIGHT,">"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_UP,"1"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_DOWN,"2"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_LEFT,"3"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_RIGHT,"4"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_SQUARE,"s"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PENTAGON,"p"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_STAR,"*"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_VERTICAL,"h"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_HORIZONTAL,"H"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PLUS,"+"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_CROSS,"x"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND,"D"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND_SMALL,"d"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_VERTICAL,"|"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HORIZONTAL,"_"]];this.appendValueInput("SER").setCheck("Series").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT).appendField(new external_Blockly_namespaceObject.FieldDropdown(n),"DOT"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"LINE"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.HTML_COLOUR).appendField(new external_Blockly_namespaceObject.FieldDropdown(t),"COLOR"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},plot_show={init:function(){this.setColour(DATA_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_SHOW),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},plot_axes={init:function(){this.setColour(DATA_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.mixpy_PL_AXES),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},plot_legend={init:function(){this.setColour(DATA_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_LEGEND),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},plot_title={init:function(){this.setColour(DATA_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_TITLE),this.appendValueInput("TITLE").setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},plot_label={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.PYLAB_LABEL_X,"x"],[external_Blockly_namespaceObject.Msg.PYLAB_LABEL_Y,"y"]];this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_SET_LABEL).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR"),this.appendValueInput("LABEL").appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_LABEL).setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},plot_plot_bar={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_BAR_PLOT,"plot"],[external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_BAR_BAR,"bar"]];this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_DISPLAY_DRAW).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR"),this.appendValueInput("A").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_Y),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{plot:external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP,bar:external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_BAR_EASY_TOOLTIP}[e]}))}},plot_plot_scatter={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.COLOUR_RGB_BLUE,"b"],[external_Blockly_namespaceObject.Msg.COLOUR_RGB_GREEN,"g"],[external_Blockly_namespaceObject.Msg.COLOUR_RGB_RED,"r"],[external_Blockly_namespaceObject.Msg.COLOUR_CYAN,"c"],[external_Blockly_namespaceObject.Msg.COLOUR_MAGENTA,"m"],[external_Blockly_namespaceObject.Msg.COLOUR_YELLOW,"y"],[external_Blockly_namespaceObject.Msg.COLOUR_BLACK,"k"],[external_Blockly_namespaceObject.Msg.COLOUR_WHITE,"w"]],t=[[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_CIRCULAR,"."],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PIXEL,","],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_LARGE_DOT,"o"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_DOWN,"v"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_UP,"^"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_LEFT,"<"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_RIGHT,">"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_UP,"1"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_DOWN,"2"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_LEFT,"3"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_RIGHT,"4"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_SQUARE,"s"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PENTAGON,"p"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_STAR,"*"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_VERTICAL,"h"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_HORIZONTAL,"H"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PLUS,"+"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_CROSS,"x"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND,"D"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND_SMALL,"d"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_VERTICAL,"|"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HORIZONTAL,"_"]];this.appendValueInput("A").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_SCATTER).appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_Y),this.appendValueInput("S").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_JS_NUMBER),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT).appendField(new external_Blockly_namespaceObject.FieldDropdown(t),"DOT"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.HTML_COLOUR).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"COLOR"),this.appendValueInput("TAG").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("")}},plot_plot_xy={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE_SOLID,"-"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE_DOTTED,"--"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE_CHAIN,"-."],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE_POINT_DOTTED,":"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,""]],t=[[external_Blockly_namespaceObject.Msg.COLOUR_RGB_BLUE,"b"],[external_Blockly_namespaceObject.Msg.COLOUR_RGB_GREEN,"g"],[external_Blockly_namespaceObject.Msg.COLOUR_RGB_RED,"r"],[external_Blockly_namespaceObject.Msg.COLOUR_CYAN,"c"],[external_Blockly_namespaceObject.Msg.COLOUR_MAGENTA,"m"],[external_Blockly_namespaceObject.Msg.COLOUR_YELLOW,"y"],[external_Blockly_namespaceObject.Msg.COLOUR_BLACK,"k"],[external_Blockly_namespaceObject.Msg.COLOUR_WHITE,"w"]],n=[[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_CIRCULAR,"."],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PIXEL,","],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_LARGE_DOT,"o"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_DOWN,"v"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_UP,"^"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_LEFT,"<"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_RIGHT,">"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_UP,"1"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_DOWN,"2"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_LEFT,"3"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_RIGHT,"4"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_SQUARE,"s"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PENTAGON,"p"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_STAR,"*"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_VERTICAL,"h"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_HORIZONTAL,"H"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PLUS,"+"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_CROSS,"x"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND,"D"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND_SMALL,"d"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_VERTICAL,"|"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HORIZONTAL,"_"]];this.appendValueInput("A").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_XY).appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_Y),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT).appendField(new external_Blockly_namespaceObject.FieldDropdown(n),"DOT"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"LINE"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.HTML_COLOUR).appendField(new external_Blockly_namespaceObject.FieldDropdown(t),"COLOR"),this.appendValueInput("TAG").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP)}},plot_bar={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_ALIGN_CENTER,"center"],[external_Blockly_namespaceObject.Msg.AILGN_EDGE,"edge"]];this.appendValueInput("A").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_BAR).appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_Y),this.appendValueInput("WIDTH").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_WIDTH),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_BAR_ALIGN).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"ALIGN"),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.HTML_COLOUR).appendField(new external_Blockly_namespaceObject.FieldColour("#0000ff"),"COLOR"),this.appendValueInput("TAG").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP)}},plot_pie={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.mixpy_PL_PIE_SHADOW_N,"False"],[external_Blockly_namespaceObject.Msg.mixpy_PL_PIE_SHADOW_Y,"True"]],t=[[external_Blockly_namespaceObject.Msg.mixpy_PL_PIE_SHADOW_N,"None"],[external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PIE_AUTOPCT_Z,"%.0f%%"],[external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PIE_AUTOPCT_O,"%.1f%%"],[external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PIE_AUTOPCT_T,"%.2f%%"]];this.appendValueInput("A").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PIE).appendField(external_Blockly_namespaceObject.Msg.COLOUR_BLEND_RATIO),this.appendValueInput("B").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_TICKS_TAG),this.appendValueInput("EXPLODE").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PIE_EXPLODE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PIE_AUTOPCT).appendField(new external_Blockly_namespaceObject.FieldDropdown(t),"autopct"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PIE_SHADOW).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"SHADOW"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP)}},plot_hist={init:function(){this.setColour(DATA_HUE),this.appendValueInput("A").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_HIST).appendField(external_Blockly_namespaceObject.Msg.MIXLY_SD_DATA),this.appendValueInput("B").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},plot_ticks={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.PYLAB_LABEL_X,"x"],[external_Blockly_namespaceObject.Msg.PYLAB_LABEL_Y,"y"]];this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_SETTING).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR"),this.appendValueInput("A").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_TICKS).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_JS_I2C_VALUE),this.appendValueInput("B").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_TICKS_TOOLTIP)}},plot_subplot={init:function(){this.setColour(DATA_HUE),this.appendValueInput("VET").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.mixpy_SUBPLOT).appendField(external_Blockly_namespaceObject.Msg.mixpy_SUBPLOT_VERTICLE),this.appendValueInput("HOR").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.mixpy_SUBPLOT_HORIZEN),this.appendValueInput("NUM").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.mixpy_SUBPLOT_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},plot_savefig={init:function(){this.setColour(DATA_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.mixpy_PL_SAVEFIG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(external_Blockly_namespaceObject.Msg.mixpy_PL_SAVEFIG_TOOLTIP)}},plot_text={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.TEXT_TRIM_LEFT,"right"],[external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_CENTER,"center"],[external_Blockly_namespaceObject.Msg.TEXT_TRIM_RIGHT,"left"]],t=[[external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_TOP,"bottom"],[external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_CENTER,"center"],[external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_BOTTOM,"top"]];this.appendValueInput("VET").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_SETTING).appendField(external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_X),this.appendValueInput("HOR").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_Y),this.appendValueInput("NUM").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_TAG),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_HOR).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"HALIGN"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_VER).appendField(new external_Blockly_namespaceObject.FieldDropdown(t),"VALIGN"),this.appendValueInput("FONTNUM").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_TOOLTIP)}},numpy_shape={init:function(){this.setColour(DATA_HUE),this.appendValueInput("ARRAY").appendField("获取维度"),this.setOutput(!0),this.setTooltip("Returns the shape of the array.")}},numpy_reshape={init:function(){this.setColour(DATA_HUE),this.appendValueInput("ARRAY").appendField("变形"),this.appendValueInput("DIMENSIONS").appendField("后维度为"),this.setOutput(!0),this.setTooltip("Reshapes the array to the specified dimensions.")}},numpy_astype={init:function(){this.setColour(DATA_HUE),this.appendValueInput("ARRAY").appendField("把"),this.appendDummyInput().appendField("转换为").appendField(new external_Blockly_namespaceObject.FieldDropdown([["uint8","numpy.uint8"],["int32","numpy.int32"],["float32","numpy.float32"],["float64","numpy.float64"]]),"TYPE"),this.setOutput(!0),this.setTooltip("Converts array to specified type.")}},pylab_imshow={init:function(){this.setColour(DATA_HUE),this.appendValueInput("ARRAY").appendField("创建二维图"),this.appendDummyInput().appendField("颜色").appendField(new external_Blockly_namespaceObject.FieldDropdown([["gray","gray"],["viridis","viridis"],["plasma","plasma"],["inferno","inferno"],["magma","magma"],["cividis","cividis"],["hot","hot"],["cool","cool"],["spring","spring"],["summer","summer"],["autumn","autumn"],["winter","winter"],["jet","jet"]]),"COLORMAP"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("Displays an image with the specified colormap.")}},numpy_mean_digit={init:function(){this.setColour(DATA_HUE),this.appendValueInput("X").appendField("从数据集"),this.appendValueInput("Y").appendField("获取平均图像,标签"),this.appendValueInput("DIGIT").appendField("为"),this.setOutput(!0),this.setTooltip("Computes the mean of X where y equals the specified digit.")}},numpy_argmin_template_match={init:function(){this.setColour(DATA_HUE),this.appendValueInput("IMAGE").appendField("获取模板匹配结果,图片:"),this.appendValueInput("TEMPLATES").appendField("模板:"),this.setOutput(!0),this.setTooltip("Finds the index of the template that minimizes the sum of absolute differences with the image.")}},numpy_mean={init:function(){this.setColour(DATA_HUE),this.appendValueInput("ARRAY").appendField("获取平均值"),this.appendDummyInput().appendField("沿着axis").appendField(new external_Blockly_namespaceObject.FieldDropdown([["None","NONE"],["0","0"],["1","1"]]),"AXIS"),this.setOutput(!0),this.setTooltip("Computes the mean of the array along the specified axis.")}},numpy_std={init:function(){this.setColour(DATA_HUE),this.appendValueInput("ARRAY").appendField("获取标准差"),this.appendDummyInput().appendField("沿着axis").appendField(new external_Blockly_namespaceObject.FieldDropdown([["None","NONE"],["0","0"],["1","1"]]),"AXIS"),this.setOutput(!0),this.setTooltip("Computes the standard deviation of the array along the specified axis.")}},pandas_dropna={init:function(){this.setColour(DATA_HUE),this.appendValueInput("DF").appendField("丢弃缺省值"),this.setOutput(!0),this.setTooltip("Drops rows with NaN values from the dataframe.")}},pandas_drop_columns={init:function(){this.setColour(DATA_HUE),this.appendValueInput("DATAFRAME").appendField("从数据集"),this.appendValueInput("COLUMNS").appendField("中删除列"),this.appendDummyInput().appendField("沿着axis").appendField(new external_Blockly_namespaceObject.FieldDropdown([["行","0"],["列","1"]]),"AXIS"),this.setOutput(!0),this.setTooltip("Drops columns from dataframe.")}},numpy_ones={init:function(){this.setColour(DATA_HUE),this.appendValueInput("NUM").appendField("生成单位行向量"),this.setOutput(!0),this.setTooltip("Creates an array of ones with the specified length.")}},numpy_c_={init:function(){this.setColour(DATA_HUE),this.appendValueInput("ARRAY1").appendField("列拼接:数组1"),this.appendValueInput("ARRAY2").appendField("数组2"),this.setOutput(!0),this.setTooltip("Concatenates two arrays along the second axis using numpy.c_.")}},numpy_linalg_det={init:function(){this.setColour(DATA_HUE),this.appendValueInput("ARRAY").appendField("获取行列式"),this.setOutput(!0),this.setTooltip("Computes the determinant of an array using numpy.linalg.det.")}},matrix_transpose={init:function(){this.setColour(DATA_HUE),this.appendValueInput("MATRIX").appendField("获取转置"),this.setOutput(!0),this.setTooltip("Computes the transpose of the given matrix.")}},matrix_multiplication={init:function(){this.setColour(DATA_HUE),this.appendValueInput("MATRIX1"),this.appendValueInput("MATRIX2").appendField("@"),this.setOutput(!0),this.setTooltip("Multiplies two matrices.")}},numpy_linalg_inv={init:function(){this.setColour(DATA_HUE),this.appendValueInput("ARRAY").appendField("获取逆矩阵"),this.setOutput(!0),this.setTooltip("Computes the inverse of the given matrix using numpy.linalg.inv.")}},dataframe_median={init:function(){this.setColour(DATA_HUE),this.appendValueInput("DATAFRAME").appendField("获取中位数"),this.setOutput(!0),this.setTooltip("Computes the median of the given dataframe.")}},dataframe_fillna={init:function(){this.setColour(DATA_HUE),this.appendValueInput("DATAFRAME").appendField("填充缺失值"),this.appendValueInput("VALUE").appendField("填充值"),this.appendDummyInput().appendField("是否修改原数据").appendField(new external_Blockly_namespaceObject.FieldDropdown([["True","True"],["False","False"]]),"INPLACE"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("Fills NaN values in the dataframe with the specified value.")}},dataframe_info={init:function(){this.setColour(DATA_HUE),this.appendValueInput("DATAFRAME").appendField("获取DataFrame信息"),this.setOutput(!0),this.setTooltip("Displays information about the DataFrame.")}},numpy_min={init:function(){this.setColour(DATA_HUE),this.appendValueInput("ARRAY").appendField("获取最小值"),this.appendDummyInput().appendField("沿着axis").appendField(new external_Blockly_namespaceObject.FieldDropdown([["None","None"],["行","0"],["列","1"]]),"AXIS"),this.setOutput(!0),this.setTooltip("Returns the minimum value along the specified axis.")}},numpy_max={init:function(){this.setColour(DATA_HUE),this.appendValueInput("ARRAY").appendField("获取最大值"),this.appendDummyInput().appendField("沿着axis").appendField(new external_Blockly_namespaceObject.FieldDropdown([["None","None"],["行","0"],["列","1"]]),"AXIS"),this.setOutput(!0),this.setTooltip("Returns the maximum value along the specified axis.")}},numpy_size={init:function(){this.setColour(DATA_HUE),this.appendValueInput("ARRAY").appendField("获取数组大小"),this.setOutput(!0),this.setTooltip("Returns the size of the array.")}},numpy_dot={init:function(){this.setColour(DATA_HUE),this.appendValueInput("ARRAY1").appendField("点乘数组1"),this.appendValueInput("ARRAY2").appendField("点乘数组2"),this.setOutput(!0),this.setTooltip("Returns the dot product of two arrays.")}},numpy_square={init:function(){this.setColour(DATA_HUE),this.appendValueInput("ARRAY").appendField("获取平方数组"),this.setOutput(!0),this.setTooltip("Returns the element-wise square of the array.")}},numpy_sum={init:function(){this.setColour(DATA_HUE),this.appendValueInput("ARRAY").appendField("获取数组元素和"),this.setOutput(!0),this.setTooltip("Returns the sum of the array.")}},numpy_random_random={init:function(){this.setColour(DATA_HUE),this.appendValueInput("SIZE").appendField("生成随机数组"),this.setOutput(!0),this.setTooltip("Returns a random array of the specified size.")}},py_sum={init:function(){this.setColour(DATA_HUE),this.appendValueInput("ARRAY").appendField("Python求和"),this.setOutput(!0),this.setTooltip("Returns the sum of the iterable.")}},dataframe_sort_values={init:function(){this.setColour(DATA_HUE),this.appendValueInput("DICT").setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).setCheck("Dict"),this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField("值排序"),this.appendValueInput("KEY").setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField("标签"),this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField("排序方式").appendField(new external_Blockly_namespaceObject.FieldDropdown([["升序","True"],["降序","False"]]),"AS_CENDING"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip("")}},dataframe_head_tail={init:function(){this.setColour(DATA_HUE),this.appendValueInput("DICT").setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).setCheck("Dict"),this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField("获取").appendField(new external_Blockly_namespaceObject.FieldDropdown([["前几行","head"],["最后几行","tail"]]),"TYPE"),this.appendValueInput("LINES").setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField("行数"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip("")}},dataframe_select={init:function(){this.setColour(DATA_HUE),this.appendValueInput("DICT").setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).setCheck("Dict"),this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField("筛选数据"),this.appendValueInput("KEY").setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField("满足条件"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip("")}},dataframe_groupby={init:function(){this.setColour(DATA_HUE),this.appendValueInput("DICT").setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).setCheck("Dict"),this.appendValueInput("KEY").setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField("通过标签"),this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField("分组"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip("")}},dataframe_aggregate_func={init:function(){this.setColour(DATA_HUE),this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(new external_Blockly_namespaceObject.FieldDropdown([["求最小值","min"],["求最大值","max"],["求和","sum"],["求平均值","mean"],["求中位数","median"],["求标准差","std"]]),"TYPE"),this.appendValueInput("DICT").setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).setCheck("Dict"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip("")}},plot_cla={init:function(){this.setColour(DATA_HUE),this.appendDummyInput().appendField("清除已有图像"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},DS_HUE=80,ds_create_linkedlist={init:function(){this.setColour(DS_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldLabel(external_Blockly_namespaceObject.Msg.DS_CREATE_LINKEDLIST_NEW)),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldLabel(external_Blockly_namespaceObject.Msg.DS_CREATE_LINKEDLIST_HEAD)).appendField(new external_Blockly_namespaceObject.FieldTextInput("head"),"VAR"),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldLabel(external_Blockly_namespaceObject.Msg.DS_CREATE_LINKEDLIST_TYPE)).appendField(new external_Blockly_namespaceObject.FieldTextInput("tag"),"TYPE"),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.DS_CREATE_LINKEDLIST_ATTRIBUTE),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new external_Blockly_namespaceObject.icons.MutatorIcon(["ds_create_linkedlist_item"],this)),this.setTooltip(external_Blockly_namespaceObject.Msg.DS_CREATE_LINKEDLIST_TOOLTIP)},mutationToDom:function(){var e=document.createElement("mutation");return e.setAttribute("items",this.itemCount_),e},domToMutation:function(e){this.itemCount_=parseInt(e.getAttribute("items"),10),this.updateShape_()},decompose:function(e){var t=e.newBlock("ds_create_linkedlist_container");t.initSvg();for(var n=t.getInput("STACK").connection,a=0;at?e[t]:"name"),"KEY"+t).appendField("=")},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},ds_create_linkedlist_container={init:function(){this.setColour(DS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.DS_CREATE_LINKEDLIST_CONTAINER_TITLE),this.appendStatementInput("STACK"),this.setTooltip(external_Blockly_namespaceObject.Msg.DS_CREATE_LINKEDLIST_CONTAINER_TOOLTIP),this.contextMenu=!1}},ds_create_linkedlist_item={init:function(){this.setColour(DS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.DS_CREATE_LINKEDLIST_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.DS_CREATE_LINKEDLIST_ITEM_TOOLTIP),this.contextMenu=!1}},ds_create_node={init:function(){this.setColour(DS_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DS_CREATE_NODE_USE).appendField(new external_Blockly_namespaceObject.FieldTextInput("tag"),"TYPE"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DS_CREATE_NODE_NEW),this.appendValueInput("NODE"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.DS_CREATE_NODE_TOOLTIP)}},ds_get_node_attr={init:function(){this.setColour(DS_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DS_GET_NODE_ATTR_NODE),this.appendValueInput("NODE"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AIP_ATTR).appendField(new external_Blockly_namespaceObject.FieldTextInput("name"),"TYPE"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DICTS_ADD_VALUE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.DS_GET_NODE_ATTR_TOOLTIP)}},ds_set_node_attr={init:function(){this.setColour(DS_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DS_SET_NODE_ATTR_NODE),this.appendValueInput("NODE"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AIP_ATTR).appendField(new external_Blockly_namespaceObject.FieldTextInput("name"),"TYPE"),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.DS_SET_NODE_ATTR_SET),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.DS_SET_NODE_ATTR_TOOLTIP)}},ds_add_node_by_name={init:function(){this.setColour(DS_HUE),this.appendValueInput("NODE").appendField(external_Blockly_namespaceObject.Msg.DS_ADD_NODE_HEAD_NODE);var e=[[external_Blockly_namespaceObject.Msg.DS_ADD_NODE_BEFORE,"before"],[external_Blockly_namespaceObject.Msg.DS_ADD_NODE_AFTER,"after"]];this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DS_ADD_NODE_LINKEDLIST),this.appendValueInput("NODE2").appendField(external_Blockly_namespaceObject.Msg.DS_SET_NODE_ATTR_NODE),this.appendValueInput("NODE3").appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR").appendField(external_Blockly_namespaceObject.Msg.DS_ADD_NODE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.DS_ADD_NODE_TOOLTIP)}},ds_add_node_by_attr={init:function(){this.setColour(DS_HUE),this.appendValueInput("NODE").appendField(external_Blockly_namespaceObject.Msg.DS_ADD_NODE_HEAD_NODE);var e=[[external_Blockly_namespaceObject.Msg.DS_ADD_NODE_BEFORE,"before"],[external_Blockly_namespaceObject.Msg.DS_ADD_NODE_AFTER,"after"]];this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DS_ADD_NODE_LINKEDLIST),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DS_CREATE_LINKEDLIST_ITEM_TITLE).appendField(new external_Blockly_namespaceObject.FieldTextInput("name"),"TYPE"),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AS),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DS_ADD_NODE_ATTR),this.appendValueInput("NODE3").appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR").appendField(external_Blockly_namespaceObject.Msg.DS_ADD_NODE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.DS_ADD_NODE_TOOLTIP)}},ds_del_node_by_name={init:function(){this.setColour(DS_HUE),this.appendValueInput("NODE").appendField(external_Blockly_namespaceObject.Msg.DS_ADD_NODE_HEAD_NODE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DS_ADD_NODE_LINKEDLIST),this.appendValueInput("NODE2").appendField(external_Blockly_namespaceObject.Msg.DS_DEL_NODE_NAME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.DS_DEL_NODE_TOOLTIP)}},ds_del_node_by_attr={init:function(){this.setColour(DS_HUE),this.appendValueInput("NODE").appendField(external_Blockly_namespaceObject.Msg.DS_ADD_NODE_HEAD_NODE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DS_ADD_NODE_LINKEDLIST),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DS_DEL_NODE_ATTR).appendField(new external_Blockly_namespaceObject.FieldTextInput("name"),"TYPE"),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AS),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DS_ADD_NODE_ATTR),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.DS_DEL_NODE_TOOLTIP)}},ds_reverse_linkedlist={init:function(){this.setColour(DS_HUE),this.appendValueInput("NODE").appendField(external_Blockly_namespaceObject.Msg.DS_ADD_NODE_HEAD_NODE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DS_REVERSE_LINKEDLIST),this.appendValueInput("NODE2").appendField(external_Blockly_namespaceObject.Msg.DS_REVERSE_LINKEDLIST_NEW_HEAD),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.DS_DEL_NODE_TOOLTIP)}},FACTORY_HUE="#777777",factory_from_import={init:function(){this.setColour(FACTORY_HUE),this.appendDummyInput("").appendField("from ").appendField(new external_Blockly_namespaceObject.FieldTextInput("ESP32"),"path").appendField(" import ").appendField(new external_Blockly_namespaceObject.FieldTextInput("*"),"module"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},factory_import={init:function(){this.setColour(FACTORY_HUE),this.appendDummyInput("").appendField("import ").appendField(new external_Blockly_namespaceObject.FieldTextInput("module"),"module"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},factory_function_noreturn={init:function(){this.setColour(FACTORY_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldTextInput("my_function"),"NAME"),this.itemCount_=1,this.arguments_=["x"],this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new external_Blockly_namespaceObject.icons.MutatorIcon(["factory_create_with_item"],this))},mutationToDom:function(){var e=document.createElement("mutation");e.setAttribute("items",this.itemCount_);for(var t=0;tt?e[t]:'"key'+(t+1)+'"'),"KEY"+t).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},iot_publish_container={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(external_Blockly_namespaceObject.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},iot_publish_item={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},iot_create_with_item={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},iot_mixio_connect={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_EMQX_SERVER).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("USERNAME").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_WIFI_USERNAME).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("PASSWORD").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_IOT_PASSWORD).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("PROJECT").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_EMQX_PROJECT).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},IOT_MIXIO_PUBLISH={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(external_Blockly_namespaceObject.Msg.MIXLY_EMQX_PUBLISH_NEW).appendField(external_Blockly_namespaceObject.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MSG").appendField(external_Blockly_namespaceObject.Msg.HTML_BODY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_ESP32_IOT_EMQX_PUBLISH_TOOLTIP)}},IOT_MIXIO_SUBSCRIBE={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(external_Blockly_namespaceObject.Msg.MIXLY_EMQX_SUBSCRIBE+external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_MSG).appendField(external_Blockly_namespaceObject.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("METHOD").appendField(external_Blockly_namespaceObject.Msg.MIXLY_EMQX_SET_METHOD),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_ESP32_IOT_EMQX_SUBSCRIBE_TOOLTIP)}},IOT_MIXIO_UNSUBSCRIBE={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(external_Blockly_namespaceObject.Msg.MSG.stop+external_Blockly_namespaceObject.Msg.MIXLY_EMQX_SUBSCRIBE).appendField(external_Blockly_namespaceObject.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_ESP32_IOT_EMQX_SUBSCRIBE_TOOLTIP)}},iot_mixio_disconnect={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_ESP32_DISCONNECT_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},iot_mixio_connect_only={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_EMQX_CONNECT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},iot_mixio_check={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_ESP32_CHECK_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},iot_mixio_format_topic={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROPYTHON_FORMAT).appendField(external_Blockly_namespaceObject.MQTT_Topic),this.setInputsInline(!0),this.setOutput(!0)}},iot_mixio_format_msg={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROPYTHON_FORMAT).appendField(external_Blockly_namespaceObject.Msg.MIXLY_EMQX_PUBLISH_MSG),this.setInputsInline(!0),this.setOutput(!0)}},IOT_FORMATTING={init:function(){this.setColour(IOT_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_ESP32_IOT_MAP_FORMATING),this.setOutput(!0)}},IOT_FORMAT_STRING={init:function(){this.setColour(IOT_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROPYTHON_FORMAT+"(Json)"),this.setOutput(!0)}},IOT_EMQX_PING={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_EMQX_PING),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_ESP32_IOT_EMQX_PING_TOOLTIP)}},IOT_MIXIO_NTP={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField("MixIO").appendField(external_Blockly_namespaceObject.Msg.MIXLY_GET_NTP),this.appendValueInput("addr").appendField(external_Blockly_namespaceObject.blynk_SERVER_ADD),this.setInputsInline(!0),this.setOutput(!0)}},IOT_EMQX_INIT_AND_CONNECT_BY_SHARE_CODE={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").appendField(external_Blockly_namespaceObject.Msg.MIXLY_EMQX_SERVER).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("KEY").appendField(external_Blockly_namespaceObject.Msg.CONTROLS_FOR_INPUT_WITH+external_Blockly_namespaceObject.Msg.MIXLY_MIXIO_SHARE_KEY).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},IOT_EMQX_INIT_AND_CONNECT_BY_MIXLY_CODE={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").appendField(external_Blockly_namespaceObject.Msg.MIXLY_EMQX_SERVER).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("KEY").appendField(external_Blockly_namespaceObject.Msg.CONTROLS_FOR_INPUT_WITH+"Mixly Key").setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},iot_mixly_key_py={init:function(){this.VISITOR_ID=external_Mixly_namespaceObject.Config.BOARD.visitorId.str32.substring(0,8).toUpperCase(),this.setColour(IOT_HUE),this.appendDummyInput("").appendField(this.newQuote_(!0)).appendField(new external_Blockly_namespaceObject.FieldTextInput(this.visitorId),"VISITOR_ID").appendField(this.newQuote_(!1)),this.setOutput(!0,null)},onchange:function(){const e=this.getFieldValue("VISITOR_ID");this.VISITOR_ID!==e&&this.setFieldValue(this.VISITOR_ID,"VISITOR_ID")},newQuote_:function(e){if(e==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 external_Blockly_namespaceObject.FieldImage(t,12,12,'"')}},iot_mixly_key={init:function(){this.VISITOR_ID=external_Mixly_namespaceObject.Config.BOARD.visitorId.str32.substring(0,8).toUpperCase(),this.setColour(IOT_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldTextInput(this.visitorId),"VISITOR_ID"),this.setOutput(!0,null)},onchange:function(){const e=this.getFieldValue("VISITOR_ID");this.VISITOR_ID!==e&&this.setFieldValue(this.VISITOR_ID,"VISITOR_ID")}},iot_client_onboard={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField("MixIO").appendField(external_Blockly_namespaceObject.Msg.MSG.catEthernet_clinet),this.setOutput(!0),this.setInputsInline(!0)}},iot_http_client={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField("HTTP"+external_Blockly_namespaceObject.Msg.MIXLY_Client),this.appendValueInput("addr").appendField(external_Blockly_namespaceObject.Msg.DISPLAY_IMAGE_LET2),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_REQUESTS_GET).appendField(external_Blockly_namespaceObject.Msg.MIXLY_GET_CURRENT_TIME).appendField(external_Blockly_namespaceObject.Msg.MIXLY_OPEN_DEBUG).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},iot_http_data={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField("HTTP"+external_Blockly_namespaceObject.Msg.MIXLY_Client).appendField(external_Blockly_namespaceObject.Msg.MIXLY_GET).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_REQUESTS_LEN,"client_len"],[external_Blockly_namespaceObject.Msg.MIXLY_REQUESTS_GET_LEN,"server_len"],[external_Blockly_namespaceObject.Msg.MIXLY_REQUESTS_MESSAGE,"text"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},iot_mqtt_client={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField("MQTT"+external_Blockly_namespaceObject.Msg.MIXLY_Client),this.appendValueInput("addr").appendField(external_Blockly_namespaceObject.Msg.MIXLY_CONNECTTO),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_INIT_SUBSCRIBE).appendField(external_Blockly_namespaceObject.MQTT_Topic).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_GET_CURRENT_TIME,""]]),"key").appendField(external_Blockly_namespaceObject.Msg.MIXLY_OPEN_DEBUG).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"key2"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},iot_mqtt_data={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField("MQTT"+external_Blockly_namespaceObject.Msg.MIXLY_Client).appendField(external_Blockly_namespaceObject.Msg.MIXLY_GET).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_REQUESTS_LEN,"client_len"],[external_Blockly_namespaceObject.Msg.MIXLY_REQUESTS_GET_LEN,"server_len"],[external_Blockly_namespaceObject.Msg.MIXLY_REQUESTS_MESSAGE,"time_msg()"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},iot_onenetconnect=iot_onenet_connect,iot_onenetdisconnect=iot_onenet_disconnect,iot_checkonenet=iot_onenet_check,iot_publish=iot_onenet_publish,PINS_HUE=230,pins_digital_write={init:function(){this.setColour(PINS_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldDropdown(external_Mixly_namespaceObject.Profile.default.digital_write),"PIN"),this.setOutput(!0)}},pins_digital_read={init:function(){this.setColour(PINS_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldDropdown(external_Mixly_namespaceObject.Profile.default.digital_read),"PIN"),this.setOutput(!0)}},pins_analog_write={init:function(){this.setColour(PINS_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldDropdown(external_Mixly_namespaceObject.Profile.default.analog_write),"PIN"),this.setOutput(!0)}},pins_analog_read={init:function(){this.setColour(PINS_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldDropdown(external_Mixly_namespaceObject.Profile.default.analog_read),"PIN"),this.setOutput(!0)}},SERIAL_HUE=40,serial_open={init:function(){this.setColour(SERIAL_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldLabel(external_Blockly_namespaceObject.Msg.MIXPY_SERIAL_OPEN)).appendField(new external_Blockly_namespaceObject.FieldTextInput("ser"),"SER"),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_SERIAL_BEGIN).appendField(new external_Blockly_namespaceObject.FieldDropdown([["115200","115200"],["256000","256000"],["128000","128000"],["57600","57600"],["56000","56000"],["43000","43000"],["38400","38400"],["28800","28800"],["19200","19200"],["9600","9600"],["4800","4800"],["2400","2400"],["1200","1200"],["600","600"],["300","300"],["110","110"]]),"BPS"),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXPY_SERIAL_OPEN_TIMEOUT),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXPY_SERIAL_OPEN_TOOLTIP)}},serial_write={init:function(){this.setColour(SERIAL_HUE),this.appendValueInput("SER"),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXPY_SERIAL_WRITE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXPY_SERIAL_WRITE_TOOLTIP)}},serial_read_b={init:function(){this.setColour(SERIAL_HUE),this.appendValueInput("SER"),this.appendValueInput("VAR").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXPY_SERIAL_READ),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXPY_SERIAL_READ_TOOLTIP)}},serial_close={init:function(){this.setColour(SERIAL_HUE),this.appendValueInput("SER"),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXPY_SERIAL_CLOSE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXPY_SERIAL_CLOSE_TOOLTIP)}},SKLEARN_HUE=80,sklearn_make_classification={init:function(){this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.SKLEARN_CLASSIFICATION_GENERATION),this.appendValueInput("n_samples").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.NUMBER_OF_SAMPLES),this.appendValueInput("n_features").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.NUMBER_OF_FEATURES),this.appendValueInput("n_informative").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.NUMBER_OF_EFFECTIVE_FEATURES),this.appendValueInput("n_redundant").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.NUMBER_OF_REDUNDANT_FEATURES),this.appendValueInput("n_repeated").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.NUMBER_OF_REPEATED_FEATURES),this.appendValueInput("n_classes").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.NUMBER_OF_CLASSES),this.appendValueInput("n_clusters_per_class").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.NUMBER_OF_CLUSTERS_PER_CLASSES),this.appendValueInput("random_state").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.RANDOM_SEED),this.setInputsInline(!1),this.setOutput(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_make_regression={init:function(){this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.SKLEARN_REGRESSION_GENERATION),this.appendValueInput("n_samples").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.NUMBER_OF_SAMPLES),this.appendValueInput("n_features").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.NUMBER_OF_FEATURES),this.appendValueInput("n_informative").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.NUMBER_OF_EFFECTIVE_FEATURES),this.appendValueInput("n_targets").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.NUMBER_OF_LABELS),this.appendValueInput("bias").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.DEVIATION),this.appendValueInput("noise").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.NOISE),this.appendValueInput("random_state").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.RANDOM_SEED),this.setInputsInline(!1),this.setOutput(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_make_blobs={init:function(){this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.SKLEARN_CLUSTERING_GENERATION),this.appendValueInput("n_samples").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.NUMBER_OF_SAMPLES),this.appendValueInput("n_features").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.NUMBER_OF_FEATURES),this.appendValueInput("centers").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.NUMBER_OF_CLUSTERS),this.appendValueInput("cluster_std").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.STANDARD_DEVIATION_OF_CLUSTER),this.appendValueInput("center_box").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.CLUSTER_BOUNDING_BOX),this.appendValueInput("shuffle").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.SHUFFLE_SAMPLES),this.appendValueInput("random_state").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.RANDOM_SEED),this.setInputsInline(!1),this.setOutput(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_load={init:function(){var e=[[external_Blockly_namespaceObject.Msg.SKLEARN_LOAD_IRIS,"load_iris"],[external_Blockly_namespaceObject.Msg.SKLEARN_LOAD_BOSTON,"load_boston"],[external_Blockly_namespaceObject.Msg.SKLEARN_LOAD_DIABETES,"load_diabetes"],[external_Blockly_namespaceObject.Msg.SKLEARN_LOAD_BREAST_CANCER,"load_breast_cancer"],[external_Blockly_namespaceObject.Msg.SKLEARN_LOAD_LINNERUD,"load_linnerud"],[external_Blockly_namespaceObject.Msg.SKLEARN_LOAD_DIGITS,"load_digits"]];this.appendDummyInput().appendField("sklearn "+external_Blockly_namespaceObject.Msg.LOAD).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"type").appendField(new external_Blockly_namespaceObject.FieldTextInput("iris"),"name"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")},getVars:function(){return[this.getFieldValue("name")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("name"))&&this.setTitleValue(t,"name")}},sklearn_data_target={init:function(){this.appendValueInput("name").setCheck(null).appendField("sklearn "+external_Blockly_namespaceObject.Msg.DATA_SET),this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MIXLY_GET).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.EIGENVALUES,"data"],[external_Blockly_namespaceObject.Msg.LABEL_VALUE,"target"],[external_Blockly_namespaceObject.Msg.FEATURE,"feature_names"],[external_Blockly_namespaceObject.Msg.mixpy_PYLAB_TICKS_TAG,"target_names"]]),"type"),this.setOutput(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_train_test_split={init:function(){this.appendDummyInput().appendField("sklearn "+external_Blockly_namespaceObject.Msg.DATA_SEGMENTATION),this.appendValueInput("train_data").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.EIGENVALUES),this.appendValueInput("train_target").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.LABEL_VALUE),this.appendValueInput("test_size").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.TEST_SET_PROPORTION),this.appendValueInput("rondom_state").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.RANDOM_SEED),this.setInputsInline(!1),this.setOutput(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_train_test_split_no_target={init:function(){this.appendDummyInput().appendField("sklearn "+external_Blockly_namespaceObject.Msg.DATA_SEGMENTATION),this.appendValueInput("train_data").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.EIGENVALUES),this.appendValueInput("test_size").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.TEST_SET_PROPORTION),this.appendValueInput("rondom_state").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.RANDOM_SEED),this.setInputsInline(!1),this.setOutput(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_LinearRegression={init:function(){this.appendDummyInput().appendField("sklearn "+external_Blockly_namespaceObject.Msg.SKLEARN_LINEARREGRESSION_INIT),this.appendValueInput("model_name").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MODEL_NAME),this.appendValueInput("fit_intercept").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.SKLEARN_CALCULATE_MODEL_INTERRUPT),this.appendValueInput("normalize").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.SKLEARN_REGRESSION_NORMIALIZATION),this.appendValueInput("n_jobs").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.SKLEARN_THREADS),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_Ridge={init:function(){this.appendDummyInput().appendField("sklearn "+external_Blockly_namespaceObject.Msg.SKLEARN_RIDGE_INIT),this.appendValueInput("model_name").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MODEL_NAME),this.appendValueInput("alpha").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.SKLEARN_REGULA_INTENSITY),this.appendValueInput("fit_intercept").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.SKLEARN_CALCULATE_MODEL_INTERRUPT),this.appendValueInput("normalize").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.SKLEARN_REGRESSION_NORMIALIZATION),this.appendValueInput("max_iter").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.SKLEARN_MAX_ITER),this.appendValueInput("random_state").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.RANDOM_SEED),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_DecisionTreeClassifier_Regressor={init:function(){this.appendDummyInput().appendField("sklearn "+external_Blockly_namespaceObject.Msg.SKLEARN_DECISIONTREE_INIT).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.SKLEARN_CLASSIFICATION_ALGORITHM,"DecisionTreeClassifier"],[external_Blockly_namespaceObject.Msg.SKLEARN_REGRESSION_ALGORITHM,"DecisionTreeRegressor"]]),"type"),this.appendValueInput("model_name").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MODEL_NAME),this.appendValueInput("max_depth").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.SKLEARN_MAXIMUM_TREE_DEPTH),this.appendValueInput("random_state").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.RANDOM_SEED),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_RandomForestClassifier_Regressor={init:function(){this.appendDummyInput().appendField("sklearn "+external_Blockly_namespaceObject.Msg.SKLEARN_RANDOMFOREST_INIT).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.SKLEARN_CLASSIFICATION_ALGORITHM,"RandomForestClassifier"],[external_Blockly_namespaceObject.Msg.SKLEARN_REGRESSION_ALGORITHM,"RandomForestRegressor"]]),"type"),this.appendValueInput("model_name").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MODEL_NAME),this.appendValueInput("n_estimators").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.NUMBER_OF_TREES),this.appendValueInput("max_depth").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.SKLEARN_MAXIMUM_TREE_DEPTH),this.appendValueInput("n_jobs").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.SKLEARN_THREADS),this.appendValueInput("random_state").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.RANDOM_SEED),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_KNeighborsClassifier_Regressor={init:function(){this.appendDummyInput().appendField("sklearn "+external_Blockly_namespaceObject.Msg.SKLEARN_KNN_INIT).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.SKLEARN_CLASSIFICATION_ALGORITHM,"KNeighborsClassifier"],[external_Blockly_namespaceObject.Msg.SKLEARN_REGRESSION_ALGORITHM,"KNeighborsRegressor"]]),"type"),this.appendValueInput("model_name").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MODEL_NAME),this.appendValueInput("K").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField("K"),this.appendValueInput("n_jobs").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.SKLEARN_THREADS),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_GaussianNB={init:function(){this.appendDummyInput().appendField("sklearn "+external_Blockly_namespaceObject.Msg.SKLEARN_GAUSSINNB_INIT),this.appendValueInput("model_name").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MODEL_NAME),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_KMeans={init:function(){this.appendDummyInput().appendField("sklearn "+external_Blockly_namespaceObject.Msg.SKLEARN_KMEANS_INIT),this.appendValueInput("model_name").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MODEL_NAME),this.appendValueInput("n_clusters").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.NUMBER_OF_CLUSTERS_JUST),this.appendValueInput("max_iter").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.SKLEARN_MAX_ITER),this.appendValueInput("random_state").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.RANDOM_SEED),this.appendValueInput("n_jobs").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.SKLEARN_THREADS),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_fit={init:function(){this.appendDummyInput().appendField("sklearn "+external_Blockly_namespaceObject.Msg.TRAINING_MODEL),this.appendValueInput("model_name").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MODEL_NAME),this.appendValueInput("train_data").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.EIGENVALUES),this.appendValueInput("train_target").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.LABEL_VALUE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_fit_no_target={init:function(){this.appendDummyInput().appendField("sklearn "+external_Blockly_namespaceObject.Msg.TRAINING_MODEL),this.appendValueInput("model_name").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MODEL_NAME),this.appendValueInput("train_data").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.EIGENVALUES),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_predict={init:function(){this.appendDummyInput().appendField("sklearn "+external_Blockly_namespaceObject.Msg.MODEL_PRODICTION),this.appendValueInput("model_name").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MODEL_NAME),this.appendValueInput("train_data").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.EIGENVALUES),this.setInputsInline(!0),this.setOutput(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_score={init:function(){this.appendDummyInput().appendField("sklearn "+external_Blockly_namespaceObject.Msg.CALCULATE_THE_SCORE),this.appendValueInput("model_name").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MODEL_NAME),this.appendValueInput("train_data").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.EIGENVALUES),this.appendValueInput("train_target").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.LABEL_VALUE),this.setInputsInline(!0),this.setOutput(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_score_no_target={init:function(){this.appendDummyInput().appendField("sklearn "+external_Blockly_namespaceObject.Msg.CALCULATE_THE_SCORE),this.appendValueInput("model_name").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MODEL_NAME),this.appendValueInput("train_data").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.EIGENVALUES),this.setInputsInline(!0),this.setOutput(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_coef_intercept={init:function(){this.appendDummyInput().appendField("sklearn "+external_Blockly_namespaceObject.Msg.SKLEARN_GENERALIZED_LINEAR_REGRESSION),this.appendValueInput("model_name").setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).setCheck(null).appendField(external_Blockly_namespaceObject.Msg.MODEL_NAME),this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MIXLY_GET).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.SKLEARN_COEF,"coef_"],[external_Blockly_namespaceObject.Msg.SKLEARN_INTERCEPT,"intercept_"]]),"type"),this.setOutput(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_cluster_centers_labels_inertia={init:function(){this.appendDummyInput().appendField("sklearn "+external_Blockly_namespaceObject.Msg.SKLEARN_CLUSTERING),this.appendValueInput("model_name").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MODEL_NAME),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_GET).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.SKLEARN_CLUSTER_CENTER,"cluster_centers_"],[external_Blockly_namespaceObject.Msg.SKLEARN_LABELS_AFTER_CLUSTERING,"labels_"],[external_Blockly_namespaceObject.Msg.SKLEARN_CLUSTERING_SUM_OF_SQUARED_DISTANCES,"inertia_"]]),"type"),this.setInputsInline(!0),this.setOutput(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_save_load_model={init:function(){this.appendValueInput("model_name").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField("sklearn").appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.SKLEARN_SAVE_MODEL,"dump"],[external_Blockly_namespaceObject.Msg.SKLEARN_LOAD_MODEL,"load"]]),"type").appendField(" "+external_Blockly_namespaceObject.Msg.MODEL_NAME),this.appendValueInput("address").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},SYSTEM_HUE=120,base_delay={init:function(){this.setColour(SYSTEM_HUE),this.appendValueInput("DELAY_TIME",Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_DELAY+"("+external_Blockly_namespaceObject.Msg.MIXLY_MILLIS+")").setCheck(Number),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_CONTROL_DELAY)}},system_controls_millis={init:function(){this.setColour(SYSTEM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_time_time),this.setOutput(!0,Number),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_CONTROL_MILLIS)}},time_localtime={init:function(){this.setColour(SYSTEM_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_SYSTEM_TIME_LOCALTIME),this.appendDummyInput().appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_SYSTEM_TIME_LOCALTIME_ALL,"all"],[external_Blockly_namespaceObject.Msg.MIXLY_SYSTEM_TIME_LOCALTIME_YEAR,"0"],[external_Blockly_namespaceObject.Msg.MIXLY_SYSTEM_TIME_LOCALTIME_MONTH,"1"],[external_Blockly_namespaceObject.Msg.MIXLY_SYSTEM_TIME_LOCALTIME_DATE,"2"],[external_Blockly_namespaceObject.Msg.MIXLY_SYSTEM_TIME_LOCALTIME_HOUR,"3"],[external_Blockly_namespaceObject.Msg.MIXLY_SYSTEM_TIME_LOCALTIME_MINUTE,"4"],[external_Blockly_namespaceObject.Msg.MIXLY_SYSTEM_TIME_LOCALTIME_SECOND,"5"],[external_Blockly_namespaceObject.Msg.MIXLY_SYSTEM_TIME_LOCALTIME_INWEEK,"6"],[external_Blockly_namespaceObject.Msg.MIXLY_SYSTEM_TIME_LOCALTIME_INYEAR,"7"],[external_Blockly_namespaceObject.Msg.MIXLY_SYSTEM_TIME_LOCALTIME_DST,"8"]]),"op"),this.setOutput(!0),this.setInputsInline(!0)}},system_Panic_with_status_code={init:function(){this.setColour(SYSTEM_HUE),this.appendValueInput("STATUS_CODE",Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_Panic_with_status_code).setCheck(Number),this.setPreviousStatement(!0,null),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_CONTROL_DELAY)}},system_reset={init:function(){this.setColour(SYSTEM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_Reset_micro),this.setPreviousStatement(!0)}},controls_mstimer2={init:function(){this.setColour(SYSTEM_HUE),this.appendValueInput("TIME").setCheck(Number).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField("MsTimer2").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MSTIMER2_EVERY),this.appendDummyInput().appendField("ms"),this.appendStatementInput("DO").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MSTIMER2_DO),this.setPreviousStatement(!0),this.setNextStatement(!0)}},controls_mstimer2_start={init:function(){this.setColour(SYSTEM_HUE),this.appendDummyInput().appendField("MsTimer2").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MSTIMER2_START),this.setPreviousStatement(!0),this.setNextStatement(!0)}},controls_mstimer2_stop={init:function(){this.setColour(SYSTEM_HUE),this.appendDummyInput().appendField("MsTimer2").appendField(external_Blockly_namespaceObject.Msg.MIXLY_STOP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},system_time_sleep={init:function(){this.setColour(SYSTEM_HUE),this.appendValueInput("DELAY_TIME",Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_DELAY).setCheck(Number),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_SECOND),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_CONTROL_DELAY)}},TURTLE_HUE=180,turtle_create={init:function(){this.setColour(TURTLE_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_create).appendField(new external_Blockly_namespaceObject.FieldTextInput("tina"),"VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.blockpy_turtle_create_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},turtle_done={init:function(){this.setColour(TURTLE_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_TURTLE_DONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_exitonclick={init:function(){this.setColour(TURTLE_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_TURTLE_EXITONCLICK),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_move={init:function(){this.appendValueInput("TUR").setCheck("Turtle");var e=[[external_Blockly_namespaceObject.Msg.blockpy_forward,"forward"],[external_Blockly_namespaceObject.Msg.blockpy_backward,"backward"]];this.setColour(TURTLE_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_JS_MOVE_BY).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_JS_MOVE_BY_num),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{forward:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_FORWARD,backward:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_BACKWARD}[e]}))}},turtle_rotate={init:function(){this.appendValueInput("TUR").setCheck("Turtle");var e=[[external_Blockly_namespaceObject.Msg.blockpy_left,"left"],[external_Blockly_namespaceObject.Msg.blockpy_right,"right"]];this.setColour(TURTLE_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_rotate).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{left:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_LEFT,right:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_RIGHT}[e]}))}},turtle_setheading={init:function(){this.setColour(TURTLE_HUE),this.appendValueInput("TUR").setCheck("Turtle"),this.appendValueInput("data").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.blockpy_setheading),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_setheading_degree),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_screen_delay={init:function(){this.setColour(TURTLE_HUE),this.appendValueInput("TUR").setCheck("Turtle"),this.appendValueInput("data").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_SCREEN_DELAY),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MILLIS),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_SCREEN_DELAY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_goto={init:function(){this.setColour(TURTLE_HUE),this.appendValueInput("TUR").setCheck("Turtle"),this.appendValueInput("data").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_goto),this.appendValueInput("val").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_goto_y),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_goto_position),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_setxy={init:function(){this.appendValueInput("TUR").setCheck("Turtle");var e=[[external_Blockly_namespaceObject.Msg.PYLAB_LABEL_X,"x"],[external_Blockly_namespaceObject.Msg.PYLAB_LABEL_Y,"y"]];this.setColour(TURTLE_HUE),this.appendValueInput("VAR").appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TURTLE_SETXY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TURTLE_SETXY_TOOLTIP)}},turtle_pos_shape={init:function(){this.setColour(TURTLE_HUE);var e=[[external_Blockly_namespaceObject.Msg.TURTLE_POS,"pos"],[external_Blockly_namespaceObject.Msg.TURTLE_SHAPE,"shape"],[external_Blockly_namespaceObject.Msg.TURTLE_HEADING,"heading"],[external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TURTLE_WIDTH,"width"],[external_Blockly_namespaceObject.Msg.MIXLY_TURTEL_GET_SHAPESIZE,"shapesize"],[external_Blockly_namespaceObject.Msg.MIXLY_SPEED,"speed"]];this.appendValueInput("TUR").setCheck("Turtle"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.TURTLE_POS_SHAPE).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR");var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{pos:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_POS,shape:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_SHAPE,heading:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_HEADING,width:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_WIDTH,speed:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_GET_SPEED,shapesize:external_Blockly_namespaceObject.Msg.MIXLY_TURTEL_GET_SHAPESIZE_TOOLTIP}[e]})),this.setOutput(!0),this.setInputsInline(!0)}},turtle_clear={init:function(){this.appendValueInput("TUR").setCheck("Turtle");var e=[[external_Blockly_namespaceObject.Msg.MIXLY_LCD_STAT_CLEAR,"clear"],[external_Blockly_namespaceObject.Msg.blockpy_turtle_reset,"reset"],[external_Blockly_namespaceObject.Msg.blockpy_turtle_home,"home"]];this.setColour(TURTLE_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{clear:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_CLEAR,reset:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_RESET,home:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_HOME}[e]}))}},turtle_penup={init:function(){this.appendValueInput("TUR").setCheck("Turtle");var e=[[external_Blockly_namespaceObject.Msg.blockpy_turtle_penup,"penup"],[external_Blockly_namespaceObject.Msg.blockpy_turtle_pendown,"pendown"]];this.setColour(TURTLE_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{penup:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_PENUP,pendown:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_PENDOWN}[e]}))}},turtle_fill={init:function(){this.appendValueInput("TUR").setCheck("Turtle");var e=[[external_Blockly_namespaceObject.Msg.blockpy_turtle_beginfill,"begin"],[external_Blockly_namespaceObject.Msg.blockpy_turtle_endfill,"end"]];this.setColour(TURTLE_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{begin:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_BEGINFILL,end:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_ENDFILL}[e]}))}},turtle_size_speed={init:function(){this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldTextInput("tina"),"TUR");var e=[[external_Blockly_namespaceObject.Msg.blockpy_turtle_size,"pensize"],[external_Blockly_namespaceObject.Msg.MIXLY_SPEED,"speed"]];this.setColour(TURTLE_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_set).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR").appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_set_num),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{pensize:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_SIZE,speed:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_SPEED}[e]}))}},turtle_size={init:function(){this.setColour(TURTLE_HUE),this.appendValueInput("TUR").setCheck("Turtle"),this.appendValueInput("data").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_set_size),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_SIZE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_speed={init:function(){this.setColour(TURTLE_HUE),this.appendValueInput("TUR").setCheck("Turtle"),this.appendValueInput("data").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_set_speed),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_SPEED),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_circle={init:function(){this.appendValueInput("TUR").setCheck("Turtle");var e=[[external_Blockly_namespaceObject.Msg.blockpy_turtle_circle,"circle"],[external_Blockly_namespaceObject.Msg.blockpy_turtle_dot,"dot"]];this.setColour(TURTLE_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_draw).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR").appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_radius),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{circle:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_CIRCLE,dot:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_DOT}[e]}))}},turtle_circle_advanced={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(TURTLE_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TURTLE_DRAW_CIRCLE).appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_radius),this.appendValueInput("data").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_angle),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_CIRCLE)}},turtle_visible={init:function(){this.appendValueInput("TUR").setCheck("Turtle");var e=[[external_Blockly_namespaceObject.Msg.blockpy_turtle_hide,"hideturtle"],[external_Blockly_namespaceObject.Msg.blockpy_turtle_show,"showturtle"]];this.setColour(TURTLE_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{hideturtle:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_HIDE,showturtle:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_SHOW}[e]}))}},turtle_bgcolor={init:function(){this.setColour(TURTLE_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_bgcolor).appendField(new external_Blockly_namespaceObject.FieldColour("#ff0000"),"FIELDNAME"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_pencolor={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(TURTLE_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_pencolor).appendField(new external_Blockly_namespaceObject.FieldColour("#ff0000"),"FIELDNAME"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_fillcolor={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(TURTLE_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_fillcolor).appendField(new external_Blockly_namespaceObject.FieldColour("#ff0000"),"FIELDNAME"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_clone={init:function(){this.setColour(TURTLE_HUE),this.appendValueInput("TUR").setCheck("Turtle"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.TURTLE_CLONE),this.setTooltip(external_Blockly_namespaceObject.Msg.TURTLE_CLONE_TOOLTIP),this.setOutput(!0)}},turtle_bgcolor_hex_new={init:function(){this.setColour(TURTLE_HUE),this.appendValueInput("VAR").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_bgcolor),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_pencolor_hex_new={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(TURTLE_HUE),this.appendValueInput("VAR").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_pencolor),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_fillcolor_hex_new={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(TURTLE_HUE),this.appendValueInput("VAR").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_fillcolor),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_color={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(TURTLE_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_pencolor).appendField(new external_Blockly_namespaceObject.FieldColour("#ff0000"),"FIELDNAME"),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_fillcolor).appendField(new external_Blockly_namespaceObject.FieldColour("#ff0000"),"FIELDNAME2"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_color_hex={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(TURTLE_HUE),this.appendValueInput("VAR1").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_pencolor),this.appendValueInput("VAR2").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_fillcolor),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_bgcolor_hex={init:function(){this.setColour(TURTLE_HUE),this.appendValueInput("VAR").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_bgcolor_hex),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_pencolor_hex={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(TURTLE_HUE),this.appendValueInput("VAR").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_pencolor_hex),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_fillcolor_hex={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(TURTLE_HUE),this.appendValueInput("VAR").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_fillcolor_hex),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_shape={init:function(){this.appendValueInput("TUR").setCheck("Turtle");var e=[[external_Blockly_namespaceObject.Msg.blockpy_turtle_shape_arrow,"arrow"],[external_Blockly_namespaceObject.Msg.blockpy_turtle_shape_turtle,"turtle"],[external_Blockly_namespaceObject.Msg.blockpy_turtle_shape_circle,"circle"],[external_Blockly_namespaceObject.Msg.blockpy_turtle_shape_square,"square"],[external_Blockly_namespaceObject.Msg.blockpy_turtle_shape_triangle,"triangle"],[external_Blockly_namespaceObject.Msg.blockpy_turtle_shape_classic,"classic"]];this.setColour(TURTLE_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_shape).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.TURTLE_SHAPE_TOOLTIP)}},turtle_shapesize={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(TURTLE_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTEL_SHAPESIZE),this.appendValueInput("WID").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTEL_SHAPESIZE_WID),this.appendValueInput("LEN").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTEL_SHAPESIZE_LEN),this.appendValueInput("OUTLINE").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTEL_SHAPESIZE_OUTLINE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_SHAPESIZE)}},turtle_numinput={init:function(){this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TURTLE_NUMINPUT),this.setColour(TURTLE_HUE),this.appendValueInput("TITLE").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TURTLE_TEXTINPUT_TITLE),this.appendValueInput("PROMPT").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TURTLE_TEXTINPUT_PROMPT),this.appendValueInput("DEFAULT").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.DICTS_DEFAULT_VALUE),this.appendValueInput("MIN").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MATH_ONLIST_OPERATOR_MIN),this.appendValueInput("MAX").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MATH_ONLIST_OPERATOR_MAX),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(external_Blockly_namespaceObject.Msg.TURTLE_NUMINPUT_TOOLTIP)}},turtle_textinput={init:function(){this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TURTLE_TEXTINPUT),this.setColour(TURTLE_HUE),this.appendValueInput("TITLE").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TURTLE_TEXTINPUT_TITLE),this.appendValueInput("PROMPT").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TURTLE_TEXTINPUT_PROMPT),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(external_Blockly_namespaceObject.Msg.TURTLE_TEXTINPUT_TOOLTIP)}},turtle_write={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(TURTLE_HUE),this.appendValueInput("VAR").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_write),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.TURTLE_WRITE_TOOLTIP)}},turtle_write_format={init:function(){var e=[[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"],[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"]],t=[[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_ALIGN_LEFT,"left"],[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_ALIGN_CENTER,"center"],[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_ALIGN_RIGHT,"right"]],n=[[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_FONT_TYPE_NORMAL,"normal"],[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_FONT_TYPE_BOLD,"bold"],[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_FONT_TYPE_ITALIC,"italic"],[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_FONT_TYPE_BOLD_ITALIC,'bold","italic']];this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(TURTLE_HUE),this.appendValueInput("VAR").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_write),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_MOVE).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"MOVE"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_ALIGN).appendField(new external_Blockly_namespaceObject.FieldDropdown(t),"ALIGN"),this.appendValueInput("FONTNAME").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_FONT_NAME),this.appendValueInput("FONTNUM").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_FONT_TYPE).appendField(new external_Blockly_namespaceObject.FieldDropdown(n),"FONTTYPE"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.TURTLE_WRITE_TOOLTIP)}},turtle_write_format_skulpt={init:function(){var e=[[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"],[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"]],t=[[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_ALIGN_LEFT,"left"],[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_ALIGN_CENTER,"center"],[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_ALIGN_RIGHT,"right"]],n=[[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_FONT_TYPE_NORMAL,"normal"],[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_FONT_TYPE_BOLD,"bold"],[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_FONT_TYPE_ITALIC,"italic"]];this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(TURTLE_HUE),this.appendValueInput("VAR").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_write),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_MOVE).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"MOVE"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_ALIGN).appendField(new external_Blockly_namespaceObject.FieldDropdown(t),"ALIGN"),this.appendValueInput("FONTNAME").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_FONT_NAME),this.appendValueInput("FONTNUM").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_FONT_TYPE).appendField(new external_Blockly_namespaceObject.FieldDropdown(n),"FONTTYPE"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.TURTLE_WRITE_TOOLTIP)}},turtle_color_seclet={init:function(){this.setColour(TURTLE_HUE),this.appendDummyInput("").setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(new external_Blockly_namespaceObject.FieldColour("ff0000"),"COLOR"),this.setInputsInline(!0),this.setOutput(!0,String)}},turtle_getscreen={init:function(){this.setColour(TURTLE_HUE),this.appendValueInput("TUR").setCheck("Turtle"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTEL_GETSCREEN).appendField(new external_Blockly_namespaceObject.FieldTextInput("screen"),"VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TURTEL_GETSCREEN_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},turtle_onkey={init:function(){this.setColour(TURTLE_HUE),this.appendValueInput("TUR"),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTEL_EVENT_ONKEY),this.appendValueInput("callback").appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_CONTROLS_THREAD_USE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TURTEL_EVENT_ONKEY_TOOLTIP)}},turtle_onclick={init:function(){this.setColour(TURTLE_HUE),this.appendValueInput("TUR"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTEL_EVENT_ONCLICK),this.appendValueInput("callback").appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_CONTROLS_THREAD_USE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TURTEL_EVENT_ONCLICK_TOOLTIP)}},turtle_ontimer={init:function(){this.setColour(TURTLE_HUE),this.appendValueInput("TUR"),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTEL_EVENT_ONTIMER),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_mSecond),this.appendValueInput("callback").appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_CONTROLS_THREAD_USE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TURTEL_EVENT_ONTIMER_TOOLTIP)}},turtle_listen={init:function(){this.setColour(TURTLE_HUE),this.appendValueInput("TUR"),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTEL_SCREEN_LISTEN),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_screen_savefig={init:function(){this.setColour(TURTLE_HUE),this.appendValueInput("TUR"),this.appendValueInput("FILE").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.mixpy_PL_SAVEFIG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(external_Blockly_namespaceObject.Msg.mixpy_TURTLE_SAVEFIG_TOOLTIP)}},ai_AI_ChooseAndGet=function(e,t){var n=this.getFieldValue("TYPE");return t.definitions_.import_FileDialog="import FileDialog",["FileDialog."+n+"()",t.ORDER_ATOMIC]},ai_AI_client=function(e,t){var n=this.getFieldValue("CTYPE");return t.definitions_.import_aip="import aip",t.valueToCode(this,"SUB",t.ORDER_ATOMIC)+" = aip."+n+"("+t.valueToCode(this,"API_KEY",t.ORDER_ATOMIC)+", "+t.valueToCode(this,"SECRET_KEY",t.ORDER_ATOMIC)+")\n"},ai_AI_Speech_synthesis=function(e,t){return t.definitions_.import_aip="import aip",[t.valueToCode(this,"SUB",t.ORDER_ATOMIC)+".synthesis("+t.valueToCode(this,"STR",t.ORDER_ATOMIC)+", options="+(t.valueToCode(this,"ATTR",t.ORDER_ATOMIC)||"{}")+")",t.ORDER_ATOMIC]},ai_AI_Speech_asr=function(e,t){return t.definitions_.import_aip="import aip",[t.valueToCode(this,"SUB",t.ORDER_ATOMIC)+".asr("+(t.valueToCode(this,"FILE",t.ORDER_ATOMIC)||'""')+", options="+(t.valueToCode(this,"ATTR",t.ORDER_ATOMIC)||"{}")+")",t.ORDER_ATOMIC]},ai_AI_ImageClassify=function(e,t){t.definitions_.import_aip="import aip";var n=t.valueToCode(this,"SUB",t.ORDER_ATOMIC),a=t.valueToCode(this,"ADDR",t.ORDER_ATOMIC);return[n+"."+t.valueToCode(this,"FUNC",t.ORDER_ATOMIC)+"("+a+", options="+(t.valueToCode(this,"ATTR",t.ORDER_ATOMIC)||"{}")+")",t.ORDER_ATOMIC]},ai_AI_Face_match=function(e,t){return t.definitions_.import_aip="import aip",[t.valueToCode(this,"SUB",t.ORDER_ATOMIC)+".match("+t.valueToCode(this,"VAR",t.ORDER_ATOMIC)+","+t.valueToCode(this,"VAR2",t.ORDER_ATOMIC)+", options="+(t.valueToCode(this,"ATTR",t.ORDER_ATOMIC)||"{}")+")",t.ORDER_ATOMIC]},ai_AI_Ocr=function(e,t){t.definitions_.import_aip="import aip";var n=t.valueToCode(this,"SUB",t.ORDER_ATOMIC),a=t.valueToCode(this,"ADDR",t.ORDER_ATOMIC);return[n+"."+t.valueToCode(this,"FUNC",t.ORDER_ATOMIC)+"("+a+", options="+(t.valueToCode(this,"ATTR",t.ORDER_ATOMIC)||"{}")+")",t.ORDER_ATOMIC]},ai_AI_Nlp=function(e,t){t.definitions_.import_aip="import aip";var n=t.valueToCode(this,"SUB",t.ORDER_ATOMIC),a=t.valueToCode(this,"STR",t.ORDER_ATOMIC);return[n+"."+t.valueToCode(this,"FUNC",t.ORDER_ATOMIC)+"("+a+", options="+(t.valueToCode(this,"ATTR",t.ORDER_ATOMIC)||"{}")+")",t.ORDER_ATOMIC]},ai_AI_Nlp_Sim=function(e,t){t.definitions_.import_aip="import aip";var n=t.valueToCode(this,"SUB",t.ORDER_ATOMIC),a=t.valueToCode(this,"STR1",t.ORDER_ATOMIC),_=t.valueToCode(this,"STR2",t.ORDER_ATOMIC);return[n+"."+t.valueToCode(this,"FUNC",t.ORDER_ATOMIC)+"("+a+","+_+", options="+(t.valueToCode(this,"ATTR",t.ORDER_ATOMIC)||"{}")+")",t.ORDER_ATOMIC]},ai_AI_Nlp_Topic=function(e,t){return t.definitions_.import_aip="import aip",[t.valueToCode(this,"SUB",t.ORDER_ATOMIC)+".topic("+t.valueToCode(this,"STR1",t.ORDER_ATOMIC)+","+t.valueToCode(this,"STR2",t.ORDER_ATOMIC)+")",t.ORDER_ATOMIC]},ai_AI_Nlp_newsSummary=function(e,t){return t.definitions_.import_aip="import aip",[t.valueToCode(this,"SUB",t.ORDER_ATOMIC)+".newsSummary("+t.valueToCode(this,"STR",t.ORDER_ATOMIC)+","+t.valueToCode(this,"LEN",t.ORDER_ATOMIC)+", options="+(t.valueToCode(this,"ATTR",t.ORDER_ATOMIC)||"{}")+")",t.ORDER_ATOMIC]},ai_AI_ImageClassify_Func=function(e,t){return[this.getFieldValue("TYPE"),t.ORDER_ATOMIC]},ai_AI_Ocr_Func=function(e,t){return[this.getFieldValue("TYPE"),t.ORDER_ATOMIC]},ai_AI_Nlp_Func=function(e,t){return[this.getFieldValue("TYPE"),t.ORDER_ATOMIC]},ai_AI_Nlp_Func_sim=function(e,t){return[this.getFieldValue("TYPE"),t.ORDER_ATOMIC]},ai_AI_audio=function(e,t){return t.definitions_.import_audio="import audio","audio.audio_record("+(t.valueToCode(this,"VAR",t.ORDER_ATOMIC)||'""')+","+(t.valueToCode(this,"TIME",t.ORDER_ATOMIC)||"0")+")\n"},ai_AI_photo=function(e,t){return t.definitions_.import_audio="import cam","cam.photo_capture("+(t.valueToCode(this,"VAR",t.ORDER_ATOMIC)||'""')+","+(t.valueToCode(this,"BUT",t.ORDER_ATOMIC)||'""')+")\n"},ai_AI_result=function(e,t){var n=t.valueToCode(this,"AI",t.ORDER_ASSIGNMENT)||"0",a=this.getFieldValue("CTYPE");if("Image"==a)var _=n+'["result"][0]["keyword"]';if("Speech"==a)_=n+'["result"][0]';if("Face"==a||"OcrSimilarity"==a)_=n+'["score"]';if("Ocr"==a)_=n+'["words_result"]';return[_,t.ORDER_ATOMIC]},algorithm_algorithm_prepare=function(e,t){t.definitions_.import_sprite="import sprite";return"g = [[0,0,0,0,0,0,0,0,0,0], [0,0,0,1,0,0,0,0,0,0], [0,0,0,1,0,0,1,0,0,0], [0,1,1,0,1,1,0,0,0,0], [0,0,0,1,0,0,0,1,0,0], [0,0,0,1,0,0,1,1,0,0], [0,0,1,0,0,1,0,1,0,0], [0,0,0,0,1,1,1,0,0,0]]\nmark = [[0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0]]\nvis = [0,1,0,0,0,0,0,0,0]\nposition = [[0, 0], [200, 200], [250, 60], [320, 200], [280, 380], [470, 250], [670, 90], [650, 340]]\nsprite.clearAllSprites()\nsprite.createBackground('map_xuexiao')\n\nhouse = [ sprite.Sprite('mark', 150, 380),\n sprite.Sprite('School', 115, 195),\n sprite.Sprite('House25', 264, 67),\n sprite.Sprite('House36', 320, 200),\n sprite.Sprite('House47', 290, 371),\n sprite.Sprite('House25', 479, 233),\n sprite.Sprite('House36', 674, 96),\n sprite.Sprite('House47', 642, 318)\n]\nfor i in house:\n i.hide()\n"},algorithm_algorithm_add_school=function(){return"path = [1]\ncar = sprite.Sprite('car', position[1][0], position[1][1])\nhouse[1].show()\ncar.nowPos = 1\ndef drive(n):\n if g[car.nowPos][n]==1:\n car.slideTo(position[n][0], position[n][1], 1)\n car.nowPos = n\n else:\n print('移动失败!程序有误!')\n exit()\n"},algorithm_algorithm_find_path=function(e,t){t.definitions_.import_random="import random";return"f = path[(len(path) - 1)]\nflag = 0\nfor _my_variable in [6,5,4,3,2,1,0]:\n if vis[_my_variable+1] == 0 and g[f][_my_variable+1] == 1:\n if mark[f][_my_variable+1] == 0:\n flag = 1\n break\n"},algorithm_algorithm_new_path=function(e,t){return["flag == 1",t.ORDER_ATOMIC]},algorithm_algorithm_set_path=function(){return"mark[f][_my_variable+1] = 1\nvis[_my_variable+1] = 1\n"},algorithm_algorithm_add_path=function(){return"path.append(_my_variable+1)\ndrive(path[len(path) - 1])\nhouse[_my_variable+1].show()\n"},algorithm_algorithm_del_path=function(e,t){t.definitions_.import_time="import time";return"del path[len(path) - 1]\nhouse[0].show()\ntime.sleep(0.5)\nhouse[0].hide()\n"},algorithm_algorithm_return_path=function(){var e="for i in range(7):\n mark[f][i+1] = 0\n vis[f] = 0\n";return e="house[f].hide()\ndrive(path[len(path) - 1])\n"+e},algorithm_algorithm_no_left=function(e,t){return["len(path) == 7",t.ORDER_ATOMIC]},algorithm_algorithm_print_path=function(){return'name = ["","学校","小智家","小欣家","小思家","小科家","贝贝家","乐乐家"]\nres = ""\nfor i in path:\n res = res + name[i] + "-"\nprint(res[:-1])\n'},algorithm_algorithm_prepare2=function(e,t){t.definitions_.import_sprite="import sprite";return"g = [[0,0,0,0,0,0,0,0,0,0], [0,0,0,1,0,0,0,0,0,0], [0,0,0,1,0,0,1,0,0,0], [0,1,1,0,1,0,0,0,0,0], [0,0,0,1,0,0,0,1,0,0], [0,0,0,1,0,0,0,1,0,0], [0,0,1,0,0,0,0,1,0,0], [0,0,0,0,1,1,1,0,0,0]]\nmark = [[0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0]]\nvis = [0,1,0,0,0,0,0,0,0]\nposition = [[0, 0], [200, 200], [250, 60], [320, 200], [280, 380], [470, 250], [670, 90], [650, 340]]\nsprite.clearAllSprites()\nsprite.createBackground('map_xuexiao')\n\nhouse = [ sprite.Sprite('mark', 150, 380),\n sprite.Sprite('School', 115, 195),\n sprite.Sprite('House25', 264, 67),\n sprite.Sprite('House36', 320, 200),\n sprite.Sprite('House47', 290, 371),\n sprite.Sprite('House25', 479, 233),\n sprite.Sprite('House36', 674, 96),\n sprite.Sprite('House47', 642, 318)\n]\nbarricade = sprite.Sprite('barricade', 570, 170)\nbarricade.enlargeTo(100)\nfor i in house:\n i.hide()\n"},algorithm_algorithm_current_school=function(e,t){return["f == 1",t.ORDER_ATOMIC]},algorithm_algorithm_no_path=function(){return"print('没有符合条件的路线')\n"},algorithm_algorithm_prepare_2_1=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";return'g = [[10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000],[10000,10000,500,300,10000,10000,10000,10000,10000,10000,10000],[10000,500,10000,10000,100,10000,10000,10000,10000,10000,10000],[10000,300,10000,10000,400,300,10000,10000,10000,10000,10000],[10000,10000,100,400,10000,10000,200,10000,10000,10000,10000],[10000,10000,10000,300,10000,10000,100,200,10000,10000,10000],[10000,10000,10000,10000,200,100,10000,10000,100,10000,10000],[10000,10000,10000,10000,10000,200,10000,10000,100,10000,10000],[10000,10000,10000,10000,10000,10000,100,100,10000,10000,10000]]\nnow=1\nlast=1\npath=[]\npath.append(1)\nname = ["","小思家","银行","邮局","餐厅","书店","医院","超市","小科家"]\nposition = [[0, 0], [60, 320], [510, 390], [240, 200], [750, 330], [410, 90], [540, 190], [550, 30], [720, 120]]\nsprite.clearAllSprites()\nsprite.createBackground(\'map_si_ke\')\nstu = sprite.Sprite(\'girl\', 60, 320)\nstu.enlargeTo(100)\ntime.sleep(1)\n\n'},algorithm_algorithm_prepare_2_2=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";return'g =[[10000,10000,10000,10000,10000,10000,10000],[10000,10000,300,500,10000,10000,10000],[10000,300,10000,10000,300,700,10000],[10000,500,10000,10000,10000,100,10000],[10000,10000,300,10000,10000,10000,200],[10000,10000,700,100,10000,10000,100],[10000,10000,10000,10000,200,100,10000]]\nnow=1\nlast=1\npath=[]\npath.append(1)\nname = ["","小智家","邮局","银行","书店","餐厅","学校"]\nposition = [[0, 0], [70, 340], [70, 90], [550, 310], [420, 70], [730, 250], [650, 130]]\nsprite.clearAllSprites()\nsprite.createBackground(\'map_zhi_xue\')\nstu = sprite.Sprite(\'boy\', 70, 340)\nstu.enlargeTo(100)\ntime.sleep(1)\n\n'},algorithm_algorithm_move_recent=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";return'tmp=10000\nfor i in range(0, len(g), 1):\n if g[now][i]6:\n print("路线错乱!程序有误!")\n exit()\n'},algorithm_algorithm_not_home=function(e,t){return["name[now] != '小科家'",t.ORDER_ATOMIC]},algorithm_algorithm_not_school=function(e,t){return["name[now] != '学校'",t.ORDER_ATOMIC]},algorithm_algorithm_print_path2=function(){return'res = ""\nfor i in path:\n res = res + name[i] + "→"\nprint(res[:-1])\n'},algorithm_hanoi_init=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";var n=this.getFieldValue("NUM");if(n>=7)var a="print('层数过高!不得高于6层!')\nexit()\n";else a="sprite.clearAllSprites()\n_Hanoicolor = ['blue', 'red', 'yellow', 'green', 'purple', 'black']\n_Hanoi = [[], [], []]\nA = 0\nB = 1\nC = 2\n_n = "+n+"\n_HanoiColumn = [\n sprite.Sprite('HanoiColumn', 200, 320),\n sprite.Sprite('HanoiColumn', 400, 320),\n sprite.Sprite('HanoiColumn', 600, 320)\n]\n_HanoiColumnNumber = [\n sprite.Text('A', 190, 120),\n sprite.Text('B', 390, 120),\n sprite.Text('C', 590, 120)\n]\n_HanoiBlock = []\nfor i in range(0, _n, 1):\n _HanoiBlock.append(sprite.Sprite(_Hanoicolor[i], 200, 400-(_n-i-1)*27))\n _HanoiBlock[i].setScale(25, 30*i+30)\n _Hanoi[0].insert(0, _HanoiBlock[i])\n_steptext = sprite.Text('步数:0', 30, 30)\n_steps = {'steps' : 0}\ntime.sleep(1)\n";return a},algorithm_hanoi_move=function(e,t){var n=t.valueToCode(this,"FROM_NUM",t.ORDER_ATOMIC)||"0",a=t.valueToCode(this,"TO_NUM",t.ORDER_ATOMIC)||"0";return`if len(_Hanoi[${n}])>0 :\n _HanoiBlockMoved = _Hanoi[${n}].pop()\n if len(_Hanoi[${a}]) > 0 :\n _HanoiBlockSuppressed = _Hanoi[${a}].pop()\n if _HanoiBlock.index(_HanoiBlockMoved) > _HanoiBlock.index(_HanoiBlockSuppressed):\n print('非法移动!程序有误!')\n exit()\n else:\n _Hanoi[${a}].append(_HanoiBlockSuppressed)\n _HanoiBlockMoved.slideTo(${n}*200+200, 180, 0.2)\n _HanoiBlockMoved.slideTo(${a}*200+200, 180, 0.5)\n _HanoiBlockMoved.slideTo(${a}*200+200, 400-len(_Hanoi[${a}])*27, 0.2)\n _Hanoi[${a}].append(_HanoiBlockMoved)\n _steps['steps'] += 1\n _steptext.changeText('步数:'+str(_steps['steps']))\nelse :\n print('非法移动!程序有误!')\n exit()\n`},algorithm_algorithm_all_books_sequence=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";return"if 'mode' not in globals() or mode == 0:\n sprite.clearAllSprites()\n ring=[0,0,0,0,0,0,0,0,0,0]\n mode=1\n n=5\n ring[5]=1\n name=['小王子','海底两万里','荷花镇的早市','孔子的故事','夏洛的网','草房子','月下看猫头鹰','会唱歌的咖啡磨','父与子','城南旧事']\n Books = []\n for i in range(1, 11, 1):\n Books.append(sprite.Sprite('books/book'+str(i), (130*i-650) if i>5 else 130*i, 320 if i>5 else 120))\nelse:\n mode=2\n n=len(ring)-1\nring[n]=1\ntime.sleep(1)\n"},algorithm_algorithm_all_books=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";return"if 'mode' not in globals() or mode == 0:\n sprite.clearAllSprites()\n ring=[0,0,0,0,0,0,0,0,0,0]\n mode=2\n n=5\n name=['小王子','海底两万里','荷花镇的早市','孔子的故事','夏洛的网','草房子','月下看猫头鹰','会唱歌的咖啡磨','父与子','城南旧事']\n Books = []\n for i in range(1, 11, 1):\n Books.append(sprite.Sprite('books/book'+str(i), (130*i-650) if i>5 else 130*i, 320 if i>5 else 120))\nelse:\n mode=1\n n=len(ring)-1\nring[n]=n\nlist=ring\ntemp=Books\ntime.sleep(1)\n"},algorithm_algorithm_first_book=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";return"res=0\nflag=ring[res]\nBooks[res].filterBrighter()\ntime.sleep(0.1)\nBooks[res].filterOrigin()\n"},algorithm_algorithm_no_ring2=function(e,t){return["(('mode' not in globals())or(mode==1 and flag==0)or(mode==2 and not any(value > 0 for value in qian))or(mode==0))",t.ORDER_ATOMIC]},algorithm_algorithm_yes_ring2=function(e,t){return["(('mode' in globals())and((mode==1 and flag!=0)or(mode==2 and any(value > 0 for value in qian))))",t.ORDER_ATOMIC]},algorithm_algorithm_next_book=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";var n="res+=1\nflag=ring[res]\n";return n="Books[res].filterGray()\ntime.sleep(0.3)\n"+(n+="Books[res].filterBrighter()\ntime.sleep(0.1)\nBooks[res].filterOrigin()\n")},algorithm_algorithm_two_left=function(e,t){return["len(list)>=2",t.ORDER_ATOMIC]},algorithm_algorithm_divide_books=function(){return"mid = int(len(list)/2)\nqian = list[0:mid]\nhou = list[mid:]\nqiantemp = temp[0:mid]\nhoutemp = temp[mid:]\n"},algorithm_algorithm_get_half_books=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";return"quchu = qian\nlist = hou\nquchutemp = qiantemp\ntemp = houtemp\nfor i in qiantemp:\n i.filterBrighter()\ntime.sleep(0.5)\nfor i in qiantemp:\n i.filterGray()\ntime.sleep(0.5)\n"},algorithm_algorithm_delete_book=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";return"list = quchu\ntemp = quchutemp\nfor i in qiantemp:\n i.filterBrighter()\ntime.sleep(0.5)\nfor i in qiantemp:\n i.filterOrigin()\nfor i in houtemp:\n\ti.filterBrighter()\ntime.sleep(0.5)\nfor i in houtemp:\n i.filterGray()\ntime.sleep(0.5)\n"},algorithm_algorithm_print_book2=function(){return"if 'list' in globals():\n res = list[0]\nBooks[res].filterBrighter()\nprint('未消磁的书籍是第'+str(res+1)+'本《'+name[res%10]+'》。')\nif res!=n:\n print('答案错误!请检查程序!')\nmode=0\n"},algorithm_algorithm_book_scale=function(e,t){var n=this.getFieldValue("NUM");return t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite",`sprite.clearAllSprites()\nring = []\nname = ['小王子','海底两万里','荷花镇的早市','孔子的故事','夏洛的网','草房子','月下看猫头鹰','会唱歌的咖啡磨','父与子','城南旧事']\nBooks = []\nfor i in range(${n}):\n ring.append(0)\nfor i in range(1, ${n}+1, 1):\n Books.append(sprite.Sprite('books/book'+str(i%10 if i%10!=0 else 10), ${{5:"130*i, 120",10:"(130*i-650) if i>5 else 130*i, 320 if i>5 else 120",20:"(65*i-650)+30 if i>10 else 65*i+30, 320 if i>10 else 120",50:"(26*i-650)+50 if i>25 else 26*i+50, 320 if i>25 else 120"}[n]}))\ntime.sleep(1)\nmode=3\n`},algorithm_algorithm_number_zero=function(e,t){t.definitions_.import_sprite="import sprite";return"cnt=0\ncntText = sprite.Text('计数器:0', 30, 200)\n"},algorithm_algorithm_number_add=function(e,t){t.definitions_.import_sprite="import sprite";return"cnt+=1\ncntText.changeText('计数器:'+str(cnt))\n"},algorithm_algorithm_print_number=function(e,t){t.definitions_.import_sprite="import sprite";return"print('计数器大小:'+str(cnt))\n"},algorithm_algorithm_init_jttl=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";return"sprite.clearAllSprites()\n_head = 10\n_foot = 32\n_footText = sprite.Text('脚的数量:', 20, 10)\n_sprite = []\n"},algorithm_algorithm_rabbit_zero=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";return"_rabbit = 0\ntime.sleep(1)\n"},algorithm_algorithm_rabbit_number_in_range=function(e,t){return["_rabbit < _head",t.ORDER_ATOMIC]},algorithm_algorithm_chick_calculate=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";return"_chick = _head - _rabbit\nfor i in range(0, _chick, 1):\n _sprite.append(sprite.Sprite('jttl/chick', len(_sprite)*130+130 if len(_sprite)<5 else len(_sprite)*130+130-650, 120 if len(_sprite)<5 else 320))\n\ntime.sleep(0.5)\n_footText.changeText('脚的数量:'+str(_rabbit*4 + _chick*2))\ntime.sleep(1)\n"},algorithm_algorithm_check_feet=function(e,t){return["_rabbit*4 + _chick*2 == _foot",t.ORDER_ATOMIC]},algorithm_algorithm_print_jttl_answer=function(e,t){t.definitions_.import_sprite="import sprite";return"print('鸡的数量:'+str(_chick)+'只;\\n兔的数量:'+str(_rabbit)+'只。')\n"},algorithm_algorithm_rabbit_add=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";return"_rabbit += 1\nsprite.clearAllSprites()\n_sprite = []\n_footText = sprite.Text('脚的数量:', 20, 10)\nfor i in range(0, _rabbit, 1):\n _sprite.append(sprite.Sprite('jttl/rabbit', len(_sprite)*130+130 if len(_sprite)<5 else len(_sprite)*130+130-650, 120 if len(_sprite)<5 else 320))\ntime.sleep(0.5)\n"},algorithm_algorithm_init_fzsf=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";return"sprite.clearAllSprites()\nsprite.createBackground('/fzsf/map_ck_xxjsjs')\n_S1 = sprite.Sprite('/fzsf/S1',400,225,'S1')\n_S2 = sprite.Sprite('/fzsf/S2',400,225,'S2')\n_S3 = sprite.Sprite('/fzsf/S3',400,225,'S3')\n_S4 = sprite.Sprite('/fzsf/S4',400,225,'S4')\n_S1.hide()\n_S2.hide()\n_S3.hide()\n_S4.hide()\n_text_1 = sprite.Text('S1:',0,0,'text')\n_text_2 = sprite.Text('S2:',0,30,'text2')\n_text_3 = sprite.Text('S3:',0,60,'text3')\n_text_4 = sprite.Text('S4:',0,90,'text4')\n_position = [[60, 270], [240, 50], [260, 380], [440, 190], [730, 60], [700, 400]]\n_Llen = [0, 170, 230, 100, 150, 10, 30, 50]\n_Slen = [0, 0, 0, 0, 0]\n_tag = [0, [0, 1, 3], [0, 2, 3], [3, 4, 5], [3, 5]]\nbear = sprite.Sprite('mixbear',60,270,'bear')\nbear.enlargeTo(80)\n_pos = 0\ntime.sleep(1)\n"},algorithm_algorithm_fz_calc=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";var n=this.getFieldValue("PATHNAME");const a=[0,[1,3],[2,4],[5,7],[6]];var _="";return _+=`_S${n}.show()\ntime.sleep(1)\n`,_+=4!=n?`_Slen[${n}] = _Llen[${a[n][0]}] + _Llen[${a[n][1]}]\n_text_${n}.changeText('S${n}:'+str(_Slen[${n}])+'m')\ntime.sleep(1)\n_S${n}.hide()\ntime.sleep(1)\n`:"_Slen[4] = _Llen[6]\n_text_4.changeText('S4:'+str(_Slen[4])+'m')\ntime.sleep(1)\n_S4.hide()\ntime.sleep(1)\n"},algorithm_algorithm_fz_compare=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";var n="";return[n+=`_Slen[${this.getFieldValue("PATHNAME")}] < _Slen[${this.getFieldValue("PATHNAME2")}]`,t.ORDER_ATOMIC]},algorithm_algorithm_fz_set_min=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";var n=this.getFieldValue("PATHNAME"),a="";return a+=`\n_S1.hide()\n_S2.hide()\n_S3.hide()\n_S4.hide()\n_Smin = ${n}\n_S${n}.show()\ntime.sleep(0.5)\n_S${n}.hide()\ntime.sleep(0.5)\n_S${n}.show()\ntime.sleep(1)\n`},algorithm_algorithm_fz_move=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";return"if(_pos == _tag[_Smin][0]):\n for i in range(1, len(_tag[_Smin]), 1):\n bear.slideTo(_position[_tag[_Smin][i]][0], _position[_tag[_Smin][i]][1], 1)\n _pos = _tag[_Smin][len(_tag[_Smin])-1]\nelse:\n print('移动错误!程序有误!')\n exit()\n_S1.hide()\n_S2.hide()\n_S3.hide()\n_S4.hide()\nif(_pos == 5):\n print('成功抵达信息科技教室!')\n"},algorithm_algorithm_init_hxdb=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";return"sprite.clearAllSprites()\nsprite.createBackground('/hxdb/hxdbbg')\n_soldier = []\n_num = sprite.Text('目前士兵数量:0',0,0,'num')\n_last = sprite.Text('剩余:0',500,0,'last')\n_line = 3\n"},algorithm_algorithm_hxdb_init_soldier=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";var n="";return n+=`for i in range(0, ${this.getFieldValue("NUM")}, 1):\n _soldier.append(sprite.Sprite('/hxdb/soldier', 30 + (len(_soldier)%_line)*50 + (len(_soldier)//(4*_line))*(_line+1)*50 +(len(_soldier)%3-2), 80+(len(_soldier)//_line)*100-(len(_soldier)//(4*_line))*4*100+(len(_soldier)%2)))\n_num.changeText('目前士兵数量:'+str(len(_soldier)))\n`},algorithm_algorithm_hxdb_stand_in_line=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";var n=this.getFieldValue("NUM");return`for i in range(0, len(_soldier), 1):\n _soldier[i].slideTo(30 + (i%${n})*50 + (i//(4*${n}))*(${n}+1)*50 +(i%3-2), 80+(i//${n})*100-(i//(4*${n}))*4*100+(i%2), 0.05)\n_line = ${n}\n_last.changeText('剩余:'+str(len(_soldier)%_line))\ntime.sleep(2)\n`},algorithm_algorithm_hxdb_last_line=function(e,t){return t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite",[`len(_soldier)%_line == ${this.getFieldValue("NUM")}`,t.ORDER_ATOMIC]},algorithm_algorithm_hxdb_add=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";return"_num.changeText('目前士兵数量:'+str(len(_soldier)+1))\n_last.changeText('剩余:')\ntime.sleep(0.5)\n_soldier.append(sprite.Sprite('/hxdb/soldier', 30 + (len(_soldier)%_line)*50 + (len(_soldier)//(4*_line))*(_line+1)*50 +(len(_soldier)%3-2), 80+(len(_soldier)//_line)*100-(len(_soldier)//(4*_line))*4*100+(len(_soldier)%2)))\ntime.sleep(1)\n"},algorithm_algorithm_hxdb_result=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";return"print('符合要求的士兵数量为:'+str(len(_soldier)))\n"},algorithm_hanoi_init_offline=function(e,t){t.definitions_.import_turtle="import turtle",t.definitions_.import_time="import time",t.definitions_.import_math="import math";var n=t.valueToCode(this,"VAR",t.ORDER_ATOMIC),a=this.getFieldValue("NUM");return t.setups_.init_Hanoi="\ndef init_Hanoi():\n pen = turtle.Turtle()\n pen.hideturtle()\n pen.speed(0)\n for i in range(0, 3, 1):\n pen.penup()\n pen.setheading(0)\n pen.goto(150 * i - 200,-100)\n pen.pendown()\n pen.pensize(5)\n pen.forward(100)\n pen.goto(150 * i - 150,-100)\n pen.setheading(90)\n pen.forward(200)",t.setups_.begin="\ndef begin(): \n s = turtle.Turtle()\n s.hideturtle()\n s.penup()\n s.speed(0)\n s.goto(0,-150)\n s.write('3')\n time.sleep(1)\n s.clear()\n s.write('2')\n time.sleep(1)\n s.clear()\n s.write('1')\n time.sleep(1)\n s.clear()\n s.write('Start!')\n time.sleep(1)\n s.clear()\n",t.setups_.move="\ndef move(x, y):\n try:\n t = tower[x].pop(-1)\n a = tower_num[x].pop(-1)\n if tower_num[y]!=[]:\n b = tower_num[y][-1]\n if a 1"}]`,t.ORDER_ATOMIC]},data_dataframe_groupby=function(e,t){return[`${t.valueToCode(e,"DICT",t.ORDER_ATOMIC)||"df"}.groupby(by=${t.valueToCode(e,"KEY",t.ORDER_ATOMIC)||"'tag'"})`,t.ORDER_ATOMIC]},data_dataframe_aggregate_func=function(e,t){return[`${t.valueToCode(e,"DICT",t.ORDER_ATOMIC)||"df"}.${e.getFieldValue("TYPE")}()`,t.ORDER_ATOMIC]},data_plot_cla=function(e,t){t.definitions_.import_matplotlib_pyplot="import matplotlib.pyplot as plt";return"plt.cla()\n"},datastructure_ds_create_linkedlist=function(e,t){var n=t.variableDB_.getName(this.getFieldValue("VAR"),external_Blockly_namespaceObject.Variables.NAME_TYPE),a=t.variableDB_.getName(this.getFieldValue("TYPE"),external_Blockly_namespaceObject.Variables.NAME_TYPE),_="class "+a+":\n";_+=" def __init__(self):\n";for(var l=new Array(this.itemCount_),i=0;i0;_--)t.getInputTargetBlock("IF"+_)&&t.getInputTargetBlock("IF"+_).previousConnection?n[_]=t.getInputTargetBlock("IF"+_).previousConnection:n[_]=null,this.removeInput("IF"+_),t.getInputTargetBlock("DO"+_)&&t.getInputTargetBlock("DO"+_).previousConnection?a[_]=t.getInputTargetBlock("DO"+_).previousConnection:a[_]=null,this.removeInput("DO"+_);this.elseifCount_=parseInt(e.getAttribute("elseif"),10),this.elseCount_=parseInt(e.getAttribute("else"),10);for(_=1;_<=this.elseifCount_;_++)this.appendValueInput("IF"+_).setCheck([Boolean,Number]).appendField(external_Blockly_namespaceObject.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+_).appendField(external_Blockly_namespaceObject.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(external_Blockly_namespaceObject.Msg.CONTROLS_IF_MSG_ELSE);for(_=n.length-2;_>0;_--)n[_]&&n[_].reconnect(this,"IF"+_);for(_=a.length-2;_>0;_--)a[_]&&a[_].reconnect(this,"DO"+_)},decompose:function(e){var t=e.newBlock("controls_if_if");t.initSvg();for(var n=t.getInput("STACK").connection,a=1;a<=this.elseifCount_;a++){var _=e.newBlock("controls_if_elseif");_.initSvg(),n.connect(_.previousConnection),n=_.nextConnection}if(this.elseCount_){var l=e.newBlock("controls_if_else");l.initSvg(),n.connect(l.previousConnection)}return t},compose:function(e){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 n=e.getInputTargetBlock("STACK"),a=[null],_=[null],l=null;n;){switch(n.type){case"controls_if_elseif":this.elseifCount_++,a.push(n.valueConnection_),_.push(n.statementConnection_);break;case"controls_if_else":this.elseCount_++,l=n.statementConnection_;break;default:throw Error("Unknown block type: "+n.type)}n=n.nextConnection&&n.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(a,_,l)},saveConnections:function(e){for(var t=e.getInputTargetBlock("STACK"),n=1;t;){switch(t.type){case"controls_if_elseif":var a=this.getInput("IF"+n),_=this.getInput("DO"+n);t.valueConnection_=a&&a.connection.targetConnection,t.statementConnection_=_&&_.connection.targetConnection,n++;break;case"controls_if_else":_=this.getInput("ELSE");t.statementConnection_=_&&_.connection.targetConnection;break;default:throw"Unknown block type."}t=t.nextConnection&&t.nextConnection.targetBlock()}},rebuildShape_:function(){var e=[null],t=[null],n=null;this.getInput("ELSE")&&(n=this.getInput("ELSE").connection.targetConnection);for(var a=1;this.getInput("IF"+a);){var _=this.getInput("IF"+a),l=this.getInput("DO"+a);console.log(_.connection.targetConnection),e.push(_.connection.targetConnection),t.push(l.connection.targetConnection),a++}this.updateShape_(),this.reconnectChildBlocks_(e,t,n)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var e=1;this.getInput("IF"+e);)this.removeInput("IF"+e),this.removeInput("DO"+e),e++;for(e=1;e<=this.elseifCount_;e++)this.appendValueInput("IF"+e).setCheck([Number,Boolean]).appendField(external_Blockly_namespaceObject.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+e).appendField(external_Blockly_namespaceObject.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(external_Blockly_namespaceObject.Msg.CONTROLS_IF_MSG_ELSE)},reconnectChildBlocks_:function(e,t,n){for(var a=1;a<=this.elseifCount_;a++)e[a]&&e[a].reconnect(this,"IF"+a),t[a]&&t[a].reconnect(this,"DO"+a);n&&n.reconnect(this,"ELSE")}},controls_range={init:function(){this.setColour(LOOPS_HUE),this.appendValueInput("FROM").setCheck(Number).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.PYTHON_RANGE).appendField(external_Blockly_namespaceObject.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.PYTHON_RANGE_STEP),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},controls_forEach={init:function(){this.setColour(LOOPS_HUE),this.appendValueInput("LIST").setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.CONTROLS_FOREACH_INPUT),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.CONTROLS_FOREACH_INPUT_ITEM),this.appendStatementInput("DO").appendField(external_Blockly_namespaceObject.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip((function(){return external_Blockly_namespaceObject.Msg.CONTROLS_FOR_TOOLTIP.replace("“%1”","")}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},controls_whileUntil={init:function(){this.setColour(LOOPS_HUE),this.appendValueInput("BOOL").setCheck([Boolean,Number]).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_JS_CURRENT).appendField(new external_Blockly_namespaceObject.FieldDropdown(this.OPERATORS),"MODE"),this.appendStatementInput("DO").appendField(external_Blockly_namespaceObject.Msg.LANG_CONTROLS_WHILEUNTIL_TITLE_REPEAT+external_Blockly_namespaceObject.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("MODE");return{WHILE:external_Blockly_namespaceObject.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_WHILE,UNTIL:external_Blockly_namespaceObject.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL}[t]}))}},controls_try_finally={init:function(){this.setColour(LOOPS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_TRY),this.appendStatementInput("try"),this.appendValueInput("IF1").appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO1").appendField(""),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new external_Blockly_namespaceObject.icons.MutatorIcon(["controls_except","controls_finally"],this)),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_CONTROL_TRY_TOOLTIP),this.elseifCount_=1,this.elseCount_=0},mutationToDom:function(){if(!this.elseifCount_&&!this.elseCount_)return null;var e=document.createElement("mutation");return this.elseifCount_&&e.setAttribute("elseif",this.elseifCount_),this.elseCount_&&e.setAttribute("else",1),e},domToMutation:function(e){var t=this,n=[],a=[];this.elseCount_&&this.removeInput("ELSE");for(var _=this.elseifCount_;_>0;_--)t.getInputTargetBlock("IF"+_)&&t.getInputTargetBlock("IF"+_).previousConnection?n[_]=t.getInputTargetBlock("IF"+_).previousConnection:n[_]=null,this.removeInput("IF"+_),t.getInputTargetBlock("DO"+_)&&t.getInputTargetBlock("DO"+_).previousConnection?a[_]=t.getInputTargetBlock("DO"+_).previousConnection:a[_]=null,this.removeInput("DO"+_);this.elseifCount_=parseInt(e.getAttribute("elseif"),10),this.elseCount_=parseInt(e.getAttribute("else"),10);for(_=1;_<=this.elseifCount_;_++)this.appendValueInput("IF"+_).setCheck([Boolean,Number]).appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+_).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_FINALLY);for(_=n.length-2;_>0;_--)n[_]&&n[_].reconnect(this,"IF"+_);for(_=a.length-2;_>0;_--)a[_]&&a[_].reconnect(this,"DO"+_)},decompose:function(e){var t=e.newBlock("controls_try");t.initSvg();for(var n=t.getInput("STACK").connection,a=1;a<=this.elseifCount_;a++){var _=e.newBlock("controls_except");_.initSvg(),n.connect(_.previousConnection),n=_.nextConnection}if(this.elseCount_){var l=e.newBlock("controls_finally");l.initSvg(),n.connect(l.previousConnection)}return t},compose:function(e){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 n=e.getInputTargetBlock("STACK"),a=[null],_=[null],l=null;n;){switch(n.type){case"controls_except":this.elseifCount_++,a.push(n.valueConnection_),_.push(n.statementConnection_);break;case"controls_finally":this.elseCount_++,l=n.statementConnection_;break;default:throw Error("Unknown block type: "+n.type)}n=n.nextConnection&&n.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(a,_,l)},saveConnections:function(e){for(var t=e.getInputTargetBlock("STACK"),n=1;t;){switch(t.type){case"controls_except":var a=this.getInput("IF"+n),_=this.getInput("DO"+n);t.valueConnection_=a&&a.connection.targetConnection,t.statementConnection_=_&&_.connection.targetConnection,n++;break;case"controls_finally":_=this.getInput("ELSE");t.statementConnection_=_&&_.connection.targetConnection;break;default:throw"Unknown block type."}t=t.nextConnection&&t.nextConnection.targetBlock()}},rebuildShape_:function(){var e=[null],t=[null],n=null;this.getInput("ELSE")&&(n=this.getInput("ELSE").connection.targetConnection);for(var a=1;this.getInput("IF"+a);){var _=this.getInput("IF"+a),l=this.getInput("DO"+a);console.log(_.connection.targetConnection),e.push(_.connection.targetConnection),t.push(l.connection.targetConnection),a++}this.updateShape_(),this.reconnectChildBlocks_(e,t,n)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var e=1;this.getInput("IF"+e);)this.removeInput("IF"+e),this.removeInput("DO"+e),e++;for(e=1;e<=this.elseifCount_;e++)this.appendValueInput("IF"+e).setCheck([Number,Boolean]).appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+e).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_FINALLY)},reconnectChildBlocks_:function(e,t,n){for(var a=1;a<=this.elseifCount_;a++)e[a]&&e[a].reconnect(this,"IF"+a),t[a]&&t[a].reconnect(this,"DO"+a);n&&n.reconnect(this,"ELSE")}},controls_flow_statements={init:function(){this.setColour(LOOPS_HUE);var e=new external_Blockly_namespaceObject.FieldDropdown(this.OPERATORS);this.appendDummyInput().appendField(e,"FLOW").appendField(external_Blockly_namespaceObject.Msg.LANG_CONTROLS_FLOW_STATEMENTS_INPUT_OFLOOP),this.setPreviousStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_CONTROLS_FLOW_STATEMENTS_TOOLTIP);var t=this;this.setTooltip((function(){var e=t.getFieldValue("FLOW");return{BREAK:external_Blockly_namespaceObject.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK,CONTINUE:external_Blockly_namespaceObject.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE}[e]}))},onchange:function(){if(this.workspace){var e=!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){e=!0;break}t=t.getSurroundParent()}while(t);e?this.setWarningText(null):this.setWarningText(external_Blockly_namespaceObject.Msg.LANG_CONTROLS_FLOW_STATEMENTS_WARNING)}}},controls_for={init:function(){this.setColour(LOOPS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new external_Blockly_namespaceObject.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(external_Blockly_namespaceObject.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var e=this;this.setTooltip((function(){return external_Blockly_namespaceObject.Msg.CONTROLS_FOR_TOOLTIP.replace("%1",e.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},controls_for_range={init:function(){this.setColour(LOOPS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new external_Blockly_namespaceObject.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(external_Blockly_namespaceObject.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var e=this;this.setTooltip((function(){return external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_CONTROLS_FOR_RANGE_TOOLTIP.replace("%1",e.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}};controls_whileUntil.OPERATORS=[[external_Blockly_namespaceObject.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"WHILE"],[external_Blockly_namespaceObject.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"UNTIL"]],controls_flow_statements.OPERATORS=[[external_Blockly_namespaceObject.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK,"BREAK"],[external_Blockly_namespaceObject.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE,"CONTINUE"]];const controls_if_if={init:function(){this.setColour(LOOPS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.CONTROLS_IF_IF_TITLE_IF),this.appendStatementInput("STACK"),this.setTooltip(external_Blockly_namespaceObject.Msg.CONTROLS_IF_IF_TOOLTIP),this.contextMenu=!1}},controls_if_elseif={init:function(){this.setColour(LOOPS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.CONTROLS_IF_ELSEIF_TITLE_ELSEIF),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.CONTROLS_IF_ELSEIF_TOOLTIP),this.contextMenu=!1}},controls_if_else={init:function(){this.setColour(LOOPS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.CONTROLS_IF_ELSE_TITLE_ELSE),this.setPreviousStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.CONTROLS_IF_ELSE_TOOLTIP),this.contextMenu=!1}},controls_try={init:function(){this.setColour(LOOPS_HUE),this.appendDummyInput().appendField("try"),this.appendStatementInput("STACK"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.contextMenu=!1}},controls_except={init:function(){this.setColour(LOOPS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_EXCEPT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.contextMenu=!1,this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_CONTROL_EXCEPT_TOOLTIP)}},controls_finally={init:function(){this.setColour(LOOPS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_FINALLY),this.setPreviousStatement(!0),this.contextMenu=!1,this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_CONTROL_FINALLY_TOOLTIP)}},controls_repeat_ext={init:function(){this.jsonInit({message0:external_Blockly_namespaceObject.Msg.CONTROLS_REPEAT_TITLE,args0:[{type:"input_value",name:"TIMES"}],previousStatement:null,nextStatement:null,colour:LOOPS_HUE,tooltip:external_Blockly_namespaceObject.Msg.CONTROLS_REPEAT_TOOLTIP,helpUrl:external_Blockly_namespaceObject.Msg.CONTROLS_REPEAT_HELPURL}),this.appendStatementInput("DO")}},controls_lambda={init:function(){this.setColour(LOOPS_HUE),this.appendValueInput("BOOL").appendField("lambda"),this.appendStatementInput("DO").appendField(external_Blockly_namespaceObject.Msg.MIXLY_STAT),this.setOutput(!0)}},controls_pass={init:function(){this.setColour(LOOPS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_PASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_CONTROLS_PASS_TOOLTIP)}},controls_thread={init:function(){this.setColour(LOOPS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_CONTROLS_THREAD_START),this.appendValueInput("callback").appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_CONTROLS_THREAD_USE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_CONTROLS_THREAD_TOOLTIP)}},do_while={init:function(){this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.CONTROLS_REPEAT_TITLE_REPEAT+external_Blockly_namespaceObject.Msg.MIXLY_DO),this.appendStatementInput("input_data").setCheck(null),this.appendValueInput("select_data").setCheck(null).appendField(external_Blockly_namespaceObject.Msg.CONTROLS_OPERATOR_UNTIL).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"true"],[external_Blockly_namespaceObject.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"false"]]),"type"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(LOOPS_HUE),this.setTooltip("do-while loop"),this.setHelpUrl("")}},garbage_collection={init:function(){this.setColour(LOOPS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_OP_GARBAGE_COLLECT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},get_mem_alloc={init:function(){this.setColour(LOOPS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_GET_MEM_ALLOC),this.setOutput(!0)}},get_mem_free={init:function(){this.setColour(LOOPS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_GET_MEM_FREE),this.setOutput(!0)}},get_unique_identifier={init:function(){this.setColour(LOOPS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_GET+external_Blockly_namespaceObject.Msg.MIXLY_DEVICE+"ID"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.PROCEDURES_DEFRETURN_RETURN+external_Blockly_namespaceObject.Msg.MIXLY_GET_UNIQUE_IDEN)}},datetime_fromtimestamp={init:function(){this.setColour(LOOPS_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_RTC_TIMESTAMP),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_TIMESTAMP_TO_DATA),this.setInputsInline(!0),this.setOutput(!0,Number)}},MATH_HUE=230;external_Blockly_namespaceObject.FieldTextInput.math_number_validator=function(e){return String(e)},external_Blockly_namespaceObject.FieldTextInput.math_number_validator_include_blank=function(e){if(""===e)return"";return/^-?(0X|0x|0O|0o|0B|0b)?[a-fA-F0-9]{1,}(\.[a-fA-F0-9]+)?$/.test(e)?String(e):null};const math_number={init:function(){this.setColour(MATH_HUE),this.appendDummyInput().appendField(new external_Blockly_namespaceObject.FieldTextInput("0",external_Blockly_namespaceObject.FieldTextInput.math_number_validator),"NUM"),this.setOutput(!0,Number),this.setTooltip(external_Blockly_namespaceObject.Msg.MATH_NUMBER_TOOLTIP)}},math_constant={init:function(){this.setColour(MATH_HUE);this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new external_Blockly_namespaceObject.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("CONSTANT");return{pi:external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_TOOLTIP,e:external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_TOOLTIP}[t]}))}},math_constant_mp={init:function(){this.setColour(MATH_HUE);this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new external_Blockly_namespaceObject.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("CONSTANT");return{pi:external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_MP_TOOLTIP,e:external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_MP_TOOLTIP}[t]}))}},math_arithmetic={init:function(){this.setColour(MATH_HUE),this.setOutput(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new external_Blockly_namespaceObject.FieldDropdown([["+","ADD"],["-","MINUS"],["×","MULTIPLY"],["÷","DIVIDE"],["%","QUYU"],["//","ZHENGCHU"],["**","POWER"]]),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{ADD:external_Blockly_namespaceObject.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:external_Blockly_namespaceObject.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:external_Blockly_namespaceObject.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:external_Blockly_namespaceObject.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:external_Blockly_namespaceObject.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:external_Blockly_namespaceObject.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:external_Blockly_namespaceObject.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[t]}))}},math_selfcalcu={init:function(){this.setColour(MATH_HUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new external_Blockly_namespaceObject.FieldDropdown([["+=","ADD"],["-=","MINUS"],["×=","MULTIPLY"],["÷=","DIVIDE"],["%=","QUYU"],["//=","ZHENGCHU"],["**=","POWER"]]),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{ADD:external_Blockly_namespaceObject.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:external_Blockly_namespaceObject.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:external_Blockly_namespaceObject.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:external_Blockly_namespaceObject.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:external_Blockly_namespaceObject.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:external_Blockly_namespaceObject.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:external_Blockly_namespaceObject.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[t]}))}},math_bit={init:function(){this.setColour(MATH_HUE),this.setOutput(!0,Number),this.appendValueInput("A").setCheck(Number),this.appendValueInput("B").setCheck(Number).appendField(new external_Blockly_namespaceObject.FieldDropdown([["&","&"],["|","|"],[">>",">>"],["<<","<<"]]),"OP"),this.setInputsInline(!0),this.setTooltip("位运算")}},math_trig={init:function(){this.setColour(MATH_HUE),this.setOutput(!0,Number),this.appendValueInput("NUM").setCheck(Number).appendField(new external_Blockly_namespaceObject.FieldDropdown([["sin","SIN"],["cos","COS"],["tan","TAN"],["asin","ASIN"],["acos","ACOS"],["atan","ATAN"],["-","-"],["ln","LN"],["log10","LOG10"],["e^","EXP"],["10^","POW10"]]),"OP");var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{SIN:external_Blockly_namespaceObject.Msg.MATH_TRIG_TOOLTIP_SIN,COS:external_Blockly_namespaceObject.Msg.MATH_TRIG_TOOLTIP_COS,TAN:external_Blockly_namespaceObject.Msg.MATH_TRIG_TOOLTIP_TAN,ASIN:external_Blockly_namespaceObject.Msg.MATH_TRIG_TOOLTIP_ASIN,ACOS:external_Blockly_namespaceObject.Msg.MATH_TRIG_TOOLTIP_ACOS,ATAN:external_Blockly_namespaceObject.Msg.MATH_TRIG_TOOLTIP_ATAN,LN:external_Blockly_namespaceObject.Msg.MATH_SINGLE_TOOLTIP_LN}[t]}))}},math_dec={init:function(){var e=[[external_Blockly_namespaceObject.Msg.MATH_BIN,"bin"],[external_Blockly_namespaceObject.Msg.MATH_OCT,"oct"],[external_Blockly_namespaceObject.Msg.MATH_HEX,"hex"]];this.setColour(MATH_HUE),this.setOutput(!0,String),this.appendValueInput("NUM").setCheck(Number).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"OP");var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{bin:external_Blockly_namespaceObject.Msg.MATH_DEC_TOOLTIP_BIN,oct:external_Blockly_namespaceObject.Msg.MATH_DEC_TOOLTIP_OCT,hex:external_Blockly_namespaceObject.Msg.MATH_DEC_TOOLTIP_HEX}[e]}))}},math_to_int={init:function(){var e=[[external_Blockly_namespaceObject.Msg.LANG_MATH_TO_ROUND,"round"],[external_Blockly_namespaceObject.Msg.LANG_MATH_TO_CEIL,"ceil"],[external_Blockly_namespaceObject.Msg.LANG_MATH_TO_FLOOR,"floor"],[external_Blockly_namespaceObject.Msg.MATH_ABS,"fabs"],[external_Blockly_namespaceObject.Msg.MATH_SQRT,"sqrt"]];this.setColour(MATH_HUE),this.appendValueInput("A").setCheck(Number).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"OP"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{sqrt:external_Blockly_namespaceObject.Msg.MATH_SINGLE_TOOLTIP_ROOT,fabs:external_Blockly_namespaceObject.Msg.MATH_SINGLE_TOOLTIP_ABS,sq:external_Blockly_namespaceObject.Msg.MATH_SINGLE_TOOLTIP_SQ,round:external_Blockly_namespaceObject.Msg.MATH_SINGLE_TOOLTIP_ROUND,ceil:external_Blockly_namespaceObject.Msg.MATH_SINGLE_TOOLTIP_CEIL,floor:external_Blockly_namespaceObject.Msg.MATH_SINGLE_TOOLTIP_FLOOR}[e]}))}},math_max_min={init:function(){var e=[[external_Blockly_namespaceObject.Msg.MIXLY_MAX,"max"],[external_Blockly_namespaceObject.Msg.MIXLY_MIN,"min"]];this.setColour(MATH_HUE),this.appendValueInput("A").setCheck(Number).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"OP").appendField("("),this.appendValueInput("B").setCheck(Number).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(","),this.appendDummyInput("").setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(")"),this.setInputsInline(!0),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{max:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_MATH_MAX,min:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_MATH_MIN}[e]}))}},math_number_base_conversion={init:function(){var e=[[external_Blockly_namespaceObject.Msg.MATH_TWO,"two"],[external_Blockly_namespaceObject.Msg.MATH_EIGHT,"eight"],[external_Blockly_namespaceObject.Msg.MATH_TEN,"ten"],[external_Blockly_namespaceObject.Msg.MATH_SIXTEEN,"sixteen"]];this.setColour(MATH_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MATH_BA),this.appendValueInput("NUM").appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"OP").appendField(external_Blockly_namespaceObject.Msg.MATH_JinZhi).setCheck(Number),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MATH_ZHW).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"OP2").appendField(external_Blockly_namespaceObject.Msg.MATH_JinZhi),this.setFieldValue("ten","OP2"),this.setOutput(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP"),n={two:external_Blockly_namespaceObject.Msg.MATH_Before_two,eight:external_Blockly_namespaceObject.Msg.MATH_Before_eight,ten:external_Blockly_namespaceObject.Msg.MATH_Before_ten,sixteen:external_Blockly_namespaceObject.Msg.MATH_Before_sixteen},a=t.getFieldValue("OP2"),_={two:external_Blockly_namespaceObject.Msg.MATH_Behind_two,eight:external_Blockly_namespaceObject.Msg.MATH_Behind_eight,ten:external_Blockly_namespaceObject.Msg.MATH_Behind_ten,sixteen:external_Blockly_namespaceObject.Msg.MATH_Behind_sixteen};return n[e]+_[a]}))}},math_random={init:function(){var e=[[external_Blockly_namespaceObject.Msg.LANG_MATH_INT,"int"],[external_Blockly_namespaceObject.Msg.LANG_MATH_FLOAT,"float"]];this.setColour(MATH_HUE),this.setOutput(!0,Number),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_RANDOM).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"TYPE"),this.appendValueInput("FROM").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.LANG_MATH_RANDOM_INT_INPUT_TO),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("TYPE"),n={int:external_Blockly_namespaceObject.Msg.LANG_MATH_INT,float:external_Blockly_namespaceObject.Msg.LANG_MATH_FLOAT_RANDOM};return external_Blockly_namespaceObject.Msg.MATH_RANDOM_INT_TOOLTIP+n[e]}))}},math_constrain={init:function(){this.setColour(MATH_HUE),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.LANG_MATH_CONSTRAIN_INPUT_CONSTRAIN),this.appendValueInput("LOW").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.LANG_MATH_CONSTRAIN_INPUT_LOW),this.appendValueInput("HIGH").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.LANG_MATH_CONSTRAIN_INPUT_HIGH),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MATH_CONSTRAIN_TOOLTIP)}},math_map={init:function(){this.setColour(MATH_HUE),this.appendValueInput("NUM",Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MAP).setCheck(Number),this.appendValueInput("fromLow",Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MAP_FROM).setCheck(Number),this.appendValueInput("fromHigh",Number).appendField(",").setCheck(Number),this.appendValueInput("toLow",Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MAP_TO).setCheck(Number),this.appendValueInput("toHigh",Number).appendField(",").setCheck(Number),this.appendDummyInput("").appendField("]"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_MATH_MAP)}},math_indexer_number={init:function(){this.setColour(MATH_HUE),this.appendDummyInput().appendField(new external_Blockly_namespaceObject.FieldTextInput("0",external_Blockly_namespaceObject.FieldTextInput.math_number_validator_include_blank),"NUM"),this.setOutput(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MATH_NUMBER_TOOLTIP)}},math_random_seed={init:function(){this.setColour(MATH_HUE),this.appendValueInput("NUM").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.LANG_MATH_RANDOM_SEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_MATH_RANDOM_SEED)}},math_round={init:function(){this.setColour(MATH_HUE),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number),this.appendValueInput("VAR").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MATH_ROUND).appendField(external_Blockly_namespaceObject.Msg.TEXT_KEEP),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.TEXT_DECIMAL),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MATH_ROUND_NEW_TOOLTIP)}},text_to_number={init:function(){var e=[[external_Blockly_namespaceObject.Msg.MIXLY_TO_INT,"int"],[external_Blockly_namespaceObject.Msg.MIXLY_TO_FLOAT,"float"],[external_Blockly_namespaceObject.Msg.MIXLY_TO_BITES,"b"],[external_Blockly_namespaceObject.Msg.LANG_MATH_BYTE+external_Blockly_namespaceObject.Msg.MIXLY_TO_INT,"bti"]];this.setColour(MATH_HUE),this.appendValueInput("VAR").appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"TOWHAT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("TOWHAT");return{int:external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_TOOLTIP_TOINT,float:external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_TOOLTIP_TOFLOAT,b:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TEXT_TOBYTE}[e]}))}},text_to_number_skulpt={init:function(){var e=[[external_Blockly_namespaceObject.Msg.MIXLY_TO_INT,"int"],[external_Blockly_namespaceObject.Msg.MIXLY_TO_FLOAT,"float"]];this.setColour(MATH_HUE),this.appendValueInput("VAR").appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"TOWHAT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("TOWHAT");return{int:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TEXT_TOINT,float:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TEXT_TOFLOAT}[e]}))}},base_map=math_map,turn_to_int={init:function(){this.setColour(MATH_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.LANG_MATH_BYTE+external_Blockly_namespaceObject.Msg.MIXLY_TO_HEX),this.setOutput(!0,Number),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_TOOLTIP_TOHEX)}},generate_cartesian_product={init:function(){this.setColour(MATH_HUE),this.itemCount_=1,this.setMutator(new external_Blockly_namespaceObject.icons.MutatorIcon(["lists_create_with_item"],this)),this.appendDummyInput("DUMMY").appendField(external_Blockly_namespaceObject.Msg.MIXLY_PRODUCT+external_Blockly_namespaceObject.Msg.MIXLY_GENERATE_CARTESIAN_PRODUCT),this.appendValueInput("REPEAT").appendField(external_Blockly_namespaceObject.Msg.MIXLY_EVERY_PER_ELEPER_ELEMENT),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.CONTROLS_REPEAT_TITLE_TIMES),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.LISTS_CREATE_WITH_PYTHON_TOOLTIP),this.updateShape_()},mutationToDom:function(){var e=document.createElement("mutation");return e.setAttribute("items",this.itemCount_),e},domToMutation:function(e){this.itemCount_=parseInt(e.getAttribute("items"),10),this.updateShape_()},decompose:function(e){var t=e.newBlock("lists_create_with_container");t.initSvg();for(var n=t.getInput("STACK").connection,a=0;a1&&"\\"===e.charAt(0)){var t=e.charAt(1);if("0"===t||"b"===t||"f"===t||"n"===t||"r"===t||"t"===t||"\\"===t||"'"===t)return String(e).substring(0,2);if("x"===t&&"0"===e.charAt(2)&&"B"===e.charAt(3))return String(e).substring(0,4)}return String(e).substring(0,1)};const text_char={init:function(){this.setColour(TEXTS_HUE),this.appendDummyInput().appendField(this.newQuote_(!0)).appendField(new external_Blockly_namespaceObject.FieldTextInput("",external_Blockly_namespaceObject.FieldTextInput.char_validator),"TEXT").appendField(this.newQuote_(!1)),this.setOutput(!0,Number),this.setTooltip(external_Blockly_namespaceObject.Msg.TEXT_CHAR_TOOLTIP)},newQuote_:function(e){if(1==e)var t="../../media/quote2.png";else t="../../media/quote3.png";return new external_Blockly_namespaceObject.FieldImage(t,7,12,'"')}},text_join={init:function(){this.setColour(TEXTS_HUE),this.appendValueInput("A").setCheck([String,Number]),this.appendValueInput("B").setCheck([String,Number]).appendField(external_Blockly_namespaceObject.Msg.MIXLY_TEXT_JOIN),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TEXT_JOIN)}},ascii_to_char={init:function(){this.setColour(TEXTS_HUE),this.appendValueInput("VAR").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_TOCHAR),this.setOutput(!0,String),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TEXT_TOCHAR)}},char_to_ascii={init:function(){this.setColour(TEXTS_HUE),this.appendValueInput("VAR").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_TOASCII),this.setOutput(!0,Number),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TEXT_TOASCII)}},number_to_text={init:function(){this.setColour(TEXTS_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_TOSTRING),this.setOutput(!0,String),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_TOOLTIP_TOTEXT)}},text_length={init:function(){this.setColour(TEXTS_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_LENGTH),this.setOutput(!0,Number),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TEXT_LENGTH)}},text_char_at2={init:function(){this.WHERE_OPTIONS=[[external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[external_Blockly_namespaceObject.Msg.TEXT_GET_INDEX_RANDOM+1+external_Blockly_namespaceObject.Msg.TEXT_CHARAT2,"RANDOM"]],this.setHelpUrl(external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(TEXTS_HUE),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_GET,"MODE"),external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_TAIL&&this.appendDummyInput("TAIL").appendField(external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_TAIL),this.setInputsInline(!0),this.setOutput(!0),this.updateAt_(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("MODE"),n=e.getFieldValue("WHERE"),a="";switch(t+" "+n){case"GET FROM_START":case"GET FROM_END":a=external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_TOOLTIP_GET_FROM;break;case"GET RANDOM":a=external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_TOOLTIP_GET_RANDOM;break;case"GET_REMOVE FROM_START":case"GET_REMOVE FROM_END":a=external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM;break;case"GET_REMOVE RANDOM":a=external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM}return"FROM_START"!=n&&"FROM_END"!=n||(a+=" "+external_Blockly_namespaceObject.Msg.LISTS_INDEX_FROM_START_TOOLTIP.replace("%1",external_Blockly_namespaceObject.Msg.ONE_BASED_INDEXING?"#1":"#0")),a}));var t=this;this.setTooltip((function(){var e=t.getFieldValue("WHERE"),n={FROM_START:external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_FROM_START,FROM_END:external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_FROM_END,RANDOM:external_Blockly_namespaceObject.Msg.TEXT_GET_INDEX_RANDOM};return external_Blockly_namespaceObject.Msg.PROCEDURES_DEFRETURN_RETURN+external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_TYPE_STRING+n[e]+"n"+external_Blockly_namespaceObject.Msg.TEXT_CHARAT2}))},mutationToDom:function(){var e=document.createElement("mutation");e.setAttribute("statement",!this.outputConnection);var t=this.getInput("AT").type==external_Blockly_namespaceObject.INPUT_VALUE;return e.setAttribute("at",t),e},domToMutation:function(e){var t="true"==e.getAttribute("statement");this.updateStatement_(t),e="false"!=e.getAttribute("at"),this.updateAt_(e)},updateStatement_:function(e){e!=!this.outputConnection&&(this.unplug(!0,!0),e?(this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)):(this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)))},updateAt_:function(e){this.removeInput("AT"),this.removeInput("ORDINAL",!0),e?(this.appendValueInput("AT").setCheck(Number),external_Blockly_namespaceObject.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL").appendField(external_Blockly_namespaceObject.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT");var t=new external_Blockly_namespaceObject.FieldDropdown(this.WHERE_OPTIONS,(function(t){var n="FROM_START"==t||"FROM_END"==t;if(n!=e){var a=this.sourceBlock_;return a.updateAt_(n),a.setFieldValue(t,"WHERE"),null}}));this.getInput("AT").appendField(t,"WHERE"),external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_TAIL&&this.moveInputBefore("TAIL",null)}},text_char_at={init:function(){this.setHelpUrl(external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(TEXTS_HUE),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_GET+" "+external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_FROM_START),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.TEXT_CHARAT2),this.setOutput(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.PROCEDURES_DEFRETURN_RETURN+external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_TYPE_STRING+external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_FROM_START+"n"+external_Blockly_namespaceObject.Msg.TEXT_CHARAT2)}},text_random_char={init:function(){this.setHelpUrl(external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(TEXTS_HUE),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.TEXT_RANDOM_CHAR),this.setOutput(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.TEXT_RANDOM_CHAR_TOOLTIP)}},text_substring2={init:function(){this.WHERE_OPTIONS_1=[[external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[external_Blockly_namespaceObject.Msg.LISTS_GET_SUBLIST_START_FIRST,"FIRST"]],this.WHERE_OPTIONS_2=[[external_Blockly_namespaceObject.Msg.LISTS_GET_SUBLIST_END_FROM_START,"FROM_START"],[external_Blockly_namespaceObject.Msg.LISTS_GET_SUBLIST_END_FROM_END,"FROM_END"],[external_Blockly_namespaceObject.Msg.LISTS_GET_SUBLIST_END_LAST,"LAST"]],this.setHelpUrl(external_Blockly_namespaceObject.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(TEXTS_HUE),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.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(external_Blockly_namespaceObject.Msg._GET_TEXT_SUBLIST_TOOLTIP)},mutationToDom:function(){var e=document.createElement("mutation"),t=this.getInput("AT1").type==external_Blockly_namespaceObject.INPUT_VALUE;e.setAttribute("at1",t);var n=this.getInput("AT2").type==external_Blockly_namespaceObject.INPUT_VALUE;return e.setAttribute("at2",n),e},domToMutation:function(e){var t="true"==e.getAttribute("at1"),n="true"==e.getAttribute("at2");this.updateAt_(1,t),this.updateAt_(2,n)},updateAt_:function(e,t){this.removeInput("AT"+e),this.removeInput("ORDINAL"+e,!0),t?(this.appendValueInput("AT"+e).setCheck(Number),external_Blockly_namespaceObject.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL"+e).appendField(external_Blockly_namespaceObject.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT"+e);var n=new external_Blockly_namespaceObject.FieldDropdown(this["WHERE_OPTIONS_"+e],(function(n){var a="FROM_START"==n||"FROM_END"==n;if(a!=t){var _=this.sourceBlock_;return _.updateAt_(e,a),_.setFieldValue(n,"WHERE"+e),null}}));this.getInput("AT"+e).appendField(n,"WHERE"+e),1==e&&(this.moveInputBefore("AT1","AT2"),this.getInput("ORDINAL1")&&this.moveInputBefore("ORDINAL1","AT2"))}},text_substring={init:function(){this.setHelpUrl(external_Blockly_namespaceObject.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(TEXTS_HUE),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT1").appendField(external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_GET+" "+external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_FROM_START),this.appendValueInput("AT2").appendField(external_Blockly_namespaceObject.Msg.LISTS_GET_SUBLIST_END_FROM_START),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.TEXT_CHARAT2),this.setInputsInline(!0),this.setOutput(!0,["List",String]),this.setTooltip(external_Blockly_namespaceObject.Msg._GET_TEXT_SUBLIST_TOOLTIP)}},text_equals_starts_ends={init:function(){var e=[[external_Blockly_namespaceObject.Msg.MIXLY_EQUALS,"==="],[external_Blockly_namespaceObject.Msg.MIXLY_STARTSWITH,"startswith"],[external_Blockly_namespaceObject.Msg.MIXLY_ENDSWITH,"endswith"]];this.setColour(TEXTS_HUE),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DOWHAT").setCheck(String),this.setOutput(!0,[Boolean,Number]),this.setInputsInline(!0)}},text_compare_to={init:function(){this.setColour(TEXTS_HUE),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(external_Blockly_namespaceObject.Msg.MIXLY_COMPARETO).setCheck(String),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_COMPARETO_HELP)}},text_capital={init:function(){var e=[[external_Blockly_namespaceObject.Msg.TEXT_UPPER,"upper"],[external_Blockly_namespaceObject.Msg.TEXT_TITLE,"title"],[external_Blockly_namespaceObject.Msg.TEXT_CAPITALIZE,"capitalize"],[external_Blockly_namespaceObject.Msg.TEXT_SWAPCASE,"swapcase"],[external_Blockly_namespaceObject.Msg.TEXT_LOWER,"lower"]];this.setColour(TEXTS_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"CAPITAL").setCheck(String),this.setOutput(!0,String);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CAPITAL");return{upper:external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TEXT_UPPER_TOOLTIP,title:external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TEXT_TITLE_TOOLTIP,swapcase:external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TEXT_SWAPCASE_TOOLTIP,capitalize:external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TEXT_CAPITALIZE_TOOLTIP,lower:external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TEXT_LOWER_TOOLTIP}[e]}))}},text_center={init:function(){var e=[[external_Blockly_namespaceObject.Msg.TEXT_LJUST,"ljust"],[external_Blockly_namespaceObject.Msg.TEXT_CENTER,"center"],[external_Blockly_namespaceObject.Msg.TEXT_RJUST,"rjust"]];this.setColour(TEXTS_HUE),this.appendValueInput("VAR").appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"CENTER").setCheck(String),this.appendValueInput("WID").appendField(external_Blockly_namespaceObject.Msg.MIXLY_WIDTH).setCheck(Number),this.appendValueInput("Symbol").appendField(external_Blockly_namespaceObject.Msg.MIXLY_RECT_Fill).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TEXT_CENTER_TOOLTIP)}},text_find={init:function(){this.setColour(TEXTS_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).setCheck(String),this.appendValueInput("STR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MID+external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER).setCheck(String),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_LIST_INDEX),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TEXT_FIND_TOOLTIP)}},text_join_seq={init:function(){this.setColour(TEXTS_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_USE_STR).setCheck(String),this.appendValueInput("LIST").appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_SEQ).setCheck("List","Tuple","Set","Dict"),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_GET_STR),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_TOOLTIP)}},text_replace={init:function(){this.setColour(TEXTS_HUE),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("STR1").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_REPLACE).setCheck(String),this.appendValueInput("STR2").appendField(external_Blockly_namespaceObject.Msg.LISTS_SET_INDEX_INPUT_TO).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TEXT_REPLACE_TOOLTIP)}},text_split={init:function(){this.setColour(TEXTS_HUE),this.appendValueInput("VAR"),this.appendValueInput("VAL").appendField(external_Blockly_namespaceObject.Msg.LIST_SPLIT_AS),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.LIST_SPLIT),this.setOutput(!0,"List"),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TEXT_SPLIT_TOOLTIP),this.setInputsInline(!0)}},text_strip={init:function(){var e=[[external_Blockly_namespaceObject.Msg.TEXT_TRIM_BOTH,"strip"],[external_Blockly_namespaceObject.Msg.TEXT_TRIM_LEFT,"lstrip"],[external_Blockly_namespaceObject.Msg.TEXT_TRIM_RIGHT,"rstrip"]];this.setColour(TEXTS_HUE),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.TEXT_STRIM),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"TOWHAT"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.TEXT_BLANK),this.setOutput(!0,String),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("TOWHAT");return{strip:external_Blockly_namespaceObject.Msg.TEXT_TRIM_BOTH_TOOLTIP,lstrip:external_Blockly_namespaceObject.Msg.TEXT_TRIM_LEFT_TOOLTIP,rstrip:external_Blockly_namespaceObject.Msg.TEXT_TRIM_RIGHT_TOOLTIP}[e]}))}},text_format={init:function(){this.setColour(TEXTS_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROPYTHON_FORMAT),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldTextInput("str"),"VAR"),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new external_Blockly_namespaceObject.icons.MutatorIcon(["text_create_with_item"],this)),this.setOutput(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TEXT_FORMAT_TOOLTIP)},mutationToDom:function(){var e=document.createElement("mutation");return e.setAttribute("items",this.itemCount_),e},domToMutation:function(e){this.itemCount_=parseInt(e.getAttribute("items"),10),this.updateShape_()},decompose:function(e){var t=e.newBlock("text_create_with_container");t.initSvg();for(var n=t.getInput("STACK").connection,a=0;at?e[t]:0==t?'"key"':'"key'+(t+1)+'"'),"KEY"+t).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},dicts_create_with_container={init:function(){this.setColour(DICTS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(external_Blockly_namespaceObject.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},dicts_create_with_item={init:function(){this.setColour(DICTS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},dicts_keys={init:function(){this.setColour(DICTS_HUE),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DICT_KEYS),this.setTooltip(external_Blockly_namespaceObject.Msg.DICTS_KEYS_TOOLTIP),this.setOutput(!0,"List")}},dicts_get={init:function(){this.setColour(DICTS_HUE),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(external_Blockly_namespaceObject.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DICTS_ADD_VALUE),this.setOutput(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.DICTS_GET_TOOLTIP)}},dicts_get_default={init:function(){this.setColour(DICTS_HUE),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(external_Blockly_namespaceObject.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DICTS_ADD_VALUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.DICTS_DEFAULT_VALUE),this.setOutput(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.DICTS_GET_DEFAULT_TOOLTIP)}},dicts_add_or_change={init:function(){this.setColour(DICTS_HUE),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(external_Blockly_namespaceObject.Msg.DICTS_ADD),this.appendDummyInput(),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.DICTS_ADD_VALUE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.DICTS_ADD_OR_CHANGE_TOOLTIP)}},dicts_delete={init:function(){this.setColour(DICTS_HUE),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(external_Blockly_namespaceObject.Msg.DICTS_DELETE_IN),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DICTS_DELETE_VALUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.DICTS_DELETE_TOOLTIP)}},dicts_update={init:function(){this.setColour(DICTS_HUE),this.appendValueInput("DICT2").setCheck("Dict").appendField(external_Blockly_namespaceObject.Msg.MAKE_DICT),this.appendValueInput("DICT").setCheck("Dict").appendField(external_Blockly_namespaceObject.Msg.DICT_UPDATE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MID),this.setTooltip(external_Blockly_namespaceObject.Msg.DICTS_UPDATE_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},dicts_clear={init:function(){this.setColour(DICTS_HUE),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DICT_CLEAR),this.setTooltip(external_Blockly_namespaceObject.Msg.DICTS_CLEAR_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},dicts_items={init:function(){this.setColour(DICTS_HUE),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DICT_ITEMS),this.setTooltip(external_Blockly_namespaceObject.Msg.DICTS_ITEMS_TOOLTIP),this.setOutput(!0,"List")}},dicts_values={init:function(){this.setColour(DICTS_HUE),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DICT_VALUES),this.setTooltip(external_Blockly_namespaceObject.Msg.DICTS_VALUES_TOOLTIP),this.setOutput(!0,"List")}},dicts_length={init:function(){this.setColour(DICTS_HUE),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_LENGTH),this.setTooltip(external_Blockly_namespaceObject.Msg.DICT_LENGTH_TOOLTIP),this.setOutput(!0,Number)}},dicts_deldict={init:function(){this.setColour(DICTS_HUE),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DICT_DELDICT),this.setTooltip(external_Blockly_namespaceObject.Msg.DICTS_DEL_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},dicts_add_change_del={init:function(){this.MODE=[[external_Blockly_namespaceObject.Msg.DICTS_ADD_OR_CHANGE,"INSERT"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_JS_DELETE_VAR,"DELETE"]],this.setHelpUrl(external_Blockly_namespaceObject.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(DICTS_HUE),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("AT2"),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).appendField(external_Blockly_namespaceObject.Msg.DICTS_ADD_VALUE),this.updateAt_(!0),this.setInputsInline(!0),this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0);var e=this;this.setTooltip((function(){var t="";switch(e.getFieldValue("WHERE")){case"INSERT":t=external_Blockly_namespaceObject.Msg.DICTS_ADD_TOOLTIP;break;case"DELETE":t=external_Blockly_namespaceObject.Msg.DICTS_DELETE_TOOLTIP}return t}))},mutationToDom:function(){var e=document.createElement("mutation"),t=this.getInput("AT2").type==external_Blockly_namespaceObject.INPUT_VALUE;return e.setAttribute("at2",t),e},domToMutation:function(e){var t="true"==e.getAttribute("at2");this.updateAt_(t)},updateAt_:function(e){this.removeInput("AT2"),this.removeInput("ORDINAL",!0),e?this.appendValueInput("AT2").setCheck(Number):this.appendDummyInput("AT2");var t=new external_Blockly_namespaceObject.FieldDropdown(this.MODE,(function(t){var n="INSERT"==t;if(n!=e){var a=this.sourceBlock_;return a.updateAt_(n),a.setFieldValue(t,"WHERE"),null}}));this.getInput("AT2").appendField(t,"WHERE")}},dicts_pop={init:function(){this.setColour(DICTS_HUE),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_DICT_POP),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DICTS_ADD_VALUE),this.setTooltip(external_Blockly_namespaceObject.Msg.DICT_POP_TOOLTIP),this.setInputsInline(!0),this.setOutput(!0)}},dicts_setdefault={init:function(){this.setColour(DICTS_HUE),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(external_Blockly_namespaceObject.Msg.DICTS_SET_DEFAULT),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DICTS_DEFAULT_VALUE),this.appendValueInput("VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.DICTS_SETDEFAULT_TOOLTIP)}},dicts_create_with_noreturn={init:function(){this.setColour(DICTS_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldLabel(external_Blockly_namespaceObject.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 external_Blockly_namespaceObject.icons.MutatorIcon(["dicts_create_with_item"],this)),this.setTooltip(external_Blockly_namespaceObject.Msg.DICTS_CREATE_WITH_TOOLTIP)},mutationToDom:function(){var e=document.createElement("mutation");return e.setAttribute("items",this.itemCount_),e},domToMutation:function(e){this.itemCount_=parseInt(e.getAttribute("items"),10),this.updateShape_()},decompose:function(e){var t=e.newBlock("dicts_create_with_container");t.initSvg();for(var n=t.getInput("STACK").connection,a=0;at?e[t]:0==t?'"key"':'"key'+(t+1)+'"'),"KEY"+t).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},dicts_todict={init:function(){this.setColour(DICTS_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_TODICT),this.setOutput(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_TOOLTIP_TODICT)}},dicts_to_json={init:function(){this.setColour(DICTS_HUE),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_TO_JSON),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0)}},json_to_dicts={init:function(){this.setColour(DICTS_HUE),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_CONVERT_TO_JSON),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0)}},dicts_to_to={init:function(){this.setColour(DICTS_HUE),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("VAR1").appendField("key1"),this.appendValueInput("VAR2").appendField("index"),this.appendValueInput("VAR3").appendField("key2"),this.appendValueInput("VAR4").appendField("key3"),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0)}},LOGIC_HUE=210,logic_compare={init:function(){var e=external_Blockly_namespaceObject.RTL?[["=","EQ"],["≠","NEQ"],[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["=","EQ"],["≠","NEQ"],["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(LOGIC_HUE),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{EQ:external_Blockly_namespaceObject.Msg.LOGIC_COMPARE_TOOLTIP_EQ,NEQ:external_Blockly_namespaceObject.Msg.LOGIC_COMPARE_TOOLTIP_NEQ,LT:external_Blockly_namespaceObject.Msg.LOGIC_COMPARE_TOOLTIP_LT,LTE:external_Blockly_namespaceObject.Msg.LOGIC_COMPARE_TOOLTIP_LTE,GT:external_Blockly_namespaceObject.Msg.LOGIC_COMPARE_TOOLTIP_GT,GTE:external_Blockly_namespaceObject.Msg.LOGIC_COMPARE_TOOLTIP_GTE}[e]})),this.prevBlocks_=[null,null]}},logic_compare_continous={init:function(){var e=external_Blockly_namespaceObject.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]],t=external_Blockly_namespaceObject.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(LOGIC_HUE),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"OP1"),this.appendValueInput("C").appendField(new external_Blockly_namespaceObject.FieldDropdown(t),"OP2"),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_LOGIC_COMPARE_CONTINOUS_TOOLTIP)}},logic_operation={init:function(){var e=[[external_Blockly_namespaceObject.Msg.LOGIC_OPERATION_AND,"AND"],[external_Blockly_namespaceObject.Msg.LOGIC_OPERATION_OR,"OR"],[external_Blockly_namespaceObject.Msg.LOGIC_OPERATION_NOR,"NOR"],[external_Blockly_namespaceObject.Msg.LOGIC_OPERATION_XOR,"XOR"]];this.setColour(LOGIC_HUE),this.setOutput(!0,Boolean),this.appendValueInput("A").setCheck([Boolean,Number]),this.appendValueInput("B").setCheck([Boolean,Number]).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{AND:external_Blockly_namespaceObject.Msg.LOGIC_OPERATION_TOOLTIP_AND,OR:external_Blockly_namespaceObject.Msg.LOGIC_OPERATION_TOOLTIP_OR,NOR:external_Blockly_namespaceObject.Msg.LOGIC_OPERATION_TOOLTIP_NOR,XOR:external_Blockly_namespaceObject.Msg.LOGIC_OPERATION_TOOLTIP_XOR}[e]}))}},logic_negate={init:function(){this.setColour(LOGIC_HUE),this.setOutput(!0,Boolean),this.appendValueInput("BOOL").setCheck([Number,Boolean]).appendField(external_Blockly_namespaceObject.Msg.LOGIC_NEGATE_TITLE),this.setTooltip(external_Blockly_namespaceObject.Msg.LOGIC_NEGATE_TOOLTIP)}},logic_boolean={init:function(){var e=[[external_Blockly_namespaceObject.Msg.LOGIC_BOOLEAN_TRUE,"TRUE"],[external_Blockly_namespaceObject.Msg.LOGIC_BOOLEAN_FALSE,"FALSE"]];this.setColour(LOGIC_HUE),this.setOutput(!0,Boolean),this.appendDummyInput().appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"BOOL"),this.setTooltip(external_Blockly_namespaceObject.Msg.LOGIC_BOOLEAN_TOOLTIP)}},logic_null={init:function(){this.setColour(LOGIC_HUE),this.setOutput(!0),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.LOGIC_NULL),this.setTooltip(external_Blockly_namespaceObject.Msg.LOGIC_NULL_TOOLTIP)}},logic_true_or_false={init:function(){this.setColour(LOGIC_HUE),this.appendValueInput("A"),this.appendValueInput("B").appendField(external_Blockly_namespaceObject.Msg.LOGIC_TERNARY_IF_TRUE),this.appendValueInput("C").appendField(external_Blockly_namespaceObject.Msg.LOGIC_TERNARY_IF_FALSE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_LOGIT_TRUEORFALSE)}},logic_is_in={init:function(){var e=[[external_Blockly_namespaceObject.Msg.TEXT_APPEND_TO,"in"],[external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_LOGIC_IS_NOT_IN,"not in"]];this.setColour(LOGIC_HUE),this.appendValueInput("A"),this.appendValueInput("B").setCheck([String,"List"]).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"BOOL"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MICROBIT_LOGIC_IS_IN),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.IN)}},logic_is={init:function(){var e=[[external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_LOGIC_IS,"is"],[external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_LOGIC_IS_NOT,"is not"]];this.setColour(LOGIC_HUE),this.appendValueInput("A"),this.appendValueInput("B").appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"BOOL"),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_LOGIC_IS_TOOLTIP)}},logic_tobool={init:function(){this.setColour(LOGIC_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_TOBOOL),this.setOutput(!0,Boolean),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_TOOLTIP_TOBOOL)}},STORAGE_HUE=0,storage_open_file_with_os={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("fn").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_STORAGE_OPEN_FILE_WITH_OS+"(For Windows)"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},storage_fileopen={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("FILENAME").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendValueInput("FILE").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_AS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("MODE"),n=external_Blockly_namespaceObject.Msg.MIXLY_USE,a=external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,_=external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,l=external_Blockly_namespaceObject.Msg.MIXLY_BELONG;return n+{r:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[t]+l+a+_}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},storage_fileopen_new={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("FILENAME").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("MODE"),n=external_Blockly_namespaceObject.Msg.MIXLY_USE,a=external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,_=external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,l=external_Blockly_namespaceObject.Msg.MIXLY_BELONG,s=external_Blockly_namespaceObject.Msg.PY_STORAGE_FILE_OBJECT;return n+{r:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[t]+l+a+_+s}))}},storage_fileopen_new_encoding={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("FILENAME").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE);this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXPY_TEXT_ENCODE).appendField(new external_Blockly_namespaceObject.FieldDropdown([["ANSI","ANSI"],["gbk","gbk"],["utf-8","utf-8"]]),"CODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("MODE"),n=external_Blockly_namespaceObject.Msg.MIXLY_USE,a=external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,_=external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,l=external_Blockly_namespaceObject.Msg.MIXLY_BELONG,s=external_Blockly_namespaceObject.Msg.PY_STORAGE_FILE_OBJECT;return n+{r:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[t]+l+a+_+s}))}},storage_file_write={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("data").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendValueInput("FILE").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE+external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_TYPE_STRING+external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE)}},storage_get_contents_without_para={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("FILE").setCheck("Variable").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL,"read"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE,"readline"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES,"readlines"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String)}},storage_get_contents={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("FILE").setCheck("Variable").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,"read"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,"readline"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE,"readlines"]]),"MODE"),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String);var e=this;this.setTooltip((function(){var t=e.getFieldValue("MODE"),n=external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE,a=external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER;return n+{read:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,readline:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,readlines:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE}[t]+"x"+a}))}},storage_get_a_line={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("FILE").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.setNextStatement(!0),this.appendValueInput("SIZE").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(external_Blockly_namespaceObject.Msg.MICROBIT_PYTHON_TYPE)}},storage_can_write_ornot={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("FILE").appendField(external_Blockly_namespaceObject.Msg.HTML_FILE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT1)}},storage_get_filename={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("FILE").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_FILENAME),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILENAME)}},storage_close_file={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("FILE").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE)}},storage_list_all_files={init:function(){this.setColour(STORAGE_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES)}};external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE;const storage_delete_file={init:function(){this.setColour(STORAGE_HUE),this.appendDummyInput().appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE,"remove"],[external_Blockly_namespaceObject.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(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE)}},storage_get_file_size={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("FILE").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE+external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE)}},storage_file_tell={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("FILE").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_RETURN_FILE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_PRESENT_LOCATION),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_TELL)}},storage_file_seek={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("FILE").setCheck("Variable").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION),this.appendDummyInput().appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,"start"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,"current"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END,"end"]]),"MODE"),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("MODE"),n=external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION+external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION,a=external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER,_=external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET;return n+" "+{start:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,current:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,end:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END}[t]+_+"x"+a}))}},storage_get_current_dir={init:function(){this.setColour(STORAGE_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR)}},storage_make_dir={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("PATH").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_ESP32_SET),this.appendDummyInput().appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,"mkdir"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_MAKEDIRS,"makedirs"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1);var e=this;this.setTooltip((function(){var t=e.getFieldValue("MODE");return external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH+"x"+external_Blockly_namespaceObject.Msg.MIXLY_ESP32_SET+{mkdir:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,makedirs:external_Blockly_namespaceObject.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[t]}))}},storage_rename={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("FILE").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME),this.appendValueInput("NEWFILE").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_AS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME)}},storage_change_dir={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("FILE").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR)}},storage_is_file={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("FILE").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT),this.appendDummyInput().appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.HTML_FILE,"isfile"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_DIR,"isdir"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean);let e=this;this.setTooltip((function(){var t=e.getFieldValue("MODE");return external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH+"x"+external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT+{isfile:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,isdir:external_Blockly_namespaceObject.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[t]}))}},sdcard_use_spi_init={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("SPISUB").appendField(external_Blockly_namespaceObject.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("SUB").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_SETUP+external_Blockly_namespaceObject.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(external_Blockly_namespaceObject.Msg.MIXLY_SD_CARD),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},sdcard_mount={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_SD_CARD),this.appendValueInput("DIR").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_SDCARD_MOUNT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip()}},Procedures={};Procedures.NAME_TYPE=external_Blockly_namespaceObject.PROCEDURE_CATEGORY_NAME,Procedures.allProcedures=function(e){for(var t=e.getAllBlocks(!1),n=[],a=[],_=0;_"),this.appendValueInput("style").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AIP_ATTR).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendStatementInput("DO").appendField(""),this.setInputsInline(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)}},html_style={init:function(){this.setColour(HTML_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.HTML_STYLE),this.appendStatementInput("STYLE"),this.setOutput(!0)}},html_form={init:function(){this.setColour(HTML_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.HTML_FORM_CONTENT).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.HTML_TEXT,"text"],[external_Blockly_namespaceObject.Msg.HTML_EMAIL,"email"],[external_Blockly_namespaceObject.Msg.HTML_NUMBER,"number"],[external_Blockly_namespaceObject.Msg.HTML_PASSWORD,"password"],[external_Blockly_namespaceObject.Msg.HTML_CHECKBOX,"checkbox"],[external_Blockly_namespaceObject.Msg.HTML_RADIOBUTTON,"radiobutton"],[external_Blockly_namespaceObject.Msg.HTML_BUTTON,"button"],[external_Blockly_namespaceObject.Msg.HTML_COLOUR,"colour"],[external_Blockly_namespaceObject.Msg.HTML_DATE,"date"],[external_Blockly_namespaceObject.Msg.HTML_LOCALTIME,"local time"],[external_Blockly_namespaceObject.Msg.HTML_FILE,"file"],[external_Blockly_namespaceObject.Msg.HTML_HIDDEN,"hidden"],[external_Blockly_namespaceObject.Msg.HTML_IMAGE,"image"],[external_Blockly_namespaceObject.Msg.HTML_MONTH,"month"],[external_Blockly_namespaceObject.Msg.HTML_RANGE,"range"],[external_Blockly_namespaceObject.Msg.HTML_RESET,"reset"],[external_Blockly_namespaceObject.Msg.HTML_SEARCH,"search"],[external_Blockly_namespaceObject.Msg.HTML_SUBMIT,"submit"],[external_Blockly_namespaceObject.Msg.HTML_TELEPHONENUMBER,"telephone number"],[external_Blockly_namespaceObject.Msg.HTML_TIME,"time"],[external_Blockly_namespaceObject.Msg.HTML_URL,"url"],[external_Blockly_namespaceObject.Msg.HTML_WEEK,"week"]]),"LEVEL"),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.HTML_NAME).appendField(new external_Blockly_namespaceObject.FieldTextInput("car"),"NAME"),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.HTML_VALUE).appendField(new external_Blockly_namespaceObject.FieldTextInput("go"),"VALUE"),this.appendValueInput("style").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AIP_ATTR).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},html_style_content={init:function(){this.setColour(HTML_HUE),this.appendDummyInput().appendField(new external_Blockly_namespaceObject.FieldTextInput("property"),"KEY").appendField(":").appendField(new external_Blockly_namespaceObject.FieldTextInput("value"),"VALUE"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},html_style_color={init:function(){this.setColour(HTML_HUE),this.appendDummyInput().appendField(new external_Blockly_namespaceObject.FieldTextInput("property"),"KEY").appendField(":").appendField(new external_Blockly_namespaceObject.FieldColour("#ff0000"),"RGB_LED_COLOR"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},html_text={init:function(){this.setColour(HTML_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.HTML_TEXT).appendField(new external_Blockly_namespaceObject.FieldTextInput("text"),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},UTILITY_HUE=160,raw_table={init:function(){this.setColour(UTILITY_HUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Tabular Abstraction:"),this.appendDummyInput().appendField(new external_Blockly_namespaceObject.FieldTable(""),"TEXT")}},raw_block={init:function(){this.setColour(UTILITY_HUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Code Block:"),this.appendDummyInput().appendField(new external_Blockly_namespaceObject.FieldMultilineInput(""),"TEXT")}},raw_expression={init:function(){this.setColour(UTILITY_HUE),this.appendDummyInput().appendField("Code Expression:"),this.appendDummyInput().appendField(new external_Blockly_namespaceObject.FieldMultilineInput(""),"TEXT"),this.setOutput(!0)}},raw_empty={init:function(){this.setColour(UTILITY_HUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("VALUE").appendField(""),this.setInputsInline(!1)}},text_comment={init:function(){this.setColour(UTILITY_HUE),this.appendDummyInput().appendTitle("Comment:").appendTitle(new external_Blockly_namespaceObject.FieldTextInput(""),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("This comment will be ignored by Python")}},type_check={init:function(){this.setColour(UTILITY_HUE),this.appendValueInput("VALUE").appendField(external_Blockly_namespaceObject.Msg.TYPE_CHECK),this.setInputsInline(!1),this.setOutput(!0,"Type")}},text_print_multiple={init:function(){this.setColour(UTILITY_HUE),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new external_Blockly_namespaceObject.icons.MutatorIcon(["text_print_multiple_item"],this)),this.setTooltip(external_Blockly_namespaceObject.Msg.TEXT_PRINT_TOOLTIP)},mutationToDom:function(){var e=document.createElement("mutation");return e.setAttribute("items",this.itemCount_),e},domToMutation:function(e){this.itemCount_=parseInt(e.getAttribute("items"),10),this.updateShape_()},decompose:function(e){var t=external_Blockly_namespaceObject.Block.obtain(e,"text_print_multiple_container");t.initSvg();for(var n=t.getInput("STACK").connection,a=0;a= stop:"," yield start"," start -= abs(step)"])};if(e=function(e,t,n){return"("+e+" <= "+t+") and "+o()+"("+e+", "+t+", "+n+") or "+p()+"("+e+", "+t+", "+n+")"},external_Blockly_namespaceObject.isNumber(a)&&external_Blockly_namespaceObject.isNumber(_)&&external_Blockly_namespaceObject.isNumber(l))a=parseFloat(a),_=parseFloat(_),l=Math.abs(parseFloat(l)),0==a%1&&0==_%1&&0==l%1?(a<=_?(_++,e=0==a&&1==l?_:a+", "+_,1!=l&&(e+=", "+l)):e=a+", "+--_+", -"+l,e="range("+e+")"):(e=a<_?o():p(),e+="("+a+", "+_+", "+l+")");else{var r=function(e,a){if(external_Blockly_namespaceObject.isNumber(e))e=parseFloat(e);else{var _=t.variableDB_.getDistinctName(n+a,external_Blockly_namespaceObject.Variables.NAME_TYPE);i+=_+" = "+e+"\n",e=_}return e};a=r(a,"_start"),_=r(_,"_end");r(l,"_inc"),e="number"==typeof a&&"number"==typeof _?a<_?o(0,_):p(0,_):e(a,_,l)}return i+="for "+n+" in "+e+":\n"+s},control_controls_for_range=function(e,t){var n=t.variableDB_.getName(e.getFieldValue("VAR"),external_Blockly_namespaceObject.Variables.NAME_TYPE),a=t.valueToCode(e,"FROM",t.ORDER_NONE)||"0",_=t.valueToCode(e,"TO",t.ORDER_NONE)||"0",l=t.valueToCode(e,"STEP",t.ORDER_NONE)||"1",s=t.statementToCode(e,"DO"),i=t.addLoopTrap(s,e.id)||t.PASS;return t.setups_.mixly_range="def mixly_range(start, stop, step):\n for i in range(start, stop + 1, step):\n yield i\n\n","for "+n+" in mixly_range("+a+", "+_+", "+l+"):\n"+i},control_controls_whileUntil=function(e,t){var n="UNTIL"==e.getFieldValue("MODE"),a=t.valueToCode(e,"BOOL",t.ORDER_NONE)||"False",_=t.statementToCode(e,"DO");return n&&(a="not "+a),"while "+a+":\n"+(_=t.addLoopTrap(_,e.id)||t.PASS)},control_controls_flow_statements=function(e){switch(e.getFieldValue("FLOW")){case"BREAK":return"break\n";case"CONTINUE":return"continue\n"}throw"Unknown flow statement."},control_controls_delay=function(e,t){return"sleep("+(t.valueToCode(this,"DELAY_TIME",t.ORDER_ATOMIC)||"1000")+")\n"},Panic_with_status_code=function(e,t){return"panic("+(t.valueToCode(this,"STATUS_CODE",t.ORDER_ATOMIC)||"1000")+")\n"},controls_millis=function(e,t){t.definitions_.import_time="import time";return["time.time()",t.ORDER_ATOMIC]},control_reset=function(e,t){return t.definitions_.import_microbit="from microbit import *","reset()\n"},controls_interrupts=function(){return"interrupts();\n"},controls_nointerrupts=function(){return"noInterrupts();\n"},control_controls_forEach=function(e,t){var n=t.valueToCode(this,"VAR",t.ORDER_ATOMIC)||"''",a=t.valueToCode(e,"LIST",t.ORDER_RELATIONAL)||"[]",_=t.statementToCode(e,"DO");return"for "+n+" in "+a+":\n"+(_=t.addLoopTrap(_,e.id)||t.PASS)},control_controls_range=function(e,t){return["range("+(t.valueToCode(this,"FROM",t.ORDER_NONE)||"0")+", "+(t.valueToCode(this,"TO",t.ORDER_NONE)||"0")+", "+(t.valueToCode(this,"STEP",t.ORDER_NONE)||"1")+")",t.ORDER_ATOMIC]},control_controls_lambda=function(e,t){var n="lambda "+(t.valueToCode(e,"BOOL",t.ORDER_NONE)||"None")+": "+(t.statementToCode(e,"DO")||"pass");return[n=n.replace("\n","").replace(" ",""),t.ORDER_ATOMIC]},time_sleep=function(e,t){return t.definitions_.import_time="import time","time.sleep("+(t.valueToCode(this,"DELAY_TIME",t.ORDER_ATOMIC)||"1000")+")\n"},control_controls_pass=function(){return"pass\n"},control_controls_thread=function(e,t){t.definitions_.import__thread="import _thread";var n=t.valueToCode(this,"VAR",t.ORDER_NONE)||"None";return"_thread.start_new_thread("+t.variableDB_.getName(t.valueToCode(this,"callback",t.ORDER_NONE)||"None",external_Blockly_namespaceObject.Procedures.NAME_TYPE)+", "+n+")\n"},control_do_while=function(e,t){var n=t.valueToCode(this,"select_data",t.ORDER_NONE)||"False",a=t.statementToCode(this,"input_data");return a="true"==this.getFieldValue("type")?a+" if ("+n+"):\n break\n":a+" if not ("+n+"):\n break\n","while True:\n"+(a=t.addLoopTrap(a,this.id)||t.PASS)},control_controls_repeat_ext=function(e,t){var n=t.valueToCode(this,"TIMES",t.ORDER_ATOMIC),a=t.statementToCode(e,"DO");return"for _my_variable in range("+n+"):\n"+(a=t.addLoopTrap(a,e.id)||t.PASS)},control_garbage_collection=function(e,t){t.definitions_.import_gc="import gc";return"gc.collect()\n"},control_get_mem_alloc=function(e,t){t.definitions_.import_gc="import gc";return["gc.mem_alloc()",t.ORDER_ATOMIC]},control_get_mem_free=function(e,t){t.definitions_.import_gc="import gc";return["gc.mem_free()",t.ORDER_ATOMIC]},control_get_unique_identifier=function(e,t){t.definitions_.import_machine="import machine";return["machine.unique_id()",t.ORDER_ATOMIC]},controls_repeat=control_controls_repeat_ext,control_datetime_fromtimestamp=function(e,t){return t.definitions_.import_datatime="import datatime",["datatime.datatime.fromtimestamp("+t.valueToCode(this,"VAR",t.ORDER_ATOMIC)+")",t.ORDER_ATOMIC]},math_math_number=function(e,t){var n=this.getFieldValue("NUM");return[n,n<0?t.ORDER_UNARY_PREFIX:t.ORDER_ATOMIC]},math_math_constant=function(e,t){return t.definitions_.import_math="import math",["math."+this.getFieldValue("CONSTANT"),t.ORDER_ATOMIC]},math_math_constant_mp=function(e,t){return t.definitions_.import_math="import math",["math."+this.getFieldValue("CONSTANT"),t.ORDER_ATOMIC]},math_math_bit=function(e,t){var n=this.getFieldValue("OP"),a=t.ORDER_ATOMIC;return["("+(t.valueToCode(this,"A",a)||"0")+n+(t.valueToCode(this,"B",a)||"0")+")",a]},math_math_arithmetic=function(e,t){var n=(a={ADD:[" + ",t.ORDER_ADDITIVE],MINUS:[" - ",t.ORDER_ADDITIVE],MULTIPLY:[" * ",t.ORDER_MULTIPLICATIVE],DIVIDE:[" / ",t.ORDER_MULTIPLICATIVE],QUYU:[" % ",t.ORDER_MULTIPLICATIVE],ZHENGCHU:[" // ",t.ORDER_MULTIPLICATIVE],POWER:[" ** ",t.ORDER_EXPONENTIATION]}[e.getFieldValue("OP")])[0],a=a[1];return[(t.valueToCode(e,"A",a)||"0")+n+(e=t.valueToCode(e,"B",a)||"0"),a]},math_math_selfcalcu=function(e,t){var n=t.valueToCode(this,"A",t.ORDER_RELATIONAL)||"0",a=t.valueToCode(this,"B",t.ORDER_RELATIONAL)||"0";switch(this.getFieldValue("OP")){case"ADD":var _="+=";break;case"MINUS":_="-=";break;case"MULTIPLY":_="*=";break;case"DIVIDE":_="/=";break;case"QUYU":_="%=";break;case"ZHENGCHU":_="//=";break;case"POWER":_="**="}return n+" "+_+" "+a+"\n"},math_single=function(e,t){var n,a=e.getFieldValue("OP");if("NEG"==a)return["-"+(n=t.valueToCode(e,"NUM",t.ORDER_UNARY_SIGN)||"0"),t.ORDER_UNARY_SIGN];switch(t.definitions_.import_math="import math",e="SIN"==a||"COS"==a||"TAN"==a?t.valueToCode(e,"NUM",t.ORDER_MULTIPLICATIVE)||"0":t.valueToCode(e,"NUM",t.ORDER_NONE)||"0",a){case"ABS":n="math.fabs("+e+")";break;case"ROOT":n="math.sqrt("+e+")";break;case"LN":n="math.log("+e+")";break;case"LOG10":n="math.log10("+e+")";break;case"EXP":n="math.exp("+e+")";break;case"POW10":n="math.pow(10,"+e+")";break;case"ROUND":n="round("+e+")";break;case"ROUNDUP":n="math.ceil("+e+")";break;case"ROUNDDOWN":n="math.floor("+e+")";break;case"SIN":n="math.sin("+e+")";break;case"COS":n="math.cos("+e+")";break;case"TAN":n="math.tan("+e+")";break;case"++":n="++("+e+")";break;case"--":n="--("+e+")";break;case"-":n="-("+e+")"}if(n)return[n,t.ORDER_EXPONENTIATION];switch(a){case"ASIN":n="math.degrees(math.asin("+e+"))";break;case"ACOS":n="math.degrees(math.acos("+e+"))";break;case"ATAN":n="math.degrees(math.atan("+e+"))"}return[n,t.ORDER_MULTIPLICATIVE]},math_math_trig=math_single,math_math_dec=function(e,t){var n=t.valueToCode(this,"NUM",t.ORDER_NONE)||"0";return[this.getFieldValue("OP")+"("+n+")",t.ORDER_ATOMIC]},math_math_to_int=function(e,t){var n=t.valueToCode(this,"A",t.ORDER_NONE)||"0",a=this.getFieldValue("OP"),_="";return"round"===a?_=a+"("+n+")":(_="math."+a+"("+n+")",t.definitions_.import_math="import math"),[_,t.ORDER_ATOMIC]},math_math_max_min=function(e,t){var n=t.valueToCode(this,"A",t.ORDER_NONE)||"0",a=t.valueToCode(this,"B",t.ORDER_NONE)||"0";return[this.getFieldValue("OP")+"("+n+", "+a+")",t.ORDER_ATOMIC]},math_math_random=function(e,t){t.definitions_.import_random="import random";var n=this.getFieldValue("TYPE"),a=t.valueToCode(this,"FROM",t.ORDER_NONE)||"0",_=t.valueToCode(this,"TO",t.ORDER_NONE)||"0";if("int"==n)var l="random.randint("+a+", "+_+")";else if("float"==n)l="random.uniform("+a+", "+_+")";return[l,t.ORDER_UNARY_POSTFIX]},math_math_map=function(e,t){var n=t.valueToCode(this,"NUM",t.ORDER_NONE),a=t.valueToCode(this,"fromLow",t.ORDER_ATOMIC),_=t.valueToCode(this,"fromHigh",t.ORDER_ATOMIC),l=t.valueToCode(this,"toLow",t.ORDER_ATOMIC),s=t.valueToCode(this,"toHigh",t.ORDER_ATOMIC);return t.definitions_.import_mixpy_math_map="from mixpy import math_map",["math_map("+n+", "+a+", "+_+", "+l+", "+s+")",t.ORDER_NONE]},math_math_constrain=function(e,t){return["min(max("+(t.valueToCode(this,"VALUE",t.ORDER_NONE)||"0")+", "+(t.valueToCode(this,"LOW",t.ORDER_NONE)||"0")+"), "+(t.valueToCode(this,"HIGH",t.ORDER_NONE)||"0")+")",t.ORDER_UNARY_POSTFIX]},math_math_number_base_conversion=function(e,t){var n=e.getFieldValue("OP"),a=t.valueToCode(this,"NUM",t.ORDER_NONE)||"0",_=e.getFieldValue("OP2");t.definitions_.import_math="import math";var l="",s="10";if("two"==n?s="2":"eight"==n?s="8":"ten"==n?s="10":"sixteen"==n&&(s="16"),"two"==_?l="bin":"eight"==_?l="oct":"ten"==_?l="":"sixteen"==_&&(l="hex"),""==l)var i="int(str("+a+"), "+s+")";else i=l+"(int(str("+a+"), "+s+"))";return[i,t.ORDER_ATOMIC]},math_math_random_seed=function(e,t){return t.definitions_.import_random="import random","random.seed("+(t.valueToCode(this,"NUM",t.ORDER_NONE)||"0")+");\n"},math_math_indexer_number=function(e,t){var n=this.getFieldValue("NUM");return[n,n<0?t.ORDER_UNARY_PREFIX:t.ORDER_ATOMIC]},math_math_round=function(e,t){return["round("+(t.valueToCode(this,"VALUE",t.ORDER_NONE)||"0")+", "+(t.valueToCode(this,"VAR",t.ORDER_NONE)||"0")+")",t.ORDER_ATOMIC]},math_text_to_number=function(e,t){var n=this.getFieldValue("TOWHAT"),a=t.valueToCode(this,"VAR",t.ORDER_ATOMIC);return"b"==n?[a+'.encode("utf-8")',t.ORDER_ATOMIC]:"bti"==n?["int.from_bytes("+a+',"big")',t.ORDER_ATOMIC]:[n+"("+a+")",t.ORDER_ATOMIC]},math_text_to_number_skulpt=function(e,t){var n=this.getFieldValue("TOWHAT"),a=t.valueToCode(this,"VAR",t.ORDER_ATOMIC);return"b"==n?[a+'.encode("utf-8")',t.ORDER_ATOMIC]:[n+"("+a+")",t.ORDER_ATOMIC]},math_base_map=math_math_map,math_turn_to_int=function(e,t){return t.definitions_.import_hexlify="from ubinascii import hexlify",["hexlify("+t.valueToCode(this,"VAR",t.ORDER_ATOMIC)+").decode()",t.ORDER_ATOMIC]},math_generate_cartesian_product=function(e,t){t.definitions_.import_itertools="import itertools";let n=t.valueToCode(this,"REPEAT",t.ORDER_ATOMIC),a=new Array(this.itemCount_);for(let e=0;e",GTE:">="};const logic_logic_operation=function(e,t){var n=this.getFieldValue("OP"),a="&&"==n?t.ORDER_LOGICAL_AND:t.ORDER_LOGICAL_OR,_=t.valueToCode(this,"A",a)||"False",l=t.valueToCode(this,"B",a)||"False";if("AND"==n)var s=_+" and "+l;else if("OR"==n)s=_+" or "+l;else if("NOR"==n)s="not("+_+"^"+l+")";else s=_+"^"+l;return[s,a]},logic_logic_negate=function(e,t){var n=t.ORDER_UNARY_PREFIX;return["not "+(t.valueToCode(this,"BOOL",n)||"False"),n]},logic_logic_boolean=function(e,t){return["TRUE"==this.getFieldValue("BOOL")?"True":"False",t.ORDER_ATOMIC]},logic_logic_null=function(e,t){return["None",t.ORDER_ATOMIC]},logic_logic_true_or_false=function(e,t){var n=t.valueToCode(this,"A",t.ORDER_ATOMIC)||"False";return["("+(t.valueToCode(this,"B",t.ORDER_ATOMIC)||"False")+" if "+n+" else "+(t.valueToCode(this,"C",t.ORDER_ATOMIC)||"False")+")",t.ORDER_ATOMIC]},logic_logic_is_in=function(e,t){var n=t.valueToCode(this,"A",t.ORDER_ATOMIC)||"''",a=t.valueToCode(this,"B",t.ORDER_ATOMIC)||"''";return[n+" "+this.getFieldValue("BOOL")+" "+a,t.ORDER_ATOMIC]},logic_logic_is=function(e,t){var n=t.valueToCode(this,"A",t.ORDER_ATOMIC)||"''",a=t.valueToCode(this,"B",t.ORDER_ATOMIC)||"''";return[n+" "+this.getFieldValue("BOOL")+" "+a,t.ORDER_ATOMIC]},logic_logic_tobool=function(e,t){return["bool("+(t.valueToCode(this,"VAR",t.ORDER_ATOMIC)||"0")+")",t.ORDER_ATOMIC]},storage_storage_open_file_with_os=function(e,t){return t.definitions_.import_os="import os","os.startfile("+t.valueToCode(this,"fn",t.ORDER_ATOMIC)+")\n"},storage_storage_fileopen=function(e,t){return t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+" = open("+t.valueToCode(this,"FILENAME",t.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')\n"},storage_storage_fileopen_new=function(e,t){return["open("+t.valueToCode(this,"FILENAME",t.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')",t.ORDER_ATOMIC]},storage_storage_fileopen_new_encoding=function(e,t){return["open("+t.valueToCode(this,"FILENAME",t.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"', encoding=\""+this.getFieldValue("CODE")+'")',t.ORDER_ATOMIC]},storage_storage_file_write=function(e,t){var n=t.valueToCode(this,"data",t.ORDER_ATOMIC);return t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+".write("+n+")\n"},storage_storage_get_contents_without_para=function(e,t){var n=this.getFieldValue("MODE");return[t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+"."+n+"()",t.ORDER_ATOMIC]},storage_storage_get_contents=function(e,t){var n=this.getFieldValue("MODE");return[t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+"."+n+"("+t.valueToCode(this,"SIZE",t.ORDER_ATOMIC)+")",t.ORDER_ATOMIC]},storage_storage_get_a_line=function(e,t){return[t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+".readline("+t.valueToCode(this,"SIZE",t.ORDER_ATOMIC)+")",t.ORDER_ATOMIC]},storage_storage_can_write_ornot=function(e,t){return[t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+".writable()",t.ORDER_ATOMIC]},storage_storage_get_filename=function(e,t){return[t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+".name()",t.ORDER_ATOMIC]},storage_storage_close_file=function(e,t){return t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+".close()\n"},storage_storage_list_all_files=function(e,t){t.definitions_.import_os="import os";return["os.listdir()",t.ORDER_ATOMIC]},storage_storage_delete_file=function(e,t){return t.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+")\n"},storage_storage_get_file_size=function(e,t){return t.definitions_.import_os="import os",["os.path.getsize("+t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+")",t.ORDER_ATOMIC]},storage_storage_file_tell=function(e,t){return[t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+".tell()",t.ORDER_ATOMIC]},storage_storage_file_seek=function(e,t){var n=this.getFieldValue("MODE"),a=0;return a="start"==n?0:"current"==n?1:2,t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+".seek("+t.valueToCode(this,"SIZE",t.ORDER_ATOMIC)+","+a+")\n"},storage_storage_change_dir=function(e,t){return t.definitions_.import_os="import os","os.chdir("+t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+")\n"},storage_storage_get_current_dir=function(e,t){t.definitions_.import_os="import os";return["os.getcwd()",t.ORDER_ATOMIC]},storage_storage_make_dir=function(e,t){return t.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+t.valueToCode(this,"PATH",t.ORDER_ATOMIC)+")\n"},storage_storage_rename=function(e,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"},storage_storage_is_file=function(e,t){t.definitions_.import_os="import os";var n=t.valueToCode(this,"FILE",t.ORDER_ATOMIC);return["os."+this.getFieldValue("MODE")+"("+n+")",t.ORDER_ATOMIC]},storage_sdcard_use_spi_init=function(e,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"},storage_sdcard_mount=function(e,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"},procedures_procedures_defreturn=function(e,t){var n=t.variableDB_.getName(this.getFieldValue("NAME"),external_Blockly_namespaceObject.Procedures.NAME_TYPE),a=(this.getInput("STACK")&&t.statementToCode(this,"STACK"))??" pass\n";t.INFINITE_LOOP_TRAP&&(a=t.INFINITE_LOOP_TRAP.replace(/%1/g,"'"+this.id+"'")+a);var _=t.valueToCode(this,"RETURN",t.ORDER_NONE)||"";_&&(_=" return "+_+"\n");for(var l=[],s=0;s\n\n\n\t\n"+t.statementToCode(this,"HEAD")+"\n\n"+t.statementToCode(this,"BODY")+"\n\n'''",t.ORDER_ATOMIC]},html_html_title=function(e,t){var n=t.statementToCode(this,"DO"),a=this.getFieldValue("LEVEL");return"\n"+n+"\n"},html_html_head_body=function(e,t){var n=t.statementToCode(this,"DO"),a=this.getFieldValue("LEVEL");if("head"==a)var _="<"+a+'>\n\t\n'+n+""+a+">\n";else _="<"+a+">\n"+n+""+a+">\n";return _},html_html_content=function(e,t){var n=t.statementToCode(this,"DO"),a=this.getFieldValue("LEVEL");return"<"+a+">\n"+n+""+a+">\n"},html_html_content_more=function(e,t){var n=t.statementToCode(this,"DO"),a=t.valueToCode(this,"style"),_=this.getFieldValue("LEVEL");return"<"+_+" "+a+" >\n"+n+""+_+">\n"},html_html_style=function(e,t){return['style="'+t.statementToCode(this,"STYLE")+'"',t.ORDER_ATOMIC]},html_html_form=function(e,t){return'"},html_html_style_content=function(){return this.getFieldValue("KEY")+":"+this.getFieldValue("VALUE")+";"},html_html_text=function(){return this.getFieldValue("TEXT")+"\n"},utility_raw_block=function(e){return e.getFieldValue("TEXT")+"\n"},utility_raw_expression=function(e,t){return[e.getFieldValue("TEXT"),t.ORDER_ATOMIC]},utility_raw_empty=function(e,t){return(t.valueToCode(e,"VALUE",t.ORDER_ATOMIC)||"")+"\n"},utility_raw_table=function(){return""},utility_type_check=function(e,t){return["type("+(t.valueToCode(e,"VALUE",t.ORDER_MEMBER)||"___")+")",t.ORDER_ATOMIC]},utility_function_call=function(e,t){for(var n=e.getFieldValue("NAME"),a=e.hasReturn_,_=new Array(e.itemCount_),l=0;l0?t.join("\n")+"\n"+a.join("\n")+"\n"+_.join("")+"\n"+e+"while True:\n"+l.join("")+s.join("\n"):t.join("\n")+"\n"+a.join("\n")+"\n"+_.join("")+"\n"+e+s.join("\n")},Python.scrubNakedValue=function(e){return e+"\n"},Python.quote_=function(e){var t="'";return-1!==(e=e.replace(/\\/g,"\\\\").replace(/\n/g,"\\\n")).indexOf("'")&&(-1===e.indexOf('"')?t='"':e=e.replace(/'/g,"\\'")),t+e+t},Python.multiline_quote_=function(e){return"'''"+(e=e.replace(/'''/g,"\\'\\'\\'"))+"'''"},Python.scrub_=function(e,t,n){var a="";if(!e.outputConnection||!e.outputConnection.targetConnection){(l=e.getCommentText())&&(l=external_Blockly_namespaceObject.utils.string.wrap(l,Python.COMMENT_WRAP-3),a+=Python.prefixLines(l+"\n","# "));for(var _=0;_0?"int("+i+" + "+_+")":_<0?"int("+i+" - "+-_+")":"int("+i+")",a&&(i="-"+i)),i};const AI_HUE=205,AI_ChooseAndGet={init:function(){this.setColour(AI_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_CHOOSE_AND_GET).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_CHOOSE_AND_GET_ONE_FILE_NAME,"getOneFile"],[external_Blockly_namespaceObject.Msg.MIXLY_CHOOSE_AND_GET_MANY_FILE_NAMES,"getManyFiles"],[external_Blockly_namespaceObject.Msg.MIXLY_CHOOSE_AND_GET_DIR,"getDirectory"]]),"TYPE"),this.setInputsInline(!0),this.setOutput(!0)}},AI_client={init:function(){this.setColour(AI_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_SETUP).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_AipImageClassify,"AipImageClassify"],[external_Blockly_namespaceObject.Msg.MIXLY_AipSpeech,"AipSpeech"],[external_Blockly_namespaceObject.Msg.MIXLY_AipImageCensor,"AipImageCensor"],[external_Blockly_namespaceObject.Msg.MIXLY_AipFace,"AipFace"],[external_Blockly_namespaceObject.Msg.MIXLY_AipOcr,"AipOcr"],[external_Blockly_namespaceObject.Msg.MIXLY_AipNlp,"AipNlp"]]),"CTYPE"),this.appendValueInput("SUB").appendField(external_Blockly_namespaceObject.Msg.MIXLY_Client).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("API_KEY").appendField("API_KEY").setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("SECRET_KEY").appendField("SECRET_KEY").setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},AI_Speech_synthesis={init:function(){this.setColour(AI_HUE),this.appendValueInput("SUB").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipSpeech_synthesis).appendField(external_Blockly_namespaceObject.Msg.MIXLY_Client).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("STR").appendField(external_Blockly_namespaceObject.Msg.OLED_STRING).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("ATTR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AIP_ATTR).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_AipSpeech_synthesis_TOOLTIP),this.setInputsInline(!1),this.setOutput(!0)}},AI_Speech_asr={init:function(){this.setColour(AI_HUE),this.appendValueInput("SUB").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipSpeech_asr).appendField(external_Blockly_namespaceObject.Msg.MIXLY_Client).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("FILE").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipSpeech_File).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("ATTR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AIP_ATTR).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_AipSpeech_ASR_TOOLTIP),this.setInputsInline(!1),this.setOutput(!0)}},AI_ImageClassify={init:function(){this.setColour(AI_HUE),this.appendValueInput("SUB").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipImageClassify).appendField(external_Blockly_namespaceObject.Msg.MIXLY_Client).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("FUNC").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AIP_FUNC).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("ADDR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipImageClassify_Image).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("ATTR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AIP_ATTR).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_AipImageClassify_advancedGeneral_TOOLTIP),this.setInputsInline(!1),this.setOutput(!0)}},AI_ImageClassify_Func={init:function(){this.setColour(AI_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_AipImageClassify_advancedGeneral,"advancedGeneral"],[external_Blockly_namespaceObject.Msg.MIXLY_AipImageClassify_dishDetect,"dishDetect"],[external_Blockly_namespaceObject.Msg.MIXLY_AipImageClassify_carDetect,"carDetect"],[external_Blockly_namespaceObject.Msg.MIXLY_AipImageClassify_animalDetect,"animalDetect"],[external_Blockly_namespaceObject.Msg.MIXLY_AipImageClassify_plantDetect,"plantDetect"],[external_Blockly_namespaceObject.Msg.MIXLY_AipImageClassify_logoSearch,"logoSearch"]]),"TYPE"),this.setOutput(!0)}},AI_Face_match={init:function(){this.setColour(AI_HUE),this.appendValueInput("SUB").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipFace_match).appendField(external_Blockly_namespaceObject.Msg.MIXLY_Client).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipImageClassify_Image+"1"+external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("VAR2").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipImageClassify_Image+"2"+external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("ATTR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AIP_ATTR).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_AipFace_match_TOOLTIP),this.setInputsInline(!1),this.setOutput(!0)}},AI_Ocr={init:function(){this.setColour(AI_HUE),this.appendValueInput("SUB").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipOcr).appendField(external_Blockly_namespaceObject.Msg.MIXLY_Client).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("FUNC").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AIP_FUNC).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("ADDR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipImageClassify_Image).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("ATTR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AIP_ATTR).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_AipOcr_TOOLTIP),this.setInputsInline(!1),this.setOutput(!0)}},AI_Ocr_Func={init:function(){this.setColour(AI_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_AipOcr_basicGeneral,"basicGeneral"],[external_Blockly_namespaceObject.Msg.MIXLY_AipOcr_webImage,"webImage"],[external_Blockly_namespaceObject.Msg.MIXLY_AipOcr_idcard,"idcard"],[external_Blockly_namespaceObject.Msg.MIXLY_AipOcr_bankcard,"bankcard"],[external_Blockly_namespaceObject.Msg.MIXLY_AipOcr_drivingLicense,"drivingLicense"],[external_Blockly_namespaceObject.Msg.MIXLY_AipOcr_vehicleLicense,"vehicleLicense"],[external_Blockly_namespaceObject.Msg.MIXLY_AipOcr_licensePlate,"licensePlate"],[external_Blockly_namespaceObject.Msg.MIXLY_AipOcr_businessLicense,"businessLicense"],[external_Blockly_namespaceObject.Msg.MIXLY_AipOcr_receipt,"receipt"],[external_Blockly_namespaceObject.Msg.MIXLY_AipOcr_trainTicket,"trainTicket"],[external_Blockly_namespaceObject.Msg.MIXLY_AipOcr_taxiReceipt,"taxiReceipt"],[external_Blockly_namespaceObject.Msg.MIXLY_AipOcr_form,"tableRecognition"],[external_Blockly_namespaceObject.Msg.MIXLY_AipOcr_vatInvoice,"vatInvoice"],[external_Blockly_namespaceObject.Msg.MIXLY_AipOcr_passport,"passport"],[external_Blockly_namespaceObject.Msg.MIXLY_AipOcr_handwriting,"handwriting"]]),"TYPE"),this.setOutput(!0)}},AI_Nlp={init:function(){this.setColour(AI_HUE),this.appendValueInput("SUB").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipNlp).appendField(external_Blockly_namespaceObject.Msg.MIXLY_Client).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("FUNC").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AIP_FUNC).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("STR").appendField(external_Blockly_namespaceObject.Msg.OLED_STRING).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("ATTR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AIP_ATTR).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_TOOLTIP),this.setInputsInline(!1),this.setOutput(!0)}},AI_Nlp_Sim={init:function(){this.setColour(AI_HUE),this.appendValueInput("SUB").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_Sim).appendField(external_Blockly_namespaceObject.Msg.MIXLY_Client).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("FUNC").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AIP_FUNC).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("STR1").appendField(external_Blockly_namespaceObject.Msg.OLED_STRING+"1").setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("STR2").appendField(external_Blockly_namespaceObject.Msg.OLED_STRING+"2").setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("ATTR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AIP_ATTR).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_Sim_TOOLTIP),this.setInputsInline(!1),this.setOutput(!0)}},AI_Nlp_Func={init:function(){this.setColour(AI_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_lexer,"lexer"],[external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_depParser,"depParser"],[external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_wordEmbedding,"wordEmbedding"],[external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_dnnlm,"dnnlm"],[external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_commentTag,"commentTag"],[external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_sentimentClassify,"sentimentClassify"],[external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_keyword,"keyword"],[external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_topic,"topic"],[external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_ecnet,"ecnet"],[external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_emotion,"emotion"]]),"TYPE"),this.setOutput(!0)}},AI_Nlp_Func_sim={init:function(){this.setColour(AI_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_wordSimEmbedding,"wordSimEmbedding"],[external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_simnet,"simnet"]]),"TYPE"),this.setOutput(!0)}},AI_Nlp_Topic={init:function(){this.setColour(AI_HUE),this.appendValueInput("SUB").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_topic).appendField(external_Blockly_namespaceObject.Msg.MIXLY_Client).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("STR1").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_Topic_Title).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("STR2").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_Topic_Content).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_Topic_TOOLTIP),this.setInputsInline(!1),this.setOutput(!0)}},AI_Nlp_newsSummary={init:function(){this.setColour(AI_HUE),this.appendValueInput("SUB").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_summary).appendField(external_Blockly_namespaceObject.Msg.MIXLY_Client).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("STR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_Topic_Content).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("LEN").appendField(external_Blockly_namespaceObject.Msg.MIXLY_LIST_LEN).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("ATTR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AIP_ATTR).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_Summary_TOOLTIP),this.setInputsInline(!1),this.setOutput(!0)}},AI_audio={init:function(){this.setColour(AI_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXPY_AI_AUDIO),this.appendValueInput("TIME").appendField(external_Blockly_namespaceObject.Msg.MIXPY_AI_AUDIO_TIME),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXPY_AI_AUDIO_TOOLTIP)}},AI_photo={init:function(){this.setColour(AI_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXPY_AI_PHOTO),this.appendValueInput("BUT").appendField(external_Blockly_namespaceObject.Msg.MIXPY_AI_PHOTO_BUTTON),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXPY_AI_PHOTO_TOOLTIP)}},AI_result={init:function(){this.setColour(AI_HUE),this.appendValueInput("AI").appendField(external_Blockly_namespaceObject.Msg.MIXPY_AI_RESULT).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_AipImageClassify,"Image"],[external_Blockly_namespaceObject.Msg.MIXLY_AipSpeech_asr,"Speech"],[external_Blockly_namespaceObject.Msg.MIXLY_AipFace_match,"Face"],[external_Blockly_namespaceObject.Msg.MIXLY_AipOcr,"Ocr"],[external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_simnet,"OcrSimilarity"],[external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_sentimentClassify,"Emotion"]]),"CTYPE"),this.setOutput(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.LOGIC_NEGATE_TOOLTIP)}},ALGORITHM_HUE="#526FC3",algorithm_prepare={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_PREPARE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_add_school={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_ADD_SCHOOL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_find_path={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_FIND_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_new_path={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_NEW_PATH),this.setOutput(!0)}},algorithm_set_path={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_SET_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_add_path={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_ADD_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_del_path={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_DEL_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_return_path={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_RETURN_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_no_left={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_NO_LEFT),this.setOutput(!0)}},algorithm_print_path={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_PRINT_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_prepare2={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_PREPARE2),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_current_school={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_CURRENT_SCHOOL),this.setOutput(!0)}},algorithm_no_path={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_NO_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_prepare_2_1={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_PREPARE_2_1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_prepare_2_2={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_PREPARE_2_2),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_move_recent={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_MOVE_RECENT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_not_home={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_NOT_HOME),this.setOutput(!0)}},algorithm_not_school={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_NOT_SCHOOL),this.setOutput(!0)}},algorithm_print_path2={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_PRINT_PATH2),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},hanoi_init={init:function(){this.appendDummyInput().appendField("准备").appendField(new external_Blockly_namespaceObject.FieldNumber(3,0,100,1),"NUM").appendField("层汉诺塔"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},hanoi_move={init:function(){this.appendDummyInput().appendField("移动圆盘从"),this.appendValueInput("FROM_NUM").setCheck(null).appendField("柱"),this.appendDummyInput().appendField("到"),this.appendValueInput("TO_NUM").setCheck(null).appendField("柱"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_all_books={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_ALL_BOOKS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_all_books_sequence={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_ALL_BOOKS2),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_first_book={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_FIRST_BOOK),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_no_ring2={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_NO_RING),this.setOutput(!0)}},algorithm_yes_ring2={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_YES_RING),this.setOutput(!0)}},algorithm_next_book={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_NEXT_BOOK),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_two_left={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_TWO_LEFT),this.setOutput(!0)}},algorithm_divide_books={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_DIVIDE_BOOKS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_get_half_books={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_GET_HALF_BOOKS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_delete_book={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_DELETE_BOOK),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_delete_books={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_DELETE_BOOKS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_delete_books2={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_DELETE_BOOKS2),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_print_book2={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_PRINT_BOOK),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_book_scale={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("设置待查书总数 N=").appendField(new external_Blockly_namespaceObject.FieldDropdown([["5","5"],["10","10"],["20","20"],["50","50"]]),"NUM"),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_number_zero={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_NUMBER_ZERO),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_number_add={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_NUMBER_ADD),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_print_number={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_PRINT_NUMBER),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_get_book_num={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField("n"+external_Blockly_namespaceObject.Msg.MIXLY_VALUE2).appendField(new external_Blockly_namespaceObject.FieldTextInput("50"),"NUM"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_print_sequence={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_PRINT_SEQUENCE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_print_divide={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_PRINT_DIVIDE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_init_jttl={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("初始化鸡兔同笼问题:"),this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("有若干只鸡、兔在同一个笼子里。"),this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("从上面数鸡兔有10个头,"),this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("从下面数鸡兔有32只脚。"),this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("问笼中有多少只鸡和多少只兔?"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_rabbit_zero={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("假设兔子的数量为0只"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_rabbit_number_in_range={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("兔子的数量在范围之内"),this.setOutput(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_chick_calculate={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("根据(头数-兔子数)计算出鸡的数量"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_check_feet={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("计算得到脚的数量正确"),this.setOutput(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_print_jttl_answer={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("输出鸡、兔的数量"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_rabbit_add={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("假设兔子数量要更多一只"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_init_fzsf={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("加载路线图"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_fz_calc={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("计算").appendField(new external_Blockly_namespaceObject.FieldDropdown([["S1","1"],["S2","2"],["S3","3"],["S4","4"]]),"PATHNAME").appendField("长度"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_fz_calc_first_min={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("设置S1为Smin"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_fz_compare={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField(new external_Blockly_namespaceObject.FieldDropdown([["S1","1"],["S2","2"],["S3","3"],["S4","4"]]),"PATHNAME").appendField("的长度比").appendField(new external_Blockly_namespaceObject.FieldDropdown([["S1","1"],["S2","2"],["S3","3"],["S4","4"]]),"PATHNAME2").appendField("短"),this.setOutput(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_fz_set_min={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("设置").appendField(new external_Blockly_namespaceObject.FieldDropdown([["S1","1"],["S2","2"],["S3","3"],["S4","4"]]),"PATHNAME").appendField("为Smin"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_fz_move={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("按照Smin移动"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_init_hxdb={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("初始化韩信点兵问题:"),this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("有未知数量的若干士兵。"),this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("若3人一排列队,多1人;"),this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("若5人一排列队,多2人;"),this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("若7人一排列队,多2人;"),this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("问士兵的数量最少是多少人?"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_hxdb_init_soldier={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("初始化士兵为").appendField(new external_Blockly_namespaceObject.FieldTextInput("7"),"NUM").appendField("个"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_hxdb_stand_in_line={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("使士兵").appendField(new external_Blockly_namespaceObject.FieldDropdown([["3","3"],["5","5"],["7","7"]]),"NUM").appendField("人一排列队"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_hxdb_last_line={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("剩余").appendField(new external_Blockly_namespaceObject.FieldTextInput("1"),"NUM").appendField("个士兵"),this.setOutput(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_hxdb_add={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("增加1个士兵"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_hxdb_result={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("输出士兵数量"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},hanoi_init_offline={init:function(){this.appendDummyInput().appendField("准备").appendField(new external_Blockly_namespaceObject.FieldNumber(3,0,100,1),"NUM").appendField("层汉诺塔"),this.appendValueInput("VAR").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setInputsInline(!0),this.setTooltip(""),this.setHelpUrl("")}},algorithm_get_current_location={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_GET_CURRENT_LOCATION),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_void_path={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_VOID_PATH),this.setOutput(!0)}},algorithm_color_seclet={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput("").setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(new external_Blockly_namespaceObject.FieldColour("ff0000"),"COLOR"),this.setInputsInline(!0),this.setOutput(!0,String)}},COMMUNICATE_HUE="#3288dd",requests_get_old={init:function(){this.setColour(COMMUNICATE_HUE),this.appendValueInput("DOMAIN").appendField(external_Blockly_namespaceObject.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_REQUESTS_GET).appendField(new external_Blockly_namespaceObject.FieldTextInput("response"),"VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.blockpy_REQUESTS_GET_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},requests_get={init:function(){this.setColour(COMMUNICATE_HUE),this.appendValueInput("URL").appendField(external_Blockly_namespaceObject.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_CONDUCT).appendField(new external_Blockly_namespaceObject.FieldDropdown([["get","get"],["head","head"],["delete","delete"]]),"TYPE").appendField(external_Blockly_namespaceObject.Msg.blockpy_REQUESTS).appendField(external_Blockly_namespaceObject.Msg.MIXPY_REQUESTS_GET_RESULT),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip("")}},requests_post={init:function(){this.setColour(COMMUNICATE_HUE),this.appendValueInput("URL").appendField(external_Blockly_namespaceObject.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_CONDUCT).appendField(new external_Blockly_namespaceObject.FieldDropdown([["post","post"],["put","put"],["patch","patch"]]),"TYPE").appendField(external_Blockly_namespaceObject.Msg.blockpy_REQUESTS),this.appendValueInput("data").appendField(external_Blockly_namespaceObject.Msg.blockpy_REQUESTS+external_Blockly_namespaceObject.Msg.OLED_STRING),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXPY_REQUESTS_GET_RESULT),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip("")}},requests_attribute={init:function(){this.appendValueInput("VAL");var e=[[external_Blockly_namespaceObject.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE,"status_code"],[external_Blockly_namespaceObject.Msg.blockpy_REQUESTS_GET_ATTR_TEXT,"text"],[external_Blockly_namespaceObject.Msg.blockpy_REQUESTS_GET_ATTR_COOKIES,"cookies"],[external_Blockly_namespaceObject.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT,"content"],[external_Blockly_namespaceObject.Msg.MIXPY_TEXT_ENCODE,"encoding"]];this.setColour(COMMUNICATE_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_JS_GET).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"ATTR"),this.setInputsInline(!0),this.setOutput(!0,String)}},requests_method={init:function(){this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.DISPLAY_IMAGE_LET2).setCheck(String);this.setColour(COMMUNICATE_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_CONDUCT).appendField(new external_Blockly_namespaceObject.FieldDropdown([["post","post"],["put","put"],["delete","delete"],["head","head"],["option","option"]]),"DIR"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_REQUESTS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("DIR");return{forward:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_FORWARD,backward:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_BACKWARD}[t]}))}},CV_HUE="f0a559",cv_read_image={init:function(){this.setColour(CV_HUE),this.appendValueInput("FILE").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_CV_IMREAD),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)}},cv_show_image={init:function(){this.setColour(CV_HUE),this.appendValueInput("FILE").appendField(external_Blockly_namespaceObject.Msg.OLED_BITMAP),this.appendValueInput("data").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_Topic_Title),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},cv_write_image={init:function(){this.setColour(CV_HUE),this.appendValueInput("FILE").appendField(external_Blockly_namespaceObject.Msg.MIXLY_CV_IMWRITE),this.appendValueInput("data").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.HTML_NAME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},cv_waitkey={init:function(){this.setColour(CV_HUE),this.appendValueInput("data").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_DELAY),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MILLIS+external_Blockly_namespaceObject.Msg.MIXLY_CV_OR_PRESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_CV_WAITKEY_TOOLTIP)}},cv_destroy_all={init:function(){this.setColour(CV_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_CV_DESTROY_ALL),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},cv_line_rect={init:function(){this.setColour(CV_HUE),this.appendValueInput("FILE").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_IMAGE);var e=[[external_Blockly_namespaceObject.Msg.MIXLY_CV_RECT,"rectangle"],[external_Blockly_namespaceObject.Msg.MIXLY_CV_LINE,"line"]];this.appendValueInput("x1").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_DISPLAY_DRAW).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_CV_DRAWLINE_BEGIN+"(x1"),this.appendValueInput("y1").setCheck(Number).appendField(",y1"),this.appendValueInput("x2").setCheck(Number).appendField(") "+external_Blockly_namespaceObject.Msg.MIXLY_CV_DRAWLINE_END+"(x2"),this.appendValueInput("y2").setCheck(Number).appendField(",y2"),this.appendDummyInput().appendField(") "+external_Blockly_namespaceObject.Msg.MIXLY_CV_DRAWLINE_COLOR).appendField(new external_Blockly_namespaceObject.FieldColour("#ff0000"),"FIELDNAME"),this.appendValueInput("thick").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_CV_DRAWLINE_THICKNESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_CV_DRAWLINE_RECT_TOOLTIP)}},cv_text={init:function(){this.setColour(CV_HUE),this.appendValueInput("FILE").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_IMAGE);this.appendValueInput("data").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_CV_DRAWTEXT),this.appendValueInput("x1").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_CV_DRAWLINE_BEGIN+"(x1"),this.appendValueInput("y1").setCheck(Number).appendField(",y1"),this.appendDummyInput().appendField(") "+external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_FONT_NAME).appendField(new external_Blockly_namespaceObject.FieldDropdown([["SIMPLEX","SIMPLEX"],["PLAIN","PLAIN"],["DUPLEX","DUPLEX"],["COMPLEX","COMPLEX"],["COMPLEX_SMALL","COMPLEX_SMALL"],["TRIPLEX","TRIPLEX"],["SCRIPT_SIMPLEX","SCRIPT_SIMPLEX"],["SCRIPT_COMPLEX","SCRIPT_COMPLEX"]]),"font"),this.appendValueInput("size").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendDummyInput().appendField(") "+external_Blockly_namespaceObject.Msg.MIXLY_CV_DRAWLINE_COLOR).appendField(new external_Blockly_namespaceObject.FieldColour("#ff0000"),"FIELDNAME"),this.appendValueInput("thick").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_CV_DRAWLINE_THICKNESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_CV_DRAWLINE_RECT_TOOLTIP)}},cv_face_classifier={init:function(){this.setColour(CV_HUE),this.appendValueInput("FILE").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_CV_FACE_CLASSIFIER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)}},cv_face_detect={init:function(){this.setColour(CV_HUE),this.appendValueInput("FILE").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_IMAGE),this.appendValueInput("FACE").appendField(external_Blockly_namespaceObject.Msg.MIXLY_CV_FACE_DETECT),this.appendValueInput("SCALE").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_CV_FACE_DETECT_SCALE),this.appendValueInput("NEIGHBOR").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_CV_FACE_DETECT_NEIGHBOR),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)}},cv_face_detect_all={init:function(){this.setColour(CV_HUE),this.appendValueInput("FILE").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_IMAGE),this.appendValueInput("FACE").appendField(external_Blockly_namespaceObject.Msg.MIXLY_CV_FACE_DETECT),this.appendValueInput("SCALE").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_CV_FACE_DETECT_SCALE),this.appendValueInput("NEIGHBOR").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_CV_FACE_DETECT_NEIGHBOR),this.appendValueInput("x1").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_CV_FACE_DETECT_RANGE).appendField(external_Blockly_namespaceObject.Msg.blockpy_TUPLE_MIN),this.appendValueInput("y1").setCheck(Number).appendField("×"),this.appendValueInput("x2").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.blockpy_TUPLE_MAX),this.appendValueInput("y2").setCheck(Number).appendField("×"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)}},DATA_HUE=170,series_create={init:function(){this.setColour(DATA_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_series_create).appendField(new external_Blockly_namespaceObject.FieldTextInput("ser1"),"VAR"),this.appendValueInput("SER").appendField(external_Blockly_namespaceObject.Msg.blockpy_series_via),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.blockpy_series_create_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},series_create_from_index={init:function(){this.setColour(DATA_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_series_create).appendField(new external_Blockly_namespaceObject.FieldTextInput("ser1"),"VAR"),this.appendValueInput("SER").appendField(external_Blockly_namespaceObject.Msg.blockpy_series_via),this.appendValueInput("INDEX").setCheck([String,"List"]).appendField(external_Blockly_namespaceObject.Msg.blockpy_series_set_index),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.blockpy_series_create_index_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},dataframe_create={init:function(){this.setColour(DATA_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_dataframe_create).appendField(new external_Blockly_namespaceObject.FieldTextInput("df1"),"VAR"),this.appendValueInput("SER").appendField(external_Blockly_namespaceObject.Msg.blockpy_series_via),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.blockpy_dataframe_create_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},dataframe_create_from_one_index={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.DATAFRAME_RAW,"index"],[external_Blockly_namespaceObject.Msg.DATAFRAME_COLUMN,"columns"]];this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_dataframe_create).appendField(new external_Blockly_namespaceObject.FieldTextInput("df1"),"VAR"),this.appendValueInput("SER").appendField(external_Blockly_namespaceObject.Msg.blockpy_series_via),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"COLUMN_RAW"),this.appendValueInput("INDEX").setCheck([String,"List"]).appendField(external_Blockly_namespaceObject.Msg.blockpy_series_set_index),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.blockpy_dataframe_create_index_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},dataframe_create_from_index={init:function(){this.setColour(DATA_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_dataframe_create).appendField(new external_Blockly_namespaceObject.FieldTextInput("df1"),"VAR"),this.appendValueInput("SER").appendField(external_Blockly_namespaceObject.Msg.blockpy_series_via),this.appendValueInput("INDEX_COLUMN").setCheck([String,"List"]).appendField(external_Blockly_namespaceObject.Msg.blockpy_dataframe_set_index_column),this.appendValueInput("INDEX_RAW").setCheck([String,"List"]).appendField(external_Blockly_namespaceObject.Msg.blockpy_dataframe_set_index_raw),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.blockpy_dataframe_create_index_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},series_create_from_text={init:function(){this.setColour(DATA_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldTextInput("ser1"),"VAR").appendField(" = [").appendField(new external_Blockly_namespaceObject.FieldTextInput("1,2,3"),"TEXT").appendField("]"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_SERIES_CREATE_FROM_TEXT)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},series_index_value={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.SERIES_INDEX,"index"],[external_Blockly_namespaceObject.Msg.HTML_VALUE,"value"]];this.appendValueInput("SERIES").setCheck("Series"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.SERIES_INDEX_VALUE).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"INDEX_VALUE"),this.setOutput(!0,"List");var t=this;this.setTooltip((function(){var e=t.getFieldValue("INDEX_VALUE");return{index:external_Blockly_namespaceObject.Msg.SERIES_INDEX_TOOLTIP,value:external_Blockly_namespaceObject.Msg.HTML_VALUE_TOOLTIP}[e]}))}},series_get_num={init:function(){this.setColour(DATA_HUE),this.setOutput(!0),this.appendValueInput("SER").setCheck("Series"),this.appendValueInput("AT").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.LANG_LISTS_GET_INDEX1),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.LANG_LISTS_GET_INDEX2),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.TUPLE_GET_INDEX_TOOLTIP)}},pl_plot_easy={init:function(){this.setColour(DATA_HUE),this.appendValueInput("SER").setCheck("Series").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},pl_plot={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE_SOLID,"-"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE_DOTTED,"--"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE_CHAIN,"-."],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE_POINT_DOTTED,":"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,""]],t=[[external_Blockly_namespaceObject.Msg.COLOUR_RGB_BLUE,"b"],[external_Blockly_namespaceObject.Msg.COLOUR_RGB_GREEN,"g"],[external_Blockly_namespaceObject.Msg.COLOUR_RGB_RED,"r"],[external_Blockly_namespaceObject.Msg.COLOUR_CYAN,"c"],[external_Blockly_namespaceObject.Msg.COLOUR_MAGENTA,"m"],[external_Blockly_namespaceObject.Msg.COLOUR_YELLOW,"y"],[external_Blockly_namespaceObject.Msg.COLOUR_BLACK,"k"],[external_Blockly_namespaceObject.Msg.COLOUR_WHITE,"w"]],n=[[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_CIRCULAR,"."],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PIXEL,","],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_LARGE_DOT,"o"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_DOWN,"v"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_UP,"^"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_LEFT,"<"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_RIGHT,">"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_UP,"1"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_DOWN,"2"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_LEFT,"3"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_RIGHT,"4"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_SQUARE,"s"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PENTAGON,"p"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_STAR,"*"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_VERTICAL,"h"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_HORIZONTAL,"H"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PLUS,"+"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_CROSS,"x"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND,"D"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND_SMALL,"d"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_VERTICAL,"|"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HORIZONTAL,"_"]];this.appendValueInput("SER").setCheck("Series").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT).appendField(new external_Blockly_namespaceObject.FieldDropdown(n),"DOT"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"LINE"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.HTML_COLOUR).appendField(new external_Blockly_namespaceObject.FieldDropdown(t),"COLOR"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},pl_show={init:function(){this.setColour(DATA_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_SHOW),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},pl_axes={init:function(){this.setColour(DATA_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.mixpy_PL_AXES),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},pl_legend={init:function(){this.setColour(DATA_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_LEGEND),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},pl_title={init:function(){this.setColour(DATA_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_TITLE),this.appendValueInput("TITLE").setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},pl_label={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.PYLAB_LABEL_X,"x"],[external_Blockly_namespaceObject.Msg.PYLAB_LABEL_Y,"y"]];this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_SET_LABEL).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR"),this.appendValueInput("LABEL").appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_LABEL).setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},array_create={init:function(){this.setColour(DATA_HUE),this.appendValueInput("FROM").setCheck(Number).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MIXLY_SPLITBYDOU).appendField(external_Blockly_namespaceObject.Msg.MIXPY_DATA_ARRAY_CREATE_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MIXPY_DATA_ARRAY_CREATE_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MIXLY_STEP),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},pl_plot_bar={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_BAR_PLOT,"plot"],[external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_BAR_BAR,"bar"]];this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_DISPLAY_DRAW).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR"),this.appendValueInput("A").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_Y),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{plot:external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP,bar:external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_BAR_EASY_TOOLTIP}[e]}))}},pl_plot_scatter={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.COLOUR_RGB_BLUE,"b"],[external_Blockly_namespaceObject.Msg.COLOUR_RGB_GREEN,"g"],[external_Blockly_namespaceObject.Msg.COLOUR_RGB_RED,"r"],[external_Blockly_namespaceObject.Msg.COLOUR_CYAN,"c"],[external_Blockly_namespaceObject.Msg.COLOUR_MAGENTA,"m"],[external_Blockly_namespaceObject.Msg.COLOUR_YELLOW,"y"],[external_Blockly_namespaceObject.Msg.COLOUR_BLACK,"k"],[external_Blockly_namespaceObject.Msg.COLOUR_WHITE,"w"]],t=[[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_CIRCULAR,"."],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PIXEL,","],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_LARGE_DOT,"o"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_DOWN,"v"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_UP,"^"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_LEFT,"<"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_RIGHT,">"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_UP,"1"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_DOWN,"2"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_LEFT,"3"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_RIGHT,"4"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_SQUARE,"s"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PENTAGON,"p"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_STAR,"*"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_VERTICAL,"h"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_HORIZONTAL,"H"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PLUS,"+"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_CROSS,"x"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND,"D"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND_SMALL,"d"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_VERTICAL,"|"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HORIZONTAL,"_"]];this.appendValueInput("A").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_SCATTER).appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_Y),this.appendValueInput("S").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_JS_NUMBER),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT).appendField(new external_Blockly_namespaceObject.FieldDropdown(t),"DOT"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.HTML_COLOUR).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"COLOR"),this.appendValueInput("TAG").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("")}},pl_plot_xy={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE_SOLID,"-"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE_DOTTED,"--"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE_CHAIN,"-."],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE_POINT_DOTTED,":"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,""]],t=[[external_Blockly_namespaceObject.Msg.COLOUR_RGB_BLUE,"b"],[external_Blockly_namespaceObject.Msg.COLOUR_RGB_GREEN,"g"],[external_Blockly_namespaceObject.Msg.COLOUR_RGB_RED,"r"],[external_Blockly_namespaceObject.Msg.COLOUR_CYAN,"c"],[external_Blockly_namespaceObject.Msg.COLOUR_MAGENTA,"m"],[external_Blockly_namespaceObject.Msg.COLOUR_YELLOW,"y"],[external_Blockly_namespaceObject.Msg.COLOUR_BLACK,"k"],[external_Blockly_namespaceObject.Msg.COLOUR_WHITE,"w"]],n=[[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_CIRCULAR,"."],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PIXEL,","],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_LARGE_DOT,"o"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_DOWN,"v"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_UP,"^"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_LEFT,"<"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_RIGHT,">"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_UP,"1"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_DOWN,"2"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_LEFT,"3"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_RIGHT,"4"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_SQUARE,"s"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PENTAGON,"p"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_STAR,"*"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_VERTICAL,"h"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_HORIZONTAL,"H"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PLUS,"+"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_CROSS,"x"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND,"D"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND_SMALL,"d"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_VERTICAL,"|"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HORIZONTAL,"_"]];this.appendValueInput("A").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_XY).appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_Y),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT).appendField(new external_Blockly_namespaceObject.FieldDropdown(n),"DOT"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"LINE"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.HTML_COLOUR).appendField(new external_Blockly_namespaceObject.FieldDropdown(t),"COLOR"),this.appendValueInput("TAG").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP)}},pl_bar={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_ALIGN_CENTER,"center"],[external_Blockly_namespaceObject.Msg.AILGN_EDGE,"edge"]];this.appendValueInput("A").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_BAR).appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_Y),this.appendValueInput("WIDTH").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_WIDTH),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_BAR_ALIGN).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"ALIGN"),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.HTML_COLOUR).appendField(new external_Blockly_namespaceObject.FieldColour("#0000ff"),"COLOR"),this.appendValueInput("TAG").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP)}},pl_pie={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.mixpy_PL_PIE_SHADOW_N,"False"],[external_Blockly_namespaceObject.Msg.mixpy_PL_PIE_SHADOW_Y,"True"]],t=[[external_Blockly_namespaceObject.Msg.mixpy_PL_PIE_SHADOW_N,"None"],[external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PIE_AUTOPCT_Z,"%.0f%%"],[external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PIE_AUTOPCT_O,"%.1f%%"],[external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PIE_AUTOPCT_T,"%.2f%%"]];this.appendValueInput("A").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PIE).appendField(external_Blockly_namespaceObject.Msg.COLOUR_BLEND_RATIO),this.appendValueInput("B").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_TICKS_TAG),this.appendValueInput("EXPLODE").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PIE_EXPLODE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PIE_AUTOPCT).appendField(new external_Blockly_namespaceObject.FieldDropdown(t),"autopct"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PIE_SHADOW).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"SHADOW"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP)}},pl_hist={init:function(){this.setColour(DATA_HUE),this.appendValueInput("A").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_HIST).appendField(external_Blockly_namespaceObject.Msg.MIXLY_SD_DATA),this.appendValueInput("B").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},pl_ticks={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.PYLAB_LABEL_X,"x"],[external_Blockly_namespaceObject.Msg.PYLAB_LABEL_Y,"y"]];this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_SETTING).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR"),this.appendValueInput("A").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_TICKS).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_JS_I2C_VALUE),this.appendValueInput("B").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_TICKS_TOOLTIP)}},numpy_trig={init:function(){var e=[["sin","sin"],["cos","cos"],["tan","tan"],["arcsin","arcsin"],["arccos","arccos"],["arctan","arctan"],[external_Blockly_namespaceObject.Msg.LANG_MATH_TO_ROUND,"round"],[external_Blockly_namespaceObject.Msg.LANG_MATH_TO_CEIL,"ceil"],[external_Blockly_namespaceObject.Msg.LANG_MATH_TO_FLOOR,"floor"]];this.setColour(DATA_HUE),this.setOutput(!0),this.setInputsInline(!0),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.mixpy_NUMPY_TRIG),this.appendValueInput("NUM").setCheck(Number).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"OP"),this.setTooltip(external_Blockly_namespaceObject.Msg.mixpy_NUMPY_TRIG_TOOLTIP)}},pl_subplot={init:function(){this.setColour(DATA_HUE),this.appendValueInput("VET").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.mixpy_SUBPLOT).appendField(external_Blockly_namespaceObject.Msg.mixpy_SUBPLOT_VERTICLE),this.appendValueInput("HOR").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.mixpy_SUBPLOT_HORIZEN),this.appendValueInput("NUM").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.mixpy_SUBPLOT_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},pandas_readcsv={init:function(){this.setColour(DATA_HUE),this.appendValueInput("FILENAME").appendField(external_Blockly_namespaceObject.Msg.MIXPY_PANDAS_READ_CSV),this.appendDummyInput().appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.mixpy_PANDAS_READCSV_HEADER_Y,"0"],[external_Blockly_namespaceObject.Msg.mixpy_PANDAS_READCSV_HEADER_N,"None"]]),"MODE"),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.mixpy_PANDAS_READCSV_TITLE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.mixpy_PANDAS_READCSV_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},dataframe_get={init:function(){this.setColour(DATA_HUE),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(external_Blockly_namespaceObject.Msg.mixpy_DATAFRAME_GET),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.mixpy_DATAFRAME_GET_INDEX).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.DATAFRAME_COLUMN,"column"],[external_Blockly_namespaceObject.Msg.DATAFRAME_RAW,"raw"]]),"MODE"),this.setOutput(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.mixpy_DATAFRAME_GET_TOOLTIP)}},pl_savefig={init:function(){this.setColour(DATA_HUE),this.appendValueInput("FILE").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.mixpy_PL_SAVEFIG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(external_Blockly_namespaceObject.Msg.mixpy_PL_SAVEFIG_TOOLTIP)}},pl_text={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.TEXT_TRIM_LEFT,"right"],[external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_CENTER,"center"],[external_Blockly_namespaceObject.Msg.TEXT_TRIM_RIGHT,"left"]],t=[[external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_TOP,"bottom"],[external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_CENTER,"center"],[external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_BOTTOM,"top"]];this.appendValueInput("VET").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_SETTING).appendField(external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_X),this.appendValueInput("HOR").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_Y),this.appendValueInput("NUM").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_TAG),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_HOR).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"HALIGN"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_VER).appendField(new external_Blockly_namespaceObject.FieldDropdown(t),"VALIGN"),this.appendValueInput("FONTNUM").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_TOOLTIP)}},array_toarray={init:function(){this.setColour(DATA_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_TOARRAY),this.setOutput(!0,"List"),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_TOOLTIP_TOARRAY)}},plot_plot_easy={init:function(){this.setColour(DATA_HUE),this.appendValueInput("SER").setCheck("Series").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},plot_plot={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE_SOLID,"-"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE_DOTTED,"--"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE_CHAIN,"-."],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE_POINT_DOTTED,":"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,""]],t=[[external_Blockly_namespaceObject.Msg.COLOUR_RGB_BLUE,"b"],[external_Blockly_namespaceObject.Msg.COLOUR_RGB_GREEN,"g"],[external_Blockly_namespaceObject.Msg.COLOUR_RGB_RED,"r"],[external_Blockly_namespaceObject.Msg.COLOUR_CYAN,"c"],[external_Blockly_namespaceObject.Msg.COLOUR_MAGENTA,"m"],[external_Blockly_namespaceObject.Msg.COLOUR_YELLOW,"y"],[external_Blockly_namespaceObject.Msg.COLOUR_BLACK,"k"],[external_Blockly_namespaceObject.Msg.COLOUR_WHITE,"w"]],n=[[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_CIRCULAR,"."],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PIXEL,","],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_LARGE_DOT,"o"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_DOWN,"v"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_UP,"^"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_LEFT,"<"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_RIGHT,">"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_UP,"1"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_DOWN,"2"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_LEFT,"3"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_RIGHT,"4"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_SQUARE,"s"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PENTAGON,"p"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_STAR,"*"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_VERTICAL,"h"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_HORIZONTAL,"H"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PLUS,"+"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_CROSS,"x"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND,"D"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND_SMALL,"d"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_VERTICAL,"|"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HORIZONTAL,"_"]];this.appendValueInput("SER").setCheck("Series").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT).appendField(new external_Blockly_namespaceObject.FieldDropdown(n),"DOT"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"LINE"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.HTML_COLOUR).appendField(new external_Blockly_namespaceObject.FieldDropdown(t),"COLOR"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},plot_show={init:function(){this.setColour(DATA_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_SHOW),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},plot_axes={init:function(){this.setColour(DATA_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.mixpy_PL_AXES),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},plot_legend={init:function(){this.setColour(DATA_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_LEGEND),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},plot_title={init:function(){this.setColour(DATA_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_TITLE),this.appendValueInput("TITLE").setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},plot_label={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.PYLAB_LABEL_X,"x"],[external_Blockly_namespaceObject.Msg.PYLAB_LABEL_Y,"y"]];this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_SET_LABEL).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR"),this.appendValueInput("LABEL").appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_LABEL).setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},plot_plot_bar={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_BAR_PLOT,"plot"],[external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_BAR_BAR,"bar"]];this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_DISPLAY_DRAW).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR"),this.appendValueInput("A").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_Y),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{plot:external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP,bar:external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_BAR_EASY_TOOLTIP}[e]}))}},plot_plot_scatter={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.COLOUR_RGB_BLUE,"b"],[external_Blockly_namespaceObject.Msg.COLOUR_RGB_GREEN,"g"],[external_Blockly_namespaceObject.Msg.COLOUR_RGB_RED,"r"],[external_Blockly_namespaceObject.Msg.COLOUR_CYAN,"c"],[external_Blockly_namespaceObject.Msg.COLOUR_MAGENTA,"m"],[external_Blockly_namespaceObject.Msg.COLOUR_YELLOW,"y"],[external_Blockly_namespaceObject.Msg.COLOUR_BLACK,"k"],[external_Blockly_namespaceObject.Msg.COLOUR_WHITE,"w"]],t=[[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_CIRCULAR,"."],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PIXEL,","],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_LARGE_DOT,"o"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_DOWN,"v"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_UP,"^"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_LEFT,"<"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_RIGHT,">"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_UP,"1"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_DOWN,"2"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_LEFT,"3"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_RIGHT,"4"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_SQUARE,"s"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PENTAGON,"p"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_STAR,"*"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_VERTICAL,"h"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_HORIZONTAL,"H"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PLUS,"+"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_CROSS,"x"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND,"D"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND_SMALL,"d"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_VERTICAL,"|"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HORIZONTAL,"_"]];this.appendValueInput("A").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_SCATTER).appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_Y),this.appendValueInput("S").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_JS_NUMBER),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT).appendField(new external_Blockly_namespaceObject.FieldDropdown(t),"DOT"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.HTML_COLOUR).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"COLOR"),this.appendValueInput("TAG").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("")}},plot_plot_xy={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE_SOLID,"-"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE_DOTTED,"--"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE_CHAIN,"-."],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE_POINT_DOTTED,":"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,""]],t=[[external_Blockly_namespaceObject.Msg.COLOUR_RGB_BLUE,"b"],[external_Blockly_namespaceObject.Msg.COLOUR_RGB_GREEN,"g"],[external_Blockly_namespaceObject.Msg.COLOUR_RGB_RED,"r"],[external_Blockly_namespaceObject.Msg.COLOUR_CYAN,"c"],[external_Blockly_namespaceObject.Msg.COLOUR_MAGENTA,"m"],[external_Blockly_namespaceObject.Msg.COLOUR_YELLOW,"y"],[external_Blockly_namespaceObject.Msg.COLOUR_BLACK,"k"],[external_Blockly_namespaceObject.Msg.COLOUR_WHITE,"w"]],n=[[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_CIRCULAR,"."],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PIXEL,","],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_LARGE_DOT,"o"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_DOWN,"v"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_UP,"^"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_LEFT,"<"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_RIGHT,">"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_UP,"1"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_DOWN,"2"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_LEFT,"3"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_RIGHT,"4"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_SQUARE,"s"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PENTAGON,"p"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_STAR,"*"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_VERTICAL,"h"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_HORIZONTAL,"H"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PLUS,"+"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_CROSS,"x"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND,"D"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND_SMALL,"d"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_VERTICAL,"|"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HORIZONTAL,"_"]];this.appendValueInput("A").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_XY).appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_Y),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT).appendField(new external_Blockly_namespaceObject.FieldDropdown(n),"DOT"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"LINE"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.HTML_COLOUR).appendField(new external_Blockly_namespaceObject.FieldDropdown(t),"COLOR"),this.appendValueInput("TAG").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP)}},plot_bar={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_ALIGN_CENTER,"center"],[external_Blockly_namespaceObject.Msg.AILGN_EDGE,"edge"]];this.appendValueInput("A").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_BAR).appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_Y),this.appendValueInput("WIDTH").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_WIDTH),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_BAR_ALIGN).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"ALIGN"),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.HTML_COLOUR).appendField(new external_Blockly_namespaceObject.FieldColour("#0000ff"),"COLOR"),this.appendValueInput("TAG").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP)}},plot_pie={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.mixpy_PL_PIE_SHADOW_N,"False"],[external_Blockly_namespaceObject.Msg.mixpy_PL_PIE_SHADOW_Y,"True"]],t=[[external_Blockly_namespaceObject.Msg.mixpy_PL_PIE_SHADOW_N,"None"],[external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PIE_AUTOPCT_Z,"%.0f%%"],[external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PIE_AUTOPCT_O,"%.1f%%"],[external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PIE_AUTOPCT_T,"%.2f%%"]];this.appendValueInput("A").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PIE).appendField(external_Blockly_namespaceObject.Msg.COLOUR_BLEND_RATIO),this.appendValueInput("B").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_TICKS_TAG),this.appendValueInput("EXPLODE").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PIE_EXPLODE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PIE_AUTOPCT).appendField(new external_Blockly_namespaceObject.FieldDropdown(t),"autopct"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PIE_SHADOW).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"SHADOW"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP)}},plot_hist={init:function(){this.setColour(DATA_HUE),this.appendValueInput("A").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_HIST).appendField(external_Blockly_namespaceObject.Msg.MIXLY_SD_DATA),this.appendValueInput("B").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},plot_ticks={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.PYLAB_LABEL_X,"x"],[external_Blockly_namespaceObject.Msg.PYLAB_LABEL_Y,"y"]];this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_SETTING).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR"),this.appendValueInput("A").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_TICKS).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_JS_I2C_VALUE),this.appendValueInput("B").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_TICKS_TOOLTIP)}},plot_subplot={init:function(){this.setColour(DATA_HUE),this.appendValueInput("VET").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.mixpy_SUBPLOT).appendField(external_Blockly_namespaceObject.Msg.mixpy_SUBPLOT_VERTICLE),this.appendValueInput("HOR").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.mixpy_SUBPLOT_HORIZEN),this.appendValueInput("NUM").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.mixpy_SUBPLOT_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},plot_savefig={init:function(){this.setColour(DATA_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.mixpy_PL_SAVEFIG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(external_Blockly_namespaceObject.Msg.mixpy_PL_SAVEFIG_TOOLTIP)}},plot_text={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.TEXT_TRIM_LEFT,"right"],[external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_CENTER,"center"],[external_Blockly_namespaceObject.Msg.TEXT_TRIM_RIGHT,"left"]],t=[[external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_TOP,"bottom"],[external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_CENTER,"center"],[external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_BOTTOM,"top"]];this.appendValueInput("VET").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_SETTING).appendField(external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_X),this.appendValueInput("HOR").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_Y),this.appendValueInput("NUM").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_TAG),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_HOR).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"HALIGN"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_VER).appendField(new external_Blockly_namespaceObject.FieldDropdown(t),"VALIGN"),this.appendValueInput("FONTNUM").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_TOOLTIP)}},numpy_shape={init:function(){this.setColour(DATA_HUE),this.appendValueInput("ARRAY").appendField("获取维度"),this.setOutput(!0),this.setTooltip("Returns the shape of the array.")}},numpy_reshape={init:function(){this.setColour(DATA_HUE),this.appendValueInput("ARRAY").appendField("变形"),this.appendValueInput("DIMENSIONS").appendField("后维度为"),this.setOutput(!0),this.setTooltip("Reshapes the array to the specified dimensions.")}},numpy_astype={init:function(){this.setColour(DATA_HUE),this.appendValueInput("ARRAY").appendField("把"),this.appendDummyInput().appendField("转换为").appendField(new external_Blockly_namespaceObject.FieldDropdown([["uint8","numpy.uint8"],["int32","numpy.int32"],["float32","numpy.float32"],["float64","numpy.float64"]]),"TYPE"),this.setOutput(!0),this.setTooltip("Converts array to specified type.")}},pylab_imshow={init:function(){this.setColour(DATA_HUE),this.appendValueInput("ARRAY").appendField("创建二维图"),this.appendDummyInput().appendField("颜色").appendField(new external_Blockly_namespaceObject.FieldDropdown([["gray","gray"],["viridis","viridis"],["plasma","plasma"],["inferno","inferno"],["magma","magma"],["cividis","cividis"],["hot","hot"],["cool","cool"],["spring","spring"],["summer","summer"],["autumn","autumn"],["winter","winter"],["jet","jet"]]),"COLORMAP"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("Displays an image with the specified colormap.")}},numpy_mean_digit={init:function(){this.setColour(DATA_HUE),this.appendValueInput("X").appendField("从数据集"),this.appendValueInput("Y").appendField("获取平均图像,标签"),this.appendValueInput("DIGIT").appendField("为"),this.setOutput(!0),this.setTooltip("Computes the mean of X where y equals the specified digit.")}},numpy_argmin_template_match={init:function(){this.setColour(DATA_HUE),this.appendValueInput("IMAGE").appendField("获取模板匹配结果,图片:"),this.appendValueInput("TEMPLATES").appendField("模板:"),this.setOutput(!0),this.setTooltip("Finds the index of the template that minimizes the sum of absolute differences with the image.")}},numpy_mean={init:function(){this.setColour(DATA_HUE),this.appendValueInput("ARRAY").appendField("获取平均值"),this.appendDummyInput().appendField("沿着axis").appendField(new external_Blockly_namespaceObject.FieldDropdown([["None","NONE"],["0","0"],["1","1"]]),"AXIS"),this.setOutput(!0),this.setTooltip("Computes the mean of the array along the specified axis.")}},numpy_std={init:function(){this.setColour(DATA_HUE),this.appendValueInput("ARRAY").appendField("获取标准差"),this.appendDummyInput().appendField("沿着axis").appendField(new external_Blockly_namespaceObject.FieldDropdown([["None","NONE"],["0","0"],["1","1"]]),"AXIS"),this.setOutput(!0),this.setTooltip("Computes the standard deviation of the array along the specified axis.")}},pandas_dropna={init:function(){this.setColour(DATA_HUE),this.appendValueInput("DF").appendField("丢弃缺省值"),this.setOutput(!0),this.setTooltip("Drops rows with NaN values from the dataframe.")}},pandas_drop_columns={init:function(){this.setColour(DATA_HUE),this.appendValueInput("DATAFRAME").appendField("从数据集"),this.appendValueInput("COLUMNS").appendField("中删除列").setCheck(String),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip("从数据框中删除指定的列。用逗号分隔多个列名。")}},numpy_ones={init:function(){this.setColour(DATA_HUE),this.appendValueInput("NUM").appendField("生成单位行向量"),this.setOutput(!0),this.setTooltip("Creates an array of ones with the specified length.")}},numpy_c_={init:function(){this.setColour(DATA_HUE),this.appendValueInput("ARRAY1").appendField("列拼接:数组1"),this.appendValueInput("ARRAY2").appendField("数组2"),this.setOutput(!0),this.setTooltip("Concatenates two arrays along the second axis using numpy.c_.")}},numpy_linalg_det={init:function(){this.setColour(DATA_HUE),this.appendValueInput("ARRAY").appendField("获取行列式"),this.setOutput(!0),this.setTooltip("Computes the determinant of an array using numpy.linalg.det.")}},matrix_transpose={init:function(){this.setColour(DATA_HUE),this.appendValueInput("MATRIX").appendField("获取转置"),this.setOutput(!0),this.setTooltip("Computes the transpose of the given matrix.")}},matrix_multiplication={init:function(){this.setColour(DATA_HUE),this.appendValueInput("MATRIX1"),this.appendValueInput("MATRIX2").appendField("@"),this.setOutput(!0),this.setTooltip("Multiplies two matrices.")}},numpy_linalg_inv={init:function(){this.setColour(DATA_HUE),this.appendValueInput("ARRAY").appendField("获取逆矩阵"),this.setOutput(!0),this.setTooltip("Computes the inverse of the given matrix using numpy.linalg.inv.")}},dataframe_median={init:function(){this.setColour(DATA_HUE),this.appendValueInput("DATAFRAME").appendField("获取中位数"),this.setOutput(!0),this.setTooltip("Computes the median of the given dataframe.")}},dataframe_fillna={init:function(){this.setColour(DATA_HUE),this.appendValueInput("DATAFRAME").appendField("填充缺失值"),this.appendValueInput("VALUE").appendField("填充值"),this.appendDummyInput().appendField("是否修改原数据").appendField(new external_Blockly_namespaceObject.FieldDropdown([["True","True"],["False","False"]]),"INPLACE"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("Fills NaN values in the dataframe with the specified value.")}},dataframe_info={init:function(){this.setColour(DATA_HUE),this.appendValueInput("DATAFRAME").appendField("获取DataFrame信息"),this.setOutput(!0),this.setTooltip("Displays information about the DataFrame.")}},numpy_min={init:function(){this.setColour(DATA_HUE),this.appendValueInput("ARRAY").appendField("获取最小值"),this.appendDummyInput().appendField("沿着axis").appendField(new external_Blockly_namespaceObject.FieldDropdown([["None","None"],["行","0"],["列","1"]]),"AXIS"),this.setOutput(!0),this.setTooltip("Returns the minimum value along the specified axis.")}},numpy_max={init:function(){this.setColour(DATA_HUE),this.appendValueInput("ARRAY").appendField("获取最大值"),this.appendDummyInput().appendField("沿着axis").appendField(new external_Blockly_namespaceObject.FieldDropdown([["None","None"],["行","0"],["列","1"]]),"AXIS"),this.setOutput(!0),this.setTooltip("Returns the maximum value along the specified axis.")}},numpy_size={init:function(){this.setColour(DATA_HUE),this.appendValueInput("ARRAY").appendField("获取数组大小"),this.setOutput(!0),this.setTooltip("Returns the size of the array.")}},numpy_dot={init:function(){this.setColour(DATA_HUE),this.appendValueInput("ARRAY1").appendField("点乘数组1"),this.appendValueInput("ARRAY2").appendField("点乘数组2"),this.setOutput(!0),this.setTooltip("Returns the dot product of two arrays.")}},numpy_square={init:function(){this.setColour(DATA_HUE),this.appendValueInput("ARRAY").appendField("获取平方数组"),this.setOutput(!0),this.setTooltip("Returns the element-wise square of the array.")}},numpy_sum={init:function(){this.setColour(DATA_HUE),this.appendValueInput("ARRAY").appendField("获取数组元素和"),this.setOutput(!0),this.setTooltip("Returns the sum of the array.")}},numpy_random_random={init:function(){this.setColour(DATA_HUE),this.appendValueInput("SIZE").appendField("生成随机数组"),this.setOutput(!0),this.setTooltip("Returns a random array of the specified size.")}},py_sum={init:function(){this.setColour(DATA_HUE),this.appendValueInput("ARRAY").appendField("Python求和"),this.setOutput(!0),this.setTooltip("Returns the sum of the iterable.")}},dataframe_sort_values={init:function(){this.setColour(DATA_HUE),this.appendValueInput("DICT").setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).setCheck("Dict"),this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField("值排序"),this.appendValueInput("KEY").setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField("标签"),this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField("排序方式").appendField(new external_Blockly_namespaceObject.FieldDropdown([["升序","True"],["降序","False"]]),"AS_CENDING"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip("")}},dataframe_head_tail={init:function(){this.setColour(DATA_HUE),this.appendValueInput("DICT").setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).setCheck("Dict"),this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField("获取").appendField(new external_Blockly_namespaceObject.FieldDropdown([["前几行","head"],["最后几行","tail"]]),"TYPE"),this.appendValueInput("LINES").setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField("行数"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip("")}},dataframe_select={init:function(){this.setColour(DATA_HUE),this.appendValueInput("DICT").setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).setCheck("Dict"),this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField("筛选数据"),this.appendValueInput("KEY").setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField("满足条件"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip("")}},dataframe_groupby={init:function(){this.setColour(DATA_HUE),this.appendValueInput("DICT").setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).setCheck("Dict"),this.appendValueInput("KEY").setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField("通过标签"),this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField("分组"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip("")}},dataframe_aggregate_func={init:function(){this.setColour(DATA_HUE),this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(new external_Blockly_namespaceObject.FieldDropdown([["求最小值","min"],["求最大值","max"],["求和","sum"],["求平均值","mean"],["求中位数","median"],["求标准差","std"]]),"TYPE"),this.appendValueInput("DICT").setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).setCheck("Dict"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip("")}},plot_cla={init:function(){this.setColour(DATA_HUE),this.appendDummyInput().appendField("清除已有图像"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},DS_HUE=80,ds_create_linkedlist={init:function(){this.setColour(DS_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldLabel(external_Blockly_namespaceObject.Msg.DS_CREATE_LINKEDLIST_NEW)),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldLabel(external_Blockly_namespaceObject.Msg.DS_CREATE_LINKEDLIST_HEAD)).appendField(new external_Blockly_namespaceObject.FieldTextInput("head"),"VAR"),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldLabel(external_Blockly_namespaceObject.Msg.DS_CREATE_LINKEDLIST_TYPE)).appendField(new external_Blockly_namespaceObject.FieldTextInput("tag"),"TYPE"),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.DS_CREATE_LINKEDLIST_ATTRIBUTE),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new external_Blockly_namespaceObject.icons.MutatorIcon(["ds_create_linkedlist_item"],this)),this.setTooltip(external_Blockly_namespaceObject.Msg.DS_CREATE_LINKEDLIST_TOOLTIP)},mutationToDom:function(){var e=document.createElement("mutation");return e.setAttribute("items",this.itemCount_),e},domToMutation:function(e){this.itemCount_=parseInt(e.getAttribute("items"),10),this.updateShape_()},decompose:function(e){var t=e.newBlock("ds_create_linkedlist_container");t.initSvg();for(var n=t.getInput("STACK").connection,a=0;at?e[t]:"name"),"KEY"+t).appendField("=")},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},ds_create_linkedlist_container={init:function(){this.setColour(DS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.DS_CREATE_LINKEDLIST_CONTAINER_TITLE),this.appendStatementInput("STACK"),this.setTooltip(external_Blockly_namespaceObject.Msg.DS_CREATE_LINKEDLIST_CONTAINER_TOOLTIP),this.contextMenu=!1}},ds_create_linkedlist_item={init:function(){this.setColour(DS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.DS_CREATE_LINKEDLIST_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.DS_CREATE_LINKEDLIST_ITEM_TOOLTIP),this.contextMenu=!1}},ds_create_node={init:function(){this.setColour(DS_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DS_CREATE_NODE_USE).appendField(new external_Blockly_namespaceObject.FieldTextInput("tag"),"TYPE"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DS_CREATE_NODE_NEW),this.appendValueInput("NODE"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.DS_CREATE_NODE_TOOLTIP)}},ds_get_node_attr={init:function(){this.setColour(DS_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DS_GET_NODE_ATTR_NODE),this.appendValueInput("NODE"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AIP_ATTR).appendField(new external_Blockly_namespaceObject.FieldTextInput("name"),"TYPE"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DICTS_ADD_VALUE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.DS_GET_NODE_ATTR_TOOLTIP)}},ds_set_node_attr={init:function(){this.setColour(DS_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DS_SET_NODE_ATTR_NODE),this.appendValueInput("NODE"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AIP_ATTR).appendField(new external_Blockly_namespaceObject.FieldTextInput("name"),"TYPE"),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.DS_SET_NODE_ATTR_SET),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.DS_SET_NODE_ATTR_TOOLTIP)}},ds_add_node_by_name={init:function(){this.setColour(DS_HUE),this.appendValueInput("NODE").appendField(external_Blockly_namespaceObject.Msg.DS_ADD_NODE_HEAD_NODE);var e=[[external_Blockly_namespaceObject.Msg.DS_ADD_NODE_BEFORE,"before"],[external_Blockly_namespaceObject.Msg.DS_ADD_NODE_AFTER,"after"]];this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DS_ADD_NODE_LINKEDLIST),this.appendValueInput("NODE2").appendField(external_Blockly_namespaceObject.Msg.DS_SET_NODE_ATTR_NODE),this.appendValueInput("NODE3").appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR").appendField(external_Blockly_namespaceObject.Msg.DS_ADD_NODE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.DS_ADD_NODE_TOOLTIP)}},ds_add_node_by_attr={init:function(){this.setColour(DS_HUE),this.appendValueInput("NODE").appendField(external_Blockly_namespaceObject.Msg.DS_ADD_NODE_HEAD_NODE);var e=[[external_Blockly_namespaceObject.Msg.DS_ADD_NODE_BEFORE,"before"],[external_Blockly_namespaceObject.Msg.DS_ADD_NODE_AFTER,"after"]];this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DS_ADD_NODE_LINKEDLIST),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DS_CREATE_LINKEDLIST_ITEM_TITLE).appendField(new external_Blockly_namespaceObject.FieldTextInput("name"),"TYPE"),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AS),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DS_ADD_NODE_ATTR),this.appendValueInput("NODE3").appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR").appendField(external_Blockly_namespaceObject.Msg.DS_ADD_NODE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.DS_ADD_NODE_TOOLTIP)}},ds_del_node_by_name={init:function(){this.setColour(DS_HUE),this.appendValueInput("NODE").appendField(external_Blockly_namespaceObject.Msg.DS_ADD_NODE_HEAD_NODE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DS_ADD_NODE_LINKEDLIST),this.appendValueInput("NODE2").appendField(external_Blockly_namespaceObject.Msg.DS_DEL_NODE_NAME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.DS_DEL_NODE_TOOLTIP)}},ds_del_node_by_attr={init:function(){this.setColour(DS_HUE),this.appendValueInput("NODE").appendField(external_Blockly_namespaceObject.Msg.DS_ADD_NODE_HEAD_NODE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DS_ADD_NODE_LINKEDLIST),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DS_DEL_NODE_ATTR).appendField(new external_Blockly_namespaceObject.FieldTextInput("name"),"TYPE"),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AS),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DS_ADD_NODE_ATTR),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.DS_DEL_NODE_TOOLTIP)}},ds_reverse_linkedlist={init:function(){this.setColour(DS_HUE),this.appendValueInput("NODE").appendField(external_Blockly_namespaceObject.Msg.DS_ADD_NODE_HEAD_NODE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DS_REVERSE_LINKEDLIST),this.appendValueInput("NODE2").appendField(external_Blockly_namespaceObject.Msg.DS_REVERSE_LINKEDLIST_NEW_HEAD),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.DS_DEL_NODE_TOOLTIP)}},FACTORY_HUE="#777777",factory_from_import={init:function(){this.setColour(FACTORY_HUE),this.appendDummyInput("").appendField("from ").appendField(new external_Blockly_namespaceObject.FieldTextInput("ESP32"),"path").appendField(" import ").appendField(new external_Blockly_namespaceObject.FieldTextInput("*"),"module"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},factory_import={init:function(){this.setColour(FACTORY_HUE),this.appendDummyInput("").appendField("import ").appendField(new external_Blockly_namespaceObject.FieldTextInput("module"),"module"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},factory_function_noreturn={init:function(){this.setColour(FACTORY_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldTextInput("my_function"),"NAME"),this.itemCount_=1,this.arguments_=["x"],this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new external_Blockly_namespaceObject.icons.MutatorIcon(["factory_create_with_item"],this))},mutationToDom:function(){var e=document.createElement("mutation");e.setAttribute("items",this.itemCount_);for(var t=0;tt?e[t]:'"key'+(t+1)+'"'),"KEY"+t).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},iot_publish_container={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(external_Blockly_namespaceObject.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},iot_publish_item={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},iot_create_with_item={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},iot_mixio_connect={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_EMQX_SERVER).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("USERNAME").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_WIFI_USERNAME).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("PASSWORD").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_IOT_PASSWORD).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("PROJECT").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_EMQX_PROJECT).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},IOT_MIXIO_PUBLISH={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(external_Blockly_namespaceObject.Msg.MIXLY_EMQX_PUBLISH_NEW).appendField(external_Blockly_namespaceObject.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MSG").appendField(external_Blockly_namespaceObject.Msg.HTML_BODY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_ESP32_IOT_EMQX_PUBLISH_TOOLTIP)}},IOT_MIXIO_SUBSCRIBE={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(external_Blockly_namespaceObject.Msg.MIXLY_EMQX_SUBSCRIBE+external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_MSG).appendField(external_Blockly_namespaceObject.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("METHOD").appendField(external_Blockly_namespaceObject.Msg.MIXLY_EMQX_SET_METHOD),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_ESP32_IOT_EMQX_SUBSCRIBE_TOOLTIP)}},IOT_MIXIO_UNSUBSCRIBE={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(external_Blockly_namespaceObject.Msg.MSG.stop+external_Blockly_namespaceObject.Msg.MIXLY_EMQX_SUBSCRIBE).appendField(external_Blockly_namespaceObject.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_ESP32_IOT_EMQX_SUBSCRIBE_TOOLTIP)}},iot_mixio_disconnect={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_ESP32_DISCONNECT_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},iot_mixio_connect_only={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_EMQX_CONNECT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},iot_mixio_check={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_ESP32_CHECK_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},iot_mixio_format_topic={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROPYTHON_FORMAT).appendField(external_Blockly_namespaceObject.MQTT_Topic),this.setInputsInline(!0),this.setOutput(!0)}},iot_mixio_format_msg={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROPYTHON_FORMAT).appendField(external_Blockly_namespaceObject.Msg.MIXLY_EMQX_PUBLISH_MSG),this.setInputsInline(!0),this.setOutput(!0)}},IOT_FORMATTING={init:function(){this.setColour(IOT_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_ESP32_IOT_MAP_FORMATING),this.setOutput(!0)}},IOT_FORMAT_STRING={init:function(){this.setColour(IOT_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROPYTHON_FORMAT+"(Json)"),this.setOutput(!0)}},IOT_EMQX_PING={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_EMQX_PING),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_ESP32_IOT_EMQX_PING_TOOLTIP)}},IOT_MIXIO_NTP={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField("MixIO").appendField(external_Blockly_namespaceObject.Msg.MIXLY_GET_NTP),this.appendValueInput("addr").appendField(external_Blockly_namespaceObject.blynk_SERVER_ADD),this.setInputsInline(!0),this.setOutput(!0)}},IOT_EMQX_INIT_AND_CONNECT_BY_SHARE_CODE={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").appendField(external_Blockly_namespaceObject.Msg.MIXLY_EMQX_SERVER).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("KEY").appendField(external_Blockly_namespaceObject.Msg.CONTROLS_FOR_INPUT_WITH+external_Blockly_namespaceObject.Msg.MIXLY_MIXIO_SHARE_KEY).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},IOT_EMQX_INIT_AND_CONNECT_BY_MIXLY_CODE={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").appendField(external_Blockly_namespaceObject.Msg.MIXLY_EMQX_SERVER).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("KEY").appendField(external_Blockly_namespaceObject.Msg.CONTROLS_FOR_INPUT_WITH+"Mixly Key").setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},iot_mixly_key_py={init:function(){this.VISITOR_ID=external_Mixly_namespaceObject.Config.BOARD.visitorId.str32.substring(0,8).toUpperCase(),this.setColour(IOT_HUE),this.appendDummyInput("").appendField(this.newQuote_(!0)).appendField(new external_Blockly_namespaceObject.FieldTextInput(this.visitorId),"VISITOR_ID").appendField(this.newQuote_(!1)),this.setOutput(!0,null)},onchange:function(){const e=this.getFieldValue("VISITOR_ID");this.VISITOR_ID!==e&&this.setFieldValue(this.VISITOR_ID,"VISITOR_ID")},newQuote_:function(e){if(e==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 external_Blockly_namespaceObject.FieldImage(t,12,12,'"')}},iot_mixly_key={init:function(){this.VISITOR_ID=external_Mixly_namespaceObject.Config.BOARD.visitorId.str32.substring(0,8).toUpperCase(),this.setColour(IOT_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldTextInput(this.visitorId),"VISITOR_ID"),this.setOutput(!0,null)},onchange:function(){const e=this.getFieldValue("VISITOR_ID");this.VISITOR_ID!==e&&this.setFieldValue(this.VISITOR_ID,"VISITOR_ID")}},iot_client_onboard={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField("MixIO").appendField(external_Blockly_namespaceObject.Msg.MSG.catEthernet_clinet),this.setOutput(!0),this.setInputsInline(!0)}},iot_http_client={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField("HTTP"+external_Blockly_namespaceObject.Msg.MIXLY_Client),this.appendValueInput("addr").appendField(external_Blockly_namespaceObject.Msg.DISPLAY_IMAGE_LET2),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_REQUESTS_GET).appendField(external_Blockly_namespaceObject.Msg.MIXLY_GET_CURRENT_TIME).appendField(external_Blockly_namespaceObject.Msg.MIXLY_OPEN_DEBUG).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},iot_http_data={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField("HTTP"+external_Blockly_namespaceObject.Msg.MIXLY_Client).appendField(external_Blockly_namespaceObject.Msg.MIXLY_GET).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_REQUESTS_LEN,"client_len"],[external_Blockly_namespaceObject.Msg.MIXLY_REQUESTS_GET_LEN,"server_len"],[external_Blockly_namespaceObject.Msg.MIXLY_REQUESTS_MESSAGE,"text"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},iot_mqtt_client={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField("MQTT"+external_Blockly_namespaceObject.Msg.MIXLY_Client),this.appendValueInput("addr").appendField(external_Blockly_namespaceObject.Msg.MIXLY_CONNECTTO),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_INIT_SUBSCRIBE).appendField(external_Blockly_namespaceObject.MQTT_Topic).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_GET_CURRENT_TIME,""]]),"key").appendField(external_Blockly_namespaceObject.Msg.MIXLY_OPEN_DEBUG).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"key2"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},iot_mqtt_data={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField("MQTT"+external_Blockly_namespaceObject.Msg.MIXLY_Client).appendField(external_Blockly_namespaceObject.Msg.MIXLY_GET).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_REQUESTS_LEN,"client_len"],[external_Blockly_namespaceObject.Msg.MIXLY_REQUESTS_GET_LEN,"server_len"],[external_Blockly_namespaceObject.Msg.MIXLY_REQUESTS_MESSAGE,"time_msg()"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},iot_onenetconnect=iot_onenet_connect,iot_onenetdisconnect=iot_onenet_disconnect,iot_checkonenet=iot_onenet_check,iot_publish=iot_onenet_publish,PINS_HUE=230,pins_digital_write={init:function(){this.setColour(PINS_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldDropdown(external_Mixly_namespaceObject.Profile.default.digital_write),"PIN"),this.setOutput(!0)}},pins_digital_read={init:function(){this.setColour(PINS_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldDropdown(external_Mixly_namespaceObject.Profile.default.digital_read),"PIN"),this.setOutput(!0)}},pins_analog_write={init:function(){this.setColour(PINS_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldDropdown(external_Mixly_namespaceObject.Profile.default.analog_write),"PIN"),this.setOutput(!0)}},pins_analog_read={init:function(){this.setColour(PINS_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldDropdown(external_Mixly_namespaceObject.Profile.default.analog_read),"PIN"),this.setOutput(!0)}},SERIAL_HUE=40,serial_open={init:function(){this.setColour(SERIAL_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldLabel(external_Blockly_namespaceObject.Msg.MIXPY_SERIAL_OPEN)).appendField(new external_Blockly_namespaceObject.FieldTextInput("ser"),"SER"),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_SERIAL_BEGIN).appendField(new external_Blockly_namespaceObject.FieldDropdown([["115200","115200"],["256000","256000"],["128000","128000"],["57600","57600"],["56000","56000"],["43000","43000"],["38400","38400"],["28800","28800"],["19200","19200"],["9600","9600"],["4800","4800"],["2400","2400"],["1200","1200"],["600","600"],["300","300"],["110","110"]]),"BPS"),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXPY_SERIAL_OPEN_TIMEOUT),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXPY_SERIAL_OPEN_TOOLTIP)}},serial_write={init:function(){this.setColour(SERIAL_HUE),this.appendValueInput("SER"),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXPY_SERIAL_WRITE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXPY_SERIAL_WRITE_TOOLTIP)}},serial_read_b={init:function(){this.setColour(SERIAL_HUE),this.appendValueInput("SER"),this.appendValueInput("VAR").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXPY_SERIAL_READ),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXPY_SERIAL_READ_TOOLTIP)}},serial_close={init:function(){this.setColour(SERIAL_HUE),this.appendValueInput("SER"),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXPY_SERIAL_CLOSE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXPY_SERIAL_CLOSE_TOOLTIP)}},SKLEARN_HUE=80,sklearn_make_classification={init:function(){this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.SKLEARN_CLASSIFICATION_GENERATION),this.appendValueInput("n_samples").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.NUMBER_OF_SAMPLES),this.appendValueInput("n_features").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.NUMBER_OF_FEATURES),this.appendValueInput("n_informative").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.NUMBER_OF_EFFECTIVE_FEATURES),this.appendValueInput("n_redundant").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.NUMBER_OF_REDUNDANT_FEATURES),this.appendValueInput("n_repeated").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.NUMBER_OF_REPEATED_FEATURES),this.appendValueInput("n_classes").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.NUMBER_OF_CLASSES),this.appendValueInput("n_clusters_per_class").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.NUMBER_OF_CLUSTERS_PER_CLASSES),this.appendValueInput("random_state").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.RANDOM_SEED),this.setInputsInline(!1),this.setOutput(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_make_regression={init:function(){this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.SKLEARN_REGRESSION_GENERATION),this.appendValueInput("n_samples").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.NUMBER_OF_SAMPLES),this.appendValueInput("n_features").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.NUMBER_OF_FEATURES),this.appendValueInput("n_informative").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.NUMBER_OF_EFFECTIVE_FEATURES),this.appendValueInput("n_targets").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.NUMBER_OF_LABELS),this.appendValueInput("bias").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.DEVIATION),this.appendValueInput("noise").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.NOISE),this.appendValueInput("random_state").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.RANDOM_SEED),this.setInputsInline(!1),this.setOutput(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_make_blobs={init:function(){this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.SKLEARN_CLUSTERING_GENERATION),this.appendValueInput("n_samples").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.NUMBER_OF_SAMPLES),this.appendValueInput("n_features").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.NUMBER_OF_FEATURES),this.appendValueInput("centers").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.NUMBER_OF_CLUSTERS),this.appendValueInput("cluster_std").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.STANDARD_DEVIATION_OF_CLUSTER),this.appendValueInput("center_box").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.CLUSTER_BOUNDING_BOX),this.appendValueInput("shuffle").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.SHUFFLE_SAMPLES),this.appendValueInput("random_state").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.RANDOM_SEED),this.setInputsInline(!1),this.setOutput(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_load={init:function(){var e=[[external_Blockly_namespaceObject.Msg.SKLEARN_LOAD_IRIS,"load_iris"],[external_Blockly_namespaceObject.Msg.SKLEARN_LOAD_BOSTON,"load_boston"],[external_Blockly_namespaceObject.Msg.SKLEARN_LOAD_DIABETES,"load_diabetes"],[external_Blockly_namespaceObject.Msg.SKLEARN_LOAD_BREAST_CANCER,"load_breast_cancer"],[external_Blockly_namespaceObject.Msg.SKLEARN_LOAD_LINNERUD,"load_linnerud"],[external_Blockly_namespaceObject.Msg.SKLEARN_LOAD_DIGITS,"load_digits"]];this.appendDummyInput().appendField("sklearn "+external_Blockly_namespaceObject.Msg.LOAD).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"type").appendField(new external_Blockly_namespaceObject.FieldTextInput("iris"),"name"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")},getVars:function(){return[this.getFieldValue("name")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("name"))&&this.setTitleValue(t,"name")}},sklearn_data_target={init:function(){this.appendValueInput("name").setCheck(null).appendField("sklearn "+external_Blockly_namespaceObject.Msg.DATA_SET),this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MIXLY_GET).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.EIGENVALUES,"data"],[external_Blockly_namespaceObject.Msg.LABEL_VALUE,"target"],[external_Blockly_namespaceObject.Msg.FEATURE,"feature_names"],[external_Blockly_namespaceObject.Msg.mixpy_PYLAB_TICKS_TAG,"target_names"]]),"type"),this.setOutput(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_train_test_split={init:function(){this.appendDummyInput().appendField("sklearn "+external_Blockly_namespaceObject.Msg.DATA_SEGMENTATION),this.appendValueInput("train_data").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.EIGENVALUES),this.appendValueInput("train_target").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.LABEL_VALUE),this.appendValueInput("test_size").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.TEST_SET_PROPORTION),this.appendValueInput("rondom_state").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.RANDOM_SEED),this.setInputsInline(!1),this.setOutput(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_train_test_split_no_target={init:function(){this.appendDummyInput().appendField("sklearn "+external_Blockly_namespaceObject.Msg.DATA_SEGMENTATION),this.appendValueInput("train_data").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.EIGENVALUES),this.appendValueInput("test_size").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.TEST_SET_PROPORTION),this.appendValueInput("rondom_state").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.RANDOM_SEED),this.setInputsInline(!1),this.setOutput(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_LinearRegression={init:function(){this.appendDummyInput().appendField("sklearn "+external_Blockly_namespaceObject.Msg.SKLEARN_LINEARREGRESSION_INIT),this.appendValueInput("model_name").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MODEL_NAME),this.appendValueInput("fit_intercept").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.SKLEARN_CALCULATE_MODEL_INTERRUPT),this.appendValueInput("normalize").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.SKLEARN_REGRESSION_NORMIALIZATION),this.appendValueInput("n_jobs").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.SKLEARN_THREADS),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_Ridge={init:function(){this.appendDummyInput().appendField("sklearn "+external_Blockly_namespaceObject.Msg.SKLEARN_RIDGE_INIT),this.appendValueInput("model_name").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MODEL_NAME),this.appendValueInput("alpha").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.SKLEARN_REGULA_INTENSITY),this.appendValueInput("fit_intercept").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.SKLEARN_CALCULATE_MODEL_INTERRUPT),this.appendValueInput("normalize").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.SKLEARN_REGRESSION_NORMIALIZATION),this.appendValueInput("max_iter").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.SKLEARN_MAX_ITER),this.appendValueInput("random_state").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.RANDOM_SEED),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_DecisionTreeClassifier_Regressor={init:function(){this.appendDummyInput().appendField("sklearn "+external_Blockly_namespaceObject.Msg.SKLEARN_DECISIONTREE_INIT).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.SKLEARN_CLASSIFICATION_ALGORITHM,"DecisionTreeClassifier"],[external_Blockly_namespaceObject.Msg.SKLEARN_REGRESSION_ALGORITHM,"DecisionTreeRegressor"]]),"type"),this.appendValueInput("model_name").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MODEL_NAME),this.appendValueInput("max_depth").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.SKLEARN_MAXIMUM_TREE_DEPTH),this.appendValueInput("random_state").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.RANDOM_SEED),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_RandomForestClassifier_Regressor={init:function(){this.appendDummyInput().appendField("sklearn "+external_Blockly_namespaceObject.Msg.SKLEARN_RANDOMFOREST_INIT).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.SKLEARN_CLASSIFICATION_ALGORITHM,"RandomForestClassifier"],[external_Blockly_namespaceObject.Msg.SKLEARN_REGRESSION_ALGORITHM,"RandomForestRegressor"]]),"type"),this.appendValueInput("model_name").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MODEL_NAME),this.appendValueInput("n_estimators").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.NUMBER_OF_TREES),this.appendValueInput("max_depth").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.SKLEARN_MAXIMUM_TREE_DEPTH),this.appendValueInput("n_jobs").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.SKLEARN_THREADS),this.appendValueInput("random_state").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.RANDOM_SEED),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_KNeighborsClassifier_Regressor={init:function(){this.appendDummyInput().appendField("sklearn "+external_Blockly_namespaceObject.Msg.SKLEARN_KNN_INIT).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.SKLEARN_CLASSIFICATION_ALGORITHM,"KNeighborsClassifier"],[external_Blockly_namespaceObject.Msg.SKLEARN_REGRESSION_ALGORITHM,"KNeighborsRegressor"]]),"type"),this.appendValueInput("model_name").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MODEL_NAME),this.appendValueInput("K").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField("K"),this.appendValueInput("n_jobs").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.SKLEARN_THREADS),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_GaussianNB={init:function(){this.appendDummyInput().appendField("sklearn "+external_Blockly_namespaceObject.Msg.SKLEARN_GAUSSINNB_INIT),this.appendValueInput("model_name").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MODEL_NAME),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_pca={init:function(){this.appendDummyInput().appendField("sklearn 初始化 PCA 算法"),this.appendValueInput("model_name").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MODEL_NAME),this.appendValueInput("n_components").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.SKLEARN_PCA_N_COMPONENTS),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_pca_fit_transform={init:function(){this.appendDummyInput().appendField("sklearn PCA 降维"),this.appendValueInput("model_name").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MODEL_NAME),this.appendValueInput("train_data").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.EIGENVALUES),this.setInputsInline(!0),this.setOutput(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_KMeans={init:function(){this.appendDummyInput().appendField("sklearn "+external_Blockly_namespaceObject.Msg.SKLEARN_KMEANS_INIT),this.appendValueInput("model_name").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MODEL_NAME),this.appendValueInput("n_clusters").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.NUMBER_OF_CLUSTERS_JUST),this.appendValueInput("max_iter").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.SKLEARN_MAX_ITER),this.appendValueInput("random_state").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.RANDOM_SEED),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_KMeans_fit={init:function(){this.appendDummyInput().appendField("sklearn K-均值聚类"),this.appendValueInput("model_name").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MODEL_NAME),this.appendValueInput("train_data").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.EIGENVALUES),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_fit={init:function(){this.appendDummyInput().appendField("sklearn "+external_Blockly_namespaceObject.Msg.TRAINING_MODEL),this.appendValueInput("model_name").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MODEL_NAME),this.appendValueInput("train_data").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.EIGENVALUES),this.appendValueInput("train_target").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.LABEL_VALUE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_fit_no_target={init:function(){this.appendDummyInput().appendField("sklearn "+external_Blockly_namespaceObject.Msg.TRAINING_MODEL),this.appendValueInput("model_name").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MODEL_NAME),this.appendValueInput("train_data").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.EIGENVALUES),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_predict={init:function(){this.appendDummyInput().appendField("sklearn "+external_Blockly_namespaceObject.Msg.MODEL_PRODICTION),this.appendValueInput("model_name").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MODEL_NAME),this.appendValueInput("train_data").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.EIGENVALUES),this.setInputsInline(!0),this.setOutput(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_score={init:function(){this.appendDummyInput().appendField("sklearn "+external_Blockly_namespaceObject.Msg.CALCULATE_THE_SCORE),this.appendValueInput("model_name").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MODEL_NAME),this.appendValueInput("train_data").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.EIGENVALUES),this.appendValueInput("train_target").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.LABEL_VALUE),this.setInputsInline(!0),this.setOutput(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_score_no_target={init:function(){this.appendDummyInput().appendField("sklearn "+external_Blockly_namespaceObject.Msg.CALCULATE_THE_SCORE),this.appendValueInput("model_name").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MODEL_NAME),this.appendValueInput("train_data").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.EIGENVALUES),this.setInputsInline(!0),this.setOutput(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_coef_intercept={init:function(){this.appendDummyInput().appendField("sklearn "+external_Blockly_namespaceObject.Msg.SKLEARN_GENERALIZED_LINEAR_REGRESSION),this.appendValueInput("model_name").setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).setCheck(null).appendField(external_Blockly_namespaceObject.Msg.MODEL_NAME),this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MIXLY_GET).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.SKLEARN_COEF,"coef_"],[external_Blockly_namespaceObject.Msg.SKLEARN_INTERCEPT,"intercept_"]]),"type"),this.setOutput(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_cluster_centers_labels_inertia={init:function(){this.appendDummyInput().appendField("sklearn "+external_Blockly_namespaceObject.Msg.SKLEARN_CLUSTERING),this.appendValueInput("model_name").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MODEL_NAME),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_GET).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.SKLEARN_CLUSTER_CENTER,"cluster_centers_"],[external_Blockly_namespaceObject.Msg.SKLEARN_LABELS_AFTER_CLUSTERING,"labels_"],[external_Blockly_namespaceObject.Msg.SKLEARN_CLUSTERING_SUM_OF_SQUARED_DISTANCES,"inertia_"]]),"type"),this.setInputsInline(!0),this.setOutput(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_save_load_model={init:function(){this.appendValueInput("model_name").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField("sklearn").appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.SKLEARN_SAVE_MODEL,"dump"],[external_Blockly_namespaceObject.Msg.SKLEARN_LOAD_MODEL,"load"]]),"type").appendField(" "+external_Blockly_namespaceObject.Msg.MODEL_NAME),this.appendValueInput("address").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},SYSTEM_HUE=120,base_delay={init:function(){this.setColour(SYSTEM_HUE),this.appendValueInput("DELAY_TIME",Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_DELAY+"("+external_Blockly_namespaceObject.Msg.MIXLY_MILLIS+")").setCheck(Number),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_CONTROL_DELAY)}},system_controls_millis={init:function(){this.setColour(SYSTEM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_time_time),this.setOutput(!0,Number),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_CONTROL_MILLIS)}},time_localtime={init:function(){this.setColour(SYSTEM_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_SYSTEM_TIME_LOCALTIME),this.appendDummyInput().appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_SYSTEM_TIME_LOCALTIME_ALL,"all"],[external_Blockly_namespaceObject.Msg.MIXLY_SYSTEM_TIME_LOCALTIME_YEAR,"0"],[external_Blockly_namespaceObject.Msg.MIXLY_SYSTEM_TIME_LOCALTIME_MONTH,"1"],[external_Blockly_namespaceObject.Msg.MIXLY_SYSTEM_TIME_LOCALTIME_DATE,"2"],[external_Blockly_namespaceObject.Msg.MIXLY_SYSTEM_TIME_LOCALTIME_HOUR,"3"],[external_Blockly_namespaceObject.Msg.MIXLY_SYSTEM_TIME_LOCALTIME_MINUTE,"4"],[external_Blockly_namespaceObject.Msg.MIXLY_SYSTEM_TIME_LOCALTIME_SECOND,"5"],[external_Blockly_namespaceObject.Msg.MIXLY_SYSTEM_TIME_LOCALTIME_INWEEK,"6"],[external_Blockly_namespaceObject.Msg.MIXLY_SYSTEM_TIME_LOCALTIME_INYEAR,"7"],[external_Blockly_namespaceObject.Msg.MIXLY_SYSTEM_TIME_LOCALTIME_DST,"8"]]),"op"),this.setOutput(!0),this.setInputsInline(!0)}},system_Panic_with_status_code={init:function(){this.setColour(SYSTEM_HUE),this.appendValueInput("STATUS_CODE",Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_Panic_with_status_code).setCheck(Number),this.setPreviousStatement(!0,null),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_CONTROL_DELAY)}},system_reset={init:function(){this.setColour(SYSTEM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_Reset_micro),this.setPreviousStatement(!0)}},controls_mstimer2={init:function(){this.setColour(SYSTEM_HUE),this.appendValueInput("TIME").setCheck(Number).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField("MsTimer2").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MSTIMER2_EVERY),this.appendDummyInput().appendField("ms"),this.appendStatementInput("DO").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MSTIMER2_DO),this.setPreviousStatement(!0),this.setNextStatement(!0)}},controls_mstimer2_start={init:function(){this.setColour(SYSTEM_HUE),this.appendDummyInput().appendField("MsTimer2").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MSTIMER2_START),this.setPreviousStatement(!0),this.setNextStatement(!0)}},controls_mstimer2_stop={init:function(){this.setColour(SYSTEM_HUE),this.appendDummyInput().appendField("MsTimer2").appendField(external_Blockly_namespaceObject.Msg.MIXLY_STOP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},system_time_sleep={init:function(){this.setColour(SYSTEM_HUE),this.appendValueInput("DELAY_TIME",Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_DELAY).setCheck(Number),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_SECOND),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_CONTROL_DELAY)}},TURTLE_HUE=180,turtle_create={init:function(){this.setColour(TURTLE_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_create).appendField(new external_Blockly_namespaceObject.FieldTextInput("tina"),"VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.blockpy_turtle_create_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},turtle_done={init:function(){this.setColour(TURTLE_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_TURTLE_DONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_exitonclick={init:function(){this.setColour(TURTLE_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_TURTLE_EXITONCLICK),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_move={init:function(){this.appendValueInput("TUR").setCheck("Turtle");var e=[[external_Blockly_namespaceObject.Msg.blockpy_forward,"forward"],[external_Blockly_namespaceObject.Msg.blockpy_backward,"backward"]];this.setColour(TURTLE_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_JS_MOVE_BY).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_JS_MOVE_BY_num),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{forward:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_FORWARD,backward:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_BACKWARD}[e]}))}},turtle_rotate={init:function(){this.appendValueInput("TUR").setCheck("Turtle");var e=[[external_Blockly_namespaceObject.Msg.blockpy_left,"left"],[external_Blockly_namespaceObject.Msg.blockpy_right,"right"]];this.setColour(TURTLE_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_rotate).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{left:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_LEFT,right:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_RIGHT}[e]}))}},turtle_setheading={init:function(){this.setColour(TURTLE_HUE),this.appendValueInput("TUR").setCheck("Turtle"),this.appendValueInput("data").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.blockpy_setheading),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_setheading_degree),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_screen_delay={init:function(){this.setColour(TURTLE_HUE),this.appendValueInput("TUR").setCheck("Turtle"),this.appendValueInput("data").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_SCREEN_DELAY),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MILLIS),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_SCREEN_DELAY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_goto={init:function(){this.setColour(TURTLE_HUE),this.appendValueInput("TUR").setCheck("Turtle"),this.appendValueInput("data").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_goto),this.appendValueInput("val").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_goto_y),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_goto_position),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_setxy={init:function(){this.appendValueInput("TUR").setCheck("Turtle");var e=[[external_Blockly_namespaceObject.Msg.PYLAB_LABEL_X,"x"],[external_Blockly_namespaceObject.Msg.PYLAB_LABEL_Y,"y"]];this.setColour(TURTLE_HUE),this.appendValueInput("VAR").appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TURTLE_SETXY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TURTLE_SETXY_TOOLTIP)}},turtle_pos_shape={init:function(){this.setColour(TURTLE_HUE);var e=[[external_Blockly_namespaceObject.Msg.TURTLE_POS,"pos"],[external_Blockly_namespaceObject.Msg.TURTLE_SHAPE,"shape"],[external_Blockly_namespaceObject.Msg.TURTLE_HEADING,"heading"],[external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TURTLE_WIDTH,"width"],[external_Blockly_namespaceObject.Msg.MIXLY_TURTEL_GET_SHAPESIZE,"shapesize"],[external_Blockly_namespaceObject.Msg.MIXLY_SPEED,"speed"]];this.appendValueInput("TUR").setCheck("Turtle"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.TURTLE_POS_SHAPE).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR");var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{pos:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_POS,shape:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_SHAPE,heading:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_HEADING,width:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_WIDTH,speed:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_GET_SPEED,shapesize:external_Blockly_namespaceObject.Msg.MIXLY_TURTEL_GET_SHAPESIZE_TOOLTIP}[e]})),this.setOutput(!0),this.setInputsInline(!0)}},turtle_clear={init:function(){this.appendValueInput("TUR").setCheck("Turtle");var e=[[external_Blockly_namespaceObject.Msg.MIXLY_LCD_STAT_CLEAR,"clear"],[external_Blockly_namespaceObject.Msg.blockpy_turtle_reset,"reset"],[external_Blockly_namespaceObject.Msg.blockpy_turtle_home,"home"]];this.setColour(TURTLE_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{clear:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_CLEAR,reset:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_RESET,home:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_HOME}[e]}))}},turtle_penup={init:function(){this.appendValueInput("TUR").setCheck("Turtle");var e=[[external_Blockly_namespaceObject.Msg.blockpy_turtle_penup,"penup"],[external_Blockly_namespaceObject.Msg.blockpy_turtle_pendown,"pendown"]];this.setColour(TURTLE_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{penup:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_PENUP,pendown:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_PENDOWN}[e]}))}},turtle_fill={init:function(){this.appendValueInput("TUR").setCheck("Turtle");var e=[[external_Blockly_namespaceObject.Msg.blockpy_turtle_beginfill,"begin"],[external_Blockly_namespaceObject.Msg.blockpy_turtle_endfill,"end"]];this.setColour(TURTLE_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{begin:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_BEGINFILL,end:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_ENDFILL}[e]}))}},turtle_size_speed={init:function(){this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldTextInput("tina"),"TUR");var e=[[external_Blockly_namespaceObject.Msg.blockpy_turtle_size,"pensize"],[external_Blockly_namespaceObject.Msg.MIXLY_SPEED,"speed"]];this.setColour(TURTLE_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_set).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR").appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_set_num),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{pensize:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_SIZE,speed:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_SPEED}[e]}))}},turtle_size={init:function(){this.setColour(TURTLE_HUE),this.appendValueInput("TUR").setCheck("Turtle"),this.appendValueInput("data").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_set_size),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_SIZE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_speed={init:function(){this.setColour(TURTLE_HUE),this.appendValueInput("TUR").setCheck("Turtle"),this.appendValueInput("data").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_set_speed),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_SPEED),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_circle={init:function(){this.appendValueInput("TUR").setCheck("Turtle");var e=[[external_Blockly_namespaceObject.Msg.blockpy_turtle_circle,"circle"],[external_Blockly_namespaceObject.Msg.blockpy_turtle_dot,"dot"]];this.setColour(TURTLE_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_draw).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR").appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_radius),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{circle:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_CIRCLE,dot:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_DOT}[e]}))}},turtle_circle_advanced={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(TURTLE_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TURTLE_DRAW_CIRCLE).appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_radius),this.appendValueInput("data").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_angle),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_CIRCLE)}},turtle_visible={init:function(){this.appendValueInput("TUR").setCheck("Turtle");var e=[[external_Blockly_namespaceObject.Msg.blockpy_turtle_hide,"hideturtle"],[external_Blockly_namespaceObject.Msg.blockpy_turtle_show,"showturtle"]];this.setColour(TURTLE_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{hideturtle:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_HIDE,showturtle:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_SHOW}[e]}))}},turtle_bgcolor={init:function(){this.setColour(TURTLE_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_bgcolor).appendField(new external_Blockly_namespaceObject.FieldColour("#ff0000"),"FIELDNAME"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_pencolor={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(TURTLE_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_pencolor).appendField(new external_Blockly_namespaceObject.FieldColour("#ff0000"),"FIELDNAME"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_fillcolor={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(TURTLE_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_fillcolor).appendField(new external_Blockly_namespaceObject.FieldColour("#ff0000"),"FIELDNAME"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_clone={init:function(){this.setColour(TURTLE_HUE),this.appendValueInput("TUR").setCheck("Turtle"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.TURTLE_CLONE),this.setTooltip(external_Blockly_namespaceObject.Msg.TURTLE_CLONE_TOOLTIP),this.setOutput(!0)}},turtle_bgcolor_hex_new={init:function(){this.setColour(TURTLE_HUE),this.appendValueInput("VAR").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_bgcolor),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_pencolor_hex_new={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(TURTLE_HUE),this.appendValueInput("VAR").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_pencolor),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_fillcolor_hex_new={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(TURTLE_HUE),this.appendValueInput("VAR").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_fillcolor),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_color={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(TURTLE_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_pencolor).appendField(new external_Blockly_namespaceObject.FieldColour("#ff0000"),"FIELDNAME"),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_fillcolor).appendField(new external_Blockly_namespaceObject.FieldColour("#ff0000"),"FIELDNAME2"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_color_hex={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(TURTLE_HUE),this.appendValueInput("VAR1").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_pencolor),this.appendValueInput("VAR2").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_fillcolor),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_bgcolor_hex={init:function(){this.setColour(TURTLE_HUE),this.appendValueInput("VAR").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_bgcolor_hex),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_pencolor_hex={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(TURTLE_HUE),this.appendValueInput("VAR").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_pencolor_hex),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_fillcolor_hex={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(TURTLE_HUE),this.appendValueInput("VAR").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_fillcolor_hex),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_shape={init:function(){this.appendValueInput("TUR").setCheck("Turtle");var e=[[external_Blockly_namespaceObject.Msg.blockpy_turtle_shape_arrow,"arrow"],[external_Blockly_namespaceObject.Msg.blockpy_turtle_shape_turtle,"turtle"],[external_Blockly_namespaceObject.Msg.blockpy_turtle_shape_circle,"circle"],[external_Blockly_namespaceObject.Msg.blockpy_turtle_shape_square,"square"],[external_Blockly_namespaceObject.Msg.blockpy_turtle_shape_triangle,"triangle"],[external_Blockly_namespaceObject.Msg.blockpy_turtle_shape_classic,"classic"]];this.setColour(TURTLE_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_shape).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.TURTLE_SHAPE_TOOLTIP)}},turtle_shapesize={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(TURTLE_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTEL_SHAPESIZE),this.appendValueInput("WID").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTEL_SHAPESIZE_WID),this.appendValueInput("LEN").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTEL_SHAPESIZE_LEN),this.appendValueInput("OUTLINE").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTEL_SHAPESIZE_OUTLINE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_SHAPESIZE)}},turtle_numinput={init:function(){this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TURTLE_NUMINPUT),this.setColour(TURTLE_HUE),this.appendValueInput("TITLE").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TURTLE_TEXTINPUT_TITLE),this.appendValueInput("PROMPT").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TURTLE_TEXTINPUT_PROMPT),this.appendValueInput("DEFAULT").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.DICTS_DEFAULT_VALUE),this.appendValueInput("MIN").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MATH_ONLIST_OPERATOR_MIN),this.appendValueInput("MAX").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MATH_ONLIST_OPERATOR_MAX),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(external_Blockly_namespaceObject.Msg.TURTLE_NUMINPUT_TOOLTIP)}},turtle_textinput={init:function(){this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TURTLE_TEXTINPUT),this.setColour(TURTLE_HUE),this.appendValueInput("TITLE").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TURTLE_TEXTINPUT_TITLE),this.appendValueInput("PROMPT").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TURTLE_TEXTINPUT_PROMPT),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(external_Blockly_namespaceObject.Msg.TURTLE_TEXTINPUT_TOOLTIP)}},turtle_write={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(TURTLE_HUE),this.appendValueInput("VAR").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_write),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.TURTLE_WRITE_TOOLTIP)}},turtle_write_format={init:function(){var e=[[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"],[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"]],t=[[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_ALIGN_LEFT,"left"],[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_ALIGN_CENTER,"center"],[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_ALIGN_RIGHT,"right"]],n=[[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_FONT_TYPE_NORMAL,"normal"],[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_FONT_TYPE_BOLD,"bold"],[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_FONT_TYPE_ITALIC,"italic"],[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_FONT_TYPE_BOLD_ITALIC,'bold","italic']];this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(TURTLE_HUE),this.appendValueInput("VAR").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_write),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_MOVE).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"MOVE"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_ALIGN).appendField(new external_Blockly_namespaceObject.FieldDropdown(t),"ALIGN"),this.appendValueInput("FONTNAME").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_FONT_NAME),this.appendValueInput("FONTNUM").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_FONT_TYPE).appendField(new external_Blockly_namespaceObject.FieldDropdown(n),"FONTTYPE"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.TURTLE_WRITE_TOOLTIP)}},turtle_write_format_skulpt={init:function(){var e=[[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"],[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"]],t=[[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_ALIGN_LEFT,"left"],[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_ALIGN_CENTER,"center"],[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_ALIGN_RIGHT,"right"]],n=[[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_FONT_TYPE_NORMAL,"normal"],[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_FONT_TYPE_BOLD,"bold"],[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_FONT_TYPE_ITALIC,"italic"]];this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(TURTLE_HUE),this.appendValueInput("VAR").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_write),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_MOVE).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"MOVE"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_ALIGN).appendField(new external_Blockly_namespaceObject.FieldDropdown(t),"ALIGN"),this.appendValueInput("FONTNAME").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_FONT_NAME),this.appendValueInput("FONTNUM").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_FONT_TYPE).appendField(new external_Blockly_namespaceObject.FieldDropdown(n),"FONTTYPE"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.TURTLE_WRITE_TOOLTIP)}},turtle_color_seclet={init:function(){this.setColour(TURTLE_HUE),this.appendDummyInput("").setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(new external_Blockly_namespaceObject.FieldColour("ff0000"),"COLOR"),this.setInputsInline(!0),this.setOutput(!0,String)}},turtle_getscreen={init:function(){this.setColour(TURTLE_HUE),this.appendValueInput("TUR").setCheck("Turtle"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTEL_GETSCREEN).appendField(new external_Blockly_namespaceObject.FieldTextInput("screen"),"VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TURTEL_GETSCREEN_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},turtle_onkey={init:function(){this.setColour(TURTLE_HUE),this.appendValueInput("TUR"),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTEL_EVENT_ONKEY),this.appendValueInput("callback").appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_CONTROLS_THREAD_USE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TURTEL_EVENT_ONKEY_TOOLTIP)}},turtle_onclick={init:function(){this.setColour(TURTLE_HUE),this.appendValueInput("TUR"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTEL_EVENT_ONCLICK),this.appendValueInput("callback").appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_CONTROLS_THREAD_USE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TURTEL_EVENT_ONCLICK_TOOLTIP)}},turtle_ontimer={init:function(){this.setColour(TURTLE_HUE),this.appendValueInput("TUR"),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTEL_EVENT_ONTIMER),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_mSecond),this.appendValueInput("callback").appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_CONTROLS_THREAD_USE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TURTEL_EVENT_ONTIMER_TOOLTIP)}},turtle_listen={init:function(){this.setColour(TURTLE_HUE),this.appendValueInput("TUR"),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTEL_SCREEN_LISTEN),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_screen_savefig={init:function(){this.setColour(TURTLE_HUE),this.appendValueInput("TUR"),this.appendValueInput("FILE").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.mixpy_PL_SAVEFIG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(external_Blockly_namespaceObject.Msg.mixpy_TURTLE_SAVEFIG_TOOLTIP)}},ai_AI_ChooseAndGet=function(e,t){var n=this.getFieldValue("TYPE");return t.definitions_.import_FileDialog="import FileDialog",["FileDialog."+n+"()",t.ORDER_ATOMIC]},ai_AI_client=function(e,t){var n=this.getFieldValue("CTYPE");return t.definitions_.import_aip="import aip",t.valueToCode(this,"SUB",t.ORDER_ATOMIC)+" = aip."+n+"("+t.valueToCode(this,"API_KEY",t.ORDER_ATOMIC)+", "+t.valueToCode(this,"SECRET_KEY",t.ORDER_ATOMIC)+")\n"},ai_AI_Speech_synthesis=function(e,t){return t.definitions_.import_aip="import aip",[t.valueToCode(this,"SUB",t.ORDER_ATOMIC)+".synthesis("+t.valueToCode(this,"STR",t.ORDER_ATOMIC)+", options="+(t.valueToCode(this,"ATTR",t.ORDER_ATOMIC)||"{}")+")",t.ORDER_ATOMIC]},ai_AI_Speech_asr=function(e,t){return t.definitions_.import_aip="import aip",[t.valueToCode(this,"SUB",t.ORDER_ATOMIC)+".asr("+(t.valueToCode(this,"FILE",t.ORDER_ATOMIC)||'""')+", options="+(t.valueToCode(this,"ATTR",t.ORDER_ATOMIC)||"{}")+")",t.ORDER_ATOMIC]},ai_AI_ImageClassify=function(e,t){t.definitions_.import_aip="import aip";var n=t.valueToCode(this,"SUB",t.ORDER_ATOMIC),a=t.valueToCode(this,"ADDR",t.ORDER_ATOMIC);return[n+"."+t.valueToCode(this,"FUNC",t.ORDER_ATOMIC)+"("+a+", options="+(t.valueToCode(this,"ATTR",t.ORDER_ATOMIC)||"{}")+")",t.ORDER_ATOMIC]},ai_AI_Face_match=function(e,t){return t.definitions_.import_aip="import aip",[t.valueToCode(this,"SUB",t.ORDER_ATOMIC)+".match("+t.valueToCode(this,"VAR",t.ORDER_ATOMIC)+","+t.valueToCode(this,"VAR2",t.ORDER_ATOMIC)+", options="+(t.valueToCode(this,"ATTR",t.ORDER_ATOMIC)||"{}")+")",t.ORDER_ATOMIC]},ai_AI_Ocr=function(e,t){t.definitions_.import_aip="import aip";var n=t.valueToCode(this,"SUB",t.ORDER_ATOMIC),a=t.valueToCode(this,"ADDR",t.ORDER_ATOMIC);return[n+"."+t.valueToCode(this,"FUNC",t.ORDER_ATOMIC)+"("+a+", options="+(t.valueToCode(this,"ATTR",t.ORDER_ATOMIC)||"{}")+")",t.ORDER_ATOMIC]},ai_AI_Nlp=function(e,t){t.definitions_.import_aip="import aip";var n=t.valueToCode(this,"SUB",t.ORDER_ATOMIC),a=t.valueToCode(this,"STR",t.ORDER_ATOMIC);return[n+"."+t.valueToCode(this,"FUNC",t.ORDER_ATOMIC)+"("+a+", options="+(t.valueToCode(this,"ATTR",t.ORDER_ATOMIC)||"{}")+")",t.ORDER_ATOMIC]},ai_AI_Nlp_Sim=function(e,t){t.definitions_.import_aip="import aip";var n=t.valueToCode(this,"SUB",t.ORDER_ATOMIC),a=t.valueToCode(this,"STR1",t.ORDER_ATOMIC),_=t.valueToCode(this,"STR2",t.ORDER_ATOMIC);return[n+"."+t.valueToCode(this,"FUNC",t.ORDER_ATOMIC)+"("+a+","+_+", options="+(t.valueToCode(this,"ATTR",t.ORDER_ATOMIC)||"{}")+")",t.ORDER_ATOMIC]},ai_AI_Nlp_Topic=function(e,t){return t.definitions_.import_aip="import aip",[t.valueToCode(this,"SUB",t.ORDER_ATOMIC)+".topic("+t.valueToCode(this,"STR1",t.ORDER_ATOMIC)+","+t.valueToCode(this,"STR2",t.ORDER_ATOMIC)+")",t.ORDER_ATOMIC]},ai_AI_Nlp_newsSummary=function(e,t){return t.definitions_.import_aip="import aip",[t.valueToCode(this,"SUB",t.ORDER_ATOMIC)+".newsSummary("+t.valueToCode(this,"STR",t.ORDER_ATOMIC)+","+t.valueToCode(this,"LEN",t.ORDER_ATOMIC)+", options="+(t.valueToCode(this,"ATTR",t.ORDER_ATOMIC)||"{}")+")",t.ORDER_ATOMIC]},ai_AI_ImageClassify_Func=function(e,t){return[this.getFieldValue("TYPE"),t.ORDER_ATOMIC]},ai_AI_Ocr_Func=function(e,t){return[this.getFieldValue("TYPE"),t.ORDER_ATOMIC]},ai_AI_Nlp_Func=function(e,t){return[this.getFieldValue("TYPE"),t.ORDER_ATOMIC]},ai_AI_Nlp_Func_sim=function(e,t){return[this.getFieldValue("TYPE"),t.ORDER_ATOMIC]},ai_AI_audio=function(e,t){return t.definitions_.import_audio="import audio","audio.audio_record("+(t.valueToCode(this,"VAR",t.ORDER_ATOMIC)||'""')+","+(t.valueToCode(this,"TIME",t.ORDER_ATOMIC)||"0")+")\n"},ai_AI_photo=function(e,t){return t.definitions_.import_audio="import cam","cam.photo_capture("+(t.valueToCode(this,"VAR",t.ORDER_ATOMIC)||'""')+","+(t.valueToCode(this,"BUT",t.ORDER_ATOMIC)||'""')+")\n"},ai_AI_result=function(e,t){var n=t.valueToCode(this,"AI",t.ORDER_ASSIGNMENT)||"0",a=this.getFieldValue("CTYPE");if("Image"==a)var _=n+'["result"][0]["keyword"]';if("Speech"==a)_=n+'["result"][0]';if("Face"==a||"OcrSimilarity"==a)_=n+'["score"]';if("Ocr"==a)_=n+'["words_result"]';return[_,t.ORDER_ATOMIC]},algorithm_algorithm_prepare=function(e,t){t.definitions_.import_sprite="import sprite";return"g = [[0,0,0,0,0,0,0,0,0,0], [0,0,0,1,0,0,0,0,0,0], [0,0,0,1,0,0,1,0,0,0], [0,1,1,0,1,1,0,0,0,0], [0,0,0,1,0,0,0,1,0,0], [0,0,0,1,0,0,1,1,0,0], [0,0,1,0,0,1,0,1,0,0], [0,0,0,0,1,1,1,0,0,0]]\nmark = [[0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0]]\nvis = [0,1,0,0,0,0,0,0,0]\nposition = [[0, 0], [200, 200], [250, 60], [320, 200], [280, 380], [470, 250], [670, 90], [650, 340]]\nsprite.clearAllSprites()\nsprite.createBackground('map_xuexiao')\n\nhouse = [ sprite.Sprite('mark', 150, 380),\n sprite.Sprite('School', 115, 195),\n sprite.Sprite('House25', 264, 67),\n sprite.Sprite('House36', 320, 200),\n sprite.Sprite('House47', 290, 371),\n sprite.Sprite('House25', 479, 233),\n sprite.Sprite('House36', 674, 96),\n sprite.Sprite('House47', 642, 318)\n]\nfor i in house:\n i.hide()\n"},algorithm_algorithm_add_school=function(){return"path = [1]\ncar = sprite.Sprite('car', position[1][0], position[1][1])\nhouse[1].show()\ncar.nowPos = 1\ndef drive(n):\n if g[car.nowPos][n]==1:\n car.slideTo(position[n][0], position[n][1], 1)\n car.nowPos = n\n else:\n print('移动失败!程序有误!')\n exit()\n"},algorithm_algorithm_find_path=function(e,t){t.definitions_.import_random="import random";return"f = path[(len(path) - 1)]\nflag = 0\nfor _my_variable in [6,5,4,3,2,1,0]:\n if vis[_my_variable+1] == 0 and g[f][_my_variable+1] == 1:\n if mark[f][_my_variable+1] == 0:\n flag = 1\n break\n"},algorithm_algorithm_new_path=function(e,t){return["flag == 1",t.ORDER_ATOMIC]},algorithm_algorithm_set_path=function(){return"mark[f][_my_variable+1] = 1\nvis[_my_variable+1] = 1\n"},algorithm_algorithm_add_path=function(){return"path.append(_my_variable+1)\ndrive(path[len(path) - 1])\nhouse[_my_variable+1].show()\n"},algorithm_algorithm_del_path=function(e,t){t.definitions_.import_time="import time";return"del path[len(path) - 1]\nhouse[0].show()\ntime.sleep(0.5)\nhouse[0].hide()\n"},algorithm_algorithm_return_path=function(){var e="for i in range(7):\n mark[f][i+1] = 0\n vis[f] = 0\n";return e="house[f].hide()\ndrive(path[len(path) - 1])\n"+e},algorithm_algorithm_no_left=function(e,t){return["len(path) == 7",t.ORDER_ATOMIC]},algorithm_algorithm_print_path=function(){return'name = ["","学校","小智家","小欣家","小思家","小科家","贝贝家","乐乐家"]\nres = ""\nfor i in path:\n res = res + name[i] + "-"\nprint(res[:-1])\n'},algorithm_algorithm_prepare2=function(e,t){t.definitions_.import_sprite="import sprite";return"g = [[0,0,0,0,0,0,0,0,0,0], [0,0,0,1,0,0,0,0,0,0], [0,0,0,1,0,0,1,0,0,0], [0,1,1,0,1,0,0,0,0,0], [0,0,0,1,0,0,0,1,0,0], [0,0,0,1,0,0,0,1,0,0], [0,0,1,0,0,0,0,1,0,0], [0,0,0,0,1,1,1,0,0,0]]\nmark = [[0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0]]\nvis = [0,1,0,0,0,0,0,0,0]\nposition = [[0, 0], [200, 200], [250, 60], [320, 200], [280, 380], [470, 250], [670, 90], [650, 340]]\nsprite.clearAllSprites()\nsprite.createBackground('map_xuexiao')\n\nhouse = [ sprite.Sprite('mark', 150, 380),\n sprite.Sprite('School', 115, 195),\n sprite.Sprite('House25', 264, 67),\n sprite.Sprite('House36', 320, 200),\n sprite.Sprite('House47', 290, 371),\n sprite.Sprite('House25', 479, 233),\n sprite.Sprite('House36', 674, 96),\n sprite.Sprite('House47', 642, 318)\n]\nbarricade = sprite.Sprite('barricade', 570, 170)\nbarricade.enlargeTo(100)\nfor i in house:\n i.hide()\n"},algorithm_algorithm_current_school=function(e,t){return["f == 1",t.ORDER_ATOMIC]},algorithm_algorithm_no_path=function(){return"print('没有符合条件的路线')\n"},algorithm_algorithm_prepare_2_1=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";return'g = [[10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000],[10000,10000,500,300,10000,10000,10000,10000,10000,10000,10000],[10000,500,10000,10000,100,10000,10000,10000,10000,10000,10000],[10000,300,10000,10000,400,300,10000,10000,10000,10000,10000],[10000,10000,100,400,10000,10000,200,10000,10000,10000,10000],[10000,10000,10000,300,10000,10000,100,200,10000,10000,10000],[10000,10000,10000,10000,200,100,10000,10000,100,10000,10000],[10000,10000,10000,10000,10000,200,10000,10000,100,10000,10000],[10000,10000,10000,10000,10000,10000,100,100,10000,10000,10000]]\nnow=1\nlast=1\npath=[]\npath.append(1)\nname = ["","小思家","银行","邮局","餐厅","书店","医院","超市","小科家"]\nposition = [[0, 0], [60, 320], [510, 390], [240, 200], [750, 330], [410, 90], [540, 190], [550, 30], [720, 120]]\nsprite.clearAllSprites()\nsprite.createBackground(\'map_si_ke\')\nstu = sprite.Sprite(\'girl\', 60, 320)\nstu.enlargeTo(100)\ntime.sleep(1)\n\n'},algorithm_algorithm_prepare_2_2=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";return'g =[[10000,10000,10000,10000,10000,10000,10000],[10000,10000,300,500,10000,10000,10000],[10000,300,10000,10000,300,700,10000],[10000,500,10000,10000,10000,100,10000],[10000,10000,300,10000,10000,10000,200],[10000,10000,700,100,10000,10000,100],[10000,10000,10000,10000,200,100,10000]]\nnow=1\nlast=1\npath=[]\npath.append(1)\nname = ["","小智家","邮局","银行","书店","餐厅","学校"]\nposition = [[0, 0], [70, 340], [70, 90], [550, 310], [420, 70], [730, 250], [650, 130]]\nsprite.clearAllSprites()\nsprite.createBackground(\'map_zhi_xue\')\nstu = sprite.Sprite(\'boy\', 70, 340)\nstu.enlargeTo(100)\ntime.sleep(1)\n\n'},algorithm_algorithm_move_recent=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";return'tmp=10000\nfor i in range(0, len(g), 1):\n if g[now][i]6:\n print("路线错乱!程序有误!")\n exit()\n'},algorithm_algorithm_not_home=function(e,t){return["name[now] != '小科家'",t.ORDER_ATOMIC]},algorithm_algorithm_not_school=function(e,t){return["name[now] != '学校'",t.ORDER_ATOMIC]},algorithm_algorithm_print_path2=function(){return'res = ""\nfor i in path:\n res = res + name[i] + "→"\nprint(res[:-1])\n'},algorithm_hanoi_init=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";var n=this.getFieldValue("NUM");if(n>=7)var a="print('层数过高!不得高于6层!')\nexit()\n";else a="sprite.clearAllSprites()\n_Hanoicolor = ['blue', 'red', 'yellow', 'green', 'purple', 'black']\n_Hanoi = [[], [], []]\nA = 0\nB = 1\nC = 2\n_n = "+n+"\n_HanoiColumn = [\n sprite.Sprite('HanoiColumn', 200, 320),\n sprite.Sprite('HanoiColumn', 400, 320),\n sprite.Sprite('HanoiColumn', 600, 320)\n]\n_HanoiColumnNumber = [\n sprite.Text('A', 190, 120),\n sprite.Text('B', 390, 120),\n sprite.Text('C', 590, 120)\n]\n_HanoiBlock = []\nfor i in range(0, _n, 1):\n _HanoiBlock.append(sprite.Sprite(_Hanoicolor[i], 200, 400-(_n-i-1)*27))\n _HanoiBlock[i].setScale(25, 30*i+30)\n _Hanoi[0].insert(0, _HanoiBlock[i])\n_steptext = sprite.Text('步数:0', 30, 30)\n_steps = {'steps' : 0}\ntime.sleep(1)\n";return a},algorithm_hanoi_move=function(e,t){var n=t.valueToCode(this,"FROM_NUM",t.ORDER_ATOMIC)||"0",a=t.valueToCode(this,"TO_NUM",t.ORDER_ATOMIC)||"0";return`if len(_Hanoi[${n}])>0 :\n _HanoiBlockMoved = _Hanoi[${n}].pop()\n if len(_Hanoi[${a}]) > 0 :\n _HanoiBlockSuppressed = _Hanoi[${a}].pop()\n if _HanoiBlock.index(_HanoiBlockMoved) > _HanoiBlock.index(_HanoiBlockSuppressed):\n print('非法移动!程序有误!')\n exit()\n else:\n _Hanoi[${a}].append(_HanoiBlockSuppressed)\n _HanoiBlockMoved.slideTo(${n}*200+200, 180, 0.2)\n _HanoiBlockMoved.slideTo(${a}*200+200, 180, 0.5)\n _HanoiBlockMoved.slideTo(${a}*200+200, 400-len(_Hanoi[${a}])*27, 0.2)\n _Hanoi[${a}].append(_HanoiBlockMoved)\n _steps['steps'] += 1\n _steptext.changeText('步数:'+str(_steps['steps']))\nelse :\n print('非法移动!程序有误!')\n exit()\n`},algorithm_algorithm_all_books_sequence=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";return"if 'mode' not in globals() or mode == 0:\n sprite.clearAllSprites()\n ring=[0,0,0,0,0,0,0,0,0,0]\n mode=1\n n=5\n ring[5]=1\n name=['小王子','海底两万里','荷花镇的早市','孔子的故事','夏洛的网','草房子','月下看猫头鹰','会唱歌的咖啡磨','父与子','城南旧事']\n Books = []\n for i in range(1, 11, 1):\n Books.append(sprite.Sprite('books/book'+str(i), (130*i-650) if i>5 else 130*i, 320 if i>5 else 120))\nelse:\n mode=2\n n=len(ring)-1\nring[n]=1\ntime.sleep(1)\n"},algorithm_algorithm_all_books=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";return"if 'mode' not in globals() or mode == 0:\n sprite.clearAllSprites()\n ring=[0,0,0,0,0,0,0,0,0,0]\n mode=2\n n=5\n name=['小王子','海底两万里','荷花镇的早市','孔子的故事','夏洛的网','草房子','月下看猫头鹰','会唱歌的咖啡磨','父与子','城南旧事']\n Books = []\n for i in range(1, 11, 1):\n Books.append(sprite.Sprite('books/book'+str(i), (130*i-650) if i>5 else 130*i, 320 if i>5 else 120))\nelse:\n mode=1\n n=len(ring)-1\nring[n]=n\nlist=ring\ntemp=Books\ntime.sleep(1)\n"},algorithm_algorithm_first_book=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";return"res=0\nflag=ring[res]\nBooks[res].filterBrighter()\ntime.sleep(0.1)\nBooks[res].filterOrigin()\n"},algorithm_algorithm_no_ring2=function(e,t){return["(('mode' not in globals())or(mode==1 and flag==0)or(mode==2 and not any(value > 0 for value in qian))or(mode==0))",t.ORDER_ATOMIC]},algorithm_algorithm_yes_ring2=function(e,t){return["(('mode' in globals())and((mode==1 and flag!=0)or(mode==2 and any(value > 0 for value in qian))))",t.ORDER_ATOMIC]},algorithm_algorithm_next_book=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";var n="res+=1\nflag=ring[res]\n";return n="Books[res].filterGray()\ntime.sleep(0.3)\n"+(n+="Books[res].filterBrighter()\ntime.sleep(0.1)\nBooks[res].filterOrigin()\n")},algorithm_algorithm_two_left=function(e,t){return["len(list)>=2",t.ORDER_ATOMIC]},algorithm_algorithm_divide_books=function(){return"mid = int(len(list)/2)\nqian = list[0:mid]\nhou = list[mid:]\nqiantemp = temp[0:mid]\nhoutemp = temp[mid:]\n"},algorithm_algorithm_get_half_books=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";return"quchu = qian\nlist = hou\nquchutemp = qiantemp\ntemp = houtemp\nfor i in qiantemp:\n i.filterBrighter()\ntime.sleep(0.5)\nfor i in qiantemp:\n i.filterGray()\ntime.sleep(0.5)\n"},algorithm_algorithm_delete_book=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";return"list = quchu\ntemp = quchutemp\nfor i in qiantemp:\n i.filterBrighter()\ntime.sleep(0.5)\nfor i in qiantemp:\n i.filterOrigin()\nfor i in houtemp:\n\ti.filterBrighter()\ntime.sleep(0.5)\nfor i in houtemp:\n i.filterGray()\ntime.sleep(0.5)\n"},algorithm_algorithm_print_book2=function(){return"if 'list' in globals():\n res = list[0]\nBooks[res].filterBrighter()\nprint('未消磁的书籍是第'+str(res+1)+'本《'+name[res%10]+'》。')\nif res!=n:\n print('答案错误!请检查程序!')\nmode=0\n"},algorithm_algorithm_book_scale=function(e,t){var n=this.getFieldValue("NUM");return t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite",`sprite.clearAllSprites()\nring = []\nname = ['小王子','海底两万里','荷花镇的早市','孔子的故事','夏洛的网','草房子','月下看猫头鹰','会唱歌的咖啡磨','父与子','城南旧事']\nBooks = []\nfor i in range(${n}):\n ring.append(0)\nfor i in range(1, ${n}+1, 1):\n Books.append(sprite.Sprite('books/book'+str(i%10 if i%10!=0 else 10), ${{5:"130*i, 120",10:"(130*i-650) if i>5 else 130*i, 320 if i>5 else 120",20:"(65*i-650)+30 if i>10 else 65*i+30, 320 if i>10 else 120",50:"(26*i-650)+50 if i>25 else 26*i+50, 320 if i>25 else 120"}[n]}))\ntime.sleep(1)\nmode=3\n`},algorithm_algorithm_number_zero=function(e,t){t.definitions_.import_sprite="import sprite";return"cnt=0\ncntText = sprite.Text('计数器:0', 30, 200)\n"},algorithm_algorithm_number_add=function(e,t){t.definitions_.import_sprite="import sprite";return"cnt+=1\ncntText.changeText('计数器:'+str(cnt))\n"},algorithm_algorithm_print_number=function(e,t){t.definitions_.import_sprite="import sprite";return"print('计数器大小:'+str(cnt))\n"},algorithm_algorithm_init_jttl=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";return"sprite.clearAllSprites()\n_head = 10\n_foot = 32\n_footText = sprite.Text('脚的数量:', 20, 10)\n_sprite = []\n"},algorithm_algorithm_rabbit_zero=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";return"_rabbit = 0\ntime.sleep(1)\n"},algorithm_algorithm_rabbit_number_in_range=function(e,t){return["_rabbit < _head",t.ORDER_ATOMIC]},algorithm_algorithm_chick_calculate=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";return"_chick = _head - _rabbit\nfor i in range(0, _chick, 1):\n _sprite.append(sprite.Sprite('jttl/chick', len(_sprite)*130+130 if len(_sprite)<5 else len(_sprite)*130+130-650, 120 if len(_sprite)<5 else 320))\n\ntime.sleep(0.5)\n_footText.changeText('脚的数量:'+str(_rabbit*4 + _chick*2))\ntime.sleep(1)\n"},algorithm_algorithm_check_feet=function(e,t){return["_rabbit*4 + _chick*2 == _foot",t.ORDER_ATOMIC]},algorithm_algorithm_print_jttl_answer=function(e,t){t.definitions_.import_sprite="import sprite";return"print('鸡的数量:'+str(_chick)+'只;\\n兔的数量:'+str(_rabbit)+'只。')\n"},algorithm_algorithm_rabbit_add=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";return"_rabbit += 1\nsprite.clearAllSprites()\n_sprite = []\n_footText = sprite.Text('脚的数量:', 20, 10)\nfor i in range(0, _rabbit, 1):\n _sprite.append(sprite.Sprite('jttl/rabbit', len(_sprite)*130+130 if len(_sprite)<5 else len(_sprite)*130+130-650, 120 if len(_sprite)<5 else 320))\ntime.sleep(0.5)\n"},algorithm_algorithm_init_fzsf=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";return"sprite.clearAllSprites()\nsprite.createBackground('/fzsf/map_ck_xxjsjs')\n_S1 = sprite.Sprite('/fzsf/S1',400,225,'S1')\n_S2 = sprite.Sprite('/fzsf/S2',400,225,'S2')\n_S3 = sprite.Sprite('/fzsf/S3',400,225,'S3')\n_S4 = sprite.Sprite('/fzsf/S4',400,225,'S4')\n_S1.hide()\n_S2.hide()\n_S3.hide()\n_S4.hide()\n_text_1 = sprite.Text('S1:',0,0,'text')\n_text_2 = sprite.Text('S2:',0,30,'text2')\n_text_3 = sprite.Text('S3:',0,60,'text3')\n_text_4 = sprite.Text('S4:',0,90,'text4')\n_position = [[60, 270], [240, 50], [260, 380], [440, 190], [730, 60], [700, 400]]\n_Llen = [0, 170, 230, 100, 150, 10, 30, 50]\n_Slen = [0, 0, 0, 0, 0]\n_tag = [0, [0, 1, 3], [0, 2, 3], [3, 4, 5], [3, 5]]\nbear = sprite.Sprite('mixbear',60,270,'bear')\nbear.enlargeTo(80)\n_pos = 0\ntime.sleep(1)\n"},algorithm_algorithm_fz_calc=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";var n=this.getFieldValue("PATHNAME");const a=[0,[1,3],[2,4],[5,7],[6]];var _="";return _+=`_S${n}.show()\ntime.sleep(1)\n`,_+=4!=n?`_Slen[${n}] = _Llen[${a[n][0]}] + _Llen[${a[n][1]}]\n_text_${n}.changeText('S${n}:'+str(_Slen[${n}])+'m')\ntime.sleep(1)\n_S${n}.hide()\ntime.sleep(1)\n`:"_Slen[4] = _Llen[6]\n_text_4.changeText('S4:'+str(_Slen[4])+'m')\ntime.sleep(1)\n_S4.hide()\ntime.sleep(1)\n"},algorithm_algorithm_fz_compare=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";var n="";return[n+=`_Slen[${this.getFieldValue("PATHNAME")}] < _Slen[${this.getFieldValue("PATHNAME2")}]`,t.ORDER_ATOMIC]},algorithm_algorithm_fz_set_min=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";var n=this.getFieldValue("PATHNAME"),a="";return a+=`\n_S1.hide()\n_S2.hide()\n_S3.hide()\n_S4.hide()\n_Smin = ${n}\n_S${n}.show()\ntime.sleep(0.5)\n_S${n}.hide()\ntime.sleep(0.5)\n_S${n}.show()\ntime.sleep(1)\n`},algorithm_algorithm_fz_move=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";return"if(_pos == _tag[_Smin][0]):\n for i in range(1, len(_tag[_Smin]), 1):\n bear.slideTo(_position[_tag[_Smin][i]][0], _position[_tag[_Smin][i]][1], 1)\n _pos = _tag[_Smin][len(_tag[_Smin])-1]\nelse:\n print('移动错误!程序有误!')\n exit()\n_S1.hide()\n_S2.hide()\n_S3.hide()\n_S4.hide()\nif(_pos == 5):\n print('成功抵达信息科技教室!')\n"},algorithm_algorithm_init_hxdb=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";return"sprite.clearAllSprites()\nsprite.createBackground('/hxdb/hxdbbg')\n_soldier = []\n_num = sprite.Text('目前士兵数量:0',0,0,'num')\n_last = sprite.Text('剩余:0',500,0,'last')\n_line = 3\n"},algorithm_algorithm_hxdb_init_soldier=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";var n="";return n+=`for i in range(0, ${this.getFieldValue("NUM")}, 1):\n _soldier.append(sprite.Sprite('/hxdb/soldier', 30 + (len(_soldier)%_line)*50 + (len(_soldier)//(4*_line))*(_line+1)*50 +(len(_soldier)%3-2), 80+(len(_soldier)//_line)*100-(len(_soldier)//(4*_line))*4*100+(len(_soldier)%2)))\n_num.changeText('目前士兵数量:'+str(len(_soldier)))\n`},algorithm_algorithm_hxdb_stand_in_line=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";var n=this.getFieldValue("NUM");return`for i in range(0, len(_soldier), 1):\n _soldier[i].slideTo(30 + (i%${n})*50 + (i//(4*${n}))*(${n}+1)*50 +(i%3-2), 80+(i//${n})*100-(i//(4*${n}))*4*100+(i%2), 0.05)\n_line = ${n}\n_last.changeText('剩余:'+str(len(_soldier)%_line))\ntime.sleep(2)\n`},algorithm_algorithm_hxdb_last_line=function(e,t){return t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite",[`len(_soldier)%_line == ${this.getFieldValue("NUM")}`,t.ORDER_ATOMIC]},algorithm_algorithm_hxdb_add=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";return"_num.changeText('目前士兵数量:'+str(len(_soldier)+1))\n_last.changeText('剩余:')\ntime.sleep(0.5)\n_soldier.append(sprite.Sprite('/hxdb/soldier', 30 + (len(_soldier)%_line)*50 + (len(_soldier)//(4*_line))*(_line+1)*50 +(len(_soldier)%3-2), 80+(len(_soldier)//_line)*100-(len(_soldier)//(4*_line))*4*100+(len(_soldier)%2)))\ntime.sleep(1)\n"},algorithm_algorithm_hxdb_result=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";return"print('符合要求的士兵数量为:'+str(len(_soldier)))\n"},algorithm_hanoi_init_offline=function(e,t){t.definitions_.import_turtle="import turtle",t.definitions_.import_time="import time",t.definitions_.import_math="import math";var n=t.valueToCode(this,"VAR",t.ORDER_ATOMIC),a=this.getFieldValue("NUM");return t.setups_.init_Hanoi="\ndef init_Hanoi():\n pen = turtle.Turtle()\n pen.hideturtle()\n pen.speed(0)\n for i in range(0, 3, 1):\n pen.penup()\n pen.setheading(0)\n pen.goto(150 * i - 200,-100)\n pen.pendown()\n pen.pensize(5)\n pen.forward(100)\n pen.goto(150 * i - 150,-100)\n pen.setheading(90)\n pen.forward(200)",t.setups_.begin="\ndef begin(): \n s = turtle.Turtle()\n s.hideturtle()\n s.penup()\n s.speed(0)\n s.goto(0,-150)\n s.write('3')\n time.sleep(1)\n s.clear()\n s.write('2')\n time.sleep(1)\n s.clear()\n s.write('1')\n time.sleep(1)\n s.clear()\n s.write('Start!')\n time.sleep(1)\n s.clear()\n",t.setups_.move="\ndef move(x, y):\n try:\n t = tower[x].pop(-1)\n a = tower_num[x].pop(-1)\n if tower_num[y]!=[]:\n b = tower_num[y][-1]\n if a 1"}]`,t.ORDER_ATOMIC]},data_dataframe_groupby=function(e,t){return[`${t.valueToCode(e,"DICT",t.ORDER_ATOMIC)||"df"}.groupby(by=${t.valueToCode(e,"KEY",t.ORDER_ATOMIC)||"'tag'"})`,t.ORDER_ATOMIC]},data_dataframe_aggregate_func=function(e,t){return[`${t.valueToCode(e,"DICT",t.ORDER_ATOMIC)||"df"}.${e.getFieldValue("TYPE")}()`,t.ORDER_ATOMIC]},data_plot_cla=function(e,t){t.definitions_.import_matplotlib_pyplot="import matplotlib.pyplot as plt";return"plt.cla()\n"},datastructure_ds_create_linkedlist=function(e,t){var n=t.variableDB_.getName(this.getFieldValue("VAR"),external_Blockly_namespaceObject.Variables.NAME_TYPE),a=t.variableDB_.getName(this.getFieldValue("TYPE"),external_Blockly_namespaceObject.Variables.NAME_TYPE),_="class "+a+":\n";_+=" def __init__(self):\n";for(var l=new Array(this.itemCount_),s=0;spromptHelloHelloHello,HelloMixly2100,1,2,3051iDIVIDE10Exception as eetestThreadtestThreadWHILETRUEHello Mixly from Thread!101802990x151100a10.998124.8211001010100011005011001100020x2x0,1,2,30,1,2,30,1,2,3xMixlyHelloMixly65axMixlyMixly0Mixly02MixlyMixlyHello,mixlyHello,mixly50*Hello,mixlyl--mylistHello,mixlymixlymixpyI love mixly!I love mixlyRandom No. is {}int1100input('1+2*3')dirmylist1,2,3,4,5mylist0mylist02mylist00mylist0101mylistmylist2mylistmylist0mylist00mylist00mylist0mylist0mylist0mylistmylistmylistxmylist0mytup1,2,3,4,5mytup0mytup02mytupmytupmytupmytup0mytupmytup1mytup2xmydictmydictkeymydictkey0mydictkey0mydictkeymydictkeymydictkey0mydictmydictmydictmydictxmydict{"name":"Mixly","color":"green"}mydictresults0locationnames11,2,3,4,5s1s1s1s2s1s2s10s1Mixlys1s2xreadme.txtffilename.txtfffilename.txtfMixlyfff0fffpathpathfilename.txtsrcname.txtdstname.txtfilename.txtpathff0reponsehttps://mixio.mixly.cnreponsehttps://mixio.mixly.cnreponsemixio.mixly.cnmixio.mixly.cnA1B2C3mixio.mixly.cnusernamepasswordMyProjecttopicmsgtopicmethodtopicmethodEQmsg1content"long""lat""message"012content"key1""key2""key3"012tina20tina90tina0tina2020tina50tinatinatinatinatinatina5tinatina225tina5#ff0000#FF0000tina#ff0000#FF0000tina#ff0000#FF0000tina#ff0000#FF0000#ff0000#FF0000tina#FF0000tina#FF0000tina#FF0000tina50tina50360tinascreenkeyfuncUpkeyfunctina100tina90screenclickfuncclickfunctinax20y20screentimerfunc3000timerfunctina100tina90screenscreenturtle.epstina10tinaMixly!tinaMixly!Arial8NUMInput a number:100100Input your nameWhat's your name?df1data.csvdfdfarrayNonearrayNonearrayarrayarraydfvalueFalsedfdf列名x1.55.50.511array1array2myMatrixmyMatrixmyMatrixarraymatrix1matrix2array1array20,1,2,3xmyArraymyArraymyDimensionsmyArraymyArraymyFeatures0imagetemplatesmyArray0myArray0myArraymylistmylist0,1,2,3mydictmydict'a','b','c','d'mydict'ABCD''a','b','c','d'ser1ser10df1tagdf1tagdf11df1GTcolumndf1tag1df1tagmindf1columndf1tagser1ser11,2,3,45,6,7,81,2,3,45,6,7,820,20,20,20tag1,2,3,45,6,7,8tag1,2,3,45,6,7,80.5tag0.25,0.35,0.1,0.3'a','b','c','d'0.2,0,0,011,21,31,41,51,61,71,81,910,20,40,60,80,100211Titleaxis1,2,3,41,2,3,415581.png10020220221001001010.00.010021.0-10.0,10.0TRUEirisiris_Xiris_y0.3modelTRUEFALSEmodel1.0TRUEFALSE300modelmodel100pca2pcaXmodel5modelmodel8300modelXmodelX_trainy_trainmodelX_testy_testmodelX_testmodelmodelmodelD:/mixly/test.pkl \ No newline at end of file +promptHelloHelloHello,HelloMixly2100,1,2,3051iDIVIDE10Exception as eetestThreadtestThreadWHILETRUEHello Mixly from Thread!101802990x151100a10.998124.8211001010100011005011001100020x2x0,1,2,30,1,2,30,1,2,3xMixlyHelloMixly65axMixlyMixly0Mixly02MixlyMixlyHello,mixlyHello,mixly50*Hello,mixlyl--mylistHello,mixlymixlymixpyI love mixly!I love mixlyRandom No. is {}int1100input('1+2*3')dirmylist1,2,3,4,5mylist0mylist02mylist00mylist0101mylistmylist2mylistmylist0mylist00mylist00mylist0mylist0mylist0mylistmylistmylistxmylist0mytup1,2,3,4,5mytup0mytup02mytupmytupmytupmytup0mytupmytup1mytup2xmydictmydictkeymydictkey0mydictkey0mydictkeymydictkeymydictkey0mydictmydictmydictmydictxmydict{"name":"Mixly","color":"green"}mydictresults0locationnames11,2,3,4,5s1s1s1s2s1s2s10s1Mixlys1s2xreadme.txtffilename.txtfffilename.txtfMixlyfff0fffpathpathfilename.txtsrcname.txtdstname.txtfilename.txtpathff0reponsehttps://mixio.mixly.cnreponsehttps://mixio.mixly.cnreponsemixio.mixly.cnmixio.mixly.cnA1B2C3mixio.mixly.cnusernamepasswordMyProjecttopicmsgtopicmethodtopicmethodEQmsg1content"long""lat""message"012content"key1""key2""key3"012tina20tina90tina0tina2020tina50tinatinatinatinatinatina5tinatina225tina5#ff0000#FF0000tina#ff0000#FF0000tina#ff0000#FF0000tina#ff0000#FF0000#ff0000#FF0000tina#FF0000tina#FF0000tina#FF0000tina50tina50360tinascreenkeyfuncUpkeyfunctina100tina90screenclickfuncclickfunctinax20y20screentimerfunc3000timerfunctina100tina90screenscreenturtle.epstina10tinaMixly!tinaMixly!Arial8NUMInput a number:100100Input your nameWhat's your name?d:\\1.wav3d:\\1.jpgqclientEnter Your API_KEYEnter Your SECRET_KEYclient今天天气真好clientclientclientC:/mixly.jpgC:/mixpy.jpgclientclient我爱米思齐client米思齐米思皮client米思齐团队米思齐团队由一群具有共同理想的学生和老师组成,他们始终致力于为开展更好的创客教育而努力。client米思齐团队由一群具有共同理想的学生和老师组成,他们始终致力于为开展更好的创客教育而努力。20df1data.csvdfdfarrayNonearrayNonearrayarrayarraydfvalueFalsedfdf'a','b','c','d'x1.55.50.511array1array2myMatrixmyMatrixmyMatrixarraymatrix1matrix2array1array20,1,2,3xmyArraymyArraymyDimensionsmyArraymyArraymyFeatures0imagetemplatesmyArray0myArray0myArraymylistmylist0,1,2,3mydictmydict'a','b','c','d'mydict'ABCD''a','b','c','d'ser1ser10df1tagdf1tagdf11df1GTcolumndf1tag1df1tagmindf1columndf1tagser1ser11,2,3,45,6,7,81,2,3,45,6,7,820,20,20,20tag1,2,3,45,6,7,8tag1,2,3,45,6,7,80.5tag0.25,0.35,0.1,0.3'a','b','c','d'0.2,0,0,011,21,31,41,51,61,71,81,910,20,40,60,80,100211Titleaxis1,2,3,41,2,3,415581.pngimg1.jpgfacehaarcascade_frontalface_default.xmlfaceRectsimgface1.15faceRectsimgface1.15100100200200Mixlyimg2.jpgimg0img001001003imgMixly02004310020220221001001010.00.010021.0-10.0,10.0TRUEirisiris_Xiris_y0.3modelTRUEFALSEmodel1.0TRUEFALSE300modelmodel100pca2pcaXmodel5modelmodel8300modelXmodelX_trainy_trainmodelX_testy_testmodelX_testmodelmodelmodelD:/mixly/test.pkl \ No newline at end of file diff --git a/boards/default/python_pyodide/main.bundle.js b/boards/default/python_pyodide/main.bundle.js index 93113807..07c6d5ad 100644 --- a/boards/default/python_pyodide/main.bundle.js +++ b/boards/default/python_pyodide/main.bundle.js @@ -28,4 +28,4 @@ var i=n(8287),s=i.Buffer;function o(t,e){for(var n in t)e[n]=t[n]}function r(t,e * See the License for the specific language governing permissions and * limitations under the License. */ -class ut{constructor(t,e){if(this.variablePrefix_=e||"",this.reservedDict_=Object.create(null),t)for(var n=t.split(","),i=0;i0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?n[s]=e.getInputTargetBlock("IF"+s).previousConnection:n[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?i[s]=e.getInputTargetBlock("DO"+s).previousConnection:i[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(ot.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+s).appendField(ot.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(ot.Msg.CONTROLS_IF_MSG_ELSE);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"IF"+s);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_if_if");e.initSvg();for(var n=e.getInput("STACK").connection,i=1;i<=this.elseifCount_;i++){var s=t.newBlock("controls_if_elseif");s.initSvg(),n.connect(s.previousConnection),n=s.nextConnection}if(this.elseCount_){var o=t.newBlock("controls_if_else");o.initSvg(),n.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 n=t.getInputTargetBlock("STACK"),i=[null],s=[null],o=null;n;){switch(n.type){case"controls_if_elseif":this.elseifCount_++,i.push(n.valueConnection_),s.push(n.statementConnection_);break;case"controls_if_else":this.elseCount_++,o=n.statementConnection_;break;default:throw Error("Unknown block type: "+n.type)}n=n.nextConnection&&n.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(i,s,o)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),n=1;e;){switch(e.type){case"controls_if_elseif":var i=this.getInput("IF"+n),s=this.getInput("DO"+n);e.valueConnection_=i&&i.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,n++;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],n=null;this.getInput("ELSE")&&(n=this.getInput("ELSE").connection.targetConnection);for(var i=1;this.getInput("IF"+i);){var s=this.getInput("IF"+i),o=this.getInput("DO"+i);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(o.connection.targetConnection),i++}this.updateShape_(),this.reconnectChildBlocks_(t,e,n)},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(ot.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+t).appendField(ot.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(ot.Msg.CONTROLS_IF_MSG_ELSE)},reconnectChildBlocks_:function(t,e,n){for(var i=1;i<=this.elseifCount_;i++)t[i]&&t[i].reconnect(this,"IF"+i),e[i]&&e[i].reconnect(this,"DO"+i);n&&n.reconnect(this,"ELSE")}},yt={init:function(){this.setColour(Mt),this.appendValueInput("FROM").setCheck(Number).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.PYTHON_RANGE).appendField(ot.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.PYTHON_RANGE_STEP),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(ot.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},Dt={init:function(){this.setColour(Mt),this.appendValueInput("LIST").setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.CONTROLS_FOREACH_INPUT),this.appendValueInput("VAR").appendField(ot.Msg.CONTROLS_FOREACH_INPUT_ITEM),this.appendStatementInput("DO").appendField(ot.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip((function(){return ot.Msg.CONTROLS_FOR_TOOLTIP.replace("“%1”","")}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Nt={init:function(){this.setColour(Mt),this.appendValueInput("BOOL").setCheck([Boolean,Number]).appendField(ot.Msg.MIXLY_MICROBIT_JS_CURRENT).appendField(new ot.FieldDropdown(this.OPERATORS),"MODE"),this.appendStatementInput("DO").appendField(ot.Msg.LANG_CONTROLS_WHILEUNTIL_TITLE_REPEAT+ot.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return{WHILE:ot.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_WHILE,UNTIL:ot.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL}[e]}))}},bt={init:function(){this.setColour(Mt),this.appendDummyInput().appendField(ot.Msg.MIXLY_PYTHON_TRY),this.appendStatementInput("try"),this.appendValueInput("IF1").appendField(ot.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO1").appendField(""),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new ot.icons.MutatorIcon(["controls_except","controls_finally"],this)),this.setTooltip(ot.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,n=[],i=[];this.elseCount_&&this.removeInput("ELSE");for(var s=this.elseifCount_;s>0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?n[s]=e.getInputTargetBlock("IF"+s).previousConnection:n[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?i[s]=e.getInputTargetBlock("DO"+s).previousConnection:i[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(ot.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+s).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(ot.Msg.MIXLY_PYTHON_FINALLY);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"IF"+s);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_try");e.initSvg();for(var n=e.getInput("STACK").connection,i=1;i<=this.elseifCount_;i++){var s=t.newBlock("controls_except");s.initSvg(),n.connect(s.previousConnection),n=s.nextConnection}if(this.elseCount_){var o=t.newBlock("controls_finally");o.initSvg(),n.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 n=t.getInputTargetBlock("STACK"),i=[null],s=[null],o=null;n;){switch(n.type){case"controls_except":this.elseifCount_++,i.push(n.valueConnection_),s.push(n.statementConnection_);break;case"controls_finally":this.elseCount_++,o=n.statementConnection_;break;default:throw Error("Unknown block type: "+n.type)}n=n.nextConnection&&n.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(i,s,o)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),n=1;e;){switch(e.type){case"controls_except":var i=this.getInput("IF"+n),s=this.getInput("DO"+n);e.valueConnection_=i&&i.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,n++;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],n=null;this.getInput("ELSE")&&(n=this.getInput("ELSE").connection.targetConnection);for(var i=1;this.getInput("IF"+i);){var s=this.getInput("IF"+i),o=this.getInput("DO"+i);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(o.connection.targetConnection),i++}this.updateShape_(),this.reconnectChildBlocks_(t,e,n)},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(ot.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+t).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(ot.Msg.MIXLY_PYTHON_FINALLY)},reconnectChildBlocks_:function(t,e,n){for(var i=1;i<=this.elseifCount_;i++)t[i]&&t[i].reconnect(this,"IF"+i),e[i]&&e[i].reconnect(this,"DO"+i);n&&n.reconnect(this,"ELSE")}},vt={init:function(){this.setColour(Mt);var t=new ot.FieldDropdown(this.OPERATORS);this.appendDummyInput().appendField(t,"FLOW").appendField(ot.Msg.LANG_CONTROLS_FLOW_STATEMENTS_INPUT_OFLOOP),this.setPreviousStatement(!0),this.setTooltip(ot.Msg.MIXLY_PYTHON_CONTROLS_FLOW_STATEMENTS_TOOLTIP);var e=this;this.setTooltip((function(){var t=e.getFieldValue("FLOW");return{BREAK:ot.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK,CONTINUE:ot.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(ot.Msg.LANG_CONTROLS_FLOW_STATEMENTS_WARNING)}}},wt={init:function(){this.setColour(Mt),this.appendDummyInput().appendField(ot.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new ot.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(ot.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return ot.Msg.CONTROLS_FOR_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Ft={init:function(){this.setColour(Mt),this.appendDummyInput().appendField(ot.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new ot.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(ot.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return ot.Msg.MIXLY_PYTHON_CONTROLS_FOR_RANGE_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}};Nt.OPERATORS=[[ot.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"WHILE"],[ot.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"UNTIL"]],vt.OPERATORS=[[ot.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK,"BREAK"],[ot.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE,"CONTINUE"]];const Pt={init:function(){this.setColour(Mt),this.appendDummyInput().appendField(ot.Msg.CONTROLS_IF_IF_TITLE_IF),this.appendStatementInput("STACK"),this.setTooltip(ot.Msg.CONTROLS_IF_IF_TOOLTIP),this.contextMenu=!1}},kt={init:function(){this.setColour(Mt),this.appendDummyInput().appendField(ot.Msg.CONTROLS_IF_ELSEIF_TITLE_ELSEIF),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.CONTROLS_IF_ELSEIF_TOOLTIP),this.contextMenu=!1}},Vt={init:function(){this.setColour(Mt),this.appendDummyInput().appendField(ot.Msg.CONTROLS_IF_ELSE_TITLE_ELSE),this.setPreviousStatement(!0),this.setTooltip(ot.Msg.CONTROLS_IF_ELSE_TOOLTIP),this.contextMenu=!1}},Yt={init:function(){this.setColour(Mt),this.appendDummyInput().appendField("try"),this.appendStatementInput("STACK"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.contextMenu=!1}},xt={init:function(){this.setColour(Mt),this.appendDummyInput().appendField(ot.Msg.MIXLY_PYTHON_EXCEPT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.contextMenu=!1,this.setTooltip(ot.Msg.MIXLY_MIXPY_CONTROL_EXCEPT_TOOLTIP)}},Ut={init:function(){this.setColour(Mt),this.appendDummyInput().appendField(ot.Msg.MIXLY_PYTHON_FINALLY),this.setPreviousStatement(!0),this.contextMenu=!1,this.setTooltip(ot.Msg.MIXLY_MIXPY_CONTROL_FINALLY_TOOLTIP)}},Bt={init:function(){this.jsonInit({message0:ot.Msg.CONTROLS_REPEAT_TITLE,args0:[{type:"input_value",name:"TIMES"}],previousStatement:null,nextStatement:null,colour:Mt,tooltip:ot.Msg.CONTROLS_REPEAT_TOOLTIP,helpUrl:ot.Msg.CONTROLS_REPEAT_HELPURL}),this.appendStatementInput("DO")}},Xt={init:function(){this.setColour(Mt),this.appendValueInput("BOOL").appendField("lambda"),this.appendStatementInput("DO").appendField(ot.Msg.MIXLY_STAT),this.setOutput(!0)}},Gt={init:function(){this.setColour(Mt),this.appendDummyInput().appendField(ot.Msg.MIXLY_PYTHON_PASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.MIXLY_PYTHON_CONTROLS_PASS_TOOLTIP)}},Ht={init:function(){this.setColour(Mt),this.appendDummyInput().appendField(ot.Msg.MIXLY_PYTHON_CONTROLS_THREAD_START),this.appendValueInput("callback").appendField(ot.Msg.MIXLY_PYTHON_CONTROLS_THREAD_USE),this.appendValueInput("VAR").appendField(ot.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ot.Msg.MIXLY_PYTHON_CONTROLS_THREAD_TOOLTIP)}},Wt={init:function(){this.appendDummyInput().appendField(ot.Msg.CONTROLS_REPEAT_TITLE_REPEAT+ot.Msg.MIXLY_DO),this.appendStatementInput("input_data").setCheck(null),this.appendValueInput("select_data").setCheck(null).appendField(ot.Msg.CONTROLS_OPERATOR_UNTIL).appendField(new ot.FieldDropdown([[ot.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"true"],[ot.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"false"]]),"type"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Mt),this.setTooltip("do-while loop"),this.setHelpUrl("")}},Kt={init:function(){this.setColour(Mt),this.appendDummyInput().appendField(ot.Msg.MIXLY_OP_GARBAGE_COLLECT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},jt={init:function(){this.setColour(Mt),this.appendDummyInput().appendField(ot.Msg.MIXLY_GET_MEM_ALLOC),this.setOutput(!0)}},qt={init:function(){this.setColour(Mt),this.appendDummyInput().appendField(ot.Msg.MIXLY_GET_MEM_FREE),this.setOutput(!0)}},$t={init:function(){this.setColour(Mt),this.appendDummyInput().appendField(ot.Msg.MIXLY_GET+ot.Msg.MIXLY_DEVICE+"ID"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(ot.Msg.PROCEDURES_DEFRETURN_RETURN+ot.Msg.MIXLY_GET_UNIQUE_IDEN)}},zt={init:function(){this.setColour(Mt),this.appendValueInput("VAR").appendField(ot.Msg.MIXLY_RTC_TIMESTAMP),this.appendDummyInput().appendField(ot.Msg.MIXLY_TIMESTAMP_TO_DATA),this.setInputsInline(!0),this.setOutput(!0,Number)}},Qt=230;ot.FieldTextInput.math_number_validator=function(t){return String(t)},ot.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 Jt={init:function(){this.setColour(Qt),this.appendDummyInput().appendField(new ot.FieldTextInput("0",ot.FieldTextInput.math_number_validator),"NUM"),this.setOutput(!0,Number),this.setTooltip(ot.Msg.MATH_NUMBER_TOOLTIP)}},Zt={init:function(){this.setColour(Qt);this.appendDummyInput("").appendField(ot.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new ot.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:ot.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_TOOLTIP,e:ot.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_TOOLTIP}[e]}))}},te={init:function(){this.setColour(Qt);this.appendDummyInput("").appendField(ot.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new ot.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:ot.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_MP_TOOLTIP,e:ot.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_MP_TOOLTIP}[e]}))}},ee={init:function(){this.setColour(Qt),this.setOutput(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new ot.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:ot.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:ot.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:ot.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:ot.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:ot.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:ot.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:ot.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},ne={init:function(){this.setColour(Qt),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new ot.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:ot.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:ot.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:ot.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:ot.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:ot.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:ot.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:ot.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},ie={init:function(){this.setColour(Qt),this.setOutput(!0,Number),this.appendValueInput("A").setCheck(Number),this.appendValueInput("B").setCheck(Number).appendField(new ot.FieldDropdown([["&","&"],["|","|"],[">>",">>"],["<<","<<"]]),"OP"),this.setInputsInline(!0),this.setTooltip("位运算")}},se={init:function(){this.setColour(Qt),this.setOutput(!0,Number),this.appendValueInput("NUM").setCheck(Number).appendField(new ot.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:ot.Msg.MATH_TRIG_TOOLTIP_SIN,COS:ot.Msg.MATH_TRIG_TOOLTIP_COS,TAN:ot.Msg.MATH_TRIG_TOOLTIP_TAN,ASIN:ot.Msg.MATH_TRIG_TOOLTIP_ASIN,ACOS:ot.Msg.MATH_TRIG_TOOLTIP_ACOS,ATAN:ot.Msg.MATH_TRIG_TOOLTIP_ATAN,LN:ot.Msg.MATH_SINGLE_TOOLTIP_LN}[e]}))}},oe={init:function(){var t=[[ot.Msg.MATH_BIN,"bin"],[ot.Msg.MATH_OCT,"oct"],[ot.Msg.MATH_HEX,"hex"]];this.setColour(Qt),this.setOutput(!0,String),this.appendValueInput("NUM").setCheck(Number).appendField(new ot.FieldDropdown(t),"OP");var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{bin:ot.Msg.MATH_DEC_TOOLTIP_BIN,oct:ot.Msg.MATH_DEC_TOOLTIP_OCT,hex:ot.Msg.MATH_DEC_TOOLTIP_HEX}[t]}))}},re={init:function(){var t=[[ot.Msg.LANG_MATH_TO_ROUND,"round"],[ot.Msg.LANG_MATH_TO_CEIL,"ceil"],[ot.Msg.LANG_MATH_TO_FLOOR,"floor"],[ot.Msg.MATH_ABS,"fabs"],[ot.Msg.MATH_SQRT,"sqrt"]];this.setColour(Qt),this.appendValueInput("A").setCheck(Number).appendField(new ot.FieldDropdown(t),"OP"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{sqrt:ot.Msg.MATH_SINGLE_TOOLTIP_ROOT,fabs:ot.Msg.MATH_SINGLE_TOOLTIP_ABS,sq:ot.Msg.MATH_SINGLE_TOOLTIP_SQ,round:ot.Msg.MATH_SINGLE_TOOLTIP_ROUND,ceil:ot.Msg.MATH_SINGLE_TOOLTIP_CEIL,floor:ot.Msg.MATH_SINGLE_TOOLTIP_FLOOR}[t]}))}},ae={init:function(){var t=[[ot.Msg.MIXLY_MAX,"max"],[ot.Msg.MIXLY_MIN,"min"]];this.setColour(Qt),this.appendValueInput("A").setCheck(Number).setAlign(ot.inputs.Align.RIGHT).appendField(new ot.FieldDropdown(t),"OP").appendField("("),this.appendValueInput("B").setCheck(Number).setAlign(ot.inputs.Align.RIGHT).appendField(","),this.appendDummyInput("").setAlign(ot.inputs.Align.RIGHT).appendField(")"),this.setInputsInline(!0),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{max:ot.Msg.MIXLY_TOOLTIP_MATH_MAX,min:ot.Msg.MIXLY_TOOLTIP_MATH_MIN}[t]}))}},le={init:function(){var t=[[ot.Msg.MATH_TWO,"two"],[ot.Msg.MATH_EIGHT,"eight"],[ot.Msg.MATH_TEN,"ten"],[ot.Msg.MATH_SIXTEEN,"sixteen"]];this.setColour(Qt),this.appendDummyInput("").appendField(ot.Msg.MATH_BA),this.appendValueInput("NUM").appendField(new ot.FieldDropdown(t),"OP").appendField(ot.Msg.MATH_JinZhi).setCheck(Number),this.appendDummyInput("").appendField(ot.Msg.MATH_ZHW).appendField(new ot.FieldDropdown(t),"OP2").appendField(ot.Msg.MATH_JinZhi),this.setFieldValue("ten","OP2"),this.setOutput(!0),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP"),n={two:ot.Msg.MATH_Before_two,eight:ot.Msg.MATH_Before_eight,ten:ot.Msg.MATH_Before_ten,sixteen:ot.Msg.MATH_Before_sixteen},i=e.getFieldValue("OP2"),s={two:ot.Msg.MATH_Behind_two,eight:ot.Msg.MATH_Behind_eight,ten:ot.Msg.MATH_Behind_ten,sixteen:ot.Msg.MATH_Behind_sixteen};return n[t]+s[i]}))}},ue={init:function(){var t=[[ot.Msg.LANG_MATH_INT,"int"],[ot.Msg.LANG_MATH_FLOAT,"float"]];this.setColour(Qt),this.setOutput(!0,Number),this.appendDummyInput().appendField(ot.Msg.MIXLY_MICROBIT_RANDOM).appendField(new ot.FieldDropdown(t),"TYPE"),this.appendValueInput("FROM").setCheck(Number).appendField(ot.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.LANG_MATH_RANDOM_INT_INPUT_TO),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TYPE"),n={int:ot.Msg.LANG_MATH_INT,float:ot.Msg.LANG_MATH_FLOAT_RANDOM};return ot.Msg.MATH_RANDOM_INT_TOOLTIP+n[t]}))}},pe={init:function(){this.setColour(Qt),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number).appendField(ot.Msg.LANG_MATH_CONSTRAIN_INPUT_CONSTRAIN),this.appendValueInput("LOW").setCheck(Number).appendField(ot.Msg.LANG_MATH_CONSTRAIN_INPUT_LOW),this.appendValueInput("HIGH").setCheck(Number).appendField(ot.Msg.LANG_MATH_CONSTRAIN_INPUT_HIGH),this.setInputsInline(!0),this.setTooltip(ot.Msg.MATH_CONSTRAIN_TOOLTIP)}},_e={init:function(){this.setColour(Qt),this.appendValueInput("NUM",Number).appendField(ot.Msg.MIXLY_MAP).setCheck(Number),this.appendValueInput("fromLow",Number).appendField(ot.Msg.MIXLY_MAP_FROM).setCheck(Number),this.appendValueInput("fromHigh",Number).appendField(",").setCheck(Number),this.appendValueInput("toLow",Number).appendField(ot.Msg.MIXLY_MAP_TO).setCheck(Number),this.appendValueInput("toHigh",Number).appendField(",").setCheck(Number),this.appendDummyInput("").appendField("]"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(ot.Msg.MIXLY_TOOLTIP_MATH_MAP)}},de={init:function(){this.setColour(Qt),this.appendDummyInput().appendField(new ot.FieldTextInput("0",ot.FieldTextInput.math_number_validator_include_blank),"NUM"),this.setOutput(!0),this.setTooltip(ot.Msg.MATH_NUMBER_TOOLTIP)}},he={init:function(){this.setColour(Qt),this.appendValueInput("NUM").setCheck(Number).appendField(ot.Msg.LANG_MATH_RANDOM_SEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.MIXLY_TOOLTIP_MATH_RANDOM_SEED)}},ce={init:function(){this.setColour(Qt),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number),this.appendValueInput("VAR").setCheck(Number).appendField(ot.Msg.MATH_ROUND).appendField(ot.Msg.TEXT_KEEP),this.appendDummyInput().appendField(ot.Msg.TEXT_DECIMAL),this.setInputsInline(!0),this.setTooltip(ot.Msg.MATH_ROUND_NEW_TOOLTIP)}},Te={init:function(){var t=[[ot.Msg.MIXLY_TO_INT,"int"],[ot.Msg.MIXLY_TO_FLOAT,"float"],[ot.Msg.MIXLY_TO_BITES,"b"],[ot.Msg.LANG_MATH_BYTE+ot.Msg.MIXLY_TO_INT,"bti"]];this.setColour(Qt),this.appendValueInput("VAR").appendField(new ot.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:ot.Msg.MIXLY_PYTHON_TOOLTIP_TOINT,float:ot.Msg.MIXLY_PYTHON_TOOLTIP_TOFLOAT,b:ot.Msg.MIXLY_TOOLTIP_TEXT_TOBYTE}[t]}))}},Ie={init:function(){var t=[[ot.Msg.MIXLY_TO_INT,"int"],[ot.Msg.MIXLY_TO_FLOAT,"float"]];this.setColour(Qt),this.appendValueInput("VAR").appendField(new ot.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:ot.Msg.MIXLY_TOOLTIP_TEXT_TOINT,float:ot.Msg.MIXLY_TOOLTIP_TEXT_TOFLOAT}[t]}))}},me=_e,Ee={init:function(){this.setColour(Qt),this.appendValueInput("VAR").appendField(ot.Msg.LANG_MATH_BYTE+ot.Msg.MIXLY_TO_HEX),this.setOutput(!0,Number),this.setTooltip(ot.Msg.MIXLY_PYTHON_TOOLTIP_TOHEX)}},fe={init:function(){this.setColour(Qt),this.itemCount_=1,this.setMutator(new ot.icons.MutatorIcon(["lists_create_with_item"],this)),this.appendDummyInput("DUMMY").appendField(ot.Msg.MIXLY_PRODUCT+ot.Msg.MIXLY_GENERATE_CARTESIAN_PRODUCT),this.appendValueInput("REPEAT").appendField(ot.Msg.MIXLY_EVERY_PER_ELEPER_ELEMENT),this.appendDummyInput().appendField(ot.Msg.CONTROLS_REPEAT_TITLE_TIMES),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0),this.setTooltip(ot.Msg.LISTS_CREATE_WITH_PYTHON_TOOLTIP),this.updateShape_()},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("lists_create_with_container");e.initSvg();for(var n=e.getInput("STACK").connection,i=0;i1&&"\\"===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 Re={init:function(){this.setColour(ge),this.appendDummyInput().appendField(this.newQuote_(!0)).appendField(new ot.FieldTextInput("",ot.FieldTextInput.char_validator),"TEXT").appendField(this.newQuote_(!1)),this.setOutput(!0,Number),this.setTooltip(ot.Msg.TEXT_CHAR_TOOLTIP)},newQuote_:function(t){if(1==t)var e="../../media/quote2.png";else e="../../media/quote3.png";return new ot.FieldImage(e,7,12,'"')}},Ae={init:function(){this.setColour(ge),this.appendValueInput("A").setCheck([String,Number]),this.appendValueInput("B").setCheck([String,Number]).appendField(ot.Msg.MIXLY_TEXT_JOIN),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(ot.Msg.MIXLY_TOOLTIP_TEXT_JOIN)}},Se={init:function(){this.setColour(ge),this.appendValueInput("VAR").setCheck(Number).appendField(ot.Msg.MIXLY_TOCHAR),this.setOutput(!0,String),this.setTooltip(ot.Msg.MIXLY_TOOLTIP_TEXT_TOCHAR)}},Ce={init:function(){this.setColour(ge),this.appendValueInput("VAR").setCheck(String).appendField(ot.Msg.MIXLY_TOASCII),this.setOutput(!0,Number),this.setTooltip(ot.Msg.MIXLY_TOOLTIP_TEXT_TOASCII)}},Le={init:function(){this.setColour(ge),this.appendValueInput("VAR").appendField(ot.Msg.MIXLY_TOSTRING),this.setOutput(!0,String),this.setTooltip(ot.Msg.MIXLY_PYTHON_TOOLTIP_TOTEXT)}},ye={init:function(){this.setColour(ge),this.appendValueInput("VAR").appendField(ot.Msg.MIXLY_LENGTH),this.setOutput(!0,Number),this.setTooltip(ot.Msg.MIXLY_TOOLTIP_TEXT_LENGTH)}},De={init:function(){this.WHERE_OPTIONS=[[ot.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[ot.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[ot.Msg.TEXT_GET_INDEX_RANDOM+1+ot.Msg.TEXT_CHARAT2,"RANDOM"]],this.setHelpUrl(ot.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(ge),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number),this.appendDummyInput().appendField(ot.Msg.LISTS_GET_INDEX_GET,"MODE"),ot.Msg.LISTS_GET_INDEX_TAIL&&this.appendDummyInput("TAIL").appendField(ot.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"),n=t.getFieldValue("WHERE"),i="";switch(e+" "+n){case"GET FROM_START":case"GET FROM_END":i=ot.Msg.LISTS_GET_INDEX_TOOLTIP_GET_FROM;break;case"GET RANDOM":i=ot.Msg.LISTS_GET_INDEX_TOOLTIP_GET_RANDOM;break;case"GET_REMOVE FROM_START":case"GET_REMOVE FROM_END":i=ot.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM;break;case"GET_REMOVE RANDOM":i=ot.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM}return"FROM_START"!=n&&"FROM_END"!=n||(i+=" "+ot.Msg.LISTS_INDEX_FROM_START_TOOLTIP.replace("%1",ot.Msg.ONE_BASED_INDEXING?"#1":"#0")),i}));var e=this;this.setTooltip((function(){var t=e.getFieldValue("WHERE"),n={FROM_START:ot.Msg.LISTS_GET_INDEX_FROM_START,FROM_END:ot.Msg.LISTS_GET_INDEX_FROM_END,RANDOM:ot.Msg.TEXT_GET_INDEX_RANDOM};return ot.Msg.PROCEDURES_DEFRETURN_RETURN+ot.Msg.MIXLY_MICROBIT_TYPE_STRING+n[t]+"n"+ot.Msg.TEXT_CHARAT2}))},mutationToDom:function(){var t=document.createElement("mutation");t.setAttribute("statement",!this.outputConnection);var e=this.getInput("AT").type==ot.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),ot.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL").appendField(ot.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT");var e=new ot.FieldDropdown(this.WHERE_OPTIONS,(function(e){var n="FROM_START"==e||"FROM_END"==e;if(n!=t){var i=this.sourceBlock_;return i.updateAt_(n),i.setFieldValue(e,"WHERE"),null}}));this.getInput("AT").appendField(e,"WHERE"),ot.Msg.LISTS_GET_INDEX_TAIL&&this.moveInputBefore("TAIL",null)}},Ne={init:function(){this.setHelpUrl(ot.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(ge),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number).appendField(ot.Msg.LISTS_GET_INDEX_GET+" "+ot.Msg.LISTS_GET_INDEX_FROM_START),this.appendDummyInput().appendField(ot.Msg.TEXT_CHARAT2),this.setOutput(!0),this.setTooltip(ot.Msg.PROCEDURES_DEFRETURN_RETURN+ot.Msg.MIXLY_MICROBIT_TYPE_STRING+ot.Msg.LISTS_GET_INDEX_FROM_START+"n"+ot.Msg.TEXT_CHARAT2)}},be={init:function(){this.setHelpUrl(ot.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(ge),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput().appendField(ot.Msg.TEXT_RANDOM_CHAR),this.setOutput(!0),this.setTooltip(ot.Msg.TEXT_RANDOM_CHAR_TOOLTIP)}},ve={init:function(){this.WHERE_OPTIONS_1=[[ot.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[ot.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[ot.Msg.LISTS_GET_SUBLIST_START_FIRST,"FIRST"]],this.WHERE_OPTIONS_2=[[ot.Msg.LISTS_GET_SUBLIST_END_FROM_START,"FROM_START"],[ot.Msg.LISTS_GET_SUBLIST_END_FROM_END,"FROM_END"],[ot.Msg.LISTS_GET_SUBLIST_END_LAST,"LAST"]],this.setHelpUrl(ot.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(ge),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput("").appendField(ot.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(ot.Msg._GET_TEXT_SUBLIST_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT1").type==ot.INPUT_VALUE;t.setAttribute("at1",e);var n=this.getInput("AT2").type==ot.INPUT_VALUE;return t.setAttribute("at2",n),t},domToMutation:function(t){var e="true"==t.getAttribute("at1"),n="true"==t.getAttribute("at2");this.updateAt_(1,e),this.updateAt_(2,n)},updateAt_:function(t,e){this.removeInput("AT"+t),this.removeInput("ORDINAL"+t,!0),e?(this.appendValueInput("AT"+t).setCheck(Number),ot.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL"+t).appendField(ot.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT"+t);var n=new ot.FieldDropdown(this["WHERE_OPTIONS_"+t],(function(n){var i="FROM_START"==n||"FROM_END"==n;if(i!=e){var s=this.sourceBlock_;return s.updateAt_(t,i),s.setFieldValue(n,"WHERE"+t),null}}));this.getInput("AT"+t).appendField(n,"WHERE"+t),1==t&&(this.moveInputBefore("AT1","AT2"),this.getInput("ORDINAL1")&&this.moveInputBefore("ORDINAL1","AT2"))}},we={init:function(){this.setHelpUrl(ot.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(ge),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT1").appendField(ot.Msg.LISTS_GET_INDEX_GET+" "+ot.Msg.LISTS_GET_INDEX_FROM_START),this.appendValueInput("AT2").appendField(ot.Msg.LISTS_GET_SUBLIST_END_FROM_START),this.appendDummyInput().appendField(ot.Msg.TEXT_CHARAT2),this.setInputsInline(!0),this.setOutput(!0,["List",String]),this.setTooltip(ot.Msg._GET_TEXT_SUBLIST_TOOLTIP)}},Fe={init:function(){var t=[[ot.Msg.MIXLY_EQUALS,"==="],[ot.Msg.MIXLY_STARTSWITH,"startswith"],[ot.Msg.MIXLY_ENDSWITH,"endswith"]];this.setColour(ge),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(new ot.FieldDropdown(t),"DOWHAT").setCheck(String),this.setOutput(!0,[Boolean,Number]),this.setInputsInline(!0)}},Pe={init:function(){this.setColour(ge),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(ot.Msg.MIXLY_COMPARETO).setCheck(String),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(ot.Msg.MIXLY_COMPARETO_HELP)}},ke={init:function(){var t=[[ot.Msg.TEXT_UPPER,"upper"],[ot.Msg.TEXT_TITLE,"title"],[ot.Msg.TEXT_CAPITALIZE,"capitalize"],[ot.Msg.TEXT_SWAPCASE,"swapcase"],[ot.Msg.TEXT_LOWER,"lower"]];this.setColour(ge),this.appendValueInput("VAR").appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new ot.FieldDropdown(t),"CAPITAL").setCheck(String),this.setOutput(!0,String);var e=this;this.setTooltip((function(){var t=e.getFieldValue("CAPITAL");return{upper:ot.Msg.MIXLY_MIXPY_TEXT_UPPER_TOOLTIP,title:ot.Msg.MIXLY_MIXPY_TEXT_TITLE_TOOLTIP,swapcase:ot.Msg.MIXLY_MIXPY_TEXT_SWAPCASE_TOOLTIP,capitalize:ot.Msg.MIXLY_MIXPY_TEXT_CAPITALIZE_TOOLTIP,lower:ot.Msg.MIXLY_MIXPY_TEXT_LOWER_TOOLTIP}[t]}))}},Ve={init:function(){var t=[[ot.Msg.TEXT_LJUST,"ljust"],[ot.Msg.TEXT_CENTER,"center"],[ot.Msg.TEXT_RJUST,"rjust"]];this.setColour(ge),this.appendValueInput("VAR").appendField(new ot.FieldDropdown(t),"CENTER").setCheck(String),this.appendValueInput("WID").appendField(ot.Msg.MIXLY_WIDTH).setCheck(Number),this.appendValueInput("Symbol").appendField(ot.Msg.MIXLY_RECT_Fill).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(ot.Msg.MIXLY_MIXPY_TEXT_CENTER_TOOLTIP)}},Ye={init:function(){this.setColour(ge),this.appendValueInput("VAR").appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).setCheck(String),this.appendValueInput("STR").appendField(ot.Msg.MIXLY_MID+ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER).setCheck(String),this.appendDummyInput().appendField(ot.Msg.MIXLY_LIST_INDEX),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(ot.Msg.MIXLY_MIXPY_TEXT_FIND_TOOLTIP)}},xe={init:function(){this.setColour(ge),this.appendValueInput("VAR").appendField(ot.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_USE_STR).setCheck(String),this.appendValueInput("LIST").appendField(ot.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_SEQ).setCheck("List","Tuple","Set","Dict"),this.appendDummyInput().appendField(ot.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_GET_STR),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(ot.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_TOOLTIP)}},Ue={init:function(){this.setColour(ge),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("STR1").appendField(ot.Msg.MIXLY_MIXPY_REPLACE).setCheck(String),this.appendValueInput("STR2").appendField(ot.Msg.LISTS_SET_INDEX_INPUT_TO).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(ot.Msg.MIXLY_MIXPY_TEXT_REPLACE_TOOLTIP)}},Be={init:function(){this.setColour(ge),this.appendValueInput("VAR"),this.appendValueInput("VAL").appendField(ot.Msg.LIST_SPLIT_AS),this.appendDummyInput("").appendField(ot.Msg.LIST_SPLIT),this.setOutput(!0,"List"),this.setTooltip(ot.Msg.MIXLY_MIXPY_TEXT_SPLIT_TOOLTIP),this.setInputsInline(!0)}},Xe={init:function(){var t=[[ot.Msg.TEXT_TRIM_BOTH,"strip"],[ot.Msg.TEXT_TRIM_LEFT,"lstrip"],[ot.Msg.TEXT_TRIM_RIGHT,"rstrip"]];this.setColour(ge),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(ot.Msg.TEXT_STRIM),this.appendDummyInput("").appendField(new ot.FieldDropdown(t),"TOWHAT"),this.appendDummyInput("").appendField(ot.Msg.TEXT_BLANK),this.setOutput(!0,String),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{strip:ot.Msg.TEXT_TRIM_BOTH_TOOLTIP,lstrip:ot.Msg.TEXT_TRIM_LEFT_TOOLTIP,rstrip:ot.Msg.TEXT_TRIM_RIGHT_TOOLTIP}[t]}))}},Ge={init:function(){this.setColour(ge),this.appendDummyInput("").appendField(ot.Msg.MIXLY_MICROPYTHON_FORMAT),this.appendDummyInput("").appendField(new ot.FieldTextInput("str"),"VAR"),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new ot.icons.MutatorIcon(["text_create_with_item"],this)),this.setOutput(!0),this.setTooltip(ot.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 n=e.getInput("STACK").connection,i=0;ie?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},xn={init:function(){this.setColour(Vn),this.appendDummyInput().appendField(ot.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(ot.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},Un={init:function(){this.setColour(Vn),this.appendDummyInput().appendField(ot.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},Bn={init:function(){this.setColour(Vn),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(ot.Msg.DICT_KEYS),this.setTooltip(ot.Msg.DICTS_KEYS_TOOLTIP),this.setOutput(!0,"List")}},Xn={init:function(){this.setColour(Vn),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(ot.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(ot.Msg.DICTS_ADD_VALUE),this.setOutput(!0),this.setTooltip(ot.Msg.DICTS_GET_TOOLTIP)}},Gn={init:function(){this.setColour(Vn),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(ot.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(ot.Msg.DICTS_ADD_VALUE),this.appendValueInput("VAR").appendField(ot.Msg.DICTS_DEFAULT_VALUE),this.setOutput(!0),this.setTooltip(ot.Msg.DICTS_GET_DEFAULT_TOOLTIP)}},Hn={init:function(){this.setColour(Vn),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(ot.Msg.DICTS_ADD),this.appendDummyInput(),this.appendValueInput("VAR").appendField(ot.Msg.DICTS_ADD_VALUE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.DICTS_ADD_OR_CHANGE_TOOLTIP)}},Wn={init:function(){this.setColour(Vn),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(ot.Msg.DICTS_DELETE_IN),this.appendDummyInput("").appendField(ot.Msg.DICTS_DELETE_VALUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.DICTS_DELETE_TOOLTIP)}},Kn={init:function(){this.setColour(Vn),this.appendValueInput("DICT2").setCheck("Dict").appendField(ot.Msg.MAKE_DICT),this.appendValueInput("DICT").setCheck("Dict").appendField(ot.Msg.DICT_UPDATE),this.appendDummyInput("").appendField(ot.Msg.MIXLY_MID),this.setTooltip(ot.Msg.DICTS_UPDATE_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},jn={init:function(){this.setColour(Vn),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(ot.Msg.DICT_CLEAR),this.setTooltip(ot.Msg.DICTS_CLEAR_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},qn={init:function(){this.setColour(Vn),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(ot.Msg.DICT_ITEMS),this.setTooltip(ot.Msg.DICTS_ITEMS_TOOLTIP),this.setOutput(!0,"List")}},$n={init:function(){this.setColour(Vn),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(ot.Msg.DICT_VALUES),this.setTooltip(ot.Msg.DICTS_VALUES_TOOLTIP),this.setOutput(!0,"List")}},zn={init:function(){this.setColour(Vn),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(ot.Msg.MIXLY_LENGTH),this.setTooltip(ot.Msg.DICT_LENGTH_TOOLTIP),this.setOutput(!0,Number)}},Qn={init:function(){this.setColour(Vn),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(ot.Msg.DICT_DELDICT),this.setTooltip(ot.Msg.DICTS_DEL_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Jn={init:function(){this.MODE=[[ot.Msg.DICTS_ADD_OR_CHANGE,"INSERT"],[ot.Msg.MIXLY_MICROBIT_JS_DELETE_VAR,"DELETE"]],this.setHelpUrl(ot.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(Vn),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("AT2"),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(ot.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).appendField(ot.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=ot.Msg.DICTS_ADD_TOOLTIP;break;case"DELETE":e=ot.Msg.DICTS_DELETE_TOOLTIP}return e}))},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT2").type==ot.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 ot.FieldDropdown(this.MODE,(function(e){var n="INSERT"==e;if(n!=t){var i=this.sourceBlock_;return i.updateAt_(n),i.setFieldValue(e,"WHERE"),null}}));this.getInput("AT2").appendField(e,"WHERE")}},Zn={init:function(){this.setColour(Vn),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(ot.Msg.blockpy_DICT_POP),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(ot.Msg.DICTS_ADD_VALUE),this.setTooltip(ot.Msg.DICT_POP_TOOLTIP),this.setInputsInline(!0),this.setOutput(!0)}},ti={init:function(){this.setColour(Vn),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(ot.Msg.DICTS_SET_DEFAULT),this.appendDummyInput("").appendField(ot.Msg.DICTS_DEFAULT_VALUE),this.appendValueInput("VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.DICTS_SETDEFAULT_TOOLTIP)}},ei={init:function(){this.setColour(Vn),this.appendDummyInput("").appendField(new ot.FieldLabel(ot.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 ot.icons.MutatorIcon(["dicts_create_with_item"],this)),this.setTooltip(ot.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 n=e.getInput("STACK").connection,i=0;ie?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},ni={init:function(){this.setColour(Vn),this.appendValueInput("VAR").appendField(ot.Msg.MIXLY_TODICT),this.setOutput(!0),this.setTooltip(ot.Msg.MIXLY_PYTHON_TOOLTIP_TODICT)}},ii={init:function(){this.setColour(Vn),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(ot.Msg.MIXLY_TO_JSON),this.setTooltip(ot.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0)}},si={init:function(){this.setColour(Vn),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(ot.Msg.MIXLY_CONVERT_TO_JSON),this.setTooltip(ot.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0)}},oi={init:function(){this.setColour(Vn),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("VAR1").appendField("key1"),this.appendValueInput("VAR2").appendField("index"),this.appendValueInput("VAR3").appendField("key2"),this.appendValueInput("VAR4").appendField("key3"),this.setInputsInline(!0),this.setTooltip(ot.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0)}},ri=210,ai={init:function(){var t=ot.RTL?[["=","EQ"],["≠","NEQ"],[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["=","EQ"],["≠","NEQ"],["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(ri),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new ot.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{EQ:ot.Msg.LOGIC_COMPARE_TOOLTIP_EQ,NEQ:ot.Msg.LOGIC_COMPARE_TOOLTIP_NEQ,LT:ot.Msg.LOGIC_COMPARE_TOOLTIP_LT,LTE:ot.Msg.LOGIC_COMPARE_TOOLTIP_LTE,GT:ot.Msg.LOGIC_COMPARE_TOOLTIP_GT,GTE:ot.Msg.LOGIC_COMPARE_TOOLTIP_GTE}[t]})),this.prevBlocks_=[null,null]}},li={init:function(){var t=ot.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]],e=ot.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(ri),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new ot.FieldDropdown(t),"OP1"),this.appendValueInput("C").appendField(new ot.FieldDropdown(e),"OP2"),this.setInputsInline(!0),this.setTooltip(ot.Msg.MIXLY_PYTHON_LOGIC_COMPARE_CONTINOUS_TOOLTIP)}},ui={init:function(){var t=[[ot.Msg.LOGIC_OPERATION_AND,"AND"],[ot.Msg.LOGIC_OPERATION_OR,"OR"],[ot.Msg.LOGIC_OPERATION_NOR,"NOR"],[ot.Msg.LOGIC_OPERATION_XOR,"XOR"]];this.setColour(ri),this.setOutput(!0,Boolean),this.appendValueInput("A").setCheck([Boolean,Number]),this.appendValueInput("B").setCheck([Boolean,Number]).appendField(new ot.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{AND:ot.Msg.LOGIC_OPERATION_TOOLTIP_AND,OR:ot.Msg.LOGIC_OPERATION_TOOLTIP_OR,NOR:ot.Msg.LOGIC_OPERATION_TOOLTIP_NOR,XOR:ot.Msg.LOGIC_OPERATION_TOOLTIP_XOR}[t]}))}},pi={init:function(){this.setColour(ri),this.setOutput(!0,Boolean),this.appendValueInput("BOOL").setCheck([Number,Boolean]).appendField(ot.Msg.LOGIC_NEGATE_TITLE),this.setTooltip(ot.Msg.LOGIC_NEGATE_TOOLTIP)}},_i={init:function(){var t=[[ot.Msg.LOGIC_BOOLEAN_TRUE,"TRUE"],[ot.Msg.LOGIC_BOOLEAN_FALSE,"FALSE"]];this.setColour(ri),this.setOutput(!0,Boolean),this.appendDummyInput().appendField(new ot.FieldDropdown(t),"BOOL"),this.setTooltip(ot.Msg.LOGIC_BOOLEAN_TOOLTIP)}},di={init:function(){this.setColour(ri),this.setOutput(!0),this.appendDummyInput().appendField(ot.Msg.LOGIC_NULL),this.setTooltip(ot.Msg.LOGIC_NULL_TOOLTIP)}},hi={init:function(){this.setColour(ri),this.appendValueInput("A"),this.appendValueInput("B").appendField(ot.Msg.LOGIC_TERNARY_IF_TRUE),this.appendValueInput("C").appendField(ot.Msg.LOGIC_TERNARY_IF_FALSE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ot.Msg.MIXLY_TOOLTIP_LOGIT_TRUEORFALSE)}},ci={init:function(){var t=[[ot.Msg.TEXT_APPEND_TO,"in"],[ot.Msg.MIXLY_PYTHON_LOGIC_IS_NOT_IN,"not in"]];this.setColour(ri),this.appendValueInput("A"),this.appendValueInput("B").setCheck([String,"List"]).appendField(new ot.FieldDropdown(t),"BOOL"),this.appendDummyInput("").appendField(ot.Msg.MICROBIT_LOGIC_IS_IN),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(ot.Msg.IN)}},Ti={init:function(){var t=[[ot.Msg.MIXLY_PYTHON_LOGIC_IS,"is"],[ot.Msg.MIXLY_PYTHON_LOGIC_IS_NOT,"is not"]];this.setColour(ri),this.appendValueInput("A"),this.appendValueInput("B").appendField(new ot.FieldDropdown(t),"BOOL"),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(ot.Msg.MIXLY_PYTHON_LOGIC_IS_TOOLTIP)}},Ii={init:function(){this.setColour(ri),this.appendValueInput("VAR").appendField(ot.Msg.MIXLY_TOBOOL),this.setOutput(!0,Boolean),this.setTooltip(ot.Msg.MIXLY_PYTHON_TOOLTIP_TOBOOL)}},mi={init:function(){this.setColour(0),this.appendValueInput("fn").setCheck(String).appendField(ot.Msg.MIXLY_PYTHON_STORAGE_OPEN_FILE_WITH_OS+"(For Windows)"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Ei={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new ot.FieldDropdown([[ot.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[ot.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendValueInput("FILE").appendField(ot.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"),n=ot.Msg.MIXLY_USE,i=ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=ot.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,o=ot.Msg.MIXLY_BELONG;return n+{r:ot.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:ot.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+o+i+s}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},fi={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new ot.FieldDropdown([[ot.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[ot.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[ot.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"),n=ot.Msg.MIXLY_USE,i=ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=ot.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,o=ot.Msg.MIXLY_BELONG,r=ot.Msg.PY_STORAGE_FILE_OBJECT;return n+{r:ot.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:ot.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+o+i+s+r}))}},gi={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE);this.appendDummyInput().appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new ot.FieldDropdown([[ot.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[ot.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendDummyInput().appendField(ot.Msg.MIXPY_TEXT_ENCODE).appendField(new ot.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"),n=ot.Msg.MIXLY_USE,i=ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=ot.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,o=ot.Msg.MIXLY_BELONG,r=ot.Msg.PY_STORAGE_FILE_OBJECT;return n+{r:ot.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:ot.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+o+i+s+r}))}},Oi={init:function(){this.setColour(0),this.appendValueInput("data").setCheck(String).appendField(ot.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendValueInput("FILE").appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ot.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE+ot.Msg.MIXLY_MICROBIT_TYPE_STRING+ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE)}},Mi={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new ot.FieldDropdown([[ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL,"read"],[ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE,"readline"],[ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES,"readlines"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String)}},Ri={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new ot.FieldDropdown([[ot.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,"read"],[ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,"readline"],[ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE,"readlines"]]),"MODE"),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(ot.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"),n=ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE,i=ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER;return n+{read:ot.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,readline:ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,readlines:ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE}[e]+"x"+i}))}},Ai={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.setNextStatement(!0),this.appendValueInput("SIZE").setCheck(Number).appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE),this.appendDummyInput().appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(ot.Msg.MICROBIT_PYTHON_TYPE)}},Si={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(ot.Msg.HTML_FILE),this.appendDummyInput().appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean),this.setTooltip(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT1)}},Ci={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput().appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILENAME),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILENAME)}},Li={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE)}},yi={init:function(){this.setColour(0),this.appendDummyInput().appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES)}};ot.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE;const Di={init:function(){this.setColour(0),this.appendDummyInput().appendField(new ot.FieldDropdown([[ot.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE,"remove"],[ot.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(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE)}},Ni={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE),this.appendDummyInput().appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE+ot.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE)}},bi={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_RETURN_FILE),this.appendDummyInput().appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_PRESENT_LOCATION),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_TELL)}},vi={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION),this.appendDummyInput().appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION),this.appendDummyInput().appendField(new ot.FieldDropdown([[ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,"start"],[ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,"current"],[ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END,"end"]]),"MODE"),this.appendDummyInput().appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(ot.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"),n=ot.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION+ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION,i=ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER,s=ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET;return n+" "+{start:ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,current:ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,end:ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END}[e]+s+"x"+i}))}},wi={init:function(){this.setColour(0),this.appendDummyInput().appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR)}},Fi={init:function(){this.setColour(0),this.appendValueInput("PATH").setCheck(String).appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH),this.appendDummyInput().appendField(ot.Msg.MIXLY_ESP32_SET),this.appendDummyInput().appendField(new ot.FieldDropdown([[ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,"mkdir"],[ot.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 ot.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH+"x"+ot.Msg.MIXLY_ESP32_SET+{mkdir:ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,makedirs:ot.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},Pi={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME),this.appendValueInput("NEWFILE").setCheck(String).appendField(ot.Msg.MIXLY_AS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME)}},ki={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR)}},Vi={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.appendDummyInput().appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT),this.appendDummyInput().appendField(new ot.FieldDropdown([[ot.Msg.HTML_FILE,"isfile"],[ot.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 ot.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH+"x"+ot.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT+{isfile:ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,isdir:ot.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},Yi={init:function(){this.setColour(0),this.appendValueInput("SPISUB").appendField(ot.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("SUB").appendField(ot.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(ot.Msg.MIXLY_SETUP+ot.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(ot.Msg.MIXLY_SD_CARD),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},xi={init:function(){this.setColour(0),this.appendValueInput("VAR").appendField(ot.Msg.MIXLY_SD_CARD),this.appendValueInput("DIR").setCheck(String).appendField(ot.Msg.MIXLY_SDCARD_MOUNT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip()}},Ui={};Ui.NAME_TYPE=ot.PROCEDURE_CATEGORY_NAME,Ui.allProcedures=function(t){for(var e=t.getAllBlocks(!1),n=[],i=[],s=0;s"),this.appendValueInput("style").appendField(ot.Msg.MIXLY_AIP_ATTR).setAlign(ot.inputs.Align.RIGHT),this.appendStatementInput("DO").appendField(""),this.setInputsInline(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Ps={init:function(){this.setColour(Ds),this.appendDummyInput().appendField(ot.Msg.HTML_STYLE),this.appendStatementInput("STYLE"),this.setOutput(!0)}},ks={init:function(){this.setColour(Ds),this.appendDummyInput().appendField(ot.Msg.HTML_FORM_CONTENT).appendField(new ot.FieldDropdown([[ot.Msg.HTML_TEXT,"text"],[ot.Msg.HTML_EMAIL,"email"],[ot.Msg.HTML_NUMBER,"number"],[ot.Msg.HTML_PASSWORD,"password"],[ot.Msg.HTML_CHECKBOX,"checkbox"],[ot.Msg.HTML_RADIOBUTTON,"radiobutton"],[ot.Msg.HTML_BUTTON,"button"],[ot.Msg.HTML_COLOUR,"colour"],[ot.Msg.HTML_DATE,"date"],[ot.Msg.HTML_LOCALTIME,"local time"],[ot.Msg.HTML_FILE,"file"],[ot.Msg.HTML_HIDDEN,"hidden"],[ot.Msg.HTML_IMAGE,"image"],[ot.Msg.HTML_MONTH,"month"],[ot.Msg.HTML_RANGE,"range"],[ot.Msg.HTML_RESET,"reset"],[ot.Msg.HTML_SEARCH,"search"],[ot.Msg.HTML_SUBMIT,"submit"],[ot.Msg.HTML_TELEPHONENUMBER,"telephone number"],[ot.Msg.HTML_TIME,"time"],[ot.Msg.HTML_URL,"url"],[ot.Msg.HTML_WEEK,"week"]]),"LEVEL"),this.appendDummyInput().appendField(ot.Msg.HTML_NAME).appendField(new ot.FieldTextInput("car"),"NAME"),this.appendDummyInput().appendField(ot.Msg.HTML_VALUE).appendField(new ot.FieldTextInput("go"),"VALUE"),this.appendValueInput("style").appendField(ot.Msg.MIXLY_AIP_ATTR).setAlign(ot.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Vs={init:function(){this.setColour(Ds),this.appendDummyInput().appendField(new ot.FieldTextInput("property"),"KEY").appendField(":").appendField(new ot.FieldTextInput("value"),"VALUE"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Ys={init:function(){this.setColour(Ds),this.appendDummyInput().appendField(new ot.FieldTextInput("property"),"KEY").appendField(":").appendField(new ot.FieldColour("#ff0000"),"RGB_LED_COLOR"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},xs={init:function(){this.setColour(Ds),this.appendDummyInput().appendField(ot.Msg.HTML_TEXT).appendField(new ot.FieldTextInput("text"),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Us=160,Bs={init:function(){this.setColour(Us),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Tabular Abstraction:"),this.appendDummyInput().appendField(new ot.FieldTable(""),"TEXT")}},Xs={init:function(){this.setColour(Us),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Code Block:"),this.appendDummyInput().appendField(new ot.FieldMultilineInput(""),"TEXT")}},Gs={init:function(){this.setColour(Us),this.appendDummyInput().appendField("Code Expression:"),this.appendDummyInput().appendField(new ot.FieldMultilineInput(""),"TEXT"),this.setOutput(!0)}},Hs={init:function(){this.setColour(Us),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("VALUE").appendField(""),this.setInputsInline(!1)}},Ws={init:function(){this.setColour(Us),this.appendDummyInput().appendTitle("Comment:").appendTitle(new ot.FieldTextInput(""),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("This comment will be ignored by Python")}},Ks={init:function(){this.setColour(Us),this.appendValueInput("VALUE").appendField(ot.Msg.TYPE_CHECK),this.setInputsInline(!1),this.setOutput(!0,"Type")}},js={init:function(){this.setColour(Us),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new ot.icons.MutatorIcon(["text_print_multiple_item"],this)),this.setTooltip(ot.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=ot.Block.obtain(t,"text_print_multiple_container");e.initSvg();for(var n=e.getInput("STACK").connection,i=0;i= stop:"," yield start"," start -= abs(step)"])};if(t=function(t,e,n){return"("+t+" <= "+e+") and "+l()+"("+t+", "+e+", "+n+") or "+u()+"("+t+", "+e+", "+n+")"},ot.isNumber(i)&&ot.isNumber(s)&&ot.isNumber(o))i=parseFloat(i),s=parseFloat(s),o=Math.abs(parseFloat(o)),0==i%1&&0==s%1&&0==o%1?(i<=s?(s++,t=0==i&&1==o?s:i+", "+s,1!=o&&(t+=", "+o)):t=i+", "+--s+", -"+o,t="range("+t+")"):(t=i",GTE:">="};const Va=function(t,e){var n=this.getFieldValue("OP"),i="&&"==n?e.ORDER_LOGICAL_AND:e.ORDER_LOGICAL_OR,s=e.valueToCode(this,"A",i)||"False",o=e.valueToCode(this,"B",i)||"False";if("AND"==n)var r=s+" and "+o;else if("OR"==n)r=s+" or "+o;else if("NOR"==n)r="not("+s+"^"+o+")";else r=s+"^"+o;return[r,i]},Ya=function(t,e){var n=e.ORDER_UNARY_PREFIX;return["not "+(e.valueToCode(this,"BOOL",n)||"False"),n]},xa=function(t,e){return["TRUE"==this.getFieldValue("BOOL")?"True":"False",e.ORDER_ATOMIC]},Ua=function(t,e){return["None",e.ORDER_ATOMIC]},Ba=function(t,e){var n=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"False";return["("+(e.valueToCode(this,"B",e.ORDER_ATOMIC)||"False")+" if "+n+" else "+(e.valueToCode(this,"C",e.ORDER_ATOMIC)||"False")+")",e.ORDER_ATOMIC]},Xa=function(t,e){var n=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",i=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[n+" "+this.getFieldValue("BOOL")+" "+i,e.ORDER_ATOMIC]},Ga=function(t,e){var n=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",i=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[n+" "+this.getFieldValue("BOOL")+" "+i,e.ORDER_ATOMIC]},Ha=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"},ja=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')",e.ORDER_ATOMIC]},qa=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"', encoding=\""+this.getFieldValue("CODE")+'")',e.ORDER_ATOMIC]},$a=function(t,e){var n=e.valueToCode(this,"data",e.ORDER_ATOMIC);return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".write("+n+")\n"},za=function(t,e){var n=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+n+"()",e.ORDER_ATOMIC]},Qa=function(t,e){var n=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+n+"("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Ja=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".readline("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Za=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".writable()",e.ORDER_ATOMIC]},tl=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".name()",e.ORDER_ATOMIC]},el=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".close()\n"},nl=function(t,e){e.definitions_.import_os="import os";return["os.listdir()",e.ORDER_ATOMIC]},il=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},sl=function(t,e){return e.definitions_.import_os="import os",["os.path.getsize("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},ol=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".tell()",e.ORDER_ATOMIC]},rl=function(t,e){var n=this.getFieldValue("MODE"),i=0;return i="start"==n?0:"current"==n?1:2,e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".seek("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+","+i+")\n"},al=function(t,e){return e.definitions_.import_os="import os","os.chdir("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},ll=function(t,e){e.definitions_.import_os="import os";return["os.getcwd()",e.ORDER_ATOMIC]},ul=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"PATH",e.ORDER_ATOMIC)+")\n"},pl=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"},_l=function(t,e){e.definitions_.import_os="import os";var n=e.valueToCode(this,"FILE",e.ORDER_ATOMIC);return["os."+this.getFieldValue("MODE")+"("+n+")",e.ORDER_ATOMIC]},dl=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"},hl=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"},cl=function(t,e){var n=e.variableDB_.getName(this.getFieldValue("NAME"),ot.Procedures.NAME_TYPE),i=(this.getInput("STACK")&&e.statementToCode(this,"STACK"))??" pass\n";e.INFINITE_LOOP_TRAP&&(i=e.INFINITE_LOOP_TRAP.replace(/%1/g,"'"+this.id+"'")+i);var s=e.valueToCode(this,"RETURN",e.ORDER_NONE)||"";s&&(s=" return "+s+"\n");for(var o=[],r=0;r\n\n\n\t\n"+e.statementToCode(this,"HEAD")+"\n\n"+e.statementToCode(this,"BODY")+"\n\n'''",e.ORDER_ATOMIC]},ql=function(t,e){var n=e.statementToCode(this,"DO"),i=this.getFieldValue("LEVEL");return"\n"+n+"\n"},$l=function(t,e){var n=e.statementToCode(this,"DO"),i=this.getFieldValue("LEVEL");if("head"==i)var s="<"+i+'>\n\t\n'+n+""+i+">\n";else s="<"+i+">\n"+n+""+i+">\n";return s},zl=function(t,e){var n=e.statementToCode(this,"DO"),i=this.getFieldValue("LEVEL");return"<"+i+">\n"+n+""+i+">\n"},Ql=function(t,e){var n=e.statementToCode(this,"DO"),i=e.valueToCode(this,"style"),s=this.getFieldValue("LEVEL");return"<"+s+" "+i+" >\n"+n+""+s+">\n"},Jl=function(t,e){return['style="'+e.statementToCode(this,"STYLE")+'"',e.ORDER_ATOMIC]},Zl=function(t,e){return'"},tu=function(){return this.getFieldValue("KEY")+":"+this.getFieldValue("VALUE")+";"},eu=function(){return this.getFieldValue("TEXT")+"\n"},nu=function(t){return t.getFieldValue("TEXT")+"\n"},iu=function(t,e){return[t.getFieldValue("TEXT"),e.ORDER_ATOMIC]},su=function(t,e){return(e.valueToCode(t,"VALUE",e.ORDER_ATOMIC)||"")+"\n"},ou=function(){return""},ru=function(t,e){return["type("+(e.valueToCode(t,"VALUE",e.ORDER_MEMBER)||"___")+")",e.ORDER_ATOMIC]},au=function(t,e){for(var n=t.getFieldValue("NAME"),i=t.hasReturn_,s=new Array(t.itemCount_),o=0;o0?e.join("\n")+"\n"+i.join("\n")+"\n"+s.join("")+"\n"+t+"while True:\n"+o.join("")+r.join("\n"):e.join("\n")+"\n"+i.join("\n")+"\n"+s.join("")+"\n"+t+r.join("\n")},uu.scrubNakedValue=function(t){return t+"\n"},uu.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},uu.multiline_quote_=function(t){return"'''"+(t=t.replace(/'''/g,"\\'\\'\\'"))+"'''"},uu.scrub_=function(t,e,n){var i="";if(!t.outputConnection||!t.outputConnection.targetConnection){(o=t.getCommentText())&&(o=ot.utils.string.wrap(o,uu.COMMENT_WRAP-3),i+=uu.prefixLines(o+"\n","# "));for(var s=0;s0?"int("+a+" + "+s+")":s<0?"int("+a+" - "+-s+")":"int("+a+")",i&&(a="-"+a)),a};const pu=205,_u={init:function(){this.setColour(pu),this.appendDummyInput("").appendField(ot.Msg.MIXLY_CHOOSE_AND_GET).appendField(new ot.FieldDropdown([[ot.Msg.MIXLY_CHOOSE_AND_GET_ONE_FILE_NAME,"getOneFile"],[ot.Msg.MIXLY_CHOOSE_AND_GET_MANY_FILE_NAMES,"getManyFiles"],[ot.Msg.MIXLY_CHOOSE_AND_GET_DIR,"getDirectory"]]),"TYPE"),this.setInputsInline(!0),this.setOutput(!0)}},du={init:function(){this.setColour(pu),this.appendDummyInput("").appendField(ot.Msg.MIXLY_SETUP).appendField(new ot.FieldDropdown([[ot.Msg.MIXLY_AipImageClassify,"AipImageClassify"],[ot.Msg.MIXLY_AipSpeech,"AipSpeech"],[ot.Msg.MIXLY_AipImageCensor,"AipImageCensor"],[ot.Msg.MIXLY_AipFace,"AipFace"],[ot.Msg.MIXLY_AipOcr,"AipOcr"],[ot.Msg.MIXLY_AipNlp,"AipNlp"]]),"CTYPE"),this.appendValueInput("SUB").appendField(ot.Msg.MIXLY_Client).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("API_KEY").appendField("API_KEY").setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("SECRET_KEY").appendField("SECRET_KEY").setAlign(ot.inputs.Align.RIGHT),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},hu={init:function(){this.setColour(pu),this.appendValueInput("SUB").appendField(ot.Msg.MIXLY_AipSpeech_synthesis).appendField(ot.Msg.MIXLY_Client).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("STR").appendField(ot.Msg.OLED_STRING).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("ATTR").appendField(ot.Msg.MIXLY_AIP_ATTR).setAlign(ot.inputs.Align.RIGHT),this.setTooltip(ot.Msg.MIXLY_AipSpeech_synthesis_TOOLTIP),this.setInputsInline(!1),this.setOutput(!0)}},cu={init:function(){this.setColour(pu),this.appendValueInput("SUB").appendField(ot.Msg.MIXLY_AipSpeech_asr).appendField(ot.Msg.MIXLY_Client).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("FILE").appendField(ot.Msg.MIXLY_AipSpeech_File).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("ATTR").appendField(ot.Msg.MIXLY_AIP_ATTR).setAlign(ot.inputs.Align.RIGHT),this.setTooltip(ot.Msg.MIXLY_AipSpeech_ASR_TOOLTIP),this.setInputsInline(!1),this.setOutput(!0)}},Tu={init:function(){this.setColour(pu),this.appendValueInput("SUB").appendField(ot.Msg.MIXLY_AipImageClassify).appendField(ot.Msg.MIXLY_Client).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("FUNC").appendField(ot.Msg.MIXLY_AIP_FUNC).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("ADDR").appendField(ot.Msg.MIXLY_AipImageClassify_Image).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("ATTR").appendField(ot.Msg.MIXLY_AIP_ATTR).setAlign(ot.inputs.Align.RIGHT),this.setTooltip(ot.Msg.MIXLY_AipImageClassify_advancedGeneral_TOOLTIP),this.setInputsInline(!1),this.setOutput(!0)}},Iu={init:function(){this.setColour(pu),this.appendDummyInput("").appendField(new ot.FieldDropdown([[ot.Msg.MIXLY_AipImageClassify_advancedGeneral,"advancedGeneral"],[ot.Msg.MIXLY_AipImageClassify_dishDetect,"dishDetect"],[ot.Msg.MIXLY_AipImageClassify_carDetect,"carDetect"],[ot.Msg.MIXLY_AipImageClassify_animalDetect,"animalDetect"],[ot.Msg.MIXLY_AipImageClassify_plantDetect,"plantDetect"],[ot.Msg.MIXLY_AipImageClassify_logoSearch,"logoSearch"]]),"TYPE"),this.setOutput(!0)}},mu={init:function(){this.setColour(pu),this.appendValueInput("SUB").appendField(ot.Msg.MIXLY_AipFace_match).appendField(ot.Msg.MIXLY_Client).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("VAR").appendField(ot.Msg.MIXLY_AipImageClassify_Image+"1"+ot.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("VAR2").appendField(ot.Msg.MIXLY_AipImageClassify_Image+"2"+ot.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("ATTR").appendField(ot.Msg.MIXLY_AIP_ATTR).setAlign(ot.inputs.Align.RIGHT),this.setTooltip(ot.Msg.MIXLY_AipFace_match_TOOLTIP),this.setInputsInline(!1),this.setOutput(!0)}},Eu={init:function(){this.setColour(pu),this.appendValueInput("SUB").appendField(ot.Msg.MIXLY_AipOcr).appendField(ot.Msg.MIXLY_Client).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("FUNC").appendField(ot.Msg.MIXLY_AIP_FUNC).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("ADDR").appendField(ot.Msg.MIXLY_AipImageClassify_Image).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("ATTR").appendField(ot.Msg.MIXLY_AIP_ATTR).setAlign(ot.inputs.Align.RIGHT),this.setTooltip(ot.Msg.MIXLY_AipOcr_TOOLTIP),this.setInputsInline(!1),this.setOutput(!0)}},fu={init:function(){this.setColour(pu),this.appendDummyInput("").appendField(new ot.FieldDropdown([[ot.Msg.MIXLY_AipOcr_basicGeneral,"basicGeneral"],[ot.Msg.MIXLY_AipOcr_webImage,"webImage"],[ot.Msg.MIXLY_AipOcr_idcard,"idcard"],[ot.Msg.MIXLY_AipOcr_bankcard,"bankcard"],[ot.Msg.MIXLY_AipOcr_drivingLicense,"drivingLicense"],[ot.Msg.MIXLY_AipOcr_vehicleLicense,"vehicleLicense"],[ot.Msg.MIXLY_AipOcr_licensePlate,"licensePlate"],[ot.Msg.MIXLY_AipOcr_businessLicense,"businessLicense"],[ot.Msg.MIXLY_AipOcr_receipt,"receipt"],[ot.Msg.MIXLY_AipOcr_trainTicket,"trainTicket"],[ot.Msg.MIXLY_AipOcr_taxiReceipt,"taxiReceipt"],[ot.Msg.MIXLY_AipOcr_form,"tableRecognition"],[ot.Msg.MIXLY_AipOcr_vatInvoice,"vatInvoice"],[ot.Msg.MIXLY_AipOcr_passport,"passport"],[ot.Msg.MIXLY_AipOcr_handwriting,"handwriting"]]),"TYPE"),this.setOutput(!0)}},gu={init:function(){this.setColour(pu),this.appendValueInput("SUB").appendField(ot.Msg.MIXLY_AipNlp).appendField(ot.Msg.MIXLY_Client).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("FUNC").appendField(ot.Msg.MIXLY_AIP_FUNC).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("STR").appendField(ot.Msg.OLED_STRING).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("ATTR").appendField(ot.Msg.MIXLY_AIP_ATTR).setAlign(ot.inputs.Align.RIGHT),this.setTooltip(ot.Msg.MIXLY_AipNlp_TOOLTIP),this.setInputsInline(!1),this.setOutput(!0)}},Ou={init:function(){this.setColour(pu),this.appendValueInput("SUB").appendField(ot.Msg.MIXLY_AipNlp_Sim).appendField(ot.Msg.MIXLY_Client).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("FUNC").appendField(ot.Msg.MIXLY_AIP_FUNC).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("STR1").appendField(ot.Msg.OLED_STRING+"1").setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("STR2").appendField(ot.Msg.OLED_STRING+"2").setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("ATTR").appendField(ot.Msg.MIXLY_AIP_ATTR).setAlign(ot.inputs.Align.RIGHT),this.setTooltip(ot.Msg.MIXLY_AipNlp_Sim_TOOLTIP),this.setInputsInline(!1),this.setOutput(!0)}},Mu={init:function(){this.setColour(pu),this.appendDummyInput("").appendField(new ot.FieldDropdown([[ot.Msg.MIXLY_AipNlp_lexer,"lexer"],[ot.Msg.MIXLY_AipNlp_depParser,"depParser"],[ot.Msg.MIXLY_AipNlp_wordEmbedding,"wordEmbedding"],[ot.Msg.MIXLY_AipNlp_dnnlm,"dnnlm"],[ot.Msg.MIXLY_AipNlp_commentTag,"commentTag"],[ot.Msg.MIXLY_AipNlp_sentimentClassify,"sentimentClassify"],[ot.Msg.MIXLY_AipNlp_keyword,"keyword"],[ot.Msg.MIXLY_AipNlp_topic,"topic"],[ot.Msg.MIXLY_AipNlp_ecnet,"ecnet"],[ot.Msg.MIXLY_AipNlp_emotion,"emotion"]]),"TYPE"),this.setOutput(!0)}},Ru={init:function(){this.setColour(pu),this.appendDummyInput("").appendField(new ot.FieldDropdown([[ot.Msg.MIXLY_AipNlp_wordSimEmbedding,"wordSimEmbedding"],[ot.Msg.MIXLY_AipNlp_simnet,"simnet"]]),"TYPE"),this.setOutput(!0)}},Au={init:function(){this.setColour(pu),this.appendValueInput("SUB").appendField(ot.Msg.MIXLY_AipNlp_topic).appendField(ot.Msg.MIXLY_Client).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("STR1").appendField(ot.Msg.MIXLY_AipNlp_Topic_Title).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("STR2").appendField(ot.Msg.MIXLY_AipNlp_Topic_Content).setAlign(ot.inputs.Align.RIGHT),this.setTooltip(ot.Msg.MIXLY_AipNlp_Topic_TOOLTIP),this.setInputsInline(!1),this.setOutput(!0)}},Su={init:function(){this.setColour(pu),this.appendValueInput("SUB").appendField(ot.Msg.MIXLY_AipNlp_summary).appendField(ot.Msg.MIXLY_Client).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("STR").appendField(ot.Msg.MIXLY_AipNlp_Topic_Content).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("LEN").appendField(ot.Msg.MIXLY_LIST_LEN).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("ATTR").appendField(ot.Msg.MIXLY_AIP_ATTR).setAlign(ot.inputs.Align.RIGHT),this.setTooltip(ot.Msg.MIXLY_AipNlp_Summary_TOOLTIP),this.setInputsInline(!1),this.setOutput(!0)}},Cu={init:function(){this.setColour(pu),this.appendValueInput("VAR").appendField(ot.Msg.MIXPY_AI_AUDIO),this.appendValueInput("TIME").appendField(ot.Msg.MIXPY_AI_AUDIO_TIME),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ot.Msg.MIXPY_AI_AUDIO_TOOLTIP)}},Lu={init:function(){this.setColour(pu),this.appendValueInput("VAR").appendField(ot.Msg.MIXPY_AI_PHOTO),this.appendValueInput("BUT").appendField(ot.Msg.MIXPY_AI_PHOTO_BUTTON),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ot.Msg.MIXPY_AI_PHOTO_TOOLTIP)}},yu={init:function(){this.setColour(pu),this.appendValueInput("AI").appendField(ot.Msg.MIXPY_AI_RESULT).appendField(new ot.FieldDropdown([[ot.Msg.MIXLY_AipImageClassify,"Image"],[ot.Msg.MIXLY_AipSpeech_asr,"Speech"],[ot.Msg.MIXLY_AipFace_match,"Face"],[ot.Msg.MIXLY_AipOcr,"Ocr"],[ot.Msg.MIXLY_AipNlp_simnet,"OcrSimilarity"],[ot.Msg.MIXLY_AipNlp_sentimentClassify,"Emotion"]]),"CTYPE"),this.setOutput(!0),this.setTooltip(ot.Msg.LOGIC_NEGATE_TOOLTIP)}},Du="#526FC3",Nu={init:function(){this.setColour(Du),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_PREPARE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},bu={init:function(){this.setColour(Du),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_ADD_SCHOOL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},vu={init:function(){this.setColour(Du),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_FIND_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},wu={init:function(){this.setColour(Du),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_NEW_PATH),this.setOutput(!0)}},Fu={init:function(){this.setColour(Du),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_SET_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Pu={init:function(){this.setColour(Du),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_ADD_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},ku={init:function(){this.setColour(Du),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_DEL_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Vu={init:function(){this.setColour(Du),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_RETURN_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Yu={init:function(){this.setColour(Du),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_NO_LEFT),this.setOutput(!0)}},xu={init:function(){this.setColour(Du),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_PRINT_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Uu={init:function(){this.setColour(Du),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_PREPARE2),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Bu={init:function(){this.setColour(Du),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_CURRENT_SCHOOL),this.setOutput(!0)}},Xu={init:function(){this.setColour(Du),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_NO_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Gu={init:function(){this.setColour(Du),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_PREPARE_2_1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Hu={init:function(){this.setColour(Du),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_PREPARE_2_2),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Wu={init:function(){this.setColour(Du),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_MOVE_RECENT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Ku={init:function(){this.setColour(Du),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_NOT_HOME),this.setOutput(!0)}},ju={init:function(){this.setColour(Du),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_NOT_SCHOOL),this.setOutput(!0)}},qu={init:function(){this.setColour(Du),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_PRINT_PATH2),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},$u={init:function(){this.appendDummyInput().appendField("准备").appendField(new ot.FieldNumber(3,0,100,1),"NUM").appendField("层汉诺塔"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Du),this.setTooltip(""),this.setHelpUrl("")}},zu={init:function(){this.appendDummyInput().appendField("移动圆盘从"),this.appendValueInput("FROM_NUM").setCheck(null).appendField("柱"),this.appendDummyInput().appendField("到"),this.appendValueInput("TO_NUM").setCheck(null).appendField("柱"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Du),this.setTooltip(""),this.setHelpUrl("")}},Qu={init:function(){this.setColour(Du),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_ALL_BOOKS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Ju={init:function(){this.setColour(Du),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_ALL_BOOKS2),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Zu={init:function(){this.setColour(Du),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_FIRST_BOOK),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},tp={init:function(){this.setColour(Du),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_NO_RING),this.setOutput(!0)}},ep={init:function(){this.setColour(Du),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_YES_RING),this.setOutput(!0)}},np={init:function(){this.setColour(Du),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_NEXT_BOOK),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},ip={init:function(){this.setColour(Du),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_TWO_LEFT),this.setOutput(!0)}},sp={init:function(){this.setColour(Du),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_DIVIDE_BOOKS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},op={init:function(){this.setColour(Du),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_GET_HALF_BOOKS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},rp={init:function(){this.setColour(Du),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_DELETE_BOOK),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},ap={init:function(){this.setColour(Du),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_DELETE_BOOKS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},lp={init:function(){this.setColour(Du),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_DELETE_BOOKS2),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},up={init:function(){this.setColour(Du),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_PRINT_BOOK),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},pp={init:function(){this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("设置待查书总数 N=").appendField(new ot.FieldDropdown([["5","5"],["10","10"],["20","20"],["50","50"]]),"NUM"),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Du),this.setTooltip(""),this.setHelpUrl("")}},_p={init:function(){this.setColour(Du),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_NUMBER_ZERO),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},dp={init:function(){this.setColour(Du),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_NUMBER_ADD),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},hp={init:function(){this.setColour(Du),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_PRINT_NUMBER),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},cp={init:function(){this.setColour(Du),this.appendDummyInput().appendField("n"+ot.Msg.MIXLY_VALUE2).appendField(new ot.FieldTextInput("50"),"NUM"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Tp={init:function(){this.setColour(Du),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_PRINT_SEQUENCE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Ip={init:function(){this.setColour(Du),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_PRINT_DIVIDE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},mp={init:function(){this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("初始化鸡兔同笼问题:"),this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("有若干只鸡、兔在同一个笼子里。"),this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("从上面数鸡兔有10个头,"),this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("从下面数鸡兔有32只脚。"),this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("问笼中有多少只鸡和多少只兔?"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Du),this.setTooltip(""),this.setHelpUrl("")}},Ep={init:function(){this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("假设兔子的数量为0只"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Du),this.setTooltip(""),this.setHelpUrl("")}},fp={init:function(){this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("兔子的数量在范围之内"),this.setOutput(!0,null),this.setColour(Du),this.setTooltip(""),this.setHelpUrl("")}},gp={init:function(){this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("根据(头数-兔子数)计算出鸡的数量"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Du),this.setTooltip(""),this.setHelpUrl("")}},Op={init:function(){this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("计算得到脚的数量正确"),this.setOutput(!0,null),this.setColour(Du),this.setTooltip(""),this.setHelpUrl("")}},Mp={init:function(){this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("输出鸡、兔的数量"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Du),this.setTooltip(""),this.setHelpUrl("")}},Rp={init:function(){this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("假设兔子数量要更多一只"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Du),this.setTooltip(""),this.setHelpUrl("")}},Ap={init:function(){this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("加载路线图"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Du),this.setTooltip(""),this.setHelpUrl("")}},Sp={init:function(){this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("计算").appendField(new ot.FieldDropdown([["S1","1"],["S2","2"],["S3","3"],["S4","4"]]),"PATHNAME").appendField("长度"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Du),this.setTooltip(""),this.setHelpUrl("")}},Cp={init:function(){this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("设置S1为Smin"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Du),this.setTooltip(""),this.setHelpUrl("")}},Lp={init:function(){this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField(new ot.FieldDropdown([["S1","1"],["S2","2"],["S3","3"],["S4","4"]]),"PATHNAME").appendField("的长度比").appendField(new ot.FieldDropdown([["S1","1"],["S2","2"],["S3","3"],["S4","4"]]),"PATHNAME2").appendField("短"),this.setOutput(!0,null),this.setColour(Du),this.setTooltip(""),this.setHelpUrl("")}},yp={init:function(){this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("设置").appendField(new ot.FieldDropdown([["S1","1"],["S2","2"],["S3","3"],["S4","4"]]),"PATHNAME").appendField("为Smin"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Du),this.setTooltip(""),this.setHelpUrl("")}},Dp={init:function(){this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("按照Smin移动"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Du),this.setTooltip(""),this.setHelpUrl("")}},Np={init:function(){this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("初始化韩信点兵问题:"),this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("有未知数量的若干士兵。"),this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("若3人一排列队,多1人;"),this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("若5人一排列队,多2人;"),this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("若7人一排列队,多2人;"),this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("问士兵的数量最少是多少人?"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Du),this.setTooltip(""),this.setHelpUrl("")}},bp={init:function(){this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("初始化士兵为").appendField(new ot.FieldTextInput("7"),"NUM").appendField("个"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Du),this.setTooltip(""),this.setHelpUrl("")}},vp={init:function(){this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("使士兵").appendField(new ot.FieldDropdown([["3","3"],["5","5"],["7","7"]]),"NUM").appendField("人一排列队"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Du),this.setTooltip(""),this.setHelpUrl("")}},wp={init:function(){this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("剩余").appendField(new ot.FieldTextInput("1"),"NUM").appendField("个士兵"),this.setOutput(!0,null),this.setColour(Du),this.setTooltip(""),this.setHelpUrl("")}},Fp={init:function(){this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("增加1个士兵"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Du),this.setTooltip(""),this.setHelpUrl("")}},Pp={init:function(){this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("输出士兵数量"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Du),this.setTooltip(""),this.setHelpUrl("")}},kp={init:function(){this.appendDummyInput().appendField("准备").appendField(new ot.FieldNumber(3,0,100,1),"NUM").appendField("层汉诺塔"),this.appendValueInput("VAR").setCheck(String).appendField(ot.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Du),this.setInputsInline(!0),this.setTooltip(""),this.setHelpUrl("")}},Vp={init:function(){this.setColour(Du),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_GET_CURRENT_LOCATION),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Yp={init:function(){this.setColour(Du),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_VOID_PATH),this.setOutput(!0)}},xp={init:function(){this.setColour(Du),this.appendDummyInput("").setAlign(ot.inputs.Align.RIGHT).appendField(new ot.FieldColour("ff0000"),"COLOR"),this.setInputsInline(!0),this.setOutput(!0,String)}},Up="#3288dd",Bp={init:function(){this.setColour(Up),this.appendValueInput("DOMAIN").appendField(ot.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(ot.Msg.blockpy_REQUESTS_GET).appendField(new ot.FieldTextInput("response"),"VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.blockpy_REQUESTS_GET_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Xp={init:function(){this.setColour(Up),this.appendValueInput("URL").appendField(ot.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(ot.Msg.blockpy_CONDUCT).appendField(new ot.FieldDropdown([["get","get"],["head","head"],["delete","delete"]]),"TYPE").appendField(ot.Msg.blockpy_REQUESTS).appendField(ot.Msg.MIXPY_REQUESTS_GET_RESULT),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip("")}},Gp={init:function(){this.setColour(Up),this.appendValueInput("URL").appendField(ot.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(ot.Msg.blockpy_CONDUCT).appendField(new ot.FieldDropdown([["post","post"],["put","put"],["patch","patch"]]),"TYPE").appendField(ot.Msg.blockpy_REQUESTS),this.appendValueInput("data").appendField(ot.Msg.blockpy_REQUESTS+ot.Msg.OLED_STRING),this.appendDummyInput("").appendField(ot.Msg.MIXPY_REQUESTS_GET_RESULT),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip("")}},Hp={init:function(){this.appendValueInput("VAL");var t=[[ot.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE,"status_code"],[ot.Msg.blockpy_REQUESTS_GET_ATTR_TEXT,"text"],[ot.Msg.blockpy_REQUESTS_GET_ATTR_COOKIES,"cookies"],[ot.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT,"content"],[ot.Msg.MIXPY_TEXT_ENCODE,"encoding"]];this.setColour(Up),this.appendDummyInput("").appendField(ot.Msg.MIXLY_MICROBIT_JS_GET).appendField(new ot.FieldDropdown(t),"ATTR"),this.setInputsInline(!0),this.setOutput(!0,String)}},Wp={init:function(){this.appendValueInput("VAR").appendField(ot.Msg.DISPLAY_IMAGE_LET2).setCheck(String);this.setColour(Up),this.appendDummyInput("").appendField(ot.Msg.blockpy_CONDUCT).appendField(new ot.FieldDropdown([["post","post"],["put","put"],["delete","delete"],["head","head"],["option","option"]]),"DIR"),this.appendDummyInput("").appendField(ot.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:ot.Msg.MIXLY_TOOLTIP_TURTEL_FORWARD,backward:ot.Msg.MIXLY_TOOLTIP_TURTEL_BACKWARD}[e]}))}},Kp="f0a559",jp={init:function(){this.setColour(Kp),this.appendValueInput("FILE").setCheck(String).appendField(ot.Msg.MIXLY_CV_IMREAD),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)}},qp={init:function(){this.setColour(Kp),this.appendValueInput("FILE").appendField(ot.Msg.OLED_BITMAP),this.appendValueInput("data").setCheck(String).appendField(ot.Msg.MIXLY_AipNlp_Topic_Title),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},$p={init:function(){this.setColour(Kp),this.appendValueInput("FILE").appendField(ot.Msg.MIXLY_CV_IMWRITE),this.appendValueInput("data").setCheck(String).appendField(ot.Msg.HTML_NAME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},zp={init:function(){this.setColour(Kp),this.appendValueInput("data").setCheck(Number).appendField(ot.Msg.MIXLY_DELAY),this.appendDummyInput().appendField(ot.Msg.MIXLY_MILLIS+ot.Msg.MIXLY_CV_OR_PRESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ot.Msg.MIXLY_CV_WAITKEY_TOOLTIP)}},Qp={init:function(){this.setColour(Kp),this.appendDummyInput().appendField(ot.Msg.MIXLY_CV_DESTROY_ALL),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Jp={init:function(){this.setColour(Kp),this.appendValueInput("FILE").appendField(ot.Msg.MIXLY_MICROBIT_IMAGE);var t=[[ot.Msg.MIXLY_CV_RECT,"rectangle"],[ot.Msg.MIXLY_CV_LINE,"line"]];this.appendValueInput("x1").setCheck(Number).appendField(ot.Msg.MIXLY_DISPLAY_DRAW).appendField(new ot.FieldDropdown(t),"DIR").appendField(ot.Msg.MIXLY_CV_DRAWLINE_BEGIN+"(x1"),this.appendValueInput("y1").setCheck(Number).appendField(",y1"),this.appendValueInput("x2").setCheck(Number).appendField(") "+ot.Msg.MIXLY_CV_DRAWLINE_END+"(x2"),this.appendValueInput("y2").setCheck(Number).appendField(",y2"),this.appendDummyInput().appendField(") "+ot.Msg.MIXLY_CV_DRAWLINE_COLOR).appendField(new ot.FieldColour("#ff0000"),"FIELDNAME"),this.appendValueInput("thick").setCheck(Number).appendField(ot.Msg.MIXLY_CV_DRAWLINE_THICKNESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ot.Msg.MIXLY_CV_DRAWLINE_RECT_TOOLTIP)}},Zp={init:function(){this.setColour(Kp),this.appendValueInput("FILE").appendField(ot.Msg.MIXLY_MICROBIT_IMAGE);this.appendValueInput("data").setCheck(String).appendField(ot.Msg.MIXLY_CV_DRAWTEXT),this.appendValueInput("x1").setCheck(Number).appendField(ot.Msg.MIXLY_CV_DRAWLINE_BEGIN+"(x1"),this.appendValueInput("y1").setCheck(Number).appendField(",y1"),this.appendDummyInput().appendField(") "+ot.Msg.MIXLY_TURTLE_WRITE_FONT_NAME).appendField(new ot.FieldDropdown([["SIMPLEX","SIMPLEX"],["PLAIN","PLAIN"],["DUPLEX","DUPLEX"],["COMPLEX","COMPLEX"],["COMPLEX_SMALL","COMPLEX_SMALL"],["TRIPLEX","TRIPLEX"],["SCRIPT_SIMPLEX","SCRIPT_SIMPLEX"],["SCRIPT_COMPLEX","SCRIPT_COMPLEX"]]),"font"),this.appendValueInput("size").setCheck(Number).appendField(ot.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendDummyInput().appendField(") "+ot.Msg.MIXLY_CV_DRAWLINE_COLOR).appendField(new ot.FieldColour("#ff0000"),"FIELDNAME"),this.appendValueInput("thick").setCheck(Number).appendField(ot.Msg.MIXLY_CV_DRAWLINE_THICKNESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ot.Msg.MIXLY_CV_DRAWLINE_RECT_TOOLTIP)}},t_={init:function(){this.setColour(Kp),this.appendValueInput("FILE").setCheck(String).appendField(ot.Msg.MIXLY_CV_FACE_CLASSIFIER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)}},e_={init:function(){this.setColour(Kp),this.appendValueInput("FILE").appendField(ot.Msg.MIXLY_MICROBIT_IMAGE),this.appendValueInput("FACE").appendField(ot.Msg.MIXLY_CV_FACE_DETECT),this.appendValueInput("SCALE").setCheck(Number).appendField(ot.Msg.MIXLY_CV_FACE_DETECT_SCALE),this.appendValueInput("NEIGHBOR").setCheck(Number).appendField(ot.Msg.MIXLY_CV_FACE_DETECT_NEIGHBOR),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)}},n_={init:function(){this.setColour(Kp),this.appendValueInput("FILE").appendField(ot.Msg.MIXLY_MICROBIT_IMAGE),this.appendValueInput("FACE").appendField(ot.Msg.MIXLY_CV_FACE_DETECT),this.appendValueInput("SCALE").setCheck(Number).appendField(ot.Msg.MIXLY_CV_FACE_DETECT_SCALE),this.appendValueInput("NEIGHBOR").setCheck(Number).appendField(ot.Msg.MIXLY_CV_FACE_DETECT_NEIGHBOR),this.appendValueInput("x1").setCheck(Number).appendField(ot.Msg.MIXLY_CV_FACE_DETECT_RANGE).appendField(ot.Msg.blockpy_TUPLE_MIN),this.appendValueInput("y1").setCheck(Number).appendField("×"),this.appendValueInput("x2").setCheck(Number).appendField(ot.Msg.blockpy_TUPLE_MAX),this.appendValueInput("y2").setCheck(Number).appendField("×"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)}},i_=170,s_={init:function(){this.setColour(i_),this.appendDummyInput("").appendField(ot.Msg.blockpy_series_create).appendField(new ot.FieldTextInput("ser1"),"VAR"),this.appendValueInput("SER").appendField(ot.Msg.blockpy_series_via),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ot.Msg.blockpy_series_create_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},o_={init:function(){this.setColour(i_),this.appendDummyInput("").appendField(ot.Msg.blockpy_series_create).appendField(new ot.FieldTextInput("ser1"),"VAR"),this.appendValueInput("SER").appendField(ot.Msg.blockpy_series_via),this.appendValueInput("INDEX").setCheck([String,"List"]).appendField(ot.Msg.blockpy_series_set_index),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ot.Msg.blockpy_series_create_index_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},r_={init:function(){this.setColour(i_),this.appendDummyInput("").appendField(ot.Msg.blockpy_dataframe_create).appendField(new ot.FieldTextInput("df1"),"VAR"),this.appendValueInput("SER").appendField(ot.Msg.blockpy_series_via),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ot.Msg.blockpy_dataframe_create_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},a_={init:function(){this.setColour(i_);var t=[[ot.Msg.DATAFRAME_RAW,"index"],[ot.Msg.DATAFRAME_COLUMN,"columns"]];this.appendDummyInput("").appendField(ot.Msg.blockpy_dataframe_create).appendField(new ot.FieldTextInput("df1"),"VAR"),this.appendValueInput("SER").appendField(ot.Msg.blockpy_series_via),this.appendDummyInput("").appendField(new ot.FieldDropdown(t),"COLUMN_RAW"),this.appendValueInput("INDEX").setCheck([String,"List"]).appendField(ot.Msg.blockpy_series_set_index),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ot.Msg.blockpy_dataframe_create_index_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},l_={init:function(){this.setColour(i_),this.appendDummyInput("").appendField(ot.Msg.blockpy_dataframe_create).appendField(new ot.FieldTextInput("df1"),"VAR"),this.appendValueInput("SER").appendField(ot.Msg.blockpy_series_via),this.appendValueInput("INDEX_COLUMN").setCheck([String,"List"]).appendField(ot.Msg.blockpy_dataframe_set_index_column),this.appendValueInput("INDEX_RAW").setCheck([String,"List"]).appendField(ot.Msg.blockpy_dataframe_set_index_raw),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.blockpy_dataframe_create_index_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},u_={init:function(){this.setColour(i_),this.appendDummyInput("").appendField(new ot.FieldTextInput("ser1"),"VAR").appendField(" = [").appendField(new ot.FieldTextInput("1,2,3"),"TEXT").appendField("]"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.MIXLY_TOOLTIP_SERIES_CREATE_FROM_TEXT)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},p_={init:function(){this.setColour(i_);var t=[[ot.Msg.SERIES_INDEX,"index"],[ot.Msg.HTML_VALUE,"value"]];this.appendValueInput("SERIES").setCheck("Series"),this.appendDummyInput("").appendField(ot.Msg.SERIES_INDEX_VALUE).appendField(new ot.FieldDropdown(t),"INDEX_VALUE"),this.setOutput(!0,"List");var e=this;this.setTooltip((function(){var t=e.getFieldValue("INDEX_VALUE");return{index:ot.Msg.SERIES_INDEX_TOOLTIP,value:ot.Msg.HTML_VALUE_TOOLTIP}[t]}))}},__={init:function(){this.setColour(i_),this.setOutput(!0),this.appendValueInput("SER").setCheck("Series"),this.appendValueInput("AT").setCheck(Number).appendField(ot.Msg.LANG_LISTS_GET_INDEX1),this.appendDummyInput("").appendField(ot.Msg.LANG_LISTS_GET_INDEX2),this.setInputsInline(!0),this.setTooltip(ot.Msg.TUPLE_GET_INDEX_TOOLTIP)}},d_={init:function(){this.setColour(i_),this.appendValueInput("SER").setCheck("Series").appendField(ot.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendDummyInput().appendField(ot.Msg.blockpy_PYLAB_PLOT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},h_={init:function(){this.setColour(i_);var t=[[ot.Msg.blockpy_PYLAB_PLOT_LINE_SOLID,"-"],[ot.Msg.blockpy_PYLAB_PLOT_LINE_DOTTED,"--"],[ot.Msg.blockpy_PYLAB_PLOT_LINE_CHAIN,"-."],[ot.Msg.blockpy_PYLAB_PLOT_LINE_POINT_DOTTED,":"],[ot.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,""]],e=[[ot.Msg.COLOUR_RGB_BLUE,"b"],[ot.Msg.COLOUR_RGB_GREEN,"g"],[ot.Msg.COLOUR_RGB_RED,"r"],[ot.Msg.COLOUR_CYAN,"c"],[ot.Msg.COLOUR_MAGENTA,"m"],[ot.Msg.COLOUR_YELLOW,"y"],[ot.Msg.COLOUR_BLACK,"k"],[ot.Msg.COLOUR_WHITE,"w"]],n=[[ot.Msg.blockpy_PYLAB_PLOT_DOT_CIRCULAR,"."],[ot.Msg.blockpy_PYLAB_PLOT_DOT_PIXEL,","],[ot.Msg.blockpy_PYLAB_PLOT_DOT_LARGE_DOT,"o"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_DOWN,"v"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_UP,"^"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_LEFT,"<"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_RIGHT,">"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_UP,"1"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_DOWN,"2"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_LEFT,"3"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_RIGHT,"4"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_SQUARE,"s"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_PENTAGON,"p"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_STAR,"*"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_VERTICAL,"h"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_HORIZONTAL,"H"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_PLUS,"+"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_CROSS,"x"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND,"D"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND_SMALL,"d"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_VERTICAL,"|"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_HORIZONTAL,"_"]];this.appendValueInput("SER").setCheck("Series").appendField(ot.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendDummyInput().appendField(ot.Msg.blockpy_PYLAB_PLOT),this.appendDummyInput("").appendField(ot.Msg.blockpy_PYLAB_PLOT_DOT).appendField(new ot.FieldDropdown(n),"DOT"),this.appendDummyInput("").appendField(ot.Msg.blockpy_PYLAB_PLOT_LINE).appendField(new ot.FieldDropdown(t),"LINE"),this.appendDummyInput("").appendField(ot.Msg.HTML_COLOUR).appendField(new ot.FieldDropdown(e),"COLOR"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},c_={init:function(){this.setColour(i_),this.appendDummyInput().appendField(ot.Msg.blockpy_PYLAB_SHOW),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},T_={init:function(){this.setColour(i_),this.appendDummyInput().appendField(ot.Msg.mixpy_PL_AXES),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},I_={init:function(){this.setColour(i_),this.appendDummyInput().appendField(ot.Msg.blockpy_PYLAB_LEGEND),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},m_={init:function(){this.setColour(i_),this.appendDummyInput().appendField(ot.Msg.blockpy_PYLAB_TITLE),this.appendValueInput("TITLE").setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},E_={init:function(){this.setColour(i_);var t=[[ot.Msg.PYLAB_LABEL_X,"x"],[ot.Msg.PYLAB_LABEL_Y,"y"]];this.appendDummyInput().appendField(ot.Msg.blockpy_PYLAB_SET_LABEL).appendField(new ot.FieldDropdown(t),"DIR"),this.appendValueInput("LABEL").appendField(ot.Msg.blockpy_PYLAB_LABEL).setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},f_={init:function(){this.setColour(i_),this.appendValueInput("FROM").setCheck(Number).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.MIXLY_SPLITBYDOU).appendField(ot.Msg.MIXPY_DATA_ARRAY_CREATE_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.MIXPY_DATA_ARRAY_CREATE_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.MIXLY_STEP),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(ot.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},g_={init:function(){this.setColour(i_);var t=[[ot.Msg.mixpy_PYLAB_PLOT_BAR_PLOT,"plot"],[ot.Msg.mixpy_PYLAB_PLOT_BAR_BAR,"bar"]];this.appendDummyInput().appendField(ot.Msg.MIXLY_DISPLAY_DRAW).appendField(new ot.FieldDropdown(t),"DIR"),this.appendValueInput("A").appendField(ot.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(ot.Msg.mixpy_PYLAB_PLOT_Y),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("DIR");return{plot:ot.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP,bar:ot.Msg.mixpy_PYLAB_PLOT_BAR_EASY_TOOLTIP}[t]}))}},O_={init:function(){this.setColour(i_);var t=[[ot.Msg.COLOUR_RGB_BLUE,"b"],[ot.Msg.COLOUR_RGB_GREEN,"g"],[ot.Msg.COLOUR_RGB_RED,"r"],[ot.Msg.COLOUR_CYAN,"c"],[ot.Msg.COLOUR_MAGENTA,"m"],[ot.Msg.COLOUR_YELLOW,"y"],[ot.Msg.COLOUR_BLACK,"k"],[ot.Msg.COLOUR_WHITE,"w"]],e=[[ot.Msg.blockpy_PYLAB_PLOT_DOT_CIRCULAR,"."],[ot.Msg.blockpy_PYLAB_PLOT_DOT_PIXEL,","],[ot.Msg.blockpy_PYLAB_PLOT_DOT_LARGE_DOT,"o"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_DOWN,"v"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_UP,"^"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_LEFT,"<"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_RIGHT,">"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_UP,"1"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_DOWN,"2"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_LEFT,"3"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_RIGHT,"4"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_SQUARE,"s"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_PENTAGON,"p"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_STAR,"*"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_VERTICAL,"h"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_HORIZONTAL,"H"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_PLUS,"+"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_CROSS,"x"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND,"D"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND_SMALL,"d"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_VERTICAL,"|"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_HORIZONTAL,"_"]];this.appendValueInput("A").appendField(ot.Msg.mixpy_PYLAB_SCATTER).appendField(ot.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(ot.Msg.mixpy_PYLAB_PLOT_Y),this.appendValueInput("S").appendField(ot.Msg.MIXLY_MICROBIT_JS_NUMBER),this.appendDummyInput("").appendField(ot.Msg.blockpy_PYLAB_PLOT_DOT).appendField(new ot.FieldDropdown(e),"DOT"),this.appendDummyInput("").appendField(ot.Msg.HTML_COLOUR).appendField(new ot.FieldDropdown(t),"COLOR"),this.appendValueInput("TAG").setCheck(String).appendField(ot.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("")}},M_={init:function(){this.setColour(i_);var t=[[ot.Msg.blockpy_PYLAB_PLOT_LINE_SOLID,"-"],[ot.Msg.blockpy_PYLAB_PLOT_LINE_DOTTED,"--"],[ot.Msg.blockpy_PYLAB_PLOT_LINE_CHAIN,"-."],[ot.Msg.blockpy_PYLAB_PLOT_LINE_POINT_DOTTED,":"],[ot.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,""]],e=[[ot.Msg.COLOUR_RGB_BLUE,"b"],[ot.Msg.COLOUR_RGB_GREEN,"g"],[ot.Msg.COLOUR_RGB_RED,"r"],[ot.Msg.COLOUR_CYAN,"c"],[ot.Msg.COLOUR_MAGENTA,"m"],[ot.Msg.COLOUR_YELLOW,"y"],[ot.Msg.COLOUR_BLACK,"k"],[ot.Msg.COLOUR_WHITE,"w"]],n=[[ot.Msg.blockpy_PYLAB_PLOT_DOT_CIRCULAR,"."],[ot.Msg.blockpy_PYLAB_PLOT_DOT_PIXEL,","],[ot.Msg.blockpy_PYLAB_PLOT_DOT_LARGE_DOT,"o"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_DOWN,"v"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_UP,"^"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_LEFT,"<"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_RIGHT,">"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_UP,"1"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_DOWN,"2"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_LEFT,"3"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_RIGHT,"4"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_SQUARE,"s"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_PENTAGON,"p"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_STAR,"*"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_VERTICAL,"h"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_HORIZONTAL,"H"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_PLUS,"+"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_CROSS,"x"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND,"D"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND_SMALL,"d"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_VERTICAL,"|"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_HORIZONTAL,"_"]];this.appendValueInput("A").appendField(ot.Msg.mixpy_PYLAB_PLOT_XY).appendField(ot.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(ot.Msg.mixpy_PYLAB_PLOT_Y),this.appendDummyInput("").appendField(ot.Msg.blockpy_PYLAB_PLOT_DOT).appendField(new ot.FieldDropdown(n),"DOT"),this.appendDummyInput("").appendField(ot.Msg.blockpy_PYLAB_PLOT_LINE).appendField(new ot.FieldDropdown(t),"LINE"),this.appendDummyInput("").appendField(ot.Msg.HTML_COLOUR).appendField(new ot.FieldDropdown(e),"COLOR"),this.appendValueInput("TAG").setCheck(String).appendField(ot.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP)}},R_={init:function(){this.setColour(i_);var t=[[ot.Msg.MIXLY_TURTLE_WRITE_ALIGN_CENTER,"center"],[ot.Msg.AILGN_EDGE,"edge"]];this.appendValueInput("A").appendField(ot.Msg.mixpy_PYLAB_BAR).appendField(ot.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(ot.Msg.mixpy_PYLAB_PLOT_Y),this.appendValueInput("WIDTH").setCheck(Number).appendField(ot.Msg.MIXLY_WIDTH),this.appendDummyInput("").appendField(ot.Msg.mixpy_PYLAB_BAR_ALIGN).appendField(new ot.FieldDropdown(t),"ALIGN"),this.appendDummyInput().appendField(ot.Msg.HTML_COLOUR).appendField(new ot.FieldColour("#0000ff"),"COLOR"),this.appendValueInput("TAG").setCheck(String).appendField(ot.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP)}},A_={init:function(){this.setColour(i_);var t=[[ot.Msg.mixpy_PL_PIE_SHADOW_N,"False"],[ot.Msg.mixpy_PL_PIE_SHADOW_Y,"True"]],e=[[ot.Msg.mixpy_PL_PIE_SHADOW_N,"None"],[ot.Msg.mixpy_PYLAB_PIE_AUTOPCT_Z,"%.0f%%"],[ot.Msg.mixpy_PYLAB_PIE_AUTOPCT_O,"%.1f%%"],[ot.Msg.mixpy_PYLAB_PIE_AUTOPCT_T,"%.2f%%"]];this.appendValueInput("A").appendField(ot.Msg.mixpy_PYLAB_PIE).appendField(ot.Msg.COLOUR_BLEND_RATIO),this.appendValueInput("B").appendField(ot.Msg.mixpy_PYLAB_TICKS_TAG),this.appendValueInput("EXPLODE").appendField(ot.Msg.mixpy_PYLAB_PIE_EXPLODE),this.appendDummyInput("").appendField(ot.Msg.mixpy_PYLAB_PIE_AUTOPCT).appendField(new ot.FieldDropdown(e),"autopct"),this.appendDummyInput("").appendField(ot.Msg.mixpy_PYLAB_PIE_SHADOW).appendField(new ot.FieldDropdown(t),"SHADOW"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP)}},S_={init:function(){this.setColour(i_),this.appendValueInput("A").appendField(ot.Msg.mixpy_PYLAB_HIST).appendField(ot.Msg.MIXLY_SD_DATA),this.appendValueInput("B").appendField(ot.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},C_={init:function(){this.setColour(i_);var t=[[ot.Msg.PYLAB_LABEL_X,"x"],[ot.Msg.PYLAB_LABEL_Y,"y"]];this.appendDummyInput().appendField(ot.Msg.MIXLY_SETTING).appendField(new ot.FieldDropdown(t),"DIR"),this.appendValueInput("A").appendField(ot.Msg.mixpy_PYLAB_TICKS).appendField(ot.Msg.MIXLY_MICROBIT_JS_I2C_VALUE),this.appendValueInput("B").appendField(ot.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.mixpy_PYLAB_TICKS_TOOLTIP)}},L_={init:function(){var t=[["sin","sin"],["cos","cos"],["tan","tan"],["arcsin","arcsin"],["arccos","arccos"],["arctan","arctan"],[ot.Msg.LANG_MATH_TO_ROUND,"round"],[ot.Msg.LANG_MATH_TO_CEIL,"ceil"],[ot.Msg.LANG_MATH_TO_FLOOR,"floor"]];this.setColour(i_),this.setOutput(!0),this.setInputsInline(!0),this.appendDummyInput().appendField(ot.Msg.mixpy_NUMPY_TRIG),this.appendValueInput("NUM").setCheck(Number).appendField(new ot.FieldDropdown(t),"OP"),this.setTooltip(ot.Msg.mixpy_NUMPY_TRIG_TOOLTIP)}},y_={init:function(){this.setColour(i_),this.appendValueInput("VET").setCheck(Number).appendField(ot.Msg.mixpy_SUBPLOT).appendField(ot.Msg.mixpy_SUBPLOT_VERTICLE),this.appendValueInput("HOR").setCheck(Number).appendField(ot.Msg.mixpy_SUBPLOT_HORIZEN),this.appendValueInput("NUM").setCheck(Number).appendField(ot.Msg.mixpy_SUBPLOT_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},D_={init:function(){this.setColour(i_),this.appendValueInput("FILENAME").appendField(ot.Msg.MIXPY_PANDAS_READ_CSV),this.appendDummyInput().appendField(new ot.FieldDropdown([[ot.Msg.mixpy_PANDAS_READCSV_HEADER_Y,"0"],[ot.Msg.mixpy_PANDAS_READCSV_HEADER_N,"None"]]),"MODE"),this.appendDummyInput().appendField(ot.Msg.mixpy_PANDAS_READCSV_TITLE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ot.Msg.mixpy_PANDAS_READCSV_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},N_={init:function(){this.setColour(i_),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(ot.Msg.mixpy_DATAFRAME_GET),this.appendDummyInput("").appendField(ot.Msg.mixpy_DATAFRAME_GET_INDEX).appendField(new ot.FieldDropdown([[ot.Msg.DATAFRAME_COLUMN,"column"],[ot.Msg.DATAFRAME_RAW,"raw"]]),"MODE"),this.setOutput(!0),this.setTooltip(ot.Msg.mixpy_DATAFRAME_GET_TOOLTIP)}},b_={init:function(){this.setColour(i_),this.appendValueInput("FILE").setCheck(String).appendField(ot.Msg.mixpy_PL_SAVEFIG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(ot.Msg.mixpy_PL_SAVEFIG_TOOLTIP)}},v_={init:function(){this.setColour(i_);var t=[[ot.Msg.TEXT_TRIM_LEFT,"right"],[ot.Msg.mixpy_PL_TEXT_CENTER,"center"],[ot.Msg.TEXT_TRIM_RIGHT,"left"]],e=[[ot.Msg.mixpy_PL_TEXT_TOP,"bottom"],[ot.Msg.mixpy_PL_TEXT_CENTER,"center"],[ot.Msg.mixpy_PL_TEXT_BOTTOM,"top"]];this.appendValueInput("VET").setCheck(Number).appendField(ot.Msg.MIXLY_SETTING).appendField(ot.Msg.mixpy_PL_TEXT_X),this.appendValueInput("HOR").setCheck(Number).appendField(ot.Msg.mixpy_PL_TEXT_Y),this.appendValueInput("NUM").setCheck(Number).appendField(ot.Msg.mixpy_PL_TEXT_TAG),this.appendDummyInput("").appendField(ot.Msg.mixpy_PL_TEXT_HOR).appendField(new ot.FieldDropdown(t),"HALIGN"),this.appendDummyInput("").appendField(ot.Msg.mixpy_PL_TEXT_VER).appendField(new ot.FieldDropdown(e),"VALIGN"),this.appendValueInput("FONTNUM").setCheck(Number).appendField(ot.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.mixpy_PL_TEXT_TOOLTIP)}},w_={init:function(){this.setColour(i_),this.appendValueInput("VAR").appendField(ot.Msg.MIXLY_TOARRAY),this.setOutput(!0,"List"),this.setTooltip(ot.Msg.MIXLY_PYTHON_TOOLTIP_TOARRAY)}},F_={init:function(){this.setColour(i_),this.appendValueInput("SER").setCheck("Series").appendField(ot.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendDummyInput().appendField(ot.Msg.blockpy_PYLAB_PLOT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},P_={init:function(){this.setColour(i_);var t=[[ot.Msg.blockpy_PYLAB_PLOT_LINE_SOLID,"-"],[ot.Msg.blockpy_PYLAB_PLOT_LINE_DOTTED,"--"],[ot.Msg.blockpy_PYLAB_PLOT_LINE_CHAIN,"-."],[ot.Msg.blockpy_PYLAB_PLOT_LINE_POINT_DOTTED,":"],[ot.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,""]],e=[[ot.Msg.COLOUR_RGB_BLUE,"b"],[ot.Msg.COLOUR_RGB_GREEN,"g"],[ot.Msg.COLOUR_RGB_RED,"r"],[ot.Msg.COLOUR_CYAN,"c"],[ot.Msg.COLOUR_MAGENTA,"m"],[ot.Msg.COLOUR_YELLOW,"y"],[ot.Msg.COLOUR_BLACK,"k"],[ot.Msg.COLOUR_WHITE,"w"]],n=[[ot.Msg.blockpy_PYLAB_PLOT_DOT_CIRCULAR,"."],[ot.Msg.blockpy_PYLAB_PLOT_DOT_PIXEL,","],[ot.Msg.blockpy_PYLAB_PLOT_DOT_LARGE_DOT,"o"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_DOWN,"v"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_UP,"^"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_LEFT,"<"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_RIGHT,">"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_UP,"1"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_DOWN,"2"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_LEFT,"3"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_RIGHT,"4"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_SQUARE,"s"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_PENTAGON,"p"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_STAR,"*"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_VERTICAL,"h"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_HORIZONTAL,"H"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_PLUS,"+"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_CROSS,"x"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND,"D"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND_SMALL,"d"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_VERTICAL,"|"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_HORIZONTAL,"_"]];this.appendValueInput("SER").setCheck("Series").appendField(ot.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendDummyInput().appendField(ot.Msg.blockpy_PYLAB_PLOT),this.appendDummyInput("").appendField(ot.Msg.blockpy_PYLAB_PLOT_DOT).appendField(new ot.FieldDropdown(n),"DOT"),this.appendDummyInput("").appendField(ot.Msg.blockpy_PYLAB_PLOT_LINE).appendField(new ot.FieldDropdown(t),"LINE"),this.appendDummyInput("").appendField(ot.Msg.HTML_COLOUR).appendField(new ot.FieldDropdown(e),"COLOR"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},k_={init:function(){this.setColour(i_),this.appendDummyInput().appendField(ot.Msg.blockpy_PYLAB_SHOW),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},V_={init:function(){this.setColour(i_),this.appendDummyInput().appendField(ot.Msg.mixpy_PL_AXES),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Y_={init:function(){this.setColour(i_),this.appendDummyInput().appendField(ot.Msg.blockpy_PYLAB_LEGEND),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},x_={init:function(){this.setColour(i_),this.appendDummyInput().appendField(ot.Msg.blockpy_PYLAB_TITLE),this.appendValueInput("TITLE").setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},U_={init:function(){this.setColour(i_);var t=[[ot.Msg.PYLAB_LABEL_X,"x"],[ot.Msg.PYLAB_LABEL_Y,"y"]];this.appendDummyInput().appendField(ot.Msg.blockpy_PYLAB_SET_LABEL).appendField(new ot.FieldDropdown(t),"DIR"),this.appendValueInput("LABEL").appendField(ot.Msg.blockpy_PYLAB_LABEL).setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},B_={init:function(){this.setColour(i_);var t=[[ot.Msg.mixpy_PYLAB_PLOT_BAR_PLOT,"plot"],[ot.Msg.mixpy_PYLAB_PLOT_BAR_BAR,"bar"]];this.appendDummyInput().appendField(ot.Msg.MIXLY_DISPLAY_DRAW).appendField(new ot.FieldDropdown(t),"DIR"),this.appendValueInput("A").appendField(ot.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(ot.Msg.mixpy_PYLAB_PLOT_Y),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("DIR");return{plot:ot.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP,bar:ot.Msg.mixpy_PYLAB_PLOT_BAR_EASY_TOOLTIP}[t]}))}},X_={init:function(){this.setColour(i_);var t=[[ot.Msg.COLOUR_RGB_BLUE,"b"],[ot.Msg.COLOUR_RGB_GREEN,"g"],[ot.Msg.COLOUR_RGB_RED,"r"],[ot.Msg.COLOUR_CYAN,"c"],[ot.Msg.COLOUR_MAGENTA,"m"],[ot.Msg.COLOUR_YELLOW,"y"],[ot.Msg.COLOUR_BLACK,"k"],[ot.Msg.COLOUR_WHITE,"w"]],e=[[ot.Msg.blockpy_PYLAB_PLOT_DOT_CIRCULAR,"."],[ot.Msg.blockpy_PYLAB_PLOT_DOT_PIXEL,","],[ot.Msg.blockpy_PYLAB_PLOT_DOT_LARGE_DOT,"o"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_DOWN,"v"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_UP,"^"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_LEFT,"<"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_RIGHT,">"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_UP,"1"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_DOWN,"2"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_LEFT,"3"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_RIGHT,"4"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_SQUARE,"s"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_PENTAGON,"p"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_STAR,"*"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_VERTICAL,"h"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_HORIZONTAL,"H"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_PLUS,"+"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_CROSS,"x"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND,"D"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND_SMALL,"d"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_VERTICAL,"|"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_HORIZONTAL,"_"]];this.appendValueInput("A").appendField(ot.Msg.mixpy_PYLAB_SCATTER).appendField(ot.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(ot.Msg.mixpy_PYLAB_PLOT_Y),this.appendValueInput("S").appendField(ot.Msg.MIXLY_MICROBIT_JS_NUMBER),this.appendDummyInput("").appendField(ot.Msg.blockpy_PYLAB_PLOT_DOT).appendField(new ot.FieldDropdown(e),"DOT"),this.appendDummyInput("").appendField(ot.Msg.HTML_COLOUR).appendField(new ot.FieldDropdown(t),"COLOR"),this.appendValueInput("TAG").setCheck(String).appendField(ot.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("")}},G_={init:function(){this.setColour(i_);var t=[[ot.Msg.blockpy_PYLAB_PLOT_LINE_SOLID,"-"],[ot.Msg.blockpy_PYLAB_PLOT_LINE_DOTTED,"--"],[ot.Msg.blockpy_PYLAB_PLOT_LINE_CHAIN,"-."],[ot.Msg.blockpy_PYLAB_PLOT_LINE_POINT_DOTTED,":"],[ot.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,""]],e=[[ot.Msg.COLOUR_RGB_BLUE,"b"],[ot.Msg.COLOUR_RGB_GREEN,"g"],[ot.Msg.COLOUR_RGB_RED,"r"],[ot.Msg.COLOUR_CYAN,"c"],[ot.Msg.COLOUR_MAGENTA,"m"],[ot.Msg.COLOUR_YELLOW,"y"],[ot.Msg.COLOUR_BLACK,"k"],[ot.Msg.COLOUR_WHITE,"w"]],n=[[ot.Msg.blockpy_PYLAB_PLOT_DOT_CIRCULAR,"."],[ot.Msg.blockpy_PYLAB_PLOT_DOT_PIXEL,","],[ot.Msg.blockpy_PYLAB_PLOT_DOT_LARGE_DOT,"o"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_DOWN,"v"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_UP,"^"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_LEFT,"<"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_RIGHT,">"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_UP,"1"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_DOWN,"2"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_LEFT,"3"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_RIGHT,"4"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_SQUARE,"s"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_PENTAGON,"p"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_STAR,"*"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_VERTICAL,"h"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_HORIZONTAL,"H"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_PLUS,"+"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_CROSS,"x"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND,"D"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND_SMALL,"d"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_VERTICAL,"|"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_HORIZONTAL,"_"]];this.appendValueInput("A").appendField(ot.Msg.mixpy_PYLAB_PLOT_XY).appendField(ot.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(ot.Msg.mixpy_PYLAB_PLOT_Y),this.appendDummyInput("").appendField(ot.Msg.blockpy_PYLAB_PLOT_DOT).appendField(new ot.FieldDropdown(n),"DOT"),this.appendDummyInput("").appendField(ot.Msg.blockpy_PYLAB_PLOT_LINE).appendField(new ot.FieldDropdown(t),"LINE"),this.appendDummyInput("").appendField(ot.Msg.HTML_COLOUR).appendField(new ot.FieldDropdown(e),"COLOR"),this.appendValueInput("TAG").setCheck(String).appendField(ot.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP)}},H_={init:function(){this.setColour(i_);var t=[[ot.Msg.MIXLY_TURTLE_WRITE_ALIGN_CENTER,"center"],[ot.Msg.AILGN_EDGE,"edge"]];this.appendValueInput("A").appendField(ot.Msg.mixpy_PYLAB_BAR).appendField(ot.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(ot.Msg.mixpy_PYLAB_PLOT_Y),this.appendValueInput("WIDTH").setCheck(Number).appendField(ot.Msg.MIXLY_WIDTH),this.appendDummyInput("").appendField(ot.Msg.mixpy_PYLAB_BAR_ALIGN).appendField(new ot.FieldDropdown(t),"ALIGN"),this.appendDummyInput().appendField(ot.Msg.HTML_COLOUR).appendField(new ot.FieldColour("#0000ff"),"COLOR"),this.appendValueInput("TAG").setCheck(String).appendField(ot.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP)}},W_={init:function(){this.setColour(i_);var t=[[ot.Msg.mixpy_PL_PIE_SHADOW_N,"False"],[ot.Msg.mixpy_PL_PIE_SHADOW_Y,"True"]],e=[[ot.Msg.mixpy_PL_PIE_SHADOW_N,"None"],[ot.Msg.mixpy_PYLAB_PIE_AUTOPCT_Z,"%.0f%%"],[ot.Msg.mixpy_PYLAB_PIE_AUTOPCT_O,"%.1f%%"],[ot.Msg.mixpy_PYLAB_PIE_AUTOPCT_T,"%.2f%%"]];this.appendValueInput("A").appendField(ot.Msg.mixpy_PYLAB_PIE).appendField(ot.Msg.COLOUR_BLEND_RATIO),this.appendValueInput("B").appendField(ot.Msg.mixpy_PYLAB_TICKS_TAG),this.appendValueInput("EXPLODE").appendField(ot.Msg.mixpy_PYLAB_PIE_EXPLODE),this.appendDummyInput("").appendField(ot.Msg.mixpy_PYLAB_PIE_AUTOPCT).appendField(new ot.FieldDropdown(e),"autopct"),this.appendDummyInput("").appendField(ot.Msg.mixpy_PYLAB_PIE_SHADOW).appendField(new ot.FieldDropdown(t),"SHADOW"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP)}},K_={init:function(){this.setColour(i_),this.appendValueInput("A").appendField(ot.Msg.mixpy_PYLAB_HIST).appendField(ot.Msg.MIXLY_SD_DATA),this.appendValueInput("B").appendField(ot.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},j_={init:function(){this.setColour(i_);var t=[[ot.Msg.PYLAB_LABEL_X,"x"],[ot.Msg.PYLAB_LABEL_Y,"y"]];this.appendDummyInput().appendField(ot.Msg.MIXLY_SETTING).appendField(new ot.FieldDropdown(t),"DIR"),this.appendValueInput("A").appendField(ot.Msg.mixpy_PYLAB_TICKS).appendField(ot.Msg.MIXLY_MICROBIT_JS_I2C_VALUE),this.appendValueInput("B").appendField(ot.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.mixpy_PYLAB_TICKS_TOOLTIP)}},q_={init:function(){this.setColour(i_),this.appendValueInput("VET").setCheck(Number).appendField(ot.Msg.mixpy_SUBPLOT).appendField(ot.Msg.mixpy_SUBPLOT_VERTICLE),this.appendValueInput("HOR").setCheck(Number).appendField(ot.Msg.mixpy_SUBPLOT_HORIZEN),this.appendValueInput("NUM").setCheck(Number).appendField(ot.Msg.mixpy_SUBPLOT_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},$_={init:function(){this.setColour(i_),this.appendDummyInput("").appendField(ot.Msg.mixpy_PL_SAVEFIG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(ot.Msg.mixpy_PL_SAVEFIG_TOOLTIP)}},z_={init:function(){this.setColour(i_);var t=[[ot.Msg.TEXT_TRIM_LEFT,"right"],[ot.Msg.mixpy_PL_TEXT_CENTER,"center"],[ot.Msg.TEXT_TRIM_RIGHT,"left"]],e=[[ot.Msg.mixpy_PL_TEXT_TOP,"bottom"],[ot.Msg.mixpy_PL_TEXT_CENTER,"center"],[ot.Msg.mixpy_PL_TEXT_BOTTOM,"top"]];this.appendValueInput("VET").setCheck(Number).appendField(ot.Msg.MIXLY_SETTING).appendField(ot.Msg.mixpy_PL_TEXT_X),this.appendValueInput("HOR").setCheck(Number).appendField(ot.Msg.mixpy_PL_TEXT_Y),this.appendValueInput("NUM").setCheck(Number).appendField(ot.Msg.mixpy_PL_TEXT_TAG),this.appendDummyInput("").appendField(ot.Msg.mixpy_PL_TEXT_HOR).appendField(new ot.FieldDropdown(t),"HALIGN"),this.appendDummyInput("").appendField(ot.Msg.mixpy_PL_TEXT_VER).appendField(new ot.FieldDropdown(e),"VALIGN"),this.appendValueInput("FONTNUM").setCheck(Number).appendField(ot.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.mixpy_PL_TEXT_TOOLTIP)}},Q_={init:function(){this.setColour(i_),this.appendValueInput("ARRAY").appendField("获取维度"),this.setOutput(!0),this.setTooltip("Returns the shape of the array.")}},J_={init:function(){this.setColour(i_),this.appendValueInput("ARRAY").appendField("变形"),this.appendValueInput("DIMENSIONS").appendField("后维度为"),this.setOutput(!0),this.setTooltip("Reshapes the array to the specified dimensions.")}},Z_={init:function(){this.setColour(i_),this.appendValueInput("ARRAY").appendField("把"),this.appendDummyInput().appendField("转换为").appendField(new ot.FieldDropdown([["uint8","numpy.uint8"],["int32","numpy.int32"],["float32","numpy.float32"],["float64","numpy.float64"]]),"TYPE"),this.setOutput(!0),this.setTooltip("Converts array to specified type.")}},td={init:function(){this.setColour(i_),this.appendValueInput("ARRAY").appendField("创建二维图"),this.appendDummyInput().appendField("颜色").appendField(new ot.FieldDropdown([["gray","gray"],["viridis","viridis"],["plasma","plasma"],["inferno","inferno"],["magma","magma"],["cividis","cividis"],["hot","hot"],["cool","cool"],["spring","spring"],["summer","summer"],["autumn","autumn"],["winter","winter"],["jet","jet"]]),"COLORMAP"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("Displays an image with the specified colormap.")}},ed={init:function(){this.setColour(i_),this.appendValueInput("X").appendField("从数据集"),this.appendValueInput("Y").appendField("获取平均图像,标签"),this.appendValueInput("DIGIT").appendField("为"),this.setOutput(!0),this.setTooltip("Computes the mean of X where y equals the specified digit.")}},nd={init:function(){this.setColour(i_),this.appendValueInput("IMAGE").appendField("获取模板匹配结果,图片:"),this.appendValueInput("TEMPLATES").appendField("模板:"),this.setOutput(!0),this.setTooltip("Finds the index of the template that minimizes the sum of absolute differences with the image.")}},id={init:function(){this.setColour(i_),this.appendValueInput("ARRAY").appendField("获取平均值"),this.appendDummyInput().appendField("沿着axis").appendField(new ot.FieldDropdown([["None","NONE"],["0","0"],["1","1"]]),"AXIS"),this.setOutput(!0),this.setTooltip("Computes the mean of the array along the specified axis.")}},sd={init:function(){this.setColour(i_),this.appendValueInput("ARRAY").appendField("获取标准差"),this.appendDummyInput().appendField("沿着axis").appendField(new ot.FieldDropdown([["None","NONE"],["0","0"],["1","1"]]),"AXIS"),this.setOutput(!0),this.setTooltip("Computes the standard deviation of the array along the specified axis.")}},od={init:function(){this.setColour(i_),this.appendValueInput("DF").appendField("丢弃缺省值"),this.setOutput(!0),this.setTooltip("Drops rows with NaN values from the dataframe.")}},rd={init:function(){this.setColour(i_),this.appendValueInput("DATAFRAME").appendField("从数据集"),this.appendValueInput("COLUMNS").appendField("中删除列").setCheck(String),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip("从数据框中删除指定的列。用逗号分隔多个列名。")}},ad={init:function(){this.setColour(i_),this.appendValueInput("NUM").appendField("生成单位行向量"),this.setOutput(!0),this.setTooltip("Creates an array of ones with the specified length.")}},ld={init:function(){this.setColour(i_),this.appendValueInput("ARRAY1").appendField("列拼接:数组1"),this.appendValueInput("ARRAY2").appendField("数组2"),this.setOutput(!0),this.setTooltip("Concatenates two arrays along the second axis using numpy.c_.")}},ud={init:function(){this.setColour(i_),this.appendValueInput("ARRAY").appendField("获取行列式"),this.setOutput(!0),this.setTooltip("Computes the determinant of an array using numpy.linalg.det.")}},pd={init:function(){this.setColour(i_),this.appendValueInput("MATRIX").appendField("获取转置"),this.setOutput(!0),this.setTooltip("Computes the transpose of the given matrix.")}},_d={init:function(){this.setColour(i_),this.appendValueInput("MATRIX1"),this.appendValueInput("MATRIX2").appendField("@"),this.setOutput(!0),this.setTooltip("Multiplies two matrices.")}},dd={init:function(){this.setColour(i_),this.appendValueInput("ARRAY").appendField("获取逆矩阵"),this.setOutput(!0),this.setTooltip("Computes the inverse of the given matrix using numpy.linalg.inv.")}},hd={init:function(){this.setColour(i_),this.appendValueInput("DATAFRAME").appendField("获取中位数"),this.setOutput(!0),this.setTooltip("Computes the median of the given dataframe.")}},cd={init:function(){this.setColour(i_),this.appendValueInput("DATAFRAME").appendField("填充缺失值"),this.appendValueInput("VALUE").appendField("填充值"),this.appendDummyInput().appendField("是否修改原数据").appendField(new ot.FieldDropdown([["True","True"],["False","False"]]),"INPLACE"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("Fills NaN values in the dataframe with the specified value.")}},Td={init:function(){this.setColour(i_),this.appendValueInput("DATAFRAME").appendField("获取DataFrame信息"),this.setOutput(!0),this.setTooltip("Displays information about the DataFrame.")}},Id={init:function(){this.setColour(i_),this.appendValueInput("ARRAY").appendField("获取最小值"),this.appendDummyInput().appendField("沿着axis").appendField(new ot.FieldDropdown([["None","None"],["行","0"],["列","1"]]),"AXIS"),this.setOutput(!0),this.setTooltip("Returns the minimum value along the specified axis.")}},md={init:function(){this.setColour(i_),this.appendValueInput("ARRAY").appendField("获取最大值"),this.appendDummyInput().appendField("沿着axis").appendField(new ot.FieldDropdown([["None","None"],["行","0"],["列","1"]]),"AXIS"),this.setOutput(!0),this.setTooltip("Returns the maximum value along the specified axis.")}},Ed={init:function(){this.setColour(i_),this.appendValueInput("ARRAY").appendField("获取数组大小"),this.setOutput(!0),this.setTooltip("Returns the size of the array.")}},fd={init:function(){this.setColour(i_),this.appendValueInput("ARRAY1").appendField("点乘数组1"),this.appendValueInput("ARRAY2").appendField("点乘数组2"),this.setOutput(!0),this.setTooltip("Returns the dot product of two arrays.")}},gd={init:function(){this.setColour(i_),this.appendValueInput("ARRAY").appendField("获取平方数组"),this.setOutput(!0),this.setTooltip("Returns the element-wise square of the array.")}},Od={init:function(){this.setColour(i_),this.appendValueInput("ARRAY").appendField("获取数组元素和"),this.setOutput(!0),this.setTooltip("Returns the sum of the array.")}},Md={init:function(){this.setColour(i_),this.appendValueInput("SIZE").appendField("生成随机数组"),this.setOutput(!0),this.setTooltip("Returns a random array of the specified size.")}},Rd={init:function(){this.setColour(i_),this.appendValueInput("ARRAY").appendField("Python求和"),this.setOutput(!0),this.setTooltip("Returns the sum of the iterable.")}},Ad={init:function(){this.setColour(i_),this.appendValueInput("DICT").setAlign(ot.inputs.Align.RIGHT).setCheck("Dict"),this.appendDummyInput().setAlign(ot.inputs.Align.RIGHT).appendField("值排序"),this.appendValueInput("KEY").setAlign(ot.inputs.Align.RIGHT).appendField("标签"),this.appendDummyInput().setAlign(ot.inputs.Align.RIGHT).appendField("排序方式").appendField(new ot.FieldDropdown([["升序","True"],["降序","False"]]),"AS_CENDING"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip("")}},Sd={init:function(){this.setColour(i_),this.appendValueInput("DICT").setAlign(ot.inputs.Align.RIGHT).setCheck("Dict"),this.appendDummyInput().setAlign(ot.inputs.Align.RIGHT).appendField("获取").appendField(new ot.FieldDropdown([["前几行","head"],["最后几行","tail"]]),"TYPE"),this.appendValueInput("LINES").setAlign(ot.inputs.Align.RIGHT).appendField("行数"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip("")}},Cd={init:function(){this.setColour(i_),this.appendValueInput("DICT").setAlign(ot.inputs.Align.RIGHT).setCheck("Dict"),this.appendDummyInput().setAlign(ot.inputs.Align.RIGHT).appendField("筛选数据"),this.appendValueInput("KEY").setAlign(ot.inputs.Align.RIGHT).appendField("满足条件"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip("")}},Ld={init:function(){this.setColour(i_),this.appendValueInput("DICT").setAlign(ot.inputs.Align.RIGHT).setCheck("Dict"),this.appendValueInput("KEY").setAlign(ot.inputs.Align.RIGHT).appendField("通过标签"),this.appendDummyInput().setAlign(ot.inputs.Align.RIGHT).appendField("分组"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip("")}},yd={init:function(){this.setColour(i_),this.appendDummyInput().setAlign(ot.inputs.Align.RIGHT).appendField(new ot.FieldDropdown([["求最小值","min"],["求最大值","max"],["求和","sum"],["求平均值","mean"],["求中位数","median"],["求标准差","std"]]),"TYPE"),this.appendValueInput("DICT").setAlign(ot.inputs.Align.RIGHT).setCheck("Dict"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip("")}},Dd={init:function(){this.setColour(i_),this.appendDummyInput().appendField("清除已有图像"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Nd=80,bd={init:function(){this.setColour(Nd),this.appendDummyInput("").appendField(new ot.FieldLabel(ot.Msg.DS_CREATE_LINKEDLIST_NEW)),this.appendDummyInput("").appendField(new ot.FieldLabel(ot.Msg.DS_CREATE_LINKEDLIST_HEAD)).appendField(new ot.FieldTextInput("head"),"VAR"),this.appendDummyInput("").appendField(new ot.FieldLabel(ot.Msg.DS_CREATE_LINKEDLIST_TYPE)).appendField(new ot.FieldTextInput("tag"),"TYPE"),this.appendDummyInput().appendField(ot.Msg.DS_CREATE_LINKEDLIST_ATTRIBUTE),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new ot.icons.MutatorIcon(["ds_create_linkedlist_item"],this)),this.setTooltip(ot.Msg.DS_CREATE_LINKEDLIST_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("ds_create_linkedlist_container");e.initSvg();for(var n=e.getInput("STACK").connection,i=0;ie?t[e]:"name"),"KEY"+e).appendField("=")},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},vd={init:function(){this.setColour(Nd),this.appendDummyInput().appendField(ot.Msg.DS_CREATE_LINKEDLIST_CONTAINER_TITLE),this.appendStatementInput("STACK"),this.setTooltip(ot.Msg.DS_CREATE_LINKEDLIST_CONTAINER_TOOLTIP),this.contextMenu=!1}},wd={init:function(){this.setColour(Nd),this.appendDummyInput().appendField(ot.Msg.DS_CREATE_LINKEDLIST_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.DS_CREATE_LINKEDLIST_ITEM_TOOLTIP),this.contextMenu=!1}},Fd={init:function(){this.setColour(Nd),this.appendDummyInput("").appendField(ot.Msg.DS_CREATE_NODE_USE).appendField(new ot.FieldTextInput("tag"),"TYPE"),this.appendDummyInput("").appendField(ot.Msg.DS_CREATE_NODE_NEW),this.appendValueInput("NODE"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ot.Msg.DS_CREATE_NODE_TOOLTIP)}},Pd={init:function(){this.setColour(Nd),this.appendDummyInput("").appendField(ot.Msg.DS_GET_NODE_ATTR_NODE),this.appendValueInput("NODE"),this.appendDummyInput("").appendField(ot.Msg.MIXLY_AIP_ATTR).appendField(new ot.FieldTextInput("name"),"TYPE"),this.appendDummyInput("").appendField(ot.Msg.DICTS_ADD_VALUE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ot.Msg.DS_GET_NODE_ATTR_TOOLTIP)}},kd={init:function(){this.setColour(Nd),this.appendDummyInput("").appendField(ot.Msg.DS_SET_NODE_ATTR_NODE),this.appendValueInput("NODE"),this.appendDummyInput("").appendField(ot.Msg.MIXLY_AIP_ATTR).appendField(new ot.FieldTextInput("name"),"TYPE"),this.appendValueInput("VAR").appendField(ot.Msg.DS_SET_NODE_ATTR_SET),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ot.Msg.DS_SET_NODE_ATTR_TOOLTIP)}},Vd={init:function(){this.setColour(Nd),this.appendValueInput("NODE").appendField(ot.Msg.DS_ADD_NODE_HEAD_NODE);var t=[[ot.Msg.DS_ADD_NODE_BEFORE,"before"],[ot.Msg.DS_ADD_NODE_AFTER,"after"]];this.appendDummyInput("").appendField(ot.Msg.DS_ADD_NODE_LINKEDLIST),this.appendValueInput("NODE2").appendField(ot.Msg.DS_SET_NODE_ATTR_NODE),this.appendValueInput("NODE3").appendField(new ot.FieldDropdown(t),"DIR").appendField(ot.Msg.DS_ADD_NODE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ot.Msg.DS_ADD_NODE_TOOLTIP)}},Yd={init:function(){this.setColour(Nd),this.appendValueInput("NODE").appendField(ot.Msg.DS_ADD_NODE_HEAD_NODE);var t=[[ot.Msg.DS_ADD_NODE_BEFORE,"before"],[ot.Msg.DS_ADD_NODE_AFTER,"after"]];this.appendDummyInput("").appendField(ot.Msg.DS_ADD_NODE_LINKEDLIST),this.appendDummyInput("").appendField(ot.Msg.DS_CREATE_LINKEDLIST_ITEM_TITLE).appendField(new ot.FieldTextInput("name"),"TYPE"),this.appendValueInput("VAR").appendField(ot.Msg.MIXLY_AS),this.appendDummyInput("").appendField(ot.Msg.DS_ADD_NODE_ATTR),this.appendValueInput("NODE3").appendField(new ot.FieldDropdown(t),"DIR").appendField(ot.Msg.DS_ADD_NODE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ot.Msg.DS_ADD_NODE_TOOLTIP)}},xd={init:function(){this.setColour(Nd),this.appendValueInput("NODE").appendField(ot.Msg.DS_ADD_NODE_HEAD_NODE),this.appendDummyInput("").appendField(ot.Msg.DS_ADD_NODE_LINKEDLIST),this.appendValueInput("NODE2").appendField(ot.Msg.DS_DEL_NODE_NAME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ot.Msg.DS_DEL_NODE_TOOLTIP)}},Ud={init:function(){this.setColour(Nd),this.appendValueInput("NODE").appendField(ot.Msg.DS_ADD_NODE_HEAD_NODE),this.appendDummyInput("").appendField(ot.Msg.DS_ADD_NODE_LINKEDLIST),this.appendDummyInput("").appendField(ot.Msg.DS_DEL_NODE_ATTR).appendField(new ot.FieldTextInput("name"),"TYPE"),this.appendValueInput("VAR").appendField(ot.Msg.MIXLY_AS),this.appendDummyInput("").appendField(ot.Msg.DS_ADD_NODE_ATTR),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ot.Msg.DS_DEL_NODE_TOOLTIP)}},Bd={init:function(){this.setColour(Nd),this.appendValueInput("NODE").appendField(ot.Msg.DS_ADD_NODE_HEAD_NODE),this.appendDummyInput("").appendField(ot.Msg.DS_REVERSE_LINKEDLIST),this.appendValueInput("NODE2").appendField(ot.Msg.DS_REVERSE_LINKEDLIST_NEW_HEAD),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ot.Msg.DS_DEL_NODE_TOOLTIP)}},Xd="#777777",Gd={init:function(){this.setColour(Xd),this.appendDummyInput("").appendField("from ").appendField(new ot.FieldTextInput("ESP32"),"path").appendField(" import ").appendField(new ot.FieldTextInput("*"),"module"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Hd={init:function(){this.setColour(Xd),this.appendDummyInput("").appendField("import ").appendField(new ot.FieldTextInput("module"),"module"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Wd={init:function(){this.setColour(Xd),this.appendDummyInput("").appendField(new ot.FieldTextInput("my_function"),"NAME"),this.itemCount_=1,this.arguments_=["x"],this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new ot.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){ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Ah={init:function(){this.setColour(Eh),this.appendDummyInput().appendField(ot.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(ot.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},Sh={init:function(){this.setColour(Eh),this.appendDummyInput().appendField(ot.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},Ch={init:function(){this.setColour(Eh),this.appendDummyInput().appendField(ot.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},Lh={init:function(){this.setColour(Eh),this.appendDummyInput().appendField(ot.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").setCheck(String).appendField(ot.Msg.MIXLY_EMQX_SERVER).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("USERNAME").setCheck(String).appendField(ot.Msg.MIXLY_WIFI_USERNAME).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("PASSWORD").setCheck(String).appendField(ot.Msg.MIXLY_IOT_PASSWORD).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("PROJECT").setCheck(String).appendField(ot.Msg.MIXLY_EMQX_PROJECT).setAlign(ot.inputs.Align.RIGHT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},yh={init:function(){this.setColour(Eh),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(ot.Msg.MIXLY_EMQX_PUBLISH_NEW).appendField(ot.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MSG").appendField(ot.Msg.HTML_BODY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.MIXLY_ESP32_IOT_EMQX_PUBLISH_TOOLTIP)}},Dh={init:function(){this.setColour(Eh),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(ot.Msg.MIXLY_EMQX_SUBSCRIBE+ot.Msg.MIXLY_MICROBIT_MSG).appendField(ot.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("METHOD").appendField(ot.Msg.MIXLY_EMQX_SET_METHOD),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.MIXLY_ESP32_IOT_EMQX_SUBSCRIBE_TOOLTIP)}},Nh={init:function(){this.setColour(Eh),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(ot.Msg.MSG.stop+ot.Msg.MIXLY_EMQX_SUBSCRIBE).appendField(ot.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.MIXLY_ESP32_IOT_EMQX_SUBSCRIBE_TOOLTIP)}},bh={init:function(){this.setColour(Eh),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(ot.Msg.MIXLY_ESP32_DISCONNECT_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},vh={init:function(){this.setColour(Eh),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(ot.Msg.MIXLY_EMQX_CONNECT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},wh={init:function(){this.setColour(Eh),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(ot.Msg.MIXLY_ESP32_CHECK_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Fh={init:function(){this.setColour(Eh),this.appendDummyInput().appendField(ot.Msg.MIXLY_MICROPYTHON_FORMAT).appendField(ot.MQTT_Topic),this.setInputsInline(!0),this.setOutput(!0)}},Ph={init:function(){this.setColour(Eh),this.appendDummyInput().appendField(ot.Msg.MIXLY_MICROPYTHON_FORMAT).appendField(ot.Msg.MIXLY_EMQX_PUBLISH_MSG),this.setInputsInline(!0),this.setOutput(!0)}},kh={init:function(){this.setColour(Eh),this.appendValueInput("VAR").appendField(ot.Msg.MIXLY_ESP32_IOT_MAP_FORMATING),this.setOutput(!0)}},Vh={init:function(){this.setColour(Eh),this.appendValueInput("VAR").appendField(ot.Msg.MIXLY_MICROPYTHON_FORMAT+"(Json)"),this.setOutput(!0)}},Yh={init:function(){this.setColour(Eh),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(ot.Msg.MIXLY_EMQX_PING),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(ot.Msg.MIXLY_ESP32_IOT_EMQX_PING_TOOLTIP)}},xh={init:function(){this.setColour(Eh),this.appendDummyInput().appendField("MixIO").appendField(ot.Msg.MIXLY_GET_NTP),this.appendValueInput("addr").appendField(ot.blynk_SERVER_ADD),this.setInputsInline(!0),this.setOutput(!0)}},Uh={init:function(){this.setColour(Eh),this.appendDummyInput().appendField(ot.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").appendField(ot.Msg.MIXLY_EMQX_SERVER).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("KEY").appendField(ot.Msg.CONTROLS_FOR_INPUT_WITH+ot.Msg.MIXLY_MIXIO_SHARE_KEY).setAlign(ot.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Bh={init:function(){this.setColour(Eh),this.appendDummyInput().appendField(ot.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").appendField(ot.Msg.MIXLY_EMQX_SERVER).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("KEY").appendField(ot.Msg.CONTROLS_FOR_INPUT_WITH+"Mixly Key").setAlign(ot.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Xh={init:function(){this.VISITOR_ID=rt.Config.BOARD.visitorId.str32.substring(0,8).toUpperCase(),this.setColour(Eh),this.appendDummyInput("").appendField(this.newQuote_(!0)).appendField(new ot.FieldTextInput(this.visitorId),"VISITOR_ID").appendField(this.newQuote_(!1)),this.setOutput(!0,null)},onchange:function(){const t=this.getFieldValue("VISITOR_ID");this.VISITOR_ID!==t&&this.setFieldValue(this.VISITOR_ID,"VISITOR_ID")},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 ot.FieldImage(e,12,12,'"')}},Gh={init:function(){this.VISITOR_ID=rt.Config.BOARD.visitorId.str32.substring(0,8).toUpperCase(),this.setColour(Eh),this.appendDummyInput("").appendField(new ot.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")}},Hh={init:function(){this.setColour(Eh),this.appendDummyInput().appendField("MixIO").appendField(ot.Msg.MSG.catEthernet_clinet),this.setOutput(!0),this.setInputsInline(!0)}},Wh={init:function(){this.setColour(Eh),this.appendDummyInput().appendField("HTTP"+ot.Msg.MIXLY_Client),this.appendValueInput("addr").appendField(ot.Msg.DISPLAY_IMAGE_LET2),this.appendDummyInput().appendField(ot.Msg.MIXLY_REQUESTS_GET).appendField(ot.Msg.MIXLY_GET_CURRENT_TIME).appendField(ot.Msg.MIXLY_OPEN_DEBUG).appendField(new ot.FieldDropdown([[ot.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[ot.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Kh={init:function(){this.setColour(Eh),this.appendDummyInput().appendField("HTTP"+ot.Msg.MIXLY_Client).appendField(ot.Msg.MIXLY_GET).appendField(new ot.FieldDropdown([[ot.Msg.MIXLY_REQUESTS_LEN,"client_len"],[ot.Msg.MIXLY_REQUESTS_GET_LEN,"server_len"],[ot.Msg.MIXLY_REQUESTS_MESSAGE,"text"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},jh={init:function(){this.setColour(Eh),this.appendDummyInput().appendField("MQTT"+ot.Msg.MIXLY_Client),this.appendValueInput("addr").appendField(ot.Msg.MIXLY_CONNECTTO),this.appendDummyInput().appendField(ot.Msg.MIXLY_INIT_SUBSCRIBE).appendField(ot.MQTT_Topic).appendField(new ot.FieldDropdown([[ot.Msg.MIXLY_GET_CURRENT_TIME,""]]),"key").appendField(ot.Msg.MIXLY_OPEN_DEBUG).appendField(new ot.FieldDropdown([[ot.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[ot.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"key2"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},qh={init:function(){this.setColour(Eh),this.appendDummyInput().appendField("MQTT"+ot.Msg.MIXLY_Client).appendField(ot.Msg.MIXLY_GET).appendField(new ot.FieldDropdown([[ot.Msg.MIXLY_REQUESTS_LEN,"client_len"],[ot.Msg.MIXLY_REQUESTS_GET_LEN,"server_len"],[ot.Msg.MIXLY_REQUESTS_MESSAGE,"time_msg()"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},$h=fh,zh=gh,Qh=Oh,Jh=Rh,Zh=230,tc={init:function(){this.setColour(Zh),this.appendDummyInput("").appendField(new ot.FieldDropdown(rt.Profile.default.digital_write),"PIN"),this.setOutput(!0)}},ec={init:function(){this.setColour(Zh),this.appendDummyInput("").appendField(new ot.FieldDropdown(rt.Profile.default.digital_read),"PIN"),this.setOutput(!0)}},nc={init:function(){this.setColour(Zh),this.appendDummyInput("").appendField(new ot.FieldDropdown(rt.Profile.default.analog_write),"PIN"),this.setOutput(!0)}},ic={init:function(){this.setColour(Zh),this.appendDummyInput("").appendField(new ot.FieldDropdown(rt.Profile.default.analog_read),"PIN"),this.setOutput(!0)}},sc={init:function(){this.setColour(40),this.appendDummyInput("").appendField(new ot.FieldLabel(ot.Msg.MIXPY_SERIAL_OPEN)).appendField(new ot.FieldTextInput("ser"),"SER"),this.appendDummyInput().appendField(ot.Msg.MIXLY_SERIAL_BEGIN).appendField(new ot.FieldDropdown([["115200","115200"],["256000","256000"],["128000","128000"],["57600","57600"],["56000","56000"],["43000","43000"],["38400","38400"],["28800","28800"],["19200","19200"],["9600","9600"],["4800","4800"],["2400","2400"],["1200","1200"],["600","600"],["300","300"],["110","110"]]),"BPS"),this.appendValueInput("VAR").appendField(ot.Msg.MIXPY_SERIAL_OPEN_TIMEOUT),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(ot.Msg.MIXPY_SERIAL_OPEN_TOOLTIP)}},oc={init:function(){this.setColour(40),this.appendValueInput("SER"),this.appendValueInput("VAR").appendField(ot.Msg.MIXPY_SERIAL_WRITE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(ot.Msg.MIXPY_SERIAL_WRITE_TOOLTIP)}},rc={init:function(){this.setColour(40),this.appendValueInput("SER"),this.appendValueInput("VAR").setCheck(Number).appendField(ot.Msg.MIXPY_SERIAL_READ),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(ot.Msg.MIXPY_SERIAL_READ_TOOLTIP)}},ac={init:function(){this.setColour(40),this.appendValueInput("SER"),this.appendDummyInput().appendField(ot.Msg.MIXPY_SERIAL_CLOSE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(ot.Msg.MIXPY_SERIAL_CLOSE_TOOLTIP)}},lc=80,uc={init:function(){this.appendDummyInput().appendField(ot.Msg.SKLEARN_CLASSIFICATION_GENERATION),this.appendValueInput("n_samples").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.NUMBER_OF_SAMPLES),this.appendValueInput("n_features").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.NUMBER_OF_FEATURES),this.appendValueInput("n_informative").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.NUMBER_OF_EFFECTIVE_FEATURES),this.appendValueInput("n_redundant").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.NUMBER_OF_REDUNDANT_FEATURES),this.appendValueInput("n_repeated").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.NUMBER_OF_REPEATED_FEATURES),this.appendValueInput("n_classes").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.NUMBER_OF_CLASSES),this.appendValueInput("n_clusters_per_class").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.NUMBER_OF_CLUSTERS_PER_CLASSES),this.appendValueInput("random_state").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.RANDOM_SEED),this.setInputsInline(!1),this.setOutput(!0,null),this.setColour(lc),this.setTooltip(""),this.setHelpUrl("")}},pc={init:function(){this.appendDummyInput().appendField(ot.Msg.SKLEARN_REGRESSION_GENERATION),this.appendValueInput("n_samples").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.NUMBER_OF_SAMPLES),this.appendValueInput("n_features").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.NUMBER_OF_FEATURES),this.appendValueInput("n_informative").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.NUMBER_OF_EFFECTIVE_FEATURES),this.appendValueInput("n_targets").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.NUMBER_OF_LABELS),this.appendValueInput("bias").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.DEVIATION),this.appendValueInput("noise").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.NOISE),this.appendValueInput("random_state").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.RANDOM_SEED),this.setInputsInline(!1),this.setOutput(!0,null),this.setColour(lc),this.setTooltip(""),this.setHelpUrl("")}},_c={init:function(){this.appendDummyInput().appendField(ot.Msg.SKLEARN_CLUSTERING_GENERATION),this.appendValueInput("n_samples").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.NUMBER_OF_SAMPLES),this.appendValueInput("n_features").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.NUMBER_OF_FEATURES),this.appendValueInput("centers").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.NUMBER_OF_CLUSTERS),this.appendValueInput("cluster_std").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.STANDARD_DEVIATION_OF_CLUSTER),this.appendValueInput("center_box").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.CLUSTER_BOUNDING_BOX),this.appendValueInput("shuffle").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.SHUFFLE_SAMPLES),this.appendValueInput("random_state").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.RANDOM_SEED),this.setInputsInline(!1),this.setOutput(!0,null),this.setColour(lc),this.setTooltip(""),this.setHelpUrl("")}},dc={init:function(){var t=[[ot.Msg.SKLEARN_LOAD_IRIS,"load_iris"],[ot.Msg.SKLEARN_LOAD_BOSTON,"load_boston"],[ot.Msg.SKLEARN_LOAD_DIABETES,"load_diabetes"],[ot.Msg.SKLEARN_LOAD_BREAST_CANCER,"load_breast_cancer"],[ot.Msg.SKLEARN_LOAD_LINNERUD,"load_linnerud"],[ot.Msg.SKLEARN_LOAD_DIGITS,"load_digits"]];this.appendDummyInput().appendField("sklearn "+ot.Msg.LOAD).appendField(new ot.FieldDropdown(t),"type").appendField(new ot.FieldTextInput("iris"),"name"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(lc),this.setTooltip(""),this.setHelpUrl("")},getVars:function(){return[this.getFieldValue("name")]},renameVar:function(t,e){ot.Names.equals(t,this.getFieldValue("name"))&&this.setTitleValue(e,"name")}},hc={init:function(){this.appendValueInput("name").setCheck(null).appendField("sklearn "+ot.Msg.DATA_SET),this.appendDummyInput().setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.MIXLY_GET).appendField(new ot.FieldDropdown([[ot.Msg.EIGENVALUES,"data"],[ot.Msg.LABEL_VALUE,"target"],[ot.Msg.FEATURE,"feature_names"],[ot.Msg.mixpy_PYLAB_TICKS_TAG,"target_names"]]),"type"),this.setOutput(!0,null),this.setColour(lc),this.setTooltip(""),this.setHelpUrl("")}},cc={init:function(){this.appendDummyInput().appendField("sklearn "+ot.Msg.DATA_SEGMENTATION),this.appendValueInput("train_data").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.EIGENVALUES),this.appendValueInput("train_target").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.LABEL_VALUE),this.appendValueInput("test_size").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.TEST_SET_PROPORTION),this.appendValueInput("rondom_state").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.RANDOM_SEED),this.setInputsInline(!1),this.setOutput(!0,null),this.setColour(lc),this.setTooltip(""),this.setHelpUrl("")}},Tc={init:function(){this.appendDummyInput().appendField("sklearn "+ot.Msg.DATA_SEGMENTATION),this.appendValueInput("train_data").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.EIGENVALUES),this.appendValueInput("test_size").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.TEST_SET_PROPORTION),this.appendValueInput("rondom_state").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.RANDOM_SEED),this.setInputsInline(!1),this.setOutput(!0,null),this.setColour(lc),this.setTooltip(""),this.setHelpUrl("")}},Ic={init:function(){this.appendDummyInput().appendField("sklearn "+ot.Msg.SKLEARN_LINEARREGRESSION_INIT),this.appendValueInput("model_name").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.MODEL_NAME),this.appendValueInput("fit_intercept").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.SKLEARN_CALCULATE_MODEL_INTERRUPT),this.appendValueInput("normalize").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.SKLEARN_REGRESSION_NORMIALIZATION),this.appendValueInput("n_jobs").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.SKLEARN_THREADS),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(lc),this.setTooltip(""),this.setHelpUrl("")}},mc={init:function(){this.appendDummyInput().appendField("sklearn "+ot.Msg.SKLEARN_RIDGE_INIT),this.appendValueInput("model_name").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.MODEL_NAME),this.appendValueInput("alpha").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.SKLEARN_REGULA_INTENSITY),this.appendValueInput("fit_intercept").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.SKLEARN_CALCULATE_MODEL_INTERRUPT),this.appendValueInput("normalize").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.SKLEARN_REGRESSION_NORMIALIZATION),this.appendValueInput("max_iter").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.SKLEARN_MAX_ITER),this.appendValueInput("random_state").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.RANDOM_SEED),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(lc),this.setTooltip(""),this.setHelpUrl("")}},Ec={init:function(){this.appendDummyInput().appendField("sklearn "+ot.Msg.SKLEARN_DECISIONTREE_INIT).appendField(new ot.FieldDropdown([[ot.Msg.SKLEARN_CLASSIFICATION_ALGORITHM,"DecisionTreeClassifier"],[ot.Msg.SKLEARN_REGRESSION_ALGORITHM,"DecisionTreeRegressor"]]),"type"),this.appendValueInput("model_name").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.MODEL_NAME),this.appendValueInput("max_depth").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.SKLEARN_MAXIMUM_TREE_DEPTH),this.appendValueInput("random_state").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.RANDOM_SEED),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(lc),this.setTooltip(""),this.setHelpUrl("")}},fc={init:function(){this.appendDummyInput().appendField("sklearn "+ot.Msg.SKLEARN_RANDOMFOREST_INIT).appendField(new ot.FieldDropdown([[ot.Msg.SKLEARN_CLASSIFICATION_ALGORITHM,"RandomForestClassifier"],[ot.Msg.SKLEARN_REGRESSION_ALGORITHM,"RandomForestRegressor"]]),"type"),this.appendValueInput("model_name").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.MODEL_NAME),this.appendValueInput("n_estimators").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.NUMBER_OF_TREES),this.appendValueInput("max_depth").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.SKLEARN_MAXIMUM_TREE_DEPTH),this.appendValueInput("n_jobs").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.SKLEARN_THREADS),this.appendValueInput("random_state").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.RANDOM_SEED),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(lc),this.setTooltip(""),this.setHelpUrl("")}},gc={init:function(){this.appendDummyInput().appendField("sklearn "+ot.Msg.SKLEARN_KNN_INIT).appendField(new ot.FieldDropdown([[ot.Msg.SKLEARN_CLASSIFICATION_ALGORITHM,"KNeighborsClassifier"],[ot.Msg.SKLEARN_REGRESSION_ALGORITHM,"KNeighborsRegressor"]]),"type"),this.appendValueInput("model_name").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.MODEL_NAME),this.appendValueInput("K").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField("K"),this.appendValueInput("n_jobs").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.SKLEARN_THREADS),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(lc),this.setTooltip(""),this.setHelpUrl("")}},Oc={init:function(){this.appendDummyInput().appendField("sklearn "+ot.Msg.SKLEARN_GAUSSINNB_INIT),this.appendValueInput("model_name").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.MODEL_NAME),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(lc),this.setTooltip(""),this.setHelpUrl("")}},Mc={init:function(){this.appendDummyInput().appendField("sklearn 初始化 PCA 算法"),this.appendValueInput("model_name").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.MODEL_NAME),this.appendValueInput("n_components").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.SKLEARN_PCA_N_COMPONENTS),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(lc),this.setTooltip(""),this.setHelpUrl("")}},Rc={init:function(){this.appendDummyInput().appendField("sklearn PCA 降维"),this.appendValueInput("model_name").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.MODEL_NAME),this.appendValueInput("train_data").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.EIGENVALUES),this.setInputsInline(!0),this.setOutput(!0,null),this.setColour(lc),this.setTooltip(""),this.setHelpUrl("")}},Ac={init:function(){this.appendDummyInput().appendField("sklearn "+ot.Msg.SKLEARN_KMEANS_INIT),this.appendValueInput("model_name").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.MODEL_NAME),this.appendValueInput("n_clusters").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.NUMBER_OF_CLUSTERS_JUST),this.appendValueInput("max_iter").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.SKLEARN_MAX_ITER),this.appendValueInput("random_state").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.RANDOM_SEED),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(lc),this.setTooltip(""),this.setHelpUrl("")}},Sc={init:function(){this.appendDummyInput().appendField("sklearn K-均值聚类"),this.appendValueInput("model_name").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.MODEL_NAME),this.appendValueInput("train_data").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.EIGENVALUES),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(lc),this.setTooltip(""),this.setHelpUrl("")}},Cc={init:function(){this.appendDummyInput().appendField("sklearn "+ot.Msg.TRAINING_MODEL),this.appendValueInput("model_name").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.MODEL_NAME),this.appendValueInput("train_data").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.EIGENVALUES),this.appendValueInput("train_target").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.LABEL_VALUE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(lc),this.setTooltip(""),this.setHelpUrl("")}},Lc={init:function(){this.appendDummyInput().appendField("sklearn "+ot.Msg.TRAINING_MODEL),this.appendValueInput("model_name").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.MODEL_NAME),this.appendValueInput("train_data").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.EIGENVALUES),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(lc),this.setTooltip(""),this.setHelpUrl("")}},yc={init:function(){this.appendDummyInput().appendField("sklearn "+ot.Msg.MODEL_PRODICTION),this.appendValueInput("model_name").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.MODEL_NAME),this.appendValueInput("train_data").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.EIGENVALUES),this.setInputsInline(!0),this.setOutput(!0,null),this.setColour(lc),this.setTooltip(""),this.setHelpUrl("")}},Dc={init:function(){this.appendDummyInput().appendField("sklearn "+ot.Msg.CALCULATE_THE_SCORE),this.appendValueInput("model_name").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.MODEL_NAME),this.appendValueInput("train_data").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.EIGENVALUES),this.appendValueInput("train_target").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.LABEL_VALUE),this.setInputsInline(!0),this.setOutput(!0,null),this.setColour(lc),this.setTooltip(""),this.setHelpUrl("")}},Nc={init:function(){this.appendDummyInput().appendField("sklearn "+ot.Msg.CALCULATE_THE_SCORE),this.appendValueInput("model_name").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.MODEL_NAME),this.appendValueInput("train_data").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.EIGENVALUES),this.setInputsInline(!0),this.setOutput(!0,null),this.setColour(lc),this.setTooltip(""),this.setHelpUrl("")}},bc={init:function(){this.appendDummyInput().appendField("sklearn "+ot.Msg.SKLEARN_GENERALIZED_LINEAR_REGRESSION),this.appendValueInput("model_name").setAlign(ot.inputs.Align.RIGHT).setCheck(null).appendField(ot.Msg.MODEL_NAME),this.appendDummyInput().setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.MIXLY_GET).appendField(new ot.FieldDropdown([[ot.Msg.SKLEARN_COEF,"coef_"],[ot.Msg.SKLEARN_INTERCEPT,"intercept_"]]),"type"),this.setOutput(!0,null),this.setColour(lc),this.setTooltip(""),this.setHelpUrl("")}},vc={init:function(){this.appendDummyInput().appendField("sklearn "+ot.Msg.SKLEARN_CLUSTERING),this.appendValueInput("model_name").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.MODEL_NAME),this.appendDummyInput().appendField(ot.Msg.MIXLY_GET).appendField(new ot.FieldDropdown([[ot.Msg.SKLEARN_CLUSTER_CENTER,"cluster_centers_"],[ot.Msg.SKLEARN_LABELS_AFTER_CLUSTERING,"labels_"],[ot.Msg.SKLEARN_CLUSTERING_SUM_OF_SQUARED_DISTANCES,"inertia_"]]),"type"),this.setInputsInline(!0),this.setOutput(!0,null),this.setColour(lc),this.setTooltip(""),this.setHelpUrl("")}},wc={init:function(){this.appendValueInput("model_name").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField("sklearn").appendField(new ot.FieldDropdown([[ot.Msg.SKLEARN_SAVE_MODEL,"dump"],[ot.Msg.SKLEARN_LOAD_MODEL,"load"]]),"type").appendField(" "+ot.Msg.MODEL_NAME),this.appendValueInput("address").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(lc),this.setTooltip(""),this.setHelpUrl("")}},Fc=120,Pc={init:function(){this.setColour(Fc),this.appendValueInput("DELAY_TIME",Number).appendField(ot.Msg.MIXLY_DELAY+"("+ot.Msg.MIXLY_MILLIS+")").setCheck(Number),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ot.Msg.MIXLY_TOOLTIP_CONTROL_DELAY)}},kc={init:function(){this.setColour(Fc),this.appendDummyInput().appendField(ot.Msg.blockpy_time_time),this.setOutput(!0,Number),this.setTooltip(ot.Msg.MIXLY_TOOLTIP_CONTROL_MILLIS)}},Vc={init:function(){this.setColour(Fc),this.appendDummyInput("").appendField(ot.Msg.MIXLY_SYSTEM_TIME_LOCALTIME),this.appendDummyInput().appendField(new ot.FieldDropdown([[ot.Msg.MIXLY_SYSTEM_TIME_LOCALTIME_ALL,"all"],[ot.Msg.MIXLY_SYSTEM_TIME_LOCALTIME_YEAR,"0"],[ot.Msg.MIXLY_SYSTEM_TIME_LOCALTIME_MONTH,"1"],[ot.Msg.MIXLY_SYSTEM_TIME_LOCALTIME_DATE,"2"],[ot.Msg.MIXLY_SYSTEM_TIME_LOCALTIME_HOUR,"3"],[ot.Msg.MIXLY_SYSTEM_TIME_LOCALTIME_MINUTE,"4"],[ot.Msg.MIXLY_SYSTEM_TIME_LOCALTIME_SECOND,"5"],[ot.Msg.MIXLY_SYSTEM_TIME_LOCALTIME_INWEEK,"6"],[ot.Msg.MIXLY_SYSTEM_TIME_LOCALTIME_INYEAR,"7"],[ot.Msg.MIXLY_SYSTEM_TIME_LOCALTIME_DST,"8"]]),"op"),this.setOutput(!0),this.setInputsInline(!0)}},Yc={init:function(){this.setColour(Fc),this.appendValueInput("STATUS_CODE",Number).appendField(ot.Msg.MIXLY_MICROBIT_Panic_with_status_code).setCheck(Number),this.setPreviousStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ot.Msg.MIXLY_TOOLTIP_CONTROL_DELAY)}},xc={init:function(){this.setColour(Fc),this.appendDummyInput().appendField(ot.Msg.MIXLY_MICROBIT_Reset_micro),this.setPreviousStatement(!0)}},Uc={init:function(){this.setColour(Fc),this.appendValueInput("TIME").setCheck(Number).setAlign(ot.inputs.Align.RIGHT).appendField("MsTimer2").appendField(ot.Msg.MIXLY_MSTIMER2_EVERY),this.appendDummyInput().appendField("ms"),this.appendStatementInput("DO").appendField(ot.Msg.MIXLY_MSTIMER2_DO),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Bc={init:function(){this.setColour(Fc),this.appendDummyInput().appendField("MsTimer2").appendField(ot.Msg.MIXLY_MSTIMER2_START),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Xc={init:function(){this.setColour(Fc),this.appendDummyInput().appendField("MsTimer2").appendField(ot.Msg.MIXLY_STOP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Gc={init:function(){this.setColour(Fc),this.appendValueInput("DELAY_TIME",Number).appendField(ot.Msg.MIXLY_DELAY).setCheck(Number),this.appendDummyInput().appendField(ot.Msg.MIXLY_SECOND),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ot.Msg.MIXLY_TOOLTIP_CONTROL_DELAY)}},Hc=180,Wc={init:function(){this.setColour(Hc),this.appendDummyInput("").appendField(ot.Msg.blockpy_turtle_create).appendField(new ot.FieldTextInput("tina"),"VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.blockpy_turtle_create_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Kc={init:function(){this.setColour(Hc),this.appendDummyInput().appendField(ot.Msg.blockpy_TURTLE_DONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},jc={init:function(){this.setColour(Hc),this.appendDummyInput().appendField(ot.Msg.MIXLY_PYTHON_TURTLE_EXITONCLICK),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},qc={init:function(){this.appendValueInput("TUR").setCheck("Turtle");var t=[[ot.Msg.blockpy_forward,"forward"],[ot.Msg.blockpy_backward,"backward"]];this.setColour(Hc),this.appendValueInput("VAR").appendField(ot.Msg.MIXLY_MICROBIT_JS_MOVE_BY).appendField(new ot.FieldDropdown(t),"DIR").appendField(ot.Msg.MIXLY_MICROBIT_JS_MOVE_BY_num),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("DIR");return{forward:ot.Msg.MIXLY_TOOLTIP_TURTEL_FORWARD,backward:ot.Msg.MIXLY_TOOLTIP_TURTEL_BACKWARD}[t]}))}},$c={init:function(){this.appendValueInput("TUR").setCheck("Turtle");var t=[[ot.Msg.blockpy_left,"left"],[ot.Msg.blockpy_right,"right"]];this.setColour(Hc),this.appendValueInput("VAR").appendField(ot.Msg.blockpy_turtle_rotate).appendField(new ot.FieldDropdown(t),"DIR").appendField(ot.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("DIR");return{left:ot.Msg.MIXLY_TOOLTIP_TURTEL_LEFT,right:ot.Msg.MIXLY_TOOLTIP_TURTEL_RIGHT}[t]}))}},zc={init:function(){this.setColour(Hc),this.appendValueInput("TUR").setCheck("Turtle"),this.appendValueInput("data").setCheck(Number).appendField(ot.Msg.blockpy_setheading),this.appendDummyInput().appendField(ot.Msg.blockpy_setheading_degree),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Qc={init:function(){this.setColour(Hc),this.appendValueInput("TUR").setCheck("Turtle"),this.appendValueInput("data").setCheck(Number).appendField(ot.Msg.MIXLY_TURTLE_SCREEN_DELAY),this.appendDummyInput().appendField(ot.Msg.MIXLY_MILLIS),this.setTooltip(ot.Msg.MIXLY_TOOLTIP_TURTEL_SCREEN_DELAY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Jc={init:function(){this.setColour(Hc),this.appendValueInput("TUR").setCheck("Turtle"),this.appendValueInput("data").setCheck(Number).appendField(ot.Msg.blockpy_turtle_goto),this.appendValueInput("val").setCheck(Number).appendField(ot.Msg.blockpy_turtle_goto_y),this.appendDummyInput().appendField(ot.Msg.blockpy_turtle_goto_position),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Zc={init:function(){this.appendValueInput("TUR").setCheck("Turtle");var t=[[ot.Msg.PYLAB_LABEL_X,"x"],[ot.Msg.PYLAB_LABEL_Y,"y"]];this.setColour(Hc),this.appendValueInput("VAR").appendField(new ot.FieldDropdown(t),"DIR").appendField(ot.Msg.MIXLY_MIXPY_TURTLE_SETXY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.MIXLY_MIXPY_TURTLE_SETXY_TOOLTIP)}},tT={init:function(){this.setColour(Hc);var t=[[ot.Msg.TURTLE_POS,"pos"],[ot.Msg.TURTLE_SHAPE,"shape"],[ot.Msg.TURTLE_HEADING,"heading"],[ot.Msg.MIXLY_MIXPY_TURTLE_WIDTH,"width"],[ot.Msg.MIXLY_TURTEL_GET_SHAPESIZE,"shapesize"],[ot.Msg.MIXLY_SPEED,"speed"]];this.appendValueInput("TUR").setCheck("Turtle"),this.appendDummyInput("").appendField(ot.Msg.TURTLE_POS_SHAPE).appendField(new ot.FieldDropdown(t),"DIR");var e=this;this.setTooltip((function(){var t=e.getFieldValue("DIR");return{pos:ot.Msg.MIXLY_TOOLTIP_TURTEL_POS,shape:ot.Msg.MIXLY_TOOLTIP_TURTEL_SHAPE,heading:ot.Msg.MIXLY_TOOLTIP_TURTEL_HEADING,width:ot.Msg.MIXLY_TOOLTIP_TURTEL_WIDTH,speed:ot.Msg.MIXLY_TOOLTIP_TURTEL_GET_SPEED,shapesize:ot.Msg.MIXLY_TURTEL_GET_SHAPESIZE_TOOLTIP}[t]})),this.setOutput(!0),this.setInputsInline(!0)}},eT={init:function(){this.appendValueInput("TUR").setCheck("Turtle");var t=[[ot.Msg.MIXLY_LCD_STAT_CLEAR,"clear"],[ot.Msg.blockpy_turtle_reset,"reset"],[ot.Msg.blockpy_turtle_home,"home"]];this.setColour(Hc),this.appendDummyInput("").appendField(new ot.FieldDropdown(t),"DIR"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("DIR");return{clear:ot.Msg.MIXLY_TOOLTIP_TURTEL_CLEAR,reset:ot.Msg.MIXLY_TOOLTIP_TURTEL_RESET,home:ot.Msg.MIXLY_TOOLTIP_TURTEL_HOME}[t]}))}},nT={init:function(){this.appendValueInput("TUR").setCheck("Turtle");var t=[[ot.Msg.blockpy_turtle_penup,"penup"],[ot.Msg.blockpy_turtle_pendown,"pendown"]];this.setColour(Hc),this.appendDummyInput("").appendField(new ot.FieldDropdown(t),"DIR"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("DIR");return{penup:ot.Msg.MIXLY_TOOLTIP_TURTEL_PENUP,pendown:ot.Msg.MIXLY_TOOLTIP_TURTEL_PENDOWN}[t]}))}},iT={init:function(){this.appendValueInput("TUR").setCheck("Turtle");var t=[[ot.Msg.blockpy_turtle_beginfill,"begin"],[ot.Msg.blockpy_turtle_endfill,"end"]];this.setColour(Hc),this.appendDummyInput("").appendField(new ot.FieldDropdown(t),"DIR"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("DIR");return{begin:ot.Msg.MIXLY_TOOLTIP_TURTEL_BEGINFILL,end:ot.Msg.MIXLY_TOOLTIP_TURTEL_ENDFILL}[t]}))}},sT={init:function(){this.appendDummyInput("").appendField(new ot.FieldTextInput("tina"),"TUR");var t=[[ot.Msg.blockpy_turtle_size,"pensize"],[ot.Msg.MIXLY_SPEED,"speed"]];this.setColour(Hc),this.appendValueInput("VAR").appendField(ot.Msg.blockpy_turtle_set).appendField(new ot.FieldDropdown(t),"DIR").appendField(ot.Msg.blockpy_turtle_set_num),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("DIR");return{pensize:ot.Msg.MIXLY_TOOLTIP_TURTEL_SIZE,speed:ot.Msg.MIXLY_TOOLTIP_TURTEL_SPEED}[t]}))}},oT={init:function(){this.setColour(Hc),this.appendValueInput("TUR").setCheck("Turtle"),this.appendValueInput("data").setCheck(Number).appendField(ot.Msg.blockpy_turtle_set_size),this.setTooltip(ot.Msg.MIXLY_TOOLTIP_TURTEL_SIZE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},rT={init:function(){this.setColour(Hc),this.appendValueInput("TUR").setCheck("Turtle"),this.appendValueInput("data").setCheck(Number).appendField(ot.Msg.blockpy_turtle_set_speed),this.setTooltip(ot.Msg.MIXLY_TOOLTIP_TURTEL_SPEED),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},aT={init:function(){this.appendValueInput("TUR").setCheck("Turtle");var t=[[ot.Msg.blockpy_turtle_circle,"circle"],[ot.Msg.blockpy_turtle_dot,"dot"]];this.setColour(Hc),this.appendValueInput("VAR").appendField(ot.Msg.blockpy_turtle_draw).appendField(new ot.FieldDropdown(t),"DIR").appendField(ot.Msg.blockpy_turtle_radius),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("DIR");return{circle:ot.Msg.MIXLY_TOOLTIP_TURTEL_CIRCLE,dot:ot.Msg.MIXLY_TOOLTIP_TURTEL_DOT}[t]}))}},lT={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(Hc),this.appendValueInput("VAR").appendField(ot.Msg.MIXLY_MIXPY_TURTLE_DRAW_CIRCLE).appendField(ot.Msg.blockpy_turtle_radius),this.appendValueInput("data").setCheck(Number).appendField(ot.Msg.blockpy_turtle_angle),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.MIXLY_TOOLTIP_TURTEL_CIRCLE)}},uT={init:function(){this.appendValueInput("TUR").setCheck("Turtle");var t=[[ot.Msg.blockpy_turtle_hide,"hideturtle"],[ot.Msg.blockpy_turtle_show,"showturtle"]];this.setColour(Hc),this.appendDummyInput("").appendField(new ot.FieldDropdown(t),"DIR"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("DIR");return{hideturtle:ot.Msg.MIXLY_TOOLTIP_TURTEL_HIDE,showturtle:ot.Msg.MIXLY_TOOLTIP_TURTEL_SHOW}[t]}))}},pT={init:function(){this.setColour(Hc),this.appendDummyInput().appendField(ot.Msg.blockpy_turtle_bgcolor).appendField(new ot.FieldColour("#ff0000"),"FIELDNAME"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},_T={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(Hc),this.appendDummyInput().appendField(ot.Msg.blockpy_turtle_pencolor).appendField(new ot.FieldColour("#ff0000"),"FIELDNAME"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},dT={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(Hc),this.appendDummyInput().appendField(ot.Msg.blockpy_turtle_fillcolor).appendField(new ot.FieldColour("#ff0000"),"FIELDNAME"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},hT={init:function(){this.setColour(Hc),this.appendValueInput("TUR").setCheck("Turtle"),this.appendDummyInput("").appendField(ot.Msg.TURTLE_CLONE),this.setTooltip(ot.Msg.TURTLE_CLONE_TOOLTIP),this.setOutput(!0)}},cT={init:function(){this.setColour(Hc),this.appendValueInput("VAR").setCheck(String).appendField(ot.Msg.blockpy_turtle_bgcolor),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},TT={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(Hc),this.appendValueInput("VAR").setCheck(String).appendField(ot.Msg.blockpy_turtle_pencolor),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},IT={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(Hc),this.appendValueInput("VAR").setCheck(String).appendField(ot.Msg.blockpy_turtle_fillcolor),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},mT={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(Hc),this.appendDummyInput().appendField(ot.Msg.blockpy_turtle_pencolor).appendField(new ot.FieldColour("#ff0000"),"FIELDNAME"),this.appendDummyInput().appendField(ot.Msg.blockpy_turtle_fillcolor).appendField(new ot.FieldColour("#ff0000"),"FIELDNAME2"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},ET={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(Hc),this.appendValueInput("VAR1").setCheck(String).appendField(ot.Msg.blockpy_turtle_pencolor),this.appendValueInput("VAR2").setCheck(String).appendField(ot.Msg.blockpy_turtle_fillcolor),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},fT={init:function(){this.setColour(Hc),this.appendValueInput("VAR").setCheck(String).appendField(ot.Msg.blockpy_turtle_bgcolor_hex),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},gT={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(Hc),this.appendValueInput("VAR").setCheck(String).appendField(ot.Msg.blockpy_turtle_pencolor_hex),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},OT={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(Hc),this.appendValueInput("VAR").setCheck(String).appendField(ot.Msg.blockpy_turtle_fillcolor_hex),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},MT={init:function(){this.appendValueInput("TUR").setCheck("Turtle");var t=[[ot.Msg.blockpy_turtle_shape_arrow,"arrow"],[ot.Msg.blockpy_turtle_shape_turtle,"turtle"],[ot.Msg.blockpy_turtle_shape_circle,"circle"],[ot.Msg.blockpy_turtle_shape_square,"square"],[ot.Msg.blockpy_turtle_shape_triangle,"triangle"],[ot.Msg.blockpy_turtle_shape_classic,"classic"]];this.setColour(Hc),this.appendDummyInput("").appendField(ot.Msg.blockpy_turtle_shape).appendField(new ot.FieldDropdown(t),"DIR"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.TURTLE_SHAPE_TOOLTIP)}},RT={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(Hc),this.appendDummyInput("").appendField(ot.Msg.MIXLY_TURTEL_SHAPESIZE),this.appendValueInput("WID").setCheck(Number).appendField(ot.Msg.MIXLY_TURTEL_SHAPESIZE_WID),this.appendValueInput("LEN").setCheck(Number).appendField(ot.Msg.MIXLY_TURTEL_SHAPESIZE_LEN),this.appendValueInput("OUTLINE").setCheck(Number).appendField(ot.Msg.MIXLY_TURTEL_SHAPESIZE_OUTLINE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.MIXLY_TOOLTIP_SHAPESIZE)}},AT={init:function(){this.appendDummyInput("").appendField(ot.Msg.MIXLY_MIXPY_TURTLE_NUMINPUT),this.setColour(Hc),this.appendValueInput("TITLE").setCheck(String).appendField(ot.Msg.MIXLY_MIXPY_TURTLE_TEXTINPUT_TITLE),this.appendValueInput("PROMPT").setCheck(String).appendField(ot.Msg.MIXLY_MIXPY_TURTLE_TEXTINPUT_PROMPT),this.appendValueInput("DEFAULT").setCheck(Number).appendField(ot.Msg.DICTS_DEFAULT_VALUE),this.appendValueInput("MIN").setCheck(Number).appendField(ot.Msg.MATH_ONLIST_OPERATOR_MIN),this.appendValueInput("MAX").setCheck(Number).appendField(ot.Msg.MATH_ONLIST_OPERATOR_MAX),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(ot.Msg.TURTLE_NUMINPUT_TOOLTIP)}},ST={init:function(){this.appendDummyInput("").appendField(ot.Msg.MIXLY_MIXPY_TURTLE_TEXTINPUT),this.setColour(Hc),this.appendValueInput("TITLE").setCheck(String).appendField(ot.Msg.MIXLY_MIXPY_TURTLE_TEXTINPUT_TITLE),this.appendValueInput("PROMPT").setCheck(String).appendField(ot.Msg.MIXLY_MIXPY_TURTLE_TEXTINPUT_PROMPT),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(ot.Msg.TURTLE_TEXTINPUT_TOOLTIP)}},CT={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(Hc),this.appendValueInput("VAR").setCheck(String).appendField(ot.Msg.blockpy_turtle_write),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.TURTLE_WRITE_TOOLTIP)}},LT={init:function(){var t=[[ot.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"],[ot.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"]],e=[[ot.Msg.MIXLY_TURTLE_WRITE_ALIGN_LEFT,"left"],[ot.Msg.MIXLY_TURTLE_WRITE_ALIGN_CENTER,"center"],[ot.Msg.MIXLY_TURTLE_WRITE_ALIGN_RIGHT,"right"]],n=[[ot.Msg.MIXLY_TURTLE_WRITE_FONT_TYPE_NORMAL,"normal"],[ot.Msg.MIXLY_TURTLE_WRITE_FONT_TYPE_BOLD,"bold"],[ot.Msg.MIXLY_TURTLE_WRITE_FONT_TYPE_ITALIC,"italic"],[ot.Msg.MIXLY_TURTLE_WRITE_FONT_TYPE_BOLD_ITALIC,'bold","italic']];this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(Hc),this.appendValueInput("VAR").setCheck(String).appendField(ot.Msg.blockpy_turtle_write),this.appendDummyInput("").appendField(ot.Msg.MIXLY_TURTLE_WRITE_MOVE).appendField(new ot.FieldDropdown(t),"MOVE"),this.appendDummyInput("").appendField(ot.Msg.MIXLY_TURTLE_WRITE_ALIGN).appendField(new ot.FieldDropdown(e),"ALIGN"),this.appendValueInput("FONTNAME").setCheck(String).appendField(ot.Msg.MIXLY_TURTLE_WRITE_FONT_NAME),this.appendValueInput("FONTNUM").setCheck(Number).appendField(ot.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendDummyInput("").appendField(ot.Msg.MIXLY_TURTLE_WRITE_FONT_TYPE).appendField(new ot.FieldDropdown(n),"FONTTYPE"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.TURTLE_WRITE_TOOLTIP)}},yT={init:function(){var t=[[ot.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"],[ot.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"]],e=[[ot.Msg.MIXLY_TURTLE_WRITE_ALIGN_LEFT,"left"],[ot.Msg.MIXLY_TURTLE_WRITE_ALIGN_CENTER,"center"],[ot.Msg.MIXLY_TURTLE_WRITE_ALIGN_RIGHT,"right"]],n=[[ot.Msg.MIXLY_TURTLE_WRITE_FONT_TYPE_NORMAL,"normal"],[ot.Msg.MIXLY_TURTLE_WRITE_FONT_TYPE_BOLD,"bold"],[ot.Msg.MIXLY_TURTLE_WRITE_FONT_TYPE_ITALIC,"italic"]];this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(Hc),this.appendValueInput("VAR").setCheck(String).appendField(ot.Msg.blockpy_turtle_write),this.appendDummyInput("").appendField(ot.Msg.MIXLY_TURTLE_WRITE_MOVE).appendField(new ot.FieldDropdown(t),"MOVE"),this.appendDummyInput("").appendField(ot.Msg.MIXLY_TURTLE_WRITE_ALIGN).appendField(new ot.FieldDropdown(e),"ALIGN"),this.appendValueInput("FONTNAME").setCheck(String).appendField(ot.Msg.MIXLY_TURTLE_WRITE_FONT_NAME),this.appendValueInput("FONTNUM").setCheck(Number).appendField(ot.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendDummyInput("").appendField(ot.Msg.MIXLY_TURTLE_WRITE_FONT_TYPE).appendField(new ot.FieldDropdown(n),"FONTTYPE"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.TURTLE_WRITE_TOOLTIP)}},DT={init:function(){this.setColour(Hc),this.appendDummyInput("").setAlign(ot.inputs.Align.RIGHT).appendField(new ot.FieldColour("ff0000"),"COLOR"),this.setInputsInline(!0),this.setOutput(!0,String)}},NT={init:function(){this.setColour(Hc),this.appendValueInput("TUR").setCheck("Turtle"),this.appendDummyInput("").appendField(ot.Msg.MIXLY_TURTEL_GETSCREEN).appendField(new ot.FieldTextInput("screen"),"VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.MIXLY_TURTEL_GETSCREEN_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},bT={init:function(){this.setColour(Hc),this.appendValueInput("TUR"),this.appendValueInput("VAR").appendField(ot.Msg.MIXLY_TURTEL_EVENT_ONKEY),this.appendValueInput("callback").appendField(ot.Msg.MIXLY_PYTHON_CONTROLS_THREAD_USE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ot.Msg.MIXLY_TURTEL_EVENT_ONKEY_TOOLTIP)}},vT={init:function(){this.setColour(Hc),this.appendValueInput("TUR"),this.appendDummyInput("").appendField(ot.Msg.MIXLY_TURTEL_EVENT_ONCLICK),this.appendValueInput("callback").appendField(ot.Msg.MIXLY_PYTHON_CONTROLS_THREAD_USE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ot.Msg.MIXLY_TURTEL_EVENT_ONCLICK_TOOLTIP)}},wT={init:function(){this.setColour(Hc),this.appendValueInput("TUR"),this.appendValueInput("VAR").appendField(ot.Msg.MIXLY_TURTEL_EVENT_ONTIMER),this.appendDummyInput("").appendField(ot.Msg.MIXLY_mSecond),this.appendValueInput("callback").appendField(ot.Msg.MIXLY_PYTHON_CONTROLS_THREAD_USE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ot.Msg.MIXLY_TURTEL_EVENT_ONTIMER_TOOLTIP)}},FT={init:function(){this.setColour(Hc),this.appendValueInput("TUR"),this.appendDummyInput().appendField(ot.Msg.MIXLY_TURTEL_SCREEN_LISTEN),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},PT={init:function(){this.setColour(Hc),this.appendValueInput("TUR"),this.appendValueInput("FILE").setCheck(String).appendField(ot.Msg.mixpy_PL_SAVEFIG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(ot.Msg.mixpy_TURTLE_SAVEFIG_TOOLTIP)}},kT=function(t,e){var n=this.getFieldValue("TYPE");return e.definitions_.import_FileDialog="import FileDialog",["FileDialog."+n+"()",e.ORDER_ATOMIC]},VT=function(t,e){var n=this.getFieldValue("CTYPE");return e.definitions_.import_aip="import aip",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+" = aip."+n+"("+e.valueToCode(this,"API_KEY",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"SECRET_KEY",e.ORDER_ATOMIC)+")\n"},YT=function(t,e){return e.definitions_.import_aip="import aip",[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".synthesis("+e.valueToCode(this,"STR",e.ORDER_ATOMIC)+", options="+(e.valueToCode(this,"ATTR",e.ORDER_ATOMIC)||"{}")+")",e.ORDER_ATOMIC]},xT=function(t,e){return e.definitions_.import_aip="import aip",[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".asr("+(e.valueToCode(this,"FILE",e.ORDER_ATOMIC)||'""')+", options="+(e.valueToCode(this,"ATTR",e.ORDER_ATOMIC)||"{}")+")",e.ORDER_ATOMIC]},UT=function(t,e){e.definitions_.import_aip="import aip";var n=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),i=e.valueToCode(this,"ADDR",e.ORDER_ATOMIC);return[n+"."+e.valueToCode(this,"FUNC",e.ORDER_ATOMIC)+"("+i+", options="+(e.valueToCode(this,"ATTR",e.ORDER_ATOMIC)||"{}")+")",e.ORDER_ATOMIC]},BT=function(t,e){return e.definitions_.import_aip="import aip",[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".match("+e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+","+e.valueToCode(this,"VAR2",e.ORDER_ATOMIC)+", options="+(e.valueToCode(this,"ATTR",e.ORDER_ATOMIC)||"{}")+")",e.ORDER_ATOMIC]},XT=function(t,e){e.definitions_.import_aip="import aip";var n=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),i=e.valueToCode(this,"ADDR",e.ORDER_ATOMIC);return[n+"."+e.valueToCode(this,"FUNC",e.ORDER_ATOMIC)+"("+i+", options="+(e.valueToCode(this,"ATTR",e.ORDER_ATOMIC)||"{}")+")",e.ORDER_ATOMIC]},GT=function(t,e){e.definitions_.import_aip="import aip";var n=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),i=e.valueToCode(this,"STR",e.ORDER_ATOMIC);return[n+"."+e.valueToCode(this,"FUNC",e.ORDER_ATOMIC)+"("+i+", options="+(e.valueToCode(this,"ATTR",e.ORDER_ATOMIC)||"{}")+")",e.ORDER_ATOMIC]},HT=function(t,e){e.definitions_.import_aip="import aip";var n=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),i=e.valueToCode(this,"STR1",e.ORDER_ATOMIC),s=e.valueToCode(this,"STR2",e.ORDER_ATOMIC);return[n+"."+e.valueToCode(this,"FUNC",e.ORDER_ATOMIC)+"("+i+","+s+", options="+(e.valueToCode(this,"ATTR",e.ORDER_ATOMIC)||"{}")+")",e.ORDER_ATOMIC]},WT=function(t,e){return e.definitions_.import_aip="import aip",[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".topic("+e.valueToCode(this,"STR1",e.ORDER_ATOMIC)+","+e.valueToCode(this,"STR2",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},KT=function(t,e){return e.definitions_.import_aip="import aip",[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".newsSummary("+e.valueToCode(this,"STR",e.ORDER_ATOMIC)+","+e.valueToCode(this,"LEN",e.ORDER_ATOMIC)+", options="+(e.valueToCode(this,"ATTR",e.ORDER_ATOMIC)||"{}")+")",e.ORDER_ATOMIC]},jT=function(t,e){return[this.getFieldValue("TYPE"),e.ORDER_ATOMIC]},qT=function(t,e){return[this.getFieldValue("TYPE"),e.ORDER_ATOMIC]},$T=function(t,e){return[this.getFieldValue("TYPE"),e.ORDER_ATOMIC]},zT=function(t,e){return[this.getFieldValue("TYPE"),e.ORDER_ATOMIC]},QT=function(t,e){return e.definitions_.import_audio="import audio","audio.audio_record("+(e.valueToCode(this,"VAR",e.ORDER_ATOMIC)||'""')+","+(e.valueToCode(this,"TIME",e.ORDER_ATOMIC)||"0")+")\n"},JT=function(t,e){return e.definitions_.import_audio="import cam","cam.photo_capture("+(e.valueToCode(this,"VAR",e.ORDER_ATOMIC)||'""')+","+(e.valueToCode(this,"BUT",e.ORDER_ATOMIC)||'""')+")\n"},ZT=function(t,e){var n=e.valueToCode(this,"AI",e.ORDER_ASSIGNMENT)||"0",i=this.getFieldValue("CTYPE");if("Image"==i)var s=n+'["result"][0]["keyword"]';if("Speech"==i)s=n+'["result"][0]';if("Face"==i||"OcrSimilarity"==i)s=n+'["score"]';if("Ocr"==i)s=n+'["words_result"]';return[s,e.ORDER_ATOMIC]},tI=function(t,e){e.definitions_.import_sprite="import sprite";return"g = [[0,0,0,0,0,0,0,0,0,0], [0,0,0,1,0,0,0,0,0,0], [0,0,0,1,0,0,1,0,0,0], [0,1,1,0,1,1,0,0,0,0], [0,0,0,1,0,0,0,1,0,0], [0,0,0,1,0,0,1,1,0,0], [0,0,1,0,0,1,0,1,0,0], [0,0,0,0,1,1,1,0,0,0]]\nmark = [[0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0]]\nvis = [0,1,0,0,0,0,0,0,0]\nposition = [[0, 0], [200, 200], [250, 60], [320, 200], [280, 380], [470, 250], [670, 90], [650, 340]]\nsprite.clearAllSprites()\nsprite.createBackground('map_xuexiao')\n\nhouse = [ sprite.Sprite('mark', 150, 380),\n sprite.Sprite('School', 115, 195),\n sprite.Sprite('House25', 264, 67),\n sprite.Sprite('House36', 320, 200),\n sprite.Sprite('House47', 290, 371),\n sprite.Sprite('House25', 479, 233),\n sprite.Sprite('House36', 674, 96),\n sprite.Sprite('House47', 642, 318)\n]\nfor i in house:\n i.hide()\n"},eI=function(){return"path = [1]\ncar = sprite.Sprite('car', position[1][0], position[1][1])\nhouse[1].show()\ncar.nowPos = 1\ndef drive(n):\n if g[car.nowPos][n]==1:\n car.slideTo(position[n][0], position[n][1], 1)\n car.nowPos = n\n else:\n print('移动失败!程序有误!')\n exit()\n"},nI=function(t,e){e.definitions_.import_random="import random";return"f = path[(len(path) - 1)]\nflag = 0\nfor _my_variable in [6,5,4,3,2,1,0]:\n if vis[_my_variable+1] == 0 and g[f][_my_variable+1] == 1:\n if mark[f][_my_variable+1] == 0:\n flag = 1\n break\n"},iI=function(t,e){return["flag == 1",e.ORDER_ATOMIC]},sI=function(){return"mark[f][_my_variable+1] = 1\nvis[_my_variable+1] = 1\n"},oI=function(){return"path.append(_my_variable+1)\ndrive(path[len(path) - 1])\nhouse[_my_variable+1].show()\n"},rI=function(t,e){e.definitions_.import_time="import time";return"del path[len(path) - 1]\nhouse[0].show()\ntime.sleep(0.5)\nhouse[0].hide()\n"},aI=function(){var t="for i in range(7):\n mark[f][i+1] = 0\n vis[f] = 0\n";return t="house[f].hide()\ndrive(path[len(path) - 1])\n"+t},lI=function(t,e){return["len(path) == 7",e.ORDER_ATOMIC]},uI=function(){return'name = ["","学校","小智家","小欣家","小思家","小科家","贝贝家","乐乐家"]\nres = ""\nfor i in path:\n res = res + name[i] + "-"\nprint(res[:-1])\n'},pI=function(t,e){e.definitions_.import_sprite="import sprite";return"g = [[0,0,0,0,0,0,0,0,0,0], [0,0,0,1,0,0,0,0,0,0], [0,0,0,1,0,0,1,0,0,0], [0,1,1,0,1,0,0,0,0,0], [0,0,0,1,0,0,0,1,0,0], [0,0,0,1,0,0,0,1,0,0], [0,0,1,0,0,0,0,1,0,0], [0,0,0,0,1,1,1,0,0,0]]\nmark = [[0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0]]\nvis = [0,1,0,0,0,0,0,0,0]\nposition = [[0, 0], [200, 200], [250, 60], [320, 200], [280, 380], [470, 250], [670, 90], [650, 340]]\nsprite.clearAllSprites()\nsprite.createBackground('map_xuexiao')\n\nhouse = [ sprite.Sprite('mark', 150, 380),\n sprite.Sprite('School', 115, 195),\n sprite.Sprite('House25', 264, 67),\n sprite.Sprite('House36', 320, 200),\n sprite.Sprite('House47', 290, 371),\n sprite.Sprite('House25', 479, 233),\n sprite.Sprite('House36', 674, 96),\n sprite.Sprite('House47', 642, 318)\n]\nbarricade = sprite.Sprite('barricade', 570, 170)\nbarricade.enlargeTo(100)\nfor i in house:\n i.hide()\n"},_I=function(t,e){return["f == 1",e.ORDER_ATOMIC]},dI=function(){return"print('没有符合条件的路线')\n"},hI=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";return'g = [[10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000],[10000,10000,500,300,10000,10000,10000,10000,10000,10000,10000],[10000,500,10000,10000,100,10000,10000,10000,10000,10000,10000],[10000,300,10000,10000,400,300,10000,10000,10000,10000,10000],[10000,10000,100,400,10000,10000,200,10000,10000,10000,10000],[10000,10000,10000,300,10000,10000,100,200,10000,10000,10000],[10000,10000,10000,10000,200,100,10000,10000,100,10000,10000],[10000,10000,10000,10000,10000,200,10000,10000,100,10000,10000],[10000,10000,10000,10000,10000,10000,100,100,10000,10000,10000]]\nnow=1\nlast=1\npath=[]\npath.append(1)\nname = ["","小思家","银行","邮局","餐厅","书店","医院","超市","小科家"]\nposition = [[0, 0], [60, 320], [510, 390], [240, 200], [750, 330], [410, 90], [540, 190], [550, 30], [720, 120]]\nsprite.clearAllSprites()\nsprite.createBackground(\'map_si_ke\')\nstu = sprite.Sprite(\'girl\', 60, 320)\nstu.enlargeTo(100)\ntime.sleep(1)\n\n'},cI=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";return'g =[[10000,10000,10000,10000,10000,10000,10000],[10000,10000,300,500,10000,10000,10000],[10000,300,10000,10000,300,700,10000],[10000,500,10000,10000,10000,100,10000],[10000,10000,300,10000,10000,10000,200],[10000,10000,700,100,10000,10000,100],[10000,10000,10000,10000,200,100,10000]]\nnow=1\nlast=1\npath=[]\npath.append(1)\nname = ["","小智家","邮局","银行","书店","餐厅","学校"]\nposition = [[0, 0], [70, 340], [70, 90], [550, 310], [420, 70], [730, 250], [650, 130]]\nsprite.clearAllSprites()\nsprite.createBackground(\'map_zhi_xue\')\nstu = sprite.Sprite(\'boy\', 70, 340)\nstu.enlargeTo(100)\ntime.sleep(1)\n\n'},TI=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";return'tmp=10000\nfor i in range(0, len(g), 1):\n if g[now][i]6:\n print("路线错乱!程序有误!")\n exit()\n'},II=function(t,e){return["name[now] != '小科家'",e.ORDER_ATOMIC]},mI=function(t,e){return["name[now] != '学校'",e.ORDER_ATOMIC]},EI=function(){return'res = ""\nfor i in path:\n res = res + name[i] + "→"\nprint(res[:-1])\n'},fI=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";var n=this.getFieldValue("NUM");if(n>=7)var i="print('层数过高!不得高于6层!')\nexit()\n";else i="sprite.clearAllSprites()\n_Hanoicolor = ['blue', 'red', 'yellow', 'green', 'purple', 'black']\n_Hanoi = [[], [], []]\nA = 0\nB = 1\nC = 2\n_n = "+n+"\n_HanoiColumn = [\n sprite.Sprite('HanoiColumn', 200, 320),\n sprite.Sprite('HanoiColumn', 400, 320),\n sprite.Sprite('HanoiColumn', 600, 320)\n]\n_HanoiColumnNumber = [\n sprite.Text('A', 190, 120),\n sprite.Text('B', 390, 120),\n sprite.Text('C', 590, 120)\n]\n_HanoiBlock = []\nfor i in range(0, _n, 1):\n _HanoiBlock.append(sprite.Sprite(_Hanoicolor[i], 200, 400-(_n-i-1)*27))\n _HanoiBlock[i].setScale(25, 30*i+30)\n _Hanoi[0].insert(0, _HanoiBlock[i])\n_steptext = sprite.Text('步数:0', 30, 30)\n_steps = {'steps' : 0}\ntime.sleep(1)\n";return i},gI=function(t,e){var n=e.valueToCode(this,"FROM_NUM",e.ORDER_ATOMIC)||"0",i=e.valueToCode(this,"TO_NUM",e.ORDER_ATOMIC)||"0";return`if len(_Hanoi[${n}])>0 :\n _HanoiBlockMoved = _Hanoi[${n}].pop()\n if len(_Hanoi[${i}]) > 0 :\n _HanoiBlockSuppressed = _Hanoi[${i}].pop()\n if _HanoiBlock.index(_HanoiBlockMoved) > _HanoiBlock.index(_HanoiBlockSuppressed):\n print('非法移动!程序有误!')\n exit()\n else:\n _Hanoi[${i}].append(_HanoiBlockSuppressed)\n _HanoiBlockMoved.slideTo(${n}*200+200, 180, 0.2)\n _HanoiBlockMoved.slideTo(${i}*200+200, 180, 0.5)\n _HanoiBlockMoved.slideTo(${i}*200+200, 400-len(_Hanoi[${i}])*27, 0.2)\n _Hanoi[${i}].append(_HanoiBlockMoved)\n _steps['steps'] += 1\n _steptext.changeText('步数:'+str(_steps['steps']))\nelse :\n print('非法移动!程序有误!')\n exit()\n`},OI=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";return"if 'mode' not in globals() or mode == 0:\n sprite.clearAllSprites()\n ring=[0,0,0,0,0,0,0,0,0,0]\n mode=1\n n=5\n ring[5]=1\n name=['小王子','海底两万里','荷花镇的早市','孔子的故事','夏洛的网','草房子','月下看猫头鹰','会唱歌的咖啡磨','父与子','城南旧事']\n Books = []\n for i in range(1, 11, 1):\n Books.append(sprite.Sprite('books/book'+str(i), (130*i-650) if i>5 else 130*i, 320 if i>5 else 120))\nelse:\n mode=2\n n=len(ring)-1\nring[n]=1\ntime.sleep(1)\n"},MI=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";return"if 'mode' not in globals() or mode == 0:\n sprite.clearAllSprites()\n ring=[0,0,0,0,0,0,0,0,0,0]\n mode=2\n n=5\n name=['小王子','海底两万里','荷花镇的早市','孔子的故事','夏洛的网','草房子','月下看猫头鹰','会唱歌的咖啡磨','父与子','城南旧事']\n Books = []\n for i in range(1, 11, 1):\n Books.append(sprite.Sprite('books/book'+str(i), (130*i-650) if i>5 else 130*i, 320 if i>5 else 120))\nelse:\n mode=1\n n=len(ring)-1\nring[n]=n\nlist=ring\ntemp=Books\ntime.sleep(1)\n"},RI=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";return"res=0\nflag=ring[res]\nBooks[res].filterBrighter()\ntime.sleep(0.1)\nBooks[res].filterOrigin()\n"},AI=function(t,e){return["(('mode' not in globals())or(mode==1 and flag==0)or(mode==2 and not any(value > 0 for value in qian))or(mode==0))",e.ORDER_ATOMIC]},SI=function(t,e){return["(('mode' in globals())and((mode==1 and flag!=0)or(mode==2 and any(value > 0 for value in qian))))",e.ORDER_ATOMIC]},CI=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";var n="res+=1\nflag=ring[res]\n";return n="Books[res].filterGray()\ntime.sleep(0.3)\n"+(n+="Books[res].filterBrighter()\ntime.sleep(0.1)\nBooks[res].filterOrigin()\n")},LI=function(t,e){return["len(list)>=2",e.ORDER_ATOMIC]},yI=function(){return"mid = int(len(list)/2)\nqian = list[0:mid]\nhou = list[mid:]\nqiantemp = temp[0:mid]\nhoutemp = temp[mid:]\n"},DI=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";return"quchu = qian\nlist = hou\nquchutemp = qiantemp\ntemp = houtemp\nfor i in qiantemp:\n i.filterBrighter()\ntime.sleep(0.5)\nfor i in qiantemp:\n i.filterGray()\ntime.sleep(0.5)\n"},NI=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";return"list = quchu\ntemp = quchutemp\nfor i in qiantemp:\n i.filterBrighter()\ntime.sleep(0.5)\nfor i in qiantemp:\n i.filterOrigin()\nfor i in houtemp:\n\ti.filterBrighter()\ntime.sleep(0.5)\nfor i in houtemp:\n i.filterGray()\ntime.sleep(0.5)\n"},bI=function(){return"if 'list' in globals():\n res = list[0]\nBooks[res].filterBrighter()\nprint('未消磁的书籍是第'+str(res+1)+'本《'+name[res%10]+'》。')\nif res!=n:\n print('答案错误!请检查程序!')\nmode=0\n"},vI=function(t,e){var n=this.getFieldValue("NUM");return e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite",`sprite.clearAllSprites()\nring = []\nname = ['小王子','海底两万里','荷花镇的早市','孔子的故事','夏洛的网','草房子','月下看猫头鹰','会唱歌的咖啡磨','父与子','城南旧事']\nBooks = []\nfor i in range(${n}):\n ring.append(0)\nfor i in range(1, ${n}+1, 1):\n Books.append(sprite.Sprite('books/book'+str(i%10 if i%10!=0 else 10), ${{5:"130*i, 120",10:"(130*i-650) if i>5 else 130*i, 320 if i>5 else 120",20:"(65*i-650)+30 if i>10 else 65*i+30, 320 if i>10 else 120",50:"(26*i-650)+50 if i>25 else 26*i+50, 320 if i>25 else 120"}[n]}))\ntime.sleep(1)\nmode=3\n`},wI=function(t,e){e.definitions_.import_sprite="import sprite";return"cnt=0\ncntText = sprite.Text('计数器:0', 30, 200)\n"},FI=function(t,e){e.definitions_.import_sprite="import sprite";return"cnt+=1\ncntText.changeText('计数器:'+str(cnt))\n"},PI=function(t,e){e.definitions_.import_sprite="import sprite";return"print('计数器大小:'+str(cnt))\n"},kI=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";return"sprite.clearAllSprites()\n_head = 10\n_foot = 32\n_footText = sprite.Text('脚的数量:', 20, 10)\n_sprite = []\n"},VI=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";return"_rabbit = 0\ntime.sleep(1)\n"},YI=function(t,e){return["_rabbit < _head",e.ORDER_ATOMIC]},xI=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";return"_chick = _head - _rabbit\nfor i in range(0, _chick, 1):\n _sprite.append(sprite.Sprite('jttl/chick', len(_sprite)*130+130 if len(_sprite)<5 else len(_sprite)*130+130-650, 120 if len(_sprite)<5 else 320))\n\ntime.sleep(0.5)\n_footText.changeText('脚的数量:'+str(_rabbit*4 + _chick*2))\ntime.sleep(1)\n"},UI=function(t,e){return["_rabbit*4 + _chick*2 == _foot",e.ORDER_ATOMIC]},BI=function(t,e){e.definitions_.import_sprite="import sprite";return"print('鸡的数量:'+str(_chick)+'只;\\n兔的数量:'+str(_rabbit)+'只。')\n"},XI=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";return"_rabbit += 1\nsprite.clearAllSprites()\n_sprite = []\n_footText = sprite.Text('脚的数量:', 20, 10)\nfor i in range(0, _rabbit, 1):\n _sprite.append(sprite.Sprite('jttl/rabbit', len(_sprite)*130+130 if len(_sprite)<5 else len(_sprite)*130+130-650, 120 if len(_sprite)<5 else 320))\ntime.sleep(0.5)\n"},GI=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";return"sprite.clearAllSprites()\nsprite.createBackground('/fzsf/map_ck_xxjsjs')\n_S1 = sprite.Sprite('/fzsf/S1',400,225,'S1')\n_S2 = sprite.Sprite('/fzsf/S2',400,225,'S2')\n_S3 = sprite.Sprite('/fzsf/S3',400,225,'S3')\n_S4 = sprite.Sprite('/fzsf/S4',400,225,'S4')\n_S1.hide()\n_S2.hide()\n_S3.hide()\n_S4.hide()\n_text_1 = sprite.Text('S1:',0,0,'text')\n_text_2 = sprite.Text('S2:',0,30,'text2')\n_text_3 = sprite.Text('S3:',0,60,'text3')\n_text_4 = sprite.Text('S4:',0,90,'text4')\n_position = [[60, 270], [240, 50], [260, 380], [440, 190], [730, 60], [700, 400]]\n_Llen = [0, 170, 230, 100, 150, 10, 30, 50]\n_Slen = [0, 0, 0, 0, 0]\n_tag = [0, [0, 1, 3], [0, 2, 3], [3, 4, 5], [3, 5]]\nbear = sprite.Sprite('mixbear',60,270,'bear')\nbear.enlargeTo(80)\n_pos = 0\ntime.sleep(1)\n"},HI=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";var n=this.getFieldValue("PATHNAME");const i=[0,[1,3],[2,4],[5,7],[6]];var s="";return s+=`_S${n}.show()\ntime.sleep(1)\n`,s+=4!=n?`_Slen[${n}] = _Llen[${i[n][0]}] + _Llen[${i[n][1]}]\n_text_${n}.changeText('S${n}:'+str(_Slen[${n}])+'m')\ntime.sleep(1)\n_S${n}.hide()\ntime.sleep(1)\n`:"_Slen[4] = _Llen[6]\n_text_4.changeText('S4:'+str(_Slen[4])+'m')\ntime.sleep(1)\n_S4.hide()\ntime.sleep(1)\n"},WI=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";var n="";return[n+=`_Slen[${this.getFieldValue("PATHNAME")}] < _Slen[${this.getFieldValue("PATHNAME2")}]`,e.ORDER_ATOMIC]},KI=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";var n=this.getFieldValue("PATHNAME"),i="";return i+=`\n_S1.hide()\n_S2.hide()\n_S3.hide()\n_S4.hide()\n_Smin = ${n}\n_S${n}.show()\ntime.sleep(0.5)\n_S${n}.hide()\ntime.sleep(0.5)\n_S${n}.show()\ntime.sleep(1)\n`},jI=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";return"if(_pos == _tag[_Smin][0]):\n for i in range(1, len(_tag[_Smin]), 1):\n bear.slideTo(_position[_tag[_Smin][i]][0], _position[_tag[_Smin][i]][1], 1)\n _pos = _tag[_Smin][len(_tag[_Smin])-1]\nelse:\n print('移动错误!程序有误!')\n exit()\n_S1.hide()\n_S2.hide()\n_S3.hide()\n_S4.hide()\nif(_pos == 5):\n print('成功抵达信息科技教室!')\n"},qI=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";return"sprite.clearAllSprites()\nsprite.createBackground('/hxdb/hxdbbg')\n_soldier = []\n_num = sprite.Text('目前士兵数量:0',0,0,'num')\n_last = sprite.Text('剩余:0',500,0,'last')\n_line = 3\n"},$I=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";var n="";return n+=`for i in range(0, ${this.getFieldValue("NUM")}, 1):\n _soldier.append(sprite.Sprite('/hxdb/soldier', 30 + (len(_soldier)%_line)*50 + (len(_soldier)//(4*_line))*(_line+1)*50 +(len(_soldier)%3-2), 80+(len(_soldier)//_line)*100-(len(_soldier)//(4*_line))*4*100+(len(_soldier)%2)))\n_num.changeText('目前士兵数量:'+str(len(_soldier)))\n`},zI=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";var n=this.getFieldValue("NUM");return`for i in range(0, len(_soldier), 1):\n _soldier[i].slideTo(30 + (i%${n})*50 + (i//(4*${n}))*(${n}+1)*50 +(i%3-2), 80+(i//${n})*100-(i//(4*${n}))*4*100+(i%2), 0.05)\n_line = ${n}\n_last.changeText('剩余:'+str(len(_soldier)%_line))\ntime.sleep(2)\n`},QI=function(t,e){return e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite",[`len(_soldier)%_line == ${this.getFieldValue("NUM")}`,e.ORDER_ATOMIC]},JI=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";return"_num.changeText('目前士兵数量:'+str(len(_soldier)+1))\n_last.changeText('剩余:')\ntime.sleep(0.5)\n_soldier.append(sprite.Sprite('/hxdb/soldier', 30 + (len(_soldier)%_line)*50 + (len(_soldier)//(4*_line))*(_line+1)*50 +(len(_soldier)%3-2), 80+(len(_soldier)//_line)*100-(len(_soldier)//(4*_line))*4*100+(len(_soldier)%2)))\ntime.sleep(1)\n"},ZI=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";return"print('符合要求的士兵数量为:'+str(len(_soldier)))\n"},tm=function(t,e){e.definitions_.import_turtle="import turtle",e.definitions_.import_time="import time",e.definitions_.import_math="import math";var n=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),i=this.getFieldValue("NUM");return e.setups_.init_Hanoi="\ndef init_Hanoi():\n pen = turtle.Turtle()\n pen.hideturtle()\n pen.speed(0)\n for i in range(0, 3, 1):\n pen.penup()\n pen.setheading(0)\n pen.goto(150 * i - 200,-100)\n pen.pendown()\n pen.pensize(5)\n pen.forward(100)\n pen.goto(150 * i - 150,-100)\n pen.setheading(90)\n pen.forward(200)",e.setups_.begin="\ndef begin(): \n s = turtle.Turtle()\n s.hideturtle()\n s.penup()\n s.speed(0)\n s.goto(0,-150)\n s.write('3')\n time.sleep(1)\n s.clear()\n s.write('2')\n time.sleep(1)\n s.clear()\n s.write('1')\n time.sleep(1)\n s.clear()\n s.write('Start!')\n time.sleep(1)\n s.clear()\n",e.setups_.move="\ndef move(x, y):\n try:\n t = tower[x].pop(-1)\n a = tower_num[x].pop(-1)\n if tower_num[y]!=[]:\n b = tower_num[y][-1]\n if a 1"}]`,e.ORDER_ATOMIC]},wE=function(t,e){return[`${e.valueToCode(t,"DICT",e.ORDER_ATOMIC)||"df"}.groupby(by=${e.valueToCode(t,"KEY",e.ORDER_ATOMIC)||"'tag'"})`,e.ORDER_ATOMIC]},FE=function(t,e){return[`${e.valueToCode(t,"DICT",e.ORDER_ATOMIC)||"df"}.${t.getFieldValue("TYPE")}()`,e.ORDER_ATOMIC]},PE=function(t,e){e.definitions_.import_matplotlib_pyplot="import matplotlib.pyplot as plt";return"plt.cla()\n"},kE=function(t,e){var n=e.variableDB_.getName(this.getFieldValue("VAR"),ot.Variables.NAME_TYPE),i=e.variableDB_.getName(this.getFieldValue("TYPE"),ot.Variables.NAME_TYPE),s="class "+i+":\n";s+=" def __init__(self):\n";for(var o=new Array(this.itemCount_),r=0;r{document.removeEventListener("DOMContentLoaded",t),this._pageLoad.resolve()};document.addEventListener("DOMContentLoaded",t)}else this._pageLoad.resolve();(async()=>{switch(n){case"python":case"python3":case"python3.11":const{KernelPython3:e}=await __webpack_require__.e(211).then(__webpack_require__.bind(__webpack_require__,211));this._kernel=new e(t);break;case"python3-old":case"python3.8":const{KernelPython3Old:i}=await __webpack_require__.e(195).then(__webpack_require__.bind(__webpack_require__,5195));this._kernel=new i(t);break;case"js":case"javascript":const{KernelJavaScript:s}=await __webpack_require__.e(97).then(__webpack_require__.bind(__webpack_require__,4097));this._kernel=new s(t);break;case"sql":const{KernelSQL:o}=await Promise.all([__webpack_require__.e(960),__webpack_require__.e(837)]).then(__webpack_require__.bind(__webpack_require__,592));this._kernel=new o(t);break;case"ocaml":const{KernelOCaml:r}=await __webpack_require__.e(38).then(__webpack_require__.bind(__webpack_require__,38));this._kernel=new r(t);break;default:return window.console.error(`Kernel '${n}' not supported.`),void this._kernelAvailable.reject()}window.Basthon=this._kernel,this._kernelAvailable.resolve(this._kernel)})()}async pageLoad(){await this._pageLoad.promise}async kernelAvailable(){return await this._kernelAvailable.promise}async kernelLoaded(){const t=await this.kernelAvailable();return await t.loaded(),t}get kernel(){return this._kernel}get kernelSafe(){var t;return(null===(t=this.kernel)||void 0===t?void 0:t.ready)?this.kernel:null}async showLoader(t,e=!1,n=!0){this.kernelAvailable().then((()=>{var t;return null===(t=this.kernel)||void 0===t?void 0:t.init()})),__webpack_require__.e(317).then(__webpack_require__.bind(__webpack_require__,1317));const i="basthon-loader-"+(e?"full":"foot"),s=document.createElement("div");s.id=this._loaderId,s.classList.add("darklighted"),s.classList.add("basthon-loader-root"),s.classList.add(i);const o=document.createElement("div");o.classList.add("basthon-loader-container"),o.classList.add(i),s.appendChild(o);const r=document.createElement("div");r.classList.add("basthon-loader-spinner"),r.classList.add(i),r.innerHTML="",o.appendChild(r);const a=document.createElement("div");a.classList.add("basthon-loader-break"),a.classList.add(i),o.appendChild(a);const l=document.createElement("div");l.classList.add("basthon-loader-text"),l.classList.add(i),l.innerHTML=t,o.appendChild(l),this._loaderTextElem=l;const u=document.createElement("div");u.classList.add("basthon-loader-text"),u.classList.add(i),u.style.display="none",o.appendChild(u),this._loaderTextError=u,await this.pageLoad(),document.body.appendChild(s),this._rootLoader=s;try{await this.kernelLoaded()}catch(t){const e=this.browser();this.setErrorText(`Erreur de chargement de Basthon !!!Vérifiez que votre navigateur est à jour.Version détectée : ${e.name} ${e.version}.`);for(const t of document.body.querySelectorAll(".basthon-loader-foot"))t.classList.remove("basthon-loader-foot"),t.classList.add("basthon-loader-full");return r.classList.remove("basthon-loader-spinner"),r.classList.add("basthon-loader-error"),void(this._doNotHideLoader=!0)}this._doNotHideLoader=!1,n&&this.hideLoader()}setLoaderText(t){null!=this._loaderTextElem&&(this._loaderTextElem.innerHTML=t)}setErrorText(t){null!=this._loaderTextElem&&(this._loaderTextElem.style.display="none"),null!=this._loaderTextError&&(this._loaderTextError.style.display="",this._loaderTextError.innerHTML=t)}hideLoader(){if(this._doNotHideLoader)return;const t=this._rootLoader;null!=t&&(t.classList.add("basthon-loader-hide"),window.setTimeout((()=>{this._rootLoader=void 0,t.remove()}),1100))}browser(){var t,e=navigator.userAgent,n=e.match(/(opera|chrome|safari|firefox|msie|trident(?=\/))\/?\s*(\d+)/i)||[];return/trident/i.test(n[1])?{name:"IE",version:(t=/\brv[ :]+(\d+)/g.exec(e)||[])[1]||""}:"Chrome"===n[1]&&null!=(t=e.match(/\bOPR|Edge\/(\d+)/))?{name:"Opera",version:t[1]}:(n=n[2]?[n[1],n[2]]:[navigator.appName,navigator.appVersion,"-?"],null!=(t=e.match(/version\/(\d+)/i))&&n.splice(1,1,t[1]),{name:n[0],version:n[1]})}}class dO extends rt.PageBase{static{rt.HTMLTemplate.add("html/statusbar/statusbar-image.html",new rt.HTMLTemplate('\n')),this.init=function(){rt.StatusBarsManager.typesRegistry.register(["images"],dO);const t=rt.Workspace.getMain().getStatusBarsManager();return t.add("images","images",ot.Msg.PYTHON_PYODIDE_IMAGE),t.changeTo("output"),t.get("images")}}constructor(){super();const t=uO()(rt.HTMLTemplate.get("html/statusbar/statusbar-image.html").render());this.setContent(t)}init(){super.init(),this.hideCloseBtn()}clean(){this.getContent().empty()}display(t){const e=this.getContent(),n=function(t){t.style.width="auto",t.style.height="auto",t.style.maxWidth="100%",t.style.maxHeight="100%"};this.clean();let i=t.content,s=null,o=null;switch(t.display_type){case"p5":i.style.width="100%",i.style.height="100%",i.style.display="flex",i.style.justifyContent="center",i.style.alignItems="center",new MutationObserver((function(t){t.forEach((t=>t.addedNodes.forEach((t=>{const e=t;null!=e.tagName&&["canvas","video"].includes(e.tagName.toLowerCase())&&n(e)}))))})).observe(i,{childList:!0}),i.querySelectorAll("canvas,video").forEach(n),e.append(i);break;case"matplotlib":s=i.querySelector("canvas"),s&&(i=s),i.style.width="",i.style.height="",i.style.maxWidth="100%",i.style.maxHeight="100%",e.append(i);break;case"ocaml-canvas":i.style.width="",i.style.height="",i.style.maxWidth="100%",i.style.maxHeight="100%",e.append(i);break;case"turtle":i.setAttribute("width","100%"),i.setAttribute("height","100%"),e.append(i.outerHTML);break;case"sympy":e.append(t.content),void 0===window.MathJax?(console.log("Loading MathJax (Sympy expression needs it)."),function(){let t=document.createElement("script");t.type="text/javascript",t.src="https://cdn.jsdelivr.net/npm/mathjax@3.0.5/es5/tex-mml-chtml.js",document.getElementsByTagName("head")[0].appendChild(t)}()):window.MathJax.typeset();break;case"multiple":for(let n of["image/svg+xml","image/png","text/html","text/plain"])if(n in t.content){let i=t.content[n];"image/png"===n&&(i=''),e.append(i);break}break;case"tutor":if(e.append(uO()(t.content.replace("overflow-y%3A%20hidden%3B",""))),o=this.getContent()[0].getElementsByTagName("iframe")[0],null==o)return;o.style.maxHeight=o.style.minHeight="100%",new IntersectionObserver(((t,e)=>{const n=t[0];n&&!n.isIntersecting||(o.contentWindow?.postMessage({type:"redraw"},"*"),e.disconnect())})).observe(o);break;default:console.error(`Not supported node type '${t.display_type}' in eval.display result processing.`)}}}const hO=layui;var cO;!function(t){t[t.EPERM=1]="EPERM",t[t.ENOENT=2]="ENOENT",t[t.EINTR=4]="EINTR",t[t.EIO=5]="EIO",t[t.ENXIO=6]="ENXIO",t[t.EBADF=9]="EBADF",t[t.EAGAIN=11]="EAGAIN",t[t.ENOMEM=12]="ENOMEM",t[t.EACCES=13]="EACCES",t[t.EFAULT=14]="EFAULT",t[t.ENOTBLK=15]="ENOTBLK",t[t.EBUSY=16]="EBUSY",t[t.EEXIST=17]="EEXIST",t[t.EXDEV=18]="EXDEV",t[t.ENODEV=19]="ENODEV",t[t.ENOTDIR=20]="ENOTDIR",t[t.EISDIR=21]="EISDIR",t[t.EINVAL=22]="EINVAL",t[t.ENFILE=23]="ENFILE",t[t.EMFILE=24]="EMFILE",t[t.ETXTBSY=26]="ETXTBSY",t[t.EFBIG=27]="EFBIG",t[t.ENOSPC=28]="ENOSPC",t[t.ESPIPE=29]="ESPIPE",t[t.EROFS=30]="EROFS",t[t.EMLINK=31]="EMLINK",t[t.EPIPE=32]="EPIPE",t[t.EDOM=33]="EDOM",t[t.ERANGE=34]="ERANGE",t[t.EDEADLK=35]="EDEADLK",t[t.ENAMETOOLONG=36]="ENAMETOOLONG",t[t.ENOLCK=37]="ENOLCK",t[t.ENOSYS=38]="ENOSYS",t[t.ENOTEMPTY=39]="ENOTEMPTY",t[t.ELOOP=40]="ELOOP",t[t.ENOMSG=42]="ENOMSG",t[t.EBADE=52]="EBADE",t[t.EBADR=53]="EBADR",t[t.EXFULL=54]="EXFULL",t[t.ENOANO=55]="ENOANO",t[t.EBADRQC=56]="EBADRQC",t[t.ENOSTR=60]="ENOSTR",t[t.ENODATA=61]="ENODATA",t[t.ETIME=62]="ETIME",t[t.ENOSR=63]="ENOSR",t[t.ENONET=64]="ENONET",t[t.EREMOTE=66]="EREMOTE",t[t.ENOLINK=67]="ENOLINK",t[t.ECOMM=70]="ECOMM",t[t.EPROTO=71]="EPROTO",t[t.EBADMSG=74]="EBADMSG",t[t.EOVERFLOW=75]="EOVERFLOW",t[t.EBADFD=77]="EBADFD",t[t.ESTRPIPE=86]="ESTRPIPE",t[t.ENOTSOCK=88]="ENOTSOCK",t[t.EDESTADDRREQ=89]="EDESTADDRREQ",t[t.EMSGSIZE=90]="EMSGSIZE",t[t.EPROTOTYPE=91]="EPROTOTYPE",t[t.ENOPROTOOPT=92]="ENOPROTOOPT",t[t.EPROTONOSUPPORT=93]="EPROTONOSUPPORT",t[t.ESOCKTNOSUPPORT=94]="ESOCKTNOSUPPORT",t[t.ENOTSUP=95]="ENOTSUP",t[t.ENETDOWN=100]="ENETDOWN",t[t.ENETUNREACH=101]="ENETUNREACH",t[t.ENETRESET=102]="ENETRESET",t[t.ETIMEDOUT=110]="ETIMEDOUT",t[t.ECONNREFUSED=111]="ECONNREFUSED",t[t.EHOSTDOWN=112]="EHOSTDOWN",t[t.EHOSTUNREACH=113]="EHOSTUNREACH",t[t.EALREADY=114]="EALREADY",t[t.EINPROGRESS=115]="EINPROGRESS",t[t.ESTALE=116]="ESTALE",t[t.EREMOTEIO=121]="EREMOTEIO",t[t.EDQUOT=122]="EDQUOT"}(cO||(cO={}));const TO={[cO.EPERM]:"Operation not permitted",[cO.ENOENT]:"No such file or directory",[cO.EINTR]:"Interrupted system call",[cO.EIO]:"Input/output error",[cO.ENXIO]:"No such device or address",[cO.EBADF]:"Bad file descriptor",[cO.EAGAIN]:"Resource temporarily unavailable",[cO.ENOMEM]:"Cannot allocate memory",[cO.EACCES]:"Permission denied",[cO.EFAULT]:"Bad address",[cO.ENOTBLK]:"Block device required",[cO.EBUSY]:"Resource busy or locked",[cO.EEXIST]:"File exists",[cO.EXDEV]:"Invalid cross-device link",[cO.ENODEV]:"No such device",[cO.ENOTDIR]:"File is not a directory",[cO.EISDIR]:"File is a directory",[cO.EINVAL]:"Invalid argument",[cO.ENFILE]:"Too many open files in system",[cO.EMFILE]:"Too many open files",[cO.ETXTBSY]:"Text file busy",[cO.EFBIG]:"File is too big",[cO.ENOSPC]:"No space left on disk",[cO.ESPIPE]:"Illegal seek",[cO.EROFS]:"Cannot modify a read-only file system",[cO.EMLINK]:"Too many links",[cO.EPIPE]:"Broken pipe",[cO.EDOM]:"Numerical argument out of domain",[cO.ERANGE]:"Numerical result out of range",[cO.EDEADLK]:"Resource deadlock would occur",[cO.ENAMETOOLONG]:"File name too long",[cO.ENOLCK]:"No locks available",[cO.ENOSYS]:"Function not implemented",[cO.ENOTEMPTY]:"Directory is not empty",[cO.ELOOP]:"Too many levels of symbolic links",[cO.ENOMSG]:"No message of desired type",[cO.EBADE]:"Invalid exchange",[cO.EBADR]:"Invalid request descriptor",[cO.EXFULL]:"Exchange full",[cO.ENOANO]:"No anode",[cO.EBADRQC]:"Invalid request code",[cO.ENOSTR]:"Device not a stream",[cO.ENODATA]:"No data available",[cO.ETIME]:"Timer expired",[cO.ENOSR]:"Out of streams resources",[cO.ENONET]:"Machine is not on the network",[cO.EREMOTE]:"Object is remote",[cO.ENOLINK]:"Link has been severed",[cO.ECOMM]:"Communication error on send",[cO.EPROTO]:"Protocol error",[cO.EBADMSG]:"Bad message",[cO.EOVERFLOW]:"Value too large for defined data type",[cO.EBADFD]:"File descriptor in bad state",[cO.ESTRPIPE]:"Streams pipe error",[cO.ENOTSOCK]:"Socket operation on non-socket",[cO.EDESTADDRREQ]:"Destination address required",[cO.EMSGSIZE]:"Message too long",[cO.EPROTOTYPE]:"Protocol wrong type for socket",[cO.ENOPROTOOPT]:"Protocol not available",[cO.EPROTONOSUPPORT]:"Protocol not supported",[cO.ESOCKTNOSUPPORT]:"Socket type not supported",[cO.ENOTSUP]:"Operation is not supported",[cO.ENETDOWN]:"Network is down",[cO.ENETUNREACH]:"Network is unreachable",[cO.ENETRESET]:"Network dropped connection on reset",[cO.ETIMEDOUT]:"Connection timed out",[cO.ECONNREFUSED]:"Connection refused",[cO.EHOSTDOWN]:"Host is down",[cO.EHOSTUNREACH]:"No route to host",[cO.EALREADY]:"Operation already in progress",[cO.EINPROGRESS]:"Operation now in progress",[cO.ESTALE]:"Stale file handle",[cO.EREMOTEIO]:"Remote I/O error",[cO.EDQUOT]:"Disk quota exceeded"};class IO extends Error{static fromJSON(t){const e=new IO(t.errno,t.message,t.path,t.syscall);return e.code=t.code,e.stack=t.stack,e}static With(t,e,n){return new IO(cO[t],TO[cO[t]],e,n)}constructor(t,e=TO[t],n,i=""){super(e),this.errno=t,this.path=n,this.syscall=i,this.code=cO[t],this.message=this.code+": "+e+(this.path?`, '${this.path}'`:"")}toString(){return this.message}toJSON(){return{errno:this.errno,code:this.code,path:this.path,stack:this.stack,message:this.message,syscall:this.syscall}}bufferSize(){return 4+JSON.stringify(this.toJSON()).length}}let mO="/";function EO(t,e){let n="",i=0,s=-1,o=0,r="\0";for(let a=0;a<=t.length;++a){if(a2){const t=n.lastIndexOf("/");-1===t?(n="",i=0):(n=n.slice(0,t),i=n.length-1-n.lastIndexOf("/")),s=a,o=0;continue}if(0!==n.length){n="",i=0,s=a,o=0;continue}}e&&(n+=n.length>0?"/..":"..",i=2)}else n.length>0?n+="/"+t.slice(s+1,a):n=t.slice(s+1,a),i=a-s-1;s=a,o=0}else"."===r&&-1!==o?++o:o=-1}return n}function fO(...t){let e="";for(const n of[...t.reverse(),mO])if(n.length&&(e=`${n}/${e}`,n.startsWith("/")))break;const n=e.startsWith("/");return e=EO(e,!n),n?`/${e}`:e.length?e:"/"}function gO(...t){if(!t.length)return".";const e=t.join("/");return e?.length?function(t){if(!t.length)return".";const e=t.startsWith("/"),n=t.endsWith("/");return(t=EO(t,!e)).length?(n&&(t+="/"),e?`/${t}`:t):e?"/":n?"./":"."}(e):"."}function OO(t){if(0===t.length)return".";const e="/"===t[0];let n=-1,i=!0;for(let e=t.length-1;e>=1;--e)if("/"===t[e]){if(!i){n=e;break}}else i=!1;return-1===n?e?"/":".":e&&1===n?"//":t.slice(0,n)}function MO(t,e){let n=0,i=-1,s=!0;if(void 0!==e&&e.length>0&&e.length<=t.length){if(e===t)return"";let o=e.length-1,r=-1;for(let a=t.length-1;a>=0;--a)if("/"===t[a]){if(!s){n=a+1;break}}else-1===r&&(s=!1,r=a+1),o>=0&&(t[a]===e[o]?-1==--o&&(i=a):(o=-1,i=r));return n===i?i=r:-1===i&&(i=t.length),t.slice(n,i)}for(let e=t.length-1;e>=0;--e)if("/"===t[e]){if(!s){n=e+1;break}}else-1===i&&(s=!1,i=e+1);return-1===i?"":t.slice(n,i)}function RO(t){const e=t.startsWith("/"),n={root:e?"/":"",dir:"",base:"",ext:"",name:""};if(0===t.length)return n;const i=e?1:0;let s=-1,o=0,r=-1,a=!0,l=t.length-1,u=0;for(;l>=i;--l)if("/"!==t[l])-1===r&&(a=!1,r=l+1),"."===t[l]?-1===s?s=l:1!==u&&(u=1):-1!==s&&(u=-1);else if(!a){o=l+1;break}if(-1!==r){const i=0===o&&e?1:o;-1===s||0===u||1===u&&s===r-1&&s===o+1?n.base=n.name=t.slice(i,r):(n.name=t.slice(i,s),n.base=t.slice(i,r),n.ext=t.slice(s,r))}return o>0?n.dir=t.slice(0,o-1):e&&(n.dir="/"),n}const AO=new TextEncoder;function SO(t){if("string"!=typeof t)throw new IO(cO.EINVAL,"Can not encode a non-string");return AO.encode(t)}const CO=new TextDecoder;function LO(t){if(!(t instanceof Uint8Array))throw new IO(cO.EINVAL,"Can not decode a non-Uint8Array");return CO.decode(t)}function yO(t){return JSON.parse(LO(t),((t,e)=>""==t?e:BigInt(e)))}function DO(t){return SO(JSON.stringify(t,((t,e)=>""==t?e:e.toString())))}function NO(t,e){if("number"==typeof t)return t;if("string"==typeof t){const e=parseInt(t,8);if(!isNaN(e))return e}if("number"==typeof e)return e;throw new IO(cO.EINVAL,"Invalid mode: "+t?.toString())}function bO(t){if(t instanceof Date)return t;try{return new Date(t)}catch{throw new IO(cO.EINVAL,"Invalid time.")}}function vO(t){if((t=t.toString()).includes("\0"))throw new IO(cO.EINVAL,"Path can not contain null character");if(0==t.length)throw new IO(cO.EINVAL,"Path can not be empty");return fO(t.replaceAll(/[/\\]+/g,"/"))}function wO(t,e="utf8",n,i=0){return"object"!=typeof t||null===t?{encoding:"string"==typeof t?t:e??null,flag:n,mode:i}:{encoding:"string"==typeof t?.encoding?t.encoding:e??null,flag:"string"==typeof t?.flag?t.flag:n,mode:NO("mode"in t?t?.mode:null,i)}}function FO(){return crypto.getRandomValues(new BigUint64Array(1))[0]}const PO={uid:0,gid:0,suid:0,sgid:0,euid:0,egid:0,groups:[]};function kO(t){return{suid:t.uid,sgid:t.gid,euid:t.uid,egid:t.gid,groups:[],...t}}const VO=0,YO=4,xO=2,UO=1,BO=1,XO=2,GO=4,HO=0,WO=1,KO=2,jO=64,qO=128,$O=256,zO=512,QO=1024,JO=65536,ZO=262144,tM=131072,eM=1052672,nM=4096,iM=32768,sM=16384,oM=2048,rM=61440,aM=49152,lM=40960,uM=32768,pM=24576,_M=16384,dM=8192,hM=4096,cM=2048,TM=1024,IM=512,mM=448,EM=256,fM=128,gM=64,OM=56,MM=32,RM=16,AM=8,SM=7,CM=4,LM=2,yM=1,DM=0,NM=2**32-1,bM={checkAccess:!0,updateOnRead:!0,syncImmediately:!0,unsafeBufferReplace:!1};Promise.withResolvers??(Promise.withResolvers=function(){let t,e;const n=new Promise(((n,i)=>{t=n,e=i}));return{promise:n,resolve:t,reject:e}}),Symbol.dispose??(Symbol.dispose=Symbol("Symbol.dispose")),Symbol.asyncDispose??(Symbol.asyncDispose=Symbol("Symbol.asyncDispose"));class vM{_convert(t){return this._isBigint?BigInt(t):Number(t)}get blocks(){return this._convert(Math.ceil(Number(this.size)/512))}get atime(){return new Date(Number(this.atimeMs))}set atime(t){this.atimeMs=this._convert(t.getTime())}get mtime(){return new Date(Number(this.mtimeMs))}set mtime(t){this.mtimeMs=this._convert(t.getTime())}get ctime(){return new Date(Number(this.ctimeMs))}set ctime(t){this.ctimeMs=this._convert(t.getTime())}get birthtime(){return new Date(Number(this.birthtimeMs))}set birthtime(t){this.birthtimeMs=this._convert(t.getTime())}constructor({atimeMs:t,mtimeMs:e,ctimeMs:n,birthtimeMs:i,uid:s,gid:o,size:r,mode:a,ino:l}={}){this.dev=this._convert(0),this.ino=this._convert(0),this.rdev=this._convert(0),this.nlink=this._convert(1),this.blksize=this._convert(4096),this.uid=this._convert(0),this.gid=this._convert(0);const u=Date.now();this.atimeMs=this._convert(t??u),this.mtimeMs=this._convert(e??u),this.ctimeMs=this._convert(n??u),this.birthtimeMs=this._convert(i??u),this.uid=this._convert(s??0),this.gid=this._convert(o??0),this.size=this._convert(r??0),this.ino=this._convert(l??0),this.mode=this._convert(a??420&uM),this.mode&rM||(this.mode=this.mode|this._convert(uM))}isFile(){return(this.mode&rM)===uM}isDirectory(){return(this.mode&rM)===_M}isSymbolicLink(){return(this.mode&rM)===lM}isSocket(){return(this.mode&rM)===aM}isBlockDevice(){return(this.mode&rM)===pM}isCharacterDevice(){return(this.mode&rM)===dM}isFIFO(){return(this.mode&rM)===hM}hasAccess(t,e){const n=e?.credentials||PO;if(this.isSymbolicLink()||0===n.euid||0===n.egid)return!0;let i=0;return n.uid===this.uid&&(this.mode&EM&&(i|=YO),this.mode&fM&&(i|=xO),this.mode&gM&&(i|=UO)),(n.gid===this.gid||n.groups.includes(Number(this.gid)))&&(this.mode&MM&&(i|=YO),this.mode&RM&&(i|=xO),this.mode&AM&&(i|=UO)),this.mode&CM&&(i|=YO),this.mode&LM&&(i|=xO),this.mode&yM&&(i|=UO),(i&t)===t}chmod(t){this.mode=this._convert(this.mode&rM|t)}chown(t,e){t=Number(t),e=Number(e),!isNaN(t)&&0<=t&&t<2**32&&(this.uid=this._convert(t)),!isNaN(e)&&0<=e&&e<2**32&&(this.gid=this._convert(e))}get atimeNs(){return 1000n*BigInt(this.atimeMs)}get mtimeNs(){return 1000n*BigInt(this.mtimeMs)}get ctimeNs(){return 1000n*BigInt(this.ctimeMs)}get birthtimeNs(){return 1000n*BigInt(this.birthtimeMs)}}function wM(t,e,n){!isNaN(e)&&0<=e&&e<2**32&&(t.uid=e),!isNaN(n)&&0<=n&&n<2**32&&(t.gid=n)}class FM extends vM{constructor(){super(...arguments),this._isBigint=!1}}class PM extends vM{constructor(){super(...arguments),this._isBigint=!0}}class kM{constructor(){this.type=525687744115,this.bsize=4096,this.blocks=0,this.bfree=0,this.bavail=0,this.files=NM,this.ffree=NM}}class VM{constructor(){this.type=0x7a656e6673n,this.bsize=4096n,this.blocks=0n,this.bfree=0n,this.bavail=0n,this.files=BigInt(NM),this.ffree=BigInt(NM)}}const YM=["r","r+","rs","rs+","w","wx","w+","wx+","a","ax","a+","ax+"];function xM(t){if("number"==typeof t)return function(t){switch(t){case HO:return"r";case HO|eM:return"rs";case KO:return"r+";case KO|eM:return"rs+";case zO|jO|WO:return"w";case zO|jO|WO|qO:return"wx";case zO|jO|KO:return"w+";case zO|jO|KO|qO:return"wx+";case QO|jO|WO:return"a";case QO|jO|WO|qO:return"ax";case QO|jO|KO:return"a+";case QO|jO|KO|qO:return"ax+";default:throw new Error("Invalid flag number: "+t)}}(t);if(!YM.includes(t))throw new Error("Invalid flag string: "+t);return t}function UM(t){let e=0;return e<<=1,e+=+BM(t),e<<=1,e+=+XM(t),e<<=1,e}function BM(t){return-1!==t.indexOf("r")||-1!==t.indexOf("+")}function XM(t){return-1!==t.indexOf("w")||-1!==t.indexOf("a")||-1!==t.indexOf("+")}function GM(t){return-1!==t.indexOf("w")}function HM(t){return-1!==t.indexOf("a")}function WM(t){return-1!==t.indexOf("x")}class KM{constructor(t,e){this.fs=t,this.path=e}async[Symbol.asyncDispose](){await this.close()}[Symbol.dispose](){this.closeSync()}datasync(){return this.sync()}datasyncSync(){return this.syncSync()}}class jM extends KM{constructor(t,e,n,i,s=new Uint8Array(new ArrayBuffer(0,t.metadata().noResizableBuffers?{}:{maxByteLength:NM}))){if(super(t,e),this.flag=n,this.stats=i,this._buffer=s,this._position=0,this.dirty=!1,this.closed=!1,this.stats.size!=s.byteLength){if(BM(this.flag))throw new Error(`Size mismatch: buffer length ${s.byteLength}, stats size ${this.stats.size}`);this.dirty=!0}}get buffer(){return this._buffer}get position(){return HM(this.flag)?this.stats.size:this._position}set position(t){this._position=t}async sync(){if(this.closed)throw IO.With("EBADF",this.path,"File.sync");this.dirty&&(await this.fs.sync(this.path,this._buffer,this.stats),this.dirty=!1)}syncSync(){if(this.closed)throw IO.With("EBADF",this.path,"File.sync");this.dirty&&(this.fs.syncSync(this.path,this._buffer,this.stats),this.dirty=!1)}async close(){if(this.closed)throw IO.With("EBADF",this.path,"File.close");await this.sync(),this.dispose()}closeSync(){if(this.closed)throw IO.With("EBADF",this.path,"File.close");this.syncSync(),this.dispose()}dispose(t){if(this.closed)throw IO.With("EBADF",this.path,"File.dispose");if(this.dirty&&!t)throw IO.With("EBUSY",this.path,"File.dispose");delete this._buffer,delete this.stats,this.closed=!0}stat(){if(this.closed)throw IO.With("EBADF",this.path,"File.stat");return Promise.resolve(new FM(this.stats))}statSync(){if(this.closed)throw IO.With("EBADF",this.path,"File.stat");return new FM(this.stats)}_truncate(t){if(this.closed)throw IO.With("EBADF",this.path,"File.truncate");if(this.dirty=!0,!XM(this.flag))throw new IO(cO.EPERM,"File not opened with a writeable mode.");if(this.stats.mtimeMs=Date.now(),t>this._buffer.length){const e=new Uint8Array(t-this._buffer.length);this._write(e,0,e.length,this._buffer.length)}else this.stats.size=t,this._buffer=t?this._buffer.slice(0,t):new Uint8Array}async truncate(t){this._truncate(t),bM.syncImmediately&&await this.sync()}truncateSync(t){this._truncate(t),bM.syncImmediately&&this.syncSync()}_write(t,e=0,n=this.stats.size,i=this.position){if(this.closed)throw IO.With("EBADF",this.path,"File.write");if(!XM(this.flag))throw new IO(cO.EPERM,"File not opened with a writeable mode.");this.dirty=!0;const s=i+n,o=t.slice(e,e+n);if(s>this.stats.size&&(this.stats.size=s,s>this._buffer.byteLength))if(this._buffer.buffer.resizable&&this._buffer.buffer.maxByteLength<=s)this._buffer.buffer.resize(s);else if(bM.unsafeBufferReplace)this._buffer=o;else{const t=new Uint8Array(new ArrayBuffer(s,this.fs.metadata().noResizableBuffers?{}:{maxByteLength:NM}));t.set(this._buffer),this._buffer=t}return this._buffer.set(o,i),this.stats.mtimeMs=Date.now(),this.position=i+o.byteLength,o.byteLength}async write(t,e,n,i){const s=this._write(t,e,n,i);return bM.syncImmediately&&await this.sync(),s}writeSync(t,e=0,n=this.stats.size,i=this.position){const s=this._write(t,e,n,i);return bM.syncImmediately&&this.syncSync(),s}_read(t,e=0,n=this.stats.size,i){if(this.closed)throw IO.With("EBADF",this.path,"File.read");if(!BM(this.flag))throw new IO(cO.EPERM,"File not opened with a readable mode.");bM.updateOnRead&&(this.dirty=!0),this.stats.atimeMs=Date.now(),i??(i=this.position);let s=i+n;s>this.stats.size&&(s=i+Math.max(this.stats.size-i,0)),this._position=s;const o=s-i;return 0==o||new Uint8Array(t.buffer,e,n).set(this._buffer.slice(i,s)),o}async read(t,e,n,i){const s=this._read(t,e,n,i);return bM.syncImmediately&&await this.sync(),{bytesRead:s,buffer:t}}readSync(t,e,n,i){const s=this._read(t,e,n,i);return bM.syncImmediately&&this.syncSync(),s}async chmod(t){if(this.closed)throw IO.With("EBADF",this.path,"File.chmod");this.dirty=!0,this.stats.mode=this.stats.mode&(t>rM?~rM:rM)|t,(bM.syncImmediately||t>rM)&&await this.sync()}chmodSync(t){if(this.closed)throw IO.With("EBADF",this.path,"File.chmod");this.dirty=!0,this.stats.mode=this.stats.mode&(t>rM?~rM:rM)|t,(bM.syncImmediately||t>rM)&&this.syncSync()}async chown(t,e){if(this.closed)throw IO.With("EBADF",this.path,"File.chown");this.dirty=!0,wM(this.stats,t,e),bM.syncImmediately&&await this.sync()}chownSync(t,e){if(this.closed)throw IO.With("EBADF",this.path,"File.chown");this.dirty=!0,wM(this.stats,t,e),bM.syncImmediately&&this.syncSync()}async utimes(t,e){if(this.closed)throw IO.With("EBADF",this.path,"File.utimes");this.dirty=!0,this.stats.atime=t,this.stats.mtime=e,bM.syncImmediately&&await this.sync()}utimesSync(t,e){if(this.closed)throw IO.With("EBADF",this.path,"File.utimes");this.dirty=!0,this.stats.atime=t,this.stats.mtime=e,bM.syncImmediately&&this.syncSync()}}class qM{metadata(){return{name:this.constructor.name.toLowerCase(),readonly:!1,totalSpace:0,freeSpace:0,noResizableBuffers:!1,noAsyncCache:this._disableSync??!1,type:525687744115}}constructor(...t){}async ready(){}async exists(t){try{return await this.stat(t),!0}catch(t){return"ENOENT"!=t.code}}existsSync(t){try{return this.statSync(t),!0}catch(t){return"ENOENT"!=t.code}}}var $M=__webpack_require__(228);Symbol.toStringTag,Symbol.iterator;const zM=Intl.NumberFormat("en",{notation:"compact"});zM.format.bind(zM);function QM(t){return t.at(0).toUpperCase()+t.slice(1)}const JM=["int8","uint8","int16","uint16","int32","uint32","int64","uint64","float32","float64"],ZM=[...JM,...JM.map((t=>QM(t))),"char"],tR=/^(u?int|float)(8|16|32|64)$/i;function eR(t){return"char"==t?"uint8":t.toLowerCase()}function nR(t){return tR.test(t.toString())}function iR(t){return"char"==t||tR.test(t.toString().toLowerCase())}Symbol.struct_init||=Symbol("struct_init"),Symbol.struct_metadata||=Symbol("struct_metadata");Symbol.struct_init,Symbol.struct_metadata;function sR(t){const e=Symbol.metadata||Object.getOwnPropertySymbols(t).find((t=>"Symbol.metadata"==t.description));var n;if(n=t,Symbol?.metadata&&(Symbol.metadata in n||Object.defineProperty(n,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:Object.create(null)})),!e)throw new ReferenceError("Could not get a reference to Symbol.metadata");return e}function oR(t){return"function"==typeof t&&sR(t)in t&&function(t){return null!=t&&"object"==typeof t&&Symbol.struct_metadata in t}(t[sR(t)])}function rR(t){return null!=t&&"object"==typeof t&&oR(t.constructor)}function aR(t){if(!rR(t))throw new TypeError(("function"==typeof t?t.name:"object"==typeof t&&t?t.constructor.name:t)+" is not a struct instance")}function lR(t){if(!function(t){return rR(t)||oR(t)}(t))throw new TypeError(("function"==typeof t?t.name:"object"==typeof t&&t?t.constructor.name:t)+" is not a struct")}function uR(t){if("string"==typeof t)return function(t){if(!iR(t))throw new TypeError("Not a valid primitive type: "+t)}(t),+eR(t).match(tR)[2]/8;lR(t);const e=oR(t)?t:t.constructor;return e[sR(e)][Symbol.struct_metadata].size}function pR(t={}){return function(e,n){n.metadata??={},n.metadata[Symbol.struct_init]||=[];let i=0;const s=new Map;for(const e of n.metadata[Symbol.struct_init]){const{name:n,type:a,length:l}=e;if(!iR(a)&&!oR(a))throw new TypeError("Not a valid type: "+a);s.set(n,{offset:i,type:iR(a)?eR(a):a,length:l}),i+=uR(a)*(l||1),o=i,r=t.align||1,i=Math.ceil(o/r)*r}var o,r;return n.metadata[Symbol.struct_metadata]={options:t,members:s,size:i},e}}function _R(t,e){return function(n,i){let s=i.name;if("symbol"==typeof s&&(console.warn("Symbol used for struct member name will be coerced to string: "+s.toString()),s=s.toString()),!s)throw new ReferenceError("Invalid name for struct member");return i.metadata??={},i.metadata[Symbol.struct_init]||=[],i.metadata[Symbol.struct_init].push({name:s,type:t,length:e}),n}}function dR(t){aR(t);const{options:e,members:n}=t.constructor[sR(t.constructor)][Symbol.struct_metadata],i=new Uint8Array(uR(t)),s=new DataView(i.buffer);for(const[o,{type:r,length:a,offset:l}]of n)for(let n=0;n<(a||1);n++){const u=l+uR(r)*n;let p=a>0?t[o][n]:t[o];if("string"==typeof p&&(p=p.charCodeAt(0)),!nR(r)){i.set(p?dR(p):new Uint8Array(uR(r)),u);continue}const _="set"+QM(r);"setInt64"!=_?"setUint64"!=_?s[_](u,Number(p),!e.bigEndian):s.setBigUint64(u,BigInt(p),!e.bigEndian):s.setBigInt64(u,BigInt(p),!e.bigEndian)}return i}function hR(t,e){aR(t);const{options:n,members:i}=t.constructor[sR(t.constructor)][Symbol.struct_metadata],s=e instanceof Uint8Array?e:new Uint8Array("buffer"in e?e.buffer:e),o=new DataView(s.buffer.slice(s.byteOffset,s.byteOffset+s.byteLength));for(const[e,{type:r,offset:a,length:l}]of i)for(let i=0;i<(l||1);i++){let u=l>0?t[e]:t;const p=l>0?i:e,_=a+uR(r)*i;if("string"==typeof t[e]){t[e]=t[e].slice(0,i)+String.fromCharCode(o.getUint8(_))+t[e].slice(i+1);continue}if(!nR(r)){if(null===u[p]||void 0===u[p])continue;hR(u[p],new Uint8Array(s.slice(_,_+uR(r))));continue}l>0&&(u||=[]);const d="get"+QM(r);"getInt64"!=d?u[p]="getUint64"!=d?o[d](_,!n.bigEndian):o.getBigUint64(_,!n.bigEndian):u[p]=o.getBigInt64(_,!n.bigEndian)}}Symbol.metadata??=Symbol.for("Symbol.metadata");const cR=Object.fromEntries(ZM.map((t=>{return[t,(e=t,function(t,n){return"number"==typeof t?_R(e,t):_R(e)(t,n)})];var e})));var TR=function(t,e,n,i,s,o){function r(t){if(void 0!==t&&"function"!=typeof t)throw new TypeError("Function expected");return t}for(var a,l=i.kind,u="getter"===l?"get":"setter"===l?"set":"value",p=!e&&t?i.static?t:t.prototype:null,_=e||(p?Object.getOwnPropertyDescriptor(p,i.name):{}),d=!1,h=n.length-1;h>=0;h--){var c={};for(var T in i)c[T]="access"===T?{}:i[T];for(var T in i.access)c.access[T]=i.access[T];c.addInitializer=function(t){if(d)throw new TypeError("Cannot add initializers after decoration has completed");o.push(r(t||null))};var I=(0,n[h])("accessor"===l?{get:_.get,set:_.set}:_[u],c);if("accessor"===l){if(void 0===I)continue;if(null===I||"object"!=typeof I)throw new TypeError("Object expected");(a=r(I.get))&&(_.get=a),(a=r(I.set))&&(_.set=a),(a=r(I.init))&&s.unshift(a)}else(a=r(I))&&("field"===l?s.unshift(a):_[u]=a)}p&&Object.defineProperty(p,i.name,_),d=!0},IR=function(t,e,n){for(var i=arguments.length>2,s=0;s{var t,e,n,i,s,o,r,a,l,u,p;let _,d,h,c,T,I,m,E,f,g,O,M,R,A=[pR()],S=[],C=[],L=[],y=[],D=[],N=[],b=[],v=[],w=[],F=[],P=[],k=[],V=[],Y=[],x=[],U=[],B=[],X=[],G=[],H=[],W=[],K=[],j=[];var q=d=class{constructor(t){if(this.data=IR(this,C,void 0),this.size=(IR(this,L),IR(this,y,void 0)),this.mode=(IR(this,D),IR(this,N,void 0)),this.nlink=(IR(this,b),IR(this,v,void 0)),this.uid=(IR(this,w),IR(this,F,void 0)),this.gid=(IR(this,P),IR(this,k,void 0)),this.atimeMs=(IR(this,V),IR(this,Y,void 0)),this.birthtimeMs=(IR(this,x),IR(this,U,void 0)),this.mtimeMs=(IR(this,B),IR(this,X,void 0)),this.ctimeMs=(IR(this,G),IR(this,H,void 0)),this.ino=(IR(this,W),IR(this,K,void 0)),IR(this,j),t){const e=uR(q),n=e-uR("uint64");if(t.byteLength{const $="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;h=[(t=cR).uint64.bind(t)],c=[(e=cR).uint32.bind(e)],T=[(n=cR).uint16.bind(n)],I=[(i=cR).uint32.bind(i)],m=[(s=cR).uint32.bind(s)],E=[(o=cR).uint32.bind(o)],f=[(r=cR).float64.bind(r)],g=[(a=cR).float64.bind(a)],O=[(l=cR).float64.bind(l)],M=[(u=cR).float64.bind(u)],R=[(p=cR).uint64.bind(p)],TR(null,null,h,{kind:"field",name:"data",static:!1,private:!1,access:{has:t=>"data"in t,get:t=>t.data,set:(t,e)=>{t.data=e}},metadata:$},C,L),TR(null,null,c,{kind:"field",name:"size",static:!1,private:!1,access:{has:t=>"size"in t,get:t=>t.size,set:(t,e)=>{t.size=e}},metadata:$},y,D),TR(null,null,T,{kind:"field",name:"mode",static:!1,private:!1,access:{has:t=>"mode"in t,get:t=>t.mode,set:(t,e)=>{t.mode=e}},metadata:$},N,b),TR(null,null,I,{kind:"field",name:"nlink",static:!1,private:!1,access:{has:t=>"nlink"in t,get:t=>t.nlink,set:(t,e)=>{t.nlink=e}},metadata:$},v,w),TR(null,null,m,{kind:"field",name:"uid",static:!1,private:!1,access:{has:t=>"uid"in t,get:t=>t.uid,set:(t,e)=>{t.uid=e}},metadata:$},F,P),TR(null,null,E,{kind:"field",name:"gid",static:!1,private:!1,access:{has:t=>"gid"in t,get:t=>t.gid,set:(t,e)=>{t.gid=e}},metadata:$},k,V),TR(null,null,f,{kind:"field",name:"atimeMs",static:!1,private:!1,access:{has:t=>"atimeMs"in t,get:t=>t.atimeMs,set:(t,e)=>{t.atimeMs=e}},metadata:$},Y,x),TR(null,null,g,{kind:"field",name:"birthtimeMs",static:!1,private:!1,access:{has:t=>"birthtimeMs"in t,get:t=>t.birthtimeMs,set:(t,e)=>{t.birthtimeMs=e}},metadata:$},U,B),TR(null,null,O,{kind:"field",name:"mtimeMs",static:!1,private:!1,access:{has:t=>"mtimeMs"in t,get:t=>t.mtimeMs,set:(t,e)=>{t.mtimeMs=e}},metadata:$},X,G),TR(null,null,M,{kind:"field",name:"ctimeMs",static:!1,private:!1,access:{has:t=>"ctimeMs"in t,get:t=>t.ctimeMs,set:(t,e)=>{t.ctimeMs=e}},metadata:$},H,W),TR(null,null,R,{kind:"field",name:"ino",static:!1,private:!1,access:{has:t=>"ino"in t,get:t=>t.ino,set:(t,e)=>{t.ino=e}},metadata:$},K,j),TR(null,_={value:d},A,{kind:"class",name:d.name,metadata:$},null,S),q=d=_.value,$&&Object.defineProperty(d,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:$}),IR(d,S)})(),q=d})();var fR=function(t,e,n){if(null!=e){if("object"!=typeof e&&"function"!=typeof e)throw new TypeError("Object expected.");var i,s;if(n){if(!Symbol.asyncDispose)throw new TypeError("Symbol.asyncDispose is not defined.");i=e[Symbol.asyncDispose]}if(void 0===i){if(!Symbol.dispose)throw new TypeError("Symbol.dispose is not defined.");i=e[Symbol.dispose],n&&(s=i)}if("function"!=typeof i)throw new TypeError("Object not disposable.");s&&(i=function(){try{s.call(this)}catch(t){return Promise.reject(t)}}),t.stack.push({value:e,dispose:i,async:n})}else n&&t.stack.push({async:!0});return e},gR=function(t){return function(e){function n(n){e.error=e.hasError?new t(n,e.error,"An error was suppressed during disposal."):n,e.hasError=!0}return function t(){for(;e.stack.length;){var i=e.stack.pop();try{var s=i.dispose&&i.dispose.call(i.value);if(i.async)return Promise.resolve(s).then(t,(function(e){return n(e),t()}))}catch(t){n(t)}}if(e.hasError)throw e.error}()}}("function"==typeof SuppressedError?SuppressedError:function(t,e,n){var i=new Error(n);return i.name="SuppressedError",i.error=t,i.suppressed=e,i});class OR extends qM{async ready(){this._initialized||(await this.checkRoot(),this._initialized=!0)}constructor(t){super(),this.store=t,this._initialized=!1}metadata(){return{...super.metadata(),name:this.store.name}}async empty(){await this.store.clear(),await this.checkRoot()}emptySync(){this.store.clearSync(),this.checkRootSync()}async rename(t,e){const n={stack:[],error:void 0,hasError:!1};try{const i=fR(n,this.store.transaction(),!0),s=RO(t),o=RO(e),r=await this.findInode(i,s.dir,"rename"),a=yO(await this.get(i,r.data,s.dir,"rename"));if(!a[s.base])throw IO.With("ENOENT",t,"rename");const l=a[s.base];if(delete a[s.base],0===(o.dir+"/").indexOf(t+"/"))throw new IO(cO.EBUSY,s.dir);const u=o.dir==s.dir,p=u?r:await this.findInode(i,o.dir,"rename"),_=u?a:yO(await this.get(i,p.data,o.dir,"rename"));if(_[o.base]){const t=new ER(await this.get(i,_[o.base],e,"rename"));if(!t.toStats().isFile())throw IO.With("EPERM",e,"rename");await i.remove(t.data),await i.remove(_[o.base])}_[o.base]=l,await i.set(r.data,DO(a)),await i.set(p.data,DO(_)),await i.commit()}catch(t){n.error=t,n.hasError=!0}finally{const t=gR(n);t&&await t}}renameSync(t,e){const n={stack:[],error:void 0,hasError:!1};try{const i=fR(n,this.store.transaction(),!1),s=RO(t),o=RO(e),r=this.findInodeSync(i,s.dir,"rename"),a=yO(this.getSync(i,r.data,s.dir,"rename"));if(!a[s.base])throw IO.With("ENOENT",t,"rename");const l=a[s.base];if(delete a[s.base],0==(o.dir+"/").indexOf(t+"/"))throw new IO(cO.EBUSY,s.dir);const u=o.dir===s.dir,p=u?r:this.findInodeSync(i,o.dir,"rename"),_=u?a:yO(this.getSync(i,p.data,o.dir,"rename"));if(_[o.base]){const t=new ER(this.getSync(i,_[o.base],e,"rename"));if(!t.toStats().isFile())throw IO.With("EPERM",e,"rename");i.removeSync(t.data),i.removeSync(_[o.base])}_[o.base]=l,i.setSync(r.data,DO(a)),i.setSync(p.data,DO(_)),i.commitSync()}catch(t){n.error=t,n.hasError=!0}finally{gR(n)}}async stat(t){const e={stack:[],error:void 0,hasError:!1};try{const n=fR(e,this.store.transaction(),!0);return(await this.findInode(n,t,"stat")).toStats()}catch(t){e.error=t,e.hasError=!0}finally{const t=gR(e);t&&await t}}statSync(t){const e={stack:[],error:void 0,hasError:!1};try{const n=fR(e,this.store.transaction(),!1);return this.findInodeSync(n,t,"stat").toStats()}catch(t){e.error=t,e.hasError=!0}finally{gR(e)}}async createFile(t,e,n){const i=await this.commitNew(t,uM,n,new Uint8Array,"createFile");return new jM(this,t,e,i.toStats(),new Uint8Array)}createFileSync(t,e,n){const i=this.commitNewSync(t,uM,n,new Uint8Array,"createFile");return new jM(this,t,e,i.toStats(),new Uint8Array)}async openFile(t,e){const n={stack:[],error:void 0,hasError:!1};try{const i=fR(n,this.store.transaction(),!0),s=await this.findInode(i,t,"openFile"),o=await this.get(i,s.data,t,"openFile");return new jM(this,t,e,s.toStats(),o)}catch(t){n.error=t,n.hasError=!0}finally{const t=gR(n);t&&await t}}openFileSync(t,e){const n={stack:[],error:void 0,hasError:!1};try{const i=fR(n,this.store.transaction(),!1),s=this.findInodeSync(i,t,"openFile"),o=this.getSync(i,s.data,t,"openFile");return new jM(this,t,e,s.toStats(),o)}catch(t){n.error=t,n.hasError=!0}finally{gR(n)}}async unlink(t){return this.remove(t,!1,"unlink")}unlinkSync(t){this.removeSync(t,!1,"unlink")}async rmdir(t){if((await this.readdir(t)).length)throw IO.With("ENOTEMPTY",t,"rmdir");await this.remove(t,!0,"rmdir")}rmdirSync(t){if(this.readdirSync(t).length)throw IO.With("ENOTEMPTY",t,"rmdir");this.removeSync(t,!0,"rmdir")}async mkdir(t,e){await this.commitNew(t,_M,e,SO("{}"),"mkdir")}mkdirSync(t,e){this.commitNewSync(t,_M,e,SO("{}"),"mkdir")}async readdir(t){const e={stack:[],error:void 0,hasError:!1};try{const n=fR(e,this.store.transaction(),!0),i=await this.findInode(n,t,"readdir");return Object.keys(yO(await this.get(n,i.data,t,"readdir")))}catch(t){e.error=t,e.hasError=!0}finally{const t=gR(e);t&&await t}}readdirSync(t){const e={stack:[],error:void 0,hasError:!1};try{const n=fR(e,this.store.transaction(),!1),i=this.findInodeSync(n,t,"readdir");return Object.keys(yO(this.getSync(n,i.data,t,"readdir")))}catch(t){e.error=t,e.hasError=!0}finally{gR(e)}}async sync(t,e,n){const i={stack:[],error:void 0,hasError:!1};try{const s=fR(i,this.store.transaction(),!0),o=await this._findInode(s,t,"sync"),r=new ER(await this.get(s,o,t,"sync")),a=r.update(n);await s.set(r.data,e),a&&await s.set(o,dR(r)),await s.commit()}catch(t){i.error=t,i.hasError=!0}finally{const t=gR(i);t&&await t}}syncSync(t,e,n){const i={stack:[],error:void 0,hasError:!1};try{const s=fR(i,this.store.transaction(),!1),o=this._findInodeSync(s,t,"sync"),r=new ER(this.getSync(s,o,t,"sync")),a=r.update(n);s.setSync(r.data,e),a&&s.setSync(o,dR(r)),s.commitSync()}catch(t){i.error=t,i.hasError=!0}finally{gR(i)}}async link(t,e){const n={stack:[],error:void 0,hasError:!1};try{const i=fR(n,this.store.transaction(),!0),s=OO(e),o=await this.findInode(i,s,"link"),r=yO(await this.get(i,o.data,s,"link")),a=await this._findInode(i,t,"link"),l=new ER(await this.get(i,a,t,"link"));l.nlink++,r[MO(e)]=a,i.setSync(a,dR(l)),i.setSync(o.data,DO(r)),i.commitSync()}catch(t){n.error=t,n.hasError=!0}finally{const t=gR(n);t&&await t}}linkSync(t,e){const n={stack:[],error:void 0,hasError:!1};try{const i=fR(n,this.store.transaction(),!1),s=OO(e),o=this.findInodeSync(i,s,"link"),r=yO(this.getSync(i,o.data,s,"link")),a=this._findInodeSync(i,t,"link"),l=new ER(this.getSync(i,a,t,"link"));l.nlink++,r[MO(e)]=a,i.setSync(a,dR(l)),i.setSync(o.data,DO(r)),i.commitSync()}catch(t){n.error=t,n.hasError=!0}finally{gR(n)}}async checkRoot(){const t={stack:[],error:void 0,hasError:!1};try{const e=fR(t,this.store.transaction(),!0);if(await e.get(0n))return;const n=new ER;n.ino=0n,n.mode=511|_M,await e.set(n.data,SO("{}")),await e.set(0n,dR(n)),await e.commit()}catch(e){t.error=e,t.hasError=!0}finally{const e=gR(t);e&&await e}}checkRootSync(){const t={stack:[],error:void 0,hasError:!1};try{const e=fR(t,this.store.transaction(),!1);if(e.getSync(0n))return;const n=new ER;n.ino=0n,n.mode=511|_M,e.setSync(n.data,SO("{}")),e.setSync(0n,dR(n)),e.commitSync()}catch(e){t.error=e,t.hasError=!0}finally{gR(t)}}async _findInode(t,e,n,i=new Set){if(i.has(e))throw new IO(cO.EIO,"Infinite loop detected while finding inode",e);if(i.add(e),"/"==e)return 0n;const{dir:s,base:o}=RO(e),r="/"==s?new ER(await this.get(t,0n,s,n)):await this.findInode(t,s,n,i),a=yO(await this.get(t,r.data,s,n));if(!(o in a))throw IO.With("ENOENT",fO(s,o),n);return a[o]}_findInodeSync(t,e,n,i=new Set){if(i.has(e))throw new IO(cO.EIO,"Infinite loop detected while finding inode",e);if(i.add(e),"/"==e)return 0n;const{dir:s,base:o}=RO(e),r="/"==s?new ER(this.getSync(t,0n,s,n)):this.findInodeSync(t,s,n,i),a=yO(this.getSync(t,r.data,s,n));if(!(o in a))throw IO.With("ENOENT",fO(s,o),n);return a[o]}async findInode(t,e,n,i=new Set){const s=await this._findInode(t,e,n,i);return new ER(await this.get(t,s,e,n))}findInodeSync(t,e,n,i=new Set){const s=this._findInodeSync(t,e,n,i);return new ER(this.getSync(t,s,e,n))}async get(t,e,n,i){const s=await t.get(e);if(!s)throw IO.With("ENOENT",n,i);return s}getSync(t,e,n,i){const s=t.getSync(e);if(!s)throw IO.With("ENOENT",n,i);return s}async allocNew(t,e,n){for(let e=0;e<5;e++){const e=FO();if(!await t.get(e))return e}throw new IO(cO.ENOSPC,"No IDs available",e,n)}allocNewSync(t,e,n){for(let e=0;e<5;e++){const e=FO();if(!t.getSync(e))return e}throw new IO(cO.ENOSPC,"No IDs available",e,n)}async commitNew(t,e,n,i,s){const o={stack:[],error:void 0,hasError:!1};try{if("/"==t)throw IO.With("EEXIST",t,s);const r=fR(o,this.store.transaction(),!0),{dir:a,base:l}=RO(t),u=await this.findInode(r,a,s),p=yO(await this.get(r,u.data,a,s));if(p[l])throw IO.With("EEXIST",t,s);const _=new ER;return _.ino=await this.allocNew(r,t,s),_.data=await this.allocNew(r,t,s),_.mode=n|e,_.uid=u.mode&cM?u.uid:PO.uid,_.gid=u.mode&TM?u.gid:PO.gid,_.size=i.length,await r.set(_.ino,dR(_)),await r.set(_.data,i),p[l]=_.ino,await r.set(u.data,DO(p)),await r.commit(),_}catch(t){o.error=t,o.hasError=!0}finally{const t=gR(o);t&&await t}}commitNewSync(t,e,n,i,s){const o={stack:[],error:void 0,hasError:!1};try{if("/"==t)throw IO.With("EEXIST",t,s);const r=fR(o,this.store.transaction(),!1),{dir:a,base:l}=RO(t),u=this.findInodeSync(r,a,s),p=yO(this.getSync(r,u.data,a,s));if(p[l])throw IO.With("EEXIST",t,s);const _=new ER;return _.ino=this.allocNewSync(r,t,s),_.data=this.allocNewSync(r,t,s),_.size=i.length,_.mode=n|e,_.uid=u.mode&cM?u.uid:PO.uid,_.gid=u.mode&TM?u.gid:PO.gid,r.setSync(_.ino,dR(_)),r.setSync(_.data,i),p[l]=_.ino,r.setSync(u.data,DO(p)),r.commitSync(),_}catch(t){o.error=t,o.hasError=!0}finally{gR(o)}}async remove(t,e,n){const i={stack:[],error:void 0,hasError:!1};try{const s=fR(i,this.store.transaction(),!0),{dir:o,base:r}=RO(t),a=await this.findInode(s,o,n),l=yO(await this.get(s,a.data,o,n));if(!l[r])throw IO.With("ENOENT",t,"remove");const u=l[r],p=new ER(await this.get(s,u,t,n));if(delete l[r],!e&&p.toStats().isDirectory())throw IO.With("EISDIR",t,"remove");await s.set(a.data,DO(l)),--p.nlink<1&&(await s.remove(p.data),await s.remove(u)),await s.commit()}catch(t){i.error=t,i.hasError=!0}finally{const t=gR(i);t&&await t}}removeSync(t,e,n){const i={stack:[],error:void 0,hasError:!1};try{const s=fR(i,this.store.transaction(),!1),{dir:o,base:r}=RO(t),a=this.findInodeSync(s,o,n),l=yO(this.getSync(s,a.data,o,n)),u=l[r];if(!u)throw IO.With("ENOENT",t,"remove");const p=new ER(this.getSync(s,u,t,n));if(delete l[r],!e&&p.toStats().isDirectory())throw IO.With("EISDIR",t,"remove");s.setSync(a.data,DO(l)),--p.nlink<1&&(s.removeSync(p.data),s.removeSync(u)),s.commitSync()}catch(t){i.error=t,i.hasError=!0}finally{gR(i)}}}class MR{constructor(t){this.store=t,this.done=!1}async[Symbol.asyncDispose](){this.done||await this.abort()}[Symbol.dispose](){this.done||this.abortSync()}}class RR extends MR{async keys(){return this.keysSync()}async get(t){return this.getSync(t)}async set(t,e){return this.setSync(t,e)}async remove(t){return this.removeSync(t)}async commit(){return this.commitSync()}async abort(){return this.abortSync()}}class AR extends RR{constructor(){super(...arguments),this.originalData=new Map,this.modifiedKeys=new Set}keysSync(){return this.store.keys()}getSync(t){const e=this.store.get(t);return this.stashOldValue(t,e),e}setSync(t,e){return this.markModified(t),this.store.set(t,e)}removeSync(t){this.markModified(t),this.store.delete(t)}commitSync(){this.done=!0}abortSync(){if(this.done){for(const t of this.modifiedKeys){const e=this.originalData.get(t);e?this.store.set(t,e):this.store.delete(t)}this.done=!0}}stashOldValue(t,e){this.originalData.has(t)||this.originalData.set(t,e)}markModified(t){this.modifiedKeys.add(t),this.originalData.has(t)||this.originalData.set(t,this.store.get(t))}}class SR extends Map{constructor(t="tmp"){super(),this.name=t}async sync(){}clearSync(){this.clear()}transaction(){return new AR(this)}}const CR={name:"InMemory",isAvailable:()=>!0,options:{name:{type:"string",required:!1}},create({name:t}){const e=new OR(new SR(t));return e.checkRootSync(),e}};"function"==typeof SuppressedError&&SuppressedError;class LR{constructor(){this.isEnabled=!1,this.sync=new Map,this.async=new Map}has(t){return this.isEnabled&&this.sync.has(t)}get(t){if(this.isEnabled)return this.sync.get(t)}set(t,e){this.isEnabled&&(this.sync.set(t,e),this.async.set(t,Promise.resolve(e)))}hasAsync(t){return this.isEnabled&&this.async.has(t)}getAsync(t){if(this.isEnabled)return this.async.get(t)}setAsync(t,e){this.isEnabled&&(this.async.set(t,e),e.then((e=>this.sync.set(t,e))))}clear(){this.isEnabled&&(this.sync.clear(),this.async.clear())}}const yR=new LR,DR=new LR;var NR=__webpack_require__(8287);function bR(t,e){return Object.fromEntries(Object.entries(t).map((([t,n])=>[t,"function"==typeof n?n.bind(e):n])))}const vR=new Map;let wR=100;function FR(t){const e=wR++;return vR.set(e,t),e}function PR(t){if(!vR.has(t))throw new IO(cO.EBADF);return vR.get(t)}const kR=new Map;function VR(t,e){if("/"!==t[0]&&(t="/"+t),t=fO(t),kR.has(t))throw new IO(cO.EINVAL,"Mount point "+t+" is already in use.");kR.set(t,e),DR.clear()}function YR(t){if("/"!==t[0]&&(t="/"+t),t=fO(t),!kR.has(t))throw new IO(cO.EINVAL,"Mount point "+t+" is already unmounted.");kR.delete(t),DR.clear()}function xR(t,e){const n=e?.root||"/";t=vO(gO(n,t));const i=[...kR].sort(((t,e)=>t[0].length>e[0].length?-1:1));for(const[e,s]of i)if(e.length<=t.length&&t.startsWith(e))return""===(t=t.slice(e.length>1?e.length:0))&&(t=n),{fs:s,path:t,mountPoint:e,root:n};throw new IO(cO.EIO,"No file system")}async function UR(){await Promise.all([...kR.values()].map((t=>t.ready())))}function BR(t,e){for(const[n,i]of Object.entries(e))t=t?.replaceAll(n,i);return t}function XR(t,e){"string"==typeof t.stack&&(t.stack=BR(t.stack,e));try{t.message=BR(t.message,e)}catch{}return t.path&&(t.path=BR(t.path,e)),t}function GR(t){"/"in t&&YR("/");for(const[e,n]of Object.entries(t))VR(e,n)}function HR(t,e){const n=t.metadata(),i=n.blockSize||4096;return{type:(e?BigInt:Number)(n.type),bsize:(e?BigInt:Number)(i),ffree:(e?BigInt:Number)(n.freeNodes||NM),files:(e?BigInt:Number)(n.totalNodes||NM),bavail:(e?BigInt:Number)(n.freeSpace/i),bfree:(e?BigInt:Number)(n.freeSpace/i),blocks:(e?BigInt:Number)(n.totalSpace/i)}}function WR(t,e){const n=this?.credentials;if(n?.uid&&n?.gid&&n?.euid&&n?.egid)throw new IO(cO.EPERM,"Can not chroot() as non-root user");return e&&this?(this.root+=t,this):function(t,e=structuredClone(PO)){const n={root:t,credentials:kO(e)},i=bR(st,n),s=bR(it,n);return{...n,...i,promises:s}}(gO(this?.root||"/",t),n)}VR("/",CR.create({name:"root"}));class KR extends $M{off(t,e,n,i){return super.off(t,e,n,i)}removeListener(t,e,n,i){return super.removeListener(t,e,n,i)}constructor(t){super(),this.path=t}setMaxListeners(){throw IO.With("ENOSYS",this.path,"Watcher.setMaxListeners")}getMaxListeners(){throw IO.With("ENOSYS",this.path,"Watcher.getMaxListeners")}prependListener(){throw IO.With("ENOSYS",this.path,"Watcher.prependListener")}prependOnceListener(){throw IO.With("ENOSYS",this.path,"Watcher.prependOnceListener")}rawListeners(){throw IO.With("ENOSYS",this.path,"Watcher.rawListeners")}ref(){return this}unref(){return this}}class jR extends KR{constructor(t,e){super(t),this.options=e,function(t,e){const n=vO(t);$R.has(n)||$R.set(n,new Set);$R.get(n).add(e)}(t.toString(),this)}close(){super.emit("close"),function(t,e){const n=vO(t);$R.has(n)&&($R.get(n).delete(e),0===$R.get(n).size&&$R.delete(n))}(this.path.toString(),this)}[Symbol.dispose](){this.close()}}class qR extends KR{constructor(t,e){super(t),this.options=e,this.start()}onInterval(){try{const n=eA(this.path);t=this.previous,e=n,(t.size!=e.size||+t.atime!=+e.atime||+t.mtime!=+e.mtime||+t.ctime!=+e.ctime||t.mode!=e.mode)&&(this.emit("change",n,this.previous),this.previous=n)}catch(t){this.emit("error",t)}var t,e}start(){const t=this.options.interval||5e3;try{this.previous=eA(this.path)}catch(t){return void this.emit("error",t)}this.intervalId=setInterval(this.onInterval.bind(this),t),this.options.persistent||"object"!=typeof this.intervalId||this.intervalId.unref()}stop(){this.intervalId&&(clearInterval(this.intervalId),this.intervalId=void 0),this.removeAllListeners()}}const $R=new Map;function zR(t,e){if(e=vO(e),$R.has(e))for(const n of $R.get(e))n.emit("change",t,MO(e));let n,i=e;for(;i!==n;)if(n=i,i=OO(i),$R.has(i))for(const n of $R.get(i))n.emit("change",t,e.slice(i.length+("/"==i?0:1)))}var QR=function(t,e,n){if(null!=e){if("object"!=typeof e&&"function"!=typeof e)throw new TypeError("Object expected.");var i,s;if(n){if(!Symbol.asyncDispose)throw new TypeError("Symbol.asyncDispose is not defined.");i=e[Symbol.asyncDispose]}if(void 0===i){if(!Symbol.dispose)throw new TypeError("Symbol.dispose is not defined.");i=e[Symbol.dispose],n&&(s=i)}if("function"!=typeof i)throw new TypeError("Object not disposable.");s&&(i=function(){try{s.call(this)}catch(t){return Promise.reject(t)}}),t.stack.push({value:e,dispose:i,async:n})}else n&&t.stack.push({async:!0});return e},JR=function(t){return function(e){function n(n){e.error=e.hasError?new t(n,e.error,"An error was suppressed during disposal."):n,e.hasError=!0}return function t(){for(;e.stack.length;){var i=e.stack.pop();try{var s=i.dispose&&i.dispose.call(i.value);if(i.async)return Promise.resolve(s).then(t,(function(e){return n(e),t()}))}catch(t){n(t)}}if(e.hasError)throw e.error}()}}("function"==typeof SuppressedError?SuppressedError:function(t,e,n){var i=new Error(n);return i.name="SuppressedError",i.error=t,i.suppressed=e,i});function ZR(t,e){t=vO(t),e=vO(e);const n=xR(t,this),i=xR(e,this);if(bM.checkAccess&&!eA.call(this,OO(t)).hasAccess(xO,this))throw IO.With("EACCES",t,"rename");try{if(n===i)return n.fs.renameSync(n.path,i.path),zR("rename",t.toString()),void zR("change",e.toString());pA.call(this,e,uA(t)),sA.call(this,t),zR("rename",t.toString())}catch(s){throw XR(s,{[n.path]:t,[i.path]:e})}}function tA(t){t=vO(t);try{const{fs:e,path:n}=xR(FA.call(this,t),this);return e.existsSync(n)}catch(t){if(t.errno==cO.ENOENT)return!1;throw t}}function eA(t,e){t=vO(t);const{fs:n,path:i}=xR(FA.call(this,t),this);try{const t=n.statSync(i);if(bM.checkAccess&&!t.hasAccess(YO,this))throw IO.With("EACCES",i,"stat");return e?.bigint?new PM(t):t}catch(e){throw XR(e,{[i]:t})}}function nA(t,e){t=vO(t);const{fs:n,path:i}=xR(t,this);try{const t=n.statSync(i);return e?.bigint?new PM(t):t}catch(e){throw XR(e,{[i]:t})}}function iA(t,e=0){const n={stack:[],error:void 0,hasError:!1};try{const i=QR(n,oA.call(this,t,"r+"),!1);if(e||(e=0),e<0)throw new IO(cO.EINVAL);i.truncateSync(e)}catch(t){n.error=t,n.hasError=!0}finally{JR(n)}}function sA(t){t=vO(t);const{fs:e,path:n}=xR(t,this);try{if(bM.checkAccess&&!(yR.get(t)||e.statSync(n)).hasAccess(xO,this))throw IO.With("EACCES",n,"unlink");e.unlinkSync(n),zR("rename",t.toString())}catch(e){throw XR(e,{[n]:t})}}function oA(t,e,n,i=!0){t=vO(t);const s=NO(n,420),o=xM(e);t=i?FA.call(this,t):t;const{fs:r,path:a}=xR(t,this);let l;try{l=r.statSync(a)}catch{}if(!l){if(!XM(o)&&!HM(o)||"r+"==o)throw IO.With("ENOENT",t,"_open");const e=r.statSync(OO(a));if(bM.checkAccess&&!e.hasAccess(xO,this))throw IO.With("EACCES",OO(t),"_open");if(!e.isDirectory())throw IO.With("ENOTDIR",OO(t),"_open");return r.createFileSync(a,o,s)}if(bM.checkAccess&&(!l.hasAccess(s,this)||!l.hasAccess(UM(o),this)))throw IO.With("EACCES",t,"_open");if(WM(o))throw IO.With("EEXIST",t,"_open");const u=r.openFileSync(a,o);return GM(o)&&u.truncateSync(0),u}function rA(t,e,n=VO){return FR(oA.call(this,t,e,n,!0))}function aA(t,e,n){return FR(oA.call(this,t,e,n,!1))}function lA(t,e,n){const i={stack:[],error:void 0,hasError:!1};try{const s=QR(i,oA.call(this,t,e,420,n),!1),o=s.statSync(),r=new Uint8Array(o.size);return s.readSync(r,0,o.size,0),r}catch(t){i.error=t,i.hasError=!0}finally{JR(i)}}function uA(t,e={}){const n=wO(e,null,"r",420);if(!BM(xM(n.flag)))throw new IO(cO.EINVAL,"Flag passed to readFile must allow for reading.");const i=NR.Buffer.from(lA.call(this,"number"==typeof t?PR(t).path:t.toString(),n.flag,!0));return n.encoding?i.toString(n.encoding):i}function pA(t,e,n={}){const i={stack:[],error:void 0,hasError:!1};try{const s=wO(n,"utf8","w+",420),o=xM(s.flag);if(!XM(o))throw new IO(cO.EINVAL,"Flag passed to writeFile must allow for writing.");if("string"!=typeof e&&!s.encoding)throw new IO(cO.EINVAL,"Encoding not specified");const r="string"==typeof e?NR.Buffer.from(e,s.encoding):new Uint8Array(e.buffer,e.byteOffset,e.byteLength);if(!r)throw new IO(cO.EINVAL,"Data not specified");QR(i,oA.call(this,"number"==typeof t?PR(t).path:t.toString(),o,s.mode,!0),!1).writeSync(r,0,r.byteLength,0),zR("change",t.toString())}catch(t){i.error=t,i.hasError=!0}finally{JR(i)}}function _A(t,e,n={}){const i={stack:[],error:void 0,hasError:!1};try{const s=wO(n,"utf8","a+",420),o=xM(s.flag);if(!HM(o))throw new IO(cO.EINVAL,"Flag passed to appendFile must allow for appending.");if("string"!=typeof e&&!s.encoding)throw new IO(cO.EINVAL,"Encoding not specified");const r="string"==typeof e?NR.Buffer.from(e,s.encoding):new Uint8Array(e.buffer,e.byteOffset,e.byteLength);QR(i,oA.call(this,"number"==typeof t?PR(t).path:t.toString(),o,s.mode,!0),!1).writeSync(r,0,r.byteLength)}catch(t){i.error=t,i.hasError=!0}finally{JR(i)}}function dA(t,e){const n=PR(t).statSync();return e?.bigint?new PM(n):n}function hA(t){PR(t).closeSync(),vR.delete(t)}function cA(t,e=0){if(e||(e=0),e<0)throw new IO(cO.EINVAL);PR(t).truncateSync(e)}function TA(t){PR(t).syncSync()}function IA(t){PR(t).datasyncSync()}function mA(t,e,n,i,s){let o,r,a,l;if("string"==typeof e){l="number"==typeof n?n:null;const t="string"==typeof i?i:"utf8";r=0,o=NR.Buffer.from(e,t),a=o.byteLength}else o=new Uint8Array(e.buffer,e.byteOffset,e.byteLength),r=n,a=i,l="number"==typeof s?s:null;const u=PR(t);l??(l=u.position);const p=u.writeSync(o,r,a,l);return zR("change",u.path),p}function EA(t,e,n,i,s){const o=PR(t),r="object"==typeof n?n.offset:n;return"object"==typeof n&&(i=n.length,s=n.position),s=Number(s),isNaN(s)&&(s=o.position),o.readSync(e,r,i,s)}function fA(t,e,n){PR(t).chownSync(e,n)}function gA(t,e){const n=NO(e,-1);if(n<0)throw new IO(cO.EINVAL,"Invalid mode.");PR(t).chmodSync(n)}function OA(t,e,n){PR(t).utimesSync(bO(e),bO(n))}function MA(t){t=vO(t);const{fs:e,path:n}=xR(FA.call(this,t),this);try{const i=yR.get(t)||e.statSync(n);if(!i.isDirectory())throw IO.With("ENOTDIR",n,"rmdir");if(bM.checkAccess&&!i.hasAccess(xO,this))throw IO.With("EACCES",n,"rmdir");e.rmdirSync(n),zR("rename",t.toString())}catch(e){throw XR(e,{[n]:t})}}function RA(t,e){e="object"==typeof e?e:{mode:e};const n=NO(e?.mode,511);t=FA.call(this,t);const{fs:i,path:s,root:o}=xR(t,this),r={[s]:t};try{if(!e?.recursive){if(bM.checkAccess&&!i.statSync(OO(s)).hasAccess(xO,this))throw IO.With("EACCES",OO(s),"mkdir");return i.mkdirSync(s,n)}const a=[];for(let e=s,n=t;!i.existsSync(e);e=OO(e),n=OO(n))a.unshift(e),r[e]=n;for(const t of a){if(bM.checkAccess&&!i.statSync(OO(t)).hasAccess(xO,this))throw IO.With("EACCES",OO(t),"mkdir");i.mkdirSync(t,n),zR("rename",t)}return 1==o.length?a[0]:a[0]?.slice(o.length)}catch(t){throw XR(t,r)}}function AA(t,e){e="object"==typeof e?e:{encoding:e},t=vO(t);const{fs:n,path:i}=xR(FA.call(this,t),this);let s;try{const e=yR.get(t)||n.statSync(i);if(yR.set(t,e),bM.checkAccess&&!e.hasAccess(YO,this))throw IO.With("EACCES",i,"readdir");if(!e.isDirectory())throw IO.With("ENOTDIR",i,"readdir");s=n.readdirSync(i)}catch(e){throw XR(e,{[i]:t})}const o=[];for(const r of s){const s=yR.get(gO(t,r))||n.statSync(gO(i,r));if(yR.set(gO(t,r),s),e?.withFileTypes?o.push(new HA(r,s)):"buffer"==e?.encoding?o.push(NR.Buffer.from(r)):o.push(r),s.isDirectory()&&e?.recursive)for(const n of AA.call(this,gO(t,r),{...e,_isIndirect:!0}))n instanceof HA?(n.path=gO(r,n.path),o.push(n)):NR.Buffer.isBuffer(n)?o.push(NR.Buffer.from(gO(r,LO(n)))):o.push(gO(r,n))}return e?._isIndirect||yR.clear(),o}function SA(t,e){if(t=vO(t),bM.checkAccess&&!eA(OO(t)).hasAccess(YO,this))throw IO.With("EACCES",OO(t),"link");if(e=vO(e),bM.checkAccess&&!eA(OO(e)).hasAccess(xO,this))throw IO.With("EACCES",OO(e),"link");const{fs:n,path:i}=xR(t,this),s=xR(e,this);if(n!=s.fs)throw IO.With("EXDEV",e,"link");try{if(bM.checkAccess&&!n.statSync(i).hasAccess(YO,this))throw IO.With("EACCES",i,"link");return n.linkSync(i,e)}catch(n){throw XR(n,{[i]:t,[s.path]:e})}}function CA(t,e,n="file"){if(!["file","dir","junction"].includes(n))throw new IO(cO.EINVAL,"Invalid type: "+n);if(tA.call(this,e))throw IO.With("EEXIST",e.toString(),"symlink");pA.call(this,e,t.toString());oA.call(this,e,"r+",420,!1).chmodSync(lM)}function LA(t,e){const n=NR.Buffer.from(lA.call(this,t.toString(),"r",!1)),i="object"==typeof e?e?.encoding:e;return"buffer"==i?n:n.toString(i)}function yA(t,e,n){const i=rA.call(this,t,"r+");fA(i,e,n),hA(i)}function DA(t,e,n){const i=aA.call(this,t,"r+");fA(i,e,n),hA(i)}function NA(t,e){const n=rA.call(this,t,"r+");gA(n,e),hA(n)}function bA(t,e){const n=aA.call(this,t,"r+");gA(n,e),hA(n)}function vA(t,e,n){const i=rA.call(this,t,"r+");OA(i,e,n),hA(i)}function wA(t,e,n){const i=aA.call(this,t,"r+");OA(i,e,n),hA(i)}function FA(t,e){t=vO(t);const n=(this?.root||"")+t;if(DR.has(n))return DR.get(n);const{base:i,dir:s}=RO(t),o="/"==s?"/":DR.get((this?.root||"")+s)||FA.call(this,s),r=gO(o,i),{fs:a,path:l}=xR(r,this);try{const i=yR.get(r)||a.statSync(l);if(yR.set(r,i),!i.isSymbolicLink())return DR.set(t,r),r;const s=fO(o,LA.call(this,r,e).toString()),u=DR.get((this?.root||"")+s)||FA.call(this,s);return DR.set(n,u),u}catch(e){if("ENOENT"==e.code)return t;throw XR(e,{[l]:r})}}function PA(t,e=384){if(bM.checkAccess&&!eA.call(this,t).hasAccess(e,this))throw new IO(cO.EACCES)}function kA(t,e){let n;t=vO(t);try{n=yR.get(t)||nA.bind(this)(t)}catch(t){if("ENOENT"!=t.code||!e?.force)throw t}if(n){switch(yR.set(t,n),n.mode&rM){case _M:if(e?.recursive)for(const n of AA.call(this,t,{_isIndirect:!0}))kA.call(this,gO(t,n),{...e,_isIndirect:!0});MA.call(this,t);break;case uM:case lM:case pM:case dM:sA.call(this,t);break;default:throw yR.clear(),new IO(cO.EPERM,"File type not supported",t,"rm")}e?._isIndirect||yR.clear()}}function VA(t,e){const n="object"==typeof e?e?.encoding:e||"utf8",i="/tmp/"+`${t}${Date.now()}-${Math.random().toString(36).slice(2)}`;return RA.call(this,i),"buffer"==n?NR.Buffer.from(i):i}function YA(t,e,n){if(t=vO(t),e=vO(e),n&&n&BO&&tA(e))throw new IO(cO.EEXIST,"Destination file already exists.",e,"copyFile");pA.call(this,e,uA(t)),zR("rename",e.toString())}function xA(t,e,n){const i=PR(t);let s=0;for(const t of e)s+=i.readSync(t,0,t.byteLength,n+s);return s}function UA(t,e,n){const i=PR(t);let s=0;for(const t of e)s+=i.writeSync(new Uint8Array(t.buffer),0,t.byteLength,n+s);return s}function BA(t,e){return t=vO(t),new WA(t,this)}function XA(t,e,n){t=vO(t),e=vO(e);const i=nA.call(this,t);if(n?.errorOnExist&&tA.call(this,e))throw new IO(cO.EEXIST,"Destination file or directory already exists.",e,"cp");switch(i.mode&rM){case _M:if(!n?.recursive)throw new IO(cO.EISDIR,t+" is a directory (not copied)",t,"cp");RA.call(this,e,{recursive:!0});for(const i of AA.call(this,t,{withFileTypes:!0}))n.filter&&!n.filter(gO(t,i.name),gO(e,i.name))||XA.call(this,gO(t,i.name),gO(e,i.name),n);break;case uM:case lM:YA.call(this,t,e);break;default:throw new IO(cO.EPERM,"File type not supported",t,"rm")}n?.preserveTimestamps&&vA.call(this,e,i.atime,i.mtime)}function GA(t,e){t=vO(t);const{fs:n}=xR(t,this);return HR(n,e?.bigint)}class HA{get name(){return MO(this.path)}constructor(t,e){this.path=t,this.stats=e}get parentPath(){return this.path}isFile(){return this.stats.isFile()}isDirectory(){return this.stats.isDirectory()}isBlockDevice(){return this.stats.isBlockDevice()}isCharacterDevice(){return this.stats.isCharacterDevice()}isSymbolicLink(){return this.stats.isSymbolicLink()}isFIFO(){return this.stats.isFIFO()}isSocket(){return this.stats.isSocket()}}class WA{checkClosed(){if(this.closed)throw new IO(cO.EBADF,"Can not use closed Dir")}constructor(t,e){this.path=t,this.context=e,this.closed=!1}close(t){if(this.closed=!0,!t)return Promise.resolve();t()}closeSync(){this.closed=!0}async _read(){return this.checkClosed(),this._entries??(this._entries=await _S.call(this.context,this.path,{withFileTypes:!0})),this._entries.length?this._entries.shift()??null:null}read(t){if(!t)return this._read();this._read().then((e=>t(void 0,e)))}readSync(){return this.checkClosed(),this._entries??(this._entries=AA.call(this.context,this.path,{withFileTypes:!0})),this._entries.length?this._entries.shift()??null:null}async next(){const t=await this._read();return t?{done:!1,value:t}:(await this.close(),{done:!0,value:void 0})}[Symbol.asyncIterator](){return this}}var KA=__webpack_require__(6248);class jA extends KA.Readable{close(t=()=>null){try{super.destroy(),super.emit("close"),t()}catch(e){t(new IO(cO.EIO,e.toString()))}}}class qA extends KA.Writable{close(t=()=>null){try{super.destroy(),super.emit("close"),t()}catch(e){t(new IO(cO.EIO,e.toString()))}}}var $A=function(t,e,n){if(null!=e){if("object"!=typeof e&&"function"!=typeof e)throw new TypeError("Object expected.");var i,s;if(n){if(!Symbol.asyncDispose)throw new TypeError("Symbol.asyncDispose is not defined.");i=e[Symbol.asyncDispose]}if(void 0===i){if(!Symbol.dispose)throw new TypeError("Symbol.dispose is not defined.");i=e[Symbol.dispose],n&&(s=i)}if("function"!=typeof i)throw new TypeError("Object not disposable.");s&&(i=function(){try{s.call(this)}catch(t){return Promise.reject(t)}}),t.stack.push({value:e,dispose:i,async:n})}else n&&t.stack.push({async:!0});return e},zA=function(t){return function(e){function n(n){e.error=e.hasError?new t(n,e.error,"An error was suppressed during disposal."):n,e.hasError=!0}return function t(){for(;e.stack.length;){var i=e.stack.pop();try{var s=i.dispose&&i.dispose.call(i.value);if(i.async)return Promise.resolve(s).then(t,(function(e){return n(e),t()}))}catch(t){n(t)}}if(e.hasError)throw e.error}()}}("function"==typeof SuppressedError?SuppressedError:function(t,e,n){var i=new Error(n);return i.name="SuppressedError",i.error=t,i.suppressed=e,i});class QA{constructor(t,e){this.context=e;const n="number"!=typeof t;this.fd=n?FR(t):t,this.file=n?t:PR(t)}async chown(t,e){await this.file.chown(t,e),zR("change",this.file.path)}async chmod(t){const e=NO(t,-1);if(e<0)throw new IO(cO.EINVAL,"Invalid mode.");await this.file.chmod(e),zR("change",this.file.path)}datasync(){return this.file.datasync()}sync(){return this.file.sync()}async truncate(t){if(t||(t=0),t<0)throw new IO(cO.EINVAL);await this.file.truncate(t),zR("change",this.file.path)}async utimes(t,e){await this.file.utimes(bO(t),bO(e)),zR("change",this.file.path)}async appendFile(t,e={}){const n=wO(e,"utf8","a",420);if(!HM(xM(n.flag)))throw new IO(cO.EINVAL,"Flag passed to appendFile must allow for appending.");if("string"!=typeof t&&!n.encoding)throw new IO(cO.EINVAL,"Encoding not specified");const i="string"==typeof t?NR.Buffer.from(t,n.encoding):t;await this.file.write(i,0,i.length),zR("change",this.file.path)}read(t,e,n,i){return isNaN(+i)&&(i=this.file.position),this.file.read(t,e,n,i)}async readFile(t){const e=wO(t,null,"r",292);if(!BM(xM(e.flag)))throw new IO(cO.EINVAL,"Flag passed must allow for reading.");const{size:n}=await this.stat(),{buffer:i}=await this.file.read(new Uint8Array(n),0,n,0),s=NR.Buffer.from(i);return e.encoding?s.toString(e.encoding):s}readableWebStream(t={}){const e=globalThis;if(!("ReadableStream"in e))throw new IO(cO.ENOSYS,"ReadableStream is missing on globalThis");return new e.ReadableStream({start:async t=>{try{const e=65536,n=1e7;let i=0,s=0,o=NaN;for(;o>0;){const r=await this.read(new Uint8Array(e),0,e,s);if(!r.bytesRead)return void t.close();if(t.enqueue(r.buffer.slice(0,r.bytesRead)),s+=r.bytesRead,++i>=n)throw new IO(cO.EFBIG,"Too many iterations on readable stream",this.file.path,"FileHandle.readableWebStream");o=r.bytesRead}}catch(e){t.error(e)}},type:t.type})}readLines(t){throw IO.With("ENOSYS",this.file.path,"FileHandle.readLines")}[Symbol.asyncDispose](){return this.close()}async stat(t){const e=await this.file.stat();if(bM.checkAccess&&!e.hasAccess(YO,this.context))throw IO.With("EACCES",this.file.path,"stat");return t?.bigint?new PM(e):e}async write(t,e,n,i){let s,o,r;if("string"==typeof t){i="number"==typeof e?e:null;const a="string"==typeof n?n:"utf8";o=0,s=NR.Buffer.from(t,a),r=s.length}else s=new Uint8Array(t.buffer,t.byteOffset,t.byteLength),o=e,r=n,i="number"==typeof i?i:null;i??(i=this.file.position);const a=await this.file.write(s,o,r,i);return zR("change",this.file.path),{buffer:s,bytesWritten:a}}async writeFile(t,e={}){const n=wO(e,"utf8","w",420);if(!XM(xM(n.flag)))throw new IO(cO.EINVAL,"Flag passed must allow for writing.");if("string"!=typeof t&&!n.encoding)throw new IO(cO.EINVAL,"Encoding not specified");const i="string"==typeof t?NR.Buffer.from(t,n.encoding):t;await this.file.write(i,0,i.length,0),zR("change",this.file.path)}async close(){await this.file.close(),vR.delete(this.fd)}async writev(t,e){let n=0;for(const i of t)n+=(await this.write(i,0,i.length,e+n)).bytesWritten;return{bytesWritten:n,buffers:t}}async readv(t,e){let n=0;for(const i of t)n+=(await this.read(i,0,i.byteLength,e+n)).bytesRead;return{bytesRead:n,buffers:t}}createReadStream(t){const e=new jA({highWaterMark:t?.highWaterMark||65536,encoding:t.encoding,read:async t=>{try{const n=await this.read(new Uint8Array(t),0,t,this.file.position);e.push(n.bytesRead?n.buffer.slice(0,n.bytesRead):null),this.file.position+=n.bytesRead}catch(t){e.destroy(t)}}});return e.path=this.file.path,e}createWriteStream(t){const e=new qA({highWaterMark:t?.highWaterMark,encoding:t?.encoding,write:async(t,e,n)=>{try{const{bytesWritten:i}=await this.write(t,null,e);n(i==t.length?null:new Error("Failed to write full chunk"))}catch(t){n(t)}}});return e.path=this.file.path,e}}async function JA(t,e){t=vO(t),e=vO(e);const n=xR(t,this),i=xR(e,this);if(bM.checkAccess&&!(await tS.call(this,OO(t))).hasAccess(xO,this))throw IO.With("EACCES",t,"rename");try{if(n.mountPoint==i.mountPoint)return await n.fs.rename(n.path,i.path),zR("rename",t.toString()),void zR("change",e.toString());await aS.call(this,e,await rS(t)),await iS.call(this,t),zR("rename",t.toString())}catch(s){throw XR(s,{[n.path]:t,[i.path]:e})}}async function ZA(t){try{const{fs:e,path:n}=xR(await OS.call(this,t),this);return await e.exists(n)}catch(t){if(t instanceof IO&&"ENOENT"==t.code)return!1;throw t}}async function tS(t,e){t=vO(t);const{fs:n,path:i}=xR(await OS.call(this,t),this);try{const t=await n.stat(i);if(bM.checkAccess&&!t.hasAccess(YO,this))throw IO.With("EACCES",i,"stat");return e?.bigint?new PM(t):t}catch(e){throw XR(e,{[i]:t})}}async function eS(t,e){t=vO(t);const{fs:n,path:i}=xR(t,this);try{const t=await n.stat(i);return e?.bigint?new PM(t):t}catch(e){throw XR(e,{[i]:t})}}async function nS(t,e=0){const n={stack:[],error:void 0,hasError:!1};try{const i=$A(n,await oS.call(this,t,"r+"),!0);await i.truncate(e)}catch(t){n.error=t,n.hasError=!0}finally{const t=zA(n);t&&await t}}async function iS(t){t=vO(t);const{fs:e,path:n}=xR(t,this);try{if(bM.checkAccess&&!(await(yR.getAsync(t)||e.stat(n))).hasAccess(xO,this))throw IO.With("EACCES",n,"unlink");await e.unlink(n),zR("rename",t.toString())}catch(e){throw XR(e,{[n]:t})}}async function sS(t,e,n=420,i){t=vO(t);const s=NO(n,420),o=xM(e);t=i?await OS.call(this,t):t;const{fs:r,path:a}=xR(t,this),l=await r.stat(a).catch((()=>null));if(!l){if(!XM(o)&&!HM(o)||"r+"==o)throw IO.With("ENOENT",t,"_open");const e=await r.stat(OO(a));if(bM.checkAccess&&!e.hasAccess(xO,this))throw IO.With("EACCES",OO(t),"_open");if(!e.isDirectory())throw IO.With("ENOTDIR",OO(t),"_open");return new QA(await r.createFile(a,o,s),this)}if(bM.checkAccess&&!l.hasAccess(UM(o),this))throw IO.With("EACCES",t,"_open");if(WM(o))throw IO.With("EEXIST",t,"_open");const u=new QA(await r.openFile(a,o),this);return GM(o)&&await u.truncate(0),u}async function oS(t,e="r",n=420){return await sS.call(this,t,e,n,!0)}async function rS(t,e){const n={stack:[],error:void 0,hasError:!1};try{const i=wO(e,null,"r",420),s=$A(n,"object"==typeof t&&"fd"in t?t:await oS.call(this,t,i.flag,i.mode),!0);return await s.readFile(i)}catch(t){n.error=t,n.hasError=!0}finally{const t=zA(n);t&&await t}}async function aS(t,e,n){const i={stack:[],error:void 0,hasError:!1};try{const s=wO(n,"utf8","w+",420),o=$A(i,t instanceof QA?t:await oS.call(this,t.toString(),s.flag,s.mode),!0),r=e;if("string"!=typeof r&&!(r instanceof Uint8Array))throw new IO(cO.EINVAL,"Iterables and streams not supported",o.file.path,"writeFile");await o.writeFile(r,s)}catch(t){i.error=t,i.hasError=!0}finally{const t=zA(i);t&&await t}}async function lS(t,e,n){const i={stack:[],error:void 0,hasError:!1};try{const s=wO(n,"utf8","a",420);if(!HM(xM(s.flag)))throw new IO(cO.EINVAL,"Flag passed to appendFile must allow for appending.");if("string"!=typeof e&&!s.encoding)throw new IO(cO.EINVAL,"Encoding not specified");const o="string"==typeof e?NR.Buffer.from(e,s.encoding):new Uint8Array(e.buffer,e.byteOffset,e.byteLength),r=$A(i,"object"==typeof t&&"fd"in t?t:await oS.call(this,t,s.flag,s.mode),!0);await r.appendFile(o,s)}catch(t){i.error=t,i.hasError=!0}finally{const t=zA(i);t&&await t}}async function uS(t){t=await OS.call(this,t);const{fs:e,path:n}=xR(t,this);try{const i=await(yR.getAsync(t)||e.stat(n));if(!i)throw IO.With("ENOENT",t,"rmdir");if(!i.isDirectory())throw IO.With("ENOTDIR",n,"rmdir");if(bM.checkAccess&&!i.hasAccess(xO,this))throw IO.With("EACCES",n,"rmdir");await e.rmdir(n),zR("rename",t.toString())}catch(e){throw XR(e,{[n]:t})}}async function pS(t,e){e="object"==typeof e?e:{mode:e};const n=NO(e?.mode,511);t=await OS.call(this,t);const{fs:i,path:s,root:o}=xR(t,this),r={[s]:t};try{if(!e?.recursive){if(bM.checkAccess&&!(await i.stat(OO(s))).hasAccess(xO,this))throw IO.With("EACCES",OO(s),"mkdir");return await i.mkdir(s,n),void zR("rename",t.toString())}const a=[];for(let e=s,n=t;!await i.exists(e);e=OO(e),n=OO(n))a.unshift(e),r[e]=n;for(const t of a){if(bM.checkAccess&&!(await i.stat(OO(t))).hasAccess(xO,this))throw IO.With("EACCES",OO(t),"mkdir");await i.mkdir(t,n),zR("rename",t)}return 1==o.length?a[0]:a[0]?.slice(o.length)}catch(t){throw XR(t,r)}}async function _S(t,e){e="object"==typeof e?e:{encoding:e},t=await OS.call(this,t);const n=e=>{throw XR(e,{[s]:t})},{fs:i,path:s}=xR(t,this),o=yR.getAsync(t)||i.stat(s).catch(n);yR.setAsync(t,o);const r=await o;if(!r)throw IO.With("ENOENT",t,"readdir");if(bM.checkAccess&&!r.hasAccess(YO,this))throw IO.With("EACCES",t,"readdir");if(!r.isDirectory())throw IO.With("ENOTDIR",t,"readdir");const a=await i.readdir(s).catch(n),l=[];return await Promise.all(a.map((async o=>{let r;if(e?.recursive||e?.withFileTypes){const e=yR.getAsync(gO(t,o))||i.stat(gO(s,o)).catch(n);yR.setAsync(gO(t,o),e),r=await e}if(e?.withFileTypes?l.push(new HA(o,r)):"buffer"==e?.encoding?l.push(NR.Buffer.from(o)):l.push(o),e?.recursive&&r?.isDirectory())for(const n of await _S.call(this,gO(t,o),{...e,_isIndirect:!0}))n instanceof HA?(n.path=gO(o,n.path),l.push(n)):NR.Buffer.isBuffer(n)?l.push(NR.Buffer.from(gO(o,LO(n)))):l.push(gO(o,n))}))),e?._isIndirect||yR.clear(),l}async function dS(t,e){t=vO(t),e=vO(e);const{fs:n,path:i}=xR(t,this),s=xR(e,this);if(n!=s.fs)throw IO.With("EXDEV",e,"link");try{if(bM.checkAccess&&!(await n.stat(OO(t))).hasAccess(YO,this))throw IO.With("EACCES",OO(i),"link");if(bM.checkAccess&&!(await tS.call(this,OO(e))).hasAccess(xO,this))throw IO.With("EACCES",OO(e),"link");if(bM.checkAccess&&!(await n.stat(i)).hasAccess(YO,this))throw IO.With("EACCES",i,"link");return await n.link(i,s.path)}catch(n){throw XR(n,{[s.path]:e,[i]:t})}}async function hS(t,e,n="file"){const i={stack:[],error:void 0,hasError:!1};try{if(!["file","dir","junction"].includes(n))throw new IO(cO.EINVAL,"Invalid symlink type: "+n);if(await ZA.call(this,e))throw IO.With("EEXIST",e.toString(),"symlink");const s=$A(i,await sS.call(this,e,"w+",420,!1),!0);await s.writeFile(t.toString()),await s.file.chmod(lM)}catch(t){i.error=t,i.hasError=!0}finally{const t=zA(i);t&&await t}}async function cS(t,e){const n={stack:[],error:void 0,hasError:!1};try{const i=$A(n,await sS.call(this,vO(t),"r",420,!1),!0),s=await i.readFile(),o="object"==typeof e?e?.encoding:e;return"buffer"==o?s:s.toString(o)}catch(t){n.error=t,n.hasError=!0}finally{const t=zA(n);t&&await t}}async function TS(t,e,n){const i={stack:[],error:void 0,hasError:!1};try{const s=$A(i,await oS.call(this,t,"r+"),!0);await s.chown(e,n)}catch(t){i.error=t,i.hasError=!0}finally{const t=zA(i);t&&await t}}async function IS(t,e,n){const i={stack:[],error:void 0,hasError:!1};try{const s=$A(i,await sS.call(this,t,"r+",420,!1),!0);await s.chown(e,n)}catch(t){i.error=t,i.hasError=!0}finally{const t=zA(i);t&&await t}}async function mS(t,e){const n={stack:[],error:void 0,hasError:!1};try{const i=$A(n,await oS.call(this,t,"r+"),!0);await i.chmod(e)}catch(t){n.error=t,n.hasError=!0}finally{const t=zA(n);t&&await t}}async function ES(t,e){const n={stack:[],error:void 0,hasError:!1};try{const i=$A(n,await sS.call(this,t,"r+",420,!1),!0);await i.chmod(e)}catch(t){n.error=t,n.hasError=!0}finally{const t=zA(n);t&&await t}}async function fS(t,e,n){const i={stack:[],error:void 0,hasError:!1};try{const s=$A(i,await oS.call(this,t,"r+"),!0);await s.utimes(e,n)}catch(t){i.error=t,i.hasError=!0}finally{const t=zA(i);t&&await t}}async function gS(t,e,n){const i={stack:[],error:void 0,hasError:!1};try{const s=$A(i,await sS.call(this,t,"r+",420,!1),!0);await s.utimes(new Date(e),new Date(n))}catch(t){i.error=t,i.hasError=!0}finally{const t=zA(i);t&&await t}}async function OS(t,e){t=vO(t);const n=(this?.root||"")+t;if(DR.hasAsync(n))return DR.getAsync(n);const{base:i,dir:s}=RO(t),o="/"==s?"/":await(DR.getAsync((this?.root||"")+s)||OS.call(this,s)),r=gO(o,i),{fs:a,path:l}=xR(r,this);try{const e=yR.getAsync(r)||a.stat(l);if(yR.setAsync(r,e),!(await e).isSymbolicLink())return DR.set(t,r),r;const i=fO(o,(await cS.call(this,r)).toString()),s=DR.getAsync((this?.root||"")+i)||OS.call(this,i);return DR.setAsync(n,s),await s}catch(e){if("ENOENT"==e.code)return t;throw XR(e,{[l]:r})}}function MS(t,e={}){return{[Symbol.asyncIterator](){const n=new jR(t.toString(),"string"!=typeof e?e:{encoding:e}),i=[];function s(){n.close();for(const t of i)t({value:null,done:!0});return i.length=0,Promise.resolve({value:null,done:!0})}return n.on("change",((t,e)=>{i.shift()?.({value:{eventType:t,filename:e},done:!1})})),{async next(){const{promise:t,resolve:e}=Promise.withResolvers();return i.push(e),t},return:s,throw:s}}}}async function RS(t,e=VO){if(!bM.checkAccess)return;if(!(await tS.call(this,t)).hasAccess(e,this))throw new IO(cO.EACCES)}async function AS(t,e){t=vO(t);const n=await(yR.getAsync(t)||eS.call(this,t).catch((t=>{if("ENOENT"!=t.code||!e?.force)throw t})));if(n){switch(yR.set(t,n),n.mode&rM){case _M:if(e?.recursive)for(const n of await _S.call(this,t,{_isIndirect:!0}))await AS.call(this,gO(t,n),{...e,_isIndirect:!0});await uS.call(this,t);break;case uM:case lM:case pM:case dM:await iS.call(this,t);break;default:throw yR.clear(),new IO(cO.EPERM,"File type not supported",t,"rm")}e?._isIndirect||yR.clear()}}async function SS(t,e){const n="object"==typeof e?e?.encoding:e||"utf8",i="/tmp/"+`${t}${Date.now()}-${Math.random().toString(36).slice(2)}`;return await pS.call(this,i),"buffer"==n?NR.Buffer.from(i):i}async function CS(t,e,n){if(t=vO(t),e=vO(e),n&&n&BO&&await ZA.call(this,e))throw new IO(cO.EEXIST,"Destination file already exists.",e,"copyFile");await aS.call(this,e,await rS.call(this,t)),zR("rename",e.toString())}function LS(t,e){return t=vO(t),Promise.resolve(new WA(t,this))}async function yS(t,e,n){t=vO(t),e=vO(e);const i=await eS.call(this,t);if(n?.errorOnExist&&await ZA.call(this,e))throw new IO(cO.EEXIST,"Destination file or directory already exists.",e,"cp");switch(i.mode&rM){case _M:{if(!n?.recursive)throw new IO(cO.EISDIR,t+" is a directory (not copied)",t,"cp");const[i]=await Promise.all([_S.call(this,t,{withFileTypes:!0}),pS.call(this,e,{recursive:!0})]),s=async i=>{n.filter&&!n.filter(gO(t,i.name),gO(e,i.name))||await yS.call(this,gO(t,i.name),gO(e,i.name),n)};await Promise.all(i.map(s));break}case uM:case lM:await CS.call(this,t,e);break;default:throw new IO(cO.EPERM,"File type not supported",t,"rm")}n?.preserveTimestamps&&await fS.call(this,e,i.atime,i.mtime)}async function DS(t,e){t=vO(t);const{fs:n}=xR(t,this);return Promise.resolve(HR(n,e?.bigint))}const NS=()=>{};function bS(t,e,n=NS){JA.call(this,t,e).then((()=>n())).catch(n)}function vS(t,e=NS){ZA.call(this,t).then(e).catch((()=>e(!1)))}function wS(t,e,n=NS){n="function"==typeof e?e:n,tS.call(this,t,"function"!=typeof e?e:{}).then((t=>n(void 0,t))).catch(n)}function FS(t,e,n=NS){n="function"==typeof e?e:n,eS.call(this,t,"function"!=typeof e?e:{}).then((t=>n(void 0,t))).catch(n)}function PS(t,e=0,n=NS){n="function"==typeof e?e:n;const i="number"==typeof e?e:0;nS.call(this,t,i).then((()=>n())).catch(n)}function kS(t,e=NS){iS.call(this,t).then((()=>e())).catch(e)}function VS(t,e,n,i=NS){const s=NO(n,420);i="function"==typeof n?n:i,oS.call(this,t,e,s).then((t=>i(void 0,t.fd))).catch(i)}function YS(t,e,n=NS){n="function"==typeof e?e:n,rS.call(this,t,"function"==typeof e?null:e).then((t=>n(void 0,t))).catch(n)}function xS(t,e,n,i=NS){i="function"==typeof n?n:i,aS.call(this,t,e,"function"!=typeof n?n:null).then((()=>i(void 0))).catch(i)}function US(t,e,n,i=NS){const s="function"!=typeof n?n:void 0;i="function"==typeof n?n:i,lS.call(this,t,e,s).then((()=>i())).catch(i)}function BS(t,e,n=NS){n="function"==typeof e?e:n,PR(t).stat().then((t=>n(void 0,"object"==typeof e&&e?.bigint?new PM(t):t))).catch(n)}function XS(t,e=NS){const n=PR(t).close();vR.delete(t),n.then((()=>e())).catch(e)}function GS(t,e,n=NS){const i="number"==typeof e?e:0;n="function"==typeof e?e:n;const s=PR(t);if(i<0)throw new IO(cO.EINVAL);s.truncate(i).then((()=>n())).catch(n)}function HS(t,e=NS){PR(t).sync().then((()=>e())).catch(e)}function WS(t,e=NS){PR(t).datasync().then((()=>e())).catch(e)}function KS(t,e,n,i,s,o=NS){let r,a,l,u,p;const _=new QA(t,this);if("string"==typeof e){switch(p="utf8",typeof n){case"function":o=n;break;case"number":u=n,p="string"==typeof i?i:"utf8",o="function"==typeof s?s:o;break;default:return void(o="function"==typeof i?i:"function"==typeof s?s:o)(new IO(cO.EINVAL,"Invalid arguments."))}r=NR.Buffer.from(e),a=0,l=r.length;const t=o;_.write(r,a,l,u).then((({bytesWritten:e})=>t(void 0,e,r.toString(p)))).catch(t)}else{r=NR.Buffer.from(e.buffer),a=n,l=i,u="number"==typeof s?s:null;const t="function"==typeof s?s:o;_.write(r,a,l,u).then((({bytesWritten:e})=>t(void 0,e,r))).catch(t)}}function jS(t,e,n,i,s,o=NS){new QA(t,this).read(e,n,i,s).then((({bytesRead:t,buffer:e})=>o(void 0,t,e))).catch(o)}function qS(t,e,n,i=NS){new QA(t,this).chown(e,n).then((()=>i())).catch(i)}function $S(t,e,n){new QA(t,this).chmod(e).then((()=>n())).catch(n)}function zS(t,e,n,i=NS){new QA(t,this).utimes(e,n).then((()=>i())).catch(i)}function QS(t,e=NS){uS.call(this,t).then((()=>e())).catch(e)}function JS(t,e,n=NS){pS.call(this,t,e).then((()=>n())).catch(n)}function ZS(t,e,n=NS){n="function"==typeof e?e:n;const i="function"!=typeof e?e:{};_S.call(this,t,i).then((t=>n(void 0,t))).catch(n)}function tC(t,e,n=NS){dS.call(this,t,e).then((()=>n())).catch(n)}function eC(t,e,n,i=NS){const s="string"==typeof n?n:"file";i="function"==typeof n?n:i,hS.call(this,t,e,s).then((()=>i())).catch(i)}function nC(t,e,n=NS){n="function"==typeof e?e:n,cS.call(this,t).then((t=>n(void 0,t))).catch(n)}function iC(t,e,n,i=NS){TS.call(this,t,e,n).then((()=>i())).catch(i)}function sC(t,e,n,i=NS){IS.call(this,t,e,n).then((()=>i())).catch(i)}function oC(t,e,n=NS){mS.call(this,t,e).then((()=>n())).catch(n)}function rC(t,e,n=NS){ES.call(this,t,e).then((()=>n())).catch(n)}function aC(t,e,n,i=NS){fS.call(this,t,e,n).then((()=>i())).catch(i)}function lC(t,e,n,i=NS){gS.call(this,t,e,n).then((()=>i())).catch(i)}function uC(t,e,n=NS){n="function"==typeof e?e:n,OS.call(this,t,"function"==typeof e?null:e).then((t=>n(void 0,t))).catch(n)}function pC(t,e,n=NS){const i="number"==typeof e?e:YO;n="function"==typeof e?e:n,RS.call(this,t,i).then((()=>n())).catch(n)}const _C=new Map;function dC(t,e,n){const i=vO(t.toString()),s="function"!=typeof e?e:{};if("function"==typeof e&&(n=e),!n)throw new IO(cO.EINVAL,"No listener specified",t.toString(),"watchFile");if(_C.has(i)){const t=_C.get(i);return void(t&&t.listeners.add(n))}const o=new qR(i,s);o.on("change",((t,e)=>{const n=_C.get(i);if(n)for(const i of n.listeners)i(t,e)})),_C.set(i,{watcher:o,listeners:new Set})}function hC(t,e=NS){const n=vO(t.toString()),i=_C.get(n);i&&(e&&e!==NS?i.listeners.delete(e):i.listeners.clear(),0===i.listeners.size&&(i.watcher.stop(),_C.delete(n)))}function cC(t,e,n){const i=new jR(vO(t),"object"==typeof e?e:{});return n="function"==typeof e?e:n,i.on("change",n||NS),i}function TC(t,e){const n=this;let i;const s=new jA({highWaterMark:(e="object"==typeof e?e:{encoding:e}).highWaterMark||65536,encoding:e.encoding||"utf8",async read(o){try{i||(i=await oS.call(n,t,"r",e?.mode));const r=await i.read(new Uint8Array(o),0,o,i.file.position);s.push(r.bytesRead?r.buffer.slice(0,r.bytesRead):null),i.file.position+=r.bytesRead,r.bytesRead||await i.close()}catch(t){await(i?.close()),s.destroy(t)}},destroy(t,e){i?.close().then((()=>e(t))).catch(NS)}});return s.path=t.toString(),s}function IC(t,e){const n=this;let i;e="object"==typeof e?e:{encoding:e};const s=new qA({highWaterMark:e?.highWaterMark,async write(s,o,r){try{i||(i=await oS.call(n,t,"w",e?.mode||438)),await i.write(s,0,o),r(void 0)}catch(t){await(i?.close()),r(t)}},destroy(t,e){e(t),i?.close().then((()=>e(t))).catch(e)},final(t){i?.close().then((()=>t())).catch(t)}});return s.path=t.toString(),s}function mC(t,e,n=NS){n="function"==typeof e?e:n,AS.call(this,t,"function"==typeof e?void 0:e).then((()=>n(void 0))).catch(n)}function EC(t,e,n=NS){n="function"==typeof e?e:n,SS.call(this,t,"function"!=typeof e?e:null).then((t=>n(void 0,t))).catch(n)}function fC(t,e,n,i=NS){i="function"==typeof n?n:i,CS.call(this,t,e,"function"==typeof n?void 0:n).then((()=>i(void 0))).catch(i)}function gC(t,e,n,i=NS){i="function"==typeof n?n:i,new QA(t,this).readv(e,"function"==typeof n?void 0:n).then((({buffers:t,bytesRead:e})=>i(void 0,e,t))).catch(i)}function OC(t,e,n,i=NS){i="function"==typeof n?n:i,new QA(t,this).writev(e,"function"==typeof n?void 0:n).then((({buffers:t,bytesWritten:e})=>i(void 0,e,t))).catch(i)}function MC(t,e,n=NS){n="function"==typeof e?e:n,LS.call(this,t,"function"==typeof e?void 0:e).then((t=>n(void 0,t))).catch(n)}function RC(t,e,n,i=NS){i="function"==typeof n?n:i,yS.call(this,t,e,"function"==typeof n?void 0:n).then((()=>i(void 0))).catch(i)}function AC(t,e,n=NS){n="function"==typeof e?e:n,DS.call(this,t,"function"==typeof e?void 0:e).then((t=>n(void 0,t))).catch(n)}async function SC(t,e){const n=await oS.call(this,t.toString(),"r"),i=await n.readFile();return await n.close(),new Blob([i],e)}var CC=function(t,e,n){if(null!=e){if("object"!=typeof e&&"function"!=typeof e)throw new TypeError("Object expected.");var i,s;if(n){if(!Symbol.asyncDispose)throw new TypeError("Symbol.asyncDispose is not defined.");i=e[Symbol.asyncDispose]}if(void 0===i){if(!Symbol.dispose)throw new TypeError("Symbol.dispose is not defined.");i=e[Symbol.dispose],n&&(s=i)}if("function"!=typeof i)throw new TypeError("Object not disposable.");s&&(i=function(){try{s.call(this)}catch(t){return Promise.reject(t)}}),t.stack.push({value:e,dispose:i,async:n})}else n&&t.stack.push({async:!0});return e},LC=function(t){return function(e){function n(n){e.error=e.hasError?new t(n,e.error,"An error was suppressed during disposal."):n,e.hasError=!0}return function t(){for(;e.stack.length;){var i=e.stack.pop();try{var s=i.dispose&&i.dispose.call(i.value);if(i.async)return Promise.resolve(s).then(t,(function(e){return n(e),t()}))}catch(t){n(t)}}if(e.hasError)throw e.error}()}}("function"==typeof SuppressedError?SuppressedError:function(t,e,n){var i=new Error(n);return i.name="SuppressedError",i.error=t,i.suppressed=e,i});function yC(t){return class extends t{constructor(){super(...arguments),this._queue=[],this._isInitialized=!1}get _queueRunning(){return!!this._queue.length}queueDone(){return new Promise((t=>{const e=()=>this._queueRunning?setTimeout(e):t();e()}))}async ready(){if(await super.ready(),await this.queueDone(),!this._isInitialized&&!this._disableSync){if(this.checkSync(),await this._sync.ready(),this._sync instanceof OR&&this instanceof OR){const t=this._sync.store.transaction(),e=this.store.transaction(),n=[];for(const i of await e.keys())n.push(e.get(i).then((e=>t.setSync(i,e))));return await Promise.all(n),void(this._isInitialized=!0)}try{await this.crossCopy("/"),this._isInitialized=!0}catch(t){throw this._isInitialized=!1,t}}}checkSync(t,e){if(this._disableSync)throw new IO(cO.ENOTSUP,"Sync caching has been disabled for this async file system",t,e);if(!this._sync)throw new IO(cO.ENOTSUP,"No sync cache is attached to this async file system",t,e)}renameSync(t,e){this.checkSync(t,"rename"),this._sync.renameSync(t,e),this.queue("rename",t,e)}statSync(t){return this.checkSync(t,"stat"),this._sync.statSync(t)}createFileSync(t,e,n){return this.checkSync(t,"createFile"),this._sync.createFileSync(t,e,n),this.queue("createFile",t,e,n),this.openFileSync(t,e)}openFileSync(t,e){this.checkSync(t,"openFile");const n=this._sync.openFileSync(t,e+"+"),i=n.statSync(),s=new Uint8Array(i.size);return n.readSync(s),new jM(this,t,e,i,s)}unlinkSync(t){this.checkSync(t,"unlinkSync"),this._sync.unlinkSync(t),this.queue("unlink",t)}rmdirSync(t){this.checkSync(t,"rmdir"),this._sync.rmdirSync(t),this.queue("rmdir",t)}mkdirSync(t,e){this.checkSync(t,"mkdir"),this._sync.mkdirSync(t,e),this.queue("mkdir",t,e)}readdirSync(t){return this.checkSync(t,"readdir"),this._sync.readdirSync(t)}linkSync(t,e){this.checkSync(t,"link"),this._sync.linkSync(t,e),this.queue("link",t,e)}syncSync(t,e,n){this.checkSync(t,"sync"),this._sync.syncSync(t,e,n),this.queue("sync",t,e,n)}existsSync(t){return this.checkSync(t,"exists"),this._sync.existsSync(t)}async crossCopy(t){this.checkSync(t,"crossCopy");const e=await this.stat(t);if(!e.isDirectory()){const n={stack:[],error:void 0,hasError:!1};try{const i=CC(n,await this.openFile(t,xM("r")),!0),s=CC(n,this._sync.createFileSync(t,xM("w"),e.mode),!1),o=new Uint8Array(e.size);return await i.read(o),void s.writeSync(o,0,e.size)}catch(t){n.error=t,n.hasError=!0}finally{const t=LC(n);t&&await t}}if("/"!==t){const e=await this.stat(t);this._sync.mkdirSync(t,e.mode)}const n=[];for(const e of await this.readdir(t))n.push(this.crossCopy(gO(t,e)));await Promise.all(n)}async _next(){if(!this._queueRunning)return;const[t,...e]=this._queue.shift();await this[t](...e),await this._next()}queue(...t){this._queue.push(t),this._next()}}}new Map;yC(qM);new Map;Map;DC=qM;var DC;var NC=function(t,e,n){if(null!=e){if("object"!=typeof e&&"function"!=typeof e)throw new TypeError("Object expected.");var i,s;if(n){if(!Symbol.asyncDispose)throw new TypeError("Symbol.asyncDispose is not defined.");i=e[Symbol.asyncDispose]}if(void 0===i){if(!Symbol.dispose)throw new TypeError("Symbol.dispose is not defined.");i=e[Symbol.dispose],n&&(s=i)}if("function"!=typeof i)throw new TypeError("Object not disposable.");s&&(i=function(){try{s.call(this)}catch(t){return Promise.reject(t)}}),t.stack.push({value:e,dispose:i,async:n})}else n&&t.stack.push({async:!0});return e},bC=function(t){return function(e){function n(n){e.error=e.hasError?new t(n,e.error,"An error was suppressed during disposal."):n,e.hasError=!0}return function t(){for(;e.stack.length;){var i=e.stack.pop();try{var s=i.dispose&&i.dispose.call(i.value);if(i.async)return Promise.resolve(s).then(t,(function(e){return n(e),t()}))}catch(t){n(t)}}if(e.hasError)throw e.error}()}}("function"==typeof SuppressedError?SuppressedError:function(t,e,n){var i=new Error(n);return i.name="SuppressedError",i.error=t,i.suppressed=e,i});class vC{get isLocked(){return this._isLocked}constructor(t){this.previous=t,this.current=Promise.withResolvers(),this._isLocked=!0}async done(){await(this.previous?.done()),await this.current.promise}unlock(){this.current.resolve(),this._isLocked=!1}[Symbol.dispose](){this.unlock()}}class wC{async ready(){return await this._fs.ready()}metadata(){return this._fs.metadata()}addLock(){const t=new vC(this.currentLock);return this.currentLock=t,t}async lock(t,e){const n=this.currentLock,i=this.addLock(),s=(new Error).stack;return setTimeout((()=>{if(i.isLocked){const n=IO.With("EDEADLK",t,e);throw n.stack+=s?.slice(5),n}}),5e3),await(n?.done()),i}lockSync(t,e){if(this.currentLock?.isLocked)throw IO.With("EBUSY",t,e);return this.addLock()}get isLocked(){return!!this.currentLock?.isLocked}async rename(t,e){const n={stack:[],error:void 0,hasError:!1};try{NC(n,await this.lock(t,"rename"),!1);await this._fs.rename(t,e)}catch(t){n.error=t,n.hasError=!0}finally{bC(n)}}renameSync(t,e){const n={stack:[],error:void 0,hasError:!1};try{NC(n,this.lockSync(t,"rename"),!1);return this._fs.renameSync(t,e)}catch(t){n.error=t,n.hasError=!0}finally{bC(n)}}async stat(t){const e={stack:[],error:void 0,hasError:!1};try{NC(e,await this.lock(t,"stat"),!1);return await this._fs.stat(t)}catch(t){e.error=t,e.hasError=!0}finally{bC(e)}}statSync(t){const e={stack:[],error:void 0,hasError:!1};try{NC(e,this.lockSync(t,"stat"),!1);return this._fs.statSync(t)}catch(t){e.error=t,e.hasError=!0}finally{bC(e)}}async openFile(t,e){const n={stack:[],error:void 0,hasError:!1};try{NC(n,await this.lock(t,"openFile"),!1);const i=await this._fs.openFile(t,e);return i.fs=this,i}catch(t){n.error=t,n.hasError=!0}finally{bC(n)}}openFileSync(t,e){const n={stack:[],error:void 0,hasError:!1};try{NC(n,this.lockSync(t,"openFile"),!1);const i=this._fs.openFileSync(t,e);return i.fs=this,i}catch(t){n.error=t,n.hasError=!0}finally{bC(n)}}async createFile(t,e,n){const i={stack:[],error:void 0,hasError:!1};try{NC(i,await this.lock(t,"createFile"),!1);const s=await this._fs.createFile(t,e,n);return s.fs=this,s}catch(t){i.error=t,i.hasError=!0}finally{bC(i)}}createFileSync(t,e,n){const i={stack:[],error:void 0,hasError:!1};try{NC(i,this.lockSync(t,"createFile"),!1);const s=this._fs.createFileSync(t,e,n);return s.fs=this,s}catch(t){i.error=t,i.hasError=!0}finally{bC(i)}}async unlink(t){const e={stack:[],error:void 0,hasError:!1};try{NC(e,await this.lock(t,"unlink"),!1);await this._fs.unlink(t)}catch(t){e.error=t,e.hasError=!0}finally{bC(e)}}unlinkSync(t){const e={stack:[],error:void 0,hasError:!1};try{NC(e,this.lockSync(t,"unlink"),!1);return this._fs.unlinkSync(t)}catch(t){e.error=t,e.hasError=!0}finally{bC(e)}}async rmdir(t){const e={stack:[],error:void 0,hasError:!1};try{NC(e,await this.lock(t,"rmdir"),!1);await this._fs.rmdir(t)}catch(t){e.error=t,e.hasError=!0}finally{bC(e)}}rmdirSync(t){const e={stack:[],error:void 0,hasError:!1};try{NC(e,this.lockSync(t,"rmdir"),!1);return this._fs.rmdirSync(t)}catch(t){e.error=t,e.hasError=!0}finally{bC(e)}}async mkdir(t,e){const n={stack:[],error:void 0,hasError:!1};try{NC(n,await this.lock(t,"mkdir"),!1);await this._fs.mkdir(t,e)}catch(t){n.error=t,n.hasError=!0}finally{bC(n)}}mkdirSync(t,e){const n={stack:[],error:void 0,hasError:!1};try{NC(n,this.lockSync(t,"mkdir"),!1);return this._fs.mkdirSync(t,e)}catch(t){n.error=t,n.hasError=!0}finally{bC(n)}}async readdir(t){const e={stack:[],error:void 0,hasError:!1};try{NC(e,await this.lock(t,"readdir"),!1);return await this._fs.readdir(t)}catch(t){e.error=t,e.hasError=!0}finally{bC(e)}}readdirSync(t){const e={stack:[],error:void 0,hasError:!1};try{NC(e,this.lockSync(t,"readdir"),!1);return this._fs.readdirSync(t)}catch(t){e.error=t,e.hasError=!0}finally{bC(e)}}async exists(t){const e={stack:[],error:void 0,hasError:!1};try{NC(e,await this.lock(t,"exists"),!1);return await this._fs.exists(t)}catch(t){e.error=t,e.hasError=!0}finally{bC(e)}}existsSync(t){const e={stack:[],error:void 0,hasError:!1};try{NC(e,this.lockSync(t,"exists"),!1);return this._fs.existsSync(t)}catch(t){e.error=t,e.hasError=!0}finally{bC(e)}}async link(t,e){const n={stack:[],error:void 0,hasError:!1};try{NC(n,await this.lock(t,"link"),!1);await this._fs.link(t,e)}catch(t){n.error=t,n.hasError=!0}finally{bC(n)}}linkSync(t,e){const n={stack:[],error:void 0,hasError:!1};try{NC(n,this.lockSync(t,"link"),!1);return this._fs.linkSync(t,e)}catch(t){n.error=t,n.hasError=!0}finally{bC(n)}}async sync(t,e,n){const i={stack:[],error:void 0,hasError:!1};try{NC(i,await this.lock(t,"sync"),!1);await this._fs.sync(t,e,n)}catch(t){i.error=t,i.hasError=!0}finally{bC(i)}}syncSync(t,e,n){const i={stack:[],error:void 0,hasError:!1};try{NC(i,this.lockSync(t,"sync"),!1);return this._fs.syncSync(t,e,n)}catch(t){i.error=t,i.hasError=!0}finally{bC(i)}}}var FC=function(t,e,n){if(null!=e){if("object"!=typeof e&&"function"!=typeof e)throw new TypeError("Object expected.");var i,s;if(n){if(!Symbol.asyncDispose)throw new TypeError("Symbol.asyncDispose is not defined.");i=e[Symbol.asyncDispose]}if(void 0===i){if(!Symbol.dispose)throw new TypeError("Symbol.dispose is not defined.");i=e[Symbol.dispose],n&&(s=i)}if("function"!=typeof i)throw new TypeError("Object not disposable.");s&&(i=function(){try{s.call(this)}catch(t){return Promise.reject(t)}}),t.stack.push({value:e,dispose:i,async:n})}else n&&t.stack.push({async:!0});return e},PC=function(t){return function(e){function n(n){e.error=e.hasError?new t(n,e.error,"An error was suppressed during disposal."):n,e.hasError=!0}return function t(){for(;e.stack.length;){var i=e.stack.pop();try{var s=i.dispose&&i.dispose.call(i.value);if(i.async)return Promise.resolve(s).then(t,(function(e){return n(e),t()}))}catch(t){n(t)}}if(e.hasError)throw e.error}()}}("function"==typeof SuppressedError?SuppressedError:function(t,e,n){var i=new Error(n);return i.name="SuppressedError",i.error=t,i.suppressed=e,i});const kC="/.deleted";class VC extends qM{async ready(){await this.readable.ready(),await this.writable.ready(),await this._ready}constructor({writable:t,readable:e}){if(super(),this._isInitialized=!1,this._deletedFiles=new Set,this._deleteLog="",this._deleteLogUpdatePending=!1,this._deleteLogUpdateNeeded=!1,this.writable=t,this.readable=e,this.writable.metadata().readonly)throw new IO(cO.EINVAL,"Writable file system must be writable.");this._ready=this._initialize()}metadata(){return{...super.metadata(),name:YC.name}}async sync(t,e,n){await this.copyForWrite(t),await this.writable.exists(t)||await this.writable.createFile(t,"w",420),await this.writable.sync(t,e,n)}syncSync(t,e,n){this.copyForWriteSync(t),this.writable.syncSync(t,e,n)}async _initialize(){if(!this._isInitialized){try{const t=await this.writable.openFile(kC,xM("r")),{size:e}=await t.stat(),{buffer:n}=await t.read(new Uint8Array(e));this._deleteLog=LO(n)}catch(t){if(t.errno!==cO.ENOENT)throw t}this._isInitialized=!0,this._reparseDeletionLog()}}getDeletionLog(){return this._deleteLog}async restoreDeletionLog(t){this._deleteLog=t,this._reparseDeletionLog(),await this.updateLog("")}async rename(t,e){this.checkInitialized(),this.checkPath(t),this.checkPath(e),await this.copyForWrite(t);try{await this.writable.rename(t,e)}catch{if(this._deletedFiles.has(t))throw IO.With("ENOENT",t,"rename")}}renameSync(t,e){this.checkInitialized(),this.checkPath(t),this.checkPath(e),this.copyForWriteSync(t);try{this.writable.renameSync(t,e)}catch{if(this._deletedFiles.has(t))throw IO.With("ENOENT",t,"rename")}}async stat(t){this.checkInitialized();try{return await this.writable.stat(t)}catch{if(this._deletedFiles.has(t))throw IO.With("ENOENT",t,"stat");const e=await this.readable.stat(t);return e.mode|=146,e}}statSync(t){this.checkInitialized();try{return this.writable.statSync(t)}catch{if(this._deletedFiles.has(t))throw IO.With("ENOENT",t,"stat");const e=this.readable.statSync(t);return e.mode|=146,e}}async openFile(t,e){if(await this.writable.exists(t))return this.writable.openFile(t,e);const n=await this.readable.openFile(t,xM("r")),i=await n.stat(),{buffer:s}=await n.read(new Uint8Array(i.size));return new jM(this,t,e,i,s)}openFileSync(t,e){if(this.writable.existsSync(t))return this.writable.openFileSync(t,e);const n=this.readable.openFileSync(t,xM("r")),i=n.statSync(),s=new Uint8Array(i.size);return n.readSync(s),new jM(this,t,e,i,s)}async createFile(t,e,n){return this.checkInitialized(),await this.writable.createFile(t,e,n),this.openFile(t,e)}createFileSync(t,e,n){return this.checkInitialized(),this.writable.createFileSync(t,e,n),this.openFileSync(t,e)}async link(t,e){this.checkInitialized(),await this.copyForWrite(t),await this.writable.link(t,e)}linkSync(t,e){this.checkInitialized(),this.copyForWriteSync(t),this.writable.linkSync(t,e)}async unlink(t){if(this.checkInitialized(),this.checkPath(t),!await this.exists(t))throw IO.With("ENOENT",t,"unlink");await this.writable.exists(t)&&await this.writable.unlink(t),await this.exists(t)&&await this.deletePath(t)}unlinkSync(t){if(this.checkInitialized(),this.checkPath(t),!this.existsSync(t))throw IO.With("ENOENT",t,"unlink");this.writable.existsSync(t)&&this.writable.unlinkSync(t),this.existsSync(t)&&this.deletePath(t)}async rmdir(t){if(this.checkInitialized(),!await this.exists(t))throw IO.With("ENOENT",t,"rmdir");if(await this.writable.exists(t)&&await this.writable.rmdir(t),await this.exists(t)){if((await this.readdir(t)).length)throw IO.With("ENOTEMPTY",t,"rmdir");await this.deletePath(t)}}rmdirSync(t){if(this.checkInitialized(),!this.existsSync(t))throw IO.With("ENOENT",t,"rmdir");if(this.writable.existsSync(t)&&this.writable.rmdirSync(t),this.existsSync(t)){if(this.readdirSync(t).length)throw IO.With("ENOTEMPTY",t,"rmdir");this.deletePath(t)}}async mkdir(t,e){if(this.checkInitialized(),await this.exists(t))throw IO.With("EEXIST",t,"mkdir");await this.createParentDirectories(t),await this.writable.mkdir(t,e)}mkdirSync(t,e){if(this.checkInitialized(),this.existsSync(t))throw IO.With("EEXIST",t,"mkdir");this.createParentDirectoriesSync(t),this.writable.mkdirSync(t,e)}async readdir(t){this.checkInitialized();const e=[];try{e.push(...await this.writable.readdir(t))}catch{}try{e.push(...(await this.readable.readdir(t)).filter((e=>!this._deletedFiles.has(`${t}/${e}`))))}catch{}const n={};return e.filter((t=>{const e=!n[t];return n[t]=!0,e}))}readdirSync(t){this.checkInitialized();let e=[];try{e=e.concat(this.writable.readdirSync(t))}catch{}try{e=e.concat(this.readable.readdirSync(t).filter((e=>!this._deletedFiles.has(`${t}/${e}`))))}catch{}const n={};return e.filter((t=>{const e=!n[t];return n[t]=!0,e}))}async deletePath(t){this._deletedFiles.add(t),await this.updateLog(`d${t}\n`)}async updateLog(t){if(this._deleteLog+=t,this._deleteLogUpdatePending)return void(this._deleteLogUpdateNeeded=!0);this._deleteLogUpdatePending=!0;const e=await this.writable.openFile(kC,xM("w"));try{await e.write(SO(this._deleteLog)),this._deleteLogUpdateNeeded&&(this._deleteLogUpdateNeeded=!1,await this.updateLog(""))}catch(t){this._deleteLogError=t}finally{this._deleteLogUpdatePending=!1}}_reparseDeletionLog(){this._deletedFiles.clear();for(const t of this._deleteLog.split("\n"))t.startsWith("d")&&this._deletedFiles.add(t.slice(1))}checkInitialized(){if(!this._isInitialized)throw new IO(cO.EPERM,"OverlayFS is not initialized. Please initialize OverlayFS using its initialize() method before using it.");if(!this._deleteLogError)return;const t=this._deleteLogError;throw delete this._deleteLogError,t}checkPath(t){if(t==kC)throw IO.With("EPERM",t,"checkPath")}createParentDirectoriesSync(t){let e=OO(t);const n=[];for(;!this.writable.existsSync(e);)n.push(e),e=OO(e);for(const t of n.reverse())this.writable.mkdirSync(t,this.statSync(t).mode)}async createParentDirectories(t){let e=OO(t);const n=[];for(;!await this.writable.exists(e);)n.push(e),e=OO(e);for(const t of n.reverse()){const e=await this.stat(t);await this.writable.mkdir(t,e.mode)}}copyForWriteSync(t){if(!this.existsSync(t))throw IO.With("ENOENT",t,"copyForWrite");this.writable.existsSync(OO(t))||this.createParentDirectoriesSync(t),this.writable.existsSync(t)||this.copyToWritableSync(t)}async copyForWrite(t){if(!await this.exists(t))throw IO.With("ENOENT",t,"copyForWrite");if(await this.writable.exists(OO(t))||await this.createParentDirectories(t),!await this.writable.exists(t))return this.copyToWritable(t)}copyToWritableSync(t){const e={stack:[],error:void 0,hasError:!1};try{const n=this.statSync(t);if(n.isDirectory())return void this.writable.mkdirSync(t,n.mode);const i=new Uint8Array(n.size);FC(e,this.readable.openFileSync(t,"r"),!1).readSync(i);FC(e,this.writable.createFileSync(t,"w",146|n.mode),!1).writeSync(i)}catch(t){e.error=t,e.hasError=!0}finally{PC(e)}}async copyToWritable(t){const e={stack:[],error:void 0,hasError:!1};try{const n=await this.stat(t);if(n.isDirectory())return void await this.writable.mkdir(t,n.mode);const i=new Uint8Array(n.size),s=FC(e,await this.readable.openFile(t,"r"),!0);await s.read(i);const o=FC(e,await this.writable.createFile(t,"w",146|n.mode),!0);await o.write(i)}catch(t){e.error=t,e.hasError=!0}finally{const t=PC(e);t&&await t}}}class YC extends(function(t){return class extends wC{constructor(...e){super(),this._fs=new t(...e)}}}(VC)){}function xC(t,e,n){if(t instanceof IO)return t;const i=t instanceof DOMException?cO[function(t){switch(t.name){case"IndexSizeError":case"HierarchyRequestError":case"InvalidCharacterError":case"InvalidStateError":case"SyntaxError":case"NamespaceError":case"TypeMismatchError":case"ConstraintError":case"VersionError":case"URLMismatchError":case"InvalidNodeTypeError":return"EINVAL";case"WrongDocumentError":return"EXDEV";case"NoModificationAllowedError":case"InvalidModificationError":case"InvalidAccessError":case"SecurityError":case"NotAllowedError":return"EACCES";case"NotFoundError":return"ENOENT";case"NotSupportedError":return"ENOTSUP";case"InUseAttributeError":return"EBUSY";case"NetworkError":return"ENETDOWN";case"AbortError":return"EINTR";case"QuotaExceededError":return"ENOSPC";case"TimeoutError":return"ETIMEDOUT";case"ReadOnlyError":return"EROFS";default:return"EIO"}}(t)]:cO.EIO,s=new IO(i,t.message,e,n);return s.stack=t.stack,s.cause=t.cause,s}globalThis.__zenfs__=st;class UC extends(yC(qM)){constructor(t){super(),this._handles=new Map,this._sync=CR.create({name:"accessfs-cache"}),this._handles.set("/",t)}metadata(){return{...super.metadata(),name:"WebAccess",noResizableBuffers:!0}}async sync(t,e){await this.writeFile(t,e)}async rename(t,e){const n=await this.getHandle(t);if(n instanceof FileSystemDirectoryHandle){const n=await this.readdir(t);if(await this.mkdir(e),!n.length)return void await this.unlink(t);for(const i of n)await this.rename(gO(t,i),gO(e,i)),await this.unlink(t);return}if(!(n instanceof FileSystemFileHandle))throw new IO(cO.ENOTSUP,"Not a file or directory handle",t,"rename");const i=await n.getFile().catch((e=>{throw xC(e,t,"rename")})),s=await this.getHandle(OO(e));if(!(s instanceof FileSystemDirectoryHandle))return;const o=await s.getFileHandle(MO(e),{create:!0}).catch((t=>{throw xC(t,e,"rename")})),r=await o.createWritable();await r.write(await i.arrayBuffer()),await r.close(),await this.unlink(t)}async writeFile(t,e){if(e.buffer.resizable)throw new IO(cO.EINVAL,"Resizable buffers can not be written",t,"write");const n=await this.getHandle(OO(t));if(!(n instanceof FileSystemDirectoryHandle))return;const i=await n.getFileHandle(MO(t),{create:!0}),s=await i.createWritable();await s.write(e),await s.close()}async createFile(t,e){return await this.writeFile(t,new Uint8Array),this.openFile(t,e)}async stat(t){const e=await this.getHandle(t);if(!e)throw IO.With("ENOENT",t,"stat");if(e instanceof FileSystemDirectoryHandle)return new FM({mode:511|_M,size:4096});if(e instanceof FileSystemFileHandle){const{lastModified:t,size:n}=await e.getFile();return new FM({mode:511|uM,size:n,mtimeMs:t})}throw new IO(cO.EBADE,"Handle is not a directory or file",t,"stat")}async openFile(t,e){const n=await this.getHandle(t);if(!(n instanceof FileSystemFileHandle))throw IO.With("EISDIR",t,"openFile");const i=await n.getFile().catch((e=>{throw xC(e,t,"openFile")})),s=new Uint8Array(await i.arrayBuffer()),o=new FM({mode:511|uM,size:i.size,mtimeMs:i.lastModified});return new jM(this,t,e,o,s)}async unlink(t){const e=await this.getHandle(OO(t));if(!(e instanceof FileSystemDirectoryHandle))throw IO.With("ENOTDIR",OO(t),"unlink");await e.removeEntry(MO(t),{recursive:!0}).catch((e=>{throw xC(e,t,"unlink")}))}async link(t){}async rmdir(t){return this.unlink(t)}async mkdir(t){if(await this.getHandle(t).catch((t=>{if("ENOENT"!=t.code)throw t})))throw IO.With("EEXIST",t,"mkdir");const e=await this.getHandle(OO(t));if(!(e instanceof FileSystemDirectoryHandle))throw IO.With("ENOTDIR",t,"mkdir");await e.getDirectoryHandle(MO(t),{create:!0})}async readdir(t){const e=await this.getHandle(t);if(!(e instanceof FileSystemDirectoryHandle))throw IO.With("ENOTDIR",t,"readdir");const n=[];for await(const t of e.keys())n.push(t);return n}async getHandle(t){if(this._handles.has(t))return this._handles.get(t);let e="/";for(const n of t.split("/").slice(1)){const t=this._handles.get(e);if(!(t instanceof FileSystemDirectoryHandle))throw IO.With("ENOTDIR",e,"getHandle");e=gO(e,n);const i=await t.getDirectoryHandle(n).catch((i=>{switch(i.name){case"TypeMismatchError":return t.getFileHandle(n).catch((t=>{}));case"TypeError":throw new IO(cO.ENOENT,i.message,e,"getHandle");default:throw xC(i,e,"getHandle")}}));i&&this._handles.set(e,i)}return this._handles.get(t)}}function BC(t){return new Promise(((e,n)=>{t.oncomplete=t.onsuccess=()=>e(t.result),t.onabort=t.onerror=()=>n(t.error)}))}let XC;function GC(){return XC||(XC=function(t,e){const n=indexedDB.open(t);n.onupgradeneeded=()=>n.result.createObjectStore(e);const i=BC(n);return(t,n)=>i.then((i=>n(i.transaction(e,t).objectStore(e))))}("keyval-store","keyval")),XC}class HC extends UC{constructor(t){super(t)}async readFile(t){const e=await this.getHandle(t);if(e instanceof window.FileSystemFileHandle){const t=await e.getFile();return await t.text()}return""}}class WC extends rt.FS{#t=null;constructor(){super()}async showDirectoryPicker(){const t=await window.showDirectoryPicker({mode:"readwrite"});if("granted"!==await t.requestPermission({mode:"readwrite"}))throw new Error("readwrite access to directory not granted");return await this.setFSCache(t),this.#t=new HC(t),t}async loadFS(){let t=await this.getFSCache();if(!t)return null;if("granted"!==await t.requestPermission({mode:"readwrite"}))throw new Error("readwrite access to directory not granted");return this.#t=new HC(t),t}async getFSCache(){return function(t,e=GC()){return e("readonly",(e=>BC(e.get(t))))}("mixly-pyodide-fs")}async setFSCache(t){await function(t,e,n=GC()){return n("readwrite",(n=>(n.put(e,t),BC(n.transaction))))}("mixly-pyodide-fs",t)}async createFile(t){return this.#t.createFile(t,"")}async readFile(t){return this.#t.readFile(t)}async writeFile(t,e){return this.#t.writeFile(t,e,"utf8")}async isFile(t){const e=await this.#t.stat(t);return!(!e||33279!==e.mode)}async renameFile(t,e){return await this.#t.rename(t,e)}async moveFile(t,e){return this.renameFile(t,e)}async deleteFile(t){return this.#t.unlink(t)}async createDirectory(t){return this.#t.mkdir(t,511)}async readDirectory(t){return await this.#t.readdir(t)}async isDirectory(t){const e=await this.#t.stat(t);return!(!e||16895!==e.mode)}async isDirectoryEmpty(t){const e=await this.readDirectory(t);return!e?.length}async renameDirectory(t,e){return this.#t.rename(t,e)}async moveDirectory(t,e){return this.#t.rename(t,e)}async deleteDirectory(t){return this.#t.rmdir(t)}}class KC extends rt.FileTree{constructor(){super(new WC)}async readFolder(t){let e=[];try{const n=this.getFS();if(!await n.isDirectory(t))return e;const i=await n.readDirectory(t);for(let s of i){const i=aO.join(t,s);if(await n.isDirectory(i)){const t=await n.isDirectoryEmpty(i);e.push({type:"folder",id:i,children:!t,title:`/${this.getRootFolderName()}${i}`})}else e.push({type:"file",id:i,children:!1,title:`/${this.getRootFolderName()}${i}`})}}catch(t){rt.Debug.error(t)}return e}}class jC extends rt.PageBase{static{rt.HTMLTemplate.add("html/statusbar/statusbar-filesystem.html",new rt.HTMLTemplate('\n\n \n \n')),rt.HTMLTemplate.add("html/statusbar/statusbar-filesystem-open-fs.html",new rt.HTMLTemplate('\n\n {{ d.msg.loadFS }}\n')),rt.HTMLTemplate.add("html/statusbar/statusbar-filesystem-editor-empty.html",new rt.HTMLTemplate('\n\n \n')),this.init=function(){rt.StatusBarsManager.typesRegistry.register(["file-system"],jC);const t=rt.Workspace.getMain().getStatusBarsManager();return t.add("file-system","file-system",ot.Msg.PYTHON_PYODIDE_FILE_SYSTEM),t.changeTo("output"),t.get("file-system")}}#e=null;#n=null;#i=null;#s=null;#o=null;#r=null;#a=null;#l=null;#u=!1;#p=!1;#_=!1;#d=null;constructor(){super();const t=uO()(rt.HTMLTemplate.get("html/statusbar/statusbar-filesystem.html").render());this.setContent(t),this.#a=new KC,this.#n=t.children(".file-tree"),this.#s=uO()(rt.HTMLTemplate.get("html/statusbar/statusbar-filesystem-open-fs.html").render({msg:{loadFS:ot.Msg.PYTHON_PYODIDE_LOAD_FILE_SYSTEM}})),this.#n.append(this.#s),this.#r=new rt.StatusBar,this.#i=t.children(".editor"),this.#o=uO()(rt.HTMLTemplate.get("html/statusbar/statusbar-filesystem-editor-empty.html").render()),this.#i.append(this.#o)}#h(){this.#l=new rt.DragV(this.getContent()[0],{min:"150px",startSize:"15%",full:[!1,!1]}),this.#l.bind("sizeChanged",(()=>{this.resize()})),this.#s.children("button").click((()=>{this.selectFS().catch(rt.Debug.error)})),this.#a.bind("beforeSelectLeaf",(t=>{const e=t[0].id,n=this.#r.getFileMode(aO.extname(e));return n?(this.#r.setMode(n),!0):(hO.layer.msg(rt.Msg.Lang["statusbar.ampy.cannotEdit"],{time:1e3}),!1)})),this.#a.bind("afterSelectLeaf",(async t=>{const e=t[0].id;this.#a.showProgress();const n=this.#a.getFS();try{const t=await n.readFile(e);this.showEditor(),this.#r.setValue(t),this.#r.scrollToTop(),this.#r.focus(),this.setStatus(!1)}catch(t){rt.Debug.error(t),this.hideEditor(),this.#a.deselectAll()}this.#a.hideProgress()})),this.#a.bind("afterCreateNode",(t=>{this.#a.refreshFolder(t)})),this.#a.bind("afterDeleteNode",(t=>{this.#a.refreshFolder(t)})),this.#a.bind("afterRenameNode",(t=>{this.#a.refreshFolder(t)})),this.#a.bind("afterRefreshNode",(()=>{this.#a.getSelectedNodeId()||this.hideEditor()}));const t=this.#a.getContextMenu().getItem("menu");t.add({weight:7,type:"copy_path",data:{isHtmlName:!0,name:rt.ContextMenu.getItem(rt.Msg.Lang["fileTree.copyPath"],""),callback:(t,{$trigger:e})=>{let n=null;n="root"===e.attr("type")?this.#a.getRootFolderTitle():e.attr("title"),navigator.clipboard.writeText(n).catch(rt.Debug.error)}}}),t.add({weight:14,type:"sep5",preconditionFn:t=>{const e=this.#a.getSelectedNodeId();let n=t.attr("type"),i=t.attr("id");return"file"!==n||e===i},data:"---------"}),t.add({weight:15,type:"refresh",preconditionFn:t=>{const e=this.#a.getSelectedNodeId();let n=t.attr("type"),i=t.attr("id");return"file"!==n||e===i},data:{isHtmlName:!0,name:rt.ContextMenu.getItem(rt.Msg.Lang["statusbar.ampy.refresh"],""),callback:(t,{$trigger:e})=>{let n=e.attr("type");if("root"===n)this.#a.openRootFolder(),this.#a.refreshFolder("/");else if("folder"===n){let t=e.attr("id");this.#a.openNode(t),this.#a.refreshFolder(t)}else{const t=this.#a.getSelectedNodes();this.#a.runEvent("afterSelectLeaf",t)}}}}),t.add({weight:16,type:"sep6",preconditionFn:t=>{let e=t.attr("type");return["root"].includes(e)},data:"---------"}),t.add({weight:17,type:"exit",preconditionFn:t=>{let e=t.attr("type");return["root"].includes(e)},data:{isHtmlName:!0,name:rt.ContextMenu.getItem(rt.Msg.Lang["statusbar.ampy.exit"],""),callback:()=>{this.closeFS()}}}),t.remove("copy"),t.remove("cut"),t.remove("paste"),t.remove("sep2");const e=this.#r.getContextMenu().getItem("code");e.empty(),e.add({weight:0,type:"cut",data:{isHtmlName:!0,name:rt.ContextMenu.getItem(rt.Msg.Lang["editor.contextMenu.cut"],"Ctrl+X"),callback:()=>this.#r.cut()}}),e.add({weight:1,type:"copy",data:{isHtmlName:!0,name:rt.ContextMenu.getItem(rt.Msg.Lang["editor.contextMenu.copy"],"Ctrl+C"),callback:()=>this.#r.copy()}}),e.add({weight:2,type:"paste",data:{isHtmlName:!0,name:rt.ContextMenu.getItem(rt.Msg.Lang["editor.contextMenu.paste"],"Ctrl+V"),callback:()=>this.#r.paste()}}),e.add({weight:3,type:"sep1",data:"---------"}),e.add({weight:4,type:"togglecomment",data:{isHtmlName:!0,name:rt.ContextMenu.getItem(rt.Msg.Lang["editor.contextMenu.togglecomment"],"Ctrl+/"),callback:()=>this.#r.commentLine()}}),e.add({weight:6,type:"sep2",preconditionFn:()=>this.#_,data:"---------"}),e.add({weight:7,type:"save",preconditionFn:()=>this.#_,data:{isHtmlName:!0,name:rt.ContextMenu.getItem(rt.Msg.Lang["file.save"],"Ctrl+S"),callback:async()=>{await this.put()}}});const{commands:n}=this.#r.getEditor();n.addCommand({name:"save",bindKey:"Ctrl-S",exec:async()=>{this.#_&&await this.put()}})}async put(){this.#a.showProgress();const t=this.#a.getSelectedNodeId(),e=this.#a.getFS(),[n]=await e.writeFile(t,this.#r.getValue());this.#a.hideProgress(),n||this.setStatus(!1)}showFileTree(){this.#u||(this.#s.detach(),this.#n.empty(),this.#n.append(this.#a.getContent()),this.#u=!0)}hideFileTree(){this.#u&&(this.#a.getContent().detach(),this.#n.empty(),this.#n.append(this.#s),this.#u=!1)}showEditor(){this.#p||(this.#o.detach(),this.#i.empty(),this.#i.append(this.#r.getContent()),this.#p=!0)}hideEditor(){this.#p&&(this.#r.getContent().detach(),this.#i.empty(),this.#i.append(this.#o),this.#p=!1,this.setStatus(!1))}getDrag(){return this.#l}init(){super.init(),this.hideCloseBtn(),this.#r.init(),this.#h();const t=this.#r.getEditor();t.setReadOnly(!1),t.renderer.setShowGutter(!0),t.setOptions({enableBasicAutocompletion:!0,enableSnippets:!0,enableLiveAutocompletion:!0,newLineMode:"unix"}),t.on("change",(()=>{this.setStatus(!0)})),this.loadFS().catch(rt.Debug.error)}async loadFS(){const t=this.#a.getFS(),e=await t.loadFS();await this.openFS(e)}async selectFS(){const t=this.#a.getFS(),e=await t.showDirectoryPicker();await this.openFS(e)}async openFS(t){if(!t?.name)return;const e="/"+t.name;this.#a.setFolderPath("/"),this.#a.setRootFolderTitle(e),this.#a.setRootFolderName(t.name),this.#a.openRootFolder(),this.showFileTree(),this.#d=await window.pyodide.mountNativeFS(e,t)}closeFS(){const t=this.#a.getRootFolderTitle();if(Object.keys(window.pyodide.FS.root.contents).includes(aO.basename(t))){const e=window.pyodide.FS.lookupPath(t,{follow_mount:!1});window.pyodide.FS.isMountpoint(e.node)&&window.pyodide.FS.unmount(t)}this.#a.getFS().setFSCache(null),this.#a.deselectAll(),this.hideFileTree(),this.hideEditor(),this.setStatus(!1)}onMounted(){super.onMounted(),this.#r.onMounted(),this.#a.onMounted()}onUnmounted(){super.onUnmounted(),this.#r.onUnmounted(),this.#a.onUnmounted()}resize(){super.resize(),this.#r.resize(),this.#a.resize()}setStatus(t){this.#_!==t&&(this.#_=t)}getNativeFS(){return this.#d}dispose(){this.#r.dispose(),this.#r=null,this.#a.dispose(),this.#a=null,super.dispose()}}class qC{static{rt.HTMLTemplate.add("html/statusbar/loader.html",new rt.HTMLTemplate('\n\n \n {{d.msg.loading}}\n')),this.pythonShell=null,this.kernelLoaded=!1,this.$loader=uO()(rt.HTMLTemplate.get("html/statusbar/loader.html").render({msg:{loading:ot.Msg.PYTHON_PYODIDE_LOADING}})),this.statusBarImage=null,this.statusBarFileSystem=null,this.init=async function(){rt.app.getFooterBar().getContent().after(this.$loader);const t=aO.relative(rt.Env.indexDirPath,rt.Env.boardDirPath),e=new _O({rootPath:aO.join(t,"deps"),language:"python3"}),n=await e.kernelAvailable();n&&(await n.init(),await n.loaded(),this.loader=e,this.kernel=n,this.statusBarImage=dO.init(),this.statusBarFileSystem=jC.init(),this.pythonShell=new qC,this.pyodide=window.pyodide,this.interruptBuffer=new Uint8Array(new ArrayBuffer(1)),this.pyodide.setInterruptBuffer(this.interruptBuffer),this.kernelLoaded=!0,this.$loader.remove(),this.$loader=null)},this.run=async function(){if(!this.kernelLoaded)return;const t=rt.Workspace.getMain().getEditorsManager().getActive().getCode();return this.pythonShell.run(t)},this.stop=async function(){if(this.kernelLoaded)return this.pythonShell.stop()}}#c=null;#T=null;#I=null;#m={row:0,column:0};#E="";#f=null;#g=null;#O=!1;#M=!1;#R=null;#A=()=>this.#S();#C=[{name:"REPL-Enter",bindKey:"Enter",exec:t=>{if(t.getSession().selection.getCursor().row===this.#m.row){const t=this.#c.getEndPos();let e=this.#c.getValueRange(this.#m,t);e=e.replace(this.#E,""),this.#f?.(e),this.#f=null,this.#g=null,this.#c.addValue("\n"),this.#L()}return!1}},{name:"REPL-ChangeEditor",bindKey:"Delete|Ctrl-X|Backspace",exec:t=>{const e=t.getSession().selection.getCursor();return e.row{this.#M=!1,this.#c.addValue(`\n==${rt.Msg.Lang["shell.finish"]}==`),this.syncfs(!1).catch(rt.Debug.error)})),this.#R.addEventListener("eval.output",(t=>{this.#c.addValue(t.content)})),this.#R.addEventListener("eval.error",(()=>{this.#M=!1,this.#c.addValue(`\n==${rt.Msg.Lang["shell.finish"]}==`)})),this.#R.addEventListener("eval.input",(t=>{const e=String(t?.content?.prompt);this.#c.addValue(e),this.#E=e,this.#f=t.resolve,this.#g=t.reject,this.#y()})),this.#R.addEventListener("eval.display",(t=>{this.#I.changeTo("images"),this.#T.display(t)}))}#S(){const t=this.#c.getEditor(),e=t.getSession().selection.getCursor();t.setReadOnly(e.row{window.pyodide.FS.syncfs(t,e)}))}sleep(t){return new Promise((e=>setTimeout(e,t)))}}const $C={init:async function(){const t=rt.app.getNav();t.register({icon:"icon-play-circled",title:"",id:"python-run-btn",displayText:ot.Msg.MSG.run,preconditionFn:()=>!0,callback:()=>{qC.run().catch(rt.Debug.error)},scopeType:rt.Nav.Scope.LEFT,weight:4}),t.register({icon:"icon-cancel",title:"",id:"python-stop-btn",displayText:ot.Msg.MSG.stop,preconditionFn:()=>!0,callback:()=>{qC.stop().catch(rt.Debug.error)},scopeType:rt.Nav.Scope.LEFT,weight:5}),await qC.init()}};$C.init(),Object.assign(ot.Variables,lt),Object.assign(ot.Procedures,Bi),ot.Python=uu,ot.generator=uu,rt.Profile.default={},Object.assign(ot.Blocks,t,e,n,i,s,o,r,a,l,u,p,_,d,C,L,y,D,N,b,v,w,F,P,k,V,Y,x,U),Object.assign(ot.Python.forBlock,h,c,T,I,m,E,f,g,O,M,R,A,S,B,X,G,um,H,W,K,j,q,z,Q,J,Z,tt,et)})()})(); \ No newline at end of file +class ut{constructor(t,e){if(this.variablePrefix_=e||"",this.reservedDict_=Object.create(null),t)for(var n=t.split(","),i=0;i0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?n[s]=e.getInputTargetBlock("IF"+s).previousConnection:n[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?i[s]=e.getInputTargetBlock("DO"+s).previousConnection:i[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(ot.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+s).appendField(ot.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(ot.Msg.CONTROLS_IF_MSG_ELSE);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"IF"+s);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_if_if");e.initSvg();for(var n=e.getInput("STACK").connection,i=1;i<=this.elseifCount_;i++){var s=t.newBlock("controls_if_elseif");s.initSvg(),n.connect(s.previousConnection),n=s.nextConnection}if(this.elseCount_){var o=t.newBlock("controls_if_else");o.initSvg(),n.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 n=t.getInputTargetBlock("STACK"),i=[null],s=[null],o=null;n;){switch(n.type){case"controls_if_elseif":this.elseifCount_++,i.push(n.valueConnection_),s.push(n.statementConnection_);break;case"controls_if_else":this.elseCount_++,o=n.statementConnection_;break;default:throw Error("Unknown block type: "+n.type)}n=n.nextConnection&&n.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(i,s,o)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),n=1;e;){switch(e.type){case"controls_if_elseif":var i=this.getInput("IF"+n),s=this.getInput("DO"+n);e.valueConnection_=i&&i.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,n++;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],n=null;this.getInput("ELSE")&&(n=this.getInput("ELSE").connection.targetConnection);for(var i=1;this.getInput("IF"+i);){var s=this.getInput("IF"+i),o=this.getInput("DO"+i);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(o.connection.targetConnection),i++}this.updateShape_(),this.reconnectChildBlocks_(t,e,n)},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(ot.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+t).appendField(ot.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(ot.Msg.CONTROLS_IF_MSG_ELSE)},reconnectChildBlocks_:function(t,e,n){for(var i=1;i<=this.elseifCount_;i++)t[i]&&t[i].reconnect(this,"IF"+i),e[i]&&e[i].reconnect(this,"DO"+i);n&&n.reconnect(this,"ELSE")}},yt={init:function(){this.setColour(Mt),this.appendValueInput("FROM").setCheck(Number).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.PYTHON_RANGE).appendField(ot.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.PYTHON_RANGE_STEP),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(ot.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},Dt={init:function(){this.setColour(Mt),this.appendValueInput("LIST").setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.CONTROLS_FOREACH_INPUT),this.appendValueInput("VAR").appendField(ot.Msg.CONTROLS_FOREACH_INPUT_ITEM),this.appendStatementInput("DO").appendField(ot.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip((function(){return ot.Msg.CONTROLS_FOR_TOOLTIP.replace("“%1”","")}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Nt={init:function(){this.setColour(Mt),this.appendValueInput("BOOL").setCheck([Boolean,Number]).appendField(ot.Msg.MIXLY_MICROBIT_JS_CURRENT).appendField(new ot.FieldDropdown(this.OPERATORS),"MODE"),this.appendStatementInput("DO").appendField(ot.Msg.LANG_CONTROLS_WHILEUNTIL_TITLE_REPEAT+ot.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return{WHILE:ot.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_WHILE,UNTIL:ot.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL}[e]}))}},bt={init:function(){this.setColour(Mt),this.appendDummyInput().appendField(ot.Msg.MIXLY_PYTHON_TRY),this.appendStatementInput("try"),this.appendValueInput("IF1").appendField(ot.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO1").appendField(""),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new ot.icons.MutatorIcon(["controls_except","controls_finally"],this)),this.setTooltip(ot.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,n=[],i=[];this.elseCount_&&this.removeInput("ELSE");for(var s=this.elseifCount_;s>0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?n[s]=e.getInputTargetBlock("IF"+s).previousConnection:n[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?i[s]=e.getInputTargetBlock("DO"+s).previousConnection:i[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(ot.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+s).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(ot.Msg.MIXLY_PYTHON_FINALLY);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"IF"+s);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_try");e.initSvg();for(var n=e.getInput("STACK").connection,i=1;i<=this.elseifCount_;i++){var s=t.newBlock("controls_except");s.initSvg(),n.connect(s.previousConnection),n=s.nextConnection}if(this.elseCount_){var o=t.newBlock("controls_finally");o.initSvg(),n.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 n=t.getInputTargetBlock("STACK"),i=[null],s=[null],o=null;n;){switch(n.type){case"controls_except":this.elseifCount_++,i.push(n.valueConnection_),s.push(n.statementConnection_);break;case"controls_finally":this.elseCount_++,o=n.statementConnection_;break;default:throw Error("Unknown block type: "+n.type)}n=n.nextConnection&&n.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(i,s,o)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),n=1;e;){switch(e.type){case"controls_except":var i=this.getInput("IF"+n),s=this.getInput("DO"+n);e.valueConnection_=i&&i.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,n++;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],n=null;this.getInput("ELSE")&&(n=this.getInput("ELSE").connection.targetConnection);for(var i=1;this.getInput("IF"+i);){var s=this.getInput("IF"+i),o=this.getInput("DO"+i);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(o.connection.targetConnection),i++}this.updateShape_(),this.reconnectChildBlocks_(t,e,n)},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(ot.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+t).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(ot.Msg.MIXLY_PYTHON_FINALLY)},reconnectChildBlocks_:function(t,e,n){for(var i=1;i<=this.elseifCount_;i++)t[i]&&t[i].reconnect(this,"IF"+i),e[i]&&e[i].reconnect(this,"DO"+i);n&&n.reconnect(this,"ELSE")}},vt={init:function(){this.setColour(Mt);var t=new ot.FieldDropdown(this.OPERATORS);this.appendDummyInput().appendField(t,"FLOW").appendField(ot.Msg.LANG_CONTROLS_FLOW_STATEMENTS_INPUT_OFLOOP),this.setPreviousStatement(!0),this.setTooltip(ot.Msg.MIXLY_PYTHON_CONTROLS_FLOW_STATEMENTS_TOOLTIP);var e=this;this.setTooltip((function(){var t=e.getFieldValue("FLOW");return{BREAK:ot.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK,CONTINUE:ot.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(ot.Msg.LANG_CONTROLS_FLOW_STATEMENTS_WARNING)}}},wt={init:function(){this.setColour(Mt),this.appendDummyInput().appendField(ot.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new ot.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(ot.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return ot.Msg.CONTROLS_FOR_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Ft={init:function(){this.setColour(Mt),this.appendDummyInput().appendField(ot.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new ot.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(ot.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return ot.Msg.MIXLY_PYTHON_CONTROLS_FOR_RANGE_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}};Nt.OPERATORS=[[ot.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"WHILE"],[ot.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"UNTIL"]],vt.OPERATORS=[[ot.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK,"BREAK"],[ot.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE,"CONTINUE"]];const Pt={init:function(){this.setColour(Mt),this.appendDummyInput().appendField(ot.Msg.CONTROLS_IF_IF_TITLE_IF),this.appendStatementInput("STACK"),this.setTooltip(ot.Msg.CONTROLS_IF_IF_TOOLTIP),this.contextMenu=!1}},kt={init:function(){this.setColour(Mt),this.appendDummyInput().appendField(ot.Msg.CONTROLS_IF_ELSEIF_TITLE_ELSEIF),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.CONTROLS_IF_ELSEIF_TOOLTIP),this.contextMenu=!1}},Vt={init:function(){this.setColour(Mt),this.appendDummyInput().appendField(ot.Msg.CONTROLS_IF_ELSE_TITLE_ELSE),this.setPreviousStatement(!0),this.setTooltip(ot.Msg.CONTROLS_IF_ELSE_TOOLTIP),this.contextMenu=!1}},Yt={init:function(){this.setColour(Mt),this.appendDummyInput().appendField("try"),this.appendStatementInput("STACK"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.contextMenu=!1}},xt={init:function(){this.setColour(Mt),this.appendDummyInput().appendField(ot.Msg.MIXLY_PYTHON_EXCEPT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.contextMenu=!1,this.setTooltip(ot.Msg.MIXLY_MIXPY_CONTROL_EXCEPT_TOOLTIP)}},Ut={init:function(){this.setColour(Mt),this.appendDummyInput().appendField(ot.Msg.MIXLY_PYTHON_FINALLY),this.setPreviousStatement(!0),this.contextMenu=!1,this.setTooltip(ot.Msg.MIXLY_MIXPY_CONTROL_FINALLY_TOOLTIP)}},Bt={init:function(){this.jsonInit({message0:ot.Msg.CONTROLS_REPEAT_TITLE,args0:[{type:"input_value",name:"TIMES"}],previousStatement:null,nextStatement:null,colour:Mt,tooltip:ot.Msg.CONTROLS_REPEAT_TOOLTIP,helpUrl:ot.Msg.CONTROLS_REPEAT_HELPURL}),this.appendStatementInput("DO")}},Xt={init:function(){this.setColour(Mt),this.appendValueInput("BOOL").appendField("lambda"),this.appendStatementInput("DO").appendField(ot.Msg.MIXLY_STAT),this.setOutput(!0)}},Gt={init:function(){this.setColour(Mt),this.appendDummyInput().appendField(ot.Msg.MIXLY_PYTHON_PASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.MIXLY_PYTHON_CONTROLS_PASS_TOOLTIP)}},Ht={init:function(){this.setColour(Mt),this.appendDummyInput().appendField(ot.Msg.MIXLY_PYTHON_CONTROLS_THREAD_START),this.appendValueInput("callback").appendField(ot.Msg.MIXLY_PYTHON_CONTROLS_THREAD_USE),this.appendValueInput("VAR").appendField(ot.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ot.Msg.MIXLY_PYTHON_CONTROLS_THREAD_TOOLTIP)}},Wt={init:function(){this.appendDummyInput().appendField(ot.Msg.CONTROLS_REPEAT_TITLE_REPEAT+ot.Msg.MIXLY_DO),this.appendStatementInput("input_data").setCheck(null),this.appendValueInput("select_data").setCheck(null).appendField(ot.Msg.CONTROLS_OPERATOR_UNTIL).appendField(new ot.FieldDropdown([[ot.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"true"],[ot.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"false"]]),"type"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Mt),this.setTooltip("do-while loop"),this.setHelpUrl("")}},Kt={init:function(){this.setColour(Mt),this.appendDummyInput().appendField(ot.Msg.MIXLY_OP_GARBAGE_COLLECT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},jt={init:function(){this.setColour(Mt),this.appendDummyInput().appendField(ot.Msg.MIXLY_GET_MEM_ALLOC),this.setOutput(!0)}},qt={init:function(){this.setColour(Mt),this.appendDummyInput().appendField(ot.Msg.MIXLY_GET_MEM_FREE),this.setOutput(!0)}},$t={init:function(){this.setColour(Mt),this.appendDummyInput().appendField(ot.Msg.MIXLY_GET+ot.Msg.MIXLY_DEVICE+"ID"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(ot.Msg.PROCEDURES_DEFRETURN_RETURN+ot.Msg.MIXLY_GET_UNIQUE_IDEN)}},zt={init:function(){this.setColour(Mt),this.appendValueInput("VAR").appendField(ot.Msg.MIXLY_RTC_TIMESTAMP),this.appendDummyInput().appendField(ot.Msg.MIXLY_TIMESTAMP_TO_DATA),this.setInputsInline(!0),this.setOutput(!0,Number)}},Qt=230;ot.FieldTextInput.math_number_validator=function(t){return String(t)},ot.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 Jt={init:function(){this.setColour(Qt),this.appendDummyInput().appendField(new ot.FieldTextInput("0",ot.FieldTextInput.math_number_validator),"NUM"),this.setOutput(!0,Number),this.setTooltip(ot.Msg.MATH_NUMBER_TOOLTIP)}},Zt={init:function(){this.setColour(Qt);this.appendDummyInput("").appendField(ot.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new ot.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:ot.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_TOOLTIP,e:ot.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_TOOLTIP}[e]}))}},te={init:function(){this.setColour(Qt);this.appendDummyInput("").appendField(ot.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new ot.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:ot.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_MP_TOOLTIP,e:ot.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_MP_TOOLTIP}[e]}))}},ee={init:function(){this.setColour(Qt),this.setOutput(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new ot.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:ot.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:ot.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:ot.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:ot.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:ot.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:ot.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:ot.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},ne={init:function(){this.setColour(Qt),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new ot.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:ot.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:ot.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:ot.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:ot.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:ot.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:ot.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:ot.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},ie={init:function(){this.setColour(Qt),this.setOutput(!0,Number),this.appendValueInput("A").setCheck(Number),this.appendValueInput("B").setCheck(Number).appendField(new ot.FieldDropdown([["&","&"],["|","|"],[">>",">>"],["<<","<<"]]),"OP"),this.setInputsInline(!0),this.setTooltip("位运算")}},se={init:function(){this.setColour(Qt),this.setOutput(!0,Number),this.appendValueInput("NUM").setCheck(Number).appendField(new ot.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:ot.Msg.MATH_TRIG_TOOLTIP_SIN,COS:ot.Msg.MATH_TRIG_TOOLTIP_COS,TAN:ot.Msg.MATH_TRIG_TOOLTIP_TAN,ASIN:ot.Msg.MATH_TRIG_TOOLTIP_ASIN,ACOS:ot.Msg.MATH_TRIG_TOOLTIP_ACOS,ATAN:ot.Msg.MATH_TRIG_TOOLTIP_ATAN,LN:ot.Msg.MATH_SINGLE_TOOLTIP_LN}[e]}))}},oe={init:function(){var t=[[ot.Msg.MATH_BIN,"bin"],[ot.Msg.MATH_OCT,"oct"],[ot.Msg.MATH_HEX,"hex"]];this.setColour(Qt),this.setOutput(!0,String),this.appendValueInput("NUM").setCheck(Number).appendField(new ot.FieldDropdown(t),"OP");var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{bin:ot.Msg.MATH_DEC_TOOLTIP_BIN,oct:ot.Msg.MATH_DEC_TOOLTIP_OCT,hex:ot.Msg.MATH_DEC_TOOLTIP_HEX}[t]}))}},re={init:function(){var t=[[ot.Msg.LANG_MATH_TO_ROUND,"round"],[ot.Msg.LANG_MATH_TO_CEIL,"ceil"],[ot.Msg.LANG_MATH_TO_FLOOR,"floor"],[ot.Msg.MATH_ABS,"fabs"],[ot.Msg.MATH_SQRT,"sqrt"]];this.setColour(Qt),this.appendValueInput("A").setCheck(Number).appendField(new ot.FieldDropdown(t),"OP"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{sqrt:ot.Msg.MATH_SINGLE_TOOLTIP_ROOT,fabs:ot.Msg.MATH_SINGLE_TOOLTIP_ABS,sq:ot.Msg.MATH_SINGLE_TOOLTIP_SQ,round:ot.Msg.MATH_SINGLE_TOOLTIP_ROUND,ceil:ot.Msg.MATH_SINGLE_TOOLTIP_CEIL,floor:ot.Msg.MATH_SINGLE_TOOLTIP_FLOOR}[t]}))}},ae={init:function(){var t=[[ot.Msg.MIXLY_MAX,"max"],[ot.Msg.MIXLY_MIN,"min"]];this.setColour(Qt),this.appendValueInput("A").setCheck(Number).setAlign(ot.inputs.Align.RIGHT).appendField(new ot.FieldDropdown(t),"OP").appendField("("),this.appendValueInput("B").setCheck(Number).setAlign(ot.inputs.Align.RIGHT).appendField(","),this.appendDummyInput("").setAlign(ot.inputs.Align.RIGHT).appendField(")"),this.setInputsInline(!0),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{max:ot.Msg.MIXLY_TOOLTIP_MATH_MAX,min:ot.Msg.MIXLY_TOOLTIP_MATH_MIN}[t]}))}},le={init:function(){var t=[[ot.Msg.MATH_TWO,"two"],[ot.Msg.MATH_EIGHT,"eight"],[ot.Msg.MATH_TEN,"ten"],[ot.Msg.MATH_SIXTEEN,"sixteen"]];this.setColour(Qt),this.appendDummyInput("").appendField(ot.Msg.MATH_BA),this.appendValueInput("NUM").appendField(new ot.FieldDropdown(t),"OP").appendField(ot.Msg.MATH_JinZhi).setCheck(Number),this.appendDummyInput("").appendField(ot.Msg.MATH_ZHW).appendField(new ot.FieldDropdown(t),"OP2").appendField(ot.Msg.MATH_JinZhi),this.setFieldValue("ten","OP2"),this.setOutput(!0),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP"),n={two:ot.Msg.MATH_Before_two,eight:ot.Msg.MATH_Before_eight,ten:ot.Msg.MATH_Before_ten,sixteen:ot.Msg.MATH_Before_sixteen},i=e.getFieldValue("OP2"),s={two:ot.Msg.MATH_Behind_two,eight:ot.Msg.MATH_Behind_eight,ten:ot.Msg.MATH_Behind_ten,sixteen:ot.Msg.MATH_Behind_sixteen};return n[t]+s[i]}))}},ue={init:function(){var t=[[ot.Msg.LANG_MATH_INT,"int"],[ot.Msg.LANG_MATH_FLOAT,"float"]];this.setColour(Qt),this.setOutput(!0,Number),this.appendDummyInput().appendField(ot.Msg.MIXLY_MICROBIT_RANDOM).appendField(new ot.FieldDropdown(t),"TYPE"),this.appendValueInput("FROM").setCheck(Number).appendField(ot.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.LANG_MATH_RANDOM_INT_INPUT_TO),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TYPE"),n={int:ot.Msg.LANG_MATH_INT,float:ot.Msg.LANG_MATH_FLOAT_RANDOM};return ot.Msg.MATH_RANDOM_INT_TOOLTIP+n[t]}))}},pe={init:function(){this.setColour(Qt),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number).appendField(ot.Msg.LANG_MATH_CONSTRAIN_INPUT_CONSTRAIN),this.appendValueInput("LOW").setCheck(Number).appendField(ot.Msg.LANG_MATH_CONSTRAIN_INPUT_LOW),this.appendValueInput("HIGH").setCheck(Number).appendField(ot.Msg.LANG_MATH_CONSTRAIN_INPUT_HIGH),this.setInputsInline(!0),this.setTooltip(ot.Msg.MATH_CONSTRAIN_TOOLTIP)}},_e={init:function(){this.setColour(Qt),this.appendValueInput("NUM",Number).appendField(ot.Msg.MIXLY_MAP).setCheck(Number),this.appendValueInput("fromLow",Number).appendField(ot.Msg.MIXLY_MAP_FROM).setCheck(Number),this.appendValueInput("fromHigh",Number).appendField(",").setCheck(Number),this.appendValueInput("toLow",Number).appendField(ot.Msg.MIXLY_MAP_TO).setCheck(Number),this.appendValueInput("toHigh",Number).appendField(",").setCheck(Number),this.appendDummyInput("").appendField("]"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(ot.Msg.MIXLY_TOOLTIP_MATH_MAP)}},de={init:function(){this.setColour(Qt),this.appendDummyInput().appendField(new ot.FieldTextInput("0",ot.FieldTextInput.math_number_validator_include_blank),"NUM"),this.setOutput(!0),this.setTooltip(ot.Msg.MATH_NUMBER_TOOLTIP)}},he={init:function(){this.setColour(Qt),this.appendValueInput("NUM").setCheck(Number).appendField(ot.Msg.LANG_MATH_RANDOM_SEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.MIXLY_TOOLTIP_MATH_RANDOM_SEED)}},ce={init:function(){this.setColour(Qt),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number),this.appendValueInput("VAR").setCheck(Number).appendField(ot.Msg.MATH_ROUND).appendField(ot.Msg.TEXT_KEEP),this.appendDummyInput().appendField(ot.Msg.TEXT_DECIMAL),this.setInputsInline(!0),this.setTooltip(ot.Msg.MATH_ROUND_NEW_TOOLTIP)}},Te={init:function(){var t=[[ot.Msg.MIXLY_TO_INT,"int"],[ot.Msg.MIXLY_TO_FLOAT,"float"],[ot.Msg.MIXLY_TO_BITES,"b"],[ot.Msg.LANG_MATH_BYTE+ot.Msg.MIXLY_TO_INT,"bti"]];this.setColour(Qt),this.appendValueInput("VAR").appendField(new ot.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:ot.Msg.MIXLY_PYTHON_TOOLTIP_TOINT,float:ot.Msg.MIXLY_PYTHON_TOOLTIP_TOFLOAT,b:ot.Msg.MIXLY_TOOLTIP_TEXT_TOBYTE}[t]}))}},Ie={init:function(){var t=[[ot.Msg.MIXLY_TO_INT,"int"],[ot.Msg.MIXLY_TO_FLOAT,"float"]];this.setColour(Qt),this.appendValueInput("VAR").appendField(new ot.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:ot.Msg.MIXLY_TOOLTIP_TEXT_TOINT,float:ot.Msg.MIXLY_TOOLTIP_TEXT_TOFLOAT}[t]}))}},me=_e,Ee={init:function(){this.setColour(Qt),this.appendValueInput("VAR").appendField(ot.Msg.LANG_MATH_BYTE+ot.Msg.MIXLY_TO_HEX),this.setOutput(!0,Number),this.setTooltip(ot.Msg.MIXLY_PYTHON_TOOLTIP_TOHEX)}},fe={init:function(){this.setColour(Qt),this.itemCount_=1,this.setMutator(new ot.icons.MutatorIcon(["lists_create_with_item"],this)),this.appendDummyInput("DUMMY").appendField(ot.Msg.MIXLY_PRODUCT+ot.Msg.MIXLY_GENERATE_CARTESIAN_PRODUCT),this.appendValueInput("REPEAT").appendField(ot.Msg.MIXLY_EVERY_PER_ELEPER_ELEMENT),this.appendDummyInput().appendField(ot.Msg.CONTROLS_REPEAT_TITLE_TIMES),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0),this.setTooltip(ot.Msg.LISTS_CREATE_WITH_PYTHON_TOOLTIP),this.updateShape_()},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("lists_create_with_container");e.initSvg();for(var n=e.getInput("STACK").connection,i=0;i1&&"\\"===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 Re={init:function(){this.setColour(ge),this.appendDummyInput().appendField(this.newQuote_(!0)).appendField(new ot.FieldTextInput("",ot.FieldTextInput.char_validator),"TEXT").appendField(this.newQuote_(!1)),this.setOutput(!0,Number),this.setTooltip(ot.Msg.TEXT_CHAR_TOOLTIP)},newQuote_:function(t){if(1==t)var e="../../media/quote2.png";else e="../../media/quote3.png";return new ot.FieldImage(e,7,12,'"')}},Ae={init:function(){this.setColour(ge),this.appendValueInput("A").setCheck([String,Number]),this.appendValueInput("B").setCheck([String,Number]).appendField(ot.Msg.MIXLY_TEXT_JOIN),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(ot.Msg.MIXLY_TOOLTIP_TEXT_JOIN)}},Se={init:function(){this.setColour(ge),this.appendValueInput("VAR").setCheck(Number).appendField(ot.Msg.MIXLY_TOCHAR),this.setOutput(!0,String),this.setTooltip(ot.Msg.MIXLY_TOOLTIP_TEXT_TOCHAR)}},Ce={init:function(){this.setColour(ge),this.appendValueInput("VAR").setCheck(String).appendField(ot.Msg.MIXLY_TOASCII),this.setOutput(!0,Number),this.setTooltip(ot.Msg.MIXLY_TOOLTIP_TEXT_TOASCII)}},Le={init:function(){this.setColour(ge),this.appendValueInput("VAR").appendField(ot.Msg.MIXLY_TOSTRING),this.setOutput(!0,String),this.setTooltip(ot.Msg.MIXLY_PYTHON_TOOLTIP_TOTEXT)}},ye={init:function(){this.setColour(ge),this.appendValueInput("VAR").appendField(ot.Msg.MIXLY_LENGTH),this.setOutput(!0,Number),this.setTooltip(ot.Msg.MIXLY_TOOLTIP_TEXT_LENGTH)}},De={init:function(){this.WHERE_OPTIONS=[[ot.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[ot.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[ot.Msg.TEXT_GET_INDEX_RANDOM+1+ot.Msg.TEXT_CHARAT2,"RANDOM"]],this.setHelpUrl(ot.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(ge),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number),this.appendDummyInput().appendField(ot.Msg.LISTS_GET_INDEX_GET,"MODE"),ot.Msg.LISTS_GET_INDEX_TAIL&&this.appendDummyInput("TAIL").appendField(ot.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"),n=t.getFieldValue("WHERE"),i="";switch(e+" "+n){case"GET FROM_START":case"GET FROM_END":i=ot.Msg.LISTS_GET_INDEX_TOOLTIP_GET_FROM;break;case"GET RANDOM":i=ot.Msg.LISTS_GET_INDEX_TOOLTIP_GET_RANDOM;break;case"GET_REMOVE FROM_START":case"GET_REMOVE FROM_END":i=ot.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM;break;case"GET_REMOVE RANDOM":i=ot.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM}return"FROM_START"!=n&&"FROM_END"!=n||(i+=" "+ot.Msg.LISTS_INDEX_FROM_START_TOOLTIP.replace("%1",ot.Msg.ONE_BASED_INDEXING?"#1":"#0")),i}));var e=this;this.setTooltip((function(){var t=e.getFieldValue("WHERE"),n={FROM_START:ot.Msg.LISTS_GET_INDEX_FROM_START,FROM_END:ot.Msg.LISTS_GET_INDEX_FROM_END,RANDOM:ot.Msg.TEXT_GET_INDEX_RANDOM};return ot.Msg.PROCEDURES_DEFRETURN_RETURN+ot.Msg.MIXLY_MICROBIT_TYPE_STRING+n[t]+"n"+ot.Msg.TEXT_CHARAT2}))},mutationToDom:function(){var t=document.createElement("mutation");t.setAttribute("statement",!this.outputConnection);var e=this.getInput("AT").type==ot.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),ot.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL").appendField(ot.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT");var e=new ot.FieldDropdown(this.WHERE_OPTIONS,(function(e){var n="FROM_START"==e||"FROM_END"==e;if(n!=t){var i=this.sourceBlock_;return i.updateAt_(n),i.setFieldValue(e,"WHERE"),null}}));this.getInput("AT").appendField(e,"WHERE"),ot.Msg.LISTS_GET_INDEX_TAIL&&this.moveInputBefore("TAIL",null)}},Ne={init:function(){this.setHelpUrl(ot.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(ge),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number).appendField(ot.Msg.LISTS_GET_INDEX_GET+" "+ot.Msg.LISTS_GET_INDEX_FROM_START),this.appendDummyInput().appendField(ot.Msg.TEXT_CHARAT2),this.setOutput(!0),this.setTooltip(ot.Msg.PROCEDURES_DEFRETURN_RETURN+ot.Msg.MIXLY_MICROBIT_TYPE_STRING+ot.Msg.LISTS_GET_INDEX_FROM_START+"n"+ot.Msg.TEXT_CHARAT2)}},be={init:function(){this.setHelpUrl(ot.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(ge),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput().appendField(ot.Msg.TEXT_RANDOM_CHAR),this.setOutput(!0),this.setTooltip(ot.Msg.TEXT_RANDOM_CHAR_TOOLTIP)}},ve={init:function(){this.WHERE_OPTIONS_1=[[ot.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[ot.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[ot.Msg.LISTS_GET_SUBLIST_START_FIRST,"FIRST"]],this.WHERE_OPTIONS_2=[[ot.Msg.LISTS_GET_SUBLIST_END_FROM_START,"FROM_START"],[ot.Msg.LISTS_GET_SUBLIST_END_FROM_END,"FROM_END"],[ot.Msg.LISTS_GET_SUBLIST_END_LAST,"LAST"]],this.setHelpUrl(ot.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(ge),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput("").appendField(ot.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(ot.Msg._GET_TEXT_SUBLIST_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT1").type==ot.INPUT_VALUE;t.setAttribute("at1",e);var n=this.getInput("AT2").type==ot.INPUT_VALUE;return t.setAttribute("at2",n),t},domToMutation:function(t){var e="true"==t.getAttribute("at1"),n="true"==t.getAttribute("at2");this.updateAt_(1,e),this.updateAt_(2,n)},updateAt_:function(t,e){this.removeInput("AT"+t),this.removeInput("ORDINAL"+t,!0),e?(this.appendValueInput("AT"+t).setCheck(Number),ot.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL"+t).appendField(ot.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT"+t);var n=new ot.FieldDropdown(this["WHERE_OPTIONS_"+t],(function(n){var i="FROM_START"==n||"FROM_END"==n;if(i!=e){var s=this.sourceBlock_;return s.updateAt_(t,i),s.setFieldValue(n,"WHERE"+t),null}}));this.getInput("AT"+t).appendField(n,"WHERE"+t),1==t&&(this.moveInputBefore("AT1","AT2"),this.getInput("ORDINAL1")&&this.moveInputBefore("ORDINAL1","AT2"))}},we={init:function(){this.setHelpUrl(ot.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(ge),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT1").appendField(ot.Msg.LISTS_GET_INDEX_GET+" "+ot.Msg.LISTS_GET_INDEX_FROM_START),this.appendValueInput("AT2").appendField(ot.Msg.LISTS_GET_SUBLIST_END_FROM_START),this.appendDummyInput().appendField(ot.Msg.TEXT_CHARAT2),this.setInputsInline(!0),this.setOutput(!0,["List",String]),this.setTooltip(ot.Msg._GET_TEXT_SUBLIST_TOOLTIP)}},Fe={init:function(){var t=[[ot.Msg.MIXLY_EQUALS,"==="],[ot.Msg.MIXLY_STARTSWITH,"startswith"],[ot.Msg.MIXLY_ENDSWITH,"endswith"]];this.setColour(ge),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(new ot.FieldDropdown(t),"DOWHAT").setCheck(String),this.setOutput(!0,[Boolean,Number]),this.setInputsInline(!0)}},Pe={init:function(){this.setColour(ge),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(ot.Msg.MIXLY_COMPARETO).setCheck(String),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(ot.Msg.MIXLY_COMPARETO_HELP)}},ke={init:function(){var t=[[ot.Msg.TEXT_UPPER,"upper"],[ot.Msg.TEXT_TITLE,"title"],[ot.Msg.TEXT_CAPITALIZE,"capitalize"],[ot.Msg.TEXT_SWAPCASE,"swapcase"],[ot.Msg.TEXT_LOWER,"lower"]];this.setColour(ge),this.appendValueInput("VAR").appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new ot.FieldDropdown(t),"CAPITAL").setCheck(String),this.setOutput(!0,String);var e=this;this.setTooltip((function(){var t=e.getFieldValue("CAPITAL");return{upper:ot.Msg.MIXLY_MIXPY_TEXT_UPPER_TOOLTIP,title:ot.Msg.MIXLY_MIXPY_TEXT_TITLE_TOOLTIP,swapcase:ot.Msg.MIXLY_MIXPY_TEXT_SWAPCASE_TOOLTIP,capitalize:ot.Msg.MIXLY_MIXPY_TEXT_CAPITALIZE_TOOLTIP,lower:ot.Msg.MIXLY_MIXPY_TEXT_LOWER_TOOLTIP}[t]}))}},Ve={init:function(){var t=[[ot.Msg.TEXT_LJUST,"ljust"],[ot.Msg.TEXT_CENTER,"center"],[ot.Msg.TEXT_RJUST,"rjust"]];this.setColour(ge),this.appendValueInput("VAR").appendField(new ot.FieldDropdown(t),"CENTER").setCheck(String),this.appendValueInput("WID").appendField(ot.Msg.MIXLY_WIDTH).setCheck(Number),this.appendValueInput("Symbol").appendField(ot.Msg.MIXLY_RECT_Fill).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(ot.Msg.MIXLY_MIXPY_TEXT_CENTER_TOOLTIP)}},Ye={init:function(){this.setColour(ge),this.appendValueInput("VAR").appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).setCheck(String),this.appendValueInput("STR").appendField(ot.Msg.MIXLY_MID+ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER).setCheck(String),this.appendDummyInput().appendField(ot.Msg.MIXLY_LIST_INDEX),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(ot.Msg.MIXLY_MIXPY_TEXT_FIND_TOOLTIP)}},xe={init:function(){this.setColour(ge),this.appendValueInput("VAR").appendField(ot.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_USE_STR).setCheck(String),this.appendValueInput("LIST").appendField(ot.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_SEQ).setCheck("List","Tuple","Set","Dict"),this.appendDummyInput().appendField(ot.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_GET_STR),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(ot.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_TOOLTIP)}},Ue={init:function(){this.setColour(ge),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("STR1").appendField(ot.Msg.MIXLY_MIXPY_REPLACE).setCheck(String),this.appendValueInput("STR2").appendField(ot.Msg.LISTS_SET_INDEX_INPUT_TO).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(ot.Msg.MIXLY_MIXPY_TEXT_REPLACE_TOOLTIP)}},Be={init:function(){this.setColour(ge),this.appendValueInput("VAR"),this.appendValueInput("VAL").appendField(ot.Msg.LIST_SPLIT_AS),this.appendDummyInput("").appendField(ot.Msg.LIST_SPLIT),this.setOutput(!0,"List"),this.setTooltip(ot.Msg.MIXLY_MIXPY_TEXT_SPLIT_TOOLTIP),this.setInputsInline(!0)}},Xe={init:function(){var t=[[ot.Msg.TEXT_TRIM_BOTH,"strip"],[ot.Msg.TEXT_TRIM_LEFT,"lstrip"],[ot.Msg.TEXT_TRIM_RIGHT,"rstrip"]];this.setColour(ge),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(ot.Msg.TEXT_STRIM),this.appendDummyInput("").appendField(new ot.FieldDropdown(t),"TOWHAT"),this.appendDummyInput("").appendField(ot.Msg.TEXT_BLANK),this.setOutput(!0,String),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{strip:ot.Msg.TEXT_TRIM_BOTH_TOOLTIP,lstrip:ot.Msg.TEXT_TRIM_LEFT_TOOLTIP,rstrip:ot.Msg.TEXT_TRIM_RIGHT_TOOLTIP}[t]}))}},Ge={init:function(){this.setColour(ge),this.appendDummyInput("").appendField(ot.Msg.MIXLY_MICROPYTHON_FORMAT),this.appendDummyInput("").appendField(new ot.FieldTextInput("str"),"VAR"),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new ot.icons.MutatorIcon(["text_create_with_item"],this)),this.setOutput(!0),this.setTooltip(ot.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 n=e.getInput("STACK").connection,i=0;ie?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},xn={init:function(){this.setColour(Vn),this.appendDummyInput().appendField(ot.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(ot.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},Un={init:function(){this.setColour(Vn),this.appendDummyInput().appendField(ot.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},Bn={init:function(){this.setColour(Vn),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(ot.Msg.DICT_KEYS),this.setTooltip(ot.Msg.DICTS_KEYS_TOOLTIP),this.setOutput(!0,"List")}},Xn={init:function(){this.setColour(Vn),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(ot.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(ot.Msg.DICTS_ADD_VALUE),this.setOutput(!0),this.setTooltip(ot.Msg.DICTS_GET_TOOLTIP)}},Gn={init:function(){this.setColour(Vn),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(ot.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(ot.Msg.DICTS_ADD_VALUE),this.appendValueInput("VAR").appendField(ot.Msg.DICTS_DEFAULT_VALUE),this.setOutput(!0),this.setTooltip(ot.Msg.DICTS_GET_DEFAULT_TOOLTIP)}},Hn={init:function(){this.setColour(Vn),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(ot.Msg.DICTS_ADD),this.appendDummyInput(),this.appendValueInput("VAR").appendField(ot.Msg.DICTS_ADD_VALUE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.DICTS_ADD_OR_CHANGE_TOOLTIP)}},Wn={init:function(){this.setColour(Vn),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(ot.Msg.DICTS_DELETE_IN),this.appendDummyInput("").appendField(ot.Msg.DICTS_DELETE_VALUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.DICTS_DELETE_TOOLTIP)}},Kn={init:function(){this.setColour(Vn),this.appendValueInput("DICT2").setCheck("Dict").appendField(ot.Msg.MAKE_DICT),this.appendValueInput("DICT").setCheck("Dict").appendField(ot.Msg.DICT_UPDATE),this.appendDummyInput("").appendField(ot.Msg.MIXLY_MID),this.setTooltip(ot.Msg.DICTS_UPDATE_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},jn={init:function(){this.setColour(Vn),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(ot.Msg.DICT_CLEAR),this.setTooltip(ot.Msg.DICTS_CLEAR_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},qn={init:function(){this.setColour(Vn),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(ot.Msg.DICT_ITEMS),this.setTooltip(ot.Msg.DICTS_ITEMS_TOOLTIP),this.setOutput(!0,"List")}},$n={init:function(){this.setColour(Vn),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(ot.Msg.DICT_VALUES),this.setTooltip(ot.Msg.DICTS_VALUES_TOOLTIP),this.setOutput(!0,"List")}},zn={init:function(){this.setColour(Vn),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(ot.Msg.MIXLY_LENGTH),this.setTooltip(ot.Msg.DICT_LENGTH_TOOLTIP),this.setOutput(!0,Number)}},Qn={init:function(){this.setColour(Vn),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(ot.Msg.DICT_DELDICT),this.setTooltip(ot.Msg.DICTS_DEL_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Jn={init:function(){this.MODE=[[ot.Msg.DICTS_ADD_OR_CHANGE,"INSERT"],[ot.Msg.MIXLY_MICROBIT_JS_DELETE_VAR,"DELETE"]],this.setHelpUrl(ot.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(Vn),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("AT2"),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(ot.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).appendField(ot.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=ot.Msg.DICTS_ADD_TOOLTIP;break;case"DELETE":e=ot.Msg.DICTS_DELETE_TOOLTIP}return e}))},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT2").type==ot.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 ot.FieldDropdown(this.MODE,(function(e){var n="INSERT"==e;if(n!=t){var i=this.sourceBlock_;return i.updateAt_(n),i.setFieldValue(e,"WHERE"),null}}));this.getInput("AT2").appendField(e,"WHERE")}},Zn={init:function(){this.setColour(Vn),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(ot.Msg.blockpy_DICT_POP),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(ot.Msg.DICTS_ADD_VALUE),this.setTooltip(ot.Msg.DICT_POP_TOOLTIP),this.setInputsInline(!0),this.setOutput(!0)}},ti={init:function(){this.setColour(Vn),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(ot.Msg.DICTS_SET_DEFAULT),this.appendDummyInput("").appendField(ot.Msg.DICTS_DEFAULT_VALUE),this.appendValueInput("VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.DICTS_SETDEFAULT_TOOLTIP)}},ei={init:function(){this.setColour(Vn),this.appendDummyInput("").appendField(new ot.FieldLabel(ot.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 ot.icons.MutatorIcon(["dicts_create_with_item"],this)),this.setTooltip(ot.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 n=e.getInput("STACK").connection,i=0;ie?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},ni={init:function(){this.setColour(Vn),this.appendValueInput("VAR").appendField(ot.Msg.MIXLY_TODICT),this.setOutput(!0),this.setTooltip(ot.Msg.MIXLY_PYTHON_TOOLTIP_TODICT)}},ii={init:function(){this.setColour(Vn),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(ot.Msg.MIXLY_TO_JSON),this.setTooltip(ot.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0)}},si={init:function(){this.setColour(Vn),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(ot.Msg.MIXLY_CONVERT_TO_JSON),this.setTooltip(ot.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0)}},oi={init:function(){this.setColour(Vn),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("VAR1").appendField("key1"),this.appendValueInput("VAR2").appendField("index"),this.appendValueInput("VAR3").appendField("key2"),this.appendValueInput("VAR4").appendField("key3"),this.setInputsInline(!0),this.setTooltip(ot.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0)}},ri=210,ai={init:function(){var t=ot.RTL?[["=","EQ"],["≠","NEQ"],[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["=","EQ"],["≠","NEQ"],["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(ri),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new ot.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{EQ:ot.Msg.LOGIC_COMPARE_TOOLTIP_EQ,NEQ:ot.Msg.LOGIC_COMPARE_TOOLTIP_NEQ,LT:ot.Msg.LOGIC_COMPARE_TOOLTIP_LT,LTE:ot.Msg.LOGIC_COMPARE_TOOLTIP_LTE,GT:ot.Msg.LOGIC_COMPARE_TOOLTIP_GT,GTE:ot.Msg.LOGIC_COMPARE_TOOLTIP_GTE}[t]})),this.prevBlocks_=[null,null]}},li={init:function(){var t=ot.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]],e=ot.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(ri),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new ot.FieldDropdown(t),"OP1"),this.appendValueInput("C").appendField(new ot.FieldDropdown(e),"OP2"),this.setInputsInline(!0),this.setTooltip(ot.Msg.MIXLY_PYTHON_LOGIC_COMPARE_CONTINOUS_TOOLTIP)}},ui={init:function(){var t=[[ot.Msg.LOGIC_OPERATION_AND,"AND"],[ot.Msg.LOGIC_OPERATION_OR,"OR"],[ot.Msg.LOGIC_OPERATION_NOR,"NOR"],[ot.Msg.LOGIC_OPERATION_XOR,"XOR"]];this.setColour(ri),this.setOutput(!0,Boolean),this.appendValueInput("A").setCheck([Boolean,Number]),this.appendValueInput("B").setCheck([Boolean,Number]).appendField(new ot.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{AND:ot.Msg.LOGIC_OPERATION_TOOLTIP_AND,OR:ot.Msg.LOGIC_OPERATION_TOOLTIP_OR,NOR:ot.Msg.LOGIC_OPERATION_TOOLTIP_NOR,XOR:ot.Msg.LOGIC_OPERATION_TOOLTIP_XOR}[t]}))}},pi={init:function(){this.setColour(ri),this.setOutput(!0,Boolean),this.appendValueInput("BOOL").setCheck([Number,Boolean]).appendField(ot.Msg.LOGIC_NEGATE_TITLE),this.setTooltip(ot.Msg.LOGIC_NEGATE_TOOLTIP)}},_i={init:function(){var t=[[ot.Msg.LOGIC_BOOLEAN_TRUE,"TRUE"],[ot.Msg.LOGIC_BOOLEAN_FALSE,"FALSE"]];this.setColour(ri),this.setOutput(!0,Boolean),this.appendDummyInput().appendField(new ot.FieldDropdown(t),"BOOL"),this.setTooltip(ot.Msg.LOGIC_BOOLEAN_TOOLTIP)}},di={init:function(){this.setColour(ri),this.setOutput(!0),this.appendDummyInput().appendField(ot.Msg.LOGIC_NULL),this.setTooltip(ot.Msg.LOGIC_NULL_TOOLTIP)}},hi={init:function(){this.setColour(ri),this.appendValueInput("A"),this.appendValueInput("B").appendField(ot.Msg.LOGIC_TERNARY_IF_TRUE),this.appendValueInput("C").appendField(ot.Msg.LOGIC_TERNARY_IF_FALSE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ot.Msg.MIXLY_TOOLTIP_LOGIT_TRUEORFALSE)}},ci={init:function(){var t=[[ot.Msg.TEXT_APPEND_TO,"in"],[ot.Msg.MIXLY_PYTHON_LOGIC_IS_NOT_IN,"not in"]];this.setColour(ri),this.appendValueInput("A"),this.appendValueInput("B").setCheck([String,"List"]).appendField(new ot.FieldDropdown(t),"BOOL"),this.appendDummyInput("").appendField(ot.Msg.MICROBIT_LOGIC_IS_IN),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(ot.Msg.IN)}},Ti={init:function(){var t=[[ot.Msg.MIXLY_PYTHON_LOGIC_IS,"is"],[ot.Msg.MIXLY_PYTHON_LOGIC_IS_NOT,"is not"]];this.setColour(ri),this.appendValueInput("A"),this.appendValueInput("B").appendField(new ot.FieldDropdown(t),"BOOL"),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(ot.Msg.MIXLY_PYTHON_LOGIC_IS_TOOLTIP)}},Ii={init:function(){this.setColour(ri),this.appendValueInput("VAR").appendField(ot.Msg.MIXLY_TOBOOL),this.setOutput(!0,Boolean),this.setTooltip(ot.Msg.MIXLY_PYTHON_TOOLTIP_TOBOOL)}},mi={init:function(){this.setColour(0),this.appendValueInput("fn").setCheck(String).appendField(ot.Msg.MIXLY_PYTHON_STORAGE_OPEN_FILE_WITH_OS+"(For Windows)"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Ei={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new ot.FieldDropdown([[ot.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[ot.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendValueInput("FILE").appendField(ot.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"),n=ot.Msg.MIXLY_USE,i=ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=ot.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,o=ot.Msg.MIXLY_BELONG;return n+{r:ot.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:ot.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+o+i+s}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},fi={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new ot.FieldDropdown([[ot.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[ot.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[ot.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"),n=ot.Msg.MIXLY_USE,i=ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=ot.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,o=ot.Msg.MIXLY_BELONG,r=ot.Msg.PY_STORAGE_FILE_OBJECT;return n+{r:ot.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:ot.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+o+i+s+r}))}},gi={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE);this.appendDummyInput().appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new ot.FieldDropdown([[ot.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[ot.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendDummyInput().appendField(ot.Msg.MIXPY_TEXT_ENCODE).appendField(new ot.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"),n=ot.Msg.MIXLY_USE,i=ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=ot.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,o=ot.Msg.MIXLY_BELONG,r=ot.Msg.PY_STORAGE_FILE_OBJECT;return n+{r:ot.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:ot.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+o+i+s+r}))}},Oi={init:function(){this.setColour(0),this.appendValueInput("data").setCheck(String).appendField(ot.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendValueInput("FILE").appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ot.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE+ot.Msg.MIXLY_MICROBIT_TYPE_STRING+ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE)}},Mi={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new ot.FieldDropdown([[ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL,"read"],[ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE,"readline"],[ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES,"readlines"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String)}},Ri={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new ot.FieldDropdown([[ot.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,"read"],[ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,"readline"],[ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE,"readlines"]]),"MODE"),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(ot.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"),n=ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE,i=ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER;return n+{read:ot.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,readline:ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,readlines:ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE}[e]+"x"+i}))}},Ai={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.setNextStatement(!0),this.appendValueInput("SIZE").setCheck(Number).appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE),this.appendDummyInput().appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(ot.Msg.MICROBIT_PYTHON_TYPE)}},Si={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(ot.Msg.HTML_FILE),this.appendDummyInput().appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean),this.setTooltip(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT1)}},Ci={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput().appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILENAME),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILENAME)}},Li={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE)}},yi={init:function(){this.setColour(0),this.appendDummyInput().appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES)}};ot.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE;const Di={init:function(){this.setColour(0),this.appendDummyInput().appendField(new ot.FieldDropdown([[ot.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE,"remove"],[ot.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(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE)}},Ni={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE),this.appendDummyInput().appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE+ot.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE)}},bi={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_RETURN_FILE),this.appendDummyInput().appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_PRESENT_LOCATION),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_TELL)}},vi={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION),this.appendDummyInput().appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION),this.appendDummyInput().appendField(new ot.FieldDropdown([[ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,"start"],[ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,"current"],[ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END,"end"]]),"MODE"),this.appendDummyInput().appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(ot.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"),n=ot.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION+ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION,i=ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER,s=ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET;return n+" "+{start:ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,current:ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,end:ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END}[e]+s+"x"+i}))}},wi={init:function(){this.setColour(0),this.appendDummyInput().appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR)}},Fi={init:function(){this.setColour(0),this.appendValueInput("PATH").setCheck(String).appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH),this.appendDummyInput().appendField(ot.Msg.MIXLY_ESP32_SET),this.appendDummyInput().appendField(new ot.FieldDropdown([[ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,"mkdir"],[ot.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 ot.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH+"x"+ot.Msg.MIXLY_ESP32_SET+{mkdir:ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,makedirs:ot.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},Pi={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME),this.appendValueInput("NEWFILE").setCheck(String).appendField(ot.Msg.MIXLY_AS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME)}},ki={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR)}},Vi={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.appendDummyInput().appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT),this.appendDummyInput().appendField(new ot.FieldDropdown([[ot.Msg.HTML_FILE,"isfile"],[ot.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 ot.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH+"x"+ot.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT+{isfile:ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,isdir:ot.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},Yi={init:function(){this.setColour(0),this.appendValueInput("SPISUB").appendField(ot.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("SUB").appendField(ot.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(ot.Msg.MIXLY_SETUP+ot.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(ot.Msg.MIXLY_SD_CARD),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},xi={init:function(){this.setColour(0),this.appendValueInput("VAR").appendField(ot.Msg.MIXLY_SD_CARD),this.appendValueInput("DIR").setCheck(String).appendField(ot.Msg.MIXLY_SDCARD_MOUNT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip()}},Ui={};Ui.NAME_TYPE=ot.PROCEDURE_CATEGORY_NAME,Ui.allProcedures=function(t){for(var e=t.getAllBlocks(!1),n=[],i=[],s=0;s"),this.appendValueInput("style").appendField(ot.Msg.MIXLY_AIP_ATTR).setAlign(ot.inputs.Align.RIGHT),this.appendStatementInput("DO").appendField(""),this.setInputsInline(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Ps={init:function(){this.setColour(Ds),this.appendDummyInput().appendField(ot.Msg.HTML_STYLE),this.appendStatementInput("STYLE"),this.setOutput(!0)}},ks={init:function(){this.setColour(Ds),this.appendDummyInput().appendField(ot.Msg.HTML_FORM_CONTENT).appendField(new ot.FieldDropdown([[ot.Msg.HTML_TEXT,"text"],[ot.Msg.HTML_EMAIL,"email"],[ot.Msg.HTML_NUMBER,"number"],[ot.Msg.HTML_PASSWORD,"password"],[ot.Msg.HTML_CHECKBOX,"checkbox"],[ot.Msg.HTML_RADIOBUTTON,"radiobutton"],[ot.Msg.HTML_BUTTON,"button"],[ot.Msg.HTML_COLOUR,"colour"],[ot.Msg.HTML_DATE,"date"],[ot.Msg.HTML_LOCALTIME,"local time"],[ot.Msg.HTML_FILE,"file"],[ot.Msg.HTML_HIDDEN,"hidden"],[ot.Msg.HTML_IMAGE,"image"],[ot.Msg.HTML_MONTH,"month"],[ot.Msg.HTML_RANGE,"range"],[ot.Msg.HTML_RESET,"reset"],[ot.Msg.HTML_SEARCH,"search"],[ot.Msg.HTML_SUBMIT,"submit"],[ot.Msg.HTML_TELEPHONENUMBER,"telephone number"],[ot.Msg.HTML_TIME,"time"],[ot.Msg.HTML_URL,"url"],[ot.Msg.HTML_WEEK,"week"]]),"LEVEL"),this.appendDummyInput().appendField(ot.Msg.HTML_NAME).appendField(new ot.FieldTextInput("car"),"NAME"),this.appendDummyInput().appendField(ot.Msg.HTML_VALUE).appendField(new ot.FieldTextInput("go"),"VALUE"),this.appendValueInput("style").appendField(ot.Msg.MIXLY_AIP_ATTR).setAlign(ot.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Vs={init:function(){this.setColour(Ds),this.appendDummyInput().appendField(new ot.FieldTextInput("property"),"KEY").appendField(":").appendField(new ot.FieldTextInput("value"),"VALUE"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Ys={init:function(){this.setColour(Ds),this.appendDummyInput().appendField(new ot.FieldTextInput("property"),"KEY").appendField(":").appendField(new ot.FieldColour("#ff0000"),"RGB_LED_COLOR"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},xs={init:function(){this.setColour(Ds),this.appendDummyInput().appendField(ot.Msg.HTML_TEXT).appendField(new ot.FieldTextInput("text"),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Us=160,Bs={init:function(){this.setColour(Us),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Tabular Abstraction:"),this.appendDummyInput().appendField(new ot.FieldTable(""),"TEXT")}},Xs={init:function(){this.setColour(Us),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Code Block:"),this.appendDummyInput().appendField(new ot.FieldMultilineInput(""),"TEXT")}},Gs={init:function(){this.setColour(Us),this.appendDummyInput().appendField("Code Expression:"),this.appendDummyInput().appendField(new ot.FieldMultilineInput(""),"TEXT"),this.setOutput(!0)}},Hs={init:function(){this.setColour(Us),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("VALUE").appendField(""),this.setInputsInline(!1)}},Ws={init:function(){this.setColour(Us),this.appendDummyInput().appendTitle("Comment:").appendTitle(new ot.FieldTextInput(""),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("This comment will be ignored by Python")}},Ks={init:function(){this.setColour(Us),this.appendValueInput("VALUE").appendField(ot.Msg.TYPE_CHECK),this.setInputsInline(!1),this.setOutput(!0,"Type")}},js={init:function(){this.setColour(Us),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new ot.icons.MutatorIcon(["text_print_multiple_item"],this)),this.setTooltip(ot.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=ot.Block.obtain(t,"text_print_multiple_container");e.initSvg();for(var n=e.getInput("STACK").connection,i=0;i= stop:"," yield start"," start -= abs(step)"])};if(t=function(t,e,n){return"("+t+" <= "+e+") and "+l()+"("+t+", "+e+", "+n+") or "+u()+"("+t+", "+e+", "+n+")"},ot.isNumber(i)&&ot.isNumber(s)&&ot.isNumber(o))i=parseFloat(i),s=parseFloat(s),o=Math.abs(parseFloat(o)),0==i%1&&0==s%1&&0==o%1?(i<=s?(s++,t=0==i&&1==o?s:i+", "+s,1!=o&&(t+=", "+o)):t=i+", "+--s+", -"+o,t="range("+t+")"):(t=i",GTE:">="};const Va=function(t,e){var n=this.getFieldValue("OP"),i="&&"==n?e.ORDER_LOGICAL_AND:e.ORDER_LOGICAL_OR,s=e.valueToCode(this,"A",i)||"False",o=e.valueToCode(this,"B",i)||"False";if("AND"==n)var r=s+" and "+o;else if("OR"==n)r=s+" or "+o;else if("NOR"==n)r="not("+s+"^"+o+")";else r=s+"^"+o;return[r,i]},Ya=function(t,e){var n=e.ORDER_UNARY_PREFIX;return["not "+(e.valueToCode(this,"BOOL",n)||"False"),n]},xa=function(t,e){return["TRUE"==this.getFieldValue("BOOL")?"True":"False",e.ORDER_ATOMIC]},Ua=function(t,e){return["None",e.ORDER_ATOMIC]},Ba=function(t,e){var n=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"False";return["("+(e.valueToCode(this,"B",e.ORDER_ATOMIC)||"False")+" if "+n+" else "+(e.valueToCode(this,"C",e.ORDER_ATOMIC)||"False")+")",e.ORDER_ATOMIC]},Xa=function(t,e){var n=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",i=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[n+" "+this.getFieldValue("BOOL")+" "+i,e.ORDER_ATOMIC]},Ga=function(t,e){var n=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",i=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[n+" "+this.getFieldValue("BOOL")+" "+i,e.ORDER_ATOMIC]},Ha=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"},ja=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')",e.ORDER_ATOMIC]},qa=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"', encoding=\""+this.getFieldValue("CODE")+'")',e.ORDER_ATOMIC]},$a=function(t,e){var n=e.valueToCode(this,"data",e.ORDER_ATOMIC);return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".write("+n+")\n"},za=function(t,e){var n=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+n+"()",e.ORDER_ATOMIC]},Qa=function(t,e){var n=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+n+"("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Ja=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".readline("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Za=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".writable()",e.ORDER_ATOMIC]},tl=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".name()",e.ORDER_ATOMIC]},el=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".close()\n"},nl=function(t,e){e.definitions_.import_os="import os";return["os.listdir()",e.ORDER_ATOMIC]},il=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},sl=function(t,e){return e.definitions_.import_os="import os",["os.path.getsize("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},ol=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".tell()",e.ORDER_ATOMIC]},rl=function(t,e){var n=this.getFieldValue("MODE"),i=0;return i="start"==n?0:"current"==n?1:2,e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".seek("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+","+i+")\n"},al=function(t,e){return e.definitions_.import_os="import os","os.chdir("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},ll=function(t,e){e.definitions_.import_os="import os";return["os.getcwd()",e.ORDER_ATOMIC]},ul=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"PATH",e.ORDER_ATOMIC)+")\n"},pl=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"},_l=function(t,e){e.definitions_.import_os="import os";var n=e.valueToCode(this,"FILE",e.ORDER_ATOMIC);return["os."+this.getFieldValue("MODE")+"("+n+")",e.ORDER_ATOMIC]},dl=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"},hl=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"},cl=function(t,e){var n=e.variableDB_.getName(this.getFieldValue("NAME"),ot.Procedures.NAME_TYPE),i=(this.getInput("STACK")&&e.statementToCode(this,"STACK"))??" pass\n";e.INFINITE_LOOP_TRAP&&(i=e.INFINITE_LOOP_TRAP.replace(/%1/g,"'"+this.id+"'")+i);var s=e.valueToCode(this,"RETURN",e.ORDER_NONE)||"";s&&(s=" return "+s+"\n");for(var o=[],r=0;r\n\n\n\t\n"+e.statementToCode(this,"HEAD")+"\n\n"+e.statementToCode(this,"BODY")+"\n\n'''",e.ORDER_ATOMIC]},ql=function(t,e){var n=e.statementToCode(this,"DO"),i=this.getFieldValue("LEVEL");return"\n"+n+"\n"},$l=function(t,e){var n=e.statementToCode(this,"DO"),i=this.getFieldValue("LEVEL");if("head"==i)var s="<"+i+'>\n\t\n'+n+""+i+">\n";else s="<"+i+">\n"+n+""+i+">\n";return s},zl=function(t,e){var n=e.statementToCode(this,"DO"),i=this.getFieldValue("LEVEL");return"<"+i+">\n"+n+""+i+">\n"},Ql=function(t,e){var n=e.statementToCode(this,"DO"),i=e.valueToCode(this,"style"),s=this.getFieldValue("LEVEL");return"<"+s+" "+i+" >\n"+n+""+s+">\n"},Jl=function(t,e){return['style="'+e.statementToCode(this,"STYLE")+'"',e.ORDER_ATOMIC]},Zl=function(t,e){return'"},tu=function(){return this.getFieldValue("KEY")+":"+this.getFieldValue("VALUE")+";"},eu=function(){return this.getFieldValue("TEXT")+"\n"},nu=function(t){return t.getFieldValue("TEXT")+"\n"},iu=function(t,e){return[t.getFieldValue("TEXT"),e.ORDER_ATOMIC]},su=function(t,e){return(e.valueToCode(t,"VALUE",e.ORDER_ATOMIC)||"")+"\n"},ou=function(){return""},ru=function(t,e){return["type("+(e.valueToCode(t,"VALUE",e.ORDER_MEMBER)||"___")+")",e.ORDER_ATOMIC]},au=function(t,e){for(var n=t.getFieldValue("NAME"),i=t.hasReturn_,s=new Array(t.itemCount_),o=0;o0?e.join("\n")+"\n"+i.join("\n")+"\n"+s.join("")+"\n"+t+"while True:\n"+o.join("")+r.join("\n"):e.join("\n")+"\n"+i.join("\n")+"\n"+s.join("")+"\n"+t+r.join("\n")},uu.scrubNakedValue=function(t){return t+"\n"},uu.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},uu.multiline_quote_=function(t){return"'''"+(t=t.replace(/'''/g,"\\'\\'\\'"))+"'''"},uu.scrub_=function(t,e,n){var i="";if(!t.outputConnection||!t.outputConnection.targetConnection){(o=t.getCommentText())&&(o=ot.utils.string.wrap(o,uu.COMMENT_WRAP-3),i+=uu.prefixLines(o+"\n","# "));for(var s=0;s0?"int("+a+" + "+s+")":s<0?"int("+a+" - "+-s+")":"int("+a+")",i&&(a="-"+a)),a};const pu=205,_u={init:function(){this.setColour(pu),this.appendDummyInput("").appendField(ot.Msg.MIXLY_CHOOSE_AND_GET).appendField(new ot.FieldDropdown([[ot.Msg.MIXLY_CHOOSE_AND_GET_ONE_FILE_NAME,"getOneFile"],[ot.Msg.MIXLY_CHOOSE_AND_GET_MANY_FILE_NAMES,"getManyFiles"],[ot.Msg.MIXLY_CHOOSE_AND_GET_DIR,"getDirectory"]]),"TYPE"),this.setInputsInline(!0),this.setOutput(!0)}},du={init:function(){this.setColour(pu),this.appendDummyInput("").appendField(ot.Msg.MIXLY_SETUP).appendField(new ot.FieldDropdown([[ot.Msg.MIXLY_AipImageClassify,"AipImageClassify"],[ot.Msg.MIXLY_AipSpeech,"AipSpeech"],[ot.Msg.MIXLY_AipImageCensor,"AipImageCensor"],[ot.Msg.MIXLY_AipFace,"AipFace"],[ot.Msg.MIXLY_AipOcr,"AipOcr"],[ot.Msg.MIXLY_AipNlp,"AipNlp"]]),"CTYPE"),this.appendValueInput("SUB").appendField(ot.Msg.MIXLY_Client).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("API_KEY").appendField("API_KEY").setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("SECRET_KEY").appendField("SECRET_KEY").setAlign(ot.inputs.Align.RIGHT),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},hu={init:function(){this.setColour(pu),this.appendValueInput("SUB").appendField(ot.Msg.MIXLY_AipSpeech_synthesis).appendField(ot.Msg.MIXLY_Client).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("STR").appendField(ot.Msg.OLED_STRING).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("ATTR").appendField(ot.Msg.MIXLY_AIP_ATTR).setAlign(ot.inputs.Align.RIGHT),this.setTooltip(ot.Msg.MIXLY_AipSpeech_synthesis_TOOLTIP),this.setInputsInline(!1),this.setOutput(!0)}},cu={init:function(){this.setColour(pu),this.appendValueInput("SUB").appendField(ot.Msg.MIXLY_AipSpeech_asr).appendField(ot.Msg.MIXLY_Client).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("FILE").appendField(ot.Msg.MIXLY_AipSpeech_File).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("ATTR").appendField(ot.Msg.MIXLY_AIP_ATTR).setAlign(ot.inputs.Align.RIGHT),this.setTooltip(ot.Msg.MIXLY_AipSpeech_ASR_TOOLTIP),this.setInputsInline(!1),this.setOutput(!0)}},Tu={init:function(){this.setColour(pu),this.appendValueInput("SUB").appendField(ot.Msg.MIXLY_AipImageClassify).appendField(ot.Msg.MIXLY_Client).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("FUNC").appendField(ot.Msg.MIXLY_AIP_FUNC).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("ADDR").appendField(ot.Msg.MIXLY_AipImageClassify_Image).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("ATTR").appendField(ot.Msg.MIXLY_AIP_ATTR).setAlign(ot.inputs.Align.RIGHT),this.setTooltip(ot.Msg.MIXLY_AipImageClassify_advancedGeneral_TOOLTIP),this.setInputsInline(!1),this.setOutput(!0)}},Iu={init:function(){this.setColour(pu),this.appendDummyInput("").appendField(new ot.FieldDropdown([[ot.Msg.MIXLY_AipImageClassify_advancedGeneral,"advancedGeneral"],[ot.Msg.MIXLY_AipImageClassify_dishDetect,"dishDetect"],[ot.Msg.MIXLY_AipImageClassify_carDetect,"carDetect"],[ot.Msg.MIXLY_AipImageClassify_animalDetect,"animalDetect"],[ot.Msg.MIXLY_AipImageClassify_plantDetect,"plantDetect"],[ot.Msg.MIXLY_AipImageClassify_logoSearch,"logoSearch"]]),"TYPE"),this.setOutput(!0)}},mu={init:function(){this.setColour(pu),this.appendValueInput("SUB").appendField(ot.Msg.MIXLY_AipFace_match).appendField(ot.Msg.MIXLY_Client).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("VAR").appendField(ot.Msg.MIXLY_AipImageClassify_Image+"1"+ot.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("VAR2").appendField(ot.Msg.MIXLY_AipImageClassify_Image+"2"+ot.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("ATTR").appendField(ot.Msg.MIXLY_AIP_ATTR).setAlign(ot.inputs.Align.RIGHT),this.setTooltip(ot.Msg.MIXLY_AipFace_match_TOOLTIP),this.setInputsInline(!1),this.setOutput(!0)}},Eu={init:function(){this.setColour(pu),this.appendValueInput("SUB").appendField(ot.Msg.MIXLY_AipOcr).appendField(ot.Msg.MIXLY_Client).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("FUNC").appendField(ot.Msg.MIXLY_AIP_FUNC).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("ADDR").appendField(ot.Msg.MIXLY_AipImageClassify_Image).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("ATTR").appendField(ot.Msg.MIXLY_AIP_ATTR).setAlign(ot.inputs.Align.RIGHT),this.setTooltip(ot.Msg.MIXLY_AipOcr_TOOLTIP),this.setInputsInline(!1),this.setOutput(!0)}},fu={init:function(){this.setColour(pu),this.appendDummyInput("").appendField(new ot.FieldDropdown([[ot.Msg.MIXLY_AipOcr_basicGeneral,"basicGeneral"],[ot.Msg.MIXLY_AipOcr_webImage,"webImage"],[ot.Msg.MIXLY_AipOcr_idcard,"idcard"],[ot.Msg.MIXLY_AipOcr_bankcard,"bankcard"],[ot.Msg.MIXLY_AipOcr_drivingLicense,"drivingLicense"],[ot.Msg.MIXLY_AipOcr_vehicleLicense,"vehicleLicense"],[ot.Msg.MIXLY_AipOcr_licensePlate,"licensePlate"],[ot.Msg.MIXLY_AipOcr_businessLicense,"businessLicense"],[ot.Msg.MIXLY_AipOcr_receipt,"receipt"],[ot.Msg.MIXLY_AipOcr_trainTicket,"trainTicket"],[ot.Msg.MIXLY_AipOcr_taxiReceipt,"taxiReceipt"],[ot.Msg.MIXLY_AipOcr_form,"tableRecognition"],[ot.Msg.MIXLY_AipOcr_vatInvoice,"vatInvoice"],[ot.Msg.MIXLY_AipOcr_passport,"passport"],[ot.Msg.MIXLY_AipOcr_handwriting,"handwriting"]]),"TYPE"),this.setOutput(!0)}},gu={init:function(){this.setColour(pu),this.appendValueInput("SUB").appendField(ot.Msg.MIXLY_AipNlp).appendField(ot.Msg.MIXLY_Client).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("FUNC").appendField(ot.Msg.MIXLY_AIP_FUNC).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("STR").appendField(ot.Msg.OLED_STRING).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("ATTR").appendField(ot.Msg.MIXLY_AIP_ATTR).setAlign(ot.inputs.Align.RIGHT),this.setTooltip(ot.Msg.MIXLY_AipNlp_TOOLTIP),this.setInputsInline(!1),this.setOutput(!0)}},Ou={init:function(){this.setColour(pu),this.appendValueInput("SUB").appendField(ot.Msg.MIXLY_AipNlp_Sim).appendField(ot.Msg.MIXLY_Client).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("FUNC").appendField(ot.Msg.MIXLY_AIP_FUNC).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("STR1").appendField(ot.Msg.OLED_STRING+"1").setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("STR2").appendField(ot.Msg.OLED_STRING+"2").setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("ATTR").appendField(ot.Msg.MIXLY_AIP_ATTR).setAlign(ot.inputs.Align.RIGHT),this.setTooltip(ot.Msg.MIXLY_AipNlp_Sim_TOOLTIP),this.setInputsInline(!1),this.setOutput(!0)}},Mu={init:function(){this.setColour(pu),this.appendDummyInput("").appendField(new ot.FieldDropdown([[ot.Msg.MIXLY_AipNlp_lexer,"lexer"],[ot.Msg.MIXLY_AipNlp_depParser,"depParser"],[ot.Msg.MIXLY_AipNlp_wordEmbedding,"wordEmbedding"],[ot.Msg.MIXLY_AipNlp_dnnlm,"dnnlm"],[ot.Msg.MIXLY_AipNlp_commentTag,"commentTag"],[ot.Msg.MIXLY_AipNlp_sentimentClassify,"sentimentClassify"],[ot.Msg.MIXLY_AipNlp_keyword,"keyword"],[ot.Msg.MIXLY_AipNlp_topic,"topic"],[ot.Msg.MIXLY_AipNlp_ecnet,"ecnet"],[ot.Msg.MIXLY_AipNlp_emotion,"emotion"]]),"TYPE"),this.setOutput(!0)}},Ru={init:function(){this.setColour(pu),this.appendDummyInput("").appendField(new ot.FieldDropdown([[ot.Msg.MIXLY_AipNlp_wordSimEmbedding,"wordSimEmbedding"],[ot.Msg.MIXLY_AipNlp_simnet,"simnet"]]),"TYPE"),this.setOutput(!0)}},Au={init:function(){this.setColour(pu),this.appendValueInput("SUB").appendField(ot.Msg.MIXLY_AipNlp_topic).appendField(ot.Msg.MIXLY_Client).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("STR1").appendField(ot.Msg.MIXLY_AipNlp_Topic_Title).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("STR2").appendField(ot.Msg.MIXLY_AipNlp_Topic_Content).setAlign(ot.inputs.Align.RIGHT),this.setTooltip(ot.Msg.MIXLY_AipNlp_Topic_TOOLTIP),this.setInputsInline(!1),this.setOutput(!0)}},Su={init:function(){this.setColour(pu),this.appendValueInput("SUB").appendField(ot.Msg.MIXLY_AipNlp_summary).appendField(ot.Msg.MIXLY_Client).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("STR").appendField(ot.Msg.MIXLY_AipNlp_Topic_Content).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("LEN").appendField(ot.Msg.MIXLY_LIST_LEN).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("ATTR").appendField(ot.Msg.MIXLY_AIP_ATTR).setAlign(ot.inputs.Align.RIGHT),this.setTooltip(ot.Msg.MIXLY_AipNlp_Summary_TOOLTIP),this.setInputsInline(!1),this.setOutput(!0)}},Cu={init:function(){this.setColour(pu),this.appendValueInput("VAR").appendField(ot.Msg.MIXPY_AI_AUDIO),this.appendValueInput("TIME").appendField(ot.Msg.MIXPY_AI_AUDIO_TIME),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ot.Msg.MIXPY_AI_AUDIO_TOOLTIP)}},Lu={init:function(){this.setColour(pu),this.appendValueInput("VAR").appendField(ot.Msg.MIXPY_AI_PHOTO),this.appendValueInput("BUT").appendField(ot.Msg.MIXPY_AI_PHOTO_BUTTON),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ot.Msg.MIXPY_AI_PHOTO_TOOLTIP)}},yu={init:function(){this.setColour(pu),this.appendValueInput("AI").appendField(ot.Msg.MIXPY_AI_RESULT).appendField(new ot.FieldDropdown([[ot.Msg.MIXLY_AipImageClassify,"Image"],[ot.Msg.MIXLY_AipSpeech_asr,"Speech"],[ot.Msg.MIXLY_AipFace_match,"Face"],[ot.Msg.MIXLY_AipOcr,"Ocr"],[ot.Msg.MIXLY_AipNlp_simnet,"OcrSimilarity"],[ot.Msg.MIXLY_AipNlp_sentimentClassify,"Emotion"]]),"CTYPE"),this.setOutput(!0),this.setTooltip(ot.Msg.LOGIC_NEGATE_TOOLTIP)}},Du="#526FC3",Nu={init:function(){this.setColour(Du),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_PREPARE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},bu={init:function(){this.setColour(Du),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_ADD_SCHOOL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},vu={init:function(){this.setColour(Du),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_FIND_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},wu={init:function(){this.setColour(Du),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_NEW_PATH),this.setOutput(!0)}},Fu={init:function(){this.setColour(Du),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_SET_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Pu={init:function(){this.setColour(Du),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_ADD_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},ku={init:function(){this.setColour(Du),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_DEL_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Vu={init:function(){this.setColour(Du),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_RETURN_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Yu={init:function(){this.setColour(Du),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_NO_LEFT),this.setOutput(!0)}},xu={init:function(){this.setColour(Du),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_PRINT_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Uu={init:function(){this.setColour(Du),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_PREPARE2),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Bu={init:function(){this.setColour(Du),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_CURRENT_SCHOOL),this.setOutput(!0)}},Xu={init:function(){this.setColour(Du),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_NO_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Gu={init:function(){this.setColour(Du),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_PREPARE_2_1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Hu={init:function(){this.setColour(Du),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_PREPARE_2_2),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Wu={init:function(){this.setColour(Du),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_MOVE_RECENT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Ku={init:function(){this.setColour(Du),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_NOT_HOME),this.setOutput(!0)}},ju={init:function(){this.setColour(Du),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_NOT_SCHOOL),this.setOutput(!0)}},qu={init:function(){this.setColour(Du),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_PRINT_PATH2),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},$u={init:function(){this.appendDummyInput().appendField("准备").appendField(new ot.FieldNumber(3,0,100,1),"NUM").appendField("层汉诺塔"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Du),this.setTooltip(""),this.setHelpUrl("")}},zu={init:function(){this.appendDummyInput().appendField("移动圆盘从"),this.appendValueInput("FROM_NUM").setCheck(null).appendField("柱"),this.appendDummyInput().appendField("到"),this.appendValueInput("TO_NUM").setCheck(null).appendField("柱"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Du),this.setTooltip(""),this.setHelpUrl("")}},Qu={init:function(){this.setColour(Du),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_ALL_BOOKS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Ju={init:function(){this.setColour(Du),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_ALL_BOOKS2),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Zu={init:function(){this.setColour(Du),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_FIRST_BOOK),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},tp={init:function(){this.setColour(Du),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_NO_RING),this.setOutput(!0)}},ep={init:function(){this.setColour(Du),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_YES_RING),this.setOutput(!0)}},np={init:function(){this.setColour(Du),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_NEXT_BOOK),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},ip={init:function(){this.setColour(Du),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_TWO_LEFT),this.setOutput(!0)}},sp={init:function(){this.setColour(Du),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_DIVIDE_BOOKS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},op={init:function(){this.setColour(Du),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_GET_HALF_BOOKS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},rp={init:function(){this.setColour(Du),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_DELETE_BOOK),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},ap={init:function(){this.setColour(Du),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_DELETE_BOOKS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},lp={init:function(){this.setColour(Du),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_DELETE_BOOKS2),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},up={init:function(){this.setColour(Du),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_PRINT_BOOK),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},pp={init:function(){this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("设置待查书总数 N=").appendField(new ot.FieldDropdown([["5","5"],["10","10"],["20","20"],["50","50"]]),"NUM"),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Du),this.setTooltip(""),this.setHelpUrl("")}},_p={init:function(){this.setColour(Du),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_NUMBER_ZERO),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},dp={init:function(){this.setColour(Du),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_NUMBER_ADD),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},hp={init:function(){this.setColour(Du),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_PRINT_NUMBER),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},cp={init:function(){this.setColour(Du),this.appendDummyInput().appendField("n"+ot.Msg.MIXLY_VALUE2).appendField(new ot.FieldTextInput("50"),"NUM"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Tp={init:function(){this.setColour(Du),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_PRINT_SEQUENCE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Ip={init:function(){this.setColour(Du),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_PRINT_DIVIDE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},mp={init:function(){this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("初始化鸡兔同笼问题:"),this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("有若干只鸡、兔在同一个笼子里。"),this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("从上面数鸡兔有10个头,"),this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("从下面数鸡兔有32只脚。"),this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("问笼中有多少只鸡和多少只兔?"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Du),this.setTooltip(""),this.setHelpUrl("")}},Ep={init:function(){this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("假设兔子的数量为0只"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Du),this.setTooltip(""),this.setHelpUrl("")}},fp={init:function(){this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("兔子的数量在范围之内"),this.setOutput(!0,null),this.setColour(Du),this.setTooltip(""),this.setHelpUrl("")}},gp={init:function(){this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("根据(头数-兔子数)计算出鸡的数量"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Du),this.setTooltip(""),this.setHelpUrl("")}},Op={init:function(){this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("计算得到脚的数量正确"),this.setOutput(!0,null),this.setColour(Du),this.setTooltip(""),this.setHelpUrl("")}},Mp={init:function(){this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("输出鸡、兔的数量"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Du),this.setTooltip(""),this.setHelpUrl("")}},Rp={init:function(){this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("假设兔子数量要更多一只"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Du),this.setTooltip(""),this.setHelpUrl("")}},Ap={init:function(){this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("加载路线图"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Du),this.setTooltip(""),this.setHelpUrl("")}},Sp={init:function(){this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("计算").appendField(new ot.FieldDropdown([["S1","1"],["S2","2"],["S3","3"],["S4","4"]]),"PATHNAME").appendField("长度"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Du),this.setTooltip(""),this.setHelpUrl("")}},Cp={init:function(){this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("设置S1为Smin"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Du),this.setTooltip(""),this.setHelpUrl("")}},Lp={init:function(){this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField(new ot.FieldDropdown([["S1","1"],["S2","2"],["S3","3"],["S4","4"]]),"PATHNAME").appendField("的长度比").appendField(new ot.FieldDropdown([["S1","1"],["S2","2"],["S3","3"],["S4","4"]]),"PATHNAME2").appendField("短"),this.setOutput(!0,null),this.setColour(Du),this.setTooltip(""),this.setHelpUrl("")}},yp={init:function(){this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("设置").appendField(new ot.FieldDropdown([["S1","1"],["S2","2"],["S3","3"],["S4","4"]]),"PATHNAME").appendField("为Smin"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Du),this.setTooltip(""),this.setHelpUrl("")}},Dp={init:function(){this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("按照Smin移动"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Du),this.setTooltip(""),this.setHelpUrl("")}},Np={init:function(){this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("初始化韩信点兵问题:"),this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("有未知数量的若干士兵。"),this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("若3人一排列队,多1人;"),this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("若5人一排列队,多2人;"),this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("若7人一排列队,多2人;"),this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("问士兵的数量最少是多少人?"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Du),this.setTooltip(""),this.setHelpUrl("")}},bp={init:function(){this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("初始化士兵为").appendField(new ot.FieldTextInput("7"),"NUM").appendField("个"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Du),this.setTooltip(""),this.setHelpUrl("")}},vp={init:function(){this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("使士兵").appendField(new ot.FieldDropdown([["3","3"],["5","5"],["7","7"]]),"NUM").appendField("人一排列队"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Du),this.setTooltip(""),this.setHelpUrl("")}},wp={init:function(){this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("剩余").appendField(new ot.FieldTextInput("1"),"NUM").appendField("个士兵"),this.setOutput(!0,null),this.setColour(Du),this.setTooltip(""),this.setHelpUrl("")}},Fp={init:function(){this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("增加1个士兵"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Du),this.setTooltip(""),this.setHelpUrl("")}},Pp={init:function(){this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("输出士兵数量"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Du),this.setTooltip(""),this.setHelpUrl("")}},kp={init:function(){this.appendDummyInput().appendField("准备").appendField(new ot.FieldNumber(3,0,100,1),"NUM").appendField("层汉诺塔"),this.appendValueInput("VAR").setCheck(String).appendField(ot.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Du),this.setInputsInline(!0),this.setTooltip(""),this.setHelpUrl("")}},Vp={init:function(){this.setColour(Du),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_GET_CURRENT_LOCATION),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Yp={init:function(){this.setColour(Du),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_VOID_PATH),this.setOutput(!0)}},xp={init:function(){this.setColour(Du),this.appendDummyInput("").setAlign(ot.inputs.Align.RIGHT).appendField(new ot.FieldColour("ff0000"),"COLOR"),this.setInputsInline(!0),this.setOutput(!0,String)}},Up="#3288dd",Bp={init:function(){this.setColour(Up),this.appendValueInput("DOMAIN").appendField(ot.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(ot.Msg.blockpy_REQUESTS_GET).appendField(new ot.FieldTextInput("response"),"VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.blockpy_REQUESTS_GET_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Xp={init:function(){this.setColour(Up),this.appendValueInput("URL").appendField(ot.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(ot.Msg.blockpy_CONDUCT).appendField(new ot.FieldDropdown([["get","get"],["head","head"],["delete","delete"]]),"TYPE").appendField(ot.Msg.blockpy_REQUESTS).appendField(ot.Msg.MIXPY_REQUESTS_GET_RESULT),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip("")}},Gp={init:function(){this.setColour(Up),this.appendValueInput("URL").appendField(ot.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(ot.Msg.blockpy_CONDUCT).appendField(new ot.FieldDropdown([["post","post"],["put","put"],["patch","patch"]]),"TYPE").appendField(ot.Msg.blockpy_REQUESTS),this.appendValueInput("data").appendField(ot.Msg.blockpy_REQUESTS+ot.Msg.OLED_STRING),this.appendDummyInput("").appendField(ot.Msg.MIXPY_REQUESTS_GET_RESULT),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip("")}},Hp={init:function(){this.appendValueInput("VAL");var t=[[ot.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE,"status_code"],[ot.Msg.blockpy_REQUESTS_GET_ATTR_TEXT,"text"],[ot.Msg.blockpy_REQUESTS_GET_ATTR_COOKIES,"cookies"],[ot.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT,"content"],[ot.Msg.MIXPY_TEXT_ENCODE,"encoding"]];this.setColour(Up),this.appendDummyInput("").appendField(ot.Msg.MIXLY_MICROBIT_JS_GET).appendField(new ot.FieldDropdown(t),"ATTR"),this.setInputsInline(!0),this.setOutput(!0,String)}},Wp={init:function(){this.appendValueInput("VAR").appendField(ot.Msg.DISPLAY_IMAGE_LET2).setCheck(String);this.setColour(Up),this.appendDummyInput("").appendField(ot.Msg.blockpy_CONDUCT).appendField(new ot.FieldDropdown([["post","post"],["put","put"],["delete","delete"],["head","head"],["option","option"]]),"DIR"),this.appendDummyInput("").appendField(ot.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:ot.Msg.MIXLY_TOOLTIP_TURTEL_FORWARD,backward:ot.Msg.MIXLY_TOOLTIP_TURTEL_BACKWARD}[e]}))}},Kp="f0a559",jp={init:function(){this.setColour(Kp),this.appendValueInput("FILE").setCheck(String).appendField(ot.Msg.MIXLY_CV_IMREAD),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)}},qp={init:function(){this.setColour(Kp),this.appendValueInput("FILE").appendField(ot.Msg.OLED_BITMAP),this.appendValueInput("data").setCheck(String).appendField(ot.Msg.MIXLY_AipNlp_Topic_Title),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},$p={init:function(){this.setColour(Kp),this.appendValueInput("FILE").appendField(ot.Msg.MIXLY_CV_IMWRITE),this.appendValueInput("data").setCheck(String).appendField(ot.Msg.HTML_NAME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},zp={init:function(){this.setColour(Kp),this.appendValueInput("data").setCheck(Number).appendField(ot.Msg.MIXLY_DELAY),this.appendDummyInput().appendField(ot.Msg.MIXLY_MILLIS+ot.Msg.MIXLY_CV_OR_PRESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ot.Msg.MIXLY_CV_WAITKEY_TOOLTIP)}},Qp={init:function(){this.setColour(Kp),this.appendDummyInput().appendField(ot.Msg.MIXLY_CV_DESTROY_ALL),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Jp={init:function(){this.setColour(Kp),this.appendValueInput("FILE").appendField(ot.Msg.MIXLY_MICROBIT_IMAGE);var t=[[ot.Msg.MIXLY_CV_RECT,"rectangle"],[ot.Msg.MIXLY_CV_LINE,"line"]];this.appendValueInput("x1").setCheck(Number).appendField(ot.Msg.MIXLY_DISPLAY_DRAW).appendField(new ot.FieldDropdown(t),"DIR").appendField(ot.Msg.MIXLY_CV_DRAWLINE_BEGIN+"(x1"),this.appendValueInput("y1").setCheck(Number).appendField(",y1"),this.appendValueInput("x2").setCheck(Number).appendField(") "+ot.Msg.MIXLY_CV_DRAWLINE_END+"(x2"),this.appendValueInput("y2").setCheck(Number).appendField(",y2"),this.appendDummyInput().appendField(") "+ot.Msg.MIXLY_CV_DRAWLINE_COLOR).appendField(new ot.FieldColour("#ff0000"),"FIELDNAME"),this.appendValueInput("thick").setCheck(Number).appendField(ot.Msg.MIXLY_CV_DRAWLINE_THICKNESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ot.Msg.MIXLY_CV_DRAWLINE_RECT_TOOLTIP)}},Zp={init:function(){this.setColour(Kp),this.appendValueInput("FILE").appendField(ot.Msg.MIXLY_MICROBIT_IMAGE);this.appendValueInput("data").setCheck(String).appendField(ot.Msg.MIXLY_CV_DRAWTEXT),this.appendValueInput("x1").setCheck(Number).appendField(ot.Msg.MIXLY_CV_DRAWLINE_BEGIN+"(x1"),this.appendValueInput("y1").setCheck(Number).appendField(",y1"),this.appendDummyInput().appendField(") "+ot.Msg.MIXLY_TURTLE_WRITE_FONT_NAME).appendField(new ot.FieldDropdown([["SIMPLEX","SIMPLEX"],["PLAIN","PLAIN"],["DUPLEX","DUPLEX"],["COMPLEX","COMPLEX"],["COMPLEX_SMALL","COMPLEX_SMALL"],["TRIPLEX","TRIPLEX"],["SCRIPT_SIMPLEX","SCRIPT_SIMPLEX"],["SCRIPT_COMPLEX","SCRIPT_COMPLEX"]]),"font"),this.appendValueInput("size").setCheck(Number).appendField(ot.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendDummyInput().appendField(") "+ot.Msg.MIXLY_CV_DRAWLINE_COLOR).appendField(new ot.FieldColour("#ff0000"),"FIELDNAME"),this.appendValueInput("thick").setCheck(Number).appendField(ot.Msg.MIXLY_CV_DRAWLINE_THICKNESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ot.Msg.MIXLY_CV_DRAWLINE_RECT_TOOLTIP)}},t_={init:function(){this.setColour(Kp),this.appendValueInput("FILE").setCheck(String).appendField(ot.Msg.MIXLY_CV_FACE_CLASSIFIER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)}},e_={init:function(){this.setColour(Kp),this.appendValueInput("FILE").appendField(ot.Msg.MIXLY_MICROBIT_IMAGE),this.appendValueInput("FACE").appendField(ot.Msg.MIXLY_CV_FACE_DETECT),this.appendValueInput("SCALE").setCheck(Number).appendField(ot.Msg.MIXLY_CV_FACE_DETECT_SCALE),this.appendValueInput("NEIGHBOR").setCheck(Number).appendField(ot.Msg.MIXLY_CV_FACE_DETECT_NEIGHBOR),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)}},n_={init:function(){this.setColour(Kp),this.appendValueInput("FILE").appendField(ot.Msg.MIXLY_MICROBIT_IMAGE),this.appendValueInput("FACE").appendField(ot.Msg.MIXLY_CV_FACE_DETECT),this.appendValueInput("SCALE").setCheck(Number).appendField(ot.Msg.MIXLY_CV_FACE_DETECT_SCALE),this.appendValueInput("NEIGHBOR").setCheck(Number).appendField(ot.Msg.MIXLY_CV_FACE_DETECT_NEIGHBOR),this.appendValueInput("x1").setCheck(Number).appendField(ot.Msg.MIXLY_CV_FACE_DETECT_RANGE).appendField(ot.Msg.blockpy_TUPLE_MIN),this.appendValueInput("y1").setCheck(Number).appendField("×"),this.appendValueInput("x2").setCheck(Number).appendField(ot.Msg.blockpy_TUPLE_MAX),this.appendValueInput("y2").setCheck(Number).appendField("×"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)}},i_=170,s_={init:function(){this.setColour(i_),this.appendDummyInput("").appendField(ot.Msg.blockpy_series_create).appendField(new ot.FieldTextInput("ser1"),"VAR"),this.appendValueInput("SER").appendField(ot.Msg.blockpy_series_via),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ot.Msg.blockpy_series_create_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},o_={init:function(){this.setColour(i_),this.appendDummyInput("").appendField(ot.Msg.blockpy_series_create).appendField(new ot.FieldTextInput("ser1"),"VAR"),this.appendValueInput("SER").appendField(ot.Msg.blockpy_series_via),this.appendValueInput("INDEX").setCheck([String,"List"]).appendField(ot.Msg.blockpy_series_set_index),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ot.Msg.blockpy_series_create_index_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},r_={init:function(){this.setColour(i_),this.appendDummyInput("").appendField(ot.Msg.blockpy_dataframe_create).appendField(new ot.FieldTextInput("df1"),"VAR"),this.appendValueInput("SER").appendField(ot.Msg.blockpy_series_via),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ot.Msg.blockpy_dataframe_create_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},a_={init:function(){this.setColour(i_);var t=[[ot.Msg.DATAFRAME_RAW,"index"],[ot.Msg.DATAFRAME_COLUMN,"columns"]];this.appendDummyInput("").appendField(ot.Msg.blockpy_dataframe_create).appendField(new ot.FieldTextInput("df1"),"VAR"),this.appendValueInput("SER").appendField(ot.Msg.blockpy_series_via),this.appendDummyInput("").appendField(new ot.FieldDropdown(t),"COLUMN_RAW"),this.appendValueInput("INDEX").setCheck([String,"List"]).appendField(ot.Msg.blockpy_series_set_index),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ot.Msg.blockpy_dataframe_create_index_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},l_={init:function(){this.setColour(i_),this.appendDummyInput("").appendField(ot.Msg.blockpy_dataframe_create).appendField(new ot.FieldTextInput("df1"),"VAR"),this.appendValueInput("SER").appendField(ot.Msg.blockpy_series_via),this.appendValueInput("INDEX_COLUMN").setCheck([String,"List"]).appendField(ot.Msg.blockpy_dataframe_set_index_column),this.appendValueInput("INDEX_RAW").setCheck([String,"List"]).appendField(ot.Msg.blockpy_dataframe_set_index_raw),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.blockpy_dataframe_create_index_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},u_={init:function(){this.setColour(i_),this.appendDummyInput("").appendField(new ot.FieldTextInput("ser1"),"VAR").appendField(" = [").appendField(new ot.FieldTextInput("1,2,3"),"TEXT").appendField("]"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.MIXLY_TOOLTIP_SERIES_CREATE_FROM_TEXT)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},p_={init:function(){this.setColour(i_);var t=[[ot.Msg.SERIES_INDEX,"index"],[ot.Msg.HTML_VALUE,"value"]];this.appendValueInput("SERIES").setCheck("Series"),this.appendDummyInput("").appendField(ot.Msg.SERIES_INDEX_VALUE).appendField(new ot.FieldDropdown(t),"INDEX_VALUE"),this.setOutput(!0,"List");var e=this;this.setTooltip((function(){var t=e.getFieldValue("INDEX_VALUE");return{index:ot.Msg.SERIES_INDEX_TOOLTIP,value:ot.Msg.HTML_VALUE_TOOLTIP}[t]}))}},__={init:function(){this.setColour(i_),this.setOutput(!0),this.appendValueInput("SER").setCheck("Series"),this.appendValueInput("AT").setCheck(Number).appendField(ot.Msg.LANG_LISTS_GET_INDEX1),this.appendDummyInput("").appendField(ot.Msg.LANG_LISTS_GET_INDEX2),this.setInputsInline(!0),this.setTooltip(ot.Msg.TUPLE_GET_INDEX_TOOLTIP)}},d_={init:function(){this.setColour(i_),this.appendValueInput("SER").setCheck("Series").appendField(ot.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendDummyInput().appendField(ot.Msg.blockpy_PYLAB_PLOT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},h_={init:function(){this.setColour(i_);var t=[[ot.Msg.blockpy_PYLAB_PLOT_LINE_SOLID,"-"],[ot.Msg.blockpy_PYLAB_PLOT_LINE_DOTTED,"--"],[ot.Msg.blockpy_PYLAB_PLOT_LINE_CHAIN,"-."],[ot.Msg.blockpy_PYLAB_PLOT_LINE_POINT_DOTTED,":"],[ot.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,""]],e=[[ot.Msg.COLOUR_RGB_BLUE,"b"],[ot.Msg.COLOUR_RGB_GREEN,"g"],[ot.Msg.COLOUR_RGB_RED,"r"],[ot.Msg.COLOUR_CYAN,"c"],[ot.Msg.COLOUR_MAGENTA,"m"],[ot.Msg.COLOUR_YELLOW,"y"],[ot.Msg.COLOUR_BLACK,"k"],[ot.Msg.COLOUR_WHITE,"w"]],n=[[ot.Msg.blockpy_PYLAB_PLOT_DOT_CIRCULAR,"."],[ot.Msg.blockpy_PYLAB_PLOT_DOT_PIXEL,","],[ot.Msg.blockpy_PYLAB_PLOT_DOT_LARGE_DOT,"o"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_DOWN,"v"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_UP,"^"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_LEFT,"<"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_RIGHT,">"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_UP,"1"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_DOWN,"2"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_LEFT,"3"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_RIGHT,"4"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_SQUARE,"s"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_PENTAGON,"p"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_STAR,"*"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_VERTICAL,"h"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_HORIZONTAL,"H"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_PLUS,"+"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_CROSS,"x"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND,"D"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND_SMALL,"d"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_VERTICAL,"|"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_HORIZONTAL,"_"]];this.appendValueInput("SER").setCheck("Series").appendField(ot.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendDummyInput().appendField(ot.Msg.blockpy_PYLAB_PLOT),this.appendDummyInput("").appendField(ot.Msg.blockpy_PYLAB_PLOT_DOT).appendField(new ot.FieldDropdown(n),"DOT"),this.appendDummyInput("").appendField(ot.Msg.blockpy_PYLAB_PLOT_LINE).appendField(new ot.FieldDropdown(t),"LINE"),this.appendDummyInput("").appendField(ot.Msg.HTML_COLOUR).appendField(new ot.FieldDropdown(e),"COLOR"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},c_={init:function(){this.setColour(i_),this.appendDummyInput().appendField(ot.Msg.blockpy_PYLAB_SHOW),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},T_={init:function(){this.setColour(i_),this.appendDummyInput().appendField(ot.Msg.mixpy_PL_AXES),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},I_={init:function(){this.setColour(i_),this.appendDummyInput().appendField(ot.Msg.blockpy_PYLAB_LEGEND),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},m_={init:function(){this.setColour(i_),this.appendDummyInput().appendField(ot.Msg.blockpy_PYLAB_TITLE),this.appendValueInput("TITLE").setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},E_={init:function(){this.setColour(i_);var t=[[ot.Msg.PYLAB_LABEL_X,"x"],[ot.Msg.PYLAB_LABEL_Y,"y"]];this.appendDummyInput().appendField(ot.Msg.blockpy_PYLAB_SET_LABEL).appendField(new ot.FieldDropdown(t),"DIR"),this.appendValueInput("LABEL").appendField(ot.Msg.blockpy_PYLAB_LABEL).setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},f_={init:function(){this.setColour(i_),this.appendValueInput("FROM").setCheck(Number).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.MIXLY_SPLITBYDOU).appendField(ot.Msg.MIXPY_DATA_ARRAY_CREATE_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.MIXPY_DATA_ARRAY_CREATE_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.MIXLY_STEP),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(ot.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},g_={init:function(){this.setColour(i_);var t=[[ot.Msg.mixpy_PYLAB_PLOT_BAR_PLOT,"plot"],[ot.Msg.mixpy_PYLAB_PLOT_BAR_BAR,"bar"]];this.appendDummyInput().appendField(ot.Msg.MIXLY_DISPLAY_DRAW).appendField(new ot.FieldDropdown(t),"DIR"),this.appendValueInput("A").appendField(ot.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(ot.Msg.mixpy_PYLAB_PLOT_Y),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("DIR");return{plot:ot.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP,bar:ot.Msg.mixpy_PYLAB_PLOT_BAR_EASY_TOOLTIP}[t]}))}},O_={init:function(){this.setColour(i_);var t=[[ot.Msg.COLOUR_RGB_BLUE,"b"],[ot.Msg.COLOUR_RGB_GREEN,"g"],[ot.Msg.COLOUR_RGB_RED,"r"],[ot.Msg.COLOUR_CYAN,"c"],[ot.Msg.COLOUR_MAGENTA,"m"],[ot.Msg.COLOUR_YELLOW,"y"],[ot.Msg.COLOUR_BLACK,"k"],[ot.Msg.COLOUR_WHITE,"w"]],e=[[ot.Msg.blockpy_PYLAB_PLOT_DOT_CIRCULAR,"."],[ot.Msg.blockpy_PYLAB_PLOT_DOT_PIXEL,","],[ot.Msg.blockpy_PYLAB_PLOT_DOT_LARGE_DOT,"o"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_DOWN,"v"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_UP,"^"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_LEFT,"<"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_RIGHT,">"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_UP,"1"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_DOWN,"2"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_LEFT,"3"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_RIGHT,"4"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_SQUARE,"s"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_PENTAGON,"p"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_STAR,"*"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_VERTICAL,"h"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_HORIZONTAL,"H"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_PLUS,"+"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_CROSS,"x"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND,"D"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND_SMALL,"d"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_VERTICAL,"|"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_HORIZONTAL,"_"]];this.appendValueInput("A").appendField(ot.Msg.mixpy_PYLAB_SCATTER).appendField(ot.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(ot.Msg.mixpy_PYLAB_PLOT_Y),this.appendValueInput("S").appendField(ot.Msg.MIXLY_MICROBIT_JS_NUMBER),this.appendDummyInput("").appendField(ot.Msg.blockpy_PYLAB_PLOT_DOT).appendField(new ot.FieldDropdown(e),"DOT"),this.appendDummyInput("").appendField(ot.Msg.HTML_COLOUR).appendField(new ot.FieldDropdown(t),"COLOR"),this.appendValueInput("TAG").setCheck(String).appendField(ot.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("")}},M_={init:function(){this.setColour(i_);var t=[[ot.Msg.blockpy_PYLAB_PLOT_LINE_SOLID,"-"],[ot.Msg.blockpy_PYLAB_PLOT_LINE_DOTTED,"--"],[ot.Msg.blockpy_PYLAB_PLOT_LINE_CHAIN,"-."],[ot.Msg.blockpy_PYLAB_PLOT_LINE_POINT_DOTTED,":"],[ot.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,""]],e=[[ot.Msg.COLOUR_RGB_BLUE,"b"],[ot.Msg.COLOUR_RGB_GREEN,"g"],[ot.Msg.COLOUR_RGB_RED,"r"],[ot.Msg.COLOUR_CYAN,"c"],[ot.Msg.COLOUR_MAGENTA,"m"],[ot.Msg.COLOUR_YELLOW,"y"],[ot.Msg.COLOUR_BLACK,"k"],[ot.Msg.COLOUR_WHITE,"w"]],n=[[ot.Msg.blockpy_PYLAB_PLOT_DOT_CIRCULAR,"."],[ot.Msg.blockpy_PYLAB_PLOT_DOT_PIXEL,","],[ot.Msg.blockpy_PYLAB_PLOT_DOT_LARGE_DOT,"o"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_DOWN,"v"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_UP,"^"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_LEFT,"<"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_RIGHT,">"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_UP,"1"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_DOWN,"2"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_LEFT,"3"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_RIGHT,"4"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_SQUARE,"s"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_PENTAGON,"p"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_STAR,"*"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_VERTICAL,"h"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_HORIZONTAL,"H"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_PLUS,"+"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_CROSS,"x"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND,"D"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND_SMALL,"d"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_VERTICAL,"|"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_HORIZONTAL,"_"]];this.appendValueInput("A").appendField(ot.Msg.mixpy_PYLAB_PLOT_XY).appendField(ot.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(ot.Msg.mixpy_PYLAB_PLOT_Y),this.appendDummyInput("").appendField(ot.Msg.blockpy_PYLAB_PLOT_DOT).appendField(new ot.FieldDropdown(n),"DOT"),this.appendDummyInput("").appendField(ot.Msg.blockpy_PYLAB_PLOT_LINE).appendField(new ot.FieldDropdown(t),"LINE"),this.appendDummyInput("").appendField(ot.Msg.HTML_COLOUR).appendField(new ot.FieldDropdown(e),"COLOR"),this.appendValueInput("TAG").setCheck(String).appendField(ot.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP)}},R_={init:function(){this.setColour(i_);var t=[[ot.Msg.MIXLY_TURTLE_WRITE_ALIGN_CENTER,"center"],[ot.Msg.AILGN_EDGE,"edge"]];this.appendValueInput("A").appendField(ot.Msg.mixpy_PYLAB_BAR).appendField(ot.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(ot.Msg.mixpy_PYLAB_PLOT_Y),this.appendValueInput("WIDTH").setCheck(Number).appendField(ot.Msg.MIXLY_WIDTH),this.appendDummyInput("").appendField(ot.Msg.mixpy_PYLAB_BAR_ALIGN).appendField(new ot.FieldDropdown(t),"ALIGN"),this.appendDummyInput().appendField(ot.Msg.HTML_COLOUR).appendField(new ot.FieldColour("#0000ff"),"COLOR"),this.appendValueInput("TAG").setCheck(String).appendField(ot.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP)}},A_={init:function(){this.setColour(i_);var t=[[ot.Msg.mixpy_PL_PIE_SHADOW_N,"False"],[ot.Msg.mixpy_PL_PIE_SHADOW_Y,"True"]],e=[[ot.Msg.mixpy_PL_PIE_SHADOW_N,"None"],[ot.Msg.mixpy_PYLAB_PIE_AUTOPCT_Z,"%.0f%%"],[ot.Msg.mixpy_PYLAB_PIE_AUTOPCT_O,"%.1f%%"],[ot.Msg.mixpy_PYLAB_PIE_AUTOPCT_T,"%.2f%%"]];this.appendValueInput("A").appendField(ot.Msg.mixpy_PYLAB_PIE).appendField(ot.Msg.COLOUR_BLEND_RATIO),this.appendValueInput("B").appendField(ot.Msg.mixpy_PYLAB_TICKS_TAG),this.appendValueInput("EXPLODE").appendField(ot.Msg.mixpy_PYLAB_PIE_EXPLODE),this.appendDummyInput("").appendField(ot.Msg.mixpy_PYLAB_PIE_AUTOPCT).appendField(new ot.FieldDropdown(e),"autopct"),this.appendDummyInput("").appendField(ot.Msg.mixpy_PYLAB_PIE_SHADOW).appendField(new ot.FieldDropdown(t),"SHADOW"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP)}},S_={init:function(){this.setColour(i_),this.appendValueInput("A").appendField(ot.Msg.mixpy_PYLAB_HIST).appendField(ot.Msg.MIXLY_SD_DATA),this.appendValueInput("B").appendField(ot.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},C_={init:function(){this.setColour(i_);var t=[[ot.Msg.PYLAB_LABEL_X,"x"],[ot.Msg.PYLAB_LABEL_Y,"y"]];this.appendDummyInput().appendField(ot.Msg.MIXLY_SETTING).appendField(new ot.FieldDropdown(t),"DIR"),this.appendValueInput("A").appendField(ot.Msg.mixpy_PYLAB_TICKS).appendField(ot.Msg.MIXLY_MICROBIT_JS_I2C_VALUE),this.appendValueInput("B").appendField(ot.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.mixpy_PYLAB_TICKS_TOOLTIP)}},L_={init:function(){var t=[["sin","sin"],["cos","cos"],["tan","tan"],["arcsin","arcsin"],["arccos","arccos"],["arctan","arctan"],[ot.Msg.LANG_MATH_TO_ROUND,"round"],[ot.Msg.LANG_MATH_TO_CEIL,"ceil"],[ot.Msg.LANG_MATH_TO_FLOOR,"floor"]];this.setColour(i_),this.setOutput(!0),this.setInputsInline(!0),this.appendDummyInput().appendField(ot.Msg.mixpy_NUMPY_TRIG),this.appendValueInput("NUM").setCheck(Number).appendField(new ot.FieldDropdown(t),"OP"),this.setTooltip(ot.Msg.mixpy_NUMPY_TRIG_TOOLTIP)}},y_={init:function(){this.setColour(i_),this.appendValueInput("VET").setCheck(Number).appendField(ot.Msg.mixpy_SUBPLOT).appendField(ot.Msg.mixpy_SUBPLOT_VERTICLE),this.appendValueInput("HOR").setCheck(Number).appendField(ot.Msg.mixpy_SUBPLOT_HORIZEN),this.appendValueInput("NUM").setCheck(Number).appendField(ot.Msg.mixpy_SUBPLOT_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},D_={init:function(){this.setColour(i_),this.appendValueInput("FILENAME").appendField(ot.Msg.MIXPY_PANDAS_READ_CSV),this.appendDummyInput().appendField(new ot.FieldDropdown([[ot.Msg.mixpy_PANDAS_READCSV_HEADER_Y,"0"],[ot.Msg.mixpy_PANDAS_READCSV_HEADER_N,"None"]]),"MODE"),this.appendDummyInput().appendField(ot.Msg.mixpy_PANDAS_READCSV_TITLE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ot.Msg.mixpy_PANDAS_READCSV_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},N_={init:function(){this.setColour(i_),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(ot.Msg.mixpy_DATAFRAME_GET),this.appendDummyInput("").appendField(ot.Msg.mixpy_DATAFRAME_GET_INDEX).appendField(new ot.FieldDropdown([[ot.Msg.DATAFRAME_COLUMN,"column"],[ot.Msg.DATAFRAME_RAW,"raw"]]),"MODE"),this.setOutput(!0),this.setTooltip(ot.Msg.mixpy_DATAFRAME_GET_TOOLTIP)}},b_={init:function(){this.setColour(i_),this.appendValueInput("FILE").setCheck(String).appendField(ot.Msg.mixpy_PL_SAVEFIG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(ot.Msg.mixpy_PL_SAVEFIG_TOOLTIP)}},v_={init:function(){this.setColour(i_);var t=[[ot.Msg.TEXT_TRIM_LEFT,"right"],[ot.Msg.mixpy_PL_TEXT_CENTER,"center"],[ot.Msg.TEXT_TRIM_RIGHT,"left"]],e=[[ot.Msg.mixpy_PL_TEXT_TOP,"bottom"],[ot.Msg.mixpy_PL_TEXT_CENTER,"center"],[ot.Msg.mixpy_PL_TEXT_BOTTOM,"top"]];this.appendValueInput("VET").setCheck(Number).appendField(ot.Msg.MIXLY_SETTING).appendField(ot.Msg.mixpy_PL_TEXT_X),this.appendValueInput("HOR").setCheck(Number).appendField(ot.Msg.mixpy_PL_TEXT_Y),this.appendValueInput("NUM").setCheck(Number).appendField(ot.Msg.mixpy_PL_TEXT_TAG),this.appendDummyInput("").appendField(ot.Msg.mixpy_PL_TEXT_HOR).appendField(new ot.FieldDropdown(t),"HALIGN"),this.appendDummyInput("").appendField(ot.Msg.mixpy_PL_TEXT_VER).appendField(new ot.FieldDropdown(e),"VALIGN"),this.appendValueInput("FONTNUM").setCheck(Number).appendField(ot.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.mixpy_PL_TEXT_TOOLTIP)}},w_={init:function(){this.setColour(i_),this.appendValueInput("VAR").appendField(ot.Msg.MIXLY_TOARRAY),this.setOutput(!0,"List"),this.setTooltip(ot.Msg.MIXLY_PYTHON_TOOLTIP_TOARRAY)}},F_={init:function(){this.setColour(i_),this.appendValueInput("SER").setCheck("Series").appendField(ot.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendDummyInput().appendField(ot.Msg.blockpy_PYLAB_PLOT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},P_={init:function(){this.setColour(i_);var t=[[ot.Msg.blockpy_PYLAB_PLOT_LINE_SOLID,"-"],[ot.Msg.blockpy_PYLAB_PLOT_LINE_DOTTED,"--"],[ot.Msg.blockpy_PYLAB_PLOT_LINE_CHAIN,"-."],[ot.Msg.blockpy_PYLAB_PLOT_LINE_POINT_DOTTED,":"],[ot.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,""]],e=[[ot.Msg.COLOUR_RGB_BLUE,"b"],[ot.Msg.COLOUR_RGB_GREEN,"g"],[ot.Msg.COLOUR_RGB_RED,"r"],[ot.Msg.COLOUR_CYAN,"c"],[ot.Msg.COLOUR_MAGENTA,"m"],[ot.Msg.COLOUR_YELLOW,"y"],[ot.Msg.COLOUR_BLACK,"k"],[ot.Msg.COLOUR_WHITE,"w"]],n=[[ot.Msg.blockpy_PYLAB_PLOT_DOT_CIRCULAR,"."],[ot.Msg.blockpy_PYLAB_PLOT_DOT_PIXEL,","],[ot.Msg.blockpy_PYLAB_PLOT_DOT_LARGE_DOT,"o"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_DOWN,"v"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_UP,"^"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_LEFT,"<"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_RIGHT,">"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_UP,"1"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_DOWN,"2"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_LEFT,"3"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_RIGHT,"4"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_SQUARE,"s"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_PENTAGON,"p"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_STAR,"*"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_VERTICAL,"h"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_HORIZONTAL,"H"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_PLUS,"+"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_CROSS,"x"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND,"D"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND_SMALL,"d"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_VERTICAL,"|"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_HORIZONTAL,"_"]];this.appendValueInput("SER").setCheck("Series").appendField(ot.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendDummyInput().appendField(ot.Msg.blockpy_PYLAB_PLOT),this.appendDummyInput("").appendField(ot.Msg.blockpy_PYLAB_PLOT_DOT).appendField(new ot.FieldDropdown(n),"DOT"),this.appendDummyInput("").appendField(ot.Msg.blockpy_PYLAB_PLOT_LINE).appendField(new ot.FieldDropdown(t),"LINE"),this.appendDummyInput("").appendField(ot.Msg.HTML_COLOUR).appendField(new ot.FieldDropdown(e),"COLOR"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},k_={init:function(){this.setColour(i_),this.appendDummyInput().appendField(ot.Msg.blockpy_PYLAB_SHOW),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},V_={init:function(){this.setColour(i_),this.appendDummyInput().appendField(ot.Msg.mixpy_PL_AXES),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Y_={init:function(){this.setColour(i_),this.appendDummyInput().appendField(ot.Msg.blockpy_PYLAB_LEGEND),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},x_={init:function(){this.setColour(i_),this.appendDummyInput().appendField(ot.Msg.blockpy_PYLAB_TITLE),this.appendValueInput("TITLE").setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},U_={init:function(){this.setColour(i_);var t=[[ot.Msg.PYLAB_LABEL_X,"x"],[ot.Msg.PYLAB_LABEL_Y,"y"]];this.appendDummyInput().appendField(ot.Msg.blockpy_PYLAB_SET_LABEL).appendField(new ot.FieldDropdown(t),"DIR"),this.appendValueInput("LABEL").appendField(ot.Msg.blockpy_PYLAB_LABEL).setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},B_={init:function(){this.setColour(i_);var t=[[ot.Msg.mixpy_PYLAB_PLOT_BAR_PLOT,"plot"],[ot.Msg.mixpy_PYLAB_PLOT_BAR_BAR,"bar"]];this.appendDummyInput().appendField(ot.Msg.MIXLY_DISPLAY_DRAW).appendField(new ot.FieldDropdown(t),"DIR"),this.appendValueInput("A").appendField(ot.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(ot.Msg.mixpy_PYLAB_PLOT_Y),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("DIR");return{plot:ot.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP,bar:ot.Msg.mixpy_PYLAB_PLOT_BAR_EASY_TOOLTIP}[t]}))}},X_={init:function(){this.setColour(i_);var t=[[ot.Msg.COLOUR_RGB_BLUE,"b"],[ot.Msg.COLOUR_RGB_GREEN,"g"],[ot.Msg.COLOUR_RGB_RED,"r"],[ot.Msg.COLOUR_CYAN,"c"],[ot.Msg.COLOUR_MAGENTA,"m"],[ot.Msg.COLOUR_YELLOW,"y"],[ot.Msg.COLOUR_BLACK,"k"],[ot.Msg.COLOUR_WHITE,"w"]],e=[[ot.Msg.blockpy_PYLAB_PLOT_DOT_CIRCULAR,"."],[ot.Msg.blockpy_PYLAB_PLOT_DOT_PIXEL,","],[ot.Msg.blockpy_PYLAB_PLOT_DOT_LARGE_DOT,"o"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_DOWN,"v"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_UP,"^"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_LEFT,"<"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_RIGHT,">"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_UP,"1"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_DOWN,"2"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_LEFT,"3"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_RIGHT,"4"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_SQUARE,"s"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_PENTAGON,"p"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_STAR,"*"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_VERTICAL,"h"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_HORIZONTAL,"H"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_PLUS,"+"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_CROSS,"x"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND,"D"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND_SMALL,"d"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_VERTICAL,"|"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_HORIZONTAL,"_"]];this.appendValueInput("A").appendField(ot.Msg.mixpy_PYLAB_SCATTER).appendField(ot.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(ot.Msg.mixpy_PYLAB_PLOT_Y),this.appendValueInput("S").appendField(ot.Msg.MIXLY_MICROBIT_JS_NUMBER),this.appendDummyInput("").appendField(ot.Msg.blockpy_PYLAB_PLOT_DOT).appendField(new ot.FieldDropdown(e),"DOT"),this.appendDummyInput("").appendField(ot.Msg.HTML_COLOUR).appendField(new ot.FieldDropdown(t),"COLOR"),this.appendValueInput("TAG").setCheck(String).appendField(ot.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("")}},G_={init:function(){this.setColour(i_);var t=[[ot.Msg.blockpy_PYLAB_PLOT_LINE_SOLID,"-"],[ot.Msg.blockpy_PYLAB_PLOT_LINE_DOTTED,"--"],[ot.Msg.blockpy_PYLAB_PLOT_LINE_CHAIN,"-."],[ot.Msg.blockpy_PYLAB_PLOT_LINE_POINT_DOTTED,":"],[ot.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,""]],e=[[ot.Msg.COLOUR_RGB_BLUE,"b"],[ot.Msg.COLOUR_RGB_GREEN,"g"],[ot.Msg.COLOUR_RGB_RED,"r"],[ot.Msg.COLOUR_CYAN,"c"],[ot.Msg.COLOUR_MAGENTA,"m"],[ot.Msg.COLOUR_YELLOW,"y"],[ot.Msg.COLOUR_BLACK,"k"],[ot.Msg.COLOUR_WHITE,"w"]],n=[[ot.Msg.blockpy_PYLAB_PLOT_DOT_CIRCULAR,"."],[ot.Msg.blockpy_PYLAB_PLOT_DOT_PIXEL,","],[ot.Msg.blockpy_PYLAB_PLOT_DOT_LARGE_DOT,"o"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_DOWN,"v"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_UP,"^"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_LEFT,"<"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_RIGHT,">"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_UP,"1"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_DOWN,"2"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_LEFT,"3"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_RIGHT,"4"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_SQUARE,"s"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_PENTAGON,"p"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_STAR,"*"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_VERTICAL,"h"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_HORIZONTAL,"H"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_PLUS,"+"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_CROSS,"x"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND,"D"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND_SMALL,"d"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_VERTICAL,"|"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_HORIZONTAL,"_"]];this.appendValueInput("A").appendField(ot.Msg.mixpy_PYLAB_PLOT_XY).appendField(ot.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(ot.Msg.mixpy_PYLAB_PLOT_Y),this.appendDummyInput("").appendField(ot.Msg.blockpy_PYLAB_PLOT_DOT).appendField(new ot.FieldDropdown(n),"DOT"),this.appendDummyInput("").appendField(ot.Msg.blockpy_PYLAB_PLOT_LINE).appendField(new ot.FieldDropdown(t),"LINE"),this.appendDummyInput("").appendField(ot.Msg.HTML_COLOUR).appendField(new ot.FieldDropdown(e),"COLOR"),this.appendValueInput("TAG").setCheck(String).appendField(ot.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP)}},H_={init:function(){this.setColour(i_);var t=[[ot.Msg.MIXLY_TURTLE_WRITE_ALIGN_CENTER,"center"],[ot.Msg.AILGN_EDGE,"edge"]];this.appendValueInput("A").appendField(ot.Msg.mixpy_PYLAB_BAR).appendField(ot.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(ot.Msg.mixpy_PYLAB_PLOT_Y),this.appendValueInput("WIDTH").setCheck(Number).appendField(ot.Msg.MIXLY_WIDTH),this.appendDummyInput("").appendField(ot.Msg.mixpy_PYLAB_BAR_ALIGN).appendField(new ot.FieldDropdown(t),"ALIGN"),this.appendDummyInput().appendField(ot.Msg.HTML_COLOUR).appendField(new ot.FieldColour("#0000ff"),"COLOR"),this.appendValueInput("TAG").setCheck(String).appendField(ot.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP)}},W_={init:function(){this.setColour(i_);var t=[[ot.Msg.mixpy_PL_PIE_SHADOW_N,"False"],[ot.Msg.mixpy_PL_PIE_SHADOW_Y,"True"]],e=[[ot.Msg.mixpy_PL_PIE_SHADOW_N,"None"],[ot.Msg.mixpy_PYLAB_PIE_AUTOPCT_Z,"%.0f%%"],[ot.Msg.mixpy_PYLAB_PIE_AUTOPCT_O,"%.1f%%"],[ot.Msg.mixpy_PYLAB_PIE_AUTOPCT_T,"%.2f%%"]];this.appendValueInput("A").appendField(ot.Msg.mixpy_PYLAB_PIE).appendField(ot.Msg.COLOUR_BLEND_RATIO),this.appendValueInput("B").appendField(ot.Msg.mixpy_PYLAB_TICKS_TAG),this.appendValueInput("EXPLODE").appendField(ot.Msg.mixpy_PYLAB_PIE_EXPLODE),this.appendDummyInput("").appendField(ot.Msg.mixpy_PYLAB_PIE_AUTOPCT).appendField(new ot.FieldDropdown(e),"autopct"),this.appendDummyInput("").appendField(ot.Msg.mixpy_PYLAB_PIE_SHADOW).appendField(new ot.FieldDropdown(t),"SHADOW"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP)}},K_={init:function(){this.setColour(i_),this.appendValueInput("A").appendField(ot.Msg.mixpy_PYLAB_HIST).appendField(ot.Msg.MIXLY_SD_DATA),this.appendValueInput("B").appendField(ot.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},j_={init:function(){this.setColour(i_);var t=[[ot.Msg.PYLAB_LABEL_X,"x"],[ot.Msg.PYLAB_LABEL_Y,"y"]];this.appendDummyInput().appendField(ot.Msg.MIXLY_SETTING).appendField(new ot.FieldDropdown(t),"DIR"),this.appendValueInput("A").appendField(ot.Msg.mixpy_PYLAB_TICKS).appendField(ot.Msg.MIXLY_MICROBIT_JS_I2C_VALUE),this.appendValueInput("B").appendField(ot.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.mixpy_PYLAB_TICKS_TOOLTIP)}},q_={init:function(){this.setColour(i_),this.appendValueInput("VET").setCheck(Number).appendField(ot.Msg.mixpy_SUBPLOT).appendField(ot.Msg.mixpy_SUBPLOT_VERTICLE),this.appendValueInput("HOR").setCheck(Number).appendField(ot.Msg.mixpy_SUBPLOT_HORIZEN),this.appendValueInput("NUM").setCheck(Number).appendField(ot.Msg.mixpy_SUBPLOT_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},$_={init:function(){this.setColour(i_),this.appendDummyInput("").appendField(ot.Msg.mixpy_PL_SAVEFIG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(ot.Msg.mixpy_PL_SAVEFIG_TOOLTIP)}},z_={init:function(){this.setColour(i_);var t=[[ot.Msg.TEXT_TRIM_LEFT,"right"],[ot.Msg.mixpy_PL_TEXT_CENTER,"center"],[ot.Msg.TEXT_TRIM_RIGHT,"left"]],e=[[ot.Msg.mixpy_PL_TEXT_TOP,"bottom"],[ot.Msg.mixpy_PL_TEXT_CENTER,"center"],[ot.Msg.mixpy_PL_TEXT_BOTTOM,"top"]];this.appendValueInput("VET").setCheck(Number).appendField(ot.Msg.MIXLY_SETTING).appendField(ot.Msg.mixpy_PL_TEXT_X),this.appendValueInput("HOR").setCheck(Number).appendField(ot.Msg.mixpy_PL_TEXT_Y),this.appendValueInput("NUM").setCheck(Number).appendField(ot.Msg.mixpy_PL_TEXT_TAG),this.appendDummyInput("").appendField(ot.Msg.mixpy_PL_TEXT_HOR).appendField(new ot.FieldDropdown(t),"HALIGN"),this.appendDummyInput("").appendField(ot.Msg.mixpy_PL_TEXT_VER).appendField(new ot.FieldDropdown(e),"VALIGN"),this.appendValueInput("FONTNUM").setCheck(Number).appendField(ot.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.mixpy_PL_TEXT_TOOLTIP)}},Q_={init:function(){this.setColour(i_),this.appendValueInput("ARRAY").appendField("获取维度"),this.setOutput(!0),this.setTooltip("Returns the shape of the array.")}},J_={init:function(){this.setColour(i_),this.appendValueInput("ARRAY").appendField("变形"),this.appendValueInput("DIMENSIONS").appendField("后维度为"),this.setOutput(!0),this.setTooltip("Reshapes the array to the specified dimensions.")}},Z_={init:function(){this.setColour(i_),this.appendValueInput("ARRAY").appendField("把"),this.appendDummyInput().appendField("转换为").appendField(new ot.FieldDropdown([["uint8","numpy.uint8"],["int32","numpy.int32"],["float32","numpy.float32"],["float64","numpy.float64"]]),"TYPE"),this.setOutput(!0),this.setTooltip("Converts array to specified type.")}},td={init:function(){this.setColour(i_),this.appendValueInput("ARRAY").appendField("创建二维图"),this.appendDummyInput().appendField("颜色").appendField(new ot.FieldDropdown([["gray","gray"],["viridis","viridis"],["plasma","plasma"],["inferno","inferno"],["magma","magma"],["cividis","cividis"],["hot","hot"],["cool","cool"],["spring","spring"],["summer","summer"],["autumn","autumn"],["winter","winter"],["jet","jet"]]),"COLORMAP"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("Displays an image with the specified colormap.")}},ed={init:function(){this.setColour(i_),this.appendValueInput("X").appendField("从数据集"),this.appendValueInput("Y").appendField("获取平均图像,标签"),this.appendValueInput("DIGIT").appendField("为"),this.setOutput(!0),this.setTooltip("Computes the mean of X where y equals the specified digit.")}},nd={init:function(){this.setColour(i_),this.appendValueInput("IMAGE").appendField("获取模板匹配结果,图片:"),this.appendValueInput("TEMPLATES").appendField("模板:"),this.setOutput(!0),this.setTooltip("Finds the index of the template that minimizes the sum of absolute differences with the image.")}},id={init:function(){this.setColour(i_),this.appendValueInput("ARRAY").appendField("获取平均值"),this.appendDummyInput().appendField("沿着axis").appendField(new ot.FieldDropdown([["None","NONE"],["0","0"],["1","1"]]),"AXIS"),this.setOutput(!0),this.setTooltip("Computes the mean of the array along the specified axis.")}},sd={init:function(){this.setColour(i_),this.appendValueInput("ARRAY").appendField("获取标准差"),this.appendDummyInput().appendField("沿着axis").appendField(new ot.FieldDropdown([["None","NONE"],["0","0"],["1","1"]]),"AXIS"),this.setOutput(!0),this.setTooltip("Computes the standard deviation of the array along the specified axis.")}},od={init:function(){this.setColour(i_),this.appendValueInput("DF").appendField("丢弃缺省值"),this.setOutput(!0),this.setTooltip("Drops rows with NaN values from the dataframe.")}},rd={init:function(){this.setColour(i_),this.appendValueInput("DATAFRAME").appendField("从数据集"),this.appendValueInput("COLUMNS").appendField("中删除列").setCheck(String),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip("从数据框中删除指定的列。用逗号分隔多个列名。")}},ad={init:function(){this.setColour(i_),this.appendValueInput("NUM").appendField("生成单位行向量"),this.setOutput(!0),this.setTooltip("Creates an array of ones with the specified length.")}},ld={init:function(){this.setColour(i_),this.appendValueInput("ARRAY1").appendField("列拼接:数组1"),this.appendValueInput("ARRAY2").appendField("数组2"),this.setOutput(!0),this.setTooltip("Concatenates two arrays along the second axis using numpy.c_.")}},ud={init:function(){this.setColour(i_),this.appendValueInput("ARRAY").appendField("获取行列式"),this.setOutput(!0),this.setTooltip("Computes the determinant of an array using numpy.linalg.det.")}},pd={init:function(){this.setColour(i_),this.appendValueInput("MATRIX").appendField("获取转置"),this.setOutput(!0),this.setTooltip("Computes the transpose of the given matrix.")}},_d={init:function(){this.setColour(i_),this.appendValueInput("MATRIX1"),this.appendValueInput("MATRIX2").appendField("@"),this.setOutput(!0),this.setTooltip("Multiplies two matrices.")}},dd={init:function(){this.setColour(i_),this.appendValueInput("ARRAY").appendField("获取逆矩阵"),this.setOutput(!0),this.setTooltip("Computes the inverse of the given matrix using numpy.linalg.inv.")}},hd={init:function(){this.setColour(i_),this.appendValueInput("DATAFRAME").appendField("获取中位数"),this.setOutput(!0),this.setTooltip("Computes the median of the given dataframe.")}},cd={init:function(){this.setColour(i_),this.appendValueInput("DATAFRAME").appendField("填充缺失值"),this.appendValueInput("VALUE").appendField("填充值"),this.appendDummyInput().appendField("是否修改原数据").appendField(new ot.FieldDropdown([["True","True"],["False","False"]]),"INPLACE"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("Fills NaN values in the dataframe with the specified value.")}},Td={init:function(){this.setColour(i_),this.appendValueInput("DATAFRAME").appendField("获取DataFrame信息"),this.setOutput(!0),this.setTooltip("Displays information about the DataFrame.")}},Id={init:function(){this.setColour(i_),this.appendValueInput("ARRAY").appendField("获取最小值"),this.appendDummyInput().appendField("沿着axis").appendField(new ot.FieldDropdown([["None","None"],["行","0"],["列","1"]]),"AXIS"),this.setOutput(!0),this.setTooltip("Returns the minimum value along the specified axis.")}},md={init:function(){this.setColour(i_),this.appendValueInput("ARRAY").appendField("获取最大值"),this.appendDummyInput().appendField("沿着axis").appendField(new ot.FieldDropdown([["None","None"],["行","0"],["列","1"]]),"AXIS"),this.setOutput(!0),this.setTooltip("Returns the maximum value along the specified axis.")}},Ed={init:function(){this.setColour(i_),this.appendValueInput("ARRAY").appendField("获取数组大小"),this.setOutput(!0),this.setTooltip("Returns the size of the array.")}},fd={init:function(){this.setColour(i_),this.appendValueInput("ARRAY1").appendField("点乘数组1"),this.appendValueInput("ARRAY2").appendField("点乘数组2"),this.setOutput(!0),this.setTooltip("Returns the dot product of two arrays.")}},gd={init:function(){this.setColour(i_),this.appendValueInput("ARRAY").appendField("获取平方数组"),this.setOutput(!0),this.setTooltip("Returns the element-wise square of the array.")}},Od={init:function(){this.setColour(i_),this.appendValueInput("ARRAY").appendField("获取数组元素和"),this.setOutput(!0),this.setTooltip("Returns the sum of the array.")}},Md={init:function(){this.setColour(i_),this.appendValueInput("SIZE").appendField("生成随机数组"),this.setOutput(!0),this.setTooltip("Returns a random array of the specified size.")}},Rd={init:function(){this.setColour(i_),this.appendValueInput("ARRAY").appendField("Python求和"),this.setOutput(!0),this.setTooltip("Returns the sum of the iterable.")}},Ad={init:function(){this.setColour(i_),this.appendValueInput("DICT").setAlign(ot.inputs.Align.RIGHT).setCheck("Dict"),this.appendDummyInput().setAlign(ot.inputs.Align.RIGHT).appendField("值排序"),this.appendValueInput("KEY").setAlign(ot.inputs.Align.RIGHT).appendField("标签"),this.appendDummyInput().setAlign(ot.inputs.Align.RIGHT).appendField("排序方式").appendField(new ot.FieldDropdown([["升序","True"],["降序","False"]]),"AS_CENDING"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip("")}},Sd={init:function(){this.setColour(i_),this.appendValueInput("DICT").setAlign(ot.inputs.Align.RIGHT).setCheck("Dict"),this.appendDummyInput().setAlign(ot.inputs.Align.RIGHT).appendField("获取").appendField(new ot.FieldDropdown([["前几行","head"],["最后几行","tail"]]),"TYPE"),this.appendValueInput("LINES").setAlign(ot.inputs.Align.RIGHT).appendField("行数"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip("")}},Cd={init:function(){this.setColour(i_),this.appendValueInput("DICT").setAlign(ot.inputs.Align.RIGHT).setCheck("Dict"),this.appendDummyInput().setAlign(ot.inputs.Align.RIGHT).appendField("筛选数据"),this.appendValueInput("KEY").setAlign(ot.inputs.Align.RIGHT).appendField("满足条件"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip("")}},Ld={init:function(){this.setColour(i_),this.appendValueInput("DICT").setAlign(ot.inputs.Align.RIGHT).setCheck("Dict"),this.appendValueInput("KEY").setAlign(ot.inputs.Align.RIGHT).appendField("通过标签"),this.appendDummyInput().setAlign(ot.inputs.Align.RIGHT).appendField("分组"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip("")}},yd={init:function(){this.setColour(i_),this.appendDummyInput().setAlign(ot.inputs.Align.RIGHT).appendField(new ot.FieldDropdown([["求最小值","min"],["求最大值","max"],["求和","sum"],["求平均值","mean"],["求中位数","median"],["求标准差","std"]]),"TYPE"),this.appendValueInput("DICT").setAlign(ot.inputs.Align.RIGHT).setCheck("Dict"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip("")}},Dd={init:function(){this.setColour(i_),this.appendDummyInput().appendField("清除已有图像"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Nd=80,bd={init:function(){this.setColour(Nd),this.appendDummyInput("").appendField(new ot.FieldLabel(ot.Msg.DS_CREATE_LINKEDLIST_NEW)),this.appendDummyInput("").appendField(new ot.FieldLabel(ot.Msg.DS_CREATE_LINKEDLIST_HEAD)).appendField(new ot.FieldTextInput("head"),"VAR"),this.appendDummyInput("").appendField(new ot.FieldLabel(ot.Msg.DS_CREATE_LINKEDLIST_TYPE)).appendField(new ot.FieldTextInput("tag"),"TYPE"),this.appendDummyInput().appendField(ot.Msg.DS_CREATE_LINKEDLIST_ATTRIBUTE),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new ot.icons.MutatorIcon(["ds_create_linkedlist_item"],this)),this.setTooltip(ot.Msg.DS_CREATE_LINKEDLIST_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("ds_create_linkedlist_container");e.initSvg();for(var n=e.getInput("STACK").connection,i=0;ie?t[e]:"name"),"KEY"+e).appendField("=")},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},vd={init:function(){this.setColour(Nd),this.appendDummyInput().appendField(ot.Msg.DS_CREATE_LINKEDLIST_CONTAINER_TITLE),this.appendStatementInput("STACK"),this.setTooltip(ot.Msg.DS_CREATE_LINKEDLIST_CONTAINER_TOOLTIP),this.contextMenu=!1}},wd={init:function(){this.setColour(Nd),this.appendDummyInput().appendField(ot.Msg.DS_CREATE_LINKEDLIST_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.DS_CREATE_LINKEDLIST_ITEM_TOOLTIP),this.contextMenu=!1}},Fd={init:function(){this.setColour(Nd),this.appendDummyInput("").appendField(ot.Msg.DS_CREATE_NODE_USE).appendField(new ot.FieldTextInput("tag"),"TYPE"),this.appendDummyInput("").appendField(ot.Msg.DS_CREATE_NODE_NEW),this.appendValueInput("NODE"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ot.Msg.DS_CREATE_NODE_TOOLTIP)}},Pd={init:function(){this.setColour(Nd),this.appendDummyInput("").appendField(ot.Msg.DS_GET_NODE_ATTR_NODE),this.appendValueInput("NODE"),this.appendDummyInput("").appendField(ot.Msg.MIXLY_AIP_ATTR).appendField(new ot.FieldTextInput("name"),"TYPE"),this.appendDummyInput("").appendField(ot.Msg.DICTS_ADD_VALUE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ot.Msg.DS_GET_NODE_ATTR_TOOLTIP)}},kd={init:function(){this.setColour(Nd),this.appendDummyInput("").appendField(ot.Msg.DS_SET_NODE_ATTR_NODE),this.appendValueInput("NODE"),this.appendDummyInput("").appendField(ot.Msg.MIXLY_AIP_ATTR).appendField(new ot.FieldTextInput("name"),"TYPE"),this.appendValueInput("VAR").appendField(ot.Msg.DS_SET_NODE_ATTR_SET),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ot.Msg.DS_SET_NODE_ATTR_TOOLTIP)}},Vd={init:function(){this.setColour(Nd),this.appendValueInput("NODE").appendField(ot.Msg.DS_ADD_NODE_HEAD_NODE);var t=[[ot.Msg.DS_ADD_NODE_BEFORE,"before"],[ot.Msg.DS_ADD_NODE_AFTER,"after"]];this.appendDummyInput("").appendField(ot.Msg.DS_ADD_NODE_LINKEDLIST),this.appendValueInput("NODE2").appendField(ot.Msg.DS_SET_NODE_ATTR_NODE),this.appendValueInput("NODE3").appendField(new ot.FieldDropdown(t),"DIR").appendField(ot.Msg.DS_ADD_NODE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ot.Msg.DS_ADD_NODE_TOOLTIP)}},Yd={init:function(){this.setColour(Nd),this.appendValueInput("NODE").appendField(ot.Msg.DS_ADD_NODE_HEAD_NODE);var t=[[ot.Msg.DS_ADD_NODE_BEFORE,"before"],[ot.Msg.DS_ADD_NODE_AFTER,"after"]];this.appendDummyInput("").appendField(ot.Msg.DS_ADD_NODE_LINKEDLIST),this.appendDummyInput("").appendField(ot.Msg.DS_CREATE_LINKEDLIST_ITEM_TITLE).appendField(new ot.FieldTextInput("name"),"TYPE"),this.appendValueInput("VAR").appendField(ot.Msg.MIXLY_AS),this.appendDummyInput("").appendField(ot.Msg.DS_ADD_NODE_ATTR),this.appendValueInput("NODE3").appendField(new ot.FieldDropdown(t),"DIR").appendField(ot.Msg.DS_ADD_NODE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ot.Msg.DS_ADD_NODE_TOOLTIP)}},xd={init:function(){this.setColour(Nd),this.appendValueInput("NODE").appendField(ot.Msg.DS_ADD_NODE_HEAD_NODE),this.appendDummyInput("").appendField(ot.Msg.DS_ADD_NODE_LINKEDLIST),this.appendValueInput("NODE2").appendField(ot.Msg.DS_DEL_NODE_NAME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ot.Msg.DS_DEL_NODE_TOOLTIP)}},Ud={init:function(){this.setColour(Nd),this.appendValueInput("NODE").appendField(ot.Msg.DS_ADD_NODE_HEAD_NODE),this.appendDummyInput("").appendField(ot.Msg.DS_ADD_NODE_LINKEDLIST),this.appendDummyInput("").appendField(ot.Msg.DS_DEL_NODE_ATTR).appendField(new ot.FieldTextInput("name"),"TYPE"),this.appendValueInput("VAR").appendField(ot.Msg.MIXLY_AS),this.appendDummyInput("").appendField(ot.Msg.DS_ADD_NODE_ATTR),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ot.Msg.DS_DEL_NODE_TOOLTIP)}},Bd={init:function(){this.setColour(Nd),this.appendValueInput("NODE").appendField(ot.Msg.DS_ADD_NODE_HEAD_NODE),this.appendDummyInput("").appendField(ot.Msg.DS_REVERSE_LINKEDLIST),this.appendValueInput("NODE2").appendField(ot.Msg.DS_REVERSE_LINKEDLIST_NEW_HEAD),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ot.Msg.DS_DEL_NODE_TOOLTIP)}},Xd="#777777",Gd={init:function(){this.setColour(Xd),this.appendDummyInput("").appendField("from ").appendField(new ot.FieldTextInput("ESP32"),"path").appendField(" import ").appendField(new ot.FieldTextInput("*"),"module"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Hd={init:function(){this.setColour(Xd),this.appendDummyInput("").appendField("import ").appendField(new ot.FieldTextInput("module"),"module"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Wd={init:function(){this.setColour(Xd),this.appendDummyInput("").appendField(new ot.FieldTextInput("my_function"),"NAME"),this.itemCount_=1,this.arguments_=["x"],this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new ot.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){ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Ah={init:function(){this.setColour(Eh),this.appendDummyInput().appendField(ot.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(ot.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},Sh={init:function(){this.setColour(Eh),this.appendDummyInput().appendField(ot.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},Ch={init:function(){this.setColour(Eh),this.appendDummyInput().appendField(ot.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},Lh={init:function(){this.setColour(Eh),this.appendDummyInput().appendField(ot.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").setCheck(String).appendField(ot.Msg.MIXLY_EMQX_SERVER).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("USERNAME").setCheck(String).appendField(ot.Msg.MIXLY_WIFI_USERNAME).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("PASSWORD").setCheck(String).appendField(ot.Msg.MIXLY_IOT_PASSWORD).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("PROJECT").setCheck(String).appendField(ot.Msg.MIXLY_EMQX_PROJECT).setAlign(ot.inputs.Align.RIGHT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},yh={init:function(){this.setColour(Eh),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(ot.Msg.MIXLY_EMQX_PUBLISH_NEW).appendField(ot.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MSG").appendField(ot.Msg.HTML_BODY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.MIXLY_ESP32_IOT_EMQX_PUBLISH_TOOLTIP)}},Dh={init:function(){this.setColour(Eh),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(ot.Msg.MIXLY_EMQX_SUBSCRIBE+ot.Msg.MIXLY_MICROBIT_MSG).appendField(ot.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("METHOD").appendField(ot.Msg.MIXLY_EMQX_SET_METHOD),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.MIXLY_ESP32_IOT_EMQX_SUBSCRIBE_TOOLTIP)}},Nh={init:function(){this.setColour(Eh),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(ot.Msg.MSG.stop+ot.Msg.MIXLY_EMQX_SUBSCRIBE).appendField(ot.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.MIXLY_ESP32_IOT_EMQX_SUBSCRIBE_TOOLTIP)}},bh={init:function(){this.setColour(Eh),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(ot.Msg.MIXLY_ESP32_DISCONNECT_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},vh={init:function(){this.setColour(Eh),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(ot.Msg.MIXLY_EMQX_CONNECT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},wh={init:function(){this.setColour(Eh),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(ot.Msg.MIXLY_ESP32_CHECK_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Fh={init:function(){this.setColour(Eh),this.appendDummyInput().appendField(ot.Msg.MIXLY_MICROPYTHON_FORMAT).appendField(ot.MQTT_Topic),this.setInputsInline(!0),this.setOutput(!0)}},Ph={init:function(){this.setColour(Eh),this.appendDummyInput().appendField(ot.Msg.MIXLY_MICROPYTHON_FORMAT).appendField(ot.Msg.MIXLY_EMQX_PUBLISH_MSG),this.setInputsInline(!0),this.setOutput(!0)}},kh={init:function(){this.setColour(Eh),this.appendValueInput("VAR").appendField(ot.Msg.MIXLY_ESP32_IOT_MAP_FORMATING),this.setOutput(!0)}},Vh={init:function(){this.setColour(Eh),this.appendValueInput("VAR").appendField(ot.Msg.MIXLY_MICROPYTHON_FORMAT+"(Json)"),this.setOutput(!0)}},Yh={init:function(){this.setColour(Eh),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(ot.Msg.MIXLY_EMQX_PING),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(ot.Msg.MIXLY_ESP32_IOT_EMQX_PING_TOOLTIP)}},xh={init:function(){this.setColour(Eh),this.appendDummyInput().appendField("MixIO").appendField(ot.Msg.MIXLY_GET_NTP),this.appendValueInput("addr").appendField(ot.blynk_SERVER_ADD),this.setInputsInline(!0),this.setOutput(!0)}},Uh={init:function(){this.setColour(Eh),this.appendDummyInput().appendField(ot.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").appendField(ot.Msg.MIXLY_EMQX_SERVER).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("KEY").appendField(ot.Msg.CONTROLS_FOR_INPUT_WITH+ot.Msg.MIXLY_MIXIO_SHARE_KEY).setAlign(ot.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Bh={init:function(){this.setColour(Eh),this.appendDummyInput().appendField(ot.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").appendField(ot.Msg.MIXLY_EMQX_SERVER).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("KEY").appendField(ot.Msg.CONTROLS_FOR_INPUT_WITH+"Mixly Key").setAlign(ot.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Xh={init:function(){this.VISITOR_ID=rt.Config.BOARD.visitorId.str32.substring(0,8).toUpperCase(),this.setColour(Eh),this.appendDummyInput("").appendField(this.newQuote_(!0)).appendField(new ot.FieldTextInput(this.visitorId),"VISITOR_ID").appendField(this.newQuote_(!1)),this.setOutput(!0,null)},onchange:function(){const t=this.getFieldValue("VISITOR_ID");this.VISITOR_ID!==t&&this.setFieldValue(this.VISITOR_ID,"VISITOR_ID")},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 ot.FieldImage(e,12,12,'"')}},Gh={init:function(){this.VISITOR_ID=rt.Config.BOARD.visitorId.str32.substring(0,8).toUpperCase(),this.setColour(Eh),this.appendDummyInput("").appendField(new ot.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")}},Hh={init:function(){this.setColour(Eh),this.appendDummyInput().appendField("MixIO").appendField(ot.Msg.MSG.catEthernet_clinet),this.setOutput(!0),this.setInputsInline(!0)}},Wh={init:function(){this.setColour(Eh),this.appendDummyInput().appendField("HTTP"+ot.Msg.MIXLY_Client),this.appendValueInput("addr").appendField(ot.Msg.DISPLAY_IMAGE_LET2),this.appendDummyInput().appendField(ot.Msg.MIXLY_REQUESTS_GET).appendField(ot.Msg.MIXLY_GET_CURRENT_TIME).appendField(ot.Msg.MIXLY_OPEN_DEBUG).appendField(new ot.FieldDropdown([[ot.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[ot.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Kh={init:function(){this.setColour(Eh),this.appendDummyInput().appendField("HTTP"+ot.Msg.MIXLY_Client).appendField(ot.Msg.MIXLY_GET).appendField(new ot.FieldDropdown([[ot.Msg.MIXLY_REQUESTS_LEN,"client_len"],[ot.Msg.MIXLY_REQUESTS_GET_LEN,"server_len"],[ot.Msg.MIXLY_REQUESTS_MESSAGE,"text"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},jh={init:function(){this.setColour(Eh),this.appendDummyInput().appendField("MQTT"+ot.Msg.MIXLY_Client),this.appendValueInput("addr").appendField(ot.Msg.MIXLY_CONNECTTO),this.appendDummyInput().appendField(ot.Msg.MIXLY_INIT_SUBSCRIBE).appendField(ot.MQTT_Topic).appendField(new ot.FieldDropdown([[ot.Msg.MIXLY_GET_CURRENT_TIME,""]]),"key").appendField(ot.Msg.MIXLY_OPEN_DEBUG).appendField(new ot.FieldDropdown([[ot.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[ot.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"key2"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},qh={init:function(){this.setColour(Eh),this.appendDummyInput().appendField("MQTT"+ot.Msg.MIXLY_Client).appendField(ot.Msg.MIXLY_GET).appendField(new ot.FieldDropdown([[ot.Msg.MIXLY_REQUESTS_LEN,"client_len"],[ot.Msg.MIXLY_REQUESTS_GET_LEN,"server_len"],[ot.Msg.MIXLY_REQUESTS_MESSAGE,"time_msg()"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},$h=fh,zh=gh,Qh=Oh,Jh=Rh,Zh=230,tc={init:function(){this.setColour(Zh),this.appendDummyInput("").appendField(new ot.FieldDropdown(rt.Profile.default.digital_write),"PIN"),this.setOutput(!0)}},ec={init:function(){this.setColour(Zh),this.appendDummyInput("").appendField(new ot.FieldDropdown(rt.Profile.default.digital_read),"PIN"),this.setOutput(!0)}},nc={init:function(){this.setColour(Zh),this.appendDummyInput("").appendField(new ot.FieldDropdown(rt.Profile.default.analog_write),"PIN"),this.setOutput(!0)}},ic={init:function(){this.setColour(Zh),this.appendDummyInput("").appendField(new ot.FieldDropdown(rt.Profile.default.analog_read),"PIN"),this.setOutput(!0)}},sc={init:function(){this.setColour(40),this.appendDummyInput("").appendField(new ot.FieldLabel(ot.Msg.MIXPY_SERIAL_OPEN)).appendField(new ot.FieldTextInput("ser"),"SER"),this.appendDummyInput().appendField(ot.Msg.MIXLY_SERIAL_BEGIN).appendField(new ot.FieldDropdown([["115200","115200"],["256000","256000"],["128000","128000"],["57600","57600"],["56000","56000"],["43000","43000"],["38400","38400"],["28800","28800"],["19200","19200"],["9600","9600"],["4800","4800"],["2400","2400"],["1200","1200"],["600","600"],["300","300"],["110","110"]]),"BPS"),this.appendValueInput("VAR").appendField(ot.Msg.MIXPY_SERIAL_OPEN_TIMEOUT),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(ot.Msg.MIXPY_SERIAL_OPEN_TOOLTIP)}},oc={init:function(){this.setColour(40),this.appendValueInput("SER"),this.appendValueInput("VAR").appendField(ot.Msg.MIXPY_SERIAL_WRITE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(ot.Msg.MIXPY_SERIAL_WRITE_TOOLTIP)}},rc={init:function(){this.setColour(40),this.appendValueInput("SER"),this.appendValueInput("VAR").setCheck(Number).appendField(ot.Msg.MIXPY_SERIAL_READ),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(ot.Msg.MIXPY_SERIAL_READ_TOOLTIP)}},ac={init:function(){this.setColour(40),this.appendValueInput("SER"),this.appendDummyInput().appendField(ot.Msg.MIXPY_SERIAL_CLOSE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(ot.Msg.MIXPY_SERIAL_CLOSE_TOOLTIP)}},lc=80,uc={init:function(){this.appendDummyInput().appendField(ot.Msg.SKLEARN_CLASSIFICATION_GENERATION),this.appendValueInput("n_samples").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.NUMBER_OF_SAMPLES),this.appendValueInput("n_features").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.NUMBER_OF_FEATURES),this.appendValueInput("n_informative").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.NUMBER_OF_EFFECTIVE_FEATURES),this.appendValueInput("n_redundant").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.NUMBER_OF_REDUNDANT_FEATURES),this.appendValueInput("n_repeated").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.NUMBER_OF_REPEATED_FEATURES),this.appendValueInput("n_classes").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.NUMBER_OF_CLASSES),this.appendValueInput("n_clusters_per_class").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.NUMBER_OF_CLUSTERS_PER_CLASSES),this.appendValueInput("random_state").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.RANDOM_SEED),this.setInputsInline(!1),this.setOutput(!0,null),this.setColour(lc),this.setTooltip(""),this.setHelpUrl("")}},pc={init:function(){this.appendDummyInput().appendField(ot.Msg.SKLEARN_REGRESSION_GENERATION),this.appendValueInput("n_samples").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.NUMBER_OF_SAMPLES),this.appendValueInput("n_features").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.NUMBER_OF_FEATURES),this.appendValueInput("n_informative").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.NUMBER_OF_EFFECTIVE_FEATURES),this.appendValueInput("n_targets").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.NUMBER_OF_LABELS),this.appendValueInput("bias").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.DEVIATION),this.appendValueInput("noise").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.NOISE),this.appendValueInput("random_state").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.RANDOM_SEED),this.setInputsInline(!1),this.setOutput(!0,null),this.setColour(lc),this.setTooltip(""),this.setHelpUrl("")}},_c={init:function(){this.appendDummyInput().appendField(ot.Msg.SKLEARN_CLUSTERING_GENERATION),this.appendValueInput("n_samples").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.NUMBER_OF_SAMPLES),this.appendValueInput("n_features").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.NUMBER_OF_FEATURES),this.appendValueInput("centers").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.NUMBER_OF_CLUSTERS),this.appendValueInput("cluster_std").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.STANDARD_DEVIATION_OF_CLUSTER),this.appendValueInput("center_box").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.CLUSTER_BOUNDING_BOX),this.appendValueInput("shuffle").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.SHUFFLE_SAMPLES),this.appendValueInput("random_state").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.RANDOM_SEED),this.setInputsInline(!1),this.setOutput(!0,null),this.setColour(lc),this.setTooltip(""),this.setHelpUrl("")}},dc={init:function(){var t=[[ot.Msg.SKLEARN_LOAD_IRIS,"load_iris"],[ot.Msg.SKLEARN_LOAD_BOSTON,"load_boston"],[ot.Msg.SKLEARN_LOAD_DIABETES,"load_diabetes"],[ot.Msg.SKLEARN_LOAD_BREAST_CANCER,"load_breast_cancer"],[ot.Msg.SKLEARN_LOAD_LINNERUD,"load_linnerud"],[ot.Msg.SKLEARN_LOAD_DIGITS,"load_digits"]];this.appendDummyInput().appendField("sklearn "+ot.Msg.LOAD).appendField(new ot.FieldDropdown(t),"type").appendField(new ot.FieldTextInput("iris"),"name"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(lc),this.setTooltip(""),this.setHelpUrl("")},getVars:function(){return[this.getFieldValue("name")]},renameVar:function(t,e){ot.Names.equals(t,this.getFieldValue("name"))&&this.setTitleValue(e,"name")}},hc={init:function(){this.appendValueInput("name").setCheck(null).appendField("sklearn "+ot.Msg.DATA_SET),this.appendDummyInput().setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.MIXLY_GET).appendField(new ot.FieldDropdown([[ot.Msg.EIGENVALUES,"data"],[ot.Msg.LABEL_VALUE,"target"],[ot.Msg.FEATURE,"feature_names"],[ot.Msg.mixpy_PYLAB_TICKS_TAG,"target_names"]]),"type"),this.setOutput(!0,null),this.setColour(lc),this.setTooltip(""),this.setHelpUrl("")}},cc={init:function(){this.appendDummyInput().appendField("sklearn "+ot.Msg.DATA_SEGMENTATION),this.appendValueInput("train_data").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.EIGENVALUES),this.appendValueInput("train_target").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.LABEL_VALUE),this.appendValueInput("test_size").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.TEST_SET_PROPORTION),this.appendValueInput("rondom_state").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.RANDOM_SEED),this.setInputsInline(!1),this.setOutput(!0,null),this.setColour(lc),this.setTooltip(""),this.setHelpUrl("")}},Tc={init:function(){this.appendDummyInput().appendField("sklearn "+ot.Msg.DATA_SEGMENTATION),this.appendValueInput("train_data").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.EIGENVALUES),this.appendValueInput("test_size").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.TEST_SET_PROPORTION),this.appendValueInput("rondom_state").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.RANDOM_SEED),this.setInputsInline(!1),this.setOutput(!0,null),this.setColour(lc),this.setTooltip(""),this.setHelpUrl("")}},Ic={init:function(){this.appendDummyInput().appendField("sklearn "+ot.Msg.SKLEARN_LINEARREGRESSION_INIT),this.appendValueInput("model_name").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.MODEL_NAME),this.appendValueInput("fit_intercept").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.SKLEARN_CALCULATE_MODEL_INTERRUPT),this.appendValueInput("normalize").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.SKLEARN_REGRESSION_NORMIALIZATION),this.appendValueInput("n_jobs").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.SKLEARN_THREADS),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(lc),this.setTooltip(""),this.setHelpUrl("")}},mc={init:function(){this.appendDummyInput().appendField("sklearn "+ot.Msg.SKLEARN_RIDGE_INIT),this.appendValueInput("model_name").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.MODEL_NAME),this.appendValueInput("alpha").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.SKLEARN_REGULA_INTENSITY),this.appendValueInput("fit_intercept").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.SKLEARN_CALCULATE_MODEL_INTERRUPT),this.appendValueInput("normalize").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.SKLEARN_REGRESSION_NORMIALIZATION),this.appendValueInput("max_iter").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.SKLEARN_MAX_ITER),this.appendValueInput("random_state").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.RANDOM_SEED),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(lc),this.setTooltip(""),this.setHelpUrl("")}},Ec={init:function(){this.appendDummyInput().appendField("sklearn "+ot.Msg.SKLEARN_DECISIONTREE_INIT).appendField(new ot.FieldDropdown([[ot.Msg.SKLEARN_CLASSIFICATION_ALGORITHM,"DecisionTreeClassifier"],[ot.Msg.SKLEARN_REGRESSION_ALGORITHM,"DecisionTreeRegressor"]]),"type"),this.appendValueInput("model_name").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.MODEL_NAME),this.appendValueInput("max_depth").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.SKLEARN_MAXIMUM_TREE_DEPTH),this.appendValueInput("random_state").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.RANDOM_SEED),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(lc),this.setTooltip(""),this.setHelpUrl("")}},fc={init:function(){this.appendDummyInput().appendField("sklearn "+ot.Msg.SKLEARN_RANDOMFOREST_INIT).appendField(new ot.FieldDropdown([[ot.Msg.SKLEARN_CLASSIFICATION_ALGORITHM,"RandomForestClassifier"],[ot.Msg.SKLEARN_REGRESSION_ALGORITHM,"RandomForestRegressor"]]),"type"),this.appendValueInput("model_name").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.MODEL_NAME),this.appendValueInput("n_estimators").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.NUMBER_OF_TREES),this.appendValueInput("max_depth").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.SKLEARN_MAXIMUM_TREE_DEPTH),this.appendValueInput("n_jobs").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.SKLEARN_THREADS),this.appendValueInput("random_state").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.RANDOM_SEED),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(lc),this.setTooltip(""),this.setHelpUrl("")}},gc={init:function(){this.appendDummyInput().appendField("sklearn "+ot.Msg.SKLEARN_KNN_INIT).appendField(new ot.FieldDropdown([[ot.Msg.SKLEARN_CLASSIFICATION_ALGORITHM,"KNeighborsClassifier"],[ot.Msg.SKLEARN_REGRESSION_ALGORITHM,"KNeighborsRegressor"]]),"type"),this.appendValueInput("model_name").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.MODEL_NAME),this.appendValueInput("K").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField("K"),this.appendValueInput("n_jobs").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.SKLEARN_THREADS),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(lc),this.setTooltip(""),this.setHelpUrl("")}},Oc={init:function(){this.appendDummyInput().appendField("sklearn "+ot.Msg.SKLEARN_GAUSSINNB_INIT),this.appendValueInput("model_name").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.MODEL_NAME),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(lc),this.setTooltip(""),this.setHelpUrl("")}},Mc={init:function(){this.appendDummyInput().appendField("sklearn 初始化 PCA 算法"),this.appendValueInput("model_name").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.MODEL_NAME),this.appendValueInput("n_components").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.SKLEARN_PCA_N_COMPONENTS),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(lc),this.setTooltip(""),this.setHelpUrl("")}},Rc={init:function(){this.appendDummyInput().appendField("sklearn PCA 降维"),this.appendValueInput("model_name").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.MODEL_NAME),this.appendValueInput("train_data").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.EIGENVALUES),this.setInputsInline(!0),this.setOutput(!0,null),this.setColour(lc),this.setTooltip(""),this.setHelpUrl("")}},Ac={init:function(){this.appendDummyInput().appendField("sklearn "+ot.Msg.SKLEARN_KMEANS_INIT),this.appendValueInput("model_name").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.MODEL_NAME),this.appendValueInput("n_clusters").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.NUMBER_OF_CLUSTERS_JUST),this.appendValueInput("max_iter").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.SKLEARN_MAX_ITER),this.appendValueInput("random_state").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.RANDOM_SEED),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(lc),this.setTooltip(""),this.setHelpUrl("")}},Sc={init:function(){this.appendDummyInput().appendField("sklearn K-均值聚类"),this.appendValueInput("model_name").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.MODEL_NAME),this.appendValueInput("train_data").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.EIGENVALUES),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(lc),this.setTooltip(""),this.setHelpUrl("")}},Cc={init:function(){this.appendDummyInput().appendField("sklearn "+ot.Msg.TRAINING_MODEL),this.appendValueInput("model_name").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.MODEL_NAME),this.appendValueInput("train_data").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.EIGENVALUES),this.appendValueInput("train_target").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.LABEL_VALUE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(lc),this.setTooltip(""),this.setHelpUrl("")}},Lc={init:function(){this.appendDummyInput().appendField("sklearn "+ot.Msg.TRAINING_MODEL),this.appendValueInput("model_name").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.MODEL_NAME),this.appendValueInput("train_data").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.EIGENVALUES),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(lc),this.setTooltip(""),this.setHelpUrl("")}},yc={init:function(){this.appendDummyInput().appendField("sklearn "+ot.Msg.MODEL_PRODICTION),this.appendValueInput("model_name").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.MODEL_NAME),this.appendValueInput("train_data").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.EIGENVALUES),this.setInputsInline(!0),this.setOutput(!0,null),this.setColour(lc),this.setTooltip(""),this.setHelpUrl("")}},Dc={init:function(){this.appendDummyInput().appendField("sklearn "+ot.Msg.CALCULATE_THE_SCORE),this.appendValueInput("model_name").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.MODEL_NAME),this.appendValueInput("train_data").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.EIGENVALUES),this.appendValueInput("train_target").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.LABEL_VALUE),this.setInputsInline(!0),this.setOutput(!0,null),this.setColour(lc),this.setTooltip(""),this.setHelpUrl("")}},Nc={init:function(){this.appendDummyInput().appendField("sklearn "+ot.Msg.CALCULATE_THE_SCORE),this.appendValueInput("model_name").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.MODEL_NAME),this.appendValueInput("train_data").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.EIGENVALUES),this.setInputsInline(!0),this.setOutput(!0,null),this.setColour(lc),this.setTooltip(""),this.setHelpUrl("")}},bc={init:function(){this.appendDummyInput().appendField("sklearn "+ot.Msg.SKLEARN_GENERALIZED_LINEAR_REGRESSION),this.appendValueInput("model_name").setAlign(ot.inputs.Align.RIGHT).setCheck(null).appendField(ot.Msg.MODEL_NAME),this.appendDummyInput().setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.MIXLY_GET).appendField(new ot.FieldDropdown([[ot.Msg.SKLEARN_COEF,"coef_"],[ot.Msg.SKLEARN_INTERCEPT,"intercept_"]]),"type"),this.setOutput(!0,null),this.setColour(lc),this.setTooltip(""),this.setHelpUrl("")}},vc={init:function(){this.appendDummyInput().appendField("sklearn "+ot.Msg.SKLEARN_CLUSTERING),this.appendValueInput("model_name").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.MODEL_NAME),this.appendDummyInput().appendField(ot.Msg.MIXLY_GET).appendField(new ot.FieldDropdown([[ot.Msg.SKLEARN_CLUSTER_CENTER,"cluster_centers_"],[ot.Msg.SKLEARN_LABELS_AFTER_CLUSTERING,"labels_"],[ot.Msg.SKLEARN_CLUSTERING_SUM_OF_SQUARED_DISTANCES,"inertia_"]]),"type"),this.setInputsInline(!0),this.setOutput(!0,null),this.setColour(lc),this.setTooltip(""),this.setHelpUrl("")}},wc={init:function(){this.appendValueInput("model_name").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField("sklearn").appendField(new ot.FieldDropdown([[ot.Msg.SKLEARN_SAVE_MODEL,"dump"],[ot.Msg.SKLEARN_LOAD_MODEL,"load"]]),"type").appendField(" "+ot.Msg.MODEL_NAME),this.appendValueInput("address").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(lc),this.setTooltip(""),this.setHelpUrl("")}},Fc=120,Pc={init:function(){this.setColour(Fc),this.appendValueInput("DELAY_TIME",Number).appendField(ot.Msg.MIXLY_DELAY+"("+ot.Msg.MIXLY_MILLIS+")").setCheck(Number),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ot.Msg.MIXLY_TOOLTIP_CONTROL_DELAY)}},kc={init:function(){this.setColour(Fc),this.appendDummyInput().appendField(ot.Msg.blockpy_time_time),this.setOutput(!0,Number),this.setTooltip(ot.Msg.MIXLY_TOOLTIP_CONTROL_MILLIS)}},Vc={init:function(){this.setColour(Fc),this.appendDummyInput("").appendField(ot.Msg.MIXLY_SYSTEM_TIME_LOCALTIME),this.appendDummyInput().appendField(new ot.FieldDropdown([[ot.Msg.MIXLY_SYSTEM_TIME_LOCALTIME_ALL,"all"],[ot.Msg.MIXLY_SYSTEM_TIME_LOCALTIME_YEAR,"0"],[ot.Msg.MIXLY_SYSTEM_TIME_LOCALTIME_MONTH,"1"],[ot.Msg.MIXLY_SYSTEM_TIME_LOCALTIME_DATE,"2"],[ot.Msg.MIXLY_SYSTEM_TIME_LOCALTIME_HOUR,"3"],[ot.Msg.MIXLY_SYSTEM_TIME_LOCALTIME_MINUTE,"4"],[ot.Msg.MIXLY_SYSTEM_TIME_LOCALTIME_SECOND,"5"],[ot.Msg.MIXLY_SYSTEM_TIME_LOCALTIME_INWEEK,"6"],[ot.Msg.MIXLY_SYSTEM_TIME_LOCALTIME_INYEAR,"7"],[ot.Msg.MIXLY_SYSTEM_TIME_LOCALTIME_DST,"8"]]),"op"),this.setOutput(!0),this.setInputsInline(!0)}},Yc={init:function(){this.setColour(Fc),this.appendValueInput("STATUS_CODE",Number).appendField(ot.Msg.MIXLY_MICROBIT_Panic_with_status_code).setCheck(Number),this.setPreviousStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ot.Msg.MIXLY_TOOLTIP_CONTROL_DELAY)}},xc={init:function(){this.setColour(Fc),this.appendDummyInput().appendField(ot.Msg.MIXLY_MICROBIT_Reset_micro),this.setPreviousStatement(!0)}},Uc={init:function(){this.setColour(Fc),this.appendValueInput("TIME").setCheck(Number).setAlign(ot.inputs.Align.RIGHT).appendField("MsTimer2").appendField(ot.Msg.MIXLY_MSTIMER2_EVERY),this.appendDummyInput().appendField("ms"),this.appendStatementInput("DO").appendField(ot.Msg.MIXLY_MSTIMER2_DO),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Bc={init:function(){this.setColour(Fc),this.appendDummyInput().appendField("MsTimer2").appendField(ot.Msg.MIXLY_MSTIMER2_START),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Xc={init:function(){this.setColour(Fc),this.appendDummyInput().appendField("MsTimer2").appendField(ot.Msg.MIXLY_STOP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Gc={init:function(){this.setColour(Fc),this.appendValueInput("DELAY_TIME",Number).appendField(ot.Msg.MIXLY_DELAY).setCheck(Number),this.appendDummyInput().appendField(ot.Msg.MIXLY_SECOND),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ot.Msg.MIXLY_TOOLTIP_CONTROL_DELAY)}},Hc=180,Wc={init:function(){this.setColour(Hc),this.appendDummyInput("").appendField(ot.Msg.blockpy_turtle_create).appendField(new ot.FieldTextInput("tina"),"VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.blockpy_turtle_create_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Kc={init:function(){this.setColour(Hc),this.appendDummyInput().appendField(ot.Msg.blockpy_TURTLE_DONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},jc={init:function(){this.setColour(Hc),this.appendDummyInput().appendField(ot.Msg.MIXLY_PYTHON_TURTLE_EXITONCLICK),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},qc={init:function(){this.appendValueInput("TUR").setCheck("Turtle");var t=[[ot.Msg.blockpy_forward,"forward"],[ot.Msg.blockpy_backward,"backward"]];this.setColour(Hc),this.appendValueInput("VAR").appendField(ot.Msg.MIXLY_MICROBIT_JS_MOVE_BY).appendField(new ot.FieldDropdown(t),"DIR").appendField(ot.Msg.MIXLY_MICROBIT_JS_MOVE_BY_num),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("DIR");return{forward:ot.Msg.MIXLY_TOOLTIP_TURTEL_FORWARD,backward:ot.Msg.MIXLY_TOOLTIP_TURTEL_BACKWARD}[t]}))}},$c={init:function(){this.appendValueInput("TUR").setCheck("Turtle");var t=[[ot.Msg.blockpy_left,"left"],[ot.Msg.blockpy_right,"right"]];this.setColour(Hc),this.appendValueInput("VAR").appendField(ot.Msg.blockpy_turtle_rotate).appendField(new ot.FieldDropdown(t),"DIR").appendField(ot.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("DIR");return{left:ot.Msg.MIXLY_TOOLTIP_TURTEL_LEFT,right:ot.Msg.MIXLY_TOOLTIP_TURTEL_RIGHT}[t]}))}},zc={init:function(){this.setColour(Hc),this.appendValueInput("TUR").setCheck("Turtle"),this.appendValueInput("data").setCheck(Number).appendField(ot.Msg.blockpy_setheading),this.appendDummyInput().appendField(ot.Msg.blockpy_setheading_degree),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Qc={init:function(){this.setColour(Hc),this.appendValueInput("TUR").setCheck("Turtle"),this.appendValueInput("data").setCheck(Number).appendField(ot.Msg.MIXLY_TURTLE_SCREEN_DELAY),this.appendDummyInput().appendField(ot.Msg.MIXLY_MILLIS),this.setTooltip(ot.Msg.MIXLY_TOOLTIP_TURTEL_SCREEN_DELAY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Jc={init:function(){this.setColour(Hc),this.appendValueInput("TUR").setCheck("Turtle"),this.appendValueInput("data").setCheck(Number).appendField(ot.Msg.blockpy_turtle_goto),this.appendValueInput("val").setCheck(Number).appendField(ot.Msg.blockpy_turtle_goto_y),this.appendDummyInput().appendField(ot.Msg.blockpy_turtle_goto_position),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Zc={init:function(){this.appendValueInput("TUR").setCheck("Turtle");var t=[[ot.Msg.PYLAB_LABEL_X,"x"],[ot.Msg.PYLAB_LABEL_Y,"y"]];this.setColour(Hc),this.appendValueInput("VAR").appendField(new ot.FieldDropdown(t),"DIR").appendField(ot.Msg.MIXLY_MIXPY_TURTLE_SETXY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.MIXLY_MIXPY_TURTLE_SETXY_TOOLTIP)}},tT={init:function(){this.setColour(Hc);var t=[[ot.Msg.TURTLE_POS,"pos"],[ot.Msg.TURTLE_SHAPE,"shape"],[ot.Msg.TURTLE_HEADING,"heading"],[ot.Msg.MIXLY_MIXPY_TURTLE_WIDTH,"width"],[ot.Msg.MIXLY_TURTEL_GET_SHAPESIZE,"shapesize"],[ot.Msg.MIXLY_SPEED,"speed"]];this.appendValueInput("TUR").setCheck("Turtle"),this.appendDummyInput("").appendField(ot.Msg.TURTLE_POS_SHAPE).appendField(new ot.FieldDropdown(t),"DIR");var e=this;this.setTooltip((function(){var t=e.getFieldValue("DIR");return{pos:ot.Msg.MIXLY_TOOLTIP_TURTEL_POS,shape:ot.Msg.MIXLY_TOOLTIP_TURTEL_SHAPE,heading:ot.Msg.MIXLY_TOOLTIP_TURTEL_HEADING,width:ot.Msg.MIXLY_TOOLTIP_TURTEL_WIDTH,speed:ot.Msg.MIXLY_TOOLTIP_TURTEL_GET_SPEED,shapesize:ot.Msg.MIXLY_TURTEL_GET_SHAPESIZE_TOOLTIP}[t]})),this.setOutput(!0),this.setInputsInline(!0)}},eT={init:function(){this.appendValueInput("TUR").setCheck("Turtle");var t=[[ot.Msg.MIXLY_LCD_STAT_CLEAR,"clear"],[ot.Msg.blockpy_turtle_reset,"reset"],[ot.Msg.blockpy_turtle_home,"home"]];this.setColour(Hc),this.appendDummyInput("").appendField(new ot.FieldDropdown(t),"DIR"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("DIR");return{clear:ot.Msg.MIXLY_TOOLTIP_TURTEL_CLEAR,reset:ot.Msg.MIXLY_TOOLTIP_TURTEL_RESET,home:ot.Msg.MIXLY_TOOLTIP_TURTEL_HOME}[t]}))}},nT={init:function(){this.appendValueInput("TUR").setCheck("Turtle");var t=[[ot.Msg.blockpy_turtle_penup,"penup"],[ot.Msg.blockpy_turtle_pendown,"pendown"]];this.setColour(Hc),this.appendDummyInput("").appendField(new ot.FieldDropdown(t),"DIR"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("DIR");return{penup:ot.Msg.MIXLY_TOOLTIP_TURTEL_PENUP,pendown:ot.Msg.MIXLY_TOOLTIP_TURTEL_PENDOWN}[t]}))}},iT={init:function(){this.appendValueInput("TUR").setCheck("Turtle");var t=[[ot.Msg.blockpy_turtle_beginfill,"begin"],[ot.Msg.blockpy_turtle_endfill,"end"]];this.setColour(Hc),this.appendDummyInput("").appendField(new ot.FieldDropdown(t),"DIR"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("DIR");return{begin:ot.Msg.MIXLY_TOOLTIP_TURTEL_BEGINFILL,end:ot.Msg.MIXLY_TOOLTIP_TURTEL_ENDFILL}[t]}))}},sT={init:function(){this.appendDummyInput("").appendField(new ot.FieldTextInput("tina"),"TUR");var t=[[ot.Msg.blockpy_turtle_size,"pensize"],[ot.Msg.MIXLY_SPEED,"speed"]];this.setColour(Hc),this.appendValueInput("VAR").appendField(ot.Msg.blockpy_turtle_set).appendField(new ot.FieldDropdown(t),"DIR").appendField(ot.Msg.blockpy_turtle_set_num),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("DIR");return{pensize:ot.Msg.MIXLY_TOOLTIP_TURTEL_SIZE,speed:ot.Msg.MIXLY_TOOLTIP_TURTEL_SPEED}[t]}))}},oT={init:function(){this.setColour(Hc),this.appendValueInput("TUR").setCheck("Turtle"),this.appendValueInput("data").setCheck(Number).appendField(ot.Msg.blockpy_turtle_set_size),this.setTooltip(ot.Msg.MIXLY_TOOLTIP_TURTEL_SIZE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},rT={init:function(){this.setColour(Hc),this.appendValueInput("TUR").setCheck("Turtle"),this.appendValueInput("data").setCheck(Number).appendField(ot.Msg.blockpy_turtle_set_speed),this.setTooltip(ot.Msg.MIXLY_TOOLTIP_TURTEL_SPEED),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},aT={init:function(){this.appendValueInput("TUR").setCheck("Turtle");var t=[[ot.Msg.blockpy_turtle_circle,"circle"],[ot.Msg.blockpy_turtle_dot,"dot"]];this.setColour(Hc),this.appendValueInput("VAR").appendField(ot.Msg.blockpy_turtle_draw).appendField(new ot.FieldDropdown(t),"DIR").appendField(ot.Msg.blockpy_turtle_radius),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("DIR");return{circle:ot.Msg.MIXLY_TOOLTIP_TURTEL_CIRCLE,dot:ot.Msg.MIXLY_TOOLTIP_TURTEL_DOT}[t]}))}},lT={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(Hc),this.appendValueInput("VAR").appendField(ot.Msg.MIXLY_MIXPY_TURTLE_DRAW_CIRCLE).appendField(ot.Msg.blockpy_turtle_radius),this.appendValueInput("data").setCheck(Number).appendField(ot.Msg.blockpy_turtle_angle),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.MIXLY_TOOLTIP_TURTEL_CIRCLE)}},uT={init:function(){this.appendValueInput("TUR").setCheck("Turtle");var t=[[ot.Msg.blockpy_turtle_hide,"hideturtle"],[ot.Msg.blockpy_turtle_show,"showturtle"]];this.setColour(Hc),this.appendDummyInput("").appendField(new ot.FieldDropdown(t),"DIR"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("DIR");return{hideturtle:ot.Msg.MIXLY_TOOLTIP_TURTEL_HIDE,showturtle:ot.Msg.MIXLY_TOOLTIP_TURTEL_SHOW}[t]}))}},pT={init:function(){this.setColour(Hc),this.appendDummyInput().appendField(ot.Msg.blockpy_turtle_bgcolor).appendField(new ot.FieldColour("#ff0000"),"FIELDNAME"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},_T={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(Hc),this.appendDummyInput().appendField(ot.Msg.blockpy_turtle_pencolor).appendField(new ot.FieldColour("#ff0000"),"FIELDNAME"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},dT={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(Hc),this.appendDummyInput().appendField(ot.Msg.blockpy_turtle_fillcolor).appendField(new ot.FieldColour("#ff0000"),"FIELDNAME"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},hT={init:function(){this.setColour(Hc),this.appendValueInput("TUR").setCheck("Turtle"),this.appendDummyInput("").appendField(ot.Msg.TURTLE_CLONE),this.setTooltip(ot.Msg.TURTLE_CLONE_TOOLTIP),this.setOutput(!0)}},cT={init:function(){this.setColour(Hc),this.appendValueInput("VAR").setCheck(String).appendField(ot.Msg.blockpy_turtle_bgcolor),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},TT={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(Hc),this.appendValueInput("VAR").setCheck(String).appendField(ot.Msg.blockpy_turtle_pencolor),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},IT={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(Hc),this.appendValueInput("VAR").setCheck(String).appendField(ot.Msg.blockpy_turtle_fillcolor),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},mT={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(Hc),this.appendDummyInput().appendField(ot.Msg.blockpy_turtle_pencolor).appendField(new ot.FieldColour("#ff0000"),"FIELDNAME"),this.appendDummyInput().appendField(ot.Msg.blockpy_turtle_fillcolor).appendField(new ot.FieldColour("#ff0000"),"FIELDNAME2"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},ET={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(Hc),this.appendValueInput("VAR1").setCheck(String).appendField(ot.Msg.blockpy_turtle_pencolor),this.appendValueInput("VAR2").setCheck(String).appendField(ot.Msg.blockpy_turtle_fillcolor),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},fT={init:function(){this.setColour(Hc),this.appendValueInput("VAR").setCheck(String).appendField(ot.Msg.blockpy_turtle_bgcolor_hex),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},gT={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(Hc),this.appendValueInput("VAR").setCheck(String).appendField(ot.Msg.blockpy_turtle_pencolor_hex),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},OT={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(Hc),this.appendValueInput("VAR").setCheck(String).appendField(ot.Msg.blockpy_turtle_fillcolor_hex),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},MT={init:function(){this.appendValueInput("TUR").setCheck("Turtle");var t=[[ot.Msg.blockpy_turtle_shape_arrow,"arrow"],[ot.Msg.blockpy_turtle_shape_turtle,"turtle"],[ot.Msg.blockpy_turtle_shape_circle,"circle"],[ot.Msg.blockpy_turtle_shape_square,"square"],[ot.Msg.blockpy_turtle_shape_triangle,"triangle"],[ot.Msg.blockpy_turtle_shape_classic,"classic"]];this.setColour(Hc),this.appendDummyInput("").appendField(ot.Msg.blockpy_turtle_shape).appendField(new ot.FieldDropdown(t),"DIR"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.TURTLE_SHAPE_TOOLTIP)}},RT={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(Hc),this.appendDummyInput("").appendField(ot.Msg.MIXLY_TURTEL_SHAPESIZE),this.appendValueInput("WID").setCheck(Number).appendField(ot.Msg.MIXLY_TURTEL_SHAPESIZE_WID),this.appendValueInput("LEN").setCheck(Number).appendField(ot.Msg.MIXLY_TURTEL_SHAPESIZE_LEN),this.appendValueInput("OUTLINE").setCheck(Number).appendField(ot.Msg.MIXLY_TURTEL_SHAPESIZE_OUTLINE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.MIXLY_TOOLTIP_SHAPESIZE)}},AT={init:function(){this.appendDummyInput("").appendField(ot.Msg.MIXLY_MIXPY_TURTLE_NUMINPUT),this.setColour(Hc),this.appendValueInput("TITLE").setCheck(String).appendField(ot.Msg.MIXLY_MIXPY_TURTLE_TEXTINPUT_TITLE),this.appendValueInput("PROMPT").setCheck(String).appendField(ot.Msg.MIXLY_MIXPY_TURTLE_TEXTINPUT_PROMPT),this.appendValueInput("DEFAULT").setCheck(Number).appendField(ot.Msg.DICTS_DEFAULT_VALUE),this.appendValueInput("MIN").setCheck(Number).appendField(ot.Msg.MATH_ONLIST_OPERATOR_MIN),this.appendValueInput("MAX").setCheck(Number).appendField(ot.Msg.MATH_ONLIST_OPERATOR_MAX),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(ot.Msg.TURTLE_NUMINPUT_TOOLTIP)}},ST={init:function(){this.appendDummyInput("").appendField(ot.Msg.MIXLY_MIXPY_TURTLE_TEXTINPUT),this.setColour(Hc),this.appendValueInput("TITLE").setCheck(String).appendField(ot.Msg.MIXLY_MIXPY_TURTLE_TEXTINPUT_TITLE),this.appendValueInput("PROMPT").setCheck(String).appendField(ot.Msg.MIXLY_MIXPY_TURTLE_TEXTINPUT_PROMPT),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(ot.Msg.TURTLE_TEXTINPUT_TOOLTIP)}},CT={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(Hc),this.appendValueInput("VAR").setCheck(String).appendField(ot.Msg.blockpy_turtle_write),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.TURTLE_WRITE_TOOLTIP)}},LT={init:function(){var t=[[ot.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"],[ot.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"]],e=[[ot.Msg.MIXLY_TURTLE_WRITE_ALIGN_LEFT,"left"],[ot.Msg.MIXLY_TURTLE_WRITE_ALIGN_CENTER,"center"],[ot.Msg.MIXLY_TURTLE_WRITE_ALIGN_RIGHT,"right"]],n=[[ot.Msg.MIXLY_TURTLE_WRITE_FONT_TYPE_NORMAL,"normal"],[ot.Msg.MIXLY_TURTLE_WRITE_FONT_TYPE_BOLD,"bold"],[ot.Msg.MIXLY_TURTLE_WRITE_FONT_TYPE_ITALIC,"italic"],[ot.Msg.MIXLY_TURTLE_WRITE_FONT_TYPE_BOLD_ITALIC,'bold","italic']];this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(Hc),this.appendValueInput("VAR").setCheck(String).appendField(ot.Msg.blockpy_turtle_write),this.appendDummyInput("").appendField(ot.Msg.MIXLY_TURTLE_WRITE_MOVE).appendField(new ot.FieldDropdown(t),"MOVE"),this.appendDummyInput("").appendField(ot.Msg.MIXLY_TURTLE_WRITE_ALIGN).appendField(new ot.FieldDropdown(e),"ALIGN"),this.appendValueInput("FONTNAME").setCheck(String).appendField(ot.Msg.MIXLY_TURTLE_WRITE_FONT_NAME),this.appendValueInput("FONTNUM").setCheck(Number).appendField(ot.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendDummyInput("").appendField(ot.Msg.MIXLY_TURTLE_WRITE_FONT_TYPE).appendField(new ot.FieldDropdown(n),"FONTTYPE"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.TURTLE_WRITE_TOOLTIP)}},yT={init:function(){var t=[[ot.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"],[ot.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"]],e=[[ot.Msg.MIXLY_TURTLE_WRITE_ALIGN_LEFT,"left"],[ot.Msg.MIXLY_TURTLE_WRITE_ALIGN_CENTER,"center"],[ot.Msg.MIXLY_TURTLE_WRITE_ALIGN_RIGHT,"right"]],n=[[ot.Msg.MIXLY_TURTLE_WRITE_FONT_TYPE_NORMAL,"normal"],[ot.Msg.MIXLY_TURTLE_WRITE_FONT_TYPE_BOLD,"bold"],[ot.Msg.MIXLY_TURTLE_WRITE_FONT_TYPE_ITALIC,"italic"]];this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(Hc),this.appendValueInput("VAR").setCheck(String).appendField(ot.Msg.blockpy_turtle_write),this.appendDummyInput("").appendField(ot.Msg.MIXLY_TURTLE_WRITE_MOVE).appendField(new ot.FieldDropdown(t),"MOVE"),this.appendDummyInput("").appendField(ot.Msg.MIXLY_TURTLE_WRITE_ALIGN).appendField(new ot.FieldDropdown(e),"ALIGN"),this.appendValueInput("FONTNAME").setCheck(String).appendField(ot.Msg.MIXLY_TURTLE_WRITE_FONT_NAME),this.appendValueInput("FONTNUM").setCheck(Number).appendField(ot.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendDummyInput("").appendField(ot.Msg.MIXLY_TURTLE_WRITE_FONT_TYPE).appendField(new ot.FieldDropdown(n),"FONTTYPE"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.TURTLE_WRITE_TOOLTIP)}},DT={init:function(){this.setColour(Hc),this.appendDummyInput("").setAlign(ot.inputs.Align.RIGHT).appendField(new ot.FieldColour("ff0000"),"COLOR"),this.setInputsInline(!0),this.setOutput(!0,String)}},NT={init:function(){this.setColour(Hc),this.appendValueInput("TUR").setCheck("Turtle"),this.appendDummyInput("").appendField(ot.Msg.MIXLY_TURTEL_GETSCREEN).appendField(new ot.FieldTextInput("screen"),"VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.MIXLY_TURTEL_GETSCREEN_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},bT={init:function(){this.setColour(Hc),this.appendValueInput("TUR"),this.appendValueInput("VAR").appendField(ot.Msg.MIXLY_TURTEL_EVENT_ONKEY),this.appendValueInput("callback").appendField(ot.Msg.MIXLY_PYTHON_CONTROLS_THREAD_USE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ot.Msg.MIXLY_TURTEL_EVENT_ONKEY_TOOLTIP)}},vT={init:function(){this.setColour(Hc),this.appendValueInput("TUR"),this.appendDummyInput("").appendField(ot.Msg.MIXLY_TURTEL_EVENT_ONCLICK),this.appendValueInput("callback").appendField(ot.Msg.MIXLY_PYTHON_CONTROLS_THREAD_USE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ot.Msg.MIXLY_TURTEL_EVENT_ONCLICK_TOOLTIP)}},wT={init:function(){this.setColour(Hc),this.appendValueInput("TUR"),this.appendValueInput("VAR").appendField(ot.Msg.MIXLY_TURTEL_EVENT_ONTIMER),this.appendDummyInput("").appendField(ot.Msg.MIXLY_mSecond),this.appendValueInput("callback").appendField(ot.Msg.MIXLY_PYTHON_CONTROLS_THREAD_USE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ot.Msg.MIXLY_TURTEL_EVENT_ONTIMER_TOOLTIP)}},FT={init:function(){this.setColour(Hc),this.appendValueInput("TUR"),this.appendDummyInput().appendField(ot.Msg.MIXLY_TURTEL_SCREEN_LISTEN),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},PT={init:function(){this.setColour(Hc),this.appendValueInput("TUR"),this.appendValueInput("FILE").setCheck(String).appendField(ot.Msg.mixpy_PL_SAVEFIG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(ot.Msg.mixpy_TURTLE_SAVEFIG_TOOLTIP)}},kT=function(t,e){var n=this.getFieldValue("TYPE");return e.definitions_.import_FileDialog="import FileDialog",["FileDialog."+n+"()",e.ORDER_ATOMIC]},VT=function(t,e){var n=this.getFieldValue("CTYPE");return e.definitions_.import_aip="import aip",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+" = aip."+n+"("+e.valueToCode(this,"API_KEY",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"SECRET_KEY",e.ORDER_ATOMIC)+")\n"},YT=function(t,e){return e.definitions_.import_aip="import aip",[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".synthesis("+e.valueToCode(this,"STR",e.ORDER_ATOMIC)+", options="+(e.valueToCode(this,"ATTR",e.ORDER_ATOMIC)||"{}")+")",e.ORDER_ATOMIC]},xT=function(t,e){return e.definitions_.import_aip="import aip",[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".asr("+(e.valueToCode(this,"FILE",e.ORDER_ATOMIC)||'""')+", options="+(e.valueToCode(this,"ATTR",e.ORDER_ATOMIC)||"{}")+")",e.ORDER_ATOMIC]},UT=function(t,e){e.definitions_.import_aip="import aip";var n=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),i=e.valueToCode(this,"ADDR",e.ORDER_ATOMIC);return[n+"."+e.valueToCode(this,"FUNC",e.ORDER_ATOMIC)+"("+i+", options="+(e.valueToCode(this,"ATTR",e.ORDER_ATOMIC)||"{}")+")",e.ORDER_ATOMIC]},BT=function(t,e){return e.definitions_.import_aip="import aip",[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".match("+e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+","+e.valueToCode(this,"VAR2",e.ORDER_ATOMIC)+", options="+(e.valueToCode(this,"ATTR",e.ORDER_ATOMIC)||"{}")+")",e.ORDER_ATOMIC]},XT=function(t,e){e.definitions_.import_aip="import aip";var n=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),i=e.valueToCode(this,"ADDR",e.ORDER_ATOMIC);return[n+"."+e.valueToCode(this,"FUNC",e.ORDER_ATOMIC)+"("+i+", options="+(e.valueToCode(this,"ATTR",e.ORDER_ATOMIC)||"{}")+")",e.ORDER_ATOMIC]},GT=function(t,e){e.definitions_.import_aip="import aip";var n=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),i=e.valueToCode(this,"STR",e.ORDER_ATOMIC);return[n+"."+e.valueToCode(this,"FUNC",e.ORDER_ATOMIC)+"("+i+", options="+(e.valueToCode(this,"ATTR",e.ORDER_ATOMIC)||"{}")+")",e.ORDER_ATOMIC]},HT=function(t,e){e.definitions_.import_aip="import aip";var n=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),i=e.valueToCode(this,"STR1",e.ORDER_ATOMIC),s=e.valueToCode(this,"STR2",e.ORDER_ATOMIC);return[n+"."+e.valueToCode(this,"FUNC",e.ORDER_ATOMIC)+"("+i+","+s+", options="+(e.valueToCode(this,"ATTR",e.ORDER_ATOMIC)||"{}")+")",e.ORDER_ATOMIC]},WT=function(t,e){return e.definitions_.import_aip="import aip",[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".topic("+e.valueToCode(this,"STR1",e.ORDER_ATOMIC)+","+e.valueToCode(this,"STR2",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},KT=function(t,e){return e.definitions_.import_aip="import aip",[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".newsSummary("+e.valueToCode(this,"STR",e.ORDER_ATOMIC)+","+e.valueToCode(this,"LEN",e.ORDER_ATOMIC)+", options="+(e.valueToCode(this,"ATTR",e.ORDER_ATOMIC)||"{}")+")",e.ORDER_ATOMIC]},jT=function(t,e){return[this.getFieldValue("TYPE"),e.ORDER_ATOMIC]},qT=function(t,e){return[this.getFieldValue("TYPE"),e.ORDER_ATOMIC]},$T=function(t,e){return[this.getFieldValue("TYPE"),e.ORDER_ATOMIC]},zT=function(t,e){return[this.getFieldValue("TYPE"),e.ORDER_ATOMIC]},QT=function(t,e){return e.definitions_.import_audio="import audio","audio.audio_record("+(e.valueToCode(this,"VAR",e.ORDER_ATOMIC)||'""')+","+(e.valueToCode(this,"TIME",e.ORDER_ATOMIC)||"0")+")\n"},JT=function(t,e){return e.definitions_.import_audio="import cam","cam.photo_capture("+(e.valueToCode(this,"VAR",e.ORDER_ATOMIC)||'""')+","+(e.valueToCode(this,"BUT",e.ORDER_ATOMIC)||'""')+")\n"},ZT=function(t,e){var n=e.valueToCode(this,"AI",e.ORDER_ASSIGNMENT)||"0",i=this.getFieldValue("CTYPE");if("Image"==i)var s=n+'["result"][0]["keyword"]';if("Speech"==i)s=n+'["result"][0]';if("Face"==i||"OcrSimilarity"==i)s=n+'["score"]';if("Ocr"==i)s=n+'["words_result"]';return[s,e.ORDER_ATOMIC]},tI=function(t,e){e.definitions_.import_sprite="import sprite";return"g = [[0,0,0,0,0,0,0,0,0,0], [0,0,0,1,0,0,0,0,0,0], [0,0,0,1,0,0,1,0,0,0], [0,1,1,0,1,1,0,0,0,0], [0,0,0,1,0,0,0,1,0,0], [0,0,0,1,0,0,1,1,0,0], [0,0,1,0,0,1,0,1,0,0], [0,0,0,0,1,1,1,0,0,0]]\nmark = [[0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0]]\nvis = [0,1,0,0,0,0,0,0,0]\nposition = [[0, 0], [200, 200], [250, 60], [320, 200], [280, 380], [470, 250], [670, 90], [650, 340]]\nsprite.clearAllSprites()\nsprite.createBackground('map_xuexiao')\n\nhouse = [ sprite.Sprite('mark', 150, 380),\n sprite.Sprite('School', 115, 195),\n sprite.Sprite('House25', 264, 67),\n sprite.Sprite('House36', 320, 200),\n sprite.Sprite('House47', 290, 371),\n sprite.Sprite('House25', 479, 233),\n sprite.Sprite('House36', 674, 96),\n sprite.Sprite('House47', 642, 318)\n]\nfor i in house:\n i.hide()\n"},eI=function(){return"path = [1]\ncar = sprite.Sprite('car', position[1][0], position[1][1])\nhouse[1].show()\ncar.nowPos = 1\ndef drive(n):\n if g[car.nowPos][n]==1:\n car.slideTo(position[n][0], position[n][1], 1)\n car.nowPos = n\n else:\n print('移动失败!程序有误!')\n exit()\n"},nI=function(t,e){e.definitions_.import_random="import random";return"f = path[(len(path) - 1)]\nflag = 0\nfor _my_variable in [6,5,4,3,2,1,0]:\n if vis[_my_variable+1] == 0 and g[f][_my_variable+1] == 1:\n if mark[f][_my_variable+1] == 0:\n flag = 1\n break\n"},iI=function(t,e){return["flag == 1",e.ORDER_ATOMIC]},sI=function(){return"mark[f][_my_variable+1] = 1\nvis[_my_variable+1] = 1\n"},oI=function(){return"path.append(_my_variable+1)\ndrive(path[len(path) - 1])\nhouse[_my_variable+1].show()\n"},rI=function(t,e){e.definitions_.import_time="import time";return"del path[len(path) - 1]\nhouse[0].show()\ntime.sleep(0.5)\nhouse[0].hide()\n"},aI=function(){var t="for i in range(7):\n mark[f][i+1] = 0\n vis[f] = 0\n";return t="house[f].hide()\ndrive(path[len(path) - 1])\n"+t},lI=function(t,e){return["len(path) == 7",e.ORDER_ATOMIC]},uI=function(){return'name = ["","学校","小智家","小欣家","小思家","小科家","贝贝家","乐乐家"]\nres = ""\nfor i in path:\n res = res + name[i] + "-"\nprint(res[:-1])\n'},pI=function(t,e){e.definitions_.import_sprite="import sprite";return"g = [[0,0,0,0,0,0,0,0,0,0], [0,0,0,1,0,0,0,0,0,0], [0,0,0,1,0,0,1,0,0,0], [0,1,1,0,1,0,0,0,0,0], [0,0,0,1,0,0,0,1,0,0], [0,0,0,1,0,0,0,1,0,0], [0,0,1,0,0,0,0,1,0,0], [0,0,0,0,1,1,1,0,0,0]]\nmark = [[0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0]]\nvis = [0,1,0,0,0,0,0,0,0]\nposition = [[0, 0], [200, 200], [250, 60], [320, 200], [280, 380], [470, 250], [670, 90], [650, 340]]\nsprite.clearAllSprites()\nsprite.createBackground('map_xuexiao')\n\nhouse = [ sprite.Sprite('mark', 150, 380),\n sprite.Sprite('School', 115, 195),\n sprite.Sprite('House25', 264, 67),\n sprite.Sprite('House36', 320, 200),\n sprite.Sprite('House47', 290, 371),\n sprite.Sprite('House25', 479, 233),\n sprite.Sprite('House36', 674, 96),\n sprite.Sprite('House47', 642, 318)\n]\nbarricade = sprite.Sprite('barricade', 570, 170)\nbarricade.enlargeTo(100)\nfor i in house:\n i.hide()\n"},_I=function(t,e){return["f == 1",e.ORDER_ATOMIC]},dI=function(){return"print('没有符合条件的路线')\n"},hI=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";return'g = [[10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000],[10000,10000,500,300,10000,10000,10000,10000,10000,10000,10000],[10000,500,10000,10000,100,10000,10000,10000,10000,10000,10000],[10000,300,10000,10000,400,300,10000,10000,10000,10000,10000],[10000,10000,100,400,10000,10000,200,10000,10000,10000,10000],[10000,10000,10000,300,10000,10000,100,200,10000,10000,10000],[10000,10000,10000,10000,200,100,10000,10000,100,10000,10000],[10000,10000,10000,10000,10000,200,10000,10000,100,10000,10000],[10000,10000,10000,10000,10000,10000,100,100,10000,10000,10000]]\nnow=1\nlast=1\npath=[]\npath.append(1)\nname = ["","小思家","银行","邮局","餐厅","书店","医院","超市","小科家"]\nposition = [[0, 0], [60, 320], [510, 390], [240, 200], [750, 330], [410, 90], [540, 190], [550, 30], [720, 120]]\nsprite.clearAllSprites()\nsprite.createBackground(\'map_si_ke\')\nstu = sprite.Sprite(\'girl\', 60, 320)\nstu.enlargeTo(100)\ntime.sleep(1)\n\n'},cI=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";return'g =[[10000,10000,10000,10000,10000,10000,10000],[10000,10000,300,500,10000,10000,10000],[10000,300,10000,10000,300,700,10000],[10000,500,10000,10000,10000,100,10000],[10000,10000,300,10000,10000,10000,200],[10000,10000,700,100,10000,10000,100],[10000,10000,10000,10000,200,100,10000]]\nnow=1\nlast=1\npath=[]\npath.append(1)\nname = ["","小智家","邮局","银行","书店","餐厅","学校"]\nposition = [[0, 0], [70, 340], [70, 90], [550, 310], [420, 70], [730, 250], [650, 130]]\nsprite.clearAllSprites()\nsprite.createBackground(\'map_zhi_xue\')\nstu = sprite.Sprite(\'boy\', 70, 340)\nstu.enlargeTo(100)\ntime.sleep(1)\n\n'},TI=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";return'tmp=10000\nfor i in range(0, len(g), 1):\n if g[now][i]6:\n print("路线错乱!程序有误!")\n exit()\n'},II=function(t,e){return["name[now] != '小科家'",e.ORDER_ATOMIC]},mI=function(t,e){return["name[now] != '学校'",e.ORDER_ATOMIC]},EI=function(){return'res = ""\nfor i in path:\n res = res + name[i] + "→"\nprint(res[:-1])\n'},fI=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";var n=this.getFieldValue("NUM");if(n>=7)var i="print('层数过高!不得高于6层!')\nexit()\n";else i="sprite.clearAllSprites()\n_Hanoicolor = ['blue', 'red', 'yellow', 'green', 'purple', 'black']\n_Hanoi = [[], [], []]\nA = 0\nB = 1\nC = 2\n_n = "+n+"\n_HanoiColumn = [\n sprite.Sprite('HanoiColumn', 200, 320),\n sprite.Sprite('HanoiColumn', 400, 320),\n sprite.Sprite('HanoiColumn', 600, 320)\n]\n_HanoiColumnNumber = [\n sprite.Text('A', 190, 120),\n sprite.Text('B', 390, 120),\n sprite.Text('C', 590, 120)\n]\n_HanoiBlock = []\nfor i in range(0, _n, 1):\n _HanoiBlock.append(sprite.Sprite(_Hanoicolor[i], 200, 400-(_n-i-1)*27))\n _HanoiBlock[i].setScale(25, 30*i+30)\n _Hanoi[0].insert(0, _HanoiBlock[i])\n_steptext = sprite.Text('步数:0', 30, 30)\n_steps = {'steps' : 0}\ntime.sleep(1)\n";return i},gI=function(t,e){var n=e.valueToCode(this,"FROM_NUM",e.ORDER_ATOMIC)||"0",i=e.valueToCode(this,"TO_NUM",e.ORDER_ATOMIC)||"0";return`if len(_Hanoi[${n}])>0 :\n _HanoiBlockMoved = _Hanoi[${n}].pop()\n if len(_Hanoi[${i}]) > 0 :\n _HanoiBlockSuppressed = _Hanoi[${i}].pop()\n if _HanoiBlock.index(_HanoiBlockMoved) > _HanoiBlock.index(_HanoiBlockSuppressed):\n print('非法移动!程序有误!')\n exit()\n else:\n _Hanoi[${i}].append(_HanoiBlockSuppressed)\n _HanoiBlockMoved.slideTo(${n}*200+200, 180, 0.2)\n _HanoiBlockMoved.slideTo(${i}*200+200, 180, 0.5)\n _HanoiBlockMoved.slideTo(${i}*200+200, 400-len(_Hanoi[${i}])*27, 0.2)\n _Hanoi[${i}].append(_HanoiBlockMoved)\n _steps['steps'] += 1\n _steptext.changeText('步数:'+str(_steps['steps']))\nelse :\n print('非法移动!程序有误!')\n exit()\n`},OI=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";return"if 'mode' not in globals() or mode == 0:\n sprite.clearAllSprites()\n ring=[0,0,0,0,0,0,0,0,0,0]\n mode=1\n n=5\n ring[5]=1\n name=['小王子','海底两万里','荷花镇的早市','孔子的故事','夏洛的网','草房子','月下看猫头鹰','会唱歌的咖啡磨','父与子','城南旧事']\n Books = []\n for i in range(1, 11, 1):\n Books.append(sprite.Sprite('books/book'+str(i), (130*i-650) if i>5 else 130*i, 320 if i>5 else 120))\nelse:\n mode=2\n n=len(ring)-1\nring[n]=1\ntime.sleep(1)\n"},MI=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";return"if 'mode' not in globals() or mode == 0:\n sprite.clearAllSprites()\n ring=[0,0,0,0,0,0,0,0,0,0]\n mode=2\n n=5\n name=['小王子','海底两万里','荷花镇的早市','孔子的故事','夏洛的网','草房子','月下看猫头鹰','会唱歌的咖啡磨','父与子','城南旧事']\n Books = []\n for i in range(1, 11, 1):\n Books.append(sprite.Sprite('books/book'+str(i), (130*i-650) if i>5 else 130*i, 320 if i>5 else 120))\nelse:\n mode=1\n n=len(ring)-1\nring[n]=n\nlist=ring\ntemp=Books\ntime.sleep(1)\n"},RI=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";return"res=0\nflag=ring[res]\nBooks[res].filterBrighter()\ntime.sleep(0.1)\nBooks[res].filterOrigin()\n"},AI=function(t,e){return["(('mode' not in globals())or(mode==1 and flag==0)or(mode==2 and not any(value > 0 for value in qian))or(mode==0))",e.ORDER_ATOMIC]},SI=function(t,e){return["(('mode' in globals())and((mode==1 and flag!=0)or(mode==2 and any(value > 0 for value in qian))))",e.ORDER_ATOMIC]},CI=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";var n="res+=1\nflag=ring[res]\n";return n="Books[res].filterGray()\ntime.sleep(0.3)\n"+(n+="Books[res].filterBrighter()\ntime.sleep(0.1)\nBooks[res].filterOrigin()\n")},LI=function(t,e){return["len(list)>=2",e.ORDER_ATOMIC]},yI=function(){return"mid = int(len(list)/2)\nqian = list[0:mid]\nhou = list[mid:]\nqiantemp = temp[0:mid]\nhoutemp = temp[mid:]\n"},DI=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";return"quchu = qian\nlist = hou\nquchutemp = qiantemp\ntemp = houtemp\nfor i in qiantemp:\n i.filterBrighter()\ntime.sleep(0.5)\nfor i in qiantemp:\n i.filterGray()\ntime.sleep(0.5)\n"},NI=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";return"list = quchu\ntemp = quchutemp\nfor i in qiantemp:\n i.filterBrighter()\ntime.sleep(0.5)\nfor i in qiantemp:\n i.filterOrigin()\nfor i in houtemp:\n\ti.filterBrighter()\ntime.sleep(0.5)\nfor i in houtemp:\n i.filterGray()\ntime.sleep(0.5)\n"},bI=function(){return"if 'list' in globals():\n res = list[0]\nBooks[res].filterBrighter()\nprint('未消磁的书籍是第'+str(res+1)+'本《'+name[res%10]+'》。')\nif res!=n:\n print('答案错误!请检查程序!')\nmode=0\n"},vI=function(t,e){var n=this.getFieldValue("NUM");return e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite",`sprite.clearAllSprites()\nring = []\nname = ['小王子','海底两万里','荷花镇的早市','孔子的故事','夏洛的网','草房子','月下看猫头鹰','会唱歌的咖啡磨','父与子','城南旧事']\nBooks = []\nfor i in range(${n}):\n ring.append(0)\nfor i in range(1, ${n}+1, 1):\n Books.append(sprite.Sprite('books/book'+str(i%10 if i%10!=0 else 10), ${{5:"130*i, 120",10:"(130*i-650) if i>5 else 130*i, 320 if i>5 else 120",20:"(65*i-650)+30 if i>10 else 65*i+30, 320 if i>10 else 120",50:"(26*i-650)+50 if i>25 else 26*i+50, 320 if i>25 else 120"}[n]}))\ntime.sleep(1)\nmode=3\n`},wI=function(t,e){e.definitions_.import_sprite="import sprite";return"cnt=0\ncntText = sprite.Text('计数器:0', 30, 200)\n"},FI=function(t,e){e.definitions_.import_sprite="import sprite";return"cnt+=1\ncntText.changeText('计数器:'+str(cnt))\n"},PI=function(t,e){e.definitions_.import_sprite="import sprite";return"print('计数器大小:'+str(cnt))\n"},kI=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";return"sprite.clearAllSprites()\n_head = 10\n_foot = 32\n_footText = sprite.Text('脚的数量:', 20, 10)\n_sprite = []\n"},VI=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";return"_rabbit = 0\ntime.sleep(1)\n"},YI=function(t,e){return["_rabbit < _head",e.ORDER_ATOMIC]},xI=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";return"_chick = _head - _rabbit\nfor i in range(0, _chick, 1):\n _sprite.append(sprite.Sprite('jttl/chick', len(_sprite)*130+130 if len(_sprite)<5 else len(_sprite)*130+130-650, 120 if len(_sprite)<5 else 320))\n\ntime.sleep(0.5)\n_footText.changeText('脚的数量:'+str(_rabbit*4 + _chick*2))\ntime.sleep(1)\n"},UI=function(t,e){return["_rabbit*4 + _chick*2 == _foot",e.ORDER_ATOMIC]},BI=function(t,e){e.definitions_.import_sprite="import sprite";return"print('鸡的数量:'+str(_chick)+'只;\\n兔的数量:'+str(_rabbit)+'只。')\n"},XI=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";return"_rabbit += 1\nsprite.clearAllSprites()\n_sprite = []\n_footText = sprite.Text('脚的数量:', 20, 10)\nfor i in range(0, _rabbit, 1):\n _sprite.append(sprite.Sprite('jttl/rabbit', len(_sprite)*130+130 if len(_sprite)<5 else len(_sprite)*130+130-650, 120 if len(_sprite)<5 else 320))\ntime.sleep(0.5)\n"},GI=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";return"sprite.clearAllSprites()\nsprite.createBackground('/fzsf/map_ck_xxjsjs')\n_S1 = sprite.Sprite('/fzsf/S1',400,225,'S1')\n_S2 = sprite.Sprite('/fzsf/S2',400,225,'S2')\n_S3 = sprite.Sprite('/fzsf/S3',400,225,'S3')\n_S4 = sprite.Sprite('/fzsf/S4',400,225,'S4')\n_S1.hide()\n_S2.hide()\n_S3.hide()\n_S4.hide()\n_text_1 = sprite.Text('S1:',0,0,'text')\n_text_2 = sprite.Text('S2:',0,30,'text2')\n_text_3 = sprite.Text('S3:',0,60,'text3')\n_text_4 = sprite.Text('S4:',0,90,'text4')\n_position = [[60, 270], [240, 50], [260, 380], [440, 190], [730, 60], [700, 400]]\n_Llen = [0, 170, 230, 100, 150, 10, 30, 50]\n_Slen = [0, 0, 0, 0, 0]\n_tag = [0, [0, 1, 3], [0, 2, 3], [3, 4, 5], [3, 5]]\nbear = sprite.Sprite('mixbear',60,270,'bear')\nbear.enlargeTo(80)\n_pos = 0\ntime.sleep(1)\n"},HI=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";var n=this.getFieldValue("PATHNAME");const i=[0,[1,3],[2,4],[5,7],[6]];var s="";return s+=`_S${n}.show()\ntime.sleep(1)\n`,s+=4!=n?`_Slen[${n}] = _Llen[${i[n][0]}] + _Llen[${i[n][1]}]\n_text_${n}.changeText('S${n}:'+str(_Slen[${n}])+'m')\ntime.sleep(1)\n_S${n}.hide()\ntime.sleep(1)\n`:"_Slen[4] = _Llen[6]\n_text_4.changeText('S4:'+str(_Slen[4])+'m')\ntime.sleep(1)\n_S4.hide()\ntime.sleep(1)\n"},WI=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";var n="";return[n+=`_Slen[${this.getFieldValue("PATHNAME")}] < _Slen[${this.getFieldValue("PATHNAME2")}]`,e.ORDER_ATOMIC]},KI=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";var n=this.getFieldValue("PATHNAME"),i="";return i+=`\n_S1.hide()\n_S2.hide()\n_S3.hide()\n_S4.hide()\n_Smin = ${n}\n_S${n}.show()\ntime.sleep(0.5)\n_S${n}.hide()\ntime.sleep(0.5)\n_S${n}.show()\ntime.sleep(1)\n`},jI=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";return"if(_pos == _tag[_Smin][0]):\n for i in range(1, len(_tag[_Smin]), 1):\n bear.slideTo(_position[_tag[_Smin][i]][0], _position[_tag[_Smin][i]][1], 1)\n _pos = _tag[_Smin][len(_tag[_Smin])-1]\nelse:\n print('移动错误!程序有误!')\n exit()\n_S1.hide()\n_S2.hide()\n_S3.hide()\n_S4.hide()\nif(_pos == 5):\n print('成功抵达信息科技教室!')\n"},qI=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";return"sprite.clearAllSprites()\nsprite.createBackground('/hxdb/hxdbbg')\n_soldier = []\n_num = sprite.Text('目前士兵数量:0',0,0,'num')\n_last = sprite.Text('剩余:0',500,0,'last')\n_line = 3\n"},$I=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";var n="";return n+=`for i in range(0, ${this.getFieldValue("NUM")}, 1):\n _soldier.append(sprite.Sprite('/hxdb/soldier', 30 + (len(_soldier)%_line)*50 + (len(_soldier)//(4*_line))*(_line+1)*50 +(len(_soldier)%3-2), 80+(len(_soldier)//_line)*100-(len(_soldier)//(4*_line))*4*100+(len(_soldier)%2)))\n_num.changeText('目前士兵数量:'+str(len(_soldier)))\n`},zI=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";var n=this.getFieldValue("NUM");return`for i in range(0, len(_soldier), 1):\n _soldier[i].slideTo(30 + (i%${n})*50 + (i//(4*${n}))*(${n}+1)*50 +(i%3-2), 80+(i//${n})*100-(i//(4*${n}))*4*100+(i%2), 0.05)\n_line = ${n}\n_last.changeText('剩余:'+str(len(_soldier)%_line))\ntime.sleep(2)\n`},QI=function(t,e){return e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite",[`len(_soldier)%_line == ${this.getFieldValue("NUM")}`,e.ORDER_ATOMIC]},JI=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";return"_num.changeText('目前士兵数量:'+str(len(_soldier)+1))\n_last.changeText('剩余:')\ntime.sleep(0.5)\n_soldier.append(sprite.Sprite('/hxdb/soldier', 30 + (len(_soldier)%_line)*50 + (len(_soldier)//(4*_line))*(_line+1)*50 +(len(_soldier)%3-2), 80+(len(_soldier)//_line)*100-(len(_soldier)//(4*_line))*4*100+(len(_soldier)%2)))\ntime.sleep(1)\n"},ZI=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";return"print('符合要求的士兵数量为:'+str(len(_soldier)))\n"},tm=function(t,e){e.definitions_.import_turtle="import turtle",e.definitions_.import_time="import time",e.definitions_.import_math="import math";var n=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),i=this.getFieldValue("NUM");return e.setups_.init_Hanoi="\ndef init_Hanoi():\n pen = turtle.Turtle()\n pen.hideturtle()\n pen.speed(0)\n for i in range(0, 3, 1):\n pen.penup()\n pen.setheading(0)\n pen.goto(150 * i - 200,-100)\n pen.pendown()\n pen.pensize(5)\n pen.forward(100)\n pen.goto(150 * i - 150,-100)\n pen.setheading(90)\n pen.forward(200)",e.setups_.begin="\ndef begin(): \n s = turtle.Turtle()\n s.hideturtle()\n s.penup()\n s.speed(0)\n s.goto(0,-150)\n s.write('3')\n time.sleep(1)\n s.clear()\n s.write('2')\n time.sleep(1)\n s.clear()\n s.write('1')\n time.sleep(1)\n s.clear()\n s.write('Start!')\n time.sleep(1)\n s.clear()\n",e.setups_.move="\ndef move(x, y):\n try:\n t = tower[x].pop(-1)\n a = tower_num[x].pop(-1)\n if tower_num[y]!=[]:\n b = tower_num[y][-1]\n if a 1"}]`,e.ORDER_ATOMIC]},wE=function(t,e){return[`${e.valueToCode(t,"DICT",e.ORDER_ATOMIC)||"df"}.groupby(by=${e.valueToCode(t,"KEY",e.ORDER_ATOMIC)||"'tag'"})`,e.ORDER_ATOMIC]},FE=function(t,e){return[`${e.valueToCode(t,"DICT",e.ORDER_ATOMIC)||"df"}.${t.getFieldValue("TYPE")}()`,e.ORDER_ATOMIC]},PE=function(t,e){e.definitions_.import_matplotlib_pyplot="import matplotlib.pyplot as plt";return"plt.cla()\n"},kE=function(t,e){var n=e.variableDB_.getName(this.getFieldValue("VAR"),ot.Variables.NAME_TYPE),i=e.variableDB_.getName(this.getFieldValue("TYPE"),ot.Variables.NAME_TYPE),s="class "+i+":\n";s+=" def __init__(self):\n";for(var o=new Array(this.itemCount_),r=0;r{document.removeEventListener("DOMContentLoaded",t),this._pageLoad.resolve()};document.addEventListener("DOMContentLoaded",t)}else this._pageLoad.resolve();(async()=>{switch(n){case"python":case"python3":case"python3.11":const{KernelPython3:e}=await __webpack_require__.e(211).then(__webpack_require__.bind(__webpack_require__,211));this._kernel=new e(t);break;case"python3-old":case"python3.8":const{KernelPython3Old:i}=await __webpack_require__.e(195).then(__webpack_require__.bind(__webpack_require__,5195));this._kernel=new i(t);break;case"js":case"javascript":const{KernelJavaScript:s}=await __webpack_require__.e(97).then(__webpack_require__.bind(__webpack_require__,4097));this._kernel=new s(t);break;case"sql":const{KernelSQL:o}=await Promise.all([__webpack_require__.e(960),__webpack_require__.e(837)]).then(__webpack_require__.bind(__webpack_require__,592));this._kernel=new o(t);break;case"ocaml":const{KernelOCaml:r}=await __webpack_require__.e(38).then(__webpack_require__.bind(__webpack_require__,38));this._kernel=new r(t);break;default:return window.console.error(`Kernel '${n}' not supported.`),void this._kernelAvailable.reject()}window.Basthon=this._kernel,this._kernelAvailable.resolve(this._kernel)})()}async pageLoad(){await this._pageLoad.promise}async kernelAvailable(){return await this._kernelAvailable.promise}async kernelLoaded(){const t=await this.kernelAvailable();return await t.loaded(),t}get kernel(){return this._kernel}get kernelSafe(){var t;return(null===(t=this.kernel)||void 0===t?void 0:t.ready)?this.kernel:null}async showLoader(t,e=!1,n=!0){this.kernelAvailable().then((()=>{var t;return null===(t=this.kernel)||void 0===t?void 0:t.init()})),__webpack_require__.e(317).then(__webpack_require__.bind(__webpack_require__,1317));const i="basthon-loader-"+(e?"full":"foot"),s=document.createElement("div");s.id=this._loaderId,s.classList.add("darklighted"),s.classList.add("basthon-loader-root"),s.classList.add(i);const o=document.createElement("div");o.classList.add("basthon-loader-container"),o.classList.add(i),s.appendChild(o);const r=document.createElement("div");r.classList.add("basthon-loader-spinner"),r.classList.add(i),r.innerHTML="",o.appendChild(r);const a=document.createElement("div");a.classList.add("basthon-loader-break"),a.classList.add(i),o.appendChild(a);const l=document.createElement("div");l.classList.add("basthon-loader-text"),l.classList.add(i),l.innerHTML=t,o.appendChild(l),this._loaderTextElem=l;const u=document.createElement("div");u.classList.add("basthon-loader-text"),u.classList.add(i),u.style.display="none",o.appendChild(u),this._loaderTextError=u,await this.pageLoad(),document.body.appendChild(s),this._rootLoader=s;try{await this.kernelLoaded()}catch(t){const e=this.browser();this.setErrorText(`Erreur de chargement de Basthon !!!Vérifiez que votre navigateur est à jour.Version détectée : ${e.name} ${e.version}.`);for(const t of document.body.querySelectorAll(".basthon-loader-foot"))t.classList.remove("basthon-loader-foot"),t.classList.add("basthon-loader-full");return r.classList.remove("basthon-loader-spinner"),r.classList.add("basthon-loader-error"),void(this._doNotHideLoader=!0)}this._doNotHideLoader=!1,n&&this.hideLoader()}setLoaderText(t){null!=this._loaderTextElem&&(this._loaderTextElem.innerHTML=t)}setErrorText(t){null!=this._loaderTextElem&&(this._loaderTextElem.style.display="none"),null!=this._loaderTextError&&(this._loaderTextError.style.display="",this._loaderTextError.innerHTML=t)}hideLoader(){if(this._doNotHideLoader)return;const t=this._rootLoader;null!=t&&(t.classList.add("basthon-loader-hide"),window.setTimeout((()=>{this._rootLoader=void 0,t.remove()}),1100))}browser(){var t,e=navigator.userAgent,n=e.match(/(opera|chrome|safari|firefox|msie|trident(?=\/))\/?\s*(\d+)/i)||[];return/trident/i.test(n[1])?{name:"IE",version:(t=/\brv[ :]+(\d+)/g.exec(e)||[])[1]||""}:"Chrome"===n[1]&&null!=(t=e.match(/\bOPR|Edge\/(\d+)/))?{name:"Opera",version:t[1]}:(n=n[2]?[n[1],n[2]]:[navigator.appName,navigator.appVersion,"-?"],null!=(t=e.match(/version\/(\d+)/i))&&n.splice(1,1,t[1]),{name:n[0],version:n[1]})}}class dO extends rt.PageBase{static{rt.HTMLTemplate.add("html/statusbar/statusbar-image.html",new rt.HTMLTemplate('\r\n')),this.init=function(){rt.StatusBarsManager.typesRegistry.register(["images"],dO);const t=rt.Workspace.getMain().getStatusBarsManager();return t.add("images","images",ot.Msg.PYTHON_PYODIDE_IMAGE),t.changeTo("output"),t.get("images")}}constructor(){super();const t=uO()(rt.HTMLTemplate.get("html/statusbar/statusbar-image.html").render());this.setContent(t)}init(){super.init(),this.hideCloseBtn()}clean(){this.getContent().empty()}display(t){const e=this.getContent(),n=function(t){t.style.width="auto",t.style.height="auto",t.style.maxWidth="100%",t.style.maxHeight="100%"};this.clean();let i=t.content,s=null,o=null;switch(t.display_type){case"p5":i.style.width="100%",i.style.height="100%",i.style.display="flex",i.style.justifyContent="center",i.style.alignItems="center",new MutationObserver((function(t){t.forEach((t=>t.addedNodes.forEach((t=>{const e=t;null!=e.tagName&&["canvas","video"].includes(e.tagName.toLowerCase())&&n(e)}))))})).observe(i,{childList:!0}),i.querySelectorAll("canvas,video").forEach(n),e.append(i);break;case"matplotlib":s=i.querySelector("canvas"),s&&(i=s),i.style.width="",i.style.height="",i.style.maxWidth="100%",i.style.maxHeight="100%",e.append(i);break;case"ocaml-canvas":i.style.width="",i.style.height="",i.style.maxWidth="100%",i.style.maxHeight="100%",e.append(i);break;case"turtle":i.setAttribute("width","100%"),i.setAttribute("height","100%"),e.append(i.outerHTML);break;case"sympy":e.append(t.content),void 0===window.MathJax?(console.log("Loading MathJax (Sympy expression needs it)."),function(){let t=document.createElement("script");t.type="text/javascript",t.src="https://cdn.jsdelivr.net/npm/mathjax@3.0.5/es5/tex-mml-chtml.js",document.getElementsByTagName("head")[0].appendChild(t)}()):window.MathJax.typeset();break;case"multiple":for(let n of["image/svg+xml","image/png","text/html","text/plain"])if(n in t.content){let i=t.content[n];"image/png"===n&&(i=''),e.append(i);break}break;case"tutor":if(e.append(uO()(t.content.replace("overflow-y%3A%20hidden%3B",""))),o=this.getContent()[0].getElementsByTagName("iframe")[0],null==o)return;o.style.maxHeight=o.style.minHeight="100%",new IntersectionObserver(((t,e)=>{const n=t[0];n&&!n.isIntersecting||(o.contentWindow?.postMessage({type:"redraw"},"*"),e.disconnect())})).observe(o);break;default:console.error(`Not supported node type '${t.display_type}' in eval.display result processing.`)}}}const hO=layui;var cO;!function(t){t[t.EPERM=1]="EPERM",t[t.ENOENT=2]="ENOENT",t[t.EINTR=4]="EINTR",t[t.EIO=5]="EIO",t[t.ENXIO=6]="ENXIO",t[t.EBADF=9]="EBADF",t[t.EAGAIN=11]="EAGAIN",t[t.ENOMEM=12]="ENOMEM",t[t.EACCES=13]="EACCES",t[t.EFAULT=14]="EFAULT",t[t.ENOTBLK=15]="ENOTBLK",t[t.EBUSY=16]="EBUSY",t[t.EEXIST=17]="EEXIST",t[t.EXDEV=18]="EXDEV",t[t.ENODEV=19]="ENODEV",t[t.ENOTDIR=20]="ENOTDIR",t[t.EISDIR=21]="EISDIR",t[t.EINVAL=22]="EINVAL",t[t.ENFILE=23]="ENFILE",t[t.EMFILE=24]="EMFILE",t[t.ETXTBSY=26]="ETXTBSY",t[t.EFBIG=27]="EFBIG",t[t.ENOSPC=28]="ENOSPC",t[t.ESPIPE=29]="ESPIPE",t[t.EROFS=30]="EROFS",t[t.EMLINK=31]="EMLINK",t[t.EPIPE=32]="EPIPE",t[t.EDOM=33]="EDOM",t[t.ERANGE=34]="ERANGE",t[t.EDEADLK=35]="EDEADLK",t[t.ENAMETOOLONG=36]="ENAMETOOLONG",t[t.ENOLCK=37]="ENOLCK",t[t.ENOSYS=38]="ENOSYS",t[t.ENOTEMPTY=39]="ENOTEMPTY",t[t.ELOOP=40]="ELOOP",t[t.ENOMSG=42]="ENOMSG",t[t.EBADE=52]="EBADE",t[t.EBADR=53]="EBADR",t[t.EXFULL=54]="EXFULL",t[t.ENOANO=55]="ENOANO",t[t.EBADRQC=56]="EBADRQC",t[t.ENOSTR=60]="ENOSTR",t[t.ENODATA=61]="ENODATA",t[t.ETIME=62]="ETIME",t[t.ENOSR=63]="ENOSR",t[t.ENONET=64]="ENONET",t[t.EREMOTE=66]="EREMOTE",t[t.ENOLINK=67]="ENOLINK",t[t.ECOMM=70]="ECOMM",t[t.EPROTO=71]="EPROTO",t[t.EBADMSG=74]="EBADMSG",t[t.EOVERFLOW=75]="EOVERFLOW",t[t.EBADFD=77]="EBADFD",t[t.ESTRPIPE=86]="ESTRPIPE",t[t.ENOTSOCK=88]="ENOTSOCK",t[t.EDESTADDRREQ=89]="EDESTADDRREQ",t[t.EMSGSIZE=90]="EMSGSIZE",t[t.EPROTOTYPE=91]="EPROTOTYPE",t[t.ENOPROTOOPT=92]="ENOPROTOOPT",t[t.EPROTONOSUPPORT=93]="EPROTONOSUPPORT",t[t.ESOCKTNOSUPPORT=94]="ESOCKTNOSUPPORT",t[t.ENOTSUP=95]="ENOTSUP",t[t.ENETDOWN=100]="ENETDOWN",t[t.ENETUNREACH=101]="ENETUNREACH",t[t.ENETRESET=102]="ENETRESET",t[t.ETIMEDOUT=110]="ETIMEDOUT",t[t.ECONNREFUSED=111]="ECONNREFUSED",t[t.EHOSTDOWN=112]="EHOSTDOWN",t[t.EHOSTUNREACH=113]="EHOSTUNREACH",t[t.EALREADY=114]="EALREADY",t[t.EINPROGRESS=115]="EINPROGRESS",t[t.ESTALE=116]="ESTALE",t[t.EREMOTEIO=121]="EREMOTEIO",t[t.EDQUOT=122]="EDQUOT"}(cO||(cO={}));const TO={[cO.EPERM]:"Operation not permitted",[cO.ENOENT]:"No such file or directory",[cO.EINTR]:"Interrupted system call",[cO.EIO]:"Input/output error",[cO.ENXIO]:"No such device or address",[cO.EBADF]:"Bad file descriptor",[cO.EAGAIN]:"Resource temporarily unavailable",[cO.ENOMEM]:"Cannot allocate memory",[cO.EACCES]:"Permission denied",[cO.EFAULT]:"Bad address",[cO.ENOTBLK]:"Block device required",[cO.EBUSY]:"Resource busy or locked",[cO.EEXIST]:"File exists",[cO.EXDEV]:"Invalid cross-device link",[cO.ENODEV]:"No such device",[cO.ENOTDIR]:"File is not a directory",[cO.EISDIR]:"File is a directory",[cO.EINVAL]:"Invalid argument",[cO.ENFILE]:"Too many open files in system",[cO.EMFILE]:"Too many open files",[cO.ETXTBSY]:"Text file busy",[cO.EFBIG]:"File is too big",[cO.ENOSPC]:"No space left on disk",[cO.ESPIPE]:"Illegal seek",[cO.EROFS]:"Cannot modify a read-only file system",[cO.EMLINK]:"Too many links",[cO.EPIPE]:"Broken pipe",[cO.EDOM]:"Numerical argument out of domain",[cO.ERANGE]:"Numerical result out of range",[cO.EDEADLK]:"Resource deadlock would occur",[cO.ENAMETOOLONG]:"File name too long",[cO.ENOLCK]:"No locks available",[cO.ENOSYS]:"Function not implemented",[cO.ENOTEMPTY]:"Directory is not empty",[cO.ELOOP]:"Too many levels of symbolic links",[cO.ENOMSG]:"No message of desired type",[cO.EBADE]:"Invalid exchange",[cO.EBADR]:"Invalid request descriptor",[cO.EXFULL]:"Exchange full",[cO.ENOANO]:"No anode",[cO.EBADRQC]:"Invalid request code",[cO.ENOSTR]:"Device not a stream",[cO.ENODATA]:"No data available",[cO.ETIME]:"Timer expired",[cO.ENOSR]:"Out of streams resources",[cO.ENONET]:"Machine is not on the network",[cO.EREMOTE]:"Object is remote",[cO.ENOLINK]:"Link has been severed",[cO.ECOMM]:"Communication error on send",[cO.EPROTO]:"Protocol error",[cO.EBADMSG]:"Bad message",[cO.EOVERFLOW]:"Value too large for defined data type",[cO.EBADFD]:"File descriptor in bad state",[cO.ESTRPIPE]:"Streams pipe error",[cO.ENOTSOCK]:"Socket operation on non-socket",[cO.EDESTADDRREQ]:"Destination address required",[cO.EMSGSIZE]:"Message too long",[cO.EPROTOTYPE]:"Protocol wrong type for socket",[cO.ENOPROTOOPT]:"Protocol not available",[cO.EPROTONOSUPPORT]:"Protocol not supported",[cO.ESOCKTNOSUPPORT]:"Socket type not supported",[cO.ENOTSUP]:"Operation is not supported",[cO.ENETDOWN]:"Network is down",[cO.ENETUNREACH]:"Network is unreachable",[cO.ENETRESET]:"Network dropped connection on reset",[cO.ETIMEDOUT]:"Connection timed out",[cO.ECONNREFUSED]:"Connection refused",[cO.EHOSTDOWN]:"Host is down",[cO.EHOSTUNREACH]:"No route to host",[cO.EALREADY]:"Operation already in progress",[cO.EINPROGRESS]:"Operation now in progress",[cO.ESTALE]:"Stale file handle",[cO.EREMOTEIO]:"Remote I/O error",[cO.EDQUOT]:"Disk quota exceeded"};class IO extends Error{static fromJSON(t){const e=new IO(t.errno,t.message,t.path,t.syscall);return e.code=t.code,e.stack=t.stack,e}static With(t,e,n){return new IO(cO[t],TO[cO[t]],e,n)}constructor(t,e=TO[t],n,i=""){super(e),this.errno=t,this.path=n,this.syscall=i,this.code=cO[t],this.message=this.code+": "+e+(this.path?`, '${this.path}'`:"")}toString(){return this.message}toJSON(){return{errno:this.errno,code:this.code,path:this.path,stack:this.stack,message:this.message,syscall:this.syscall}}bufferSize(){return 4+JSON.stringify(this.toJSON()).length}}let mO="/";function EO(t,e){let n="",i=0,s=-1,o=0,r="\0";for(let a=0;a<=t.length;++a){if(a2){const t=n.lastIndexOf("/");-1===t?(n="",i=0):(n=n.slice(0,t),i=n.length-1-n.lastIndexOf("/")),s=a,o=0;continue}if(0!==n.length){n="",i=0,s=a,o=0;continue}}e&&(n+=n.length>0?"/..":"..",i=2)}else n.length>0?n+="/"+t.slice(s+1,a):n=t.slice(s+1,a),i=a-s-1;s=a,o=0}else"."===r&&-1!==o?++o:o=-1}return n}function fO(...t){let e="";for(const n of[...t.reverse(),mO])if(n.length&&(e=`${n}/${e}`,n.startsWith("/")))break;const n=e.startsWith("/");return e=EO(e,!n),n?`/${e}`:e.length?e:"/"}function gO(...t){if(!t.length)return".";const e=t.join("/");return e?.length?function(t){if(!t.length)return".";const e=t.startsWith("/"),n=t.endsWith("/");return(t=EO(t,!e)).length?(n&&(t+="/"),e?`/${t}`:t):e?"/":n?"./":"."}(e):"."}function OO(t){if(0===t.length)return".";const e="/"===t[0];let n=-1,i=!0;for(let e=t.length-1;e>=1;--e)if("/"===t[e]){if(!i){n=e;break}}else i=!1;return-1===n?e?"/":".":e&&1===n?"//":t.slice(0,n)}function MO(t,e){let n=0,i=-1,s=!0;if(void 0!==e&&e.length>0&&e.length<=t.length){if(e===t)return"";let o=e.length-1,r=-1;for(let a=t.length-1;a>=0;--a)if("/"===t[a]){if(!s){n=a+1;break}}else-1===r&&(s=!1,r=a+1),o>=0&&(t[a]===e[o]?-1==--o&&(i=a):(o=-1,i=r));return n===i?i=r:-1===i&&(i=t.length),t.slice(n,i)}for(let e=t.length-1;e>=0;--e)if("/"===t[e]){if(!s){n=e+1;break}}else-1===i&&(s=!1,i=e+1);return-1===i?"":t.slice(n,i)}function RO(t){const e=t.startsWith("/"),n={root:e?"/":"",dir:"",base:"",ext:"",name:""};if(0===t.length)return n;const i=e?1:0;let s=-1,o=0,r=-1,a=!0,l=t.length-1,u=0;for(;l>=i;--l)if("/"!==t[l])-1===r&&(a=!1,r=l+1),"."===t[l]?-1===s?s=l:1!==u&&(u=1):-1!==s&&(u=-1);else if(!a){o=l+1;break}if(-1!==r){const i=0===o&&e?1:o;-1===s||0===u||1===u&&s===r-1&&s===o+1?n.base=n.name=t.slice(i,r):(n.name=t.slice(i,s),n.base=t.slice(i,r),n.ext=t.slice(s,r))}return o>0?n.dir=t.slice(0,o-1):e&&(n.dir="/"),n}const AO=new TextEncoder;function SO(t){if("string"!=typeof t)throw new IO(cO.EINVAL,"Can not encode a non-string");return AO.encode(t)}const CO=new TextDecoder;function LO(t){if(!(t instanceof Uint8Array))throw new IO(cO.EINVAL,"Can not decode a non-Uint8Array");return CO.decode(t)}function yO(t){return JSON.parse(LO(t),((t,e)=>""==t?e:BigInt(e)))}function DO(t){return SO(JSON.stringify(t,((t,e)=>""==t?e:e.toString())))}function NO(t,e){if("number"==typeof t)return t;if("string"==typeof t){const e=parseInt(t,8);if(!isNaN(e))return e}if("number"==typeof e)return e;throw new IO(cO.EINVAL,"Invalid mode: "+t?.toString())}function bO(t){if(t instanceof Date)return t;try{return new Date(t)}catch{throw new IO(cO.EINVAL,"Invalid time.")}}function vO(t){if((t=t.toString()).includes("\0"))throw new IO(cO.EINVAL,"Path can not contain null character");if(0==t.length)throw new IO(cO.EINVAL,"Path can not be empty");return fO(t.replaceAll(/[/\\]+/g,"/"))}function wO(t,e="utf8",n,i=0){return"object"!=typeof t||null===t?{encoding:"string"==typeof t?t:e??null,flag:n,mode:i}:{encoding:"string"==typeof t?.encoding?t.encoding:e??null,flag:"string"==typeof t?.flag?t.flag:n,mode:NO("mode"in t?t?.mode:null,i)}}function FO(){return crypto.getRandomValues(new BigUint64Array(1))[0]}const PO={uid:0,gid:0,suid:0,sgid:0,euid:0,egid:0,groups:[]};function kO(t){return{suid:t.uid,sgid:t.gid,euid:t.uid,egid:t.gid,groups:[],...t}}const VO=0,YO=4,xO=2,UO=1,BO=1,XO=2,GO=4,HO=0,WO=1,KO=2,jO=64,qO=128,$O=256,zO=512,QO=1024,JO=65536,ZO=262144,tM=131072,eM=1052672,nM=4096,iM=32768,sM=16384,oM=2048,rM=61440,aM=49152,lM=40960,uM=32768,pM=24576,_M=16384,dM=8192,hM=4096,cM=2048,TM=1024,IM=512,mM=448,EM=256,fM=128,gM=64,OM=56,MM=32,RM=16,AM=8,SM=7,CM=4,LM=2,yM=1,DM=0,NM=2**32-1,bM={checkAccess:!0,updateOnRead:!0,syncImmediately:!0,unsafeBufferReplace:!1};Promise.withResolvers??(Promise.withResolvers=function(){let t,e;const n=new Promise(((n,i)=>{t=n,e=i}));return{promise:n,resolve:t,reject:e}}),Symbol.dispose??(Symbol.dispose=Symbol("Symbol.dispose")),Symbol.asyncDispose??(Symbol.asyncDispose=Symbol("Symbol.asyncDispose"));class vM{_convert(t){return this._isBigint?BigInt(t):Number(t)}get blocks(){return this._convert(Math.ceil(Number(this.size)/512))}get atime(){return new Date(Number(this.atimeMs))}set atime(t){this.atimeMs=this._convert(t.getTime())}get mtime(){return new Date(Number(this.mtimeMs))}set mtime(t){this.mtimeMs=this._convert(t.getTime())}get ctime(){return new Date(Number(this.ctimeMs))}set ctime(t){this.ctimeMs=this._convert(t.getTime())}get birthtime(){return new Date(Number(this.birthtimeMs))}set birthtime(t){this.birthtimeMs=this._convert(t.getTime())}constructor({atimeMs:t,mtimeMs:e,ctimeMs:n,birthtimeMs:i,uid:s,gid:o,size:r,mode:a,ino:l}={}){this.dev=this._convert(0),this.ino=this._convert(0),this.rdev=this._convert(0),this.nlink=this._convert(1),this.blksize=this._convert(4096),this.uid=this._convert(0),this.gid=this._convert(0);const u=Date.now();this.atimeMs=this._convert(t??u),this.mtimeMs=this._convert(e??u),this.ctimeMs=this._convert(n??u),this.birthtimeMs=this._convert(i??u),this.uid=this._convert(s??0),this.gid=this._convert(o??0),this.size=this._convert(r??0),this.ino=this._convert(l??0),this.mode=this._convert(a??420&uM),this.mode&rM||(this.mode=this.mode|this._convert(uM))}isFile(){return(this.mode&rM)===uM}isDirectory(){return(this.mode&rM)===_M}isSymbolicLink(){return(this.mode&rM)===lM}isSocket(){return(this.mode&rM)===aM}isBlockDevice(){return(this.mode&rM)===pM}isCharacterDevice(){return(this.mode&rM)===dM}isFIFO(){return(this.mode&rM)===hM}hasAccess(t,e){const n=e?.credentials||PO;if(this.isSymbolicLink()||0===n.euid||0===n.egid)return!0;let i=0;return n.uid===this.uid&&(this.mode&EM&&(i|=YO),this.mode&fM&&(i|=xO),this.mode&gM&&(i|=UO)),(n.gid===this.gid||n.groups.includes(Number(this.gid)))&&(this.mode&MM&&(i|=YO),this.mode&RM&&(i|=xO),this.mode&AM&&(i|=UO)),this.mode&CM&&(i|=YO),this.mode&LM&&(i|=xO),this.mode&yM&&(i|=UO),(i&t)===t}chmod(t){this.mode=this._convert(this.mode&rM|t)}chown(t,e){t=Number(t),e=Number(e),!isNaN(t)&&0<=t&&t<2**32&&(this.uid=this._convert(t)),!isNaN(e)&&0<=e&&e<2**32&&(this.gid=this._convert(e))}get atimeNs(){return 1000n*BigInt(this.atimeMs)}get mtimeNs(){return 1000n*BigInt(this.mtimeMs)}get ctimeNs(){return 1000n*BigInt(this.ctimeMs)}get birthtimeNs(){return 1000n*BigInt(this.birthtimeMs)}}function wM(t,e,n){!isNaN(e)&&0<=e&&e<2**32&&(t.uid=e),!isNaN(n)&&0<=n&&n<2**32&&(t.gid=n)}class FM extends vM{constructor(){super(...arguments),this._isBigint=!1}}class PM extends vM{constructor(){super(...arguments),this._isBigint=!0}}class kM{constructor(){this.type=525687744115,this.bsize=4096,this.blocks=0,this.bfree=0,this.bavail=0,this.files=NM,this.ffree=NM}}class VM{constructor(){this.type=0x7a656e6673n,this.bsize=4096n,this.blocks=0n,this.bfree=0n,this.bavail=0n,this.files=BigInt(NM),this.ffree=BigInt(NM)}}const YM=["r","r+","rs","rs+","w","wx","w+","wx+","a","ax","a+","ax+"];function xM(t){if("number"==typeof t)return function(t){switch(t){case HO:return"r";case HO|eM:return"rs";case KO:return"r+";case KO|eM:return"rs+";case zO|jO|WO:return"w";case zO|jO|WO|qO:return"wx";case zO|jO|KO:return"w+";case zO|jO|KO|qO:return"wx+";case QO|jO|WO:return"a";case QO|jO|WO|qO:return"ax";case QO|jO|KO:return"a+";case QO|jO|KO|qO:return"ax+";default:throw new Error("Invalid flag number: "+t)}}(t);if(!YM.includes(t))throw new Error("Invalid flag string: "+t);return t}function UM(t){let e=0;return e<<=1,e+=+BM(t),e<<=1,e+=+XM(t),e<<=1,e}function BM(t){return-1!==t.indexOf("r")||-1!==t.indexOf("+")}function XM(t){return-1!==t.indexOf("w")||-1!==t.indexOf("a")||-1!==t.indexOf("+")}function GM(t){return-1!==t.indexOf("w")}function HM(t){return-1!==t.indexOf("a")}function WM(t){return-1!==t.indexOf("x")}class KM{constructor(t,e){this.fs=t,this.path=e}async[Symbol.asyncDispose](){await this.close()}[Symbol.dispose](){this.closeSync()}datasync(){return this.sync()}datasyncSync(){return this.syncSync()}}class jM extends KM{constructor(t,e,n,i,s=new Uint8Array(new ArrayBuffer(0,t.metadata().noResizableBuffers?{}:{maxByteLength:NM}))){if(super(t,e),this.flag=n,this.stats=i,this._buffer=s,this._position=0,this.dirty=!1,this.closed=!1,this.stats.size!=s.byteLength){if(BM(this.flag))throw new Error(`Size mismatch: buffer length ${s.byteLength}, stats size ${this.stats.size}`);this.dirty=!0}}get buffer(){return this._buffer}get position(){return HM(this.flag)?this.stats.size:this._position}set position(t){this._position=t}async sync(){if(this.closed)throw IO.With("EBADF",this.path,"File.sync");this.dirty&&(await this.fs.sync(this.path,this._buffer,this.stats),this.dirty=!1)}syncSync(){if(this.closed)throw IO.With("EBADF",this.path,"File.sync");this.dirty&&(this.fs.syncSync(this.path,this._buffer,this.stats),this.dirty=!1)}async close(){if(this.closed)throw IO.With("EBADF",this.path,"File.close");await this.sync(),this.dispose()}closeSync(){if(this.closed)throw IO.With("EBADF",this.path,"File.close");this.syncSync(),this.dispose()}dispose(t){if(this.closed)throw IO.With("EBADF",this.path,"File.dispose");if(this.dirty&&!t)throw IO.With("EBUSY",this.path,"File.dispose");delete this._buffer,delete this.stats,this.closed=!0}stat(){if(this.closed)throw IO.With("EBADF",this.path,"File.stat");return Promise.resolve(new FM(this.stats))}statSync(){if(this.closed)throw IO.With("EBADF",this.path,"File.stat");return new FM(this.stats)}_truncate(t){if(this.closed)throw IO.With("EBADF",this.path,"File.truncate");if(this.dirty=!0,!XM(this.flag))throw new IO(cO.EPERM,"File not opened with a writeable mode.");if(this.stats.mtimeMs=Date.now(),t>this._buffer.length){const e=new Uint8Array(t-this._buffer.length);this._write(e,0,e.length,this._buffer.length)}else this.stats.size=t,this._buffer=t?this._buffer.slice(0,t):new Uint8Array}async truncate(t){this._truncate(t),bM.syncImmediately&&await this.sync()}truncateSync(t){this._truncate(t),bM.syncImmediately&&this.syncSync()}_write(t,e=0,n=this.stats.size,i=this.position){if(this.closed)throw IO.With("EBADF",this.path,"File.write");if(!XM(this.flag))throw new IO(cO.EPERM,"File not opened with a writeable mode.");this.dirty=!0;const s=i+n,o=t.slice(e,e+n);if(s>this.stats.size&&(this.stats.size=s,s>this._buffer.byteLength))if(this._buffer.buffer.resizable&&this._buffer.buffer.maxByteLength<=s)this._buffer.buffer.resize(s);else if(bM.unsafeBufferReplace)this._buffer=o;else{const t=new Uint8Array(new ArrayBuffer(s,this.fs.metadata().noResizableBuffers?{}:{maxByteLength:NM}));t.set(this._buffer),this._buffer=t}return this._buffer.set(o,i),this.stats.mtimeMs=Date.now(),this.position=i+o.byteLength,o.byteLength}async write(t,e,n,i){const s=this._write(t,e,n,i);return bM.syncImmediately&&await this.sync(),s}writeSync(t,e=0,n=this.stats.size,i=this.position){const s=this._write(t,e,n,i);return bM.syncImmediately&&this.syncSync(),s}_read(t,e=0,n=this.stats.size,i){if(this.closed)throw IO.With("EBADF",this.path,"File.read");if(!BM(this.flag))throw new IO(cO.EPERM,"File not opened with a readable mode.");bM.updateOnRead&&(this.dirty=!0),this.stats.atimeMs=Date.now(),i??(i=this.position);let s=i+n;s>this.stats.size&&(s=i+Math.max(this.stats.size-i,0)),this._position=s;const o=s-i;return 0==o||new Uint8Array(t.buffer,e,n).set(this._buffer.slice(i,s)),o}async read(t,e,n,i){const s=this._read(t,e,n,i);return bM.syncImmediately&&await this.sync(),{bytesRead:s,buffer:t}}readSync(t,e,n,i){const s=this._read(t,e,n,i);return bM.syncImmediately&&this.syncSync(),s}async chmod(t){if(this.closed)throw IO.With("EBADF",this.path,"File.chmod");this.dirty=!0,this.stats.mode=this.stats.mode&(t>rM?~rM:rM)|t,(bM.syncImmediately||t>rM)&&await this.sync()}chmodSync(t){if(this.closed)throw IO.With("EBADF",this.path,"File.chmod");this.dirty=!0,this.stats.mode=this.stats.mode&(t>rM?~rM:rM)|t,(bM.syncImmediately||t>rM)&&this.syncSync()}async chown(t,e){if(this.closed)throw IO.With("EBADF",this.path,"File.chown");this.dirty=!0,wM(this.stats,t,e),bM.syncImmediately&&await this.sync()}chownSync(t,e){if(this.closed)throw IO.With("EBADF",this.path,"File.chown");this.dirty=!0,wM(this.stats,t,e),bM.syncImmediately&&this.syncSync()}async utimes(t,e){if(this.closed)throw IO.With("EBADF",this.path,"File.utimes");this.dirty=!0,this.stats.atime=t,this.stats.mtime=e,bM.syncImmediately&&await this.sync()}utimesSync(t,e){if(this.closed)throw IO.With("EBADF",this.path,"File.utimes");this.dirty=!0,this.stats.atime=t,this.stats.mtime=e,bM.syncImmediately&&this.syncSync()}}class qM{metadata(){return{name:this.constructor.name.toLowerCase(),readonly:!1,totalSpace:0,freeSpace:0,noResizableBuffers:!1,noAsyncCache:this._disableSync??!1,type:525687744115}}constructor(...t){}async ready(){}async exists(t){try{return await this.stat(t),!0}catch(t){return"ENOENT"!=t.code}}existsSync(t){try{return this.statSync(t),!0}catch(t){return"ENOENT"!=t.code}}}var $M=__webpack_require__(228);Symbol.toStringTag,Symbol.iterator;const zM=Intl.NumberFormat("en",{notation:"compact"});zM.format.bind(zM);function QM(t){return t.at(0).toUpperCase()+t.slice(1)}const JM=["int8","uint8","int16","uint16","int32","uint32","int64","uint64","float32","float64"],ZM=[...JM,...JM.map((t=>QM(t))),"char"],tR=/^(u?int|float)(8|16|32|64)$/i;function eR(t){return"char"==t?"uint8":t.toLowerCase()}function nR(t){return tR.test(t.toString())}function iR(t){return"char"==t||tR.test(t.toString().toLowerCase())}Symbol.struct_init||=Symbol("struct_init"),Symbol.struct_metadata||=Symbol("struct_metadata");Symbol.struct_init,Symbol.struct_metadata;function sR(t){const e=Symbol.metadata||Object.getOwnPropertySymbols(t).find((t=>"Symbol.metadata"==t.description));var n;if(n=t,Symbol?.metadata&&(Symbol.metadata in n||Object.defineProperty(n,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:Object.create(null)})),!e)throw new ReferenceError("Could not get a reference to Symbol.metadata");return e}function oR(t){return"function"==typeof t&&sR(t)in t&&function(t){return null!=t&&"object"==typeof t&&Symbol.struct_metadata in t}(t[sR(t)])}function rR(t){return null!=t&&"object"==typeof t&&oR(t.constructor)}function aR(t){if(!rR(t))throw new TypeError(("function"==typeof t?t.name:"object"==typeof t&&t?t.constructor.name:t)+" is not a struct instance")}function lR(t){if(!function(t){return rR(t)||oR(t)}(t))throw new TypeError(("function"==typeof t?t.name:"object"==typeof t&&t?t.constructor.name:t)+" is not a struct")}function uR(t){if("string"==typeof t)return function(t){if(!iR(t))throw new TypeError("Not a valid primitive type: "+t)}(t),+eR(t).match(tR)[2]/8;lR(t);const e=oR(t)?t:t.constructor;return e[sR(e)][Symbol.struct_metadata].size}function pR(t={}){return function(e,n){n.metadata??={},n.metadata[Symbol.struct_init]||=[];let i=0;const s=new Map;for(const e of n.metadata[Symbol.struct_init]){const{name:n,type:a,length:l}=e;if(!iR(a)&&!oR(a))throw new TypeError("Not a valid type: "+a);s.set(n,{offset:i,type:iR(a)?eR(a):a,length:l}),i+=uR(a)*(l||1),o=i,r=t.align||1,i=Math.ceil(o/r)*r}var o,r;return n.metadata[Symbol.struct_metadata]={options:t,members:s,size:i},e}}function _R(t,e){return function(n,i){let s=i.name;if("symbol"==typeof s&&(console.warn("Symbol used for struct member name will be coerced to string: "+s.toString()),s=s.toString()),!s)throw new ReferenceError("Invalid name for struct member");return i.metadata??={},i.metadata[Symbol.struct_init]||=[],i.metadata[Symbol.struct_init].push({name:s,type:t,length:e}),n}}function dR(t){aR(t);const{options:e,members:n}=t.constructor[sR(t.constructor)][Symbol.struct_metadata],i=new Uint8Array(uR(t)),s=new DataView(i.buffer);for(const[o,{type:r,length:a,offset:l}]of n)for(let n=0;n<(a||1);n++){const u=l+uR(r)*n;let p=a>0?t[o][n]:t[o];if("string"==typeof p&&(p=p.charCodeAt(0)),!nR(r)){i.set(p?dR(p):new Uint8Array(uR(r)),u);continue}const _="set"+QM(r);"setInt64"!=_?"setUint64"!=_?s[_](u,Number(p),!e.bigEndian):s.setBigUint64(u,BigInt(p),!e.bigEndian):s.setBigInt64(u,BigInt(p),!e.bigEndian)}return i}function hR(t,e){aR(t);const{options:n,members:i}=t.constructor[sR(t.constructor)][Symbol.struct_metadata],s=e instanceof Uint8Array?e:new Uint8Array("buffer"in e?e.buffer:e),o=new DataView(s.buffer.slice(s.byteOffset,s.byteOffset+s.byteLength));for(const[e,{type:r,offset:a,length:l}]of i)for(let i=0;i<(l||1);i++){let u=l>0?t[e]:t;const p=l>0?i:e,_=a+uR(r)*i;if("string"==typeof t[e]){t[e]=t[e].slice(0,i)+String.fromCharCode(o.getUint8(_))+t[e].slice(i+1);continue}if(!nR(r)){if(null===u[p]||void 0===u[p])continue;hR(u[p],new Uint8Array(s.slice(_,_+uR(r))));continue}l>0&&(u||=[]);const d="get"+QM(r);"getInt64"!=d?u[p]="getUint64"!=d?o[d](_,!n.bigEndian):o.getBigUint64(_,!n.bigEndian):u[p]=o.getBigInt64(_,!n.bigEndian)}}Symbol.metadata??=Symbol.for("Symbol.metadata");const cR=Object.fromEntries(ZM.map((t=>{return[t,(e=t,function(t,n){return"number"==typeof t?_R(e,t):_R(e)(t,n)})];var e})));var TR=function(t,e,n,i,s,o){function r(t){if(void 0!==t&&"function"!=typeof t)throw new TypeError("Function expected");return t}for(var a,l=i.kind,u="getter"===l?"get":"setter"===l?"set":"value",p=!e&&t?i.static?t:t.prototype:null,_=e||(p?Object.getOwnPropertyDescriptor(p,i.name):{}),d=!1,h=n.length-1;h>=0;h--){var c={};for(var T in i)c[T]="access"===T?{}:i[T];for(var T in i.access)c.access[T]=i.access[T];c.addInitializer=function(t){if(d)throw new TypeError("Cannot add initializers after decoration has completed");o.push(r(t||null))};var I=(0,n[h])("accessor"===l?{get:_.get,set:_.set}:_[u],c);if("accessor"===l){if(void 0===I)continue;if(null===I||"object"!=typeof I)throw new TypeError("Object expected");(a=r(I.get))&&(_.get=a),(a=r(I.set))&&(_.set=a),(a=r(I.init))&&s.unshift(a)}else(a=r(I))&&("field"===l?s.unshift(a):_[u]=a)}p&&Object.defineProperty(p,i.name,_),d=!0},IR=function(t,e,n){for(var i=arguments.length>2,s=0;s{var t,e,n,i,s,o,r,a,l,u,p;let _,d,h,c,T,I,m,E,f,g,O,M,R,A=[pR()],S=[],C=[],L=[],y=[],D=[],N=[],b=[],v=[],w=[],F=[],P=[],k=[],V=[],Y=[],x=[],U=[],B=[],X=[],G=[],H=[],W=[],K=[],j=[];var q=d=class{constructor(t){if(this.data=IR(this,C,void 0),this.size=(IR(this,L),IR(this,y,void 0)),this.mode=(IR(this,D),IR(this,N,void 0)),this.nlink=(IR(this,b),IR(this,v,void 0)),this.uid=(IR(this,w),IR(this,F,void 0)),this.gid=(IR(this,P),IR(this,k,void 0)),this.atimeMs=(IR(this,V),IR(this,Y,void 0)),this.birthtimeMs=(IR(this,x),IR(this,U,void 0)),this.mtimeMs=(IR(this,B),IR(this,X,void 0)),this.ctimeMs=(IR(this,G),IR(this,H,void 0)),this.ino=(IR(this,W),IR(this,K,void 0)),IR(this,j),t){const e=uR(q),n=e-uR("uint64");if(t.byteLength{const $="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;h=[(t=cR).uint64.bind(t)],c=[(e=cR).uint32.bind(e)],T=[(n=cR).uint16.bind(n)],I=[(i=cR).uint32.bind(i)],m=[(s=cR).uint32.bind(s)],E=[(o=cR).uint32.bind(o)],f=[(r=cR).float64.bind(r)],g=[(a=cR).float64.bind(a)],O=[(l=cR).float64.bind(l)],M=[(u=cR).float64.bind(u)],R=[(p=cR).uint64.bind(p)],TR(null,null,h,{kind:"field",name:"data",static:!1,private:!1,access:{has:t=>"data"in t,get:t=>t.data,set:(t,e)=>{t.data=e}},metadata:$},C,L),TR(null,null,c,{kind:"field",name:"size",static:!1,private:!1,access:{has:t=>"size"in t,get:t=>t.size,set:(t,e)=>{t.size=e}},metadata:$},y,D),TR(null,null,T,{kind:"field",name:"mode",static:!1,private:!1,access:{has:t=>"mode"in t,get:t=>t.mode,set:(t,e)=>{t.mode=e}},metadata:$},N,b),TR(null,null,I,{kind:"field",name:"nlink",static:!1,private:!1,access:{has:t=>"nlink"in t,get:t=>t.nlink,set:(t,e)=>{t.nlink=e}},metadata:$},v,w),TR(null,null,m,{kind:"field",name:"uid",static:!1,private:!1,access:{has:t=>"uid"in t,get:t=>t.uid,set:(t,e)=>{t.uid=e}},metadata:$},F,P),TR(null,null,E,{kind:"field",name:"gid",static:!1,private:!1,access:{has:t=>"gid"in t,get:t=>t.gid,set:(t,e)=>{t.gid=e}},metadata:$},k,V),TR(null,null,f,{kind:"field",name:"atimeMs",static:!1,private:!1,access:{has:t=>"atimeMs"in t,get:t=>t.atimeMs,set:(t,e)=>{t.atimeMs=e}},metadata:$},Y,x),TR(null,null,g,{kind:"field",name:"birthtimeMs",static:!1,private:!1,access:{has:t=>"birthtimeMs"in t,get:t=>t.birthtimeMs,set:(t,e)=>{t.birthtimeMs=e}},metadata:$},U,B),TR(null,null,O,{kind:"field",name:"mtimeMs",static:!1,private:!1,access:{has:t=>"mtimeMs"in t,get:t=>t.mtimeMs,set:(t,e)=>{t.mtimeMs=e}},metadata:$},X,G),TR(null,null,M,{kind:"field",name:"ctimeMs",static:!1,private:!1,access:{has:t=>"ctimeMs"in t,get:t=>t.ctimeMs,set:(t,e)=>{t.ctimeMs=e}},metadata:$},H,W),TR(null,null,R,{kind:"field",name:"ino",static:!1,private:!1,access:{has:t=>"ino"in t,get:t=>t.ino,set:(t,e)=>{t.ino=e}},metadata:$},K,j),TR(null,_={value:d},A,{kind:"class",name:d.name,metadata:$},null,S),q=d=_.value,$&&Object.defineProperty(d,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:$}),IR(d,S)})(),q=d})();var fR=function(t,e,n){if(null!=e){if("object"!=typeof e&&"function"!=typeof e)throw new TypeError("Object expected.");var i,s;if(n){if(!Symbol.asyncDispose)throw new TypeError("Symbol.asyncDispose is not defined.");i=e[Symbol.asyncDispose]}if(void 0===i){if(!Symbol.dispose)throw new TypeError("Symbol.dispose is not defined.");i=e[Symbol.dispose],n&&(s=i)}if("function"!=typeof i)throw new TypeError("Object not disposable.");s&&(i=function(){try{s.call(this)}catch(t){return Promise.reject(t)}}),t.stack.push({value:e,dispose:i,async:n})}else n&&t.stack.push({async:!0});return e},gR=function(t){return function(e){function n(n){e.error=e.hasError?new t(n,e.error,"An error was suppressed during disposal."):n,e.hasError=!0}return function t(){for(;e.stack.length;){var i=e.stack.pop();try{var s=i.dispose&&i.dispose.call(i.value);if(i.async)return Promise.resolve(s).then(t,(function(e){return n(e),t()}))}catch(t){n(t)}}if(e.hasError)throw e.error}()}}("function"==typeof SuppressedError?SuppressedError:function(t,e,n){var i=new Error(n);return i.name="SuppressedError",i.error=t,i.suppressed=e,i});class OR extends qM{async ready(){this._initialized||(await this.checkRoot(),this._initialized=!0)}constructor(t){super(),this.store=t,this._initialized=!1}metadata(){return{...super.metadata(),name:this.store.name}}async empty(){await this.store.clear(),await this.checkRoot()}emptySync(){this.store.clearSync(),this.checkRootSync()}async rename(t,e){const n={stack:[],error:void 0,hasError:!1};try{const i=fR(n,this.store.transaction(),!0),s=RO(t),o=RO(e),r=await this.findInode(i,s.dir,"rename"),a=yO(await this.get(i,r.data,s.dir,"rename"));if(!a[s.base])throw IO.With("ENOENT",t,"rename");const l=a[s.base];if(delete a[s.base],0===(o.dir+"/").indexOf(t+"/"))throw new IO(cO.EBUSY,s.dir);const u=o.dir==s.dir,p=u?r:await this.findInode(i,o.dir,"rename"),_=u?a:yO(await this.get(i,p.data,o.dir,"rename"));if(_[o.base]){const t=new ER(await this.get(i,_[o.base],e,"rename"));if(!t.toStats().isFile())throw IO.With("EPERM",e,"rename");await i.remove(t.data),await i.remove(_[o.base])}_[o.base]=l,await i.set(r.data,DO(a)),await i.set(p.data,DO(_)),await i.commit()}catch(t){n.error=t,n.hasError=!0}finally{const t=gR(n);t&&await t}}renameSync(t,e){const n={stack:[],error:void 0,hasError:!1};try{const i=fR(n,this.store.transaction(),!1),s=RO(t),o=RO(e),r=this.findInodeSync(i,s.dir,"rename"),a=yO(this.getSync(i,r.data,s.dir,"rename"));if(!a[s.base])throw IO.With("ENOENT",t,"rename");const l=a[s.base];if(delete a[s.base],0==(o.dir+"/").indexOf(t+"/"))throw new IO(cO.EBUSY,s.dir);const u=o.dir===s.dir,p=u?r:this.findInodeSync(i,o.dir,"rename"),_=u?a:yO(this.getSync(i,p.data,o.dir,"rename"));if(_[o.base]){const t=new ER(this.getSync(i,_[o.base],e,"rename"));if(!t.toStats().isFile())throw IO.With("EPERM",e,"rename");i.removeSync(t.data),i.removeSync(_[o.base])}_[o.base]=l,i.setSync(r.data,DO(a)),i.setSync(p.data,DO(_)),i.commitSync()}catch(t){n.error=t,n.hasError=!0}finally{gR(n)}}async stat(t){const e={stack:[],error:void 0,hasError:!1};try{const n=fR(e,this.store.transaction(),!0);return(await this.findInode(n,t,"stat")).toStats()}catch(t){e.error=t,e.hasError=!0}finally{const t=gR(e);t&&await t}}statSync(t){const e={stack:[],error:void 0,hasError:!1};try{const n=fR(e,this.store.transaction(),!1);return this.findInodeSync(n,t,"stat").toStats()}catch(t){e.error=t,e.hasError=!0}finally{gR(e)}}async createFile(t,e,n){const i=await this.commitNew(t,uM,n,new Uint8Array,"createFile");return new jM(this,t,e,i.toStats(),new Uint8Array)}createFileSync(t,e,n){const i=this.commitNewSync(t,uM,n,new Uint8Array,"createFile");return new jM(this,t,e,i.toStats(),new Uint8Array)}async openFile(t,e){const n={stack:[],error:void 0,hasError:!1};try{const i=fR(n,this.store.transaction(),!0),s=await this.findInode(i,t,"openFile"),o=await this.get(i,s.data,t,"openFile");return new jM(this,t,e,s.toStats(),o)}catch(t){n.error=t,n.hasError=!0}finally{const t=gR(n);t&&await t}}openFileSync(t,e){const n={stack:[],error:void 0,hasError:!1};try{const i=fR(n,this.store.transaction(),!1),s=this.findInodeSync(i,t,"openFile"),o=this.getSync(i,s.data,t,"openFile");return new jM(this,t,e,s.toStats(),o)}catch(t){n.error=t,n.hasError=!0}finally{gR(n)}}async unlink(t){return this.remove(t,!1,"unlink")}unlinkSync(t){this.removeSync(t,!1,"unlink")}async rmdir(t){if((await this.readdir(t)).length)throw IO.With("ENOTEMPTY",t,"rmdir");await this.remove(t,!0,"rmdir")}rmdirSync(t){if(this.readdirSync(t).length)throw IO.With("ENOTEMPTY",t,"rmdir");this.removeSync(t,!0,"rmdir")}async mkdir(t,e){await this.commitNew(t,_M,e,SO("{}"),"mkdir")}mkdirSync(t,e){this.commitNewSync(t,_M,e,SO("{}"),"mkdir")}async readdir(t){const e={stack:[],error:void 0,hasError:!1};try{const n=fR(e,this.store.transaction(),!0),i=await this.findInode(n,t,"readdir");return Object.keys(yO(await this.get(n,i.data,t,"readdir")))}catch(t){e.error=t,e.hasError=!0}finally{const t=gR(e);t&&await t}}readdirSync(t){const e={stack:[],error:void 0,hasError:!1};try{const n=fR(e,this.store.transaction(),!1),i=this.findInodeSync(n,t,"readdir");return Object.keys(yO(this.getSync(n,i.data,t,"readdir")))}catch(t){e.error=t,e.hasError=!0}finally{gR(e)}}async sync(t,e,n){const i={stack:[],error:void 0,hasError:!1};try{const s=fR(i,this.store.transaction(),!0),o=await this._findInode(s,t,"sync"),r=new ER(await this.get(s,o,t,"sync")),a=r.update(n);await s.set(r.data,e),a&&await s.set(o,dR(r)),await s.commit()}catch(t){i.error=t,i.hasError=!0}finally{const t=gR(i);t&&await t}}syncSync(t,e,n){const i={stack:[],error:void 0,hasError:!1};try{const s=fR(i,this.store.transaction(),!1),o=this._findInodeSync(s,t,"sync"),r=new ER(this.getSync(s,o,t,"sync")),a=r.update(n);s.setSync(r.data,e),a&&s.setSync(o,dR(r)),s.commitSync()}catch(t){i.error=t,i.hasError=!0}finally{gR(i)}}async link(t,e){const n={stack:[],error:void 0,hasError:!1};try{const i=fR(n,this.store.transaction(),!0),s=OO(e),o=await this.findInode(i,s,"link"),r=yO(await this.get(i,o.data,s,"link")),a=await this._findInode(i,t,"link"),l=new ER(await this.get(i,a,t,"link"));l.nlink++,r[MO(e)]=a,i.setSync(a,dR(l)),i.setSync(o.data,DO(r)),i.commitSync()}catch(t){n.error=t,n.hasError=!0}finally{const t=gR(n);t&&await t}}linkSync(t,e){const n={stack:[],error:void 0,hasError:!1};try{const i=fR(n,this.store.transaction(),!1),s=OO(e),o=this.findInodeSync(i,s,"link"),r=yO(this.getSync(i,o.data,s,"link")),a=this._findInodeSync(i,t,"link"),l=new ER(this.getSync(i,a,t,"link"));l.nlink++,r[MO(e)]=a,i.setSync(a,dR(l)),i.setSync(o.data,DO(r)),i.commitSync()}catch(t){n.error=t,n.hasError=!0}finally{gR(n)}}async checkRoot(){const t={stack:[],error:void 0,hasError:!1};try{const e=fR(t,this.store.transaction(),!0);if(await e.get(0n))return;const n=new ER;n.ino=0n,n.mode=511|_M,await e.set(n.data,SO("{}")),await e.set(0n,dR(n)),await e.commit()}catch(e){t.error=e,t.hasError=!0}finally{const e=gR(t);e&&await e}}checkRootSync(){const t={stack:[],error:void 0,hasError:!1};try{const e=fR(t,this.store.transaction(),!1);if(e.getSync(0n))return;const n=new ER;n.ino=0n,n.mode=511|_M,e.setSync(n.data,SO("{}")),e.setSync(0n,dR(n)),e.commitSync()}catch(e){t.error=e,t.hasError=!0}finally{gR(t)}}async _findInode(t,e,n,i=new Set){if(i.has(e))throw new IO(cO.EIO,"Infinite loop detected while finding inode",e);if(i.add(e),"/"==e)return 0n;const{dir:s,base:o}=RO(e),r="/"==s?new ER(await this.get(t,0n,s,n)):await this.findInode(t,s,n,i),a=yO(await this.get(t,r.data,s,n));if(!(o in a))throw IO.With("ENOENT",fO(s,o),n);return a[o]}_findInodeSync(t,e,n,i=new Set){if(i.has(e))throw new IO(cO.EIO,"Infinite loop detected while finding inode",e);if(i.add(e),"/"==e)return 0n;const{dir:s,base:o}=RO(e),r="/"==s?new ER(this.getSync(t,0n,s,n)):this.findInodeSync(t,s,n,i),a=yO(this.getSync(t,r.data,s,n));if(!(o in a))throw IO.With("ENOENT",fO(s,o),n);return a[o]}async findInode(t,e,n,i=new Set){const s=await this._findInode(t,e,n,i);return new ER(await this.get(t,s,e,n))}findInodeSync(t,e,n,i=new Set){const s=this._findInodeSync(t,e,n,i);return new ER(this.getSync(t,s,e,n))}async get(t,e,n,i){const s=await t.get(e);if(!s)throw IO.With("ENOENT",n,i);return s}getSync(t,e,n,i){const s=t.getSync(e);if(!s)throw IO.With("ENOENT",n,i);return s}async allocNew(t,e,n){for(let e=0;e<5;e++){const e=FO();if(!await t.get(e))return e}throw new IO(cO.ENOSPC,"No IDs available",e,n)}allocNewSync(t,e,n){for(let e=0;e<5;e++){const e=FO();if(!t.getSync(e))return e}throw new IO(cO.ENOSPC,"No IDs available",e,n)}async commitNew(t,e,n,i,s){const o={stack:[],error:void 0,hasError:!1};try{if("/"==t)throw IO.With("EEXIST",t,s);const r=fR(o,this.store.transaction(),!0),{dir:a,base:l}=RO(t),u=await this.findInode(r,a,s),p=yO(await this.get(r,u.data,a,s));if(p[l])throw IO.With("EEXIST",t,s);const _=new ER;return _.ino=await this.allocNew(r,t,s),_.data=await this.allocNew(r,t,s),_.mode=n|e,_.uid=u.mode&cM?u.uid:PO.uid,_.gid=u.mode&TM?u.gid:PO.gid,_.size=i.length,await r.set(_.ino,dR(_)),await r.set(_.data,i),p[l]=_.ino,await r.set(u.data,DO(p)),await r.commit(),_}catch(t){o.error=t,o.hasError=!0}finally{const t=gR(o);t&&await t}}commitNewSync(t,e,n,i,s){const o={stack:[],error:void 0,hasError:!1};try{if("/"==t)throw IO.With("EEXIST",t,s);const r=fR(o,this.store.transaction(),!1),{dir:a,base:l}=RO(t),u=this.findInodeSync(r,a,s),p=yO(this.getSync(r,u.data,a,s));if(p[l])throw IO.With("EEXIST",t,s);const _=new ER;return _.ino=this.allocNewSync(r,t,s),_.data=this.allocNewSync(r,t,s),_.size=i.length,_.mode=n|e,_.uid=u.mode&cM?u.uid:PO.uid,_.gid=u.mode&TM?u.gid:PO.gid,r.setSync(_.ino,dR(_)),r.setSync(_.data,i),p[l]=_.ino,r.setSync(u.data,DO(p)),r.commitSync(),_}catch(t){o.error=t,o.hasError=!0}finally{gR(o)}}async remove(t,e,n){const i={stack:[],error:void 0,hasError:!1};try{const s=fR(i,this.store.transaction(),!0),{dir:o,base:r}=RO(t),a=await this.findInode(s,o,n),l=yO(await this.get(s,a.data,o,n));if(!l[r])throw IO.With("ENOENT",t,"remove");const u=l[r],p=new ER(await this.get(s,u,t,n));if(delete l[r],!e&&p.toStats().isDirectory())throw IO.With("EISDIR",t,"remove");await s.set(a.data,DO(l)),--p.nlink<1&&(await s.remove(p.data),await s.remove(u)),await s.commit()}catch(t){i.error=t,i.hasError=!0}finally{const t=gR(i);t&&await t}}removeSync(t,e,n){const i={stack:[],error:void 0,hasError:!1};try{const s=fR(i,this.store.transaction(),!1),{dir:o,base:r}=RO(t),a=this.findInodeSync(s,o,n),l=yO(this.getSync(s,a.data,o,n)),u=l[r];if(!u)throw IO.With("ENOENT",t,"remove");const p=new ER(this.getSync(s,u,t,n));if(delete l[r],!e&&p.toStats().isDirectory())throw IO.With("EISDIR",t,"remove");s.setSync(a.data,DO(l)),--p.nlink<1&&(s.removeSync(p.data),s.removeSync(u)),s.commitSync()}catch(t){i.error=t,i.hasError=!0}finally{gR(i)}}}class MR{constructor(t){this.store=t,this.done=!1}async[Symbol.asyncDispose](){this.done||await this.abort()}[Symbol.dispose](){this.done||this.abortSync()}}class RR extends MR{async keys(){return this.keysSync()}async get(t){return this.getSync(t)}async set(t,e){return this.setSync(t,e)}async remove(t){return this.removeSync(t)}async commit(){return this.commitSync()}async abort(){return this.abortSync()}}class AR extends RR{constructor(){super(...arguments),this.originalData=new Map,this.modifiedKeys=new Set}keysSync(){return this.store.keys()}getSync(t){const e=this.store.get(t);return this.stashOldValue(t,e),e}setSync(t,e){return this.markModified(t),this.store.set(t,e)}removeSync(t){this.markModified(t),this.store.delete(t)}commitSync(){this.done=!0}abortSync(){if(this.done){for(const t of this.modifiedKeys){const e=this.originalData.get(t);e?this.store.set(t,e):this.store.delete(t)}this.done=!0}}stashOldValue(t,e){this.originalData.has(t)||this.originalData.set(t,e)}markModified(t){this.modifiedKeys.add(t),this.originalData.has(t)||this.originalData.set(t,this.store.get(t))}}class SR extends Map{constructor(t="tmp"){super(),this.name=t}async sync(){}clearSync(){this.clear()}transaction(){return new AR(this)}}const CR={name:"InMemory",isAvailable:()=>!0,options:{name:{type:"string",required:!1}},create({name:t}){const e=new OR(new SR(t));return e.checkRootSync(),e}};"function"==typeof SuppressedError&&SuppressedError;class LR{constructor(){this.isEnabled=!1,this.sync=new Map,this.async=new Map}has(t){return this.isEnabled&&this.sync.has(t)}get(t){if(this.isEnabled)return this.sync.get(t)}set(t,e){this.isEnabled&&(this.sync.set(t,e),this.async.set(t,Promise.resolve(e)))}hasAsync(t){return this.isEnabled&&this.async.has(t)}getAsync(t){if(this.isEnabled)return this.async.get(t)}setAsync(t,e){this.isEnabled&&(this.async.set(t,e),e.then((e=>this.sync.set(t,e))))}clear(){this.isEnabled&&(this.sync.clear(),this.async.clear())}}const yR=new LR,DR=new LR;var NR=__webpack_require__(8287);function bR(t,e){return Object.fromEntries(Object.entries(t).map((([t,n])=>[t,"function"==typeof n?n.bind(e):n])))}const vR=new Map;let wR=100;function FR(t){const e=wR++;return vR.set(e,t),e}function PR(t){if(!vR.has(t))throw new IO(cO.EBADF);return vR.get(t)}const kR=new Map;function VR(t,e){if("/"!==t[0]&&(t="/"+t),t=fO(t),kR.has(t))throw new IO(cO.EINVAL,"Mount point "+t+" is already in use.");kR.set(t,e),DR.clear()}function YR(t){if("/"!==t[0]&&(t="/"+t),t=fO(t),!kR.has(t))throw new IO(cO.EINVAL,"Mount point "+t+" is already unmounted.");kR.delete(t),DR.clear()}function xR(t,e){const n=e?.root||"/";t=vO(gO(n,t));const i=[...kR].sort(((t,e)=>t[0].length>e[0].length?-1:1));for(const[e,s]of i)if(e.length<=t.length&&t.startsWith(e))return""===(t=t.slice(e.length>1?e.length:0))&&(t=n),{fs:s,path:t,mountPoint:e,root:n};throw new IO(cO.EIO,"No file system")}async function UR(){await Promise.all([...kR.values()].map((t=>t.ready())))}function BR(t,e){for(const[n,i]of Object.entries(e))t=t?.replaceAll(n,i);return t}function XR(t,e){"string"==typeof t.stack&&(t.stack=BR(t.stack,e));try{t.message=BR(t.message,e)}catch{}return t.path&&(t.path=BR(t.path,e)),t}function GR(t){"/"in t&&YR("/");for(const[e,n]of Object.entries(t))VR(e,n)}function HR(t,e){const n=t.metadata(),i=n.blockSize||4096;return{type:(e?BigInt:Number)(n.type),bsize:(e?BigInt:Number)(i),ffree:(e?BigInt:Number)(n.freeNodes||NM),files:(e?BigInt:Number)(n.totalNodes||NM),bavail:(e?BigInt:Number)(n.freeSpace/i),bfree:(e?BigInt:Number)(n.freeSpace/i),blocks:(e?BigInt:Number)(n.totalSpace/i)}}function WR(t,e){const n=this?.credentials;if(n?.uid&&n?.gid&&n?.euid&&n?.egid)throw new IO(cO.EPERM,"Can not chroot() as non-root user");return e&&this?(this.root+=t,this):function(t,e=structuredClone(PO)){const n={root:t,credentials:kO(e)},i=bR(st,n),s=bR(it,n);return{...n,...i,promises:s}}(gO(this?.root||"/",t),n)}VR("/",CR.create({name:"root"}));class KR extends $M{off(t,e,n,i){return super.off(t,e,n,i)}removeListener(t,e,n,i){return super.removeListener(t,e,n,i)}constructor(t){super(),this.path=t}setMaxListeners(){throw IO.With("ENOSYS",this.path,"Watcher.setMaxListeners")}getMaxListeners(){throw IO.With("ENOSYS",this.path,"Watcher.getMaxListeners")}prependListener(){throw IO.With("ENOSYS",this.path,"Watcher.prependListener")}prependOnceListener(){throw IO.With("ENOSYS",this.path,"Watcher.prependOnceListener")}rawListeners(){throw IO.With("ENOSYS",this.path,"Watcher.rawListeners")}ref(){return this}unref(){return this}}class jR extends KR{constructor(t,e){super(t),this.options=e,function(t,e){const n=vO(t);$R.has(n)||$R.set(n,new Set);$R.get(n).add(e)}(t.toString(),this)}close(){super.emit("close"),function(t,e){const n=vO(t);$R.has(n)&&($R.get(n).delete(e),0===$R.get(n).size&&$R.delete(n))}(this.path.toString(),this)}[Symbol.dispose](){this.close()}}class qR extends KR{constructor(t,e){super(t),this.options=e,this.start()}onInterval(){try{const n=eA(this.path);t=this.previous,e=n,(t.size!=e.size||+t.atime!=+e.atime||+t.mtime!=+e.mtime||+t.ctime!=+e.ctime||t.mode!=e.mode)&&(this.emit("change",n,this.previous),this.previous=n)}catch(t){this.emit("error",t)}var t,e}start(){const t=this.options.interval||5e3;try{this.previous=eA(this.path)}catch(t){return void this.emit("error",t)}this.intervalId=setInterval(this.onInterval.bind(this),t),this.options.persistent||"object"!=typeof this.intervalId||this.intervalId.unref()}stop(){this.intervalId&&(clearInterval(this.intervalId),this.intervalId=void 0),this.removeAllListeners()}}const $R=new Map;function zR(t,e){if(e=vO(e),$R.has(e))for(const n of $R.get(e))n.emit("change",t,MO(e));let n,i=e;for(;i!==n;)if(n=i,i=OO(i),$R.has(i))for(const n of $R.get(i))n.emit("change",t,e.slice(i.length+("/"==i?0:1)))}var QR=function(t,e,n){if(null!=e){if("object"!=typeof e&&"function"!=typeof e)throw new TypeError("Object expected.");var i,s;if(n){if(!Symbol.asyncDispose)throw new TypeError("Symbol.asyncDispose is not defined.");i=e[Symbol.asyncDispose]}if(void 0===i){if(!Symbol.dispose)throw new TypeError("Symbol.dispose is not defined.");i=e[Symbol.dispose],n&&(s=i)}if("function"!=typeof i)throw new TypeError("Object not disposable.");s&&(i=function(){try{s.call(this)}catch(t){return Promise.reject(t)}}),t.stack.push({value:e,dispose:i,async:n})}else n&&t.stack.push({async:!0});return e},JR=function(t){return function(e){function n(n){e.error=e.hasError?new t(n,e.error,"An error was suppressed during disposal."):n,e.hasError=!0}return function t(){for(;e.stack.length;){var i=e.stack.pop();try{var s=i.dispose&&i.dispose.call(i.value);if(i.async)return Promise.resolve(s).then(t,(function(e){return n(e),t()}))}catch(t){n(t)}}if(e.hasError)throw e.error}()}}("function"==typeof SuppressedError?SuppressedError:function(t,e,n){var i=new Error(n);return i.name="SuppressedError",i.error=t,i.suppressed=e,i});function ZR(t,e){t=vO(t),e=vO(e);const n=xR(t,this),i=xR(e,this);if(bM.checkAccess&&!eA.call(this,OO(t)).hasAccess(xO,this))throw IO.With("EACCES",t,"rename");try{if(n===i)return n.fs.renameSync(n.path,i.path),zR("rename",t.toString()),void zR("change",e.toString());pA.call(this,e,uA(t)),sA.call(this,t),zR("rename",t.toString())}catch(s){throw XR(s,{[n.path]:t,[i.path]:e})}}function tA(t){t=vO(t);try{const{fs:e,path:n}=xR(FA.call(this,t),this);return e.existsSync(n)}catch(t){if(t.errno==cO.ENOENT)return!1;throw t}}function eA(t,e){t=vO(t);const{fs:n,path:i}=xR(FA.call(this,t),this);try{const t=n.statSync(i);if(bM.checkAccess&&!t.hasAccess(YO,this))throw IO.With("EACCES",i,"stat");return e?.bigint?new PM(t):t}catch(e){throw XR(e,{[i]:t})}}function nA(t,e){t=vO(t);const{fs:n,path:i}=xR(t,this);try{const t=n.statSync(i);return e?.bigint?new PM(t):t}catch(e){throw XR(e,{[i]:t})}}function iA(t,e=0){const n={stack:[],error:void 0,hasError:!1};try{const i=QR(n,oA.call(this,t,"r+"),!1);if(e||(e=0),e<0)throw new IO(cO.EINVAL);i.truncateSync(e)}catch(t){n.error=t,n.hasError=!0}finally{JR(n)}}function sA(t){t=vO(t);const{fs:e,path:n}=xR(t,this);try{if(bM.checkAccess&&!(yR.get(t)||e.statSync(n)).hasAccess(xO,this))throw IO.With("EACCES",n,"unlink");e.unlinkSync(n),zR("rename",t.toString())}catch(e){throw XR(e,{[n]:t})}}function oA(t,e,n,i=!0){t=vO(t);const s=NO(n,420),o=xM(e);t=i?FA.call(this,t):t;const{fs:r,path:a}=xR(t,this);let l;try{l=r.statSync(a)}catch{}if(!l){if(!XM(o)&&!HM(o)||"r+"==o)throw IO.With("ENOENT",t,"_open");const e=r.statSync(OO(a));if(bM.checkAccess&&!e.hasAccess(xO,this))throw IO.With("EACCES",OO(t),"_open");if(!e.isDirectory())throw IO.With("ENOTDIR",OO(t),"_open");return r.createFileSync(a,o,s)}if(bM.checkAccess&&(!l.hasAccess(s,this)||!l.hasAccess(UM(o),this)))throw IO.With("EACCES",t,"_open");if(WM(o))throw IO.With("EEXIST",t,"_open");const u=r.openFileSync(a,o);return GM(o)&&u.truncateSync(0),u}function rA(t,e,n=VO){return FR(oA.call(this,t,e,n,!0))}function aA(t,e,n){return FR(oA.call(this,t,e,n,!1))}function lA(t,e,n){const i={stack:[],error:void 0,hasError:!1};try{const s=QR(i,oA.call(this,t,e,420,n),!1),o=s.statSync(),r=new Uint8Array(o.size);return s.readSync(r,0,o.size,0),r}catch(t){i.error=t,i.hasError=!0}finally{JR(i)}}function uA(t,e={}){const n=wO(e,null,"r",420);if(!BM(xM(n.flag)))throw new IO(cO.EINVAL,"Flag passed to readFile must allow for reading.");const i=NR.Buffer.from(lA.call(this,"number"==typeof t?PR(t).path:t.toString(),n.flag,!0));return n.encoding?i.toString(n.encoding):i}function pA(t,e,n={}){const i={stack:[],error:void 0,hasError:!1};try{const s=wO(n,"utf8","w+",420),o=xM(s.flag);if(!XM(o))throw new IO(cO.EINVAL,"Flag passed to writeFile must allow for writing.");if("string"!=typeof e&&!s.encoding)throw new IO(cO.EINVAL,"Encoding not specified");const r="string"==typeof e?NR.Buffer.from(e,s.encoding):new Uint8Array(e.buffer,e.byteOffset,e.byteLength);if(!r)throw new IO(cO.EINVAL,"Data not specified");QR(i,oA.call(this,"number"==typeof t?PR(t).path:t.toString(),o,s.mode,!0),!1).writeSync(r,0,r.byteLength,0),zR("change",t.toString())}catch(t){i.error=t,i.hasError=!0}finally{JR(i)}}function _A(t,e,n={}){const i={stack:[],error:void 0,hasError:!1};try{const s=wO(n,"utf8","a+",420),o=xM(s.flag);if(!HM(o))throw new IO(cO.EINVAL,"Flag passed to appendFile must allow for appending.");if("string"!=typeof e&&!s.encoding)throw new IO(cO.EINVAL,"Encoding not specified");const r="string"==typeof e?NR.Buffer.from(e,s.encoding):new Uint8Array(e.buffer,e.byteOffset,e.byteLength);QR(i,oA.call(this,"number"==typeof t?PR(t).path:t.toString(),o,s.mode,!0),!1).writeSync(r,0,r.byteLength)}catch(t){i.error=t,i.hasError=!0}finally{JR(i)}}function dA(t,e){const n=PR(t).statSync();return e?.bigint?new PM(n):n}function hA(t){PR(t).closeSync(),vR.delete(t)}function cA(t,e=0){if(e||(e=0),e<0)throw new IO(cO.EINVAL);PR(t).truncateSync(e)}function TA(t){PR(t).syncSync()}function IA(t){PR(t).datasyncSync()}function mA(t,e,n,i,s){let o,r,a,l;if("string"==typeof e){l="number"==typeof n?n:null;const t="string"==typeof i?i:"utf8";r=0,o=NR.Buffer.from(e,t),a=o.byteLength}else o=new Uint8Array(e.buffer,e.byteOffset,e.byteLength),r=n,a=i,l="number"==typeof s?s:null;const u=PR(t);l??(l=u.position);const p=u.writeSync(o,r,a,l);return zR("change",u.path),p}function EA(t,e,n,i,s){const o=PR(t),r="object"==typeof n?n.offset:n;return"object"==typeof n&&(i=n.length,s=n.position),s=Number(s),isNaN(s)&&(s=o.position),o.readSync(e,r,i,s)}function fA(t,e,n){PR(t).chownSync(e,n)}function gA(t,e){const n=NO(e,-1);if(n<0)throw new IO(cO.EINVAL,"Invalid mode.");PR(t).chmodSync(n)}function OA(t,e,n){PR(t).utimesSync(bO(e),bO(n))}function MA(t){t=vO(t);const{fs:e,path:n}=xR(FA.call(this,t),this);try{const i=yR.get(t)||e.statSync(n);if(!i.isDirectory())throw IO.With("ENOTDIR",n,"rmdir");if(bM.checkAccess&&!i.hasAccess(xO,this))throw IO.With("EACCES",n,"rmdir");e.rmdirSync(n),zR("rename",t.toString())}catch(e){throw XR(e,{[n]:t})}}function RA(t,e){e="object"==typeof e?e:{mode:e};const n=NO(e?.mode,511);t=FA.call(this,t);const{fs:i,path:s,root:o}=xR(t,this),r={[s]:t};try{if(!e?.recursive){if(bM.checkAccess&&!i.statSync(OO(s)).hasAccess(xO,this))throw IO.With("EACCES",OO(s),"mkdir");return i.mkdirSync(s,n)}const a=[];for(let e=s,n=t;!i.existsSync(e);e=OO(e),n=OO(n))a.unshift(e),r[e]=n;for(const t of a){if(bM.checkAccess&&!i.statSync(OO(t)).hasAccess(xO,this))throw IO.With("EACCES",OO(t),"mkdir");i.mkdirSync(t,n),zR("rename",t)}return 1==o.length?a[0]:a[0]?.slice(o.length)}catch(t){throw XR(t,r)}}function AA(t,e){e="object"==typeof e?e:{encoding:e},t=vO(t);const{fs:n,path:i}=xR(FA.call(this,t),this);let s;try{const e=yR.get(t)||n.statSync(i);if(yR.set(t,e),bM.checkAccess&&!e.hasAccess(YO,this))throw IO.With("EACCES",i,"readdir");if(!e.isDirectory())throw IO.With("ENOTDIR",i,"readdir");s=n.readdirSync(i)}catch(e){throw XR(e,{[i]:t})}const o=[];for(const r of s){const s=yR.get(gO(t,r))||n.statSync(gO(i,r));if(yR.set(gO(t,r),s),e?.withFileTypes?o.push(new HA(r,s)):"buffer"==e?.encoding?o.push(NR.Buffer.from(r)):o.push(r),s.isDirectory()&&e?.recursive)for(const n of AA.call(this,gO(t,r),{...e,_isIndirect:!0}))n instanceof HA?(n.path=gO(r,n.path),o.push(n)):NR.Buffer.isBuffer(n)?o.push(NR.Buffer.from(gO(r,LO(n)))):o.push(gO(r,n))}return e?._isIndirect||yR.clear(),o}function SA(t,e){if(t=vO(t),bM.checkAccess&&!eA(OO(t)).hasAccess(YO,this))throw IO.With("EACCES",OO(t),"link");if(e=vO(e),bM.checkAccess&&!eA(OO(e)).hasAccess(xO,this))throw IO.With("EACCES",OO(e),"link");const{fs:n,path:i}=xR(t,this),s=xR(e,this);if(n!=s.fs)throw IO.With("EXDEV",e,"link");try{if(bM.checkAccess&&!n.statSync(i).hasAccess(YO,this))throw IO.With("EACCES",i,"link");return n.linkSync(i,e)}catch(n){throw XR(n,{[i]:t,[s.path]:e})}}function CA(t,e,n="file"){if(!["file","dir","junction"].includes(n))throw new IO(cO.EINVAL,"Invalid type: "+n);if(tA.call(this,e))throw IO.With("EEXIST",e.toString(),"symlink");pA.call(this,e,t.toString());oA.call(this,e,"r+",420,!1).chmodSync(lM)}function LA(t,e){const n=NR.Buffer.from(lA.call(this,t.toString(),"r",!1)),i="object"==typeof e?e?.encoding:e;return"buffer"==i?n:n.toString(i)}function yA(t,e,n){const i=rA.call(this,t,"r+");fA(i,e,n),hA(i)}function DA(t,e,n){const i=aA.call(this,t,"r+");fA(i,e,n),hA(i)}function NA(t,e){const n=rA.call(this,t,"r+");gA(n,e),hA(n)}function bA(t,e){const n=aA.call(this,t,"r+");gA(n,e),hA(n)}function vA(t,e,n){const i=rA.call(this,t,"r+");OA(i,e,n),hA(i)}function wA(t,e,n){const i=aA.call(this,t,"r+");OA(i,e,n),hA(i)}function FA(t,e){t=vO(t);const n=(this?.root||"")+t;if(DR.has(n))return DR.get(n);const{base:i,dir:s}=RO(t),o="/"==s?"/":DR.get((this?.root||"")+s)||FA.call(this,s),r=gO(o,i),{fs:a,path:l}=xR(r,this);try{const i=yR.get(r)||a.statSync(l);if(yR.set(r,i),!i.isSymbolicLink())return DR.set(t,r),r;const s=fO(o,LA.call(this,r,e).toString()),u=DR.get((this?.root||"")+s)||FA.call(this,s);return DR.set(n,u),u}catch(e){if("ENOENT"==e.code)return t;throw XR(e,{[l]:r})}}function PA(t,e=384){if(bM.checkAccess&&!eA.call(this,t).hasAccess(e,this))throw new IO(cO.EACCES)}function kA(t,e){let n;t=vO(t);try{n=yR.get(t)||nA.bind(this)(t)}catch(t){if("ENOENT"!=t.code||!e?.force)throw t}if(n){switch(yR.set(t,n),n.mode&rM){case _M:if(e?.recursive)for(const n of AA.call(this,t,{_isIndirect:!0}))kA.call(this,gO(t,n),{...e,_isIndirect:!0});MA.call(this,t);break;case uM:case lM:case pM:case dM:sA.call(this,t);break;default:throw yR.clear(),new IO(cO.EPERM,"File type not supported",t,"rm")}e?._isIndirect||yR.clear()}}function VA(t,e){const n="object"==typeof e?e?.encoding:e||"utf8",i="/tmp/"+`${t}${Date.now()}-${Math.random().toString(36).slice(2)}`;return RA.call(this,i),"buffer"==n?NR.Buffer.from(i):i}function YA(t,e,n){if(t=vO(t),e=vO(e),n&&n&BO&&tA(e))throw new IO(cO.EEXIST,"Destination file already exists.",e,"copyFile");pA.call(this,e,uA(t)),zR("rename",e.toString())}function xA(t,e,n){const i=PR(t);let s=0;for(const t of e)s+=i.readSync(t,0,t.byteLength,n+s);return s}function UA(t,e,n){const i=PR(t);let s=0;for(const t of e)s+=i.writeSync(new Uint8Array(t.buffer),0,t.byteLength,n+s);return s}function BA(t,e){return t=vO(t),new WA(t,this)}function XA(t,e,n){t=vO(t),e=vO(e);const i=nA.call(this,t);if(n?.errorOnExist&&tA.call(this,e))throw new IO(cO.EEXIST,"Destination file or directory already exists.",e,"cp");switch(i.mode&rM){case _M:if(!n?.recursive)throw new IO(cO.EISDIR,t+" is a directory (not copied)",t,"cp");RA.call(this,e,{recursive:!0});for(const i of AA.call(this,t,{withFileTypes:!0}))n.filter&&!n.filter(gO(t,i.name),gO(e,i.name))||XA.call(this,gO(t,i.name),gO(e,i.name),n);break;case uM:case lM:YA.call(this,t,e);break;default:throw new IO(cO.EPERM,"File type not supported",t,"rm")}n?.preserveTimestamps&&vA.call(this,e,i.atime,i.mtime)}function GA(t,e){t=vO(t);const{fs:n}=xR(t,this);return HR(n,e?.bigint)}class HA{get name(){return MO(this.path)}constructor(t,e){this.path=t,this.stats=e}get parentPath(){return this.path}isFile(){return this.stats.isFile()}isDirectory(){return this.stats.isDirectory()}isBlockDevice(){return this.stats.isBlockDevice()}isCharacterDevice(){return this.stats.isCharacterDevice()}isSymbolicLink(){return this.stats.isSymbolicLink()}isFIFO(){return this.stats.isFIFO()}isSocket(){return this.stats.isSocket()}}class WA{checkClosed(){if(this.closed)throw new IO(cO.EBADF,"Can not use closed Dir")}constructor(t,e){this.path=t,this.context=e,this.closed=!1}close(t){if(this.closed=!0,!t)return Promise.resolve();t()}closeSync(){this.closed=!0}async _read(){return this.checkClosed(),this._entries??(this._entries=await _S.call(this.context,this.path,{withFileTypes:!0})),this._entries.length?this._entries.shift()??null:null}read(t){if(!t)return this._read();this._read().then((e=>t(void 0,e)))}readSync(){return this.checkClosed(),this._entries??(this._entries=AA.call(this.context,this.path,{withFileTypes:!0})),this._entries.length?this._entries.shift()??null:null}async next(){const t=await this._read();return t?{done:!1,value:t}:(await this.close(),{done:!0,value:void 0})}[Symbol.asyncIterator](){return this}}var KA=__webpack_require__(6248);class jA extends KA.Readable{close(t=()=>null){try{super.destroy(),super.emit("close"),t()}catch(e){t(new IO(cO.EIO,e.toString()))}}}class qA extends KA.Writable{close(t=()=>null){try{super.destroy(),super.emit("close"),t()}catch(e){t(new IO(cO.EIO,e.toString()))}}}var $A=function(t,e,n){if(null!=e){if("object"!=typeof e&&"function"!=typeof e)throw new TypeError("Object expected.");var i,s;if(n){if(!Symbol.asyncDispose)throw new TypeError("Symbol.asyncDispose is not defined.");i=e[Symbol.asyncDispose]}if(void 0===i){if(!Symbol.dispose)throw new TypeError("Symbol.dispose is not defined.");i=e[Symbol.dispose],n&&(s=i)}if("function"!=typeof i)throw new TypeError("Object not disposable.");s&&(i=function(){try{s.call(this)}catch(t){return Promise.reject(t)}}),t.stack.push({value:e,dispose:i,async:n})}else n&&t.stack.push({async:!0});return e},zA=function(t){return function(e){function n(n){e.error=e.hasError?new t(n,e.error,"An error was suppressed during disposal."):n,e.hasError=!0}return function t(){for(;e.stack.length;){var i=e.stack.pop();try{var s=i.dispose&&i.dispose.call(i.value);if(i.async)return Promise.resolve(s).then(t,(function(e){return n(e),t()}))}catch(t){n(t)}}if(e.hasError)throw e.error}()}}("function"==typeof SuppressedError?SuppressedError:function(t,e,n){var i=new Error(n);return i.name="SuppressedError",i.error=t,i.suppressed=e,i});class QA{constructor(t,e){this.context=e;const n="number"!=typeof t;this.fd=n?FR(t):t,this.file=n?t:PR(t)}async chown(t,e){await this.file.chown(t,e),zR("change",this.file.path)}async chmod(t){const e=NO(t,-1);if(e<0)throw new IO(cO.EINVAL,"Invalid mode.");await this.file.chmod(e),zR("change",this.file.path)}datasync(){return this.file.datasync()}sync(){return this.file.sync()}async truncate(t){if(t||(t=0),t<0)throw new IO(cO.EINVAL);await this.file.truncate(t),zR("change",this.file.path)}async utimes(t,e){await this.file.utimes(bO(t),bO(e)),zR("change",this.file.path)}async appendFile(t,e={}){const n=wO(e,"utf8","a",420);if(!HM(xM(n.flag)))throw new IO(cO.EINVAL,"Flag passed to appendFile must allow for appending.");if("string"!=typeof t&&!n.encoding)throw new IO(cO.EINVAL,"Encoding not specified");const i="string"==typeof t?NR.Buffer.from(t,n.encoding):t;await this.file.write(i,0,i.length),zR("change",this.file.path)}read(t,e,n,i){return isNaN(+i)&&(i=this.file.position),this.file.read(t,e,n,i)}async readFile(t){const e=wO(t,null,"r",292);if(!BM(xM(e.flag)))throw new IO(cO.EINVAL,"Flag passed must allow for reading.");const{size:n}=await this.stat(),{buffer:i}=await this.file.read(new Uint8Array(n),0,n,0),s=NR.Buffer.from(i);return e.encoding?s.toString(e.encoding):s}readableWebStream(t={}){const e=globalThis;if(!("ReadableStream"in e))throw new IO(cO.ENOSYS,"ReadableStream is missing on globalThis");return new e.ReadableStream({start:async t=>{try{const e=65536,n=1e7;let i=0,s=0,o=NaN;for(;o>0;){const r=await this.read(new Uint8Array(e),0,e,s);if(!r.bytesRead)return void t.close();if(t.enqueue(r.buffer.slice(0,r.bytesRead)),s+=r.bytesRead,++i>=n)throw new IO(cO.EFBIG,"Too many iterations on readable stream",this.file.path,"FileHandle.readableWebStream");o=r.bytesRead}}catch(e){t.error(e)}},type:t.type})}readLines(t){throw IO.With("ENOSYS",this.file.path,"FileHandle.readLines")}[Symbol.asyncDispose](){return this.close()}async stat(t){const e=await this.file.stat();if(bM.checkAccess&&!e.hasAccess(YO,this.context))throw IO.With("EACCES",this.file.path,"stat");return t?.bigint?new PM(e):e}async write(t,e,n,i){let s,o,r;if("string"==typeof t){i="number"==typeof e?e:null;const a="string"==typeof n?n:"utf8";o=0,s=NR.Buffer.from(t,a),r=s.length}else s=new Uint8Array(t.buffer,t.byteOffset,t.byteLength),o=e,r=n,i="number"==typeof i?i:null;i??(i=this.file.position);const a=await this.file.write(s,o,r,i);return zR("change",this.file.path),{buffer:s,bytesWritten:a}}async writeFile(t,e={}){const n=wO(e,"utf8","w",420);if(!XM(xM(n.flag)))throw new IO(cO.EINVAL,"Flag passed must allow for writing.");if("string"!=typeof t&&!n.encoding)throw new IO(cO.EINVAL,"Encoding not specified");const i="string"==typeof t?NR.Buffer.from(t,n.encoding):t;await this.file.write(i,0,i.length,0),zR("change",this.file.path)}async close(){await this.file.close(),vR.delete(this.fd)}async writev(t,e){let n=0;for(const i of t)n+=(await this.write(i,0,i.length,e+n)).bytesWritten;return{bytesWritten:n,buffers:t}}async readv(t,e){let n=0;for(const i of t)n+=(await this.read(i,0,i.byteLength,e+n)).bytesRead;return{bytesRead:n,buffers:t}}createReadStream(t){const e=new jA({highWaterMark:t?.highWaterMark||65536,encoding:t.encoding,read:async t=>{try{const n=await this.read(new Uint8Array(t),0,t,this.file.position);e.push(n.bytesRead?n.buffer.slice(0,n.bytesRead):null),this.file.position+=n.bytesRead}catch(t){e.destroy(t)}}});return e.path=this.file.path,e}createWriteStream(t){const e=new qA({highWaterMark:t?.highWaterMark,encoding:t?.encoding,write:async(t,e,n)=>{try{const{bytesWritten:i}=await this.write(t,null,e);n(i==t.length?null:new Error("Failed to write full chunk"))}catch(t){n(t)}}});return e.path=this.file.path,e}}async function JA(t,e){t=vO(t),e=vO(e);const n=xR(t,this),i=xR(e,this);if(bM.checkAccess&&!(await tS.call(this,OO(t))).hasAccess(xO,this))throw IO.With("EACCES",t,"rename");try{if(n.mountPoint==i.mountPoint)return await n.fs.rename(n.path,i.path),zR("rename",t.toString()),void zR("change",e.toString());await aS.call(this,e,await rS(t)),await iS.call(this,t),zR("rename",t.toString())}catch(s){throw XR(s,{[n.path]:t,[i.path]:e})}}async function ZA(t){try{const{fs:e,path:n}=xR(await OS.call(this,t),this);return await e.exists(n)}catch(t){if(t instanceof IO&&"ENOENT"==t.code)return!1;throw t}}async function tS(t,e){t=vO(t);const{fs:n,path:i}=xR(await OS.call(this,t),this);try{const t=await n.stat(i);if(bM.checkAccess&&!t.hasAccess(YO,this))throw IO.With("EACCES",i,"stat");return e?.bigint?new PM(t):t}catch(e){throw XR(e,{[i]:t})}}async function eS(t,e){t=vO(t);const{fs:n,path:i}=xR(t,this);try{const t=await n.stat(i);return e?.bigint?new PM(t):t}catch(e){throw XR(e,{[i]:t})}}async function nS(t,e=0){const n={stack:[],error:void 0,hasError:!1};try{const i=$A(n,await oS.call(this,t,"r+"),!0);await i.truncate(e)}catch(t){n.error=t,n.hasError=!0}finally{const t=zA(n);t&&await t}}async function iS(t){t=vO(t);const{fs:e,path:n}=xR(t,this);try{if(bM.checkAccess&&!(await(yR.getAsync(t)||e.stat(n))).hasAccess(xO,this))throw IO.With("EACCES",n,"unlink");await e.unlink(n),zR("rename",t.toString())}catch(e){throw XR(e,{[n]:t})}}async function sS(t,e,n=420,i){t=vO(t);const s=NO(n,420),o=xM(e);t=i?await OS.call(this,t):t;const{fs:r,path:a}=xR(t,this),l=await r.stat(a).catch((()=>null));if(!l){if(!XM(o)&&!HM(o)||"r+"==o)throw IO.With("ENOENT",t,"_open");const e=await r.stat(OO(a));if(bM.checkAccess&&!e.hasAccess(xO,this))throw IO.With("EACCES",OO(t),"_open");if(!e.isDirectory())throw IO.With("ENOTDIR",OO(t),"_open");return new QA(await r.createFile(a,o,s),this)}if(bM.checkAccess&&!l.hasAccess(UM(o),this))throw IO.With("EACCES",t,"_open");if(WM(o))throw IO.With("EEXIST",t,"_open");const u=new QA(await r.openFile(a,o),this);return GM(o)&&await u.truncate(0),u}async function oS(t,e="r",n=420){return await sS.call(this,t,e,n,!0)}async function rS(t,e){const n={stack:[],error:void 0,hasError:!1};try{const i=wO(e,null,"r",420),s=$A(n,"object"==typeof t&&"fd"in t?t:await oS.call(this,t,i.flag,i.mode),!0);return await s.readFile(i)}catch(t){n.error=t,n.hasError=!0}finally{const t=zA(n);t&&await t}}async function aS(t,e,n){const i={stack:[],error:void 0,hasError:!1};try{const s=wO(n,"utf8","w+",420),o=$A(i,t instanceof QA?t:await oS.call(this,t.toString(),s.flag,s.mode),!0),r=e;if("string"!=typeof r&&!(r instanceof Uint8Array))throw new IO(cO.EINVAL,"Iterables and streams not supported",o.file.path,"writeFile");await o.writeFile(r,s)}catch(t){i.error=t,i.hasError=!0}finally{const t=zA(i);t&&await t}}async function lS(t,e,n){const i={stack:[],error:void 0,hasError:!1};try{const s=wO(n,"utf8","a",420);if(!HM(xM(s.flag)))throw new IO(cO.EINVAL,"Flag passed to appendFile must allow for appending.");if("string"!=typeof e&&!s.encoding)throw new IO(cO.EINVAL,"Encoding not specified");const o="string"==typeof e?NR.Buffer.from(e,s.encoding):new Uint8Array(e.buffer,e.byteOffset,e.byteLength),r=$A(i,"object"==typeof t&&"fd"in t?t:await oS.call(this,t,s.flag,s.mode),!0);await r.appendFile(o,s)}catch(t){i.error=t,i.hasError=!0}finally{const t=zA(i);t&&await t}}async function uS(t){t=await OS.call(this,t);const{fs:e,path:n}=xR(t,this);try{const i=await(yR.getAsync(t)||e.stat(n));if(!i)throw IO.With("ENOENT",t,"rmdir");if(!i.isDirectory())throw IO.With("ENOTDIR",n,"rmdir");if(bM.checkAccess&&!i.hasAccess(xO,this))throw IO.With("EACCES",n,"rmdir");await e.rmdir(n),zR("rename",t.toString())}catch(e){throw XR(e,{[n]:t})}}async function pS(t,e){e="object"==typeof e?e:{mode:e};const n=NO(e?.mode,511);t=await OS.call(this,t);const{fs:i,path:s,root:o}=xR(t,this),r={[s]:t};try{if(!e?.recursive){if(bM.checkAccess&&!(await i.stat(OO(s))).hasAccess(xO,this))throw IO.With("EACCES",OO(s),"mkdir");return await i.mkdir(s,n),void zR("rename",t.toString())}const a=[];for(let e=s,n=t;!await i.exists(e);e=OO(e),n=OO(n))a.unshift(e),r[e]=n;for(const t of a){if(bM.checkAccess&&!(await i.stat(OO(t))).hasAccess(xO,this))throw IO.With("EACCES",OO(t),"mkdir");await i.mkdir(t,n),zR("rename",t)}return 1==o.length?a[0]:a[0]?.slice(o.length)}catch(t){throw XR(t,r)}}async function _S(t,e){e="object"==typeof e?e:{encoding:e},t=await OS.call(this,t);const n=e=>{throw XR(e,{[s]:t})},{fs:i,path:s}=xR(t,this),o=yR.getAsync(t)||i.stat(s).catch(n);yR.setAsync(t,o);const r=await o;if(!r)throw IO.With("ENOENT",t,"readdir");if(bM.checkAccess&&!r.hasAccess(YO,this))throw IO.With("EACCES",t,"readdir");if(!r.isDirectory())throw IO.With("ENOTDIR",t,"readdir");const a=await i.readdir(s).catch(n),l=[];return await Promise.all(a.map((async o=>{let r;if(e?.recursive||e?.withFileTypes){const e=yR.getAsync(gO(t,o))||i.stat(gO(s,o)).catch(n);yR.setAsync(gO(t,o),e),r=await e}if(e?.withFileTypes?l.push(new HA(o,r)):"buffer"==e?.encoding?l.push(NR.Buffer.from(o)):l.push(o),e?.recursive&&r?.isDirectory())for(const n of await _S.call(this,gO(t,o),{...e,_isIndirect:!0}))n instanceof HA?(n.path=gO(o,n.path),l.push(n)):NR.Buffer.isBuffer(n)?l.push(NR.Buffer.from(gO(o,LO(n)))):l.push(gO(o,n))}))),e?._isIndirect||yR.clear(),l}async function dS(t,e){t=vO(t),e=vO(e);const{fs:n,path:i}=xR(t,this),s=xR(e,this);if(n!=s.fs)throw IO.With("EXDEV",e,"link");try{if(bM.checkAccess&&!(await n.stat(OO(t))).hasAccess(YO,this))throw IO.With("EACCES",OO(i),"link");if(bM.checkAccess&&!(await tS.call(this,OO(e))).hasAccess(xO,this))throw IO.With("EACCES",OO(e),"link");if(bM.checkAccess&&!(await n.stat(i)).hasAccess(YO,this))throw IO.With("EACCES",i,"link");return await n.link(i,s.path)}catch(n){throw XR(n,{[s.path]:e,[i]:t})}}async function hS(t,e,n="file"){const i={stack:[],error:void 0,hasError:!1};try{if(!["file","dir","junction"].includes(n))throw new IO(cO.EINVAL,"Invalid symlink type: "+n);if(await ZA.call(this,e))throw IO.With("EEXIST",e.toString(),"symlink");const s=$A(i,await sS.call(this,e,"w+",420,!1),!0);await s.writeFile(t.toString()),await s.file.chmod(lM)}catch(t){i.error=t,i.hasError=!0}finally{const t=zA(i);t&&await t}}async function cS(t,e){const n={stack:[],error:void 0,hasError:!1};try{const i=$A(n,await sS.call(this,vO(t),"r",420,!1),!0),s=await i.readFile(),o="object"==typeof e?e?.encoding:e;return"buffer"==o?s:s.toString(o)}catch(t){n.error=t,n.hasError=!0}finally{const t=zA(n);t&&await t}}async function TS(t,e,n){const i={stack:[],error:void 0,hasError:!1};try{const s=$A(i,await oS.call(this,t,"r+"),!0);await s.chown(e,n)}catch(t){i.error=t,i.hasError=!0}finally{const t=zA(i);t&&await t}}async function IS(t,e,n){const i={stack:[],error:void 0,hasError:!1};try{const s=$A(i,await sS.call(this,t,"r+",420,!1),!0);await s.chown(e,n)}catch(t){i.error=t,i.hasError=!0}finally{const t=zA(i);t&&await t}}async function mS(t,e){const n={stack:[],error:void 0,hasError:!1};try{const i=$A(n,await oS.call(this,t,"r+"),!0);await i.chmod(e)}catch(t){n.error=t,n.hasError=!0}finally{const t=zA(n);t&&await t}}async function ES(t,e){const n={stack:[],error:void 0,hasError:!1};try{const i=$A(n,await sS.call(this,t,"r+",420,!1),!0);await i.chmod(e)}catch(t){n.error=t,n.hasError=!0}finally{const t=zA(n);t&&await t}}async function fS(t,e,n){const i={stack:[],error:void 0,hasError:!1};try{const s=$A(i,await oS.call(this,t,"r+"),!0);await s.utimes(e,n)}catch(t){i.error=t,i.hasError=!0}finally{const t=zA(i);t&&await t}}async function gS(t,e,n){const i={stack:[],error:void 0,hasError:!1};try{const s=$A(i,await sS.call(this,t,"r+",420,!1),!0);await s.utimes(new Date(e),new Date(n))}catch(t){i.error=t,i.hasError=!0}finally{const t=zA(i);t&&await t}}async function OS(t,e){t=vO(t);const n=(this?.root||"")+t;if(DR.hasAsync(n))return DR.getAsync(n);const{base:i,dir:s}=RO(t),o="/"==s?"/":await(DR.getAsync((this?.root||"")+s)||OS.call(this,s)),r=gO(o,i),{fs:a,path:l}=xR(r,this);try{const e=yR.getAsync(r)||a.stat(l);if(yR.setAsync(r,e),!(await e).isSymbolicLink())return DR.set(t,r),r;const i=fO(o,(await cS.call(this,r)).toString()),s=DR.getAsync((this?.root||"")+i)||OS.call(this,i);return DR.setAsync(n,s),await s}catch(e){if("ENOENT"==e.code)return t;throw XR(e,{[l]:r})}}function MS(t,e={}){return{[Symbol.asyncIterator](){const n=new jR(t.toString(),"string"!=typeof e?e:{encoding:e}),i=[];function s(){n.close();for(const t of i)t({value:null,done:!0});return i.length=0,Promise.resolve({value:null,done:!0})}return n.on("change",((t,e)=>{i.shift()?.({value:{eventType:t,filename:e},done:!1})})),{async next(){const{promise:t,resolve:e}=Promise.withResolvers();return i.push(e),t},return:s,throw:s}}}}async function RS(t,e=VO){if(!bM.checkAccess)return;if(!(await tS.call(this,t)).hasAccess(e,this))throw new IO(cO.EACCES)}async function AS(t,e){t=vO(t);const n=await(yR.getAsync(t)||eS.call(this,t).catch((t=>{if("ENOENT"!=t.code||!e?.force)throw t})));if(n){switch(yR.set(t,n),n.mode&rM){case _M:if(e?.recursive)for(const n of await _S.call(this,t,{_isIndirect:!0}))await AS.call(this,gO(t,n),{...e,_isIndirect:!0});await uS.call(this,t);break;case uM:case lM:case pM:case dM:await iS.call(this,t);break;default:throw yR.clear(),new IO(cO.EPERM,"File type not supported",t,"rm")}e?._isIndirect||yR.clear()}}async function SS(t,e){const n="object"==typeof e?e?.encoding:e||"utf8",i="/tmp/"+`${t}${Date.now()}-${Math.random().toString(36).slice(2)}`;return await pS.call(this,i),"buffer"==n?NR.Buffer.from(i):i}async function CS(t,e,n){if(t=vO(t),e=vO(e),n&&n&BO&&await ZA.call(this,e))throw new IO(cO.EEXIST,"Destination file already exists.",e,"copyFile");await aS.call(this,e,await rS.call(this,t)),zR("rename",e.toString())}function LS(t,e){return t=vO(t),Promise.resolve(new WA(t,this))}async function yS(t,e,n){t=vO(t),e=vO(e);const i=await eS.call(this,t);if(n?.errorOnExist&&await ZA.call(this,e))throw new IO(cO.EEXIST,"Destination file or directory already exists.",e,"cp");switch(i.mode&rM){case _M:{if(!n?.recursive)throw new IO(cO.EISDIR,t+" is a directory (not copied)",t,"cp");const[i]=await Promise.all([_S.call(this,t,{withFileTypes:!0}),pS.call(this,e,{recursive:!0})]),s=async i=>{n.filter&&!n.filter(gO(t,i.name),gO(e,i.name))||await yS.call(this,gO(t,i.name),gO(e,i.name),n)};await Promise.all(i.map(s));break}case uM:case lM:await CS.call(this,t,e);break;default:throw new IO(cO.EPERM,"File type not supported",t,"rm")}n?.preserveTimestamps&&await fS.call(this,e,i.atime,i.mtime)}async function DS(t,e){t=vO(t);const{fs:n}=xR(t,this);return Promise.resolve(HR(n,e?.bigint))}const NS=()=>{};function bS(t,e,n=NS){JA.call(this,t,e).then((()=>n())).catch(n)}function vS(t,e=NS){ZA.call(this,t).then(e).catch((()=>e(!1)))}function wS(t,e,n=NS){n="function"==typeof e?e:n,tS.call(this,t,"function"!=typeof e?e:{}).then((t=>n(void 0,t))).catch(n)}function FS(t,e,n=NS){n="function"==typeof e?e:n,eS.call(this,t,"function"!=typeof e?e:{}).then((t=>n(void 0,t))).catch(n)}function PS(t,e=0,n=NS){n="function"==typeof e?e:n;const i="number"==typeof e?e:0;nS.call(this,t,i).then((()=>n())).catch(n)}function kS(t,e=NS){iS.call(this,t).then((()=>e())).catch(e)}function VS(t,e,n,i=NS){const s=NO(n,420);i="function"==typeof n?n:i,oS.call(this,t,e,s).then((t=>i(void 0,t.fd))).catch(i)}function YS(t,e,n=NS){n="function"==typeof e?e:n,rS.call(this,t,"function"==typeof e?null:e).then((t=>n(void 0,t))).catch(n)}function xS(t,e,n,i=NS){i="function"==typeof n?n:i,aS.call(this,t,e,"function"!=typeof n?n:null).then((()=>i(void 0))).catch(i)}function US(t,e,n,i=NS){const s="function"!=typeof n?n:void 0;i="function"==typeof n?n:i,lS.call(this,t,e,s).then((()=>i())).catch(i)}function BS(t,e,n=NS){n="function"==typeof e?e:n,PR(t).stat().then((t=>n(void 0,"object"==typeof e&&e?.bigint?new PM(t):t))).catch(n)}function XS(t,e=NS){const n=PR(t).close();vR.delete(t),n.then((()=>e())).catch(e)}function GS(t,e,n=NS){const i="number"==typeof e?e:0;n="function"==typeof e?e:n;const s=PR(t);if(i<0)throw new IO(cO.EINVAL);s.truncate(i).then((()=>n())).catch(n)}function HS(t,e=NS){PR(t).sync().then((()=>e())).catch(e)}function WS(t,e=NS){PR(t).datasync().then((()=>e())).catch(e)}function KS(t,e,n,i,s,o=NS){let r,a,l,u,p;const _=new QA(t,this);if("string"==typeof e){switch(p="utf8",typeof n){case"function":o=n;break;case"number":u=n,p="string"==typeof i?i:"utf8",o="function"==typeof s?s:o;break;default:return void(o="function"==typeof i?i:"function"==typeof s?s:o)(new IO(cO.EINVAL,"Invalid arguments."))}r=NR.Buffer.from(e),a=0,l=r.length;const t=o;_.write(r,a,l,u).then((({bytesWritten:e})=>t(void 0,e,r.toString(p)))).catch(t)}else{r=NR.Buffer.from(e.buffer),a=n,l=i,u="number"==typeof s?s:null;const t="function"==typeof s?s:o;_.write(r,a,l,u).then((({bytesWritten:e})=>t(void 0,e,r))).catch(t)}}function jS(t,e,n,i,s,o=NS){new QA(t,this).read(e,n,i,s).then((({bytesRead:t,buffer:e})=>o(void 0,t,e))).catch(o)}function qS(t,e,n,i=NS){new QA(t,this).chown(e,n).then((()=>i())).catch(i)}function $S(t,e,n){new QA(t,this).chmod(e).then((()=>n())).catch(n)}function zS(t,e,n,i=NS){new QA(t,this).utimes(e,n).then((()=>i())).catch(i)}function QS(t,e=NS){uS.call(this,t).then((()=>e())).catch(e)}function JS(t,e,n=NS){pS.call(this,t,e).then((()=>n())).catch(n)}function ZS(t,e,n=NS){n="function"==typeof e?e:n;const i="function"!=typeof e?e:{};_S.call(this,t,i).then((t=>n(void 0,t))).catch(n)}function tC(t,e,n=NS){dS.call(this,t,e).then((()=>n())).catch(n)}function eC(t,e,n,i=NS){const s="string"==typeof n?n:"file";i="function"==typeof n?n:i,hS.call(this,t,e,s).then((()=>i())).catch(i)}function nC(t,e,n=NS){n="function"==typeof e?e:n,cS.call(this,t).then((t=>n(void 0,t))).catch(n)}function iC(t,e,n,i=NS){TS.call(this,t,e,n).then((()=>i())).catch(i)}function sC(t,e,n,i=NS){IS.call(this,t,e,n).then((()=>i())).catch(i)}function oC(t,e,n=NS){mS.call(this,t,e).then((()=>n())).catch(n)}function rC(t,e,n=NS){ES.call(this,t,e).then((()=>n())).catch(n)}function aC(t,e,n,i=NS){fS.call(this,t,e,n).then((()=>i())).catch(i)}function lC(t,e,n,i=NS){gS.call(this,t,e,n).then((()=>i())).catch(i)}function uC(t,e,n=NS){n="function"==typeof e?e:n,OS.call(this,t,"function"==typeof e?null:e).then((t=>n(void 0,t))).catch(n)}function pC(t,e,n=NS){const i="number"==typeof e?e:YO;n="function"==typeof e?e:n,RS.call(this,t,i).then((()=>n())).catch(n)}const _C=new Map;function dC(t,e,n){const i=vO(t.toString()),s="function"!=typeof e?e:{};if("function"==typeof e&&(n=e),!n)throw new IO(cO.EINVAL,"No listener specified",t.toString(),"watchFile");if(_C.has(i)){const t=_C.get(i);return void(t&&t.listeners.add(n))}const o=new qR(i,s);o.on("change",((t,e)=>{const n=_C.get(i);if(n)for(const i of n.listeners)i(t,e)})),_C.set(i,{watcher:o,listeners:new Set})}function hC(t,e=NS){const n=vO(t.toString()),i=_C.get(n);i&&(e&&e!==NS?i.listeners.delete(e):i.listeners.clear(),0===i.listeners.size&&(i.watcher.stop(),_C.delete(n)))}function cC(t,e,n){const i=new jR(vO(t),"object"==typeof e?e:{});return n="function"==typeof e?e:n,i.on("change",n||NS),i}function TC(t,e){const n=this;let i;const s=new jA({highWaterMark:(e="object"==typeof e?e:{encoding:e}).highWaterMark||65536,encoding:e.encoding||"utf8",async read(o){try{i||(i=await oS.call(n,t,"r",e?.mode));const r=await i.read(new Uint8Array(o),0,o,i.file.position);s.push(r.bytesRead?r.buffer.slice(0,r.bytesRead):null),i.file.position+=r.bytesRead,r.bytesRead||await i.close()}catch(t){await(i?.close()),s.destroy(t)}},destroy(t,e){i?.close().then((()=>e(t))).catch(NS)}});return s.path=t.toString(),s}function IC(t,e){const n=this;let i;e="object"==typeof e?e:{encoding:e};const s=new qA({highWaterMark:e?.highWaterMark,async write(s,o,r){try{i||(i=await oS.call(n,t,"w",e?.mode||438)),await i.write(s,0,o),r(void 0)}catch(t){await(i?.close()),r(t)}},destroy(t,e){e(t),i?.close().then((()=>e(t))).catch(e)},final(t){i?.close().then((()=>t())).catch(t)}});return s.path=t.toString(),s}function mC(t,e,n=NS){n="function"==typeof e?e:n,AS.call(this,t,"function"==typeof e?void 0:e).then((()=>n(void 0))).catch(n)}function EC(t,e,n=NS){n="function"==typeof e?e:n,SS.call(this,t,"function"!=typeof e?e:null).then((t=>n(void 0,t))).catch(n)}function fC(t,e,n,i=NS){i="function"==typeof n?n:i,CS.call(this,t,e,"function"==typeof n?void 0:n).then((()=>i(void 0))).catch(i)}function gC(t,e,n,i=NS){i="function"==typeof n?n:i,new QA(t,this).readv(e,"function"==typeof n?void 0:n).then((({buffers:t,bytesRead:e})=>i(void 0,e,t))).catch(i)}function OC(t,e,n,i=NS){i="function"==typeof n?n:i,new QA(t,this).writev(e,"function"==typeof n?void 0:n).then((({buffers:t,bytesWritten:e})=>i(void 0,e,t))).catch(i)}function MC(t,e,n=NS){n="function"==typeof e?e:n,LS.call(this,t,"function"==typeof e?void 0:e).then((t=>n(void 0,t))).catch(n)}function RC(t,e,n,i=NS){i="function"==typeof n?n:i,yS.call(this,t,e,"function"==typeof n?void 0:n).then((()=>i(void 0))).catch(i)}function AC(t,e,n=NS){n="function"==typeof e?e:n,DS.call(this,t,"function"==typeof e?void 0:e).then((t=>n(void 0,t))).catch(n)}async function SC(t,e){const n=await oS.call(this,t.toString(),"r"),i=await n.readFile();return await n.close(),new Blob([i],e)}var CC=function(t,e,n){if(null!=e){if("object"!=typeof e&&"function"!=typeof e)throw new TypeError("Object expected.");var i,s;if(n){if(!Symbol.asyncDispose)throw new TypeError("Symbol.asyncDispose is not defined.");i=e[Symbol.asyncDispose]}if(void 0===i){if(!Symbol.dispose)throw new TypeError("Symbol.dispose is not defined.");i=e[Symbol.dispose],n&&(s=i)}if("function"!=typeof i)throw new TypeError("Object not disposable.");s&&(i=function(){try{s.call(this)}catch(t){return Promise.reject(t)}}),t.stack.push({value:e,dispose:i,async:n})}else n&&t.stack.push({async:!0});return e},LC=function(t){return function(e){function n(n){e.error=e.hasError?new t(n,e.error,"An error was suppressed during disposal."):n,e.hasError=!0}return function t(){for(;e.stack.length;){var i=e.stack.pop();try{var s=i.dispose&&i.dispose.call(i.value);if(i.async)return Promise.resolve(s).then(t,(function(e){return n(e),t()}))}catch(t){n(t)}}if(e.hasError)throw e.error}()}}("function"==typeof SuppressedError?SuppressedError:function(t,e,n){var i=new Error(n);return i.name="SuppressedError",i.error=t,i.suppressed=e,i});function yC(t){return class extends t{constructor(){super(...arguments),this._queue=[],this._isInitialized=!1}get _queueRunning(){return!!this._queue.length}queueDone(){return new Promise((t=>{const e=()=>this._queueRunning?setTimeout(e):t();e()}))}async ready(){if(await super.ready(),await this.queueDone(),!this._isInitialized&&!this._disableSync){if(this.checkSync(),await this._sync.ready(),this._sync instanceof OR&&this instanceof OR){const t=this._sync.store.transaction(),e=this.store.transaction(),n=[];for(const i of await e.keys())n.push(e.get(i).then((e=>t.setSync(i,e))));return await Promise.all(n),void(this._isInitialized=!0)}try{await this.crossCopy("/"),this._isInitialized=!0}catch(t){throw this._isInitialized=!1,t}}}checkSync(t,e){if(this._disableSync)throw new IO(cO.ENOTSUP,"Sync caching has been disabled for this async file system",t,e);if(!this._sync)throw new IO(cO.ENOTSUP,"No sync cache is attached to this async file system",t,e)}renameSync(t,e){this.checkSync(t,"rename"),this._sync.renameSync(t,e),this.queue("rename",t,e)}statSync(t){return this.checkSync(t,"stat"),this._sync.statSync(t)}createFileSync(t,e,n){return this.checkSync(t,"createFile"),this._sync.createFileSync(t,e,n),this.queue("createFile",t,e,n),this.openFileSync(t,e)}openFileSync(t,e){this.checkSync(t,"openFile");const n=this._sync.openFileSync(t,e+"+"),i=n.statSync(),s=new Uint8Array(i.size);return n.readSync(s),new jM(this,t,e,i,s)}unlinkSync(t){this.checkSync(t,"unlinkSync"),this._sync.unlinkSync(t),this.queue("unlink",t)}rmdirSync(t){this.checkSync(t,"rmdir"),this._sync.rmdirSync(t),this.queue("rmdir",t)}mkdirSync(t,e){this.checkSync(t,"mkdir"),this._sync.mkdirSync(t,e),this.queue("mkdir",t,e)}readdirSync(t){return this.checkSync(t,"readdir"),this._sync.readdirSync(t)}linkSync(t,e){this.checkSync(t,"link"),this._sync.linkSync(t,e),this.queue("link",t,e)}syncSync(t,e,n){this.checkSync(t,"sync"),this._sync.syncSync(t,e,n),this.queue("sync",t,e,n)}existsSync(t){return this.checkSync(t,"exists"),this._sync.existsSync(t)}async crossCopy(t){this.checkSync(t,"crossCopy");const e=await this.stat(t);if(!e.isDirectory()){const n={stack:[],error:void 0,hasError:!1};try{const i=CC(n,await this.openFile(t,xM("r")),!0),s=CC(n,this._sync.createFileSync(t,xM("w"),e.mode),!1),o=new Uint8Array(e.size);return await i.read(o),void s.writeSync(o,0,e.size)}catch(t){n.error=t,n.hasError=!0}finally{const t=LC(n);t&&await t}}if("/"!==t){const e=await this.stat(t);this._sync.mkdirSync(t,e.mode)}const n=[];for(const e of await this.readdir(t))n.push(this.crossCopy(gO(t,e)));await Promise.all(n)}async _next(){if(!this._queueRunning)return;const[t,...e]=this._queue.shift();await this[t](...e),await this._next()}queue(...t){this._queue.push(t),this._next()}}}new Map;yC(qM);new Map;Map;DC=qM;var DC;var NC=function(t,e,n){if(null!=e){if("object"!=typeof e&&"function"!=typeof e)throw new TypeError("Object expected.");var i,s;if(n){if(!Symbol.asyncDispose)throw new TypeError("Symbol.asyncDispose is not defined.");i=e[Symbol.asyncDispose]}if(void 0===i){if(!Symbol.dispose)throw new TypeError("Symbol.dispose is not defined.");i=e[Symbol.dispose],n&&(s=i)}if("function"!=typeof i)throw new TypeError("Object not disposable.");s&&(i=function(){try{s.call(this)}catch(t){return Promise.reject(t)}}),t.stack.push({value:e,dispose:i,async:n})}else n&&t.stack.push({async:!0});return e},bC=function(t){return function(e){function n(n){e.error=e.hasError?new t(n,e.error,"An error was suppressed during disposal."):n,e.hasError=!0}return function t(){for(;e.stack.length;){var i=e.stack.pop();try{var s=i.dispose&&i.dispose.call(i.value);if(i.async)return Promise.resolve(s).then(t,(function(e){return n(e),t()}))}catch(t){n(t)}}if(e.hasError)throw e.error}()}}("function"==typeof SuppressedError?SuppressedError:function(t,e,n){var i=new Error(n);return i.name="SuppressedError",i.error=t,i.suppressed=e,i});class vC{get isLocked(){return this._isLocked}constructor(t){this.previous=t,this.current=Promise.withResolvers(),this._isLocked=!0}async done(){await(this.previous?.done()),await this.current.promise}unlock(){this.current.resolve(),this._isLocked=!1}[Symbol.dispose](){this.unlock()}}class wC{async ready(){return await this._fs.ready()}metadata(){return this._fs.metadata()}addLock(){const t=new vC(this.currentLock);return this.currentLock=t,t}async lock(t,e){const n=this.currentLock,i=this.addLock(),s=(new Error).stack;return setTimeout((()=>{if(i.isLocked){const n=IO.With("EDEADLK",t,e);throw n.stack+=s?.slice(5),n}}),5e3),await(n?.done()),i}lockSync(t,e){if(this.currentLock?.isLocked)throw IO.With("EBUSY",t,e);return this.addLock()}get isLocked(){return!!this.currentLock?.isLocked}async rename(t,e){const n={stack:[],error:void 0,hasError:!1};try{NC(n,await this.lock(t,"rename"),!1);await this._fs.rename(t,e)}catch(t){n.error=t,n.hasError=!0}finally{bC(n)}}renameSync(t,e){const n={stack:[],error:void 0,hasError:!1};try{NC(n,this.lockSync(t,"rename"),!1);return this._fs.renameSync(t,e)}catch(t){n.error=t,n.hasError=!0}finally{bC(n)}}async stat(t){const e={stack:[],error:void 0,hasError:!1};try{NC(e,await this.lock(t,"stat"),!1);return await this._fs.stat(t)}catch(t){e.error=t,e.hasError=!0}finally{bC(e)}}statSync(t){const e={stack:[],error:void 0,hasError:!1};try{NC(e,this.lockSync(t,"stat"),!1);return this._fs.statSync(t)}catch(t){e.error=t,e.hasError=!0}finally{bC(e)}}async openFile(t,e){const n={stack:[],error:void 0,hasError:!1};try{NC(n,await this.lock(t,"openFile"),!1);const i=await this._fs.openFile(t,e);return i.fs=this,i}catch(t){n.error=t,n.hasError=!0}finally{bC(n)}}openFileSync(t,e){const n={stack:[],error:void 0,hasError:!1};try{NC(n,this.lockSync(t,"openFile"),!1);const i=this._fs.openFileSync(t,e);return i.fs=this,i}catch(t){n.error=t,n.hasError=!0}finally{bC(n)}}async createFile(t,e,n){const i={stack:[],error:void 0,hasError:!1};try{NC(i,await this.lock(t,"createFile"),!1);const s=await this._fs.createFile(t,e,n);return s.fs=this,s}catch(t){i.error=t,i.hasError=!0}finally{bC(i)}}createFileSync(t,e,n){const i={stack:[],error:void 0,hasError:!1};try{NC(i,this.lockSync(t,"createFile"),!1);const s=this._fs.createFileSync(t,e,n);return s.fs=this,s}catch(t){i.error=t,i.hasError=!0}finally{bC(i)}}async unlink(t){const e={stack:[],error:void 0,hasError:!1};try{NC(e,await this.lock(t,"unlink"),!1);await this._fs.unlink(t)}catch(t){e.error=t,e.hasError=!0}finally{bC(e)}}unlinkSync(t){const e={stack:[],error:void 0,hasError:!1};try{NC(e,this.lockSync(t,"unlink"),!1);return this._fs.unlinkSync(t)}catch(t){e.error=t,e.hasError=!0}finally{bC(e)}}async rmdir(t){const e={stack:[],error:void 0,hasError:!1};try{NC(e,await this.lock(t,"rmdir"),!1);await this._fs.rmdir(t)}catch(t){e.error=t,e.hasError=!0}finally{bC(e)}}rmdirSync(t){const e={stack:[],error:void 0,hasError:!1};try{NC(e,this.lockSync(t,"rmdir"),!1);return this._fs.rmdirSync(t)}catch(t){e.error=t,e.hasError=!0}finally{bC(e)}}async mkdir(t,e){const n={stack:[],error:void 0,hasError:!1};try{NC(n,await this.lock(t,"mkdir"),!1);await this._fs.mkdir(t,e)}catch(t){n.error=t,n.hasError=!0}finally{bC(n)}}mkdirSync(t,e){const n={stack:[],error:void 0,hasError:!1};try{NC(n,this.lockSync(t,"mkdir"),!1);return this._fs.mkdirSync(t,e)}catch(t){n.error=t,n.hasError=!0}finally{bC(n)}}async readdir(t){const e={stack:[],error:void 0,hasError:!1};try{NC(e,await this.lock(t,"readdir"),!1);return await this._fs.readdir(t)}catch(t){e.error=t,e.hasError=!0}finally{bC(e)}}readdirSync(t){const e={stack:[],error:void 0,hasError:!1};try{NC(e,this.lockSync(t,"readdir"),!1);return this._fs.readdirSync(t)}catch(t){e.error=t,e.hasError=!0}finally{bC(e)}}async exists(t){const e={stack:[],error:void 0,hasError:!1};try{NC(e,await this.lock(t,"exists"),!1);return await this._fs.exists(t)}catch(t){e.error=t,e.hasError=!0}finally{bC(e)}}existsSync(t){const e={stack:[],error:void 0,hasError:!1};try{NC(e,this.lockSync(t,"exists"),!1);return this._fs.existsSync(t)}catch(t){e.error=t,e.hasError=!0}finally{bC(e)}}async link(t,e){const n={stack:[],error:void 0,hasError:!1};try{NC(n,await this.lock(t,"link"),!1);await this._fs.link(t,e)}catch(t){n.error=t,n.hasError=!0}finally{bC(n)}}linkSync(t,e){const n={stack:[],error:void 0,hasError:!1};try{NC(n,this.lockSync(t,"link"),!1);return this._fs.linkSync(t,e)}catch(t){n.error=t,n.hasError=!0}finally{bC(n)}}async sync(t,e,n){const i={stack:[],error:void 0,hasError:!1};try{NC(i,await this.lock(t,"sync"),!1);await this._fs.sync(t,e,n)}catch(t){i.error=t,i.hasError=!0}finally{bC(i)}}syncSync(t,e,n){const i={stack:[],error:void 0,hasError:!1};try{NC(i,this.lockSync(t,"sync"),!1);return this._fs.syncSync(t,e,n)}catch(t){i.error=t,i.hasError=!0}finally{bC(i)}}}var FC=function(t,e,n){if(null!=e){if("object"!=typeof e&&"function"!=typeof e)throw new TypeError("Object expected.");var i,s;if(n){if(!Symbol.asyncDispose)throw new TypeError("Symbol.asyncDispose is not defined.");i=e[Symbol.asyncDispose]}if(void 0===i){if(!Symbol.dispose)throw new TypeError("Symbol.dispose is not defined.");i=e[Symbol.dispose],n&&(s=i)}if("function"!=typeof i)throw new TypeError("Object not disposable.");s&&(i=function(){try{s.call(this)}catch(t){return Promise.reject(t)}}),t.stack.push({value:e,dispose:i,async:n})}else n&&t.stack.push({async:!0});return e},PC=function(t){return function(e){function n(n){e.error=e.hasError?new t(n,e.error,"An error was suppressed during disposal."):n,e.hasError=!0}return function t(){for(;e.stack.length;){var i=e.stack.pop();try{var s=i.dispose&&i.dispose.call(i.value);if(i.async)return Promise.resolve(s).then(t,(function(e){return n(e),t()}))}catch(t){n(t)}}if(e.hasError)throw e.error}()}}("function"==typeof SuppressedError?SuppressedError:function(t,e,n){var i=new Error(n);return i.name="SuppressedError",i.error=t,i.suppressed=e,i});const kC="/.deleted";class VC extends qM{async ready(){await this.readable.ready(),await this.writable.ready(),await this._ready}constructor({writable:t,readable:e}){if(super(),this._isInitialized=!1,this._deletedFiles=new Set,this._deleteLog="",this._deleteLogUpdatePending=!1,this._deleteLogUpdateNeeded=!1,this.writable=t,this.readable=e,this.writable.metadata().readonly)throw new IO(cO.EINVAL,"Writable file system must be writable.");this._ready=this._initialize()}metadata(){return{...super.metadata(),name:YC.name}}async sync(t,e,n){await this.copyForWrite(t),await this.writable.exists(t)||await this.writable.createFile(t,"w",420),await this.writable.sync(t,e,n)}syncSync(t,e,n){this.copyForWriteSync(t),this.writable.syncSync(t,e,n)}async _initialize(){if(!this._isInitialized){try{const t=await this.writable.openFile(kC,xM("r")),{size:e}=await t.stat(),{buffer:n}=await t.read(new Uint8Array(e));this._deleteLog=LO(n)}catch(t){if(t.errno!==cO.ENOENT)throw t}this._isInitialized=!0,this._reparseDeletionLog()}}getDeletionLog(){return this._deleteLog}async restoreDeletionLog(t){this._deleteLog=t,this._reparseDeletionLog(),await this.updateLog("")}async rename(t,e){this.checkInitialized(),this.checkPath(t),this.checkPath(e),await this.copyForWrite(t);try{await this.writable.rename(t,e)}catch{if(this._deletedFiles.has(t))throw IO.With("ENOENT",t,"rename")}}renameSync(t,e){this.checkInitialized(),this.checkPath(t),this.checkPath(e),this.copyForWriteSync(t);try{this.writable.renameSync(t,e)}catch{if(this._deletedFiles.has(t))throw IO.With("ENOENT",t,"rename")}}async stat(t){this.checkInitialized();try{return await this.writable.stat(t)}catch{if(this._deletedFiles.has(t))throw IO.With("ENOENT",t,"stat");const e=await this.readable.stat(t);return e.mode|=146,e}}statSync(t){this.checkInitialized();try{return this.writable.statSync(t)}catch{if(this._deletedFiles.has(t))throw IO.With("ENOENT",t,"stat");const e=this.readable.statSync(t);return e.mode|=146,e}}async openFile(t,e){if(await this.writable.exists(t))return this.writable.openFile(t,e);const n=await this.readable.openFile(t,xM("r")),i=await n.stat(),{buffer:s}=await n.read(new Uint8Array(i.size));return new jM(this,t,e,i,s)}openFileSync(t,e){if(this.writable.existsSync(t))return this.writable.openFileSync(t,e);const n=this.readable.openFileSync(t,xM("r")),i=n.statSync(),s=new Uint8Array(i.size);return n.readSync(s),new jM(this,t,e,i,s)}async createFile(t,e,n){return this.checkInitialized(),await this.writable.createFile(t,e,n),this.openFile(t,e)}createFileSync(t,e,n){return this.checkInitialized(),this.writable.createFileSync(t,e,n),this.openFileSync(t,e)}async link(t,e){this.checkInitialized(),await this.copyForWrite(t),await this.writable.link(t,e)}linkSync(t,e){this.checkInitialized(),this.copyForWriteSync(t),this.writable.linkSync(t,e)}async unlink(t){if(this.checkInitialized(),this.checkPath(t),!await this.exists(t))throw IO.With("ENOENT",t,"unlink");await this.writable.exists(t)&&await this.writable.unlink(t),await this.exists(t)&&await this.deletePath(t)}unlinkSync(t){if(this.checkInitialized(),this.checkPath(t),!this.existsSync(t))throw IO.With("ENOENT",t,"unlink");this.writable.existsSync(t)&&this.writable.unlinkSync(t),this.existsSync(t)&&this.deletePath(t)}async rmdir(t){if(this.checkInitialized(),!await this.exists(t))throw IO.With("ENOENT",t,"rmdir");if(await this.writable.exists(t)&&await this.writable.rmdir(t),await this.exists(t)){if((await this.readdir(t)).length)throw IO.With("ENOTEMPTY",t,"rmdir");await this.deletePath(t)}}rmdirSync(t){if(this.checkInitialized(),!this.existsSync(t))throw IO.With("ENOENT",t,"rmdir");if(this.writable.existsSync(t)&&this.writable.rmdirSync(t),this.existsSync(t)){if(this.readdirSync(t).length)throw IO.With("ENOTEMPTY",t,"rmdir");this.deletePath(t)}}async mkdir(t,e){if(this.checkInitialized(),await this.exists(t))throw IO.With("EEXIST",t,"mkdir");await this.createParentDirectories(t),await this.writable.mkdir(t,e)}mkdirSync(t,e){if(this.checkInitialized(),this.existsSync(t))throw IO.With("EEXIST",t,"mkdir");this.createParentDirectoriesSync(t),this.writable.mkdirSync(t,e)}async readdir(t){this.checkInitialized();const e=[];try{e.push(...await this.writable.readdir(t))}catch{}try{e.push(...(await this.readable.readdir(t)).filter((e=>!this._deletedFiles.has(`${t}/${e}`))))}catch{}const n={};return e.filter((t=>{const e=!n[t];return n[t]=!0,e}))}readdirSync(t){this.checkInitialized();let e=[];try{e=e.concat(this.writable.readdirSync(t))}catch{}try{e=e.concat(this.readable.readdirSync(t).filter((e=>!this._deletedFiles.has(`${t}/${e}`))))}catch{}const n={};return e.filter((t=>{const e=!n[t];return n[t]=!0,e}))}async deletePath(t){this._deletedFiles.add(t),await this.updateLog(`d${t}\n`)}async updateLog(t){if(this._deleteLog+=t,this._deleteLogUpdatePending)return void(this._deleteLogUpdateNeeded=!0);this._deleteLogUpdatePending=!0;const e=await this.writable.openFile(kC,xM("w"));try{await e.write(SO(this._deleteLog)),this._deleteLogUpdateNeeded&&(this._deleteLogUpdateNeeded=!1,await this.updateLog(""))}catch(t){this._deleteLogError=t}finally{this._deleteLogUpdatePending=!1}}_reparseDeletionLog(){this._deletedFiles.clear();for(const t of this._deleteLog.split("\n"))t.startsWith("d")&&this._deletedFiles.add(t.slice(1))}checkInitialized(){if(!this._isInitialized)throw new IO(cO.EPERM,"OverlayFS is not initialized. Please initialize OverlayFS using its initialize() method before using it.");if(!this._deleteLogError)return;const t=this._deleteLogError;throw delete this._deleteLogError,t}checkPath(t){if(t==kC)throw IO.With("EPERM",t,"checkPath")}createParentDirectoriesSync(t){let e=OO(t);const n=[];for(;!this.writable.existsSync(e);)n.push(e),e=OO(e);for(const t of n.reverse())this.writable.mkdirSync(t,this.statSync(t).mode)}async createParentDirectories(t){let e=OO(t);const n=[];for(;!await this.writable.exists(e);)n.push(e),e=OO(e);for(const t of n.reverse()){const e=await this.stat(t);await this.writable.mkdir(t,e.mode)}}copyForWriteSync(t){if(!this.existsSync(t))throw IO.With("ENOENT",t,"copyForWrite");this.writable.existsSync(OO(t))||this.createParentDirectoriesSync(t),this.writable.existsSync(t)||this.copyToWritableSync(t)}async copyForWrite(t){if(!await this.exists(t))throw IO.With("ENOENT",t,"copyForWrite");if(await this.writable.exists(OO(t))||await this.createParentDirectories(t),!await this.writable.exists(t))return this.copyToWritable(t)}copyToWritableSync(t){const e={stack:[],error:void 0,hasError:!1};try{const n=this.statSync(t);if(n.isDirectory())return void this.writable.mkdirSync(t,n.mode);const i=new Uint8Array(n.size);FC(e,this.readable.openFileSync(t,"r"),!1).readSync(i);FC(e,this.writable.createFileSync(t,"w",146|n.mode),!1).writeSync(i)}catch(t){e.error=t,e.hasError=!0}finally{PC(e)}}async copyToWritable(t){const e={stack:[],error:void 0,hasError:!1};try{const n=await this.stat(t);if(n.isDirectory())return void await this.writable.mkdir(t,n.mode);const i=new Uint8Array(n.size),s=FC(e,await this.readable.openFile(t,"r"),!0);await s.read(i);const o=FC(e,await this.writable.createFile(t,"w",146|n.mode),!0);await o.write(i)}catch(t){e.error=t,e.hasError=!0}finally{const t=PC(e);t&&await t}}}class YC extends(function(t){return class extends wC{constructor(...e){super(),this._fs=new t(...e)}}}(VC)){}function xC(t,e,n){if(t instanceof IO)return t;const i=t instanceof DOMException?cO[function(t){switch(t.name){case"IndexSizeError":case"HierarchyRequestError":case"InvalidCharacterError":case"InvalidStateError":case"SyntaxError":case"NamespaceError":case"TypeMismatchError":case"ConstraintError":case"VersionError":case"URLMismatchError":case"InvalidNodeTypeError":return"EINVAL";case"WrongDocumentError":return"EXDEV";case"NoModificationAllowedError":case"InvalidModificationError":case"InvalidAccessError":case"SecurityError":case"NotAllowedError":return"EACCES";case"NotFoundError":return"ENOENT";case"NotSupportedError":return"ENOTSUP";case"InUseAttributeError":return"EBUSY";case"NetworkError":return"ENETDOWN";case"AbortError":return"EINTR";case"QuotaExceededError":return"ENOSPC";case"TimeoutError":return"ETIMEDOUT";case"ReadOnlyError":return"EROFS";default:return"EIO"}}(t)]:cO.EIO,s=new IO(i,t.message,e,n);return s.stack=t.stack,s.cause=t.cause,s}globalThis.__zenfs__=st;class UC extends(yC(qM)){constructor(t){super(),this._handles=new Map,this._sync=CR.create({name:"accessfs-cache"}),this._handles.set("/",t)}metadata(){return{...super.metadata(),name:"WebAccess",noResizableBuffers:!0}}async sync(t,e){await this.writeFile(t,e)}async rename(t,e){const n=await this.getHandle(t);if(n instanceof FileSystemDirectoryHandle){const n=await this.readdir(t);if(await this.mkdir(e),!n.length)return void await this.unlink(t);for(const i of n)await this.rename(gO(t,i),gO(e,i)),await this.unlink(t);return}if(!(n instanceof FileSystemFileHandle))throw new IO(cO.ENOTSUP,"Not a file or directory handle",t,"rename");const i=await n.getFile().catch((e=>{throw xC(e,t,"rename")})),s=await this.getHandle(OO(e));if(!(s instanceof FileSystemDirectoryHandle))return;const o=await s.getFileHandle(MO(e),{create:!0}).catch((t=>{throw xC(t,e,"rename")})),r=await o.createWritable();await r.write(await i.arrayBuffer()),await r.close(),await this.unlink(t)}async writeFile(t,e){if(e.buffer.resizable)throw new IO(cO.EINVAL,"Resizable buffers can not be written",t,"write");const n=await this.getHandle(OO(t));if(!(n instanceof FileSystemDirectoryHandle))return;const i=await n.getFileHandle(MO(t),{create:!0}),s=await i.createWritable();await s.write(e),await s.close()}async createFile(t,e){return await this.writeFile(t,new Uint8Array),this.openFile(t,e)}async stat(t){const e=await this.getHandle(t);if(!e)throw IO.With("ENOENT",t,"stat");if(e instanceof FileSystemDirectoryHandle)return new FM({mode:511|_M,size:4096});if(e instanceof FileSystemFileHandle){const{lastModified:t,size:n}=await e.getFile();return new FM({mode:511|uM,size:n,mtimeMs:t})}throw new IO(cO.EBADE,"Handle is not a directory or file",t,"stat")}async openFile(t,e){const n=await this.getHandle(t);if(!(n instanceof FileSystemFileHandle))throw IO.With("EISDIR",t,"openFile");const i=await n.getFile().catch((e=>{throw xC(e,t,"openFile")})),s=new Uint8Array(await i.arrayBuffer()),o=new FM({mode:511|uM,size:i.size,mtimeMs:i.lastModified});return new jM(this,t,e,o,s)}async unlink(t){const e=await this.getHandle(OO(t));if(!(e instanceof FileSystemDirectoryHandle))throw IO.With("ENOTDIR",OO(t),"unlink");await e.removeEntry(MO(t),{recursive:!0}).catch((e=>{throw xC(e,t,"unlink")}))}async link(t){}async rmdir(t){return this.unlink(t)}async mkdir(t){if(await this.getHandle(t).catch((t=>{if("ENOENT"!=t.code)throw t})))throw IO.With("EEXIST",t,"mkdir");const e=await this.getHandle(OO(t));if(!(e instanceof FileSystemDirectoryHandle))throw IO.With("ENOTDIR",t,"mkdir");await e.getDirectoryHandle(MO(t),{create:!0})}async readdir(t){const e=await this.getHandle(t);if(!(e instanceof FileSystemDirectoryHandle))throw IO.With("ENOTDIR",t,"readdir");const n=[];for await(const t of e.keys())n.push(t);return n}async getHandle(t){if(this._handles.has(t))return this._handles.get(t);let e="/";for(const n of t.split("/").slice(1)){const t=this._handles.get(e);if(!(t instanceof FileSystemDirectoryHandle))throw IO.With("ENOTDIR",e,"getHandle");e=gO(e,n);const i=await t.getDirectoryHandle(n).catch((i=>{switch(i.name){case"TypeMismatchError":return t.getFileHandle(n).catch((t=>{}));case"TypeError":throw new IO(cO.ENOENT,i.message,e,"getHandle");default:throw xC(i,e,"getHandle")}}));i&&this._handles.set(e,i)}return this._handles.get(t)}}function BC(t){return new Promise(((e,n)=>{t.oncomplete=t.onsuccess=()=>e(t.result),t.onabort=t.onerror=()=>n(t.error)}))}let XC;function GC(){return XC||(XC=function(t,e){const n=indexedDB.open(t);n.onupgradeneeded=()=>n.result.createObjectStore(e);const i=BC(n);return(t,n)=>i.then((i=>n(i.transaction(e,t).objectStore(e))))}("keyval-store","keyval")),XC}class HC extends UC{constructor(t){super(t)}async readFile(t){const e=await this.getHandle(t);if(e instanceof window.FileSystemFileHandle){const t=await e.getFile();return await t.text()}return""}}class WC extends rt.FS{#t=null;constructor(){super()}async showDirectoryPicker(){const t=await window.showDirectoryPicker({mode:"readwrite"});if("granted"!==await t.requestPermission({mode:"readwrite"}))throw new Error("readwrite access to directory not granted");return await this.setFSCache(t),this.#t=new HC(t),t}async loadFS(){let t=await this.getFSCache();if(!t)return null;if("granted"!==await t.requestPermission({mode:"readwrite"}))throw new Error("readwrite access to directory not granted");return this.#t=new HC(t),t}async getFSCache(){return function(t,e=GC()){return e("readonly",(e=>BC(e.get(t))))}("mixly-pyodide-fs")}async setFSCache(t){await function(t,e,n=GC()){return n("readwrite",(n=>(n.put(e,t),BC(n.transaction))))}("mixly-pyodide-fs",t)}async createFile(t){return this.#t.createFile(t,"")}async readFile(t){return this.#t.readFile(t)}async writeFile(t,e){return this.#t.writeFile(t,e,"utf8")}async isFile(t){const e=await this.#t.stat(t);return!(!e||33279!==e.mode)}async renameFile(t,e){return await this.#t.rename(t,e)}async moveFile(t,e){return this.renameFile(t,e)}async deleteFile(t){return this.#t.unlink(t)}async createDirectory(t){return this.#t.mkdir(t,511)}async readDirectory(t){return await this.#t.readdir(t)}async isDirectory(t){const e=await this.#t.stat(t);return!(!e||16895!==e.mode)}async isDirectoryEmpty(t){const e=await this.readDirectory(t);return!e?.length}async renameDirectory(t,e){return this.#t.rename(t,e)}async moveDirectory(t,e){return this.#t.rename(t,e)}async deleteDirectory(t){return this.#t.rmdir(t)}}class KC extends rt.FileTree{constructor(){super(new WC)}async readFolder(t){let e=[];try{const n=this.getFS();if(!await n.isDirectory(t))return e;const i=await n.readDirectory(t);for(let s of i){const i=aO.join(t,s);if(await n.isDirectory(i)){const t=await n.isDirectoryEmpty(i);e.push({type:"folder",id:i,children:!t,title:`/${this.getRootFolderName()}${i}`})}else e.push({type:"file",id:i,children:!1,title:`/${this.getRootFolderName()}${i}`})}}catch(t){rt.Debug.error(t)}return e}}class jC extends rt.PageBase{static{rt.HTMLTemplate.add("html/statusbar/statusbar-filesystem.html",new rt.HTMLTemplate('\r\n\r\n \r\n \r\n')),rt.HTMLTemplate.add("html/statusbar/statusbar-filesystem-open-fs.html",new rt.HTMLTemplate('\r\n\r\n {{ d.msg.loadFS }}\r\n')),rt.HTMLTemplate.add("html/statusbar/statusbar-filesystem-editor-empty.html",new rt.HTMLTemplate('\r\n\r\n \r\n')),this.init=function(){rt.StatusBarsManager.typesRegistry.register(["file-system"],jC);const t=rt.Workspace.getMain().getStatusBarsManager();return t.add("file-system","file-system",ot.Msg.PYTHON_PYODIDE_FILE_SYSTEM),t.changeTo("output"),t.get("file-system")}}#e=null;#n=null;#i=null;#s=null;#o=null;#r=null;#a=null;#l=null;#u=!1;#p=!1;#_=!1;#d=null;constructor(){super();const t=uO()(rt.HTMLTemplate.get("html/statusbar/statusbar-filesystem.html").render());this.setContent(t),this.#a=new KC,this.#n=t.children(".file-tree"),this.#s=uO()(rt.HTMLTemplate.get("html/statusbar/statusbar-filesystem-open-fs.html").render({msg:{loadFS:ot.Msg.PYTHON_PYODIDE_LOAD_FILE_SYSTEM}})),this.#n.append(this.#s),this.#r=new rt.StatusBar,this.#i=t.children(".editor"),this.#o=uO()(rt.HTMLTemplate.get("html/statusbar/statusbar-filesystem-editor-empty.html").render()),this.#i.append(this.#o)}#h(){this.#l=new rt.DragV(this.getContent()[0],{min:"150px",startSize:"15%",full:[!1,!1]}),this.#l.bind("sizeChanged",(()=>{this.resize()})),this.#s.children("button").click((()=>{this.selectFS().catch(rt.Debug.error)})),this.#a.bind("beforeSelectLeaf",(t=>{const e=t[0].id,n=this.#r.getFileMode(aO.extname(e));return n?(this.#r.setMode(n),!0):(hO.layer.msg(rt.Msg.Lang["statusbar.ampy.cannotEdit"],{time:1e3}),!1)})),this.#a.bind("afterSelectLeaf",(async t=>{const e=t[0].id;this.#a.showProgress();const n=this.#a.getFS();try{const t=await n.readFile(e);this.showEditor(),this.#r.setValue(t),this.#r.scrollToTop(),this.#r.focus(),this.setStatus(!1)}catch(t){rt.Debug.error(t),this.hideEditor(),this.#a.deselectAll()}this.#a.hideProgress()})),this.#a.bind("afterCreateNode",(t=>{this.#a.refreshFolder(t)})),this.#a.bind("afterDeleteNode",(t=>{this.#a.refreshFolder(t)})),this.#a.bind("afterRenameNode",(t=>{this.#a.refreshFolder(t)})),this.#a.bind("afterRefreshNode",(()=>{this.#a.getSelectedNodeId()||this.hideEditor()}));const t=this.#a.getContextMenu().getItem("menu");t.add({weight:7,type:"copy_path",data:{isHtmlName:!0,name:rt.ContextMenu.getItem(rt.Msg.Lang["fileTree.copyPath"],""),callback:(t,{$trigger:e})=>{let n=null;n="root"===e.attr("type")?this.#a.getRootFolderTitle():e.attr("title"),navigator.clipboard.writeText(n).catch(rt.Debug.error)}}}),t.add({weight:14,type:"sep5",preconditionFn:t=>{const e=this.#a.getSelectedNodeId();let n=t.attr("type"),i=t.attr("id");return"file"!==n||e===i},data:"---------"}),t.add({weight:15,type:"refresh",preconditionFn:t=>{const e=this.#a.getSelectedNodeId();let n=t.attr("type"),i=t.attr("id");return"file"!==n||e===i},data:{isHtmlName:!0,name:rt.ContextMenu.getItem(rt.Msg.Lang["statusbar.ampy.refresh"],""),callback:(t,{$trigger:e})=>{let n=e.attr("type");if("root"===n)this.#a.openRootFolder(),this.#a.refreshFolder("/");else if("folder"===n){let t=e.attr("id");this.#a.openNode(t),this.#a.refreshFolder(t)}else{const t=this.#a.getSelectedNodes();this.#a.runEvent("afterSelectLeaf",t)}}}}),t.add({weight:16,type:"sep6",preconditionFn:t=>{let e=t.attr("type");return["root"].includes(e)},data:"---------"}),t.add({weight:17,type:"exit",preconditionFn:t=>{let e=t.attr("type");return["root"].includes(e)},data:{isHtmlName:!0,name:rt.ContextMenu.getItem(rt.Msg.Lang["statusbar.ampy.exit"],""),callback:()=>{this.closeFS()}}}),t.remove("copy"),t.remove("cut"),t.remove("paste"),t.remove("sep2");const e=this.#r.getContextMenu().getItem("code");e.empty(),e.add({weight:0,type:"cut",data:{isHtmlName:!0,name:rt.ContextMenu.getItem(rt.Msg.Lang["editor.contextMenu.cut"],"Ctrl+X"),callback:()=>this.#r.cut()}}),e.add({weight:1,type:"copy",data:{isHtmlName:!0,name:rt.ContextMenu.getItem(rt.Msg.Lang["editor.contextMenu.copy"],"Ctrl+C"),callback:()=>this.#r.copy()}}),e.add({weight:2,type:"paste",data:{isHtmlName:!0,name:rt.ContextMenu.getItem(rt.Msg.Lang["editor.contextMenu.paste"],"Ctrl+V"),callback:()=>this.#r.paste()}}),e.add({weight:3,type:"sep1",data:"---------"}),e.add({weight:4,type:"togglecomment",data:{isHtmlName:!0,name:rt.ContextMenu.getItem(rt.Msg.Lang["editor.contextMenu.togglecomment"],"Ctrl+/"),callback:()=>this.#r.commentLine()}}),e.add({weight:6,type:"sep2",preconditionFn:()=>this.#_,data:"---------"}),e.add({weight:7,type:"save",preconditionFn:()=>this.#_,data:{isHtmlName:!0,name:rt.ContextMenu.getItem(rt.Msg.Lang["file.save"],"Ctrl+S"),callback:async()=>{await this.put()}}});const{commands:n}=this.#r.getEditor();n.addCommand({name:"save",bindKey:"Ctrl-S",exec:async()=>{this.#_&&await this.put()}})}async put(){this.#a.showProgress();const t=this.#a.getSelectedNodeId(),e=this.#a.getFS(),[n]=await e.writeFile(t,this.#r.getValue());this.#a.hideProgress(),n||this.setStatus(!1)}showFileTree(){this.#u||(this.#s.detach(),this.#n.empty(),this.#n.append(this.#a.getContent()),this.#u=!0)}hideFileTree(){this.#u&&(this.#a.getContent().detach(),this.#n.empty(),this.#n.append(this.#s),this.#u=!1)}showEditor(){this.#p||(this.#o.detach(),this.#i.empty(),this.#i.append(this.#r.getContent()),this.#p=!0)}hideEditor(){this.#p&&(this.#r.getContent().detach(),this.#i.empty(),this.#i.append(this.#o),this.#p=!1,this.setStatus(!1))}getDrag(){return this.#l}init(){super.init(),this.hideCloseBtn(),this.#r.init(),this.#h();const t=this.#r.getEditor();t.setReadOnly(!1),t.renderer.setShowGutter(!0),t.setOptions({enableBasicAutocompletion:!0,enableSnippets:!0,enableLiveAutocompletion:!0,newLineMode:"unix"}),t.on("change",(()=>{this.setStatus(!0)})),this.loadFS().catch(rt.Debug.error)}async loadFS(){const t=this.#a.getFS(),e=await t.loadFS();await this.openFS(e)}async selectFS(){const t=this.#a.getFS(),e=await t.showDirectoryPicker();await this.openFS(e)}async openFS(t){if(!t?.name)return;const e="/"+t.name;this.#a.setFolderPath("/"),this.#a.setRootFolderTitle(e),this.#a.setRootFolderName(t.name),this.#a.openRootFolder(),this.showFileTree(),this.#d=await window.pyodide.mountNativeFS(e,t)}closeFS(){const t=this.#a.getRootFolderTitle();if(Object.keys(window.pyodide.FS.root.contents).includes(aO.basename(t))){const e=window.pyodide.FS.lookupPath(t,{follow_mount:!1});window.pyodide.FS.isMountpoint(e.node)&&window.pyodide.FS.unmount(t)}this.#a.getFS().setFSCache(null),this.#a.deselectAll(),this.hideFileTree(),this.hideEditor(),this.setStatus(!1)}onMounted(){super.onMounted(),this.#r.onMounted(),this.#a.onMounted()}onUnmounted(){super.onUnmounted(),this.#r.onUnmounted(),this.#a.onUnmounted()}resize(){super.resize(),this.#r.resize(),this.#a.resize()}setStatus(t){this.#_!==t&&(this.#_=t)}getNativeFS(){return this.#d}dispose(){this.#r.dispose(),this.#r=null,this.#a.dispose(),this.#a=null,super.dispose()}}class qC{static{rt.HTMLTemplate.add("html/statusbar/loader.html",new rt.HTMLTemplate('\r\n\r\n \r\n {{d.msg.loading}}\r\n')),this.pythonShell=null,this.kernelLoaded=!1,this.$loader=uO()(rt.HTMLTemplate.get("html/statusbar/loader.html").render({msg:{loading:ot.Msg.PYTHON_PYODIDE_LOADING}})),this.statusBarImage=null,this.statusBarFileSystem=null,this.init=async function(){rt.app.getFooterBar().getContent().after(this.$loader);const t=aO.relative(rt.Env.indexDirPath,rt.Env.boardDirPath),e=new _O({rootPath:aO.join(t,"deps"),language:"python3"}),n=await e.kernelAvailable();n&&(await n.init(),await n.loaded(),this.loader=e,this.kernel=n,this.statusBarImage=dO.init(),this.statusBarFileSystem=jC.init(),this.pythonShell=new qC,this.pyodide=window.pyodide,this.interruptBuffer=new Uint8Array(new ArrayBuffer(1)),this.pyodide.setInterruptBuffer(this.interruptBuffer),this.kernelLoaded=!0,this.$loader.remove(),this.$loader=null)},this.run=async function(){if(!this.kernelLoaded)return;const t=rt.Workspace.getMain().getEditorsManager().getActive().getCode();return this.pythonShell.run(t)},this.stop=async function(){if(this.kernelLoaded)return this.pythonShell.stop()}}#c=null;#T=null;#I=null;#m={row:0,column:0};#E="";#f=null;#g=null;#O=!1;#M=!1;#R=null;#A=()=>this.#S();#C=[{name:"REPL-Enter",bindKey:"Enter",exec:t=>{if(t.getSession().selection.getCursor().row===this.#m.row){const t=this.#c.getEndPos();let e=this.#c.getValueRange(this.#m,t);e=e.replace(this.#E,""),this.#f?.(e),this.#f=null,this.#g=null,this.#c.addValue("\n"),this.#L()}return!1}},{name:"REPL-ChangeEditor",bindKey:"Delete|Ctrl-X|Backspace",exec:t=>{const e=t.getSession().selection.getCursor();return e.row{this.#M=!1,this.#c.addValue(`\n==${rt.Msg.Lang["shell.finish"]}==`),this.syncfs(!1).catch(rt.Debug.error)})),this.#R.addEventListener("eval.output",(t=>{this.#c.addValue(t.content)})),this.#R.addEventListener("eval.error",(()=>{this.#M=!1,this.#c.addValue(`\n==${rt.Msg.Lang["shell.finish"]}==`)})),this.#R.addEventListener("eval.input",(t=>{const e=String(t?.content?.prompt);this.#c.addValue(e),this.#E=e,this.#f=t.resolve,this.#g=t.reject,this.#y()})),this.#R.addEventListener("eval.display",(t=>{this.#I.changeTo("images"),this.#T.display(t)}))}#S(){const t=this.#c.getEditor(),e=t.getSession().selection.getCursor();t.setReadOnly(e.row{window.pyodide.FS.syncfs(t,e)}))}sleep(t){return new Promise((e=>setTimeout(e,t)))}}const $C={init:async function(){const t=rt.app.getNav();t.register({icon:"icon-play-circled",title:"",id:"python-run-btn",displayText:ot.Msg.MSG.run,preconditionFn:()=>!0,callback:()=>{qC.run().catch(rt.Debug.error)},scopeType:rt.Nav.Scope.LEFT,weight:4}),t.register({icon:"icon-cancel",title:"",id:"python-stop-btn",displayText:ot.Msg.MSG.stop,preconditionFn:()=>!0,callback:()=>{qC.stop().catch(rt.Debug.error)},scopeType:rt.Nav.Scope.LEFT,weight:5}),await qC.init()}};$C.init(),Object.assign(ot.Variables,lt),Object.assign(ot.Procedures,Bi),ot.Python=uu,ot.generator=uu,rt.Profile.default={},Object.assign(ot.Blocks,t,e,n,i,s,o,r,a,l,u,p,_,d,C,L,y,D,N,b,v,w,F,P,k,V,Y,x,U),Object.assign(ot.Python.forBlock,h,c,T,I,m,E,f,g,O,M,R,A,S,B,X,G,um,H,W,K,j,q,z,Q,J,Z,tt,et)})()})(); \ No newline at end of file diff --git a/boards/default/python_pyodide/styles/main.370663e9.css b/boards/default/python_pyodide/styles/main.4c4d08ac.css similarity index 92% rename from boards/default/python_pyodide/styles/main.370663e9.css rename to boards/default/python_pyodide/styles/main.4c4d08ac.css index 001e7954..034c482d 100644 --- a/boards/default/python_pyodide/styles/main.370663e9.css +++ b/boards/default/python_pyodide/styles/main.4c4d08ac.css @@ -134,35 +134,35 @@ div.blocklyToolboxDiv > div.blocklyToolboxContents > div:nth-child(15) > div.blo background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAACXBIWXMAAC4jAAAuIwF4pT92AAA4JmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxMzggNzkuMTU5ODI0LCAyMDE2LzA5LzE0LTAxOjA5OjAxICAgICAgICAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgICAgICAgICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgMjAxNyAoV2luZG93cyk8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHhtcDpDcmVhdGVEYXRlPjIwMTgtMDctMjFUMjE6MTY6MjIrMDg6MDA8L3htcDpDcmVhdGVEYXRlPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOS0xMC0yNlQxNjo1NjoxNSswODowMDwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6TWV0YWRhdGFEYXRlPjIwMTktMTAtMjZUMTY6NTY6MTUrMDg6MDA8L3htcDpNZXRhZGF0YURhdGU+CiAgICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2UvcG5nPC9kYzpmb3JtYXQ+CiAgICAgICAgIDxwaG90b3Nob3A6Q29sb3JNb2RlPjM8L3Bob3Rvc2hvcDpDb2xvck1vZGU+CiAgICAgICAgIDx4bXBNTTpJbnN0YW5jZUlEPnhtcC5paWQ6YmExZmQxNjgtODQyMC04YjRhLTk3MWYtYjZmMjczMDY3ZGU2PC94bXBNTTpJbnN0YW5jZUlEPgogICAgICAgICA8eG1wTU06RG9jdW1lbnRJRD54bXAuZGlkOmJhMWZkMTY4LTg0MjAtOGI0YS05NzFmLWI2ZjI3MzA2N2RlNjwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOmJhMWZkMTY4LTg0MjAtOGI0YS05NzFmLWI2ZjI3MzA2N2RlNjwveG1wTU06T3JpZ2luYWxEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06SGlzdG9yeT4KICAgICAgICAgICAgPHJkZjpTZXE+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmNyZWF0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDpiYTFmZDE2OC04NDIwLThiNGEtOTcxZi1iNmYyNzMwNjdkZTY8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTgtMDctMjFUMjE6MTY6MjIrMDg6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE3IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOlNlcT4KICAgICAgICAgPC94bXBNTTpIaXN0b3J5PgogICAgICAgICA8dGlmZjpPcmllbnRhdGlvbj4xPC90aWZmOk9yaWVudGF0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj4zMDAwMDAwLzEwMDAwPC90aWZmOlhSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpZUmVzb2x1dGlvbj4zMDAwMDAwLzEwMDAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjY1NTM1PC9leGlmOkNvbG9yU3BhY2U+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj4zMjwvZXhpZjpQaXhlbFhEaW1lbnNpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj4zMjwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8+zK7P2AAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAADyUlEQVR42rzXe6yXcxwH8NeJslSMVoYyRphhO1OtpFnZXLtgU4ou2DChqdxvyUrRZaRNq+QWMWuV29bGQropGsWKfxDtzK0tt3Xk5w/vY8+enV+nU47vP8/zfL639/fzfX/en89TU6lU7Gfrjfvz/jDW7M8iNfsJ4Eq8hM35Ph3DsPj/AHAWNmAcZsV2G2aiOza2NIAfsA6XlOxvogc6tSSAM/AJOuKnUt+R+BFn4tOWAnAz7sXRVfp3YDKebCkAYzEBXav0b8djeLylAPTC22iP8sRW2IXzsLalAJyNDzAAb5T6BuC1EHHDfw2gCyahf8hXi0F4K/0XYTk2xTsr8EBIecAAeibs4LC4eS6uwS+xt8fTuBGHY2chajaX1muN+jKAPngKbTN5Cabg4Ax+ApflOT1zO+HcvL+L7/M+IWRdjptwENpgBi4OwHqMwas1lUqlD1ZhQVSsd0RmB3ZjT+61B9aHZO9U8Vb/kLSBB+txKDpkrVeyRy3uw6U1lX9c8CxGlxabhjtwKrbGNhV3xuW/lsa3y5VMw12xnYYtuKURbXgOI2oqlcp2/JYYfj+Sui73tzYLF9uLGBjCtY6tPqdajuGl8TvjtY9wOS5MPmmHXQ0cGJjOWnSO+4/CagwpLXh3+LGgZL82bp1Ssr+MfvgZh+CrXPkSbGwsCjqGLPMxO6QqMnh3SLu6NK82p2yLPwr22Riag6xsThg+E1K9UAidwfgyz8baPPTN6RrmXJWNRzVXBxZFbL4oLFabvD++ypzb8Sg+LszphmW4urkAVsSVgxopRjqlLii29hGpXgXhgtcD5oLmAngI10WGi21piDqjZB+HupC5nKLnYmJzAXTBNzgF2wr2oan9vo1SNoRhF9wa0jW0k6MhXRPmzc4Fm/B71FFhs5kRpJrYKpHdOQG1J/Y1cX/3A0lGFYzE89l0amHjxsbOw/UYEbVrU0w+zQFwQhLU+fm+InL6yF4qnoEBOj46Uh/Sjko07TOA4wqKdUOuYH60vkMTHtuOY5NbVmBhIuCYEHKfAOwIAXtWqQvmJDVvK5BtbHggYrSqMPezcKHbvgDoi/ei27sLf0KT8F0S1sh4qS586Iyvkx/OSeRMzOmlvy5/UFuaArA0RUM/HJ9k0rOkgCdGkoeFeIvjhYZ7nox7Ug0NweepA9YVvFQVwFp8mHruwRShw3PC8k9IMQw7F6oiufPF8eh0nJTqaFBTALbmNNtSkCyrQraFYfdfSVij9xIZs+K1lfHsXgGMwRGJ9z+bYPyieGF4E+NaJVHVJcv+2/4eAGkHTer8r7fWAAAAAElFTkSuQmCC) no-repeat; background-size: 100% auto; } -/* div.blocklyToolboxDiv > div.blocklyToolboxContents > div:nth-child(16) > div.blocklyTreeRow > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{ - background:url('../../../../common/media/mark/ai.png') no-repeat; +div.blocklyToolboxDiv > div.blocklyToolboxContents > div:nth-child(16) > div.blocklyTreeRow > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{ + background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAACXBIWXMAAC4jAAAuIwF4pT92AAA4JmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxMzggNzkuMTU5ODI0LCAyMDE2LzA5LzE0LTAxOjA5OjAxICAgICAgICAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgICAgICAgICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgMjAxNyAoV2luZG93cyk8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHhtcDpDcmVhdGVEYXRlPjIwMTktMDctMzBUMTM6NTI6MzMrMDg6MDA8L3htcDpDcmVhdGVEYXRlPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOS0xMC0yNlQxNjo1NToyMyswODowMDwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6TWV0YWRhdGFEYXRlPjIwMTktMTAtMjZUMTY6NTU6MjMrMDg6MDA8L3htcDpNZXRhZGF0YURhdGU+CiAgICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2UvcG5nPC9kYzpmb3JtYXQ+CiAgICAgICAgIDxwaG90b3Nob3A6Q29sb3JNb2RlPjM8L3Bob3Rvc2hvcDpDb2xvck1vZGU+CiAgICAgICAgIDx4bXBNTTpJbnN0YW5jZUlEPnhtcC5paWQ6ZWFhNDM2YjctNmVkMi1iNDRhLWJjNTktODEyMjIwMzZjNjNmPC94bXBNTTpJbnN0YW5jZUlEPgogICAgICAgICA8eG1wTU06RG9jdW1lbnRJRD54bXAuZGlkOmVhYTQzNmI3LTZlZDItYjQ0YS1iYzU5LTgxMjIyMDM2YzYzZjwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOmVhYTQzNmI3LTZlZDItYjQ0YS1iYzU5LTgxMjIyMDM2YzYzZjwveG1wTU06T3JpZ2luYWxEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06SGlzdG9yeT4KICAgICAgICAgICAgPHJkZjpTZXE+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmNyZWF0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDplYWE0MzZiNy02ZWQyLWI0NGEtYmM1OS04MTIyMjAzNmM2M2Y8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTktMDctMzBUMTM6NTI6MzMrMDg6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE3IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOlNlcT4KICAgICAgICAgPC94bXBNTTpIaXN0b3J5PgogICAgICAgICA8dGlmZjpPcmllbnRhdGlvbj4xPC90aWZmOk9yaWVudGF0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj4zMDAwMDAwLzEwMDAwPC90aWZmOlhSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpZUmVzb2x1dGlvbj4zMDAwMDAwLzEwMDAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjY1NTM1PC9leGlmOkNvbG9yU3BhY2U+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj4zMjwvZXhpZjpQaXhlbFhEaW1lbnNpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj4zMjwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8+BML/zgAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAGCUlEQVR42qyXW6idVxWFvzHXf04ajKSUiEqjUaiWaIhQUBSKSKQGrTSpSYppsc3FJJQqWEEUTU6anEZQRKsP0eZiE7X2kvQkKLZFE4v6IEREQi8UbbWgNoX2IQ2Wptl7zeHD/5+cs3cOuaDrabPYe81vjbnmmHPLNgA3bvsR09dIFACSwE4EROFNtq/FLJZ0NVCANDwHPIn5PeLU9HOSoPYbJA+cf2jrGgB0CQAfiWANsBRYwLnrBOZRiweAo/9HAC0QvkdiuYDumB7wDHASeDOwEJg97edHDHcanvL/CHA9YkIwasBmJ+ghlMeQTk/SYI8iPiB0E/BFYBaA5dvSzU9mBrjtggBLEY8LY/hVOr5g84IEUoLENAAQBCKteYh7hG+RTM2yrl9137kA62cGsE1I80ea8k8MNWMnqnegwF3cCwBggqLcbDwuTC+9qFpPxwDAxkGA5dMARkvzRAQfs/3rM/2ytCl9QkFNXRDAFmmw+0Rof4RuTcez/TqyUJoCmBgbSsFntu9tN/DiJnzcUM/UcgX2qTZoIOp5AExI1NrQd2JXpGC06KTkuZl8wvZvJgEOjg0psOru3R2Avgu+07An3WyYimPkihBMAxAGGxPtloTbb3XC5NaAuxI/6GQ1nQoHtwwBrBi/F4AiHRPxwer8JOTjZzWTsAEHJQAZDGmRLmQWSlRK6TNNaWxdA/wZ+Ddo/uR1Ht68YViBXZMKvAzMS/u9wN+G3UaA1N64ZkNak7sU9Qm1KnmK4m3CJ9pgzDF+TRIPDQPc1AII9ApwBfAeWosdWsZAv45i62x9G1FUKVEhwPUscSN4sY3v+aA3sDkwnIKV43swIpRHBUuAFcDEOQooqdnQqyOEchpWCxBRUdchXNsrGc9psZv/tKXa55GxTcNluLczoDwS4uPGXwG+Myy/gV4d7R6aZwJootBHgjRZTWJqNgQNTfRmV9fXzwFYOb4X8NUhPwtQq94B/OtcBcTAK5siQPIfJb/T8gLbfU0Sdw815O0Rvr1mbji4ZdPhwSrYvosSPCD02cTj1RqbIQwiCDHVlrrbCy8WeVxAL+PLtcb3kBiJpKhOQv/B6Frj7x/YvPFLQwB7lpTw0Rbay6qbX9hlIBBARO32NHz7PYHXuwV6xY63CCESyEn6w8Ay4+0HNm/cOlgFO3Z/HbNjMtc141v9bL42qLIoSiIqHqz2WUV5ChjtLIO0V2fWB9vyLJMAh4DlxtsObN541zDAHMwNhusEa4SpLmtrxr6pTtb1AnIAQMp1Be9N+6eCQ4qYyMzne5WrkBidsorzAiBD34nM7RGxE/l54KrBKojOfKalhXxa8L6a+lQ1jzWRJ0MxN60liCfkvCgFwN2jhcsCXu90nw2cngTIzuunoLxY+DjwYhJX2knINwe63/Cn6vxQoK6HnAdg1d17pl/qrcIvdZ8vB14dqrizniDYBWwATgC/RczGjAKfFuZMLYvteHJW6eNLALhSeNID5gCvGZMIGeSzb2AkQq8OzYMDxpXWL+24IdpSPE8KBgEWgF+YUhmsJAnIQqjX9QFulbQf+Lvl7Zjo4vaBuUI/UDsbvp3kJdBhxLIZAVaO/3g6wLxQfbmLfz/2c1YeNPFU5gjiDOAoEcclFmVqrWGfVKf5gxAcklhek11ONjWFg4YVMwLcuG3XQI5Hgp+FdIsHc39Hr47sFJWi/rsi4h+0njEbdFrRJzDVImshwgubyGdM4ESSf45YbfLbBzZv+uoQwA8HAJooRGgVybsRi4DPtcG4xsRfoLmsxBvjJv7aryO7g6SUSihJQ6+fIDNayjajKrQd+zBiWVrfOLjl898871heIogQSlMpgO8NeSN4H2JtZgNqm767aUhDFdJPtdZtkBpEvt/OD1ePPDIxtu7kRQGQ7d8r8JKQjwJHMNe1U5E6JzS2zmmPvTqrtS71iIjWQZ1UN0yMreciAAJPPYKbhe+nNahjXHCZzLI/Hfe1E3MS4RYgZwBYtWP3hc77qOB3XNp61KnrUTchB0C9WAAPNmJzeaCxzhl1MQpUl4ed8RhdikokoR79HDkL8N8BAP9zw+7xZcIdAAAAAElFTkSuQmCC) no-repeat; background-size: 100% auto; } div.blocklyToolboxDiv > div.blocklyToolboxContents > div:nth-child(16) > div.blocklyTreeRow.blocklyTreeSelected > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{ - background:url('../../../../common/media/mark/ai2.png') no-repeat; + background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAACXBIWXMAAC4jAAAuIwF4pT92AAA4JmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxMzggNzkuMTU5ODI0LCAyMDE2LzA5LzE0LTAxOjA5OjAxICAgICAgICAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgICAgICAgICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgMjAxNyAoV2luZG93cyk8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHhtcDpDcmVhdGVEYXRlPjIwMTktMDctMzBUMTM6NTI6MzMrMDg6MDA8L3htcDpDcmVhdGVEYXRlPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOS0xMC0yNlQxNjo1NToyNCswODowMDwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6TWV0YWRhdGFEYXRlPjIwMTktMTAtMjZUMTY6NTU6MjQrMDg6MDA8L3htcDpNZXRhZGF0YURhdGU+CiAgICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2UvcG5nPC9kYzpmb3JtYXQ+CiAgICAgICAgIDxwaG90b3Nob3A6Q29sb3JNb2RlPjM8L3Bob3Rvc2hvcDpDb2xvck1vZGU+CiAgICAgICAgIDx4bXBNTTpJbnN0YW5jZUlEPnhtcC5paWQ6MTliYWIxZTgtNTc0ZS1kMjQ4LTliODYtZjZkZTBlYTAzNWZkPC94bXBNTTpJbnN0YW5jZUlEPgogICAgICAgICA8eG1wTU06RG9jdW1lbnRJRD54bXAuZGlkOjE5YmFiMWU4LTU3NGUtZDI0OC05Yjg2LWY2ZGUwZWEwMzVmZDwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjE5YmFiMWU4LTU3NGUtZDI0OC05Yjg2LWY2ZGUwZWEwMzVmZDwveG1wTU06T3JpZ2luYWxEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06SGlzdG9yeT4KICAgICAgICAgICAgPHJkZjpTZXE+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmNyZWF0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDoxOWJhYjFlOC01NzRlLWQyNDgtOWI4Ni1mNmRlMGVhMDM1ZmQ8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTktMDctMzBUMTM6NTI6MzMrMDg6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE3IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOlNlcT4KICAgICAgICAgPC94bXBNTTpIaXN0b3J5PgogICAgICAgICA8dGlmZjpPcmllbnRhdGlvbj4xPC90aWZmOk9yaWVudGF0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj4zMDAwMDAwLzEwMDAwPC90aWZmOlhSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpZUmVzb2x1dGlvbj4zMDAwMDAwLzEwMDAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjY1NTM1PC9leGlmOkNvbG9yU3BhY2U+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj4zMjwvZXhpZjpQaXhlbFhEaW1lbnNpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj4zMjwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8+ycM8ggAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAC/klEQVR42qzXe4hVVRTH8c9Yjg6NNIShoTkGmVhiECQKITJR4gMVJMkiX1EhFpQgikXpSEESpf4h+MJXZkWZGFnUqKR/BEpEmBJqGVQq5B8WhoWP6Z91YTvduffsO/f3zz33nM0+3733Wr+1TkNnZ6cM3YKHMArDcROu4zSO4RD+ypmwIQNgLOZiAlrLPD+HfdiF/fUEaMVqTE/uXcEJXEQ/jEBT8rwDL+GHngJMxm40xv91+ABH8E8yrhH3YyZeQJ+4PwfbawWYgC/i+jM8j18K7Gr/2LEn4/98bMkFGIxfk1UvlK9XsDKuR+J4DsBBjMeXsRO1ahtm48eIk0IAo/A9ruG23LQqo4u4FY/iqyIAb0cEb8Izeq7XsBzvY1YRgCN4EBOTIOyJHsC3+D1iqyrAHxHJ9+BUHQAGhklBM/6uBNCAC3H2w8Jie6qbcTbmHox/q+3AfrRhRphQPdQcv5eKHEEHHsZivFXjiq9WeN6Ey90BDI+chTvxW+bLv8GQqB/lINqxILJrTzmAXXg8HOzVzJeX/AMW4Z0yYw5HOV+DF7sCtCVldBr2ZgJswtNxfQG3lxmzJ+ZuD3+4AWAZXk8Gv4mlBV/eJxyzMbk3K8wn1SdR1leEOd0A0IypeCQaD5iHrQUA5mMzdsRLduMn3J0DkGpBVMFyk5TTcdyLSfg88f+2KGzZAH2TVGnq0nx0F3xnMSjuPYGdOIrRtQAMwPm4bsGfFQA2RFqdw4EAbsSUBPBYLsCgxAP+59+JegdcUwXATyO2sgBak/arocLks6Pp+DlSq1eMvxoxsDbG3RE7WkrDqgD9oyqKszyNj7p0ub3i7EdWyJbSijfguZhjRhEAeDdpLEtaGNkBQ3GmSqCOiPa9tJPvhT+swpIibfljuCtW+VTSYHwXmbISJ7Gxwhwror1rT47gZbyR+2W0Hs/GVs+rsSzfhzH4OLwiC6BUKzrCLeuiHICSuVyOvrFoW76lXgDj8HXmAvfF511dAFqiR2ip4g2pPoza0K3+GwCzSgrQzBH61AAAAABJRU5ErkJggg==) no-repeat; background-size: 100% auto; -} */ -div.blocklyToolboxDiv > div.blocklyToolboxContents > div:nth-child(16) > div.blocklyTreeRow > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{ +} +div.blocklyToolboxDiv > div.blocklyToolboxContents > div:nth-child(17) > div.blocklyTreeRow > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{ background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAAEEfUpiAAAACXBIWXMAAC4jAAAuIwF4pT92AAA4JmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxMzggNzkuMTU5ODI0LCAyMDE2LzA5LzE0LTAxOjA5OjAxICAgICAgICAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgICAgICAgICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgMjAxNyAoV2luZG93cyk8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHhtcDpDcmVhdGVEYXRlPjIwMTgtMDktMTVUMTk6NDc6MjArMDg6MDA8L3htcDpDcmVhdGVEYXRlPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOS0xMC0yNlQxNjo1NTozMCswODowMDwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6TWV0YWRhdGFEYXRlPjIwMTktMTAtMjZUMTY6NTU6MzArMDg6MDA8L3htcDpNZXRhZGF0YURhdGU+CiAgICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2UvcG5nPC9kYzpmb3JtYXQ+CiAgICAgICAgIDxwaG90b3Nob3A6Q29sb3JNb2RlPjM8L3Bob3Rvc2hvcDpDb2xvck1vZGU+CiAgICAgICAgIDx4bXBNTTpJbnN0YW5jZUlEPnhtcC5paWQ6ZThiMGIxODktZjIyNS1kMTRkLTk0OTYtYmVhNzY3YmFjYjY3PC94bXBNTTpJbnN0YW5jZUlEPgogICAgICAgICA8eG1wTU06RG9jdW1lbnRJRD54bXAuZGlkOmU4YjBiMTg5LWYyMjUtZDE0ZC05NDk2LWJlYTc2N2JhY2I2NzwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOmU4YjBiMTg5LWYyMjUtZDE0ZC05NDk2LWJlYTc2N2JhY2I2NzwveG1wTU06T3JpZ2luYWxEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06SGlzdG9yeT4KICAgICAgICAgICAgPHJkZjpTZXE+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmNyZWF0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDplOGIwYjE4OS1mMjI1LWQxNGQtOTQ5Ni1iZWE3NjdiYWNiNjc8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTgtMDktMTVUMTk6NDc6MjArMDg6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE3IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOlNlcT4KICAgICAgICAgPC94bXBNTTpIaXN0b3J5PgogICAgICAgICA8dGlmZjpPcmllbnRhdGlvbj4xPC90aWZmOk9yaWVudGF0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj4zMDAwMDAwLzEwMDAwPC90aWZmOlhSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpZUmVzb2x1dGlvbj4zMDAwMDAwLzEwMDAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjY1NTM1PC9leGlmOkNvbG9yU3BhY2U+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj4zMjwvZXhpZjpQaXhlbFhEaW1lbnNpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj4zMjwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8+LtvJOQAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAHa0lEQVR42mL4//8/AzJm+P//P0NUfz9D8vTpDFlTpyYz/P//nyF11iyGqNmzGdJmzIAoS5w2jbGyqYkhY/r0VQAAAAD//2LAMCNr/vz/SfPmySfOmcMQtWgRRKCyqYkhsbeXIX3WLAaGjDlz/qdPm8aQMX06X8q0aQwAAAAA//9sjrkRgDAMwLwCW1CwB3sQEhL2iZ/4cl6QjgFMkQ4o1Ol0+jR+v4qZZ2Y/mGFTnQuih1ohiQzhNPPc+xSJIBDBjrik1jypDiEjQhS5I/P1Yn0AAAD//4zRMQrCQBQE0DmJZxJtIoKFq7srtikklWWwSbXZ/T9/kUBCLuQBcgXBfu1MCkH7xzDM/NfhJ1gVBbRzsCEkJYK999i2bfYBu6qCYr6auoYmeh76HjrGWUKeYzGOOIkkQwTddTDME1heLrBEdyuSjMhNeQ/dNLMDyxKG6KxifByZs80wwDo3ARPC+ssGr5QS3gAAAP//pJI7SwNBFIVPKwTxJ1gKtqkFsRKUBKwkFu5jZof4qEJIt3XcImxYdubO3t3ApgjpUiVNijT+rrEIkWwhCha3/TjnfPfXmn/e6YXZdZIE3fEYkbV4XCzwOp0i0BoBMzxm+MbgLU1xvd3iardrAvqzmesMBhB1jUjrT0nkAmMQWeuerYXHjIjI+cZ8yKqCJGoC3onczWp1HhK1+lmGp/kcflGcxnGMqCgu7jYbPLTbiJbLlleW8I49fCcYDqGYcbte93p1DcXs/L28+2AyOQmMweHLGhoOgO5oBFWWZ4qoElpDMe9rMCdhnl8GWv8MUMZk0tpUFgUEEUIiSGPglSUEEQQRVJ4jtBbCWoTHnv9zX9zUP2sUQRjH8Z+2dr4BK8GXIATSiSlChHhCgp7un5nZzRkiSoRAiutykMuZ25vszTPP7O6xSbjEKja+gsRK2whBfA32NmsRPbzcIRZWFtN+eHiG7/O/AMKY9brWiw87HSxpjZU0xcLJCQQRgjyHJIKfZXje6yF0DjOnp+OANOZlfWentrixAXF4CGUMvMHgsyJ68wvw8hwNrSGtrZYPDqYD/u4uvDy/GTFXivmBsvarJFoKrUWYZfdjoso/PoYyZhJ4urV1T5Xl+8jaShgDwQzfOShrK8n8ZcWYob+/D//oCIpoEpjPstkXe3uJGA6h0hTPiuJas9m8rsoSjW731qN2G483N2/4zo06GJ9ge7tW73TwutXCzNkZJPO859xaQASpNURZIi6K84h5dK/Gd9Bu17wkwVqSvL19cYFVrecEUSSJoIjehVojcu789w4mgEBrRFlWNXo9SOY5QRQJIkTOVWG//0fg1VTA2vivgEjr2Nf6iZ+mUMZ8kESI+/07663WXeEcFPPHIM/hDQbdhtaQV79RFQUUcyWMGaUrrEWQZVBEkD/TVkSXOV8FVi9HhmL+JIm+TTnh48/a7/8sph/sl02IHEUcxZ+ggjcvip5y8KaH1XgIghDwpJCNMc5Kkk3Y2e7q6p6PXdgsO0xymsQwbJzNMtM93VX/+ujuzQaWOW0IeBAiK7nk6MlzDoKgiBfjKYfyMLPLRLPxIzfx8A4FRfHjT9V7r575gP8WQCjlUU6UM2uPsLIEKwqwsgTTGjzLEKUpzu7s4OTuLppxDCYlfCHgWQvfmAPb2Q/BRhxjaTCArzU+uHsX79+7h+N7e4cDBEKs1svSXVhfnzu9uopKq4XT7TaqQiAimgZ4sRnHM0yIlw4DWJwALPf78Ix54fje3nPH7t9/zAufBLBSLwp3YWOjcqrVwmedDvyigFeW4FkGRrQcSenqWeYCpR6GRI4RXVw0Bt4UQNUY+FI+z6X8ihM5bsyPjTR9YymO0UySvwaY73Yrn167Bl4U4ETznMiFY30bEL3OlIIvBMIsey0k+i2S0nlaH/WUAifaCscW+itT6t2qlFgYjRDmObgQB5XicACt3dk0nTlvbbsupeNEPwRlObNgLfhwCGYMqnmOKMuwNBjg3PY2qjdvHmtI6epJ4j4ZjWb927fBOh2cv34dwdYWvMmE9vV0gLJ0891uZe7qVUR5DqY1alpj9s4dVPMcTAgwove4tW6p3z/Z6nSwlKYIjEG938fs7i4qN25g8dIlBGn6Dbf2e19rTOtv3YGP19Yw1+kgUAqtbhdHHjwAxnvQGA4/jIxxTMrQyzKwyWhZmsK/cgV+vw9fqbH5TlWhPxrx4QC9XuVUuw0/TRFZ+4pflm5tY6P8/PJlRMMhfGMOAHwhMHH8XmiMY0q97U+e5zMDeEmCyNqXQ2NcRJTX4xiBEAiU+jOAMV+EWjuWZW/6WfavAVqNsnTz6+uzJ1ZW4CUJ6kXxKrfWRURbzcEAwbggnqhZ6zylmgtSIpg00Ehrx4R4h6Up+HCIGtF3XCkXaL0fNk8HODMavRUQuZq1X4fb2/CFwEKaIkwShJOmyolQzzJ4QmCl18PFzU2wqUYbCgGmNc7s7ODcrVsIhUBt8rULhDhotU8EWN7cRC3LECj1JSdyE/3CiX7iRD//U4WPrx9yKR8FUn70fxpO6/cBAI9SNkpp9dsgAAAAAElFTkSuQmCC) no-repeat; background-size: 100% auto; } -div.blocklyToolboxDiv > div.blocklyToolboxContents > div:nth-child(16) > div.blocklyTreeRow.blocklyTreeSelected > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{ +div.blocklyToolboxDiv > div.blocklyToolboxContents > div:nth-child(17) > div.blocklyTreeRow.blocklyTreeSelected > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{ background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAAEEfUpiAAAACXBIWXMAAC4jAAAuIwF4pT92AAA4JmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxMzggNzkuMTU5ODI0LCAyMDE2LzA5LzE0LTAxOjA5OjAxICAgICAgICAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgICAgICAgICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgMjAxNyAoV2luZG93cyk8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHhtcDpDcmVhdGVEYXRlPjIwMTgtMDktMTVUMTk6NDc6MjArMDg6MDA8L3htcDpDcmVhdGVEYXRlPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOS0xMC0yNlQxNjo1NTozMCswODowMDwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6TWV0YWRhdGFEYXRlPjIwMTktMTAtMjZUMTY6NTU6MzArMDg6MDA8L3htcDpNZXRhZGF0YURhdGU+CiAgICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2UvcG5nPC9kYzpmb3JtYXQ+CiAgICAgICAgIDxwaG90b3Nob3A6Q29sb3JNb2RlPjM8L3Bob3Rvc2hvcDpDb2xvck1vZGU+CiAgICAgICAgIDx4bXBNTTpJbnN0YW5jZUlEPnhtcC5paWQ6ZDNmZmM2YjUtNTQ2Ni1hNjRkLWEwOWUtMjMwODExNDY0NDI4PC94bXBNTTpJbnN0YW5jZUlEPgogICAgICAgICA8eG1wTU06RG9jdW1lbnRJRD54bXAuZGlkOmQzZmZjNmI1LTU0NjYtYTY0ZC1hMDllLTIzMDgxMTQ2NDQyODwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOmQzZmZjNmI1LTU0NjYtYTY0ZC1hMDllLTIzMDgxMTQ2NDQyODwveG1wTU06T3JpZ2luYWxEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06SGlzdG9yeT4KICAgICAgICAgICAgPHJkZjpTZXE+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmNyZWF0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDpkM2ZmYzZiNS01NDY2LWE2NGQtYTA5ZS0yMzA4MTE0NjQ0Mjg8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTgtMDktMTVUMTk6NDc6MjArMDg6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE3IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOlNlcT4KICAgICAgICAgPC94bXBNTTpIaXN0b3J5PgogICAgICAgICA8dGlmZjpPcmllbnRhdGlvbj4xPC90aWZmOk9yaWVudGF0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj4zMDAwMDAwLzEwMDAwPC90aWZmOlhSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpZUmVzb2x1dGlvbj4zMDAwMDAwLzEwMDAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjY1NTM1PC9leGlmOkNvbG9yU3BhY2U+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj4zMjwvZXhpZjpQaXhlbFhEaW1lbnNpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj4zMjwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8+wd1/FQAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAACyElEQVR42mL4//8/AzJG4fz79y8FxoAJoir/////KgAAAAD//2LAZsb/f//+ycG0MfyHAFQVUA7v////GQAAAAD//2LAYjBWd/1H0qmGbCyyAl4knVr/////h27F5////79Bw74AAAAA//8i2g1EK0D2cxi6gkYo/YlYEzAULIYq6MalIOf////X/v//H4FNQTCWMPj6//9/BgAAAAD//yLoTVKC4T9aekJOSnA2shhWA6AKjiIZiCz+/////534DJD79+8fD5Kt/EiJAybGQ4wLYtG85fv//39OKPsfoTDghcYZsljP////NbGFFbIBk/7//z8JFniEMNGplRAGAAAA///c1DFqQkEQxnEkZToPYOsZ0tlE7dIE7VOEgB7AdwnhHcIireQKdqaOAckVrK1+NhNYlse+h1hZLDPMfvx3GeabOwKs8JpPXT6ZpUms/h2ciH6wbhhtbYB+iF7wh3kApiXDV5jgq0EER2xKPagwQp1c9vAQrw+i9lgCzLImPWOR1Q5FQAg/ozbGe+TbiL+tP0h6kAJcC/joCljiLfJdxCGeIv+OWBd3Ylcrl+y8x6lhhefnfDMzXdgtYx0CgiAMNxfPQCfREIUTCZ5AKSoKPRqFqIg34BlExCsodOIJlNQSCYVCqCTza0Yyucze3jkaUWxu98/c7Jeb2/0ncoLfAiCiIoApESW1onnnWkLNEE2x2hcY8j/bsCSPEZErrMoG4PDdYAUYMEDdcLl2Rct252fPAOAAWHHMCUAqNAAnaopNtwASIj4uQAqszXh9FVrgErwAXAB9nh8B5EwWw6MsIKs+ce+VQElSEq7jt9kGwOEbABWOa1sA9poNhgLgXgui35IALaFNWMt4AOhTAPOAAOkoACNOUlMAFgpAR2hj1rJC24UtQZ5fWGu1D6L5xWgnwkS2FMfqAuAcwCJt4wbg4T2mfzd8DgBFxKXKoOIp8wAAAABJRU5ErkJggg==) no-repeat; background-size: 100% auto; } -/* div.blocklyToolboxDiv > div.blocklyToolboxContents > div:nth-child(18) > div.blocklyTreeRow > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{ - background:url('../../../../common/media/mark/cv.png') no-repeat; +div.blocklyToolboxDiv > div.blocklyToolboxContents > div:nth-child(18) > div.blocklyTreeRow > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{ + background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAEsUlEQVRYR8WXXWwUVRTH/+fu1o2l7s4CRUUw0RBFFBANUfpgIFFiE2tErOzM7IIN1cSHEkmMUF+EJxNMkCCJElFLOx/bGmtSCMKDkYSYiBGpBrSKJCqCBPox24aUtrtzzGw7s9Nl204tCffx3nP/53fuPefcGcItHvR//PdpiXVgLCeBJWDKAugUIe6KyumO6epNC6C3rTYmRsLvA6gr5YgIJ4aGsi/Pq/v8clCQwADdhrw4zPg1iHCZHZo/K6X9G8Q2MICly10AHgwiCsJxSTHXBLENBNDXkthBgt5xBRm4IEC7bGEfjuRC2SHO1fvXHTu2eWc8ld4xFUQgAEtXjgG8Ni8MDOZyvGbuxvRJv3i/pj5nk33Im2N8KSXNF2cM0KOp0RDZGVeIQE0x1SiZhH26/DcBC8dsz0uquWjGAN3NiSfCIfrOAyDsiSnm1lLClp74HqCVY2uDkmqWzxzgYO094XD4H59Qp6SaK0oJZ3T5MgN3OmsEnI2p5iMzBnAELF3+GcDSQhLyvriabvCLZwz5DWY4PWJ0ED6VFHPzzQEw5O1gvOsXY8H3xeX0n87ctZbk3SMid8m/Hhbi6QpZ//qmAJzbWx2pnCsdBWP1aHA3JqK/VIOW4NhVTcU4um7pyv1M3EKMxSz4cTd6d7dzClmR+wHAqZhqPh9MNZ8r0xtOpBM1mMnWJvJSEoCPVEcy/dEFPEILKVL21/XruHLXxpZr00MNZj0OgI80RKyeq41C0KsMzPeyXvBjcTl9Opjk9Kw8gAFNXWKT3cbAw34JIpyMKeaTQWUH2lPzskMj5cU54lbLIGfv9bdxD8DSZS7lhBkfxJPmliAAbtecaI9bKf4qyQNYemI/QK+Nc0I4ni8TpgMx1dCnArAMuR6Mj33X5vWJUr2CwXVxNd1EA221lbmR8BVvI/PFMIktd6hG+2ROrx7c8EDlptbfXZuMLp/xX19xrygRZJekmg9RX0tiNQn6xgMArY+XcM6aGu0XdhWYqhioYtiaE4Gzz8mfHNlnCxq4AMFP+fPAyY3cYPYYgEdduxzbqyijK1sZvLswKWJzknp/cfTFoGC8LSXNfHvu1ZWEAJvuHgI1xFRjX7GGpSubAT7gztuMRsoYsswMwzMesRdJr7SenwrAZn59djL9UR5Ak7cLKrwVORvVc1Lm0WKN4usmQgf1mYkVZNOPnjFhm6SYu4o3Z3SlmcEp76R8Tm4IAlQvqcYnJTRUBmveSRH20KX9NeWzKirO+RsPGNukZAHC0hNtANX6BXk4Eo/XNVnOXHEQBBwq9R5kdLmDgRovVwjr8mVY/NGZLz+gmwlnwPnGVFkUzReSar7kzjlBlFdU/AZggS8RdWbx4eyk/m2PIa8KMd4C8EJBh/7g4dtWeo0oo8sXx53CxDV4WmTLnoluau7xm/Tryps2+L3JSte/JljURJP64XFvQZ8m7yXCuC8d/yantm1h7yzVZh07y5C/AuPZqSG4XVLT68dOerx5ryYnQ0RrbfByApY57zsIPzHzCbfuJ3NgaYkNTPQZAbcX2xEwTITdUcVsLJTs1LjTtug15GXC5iqAlsL5gQVOsc2/EHOnlGotVNxort3a8R9k8Aoe34meggAAAABJRU5ErkJggg==) no-repeat; background-size: 100% auto; } div.blocklyToolboxDiv > div.blocklyToolboxContents > div:nth-child(18) > div.blocklyTreeRow.blocklyTreeSelected > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{ - background:url('../../../../common/media/mark/cv2.png') no-repeat; + background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAADe0lEQVRYR8WXTchVVRSGn3cUOUgaVGQ/UEhmZWURZYNIqCjISO2XaiBa0EApiMom2SgoKCkhIy0pKxAyUKEcRIIEGZUWWfYj9GMmUVBCBBK8sT72+Vh3e+7nvvmFG+7grrP2u961z17vWkcc46X/Et/2fOAi4DzgH2AXsEfSplHxRiJgeyrwLLBoSKDtwG2SDrQSaSZg+1zgq0bgaZJ+afEdhcAeYEYLKLBN0twW3yYCtlcAjyfAn4CngC3lDiypnofrE5Ji34SrlcBW4LqC9DcwV9KOjGz7RmBzsr0tacFRE7B9AvBnAlonqfcS2v4ROKP47pU0fTIIXA58mIBWSnqwD9j2R8Bl3UlJmjIZBE4D9iWgXZJmDyEQ5XdKebZb0gVHTSAAbH8OzEpgqyQtre7AA0UjOvPLkhZPFoFHgScrsLMkfV8Ingrsr55fI+m9ySJwHPAucHUBPOwiVqXaVIKB1VSGJcuzgdeAUMRLu+y7DG3HKXwMfCLppiNl3j1vJpACrRgmMHEKLeKTyfUSsB1Hfnqp6R+AXyX91ZrVKH4DBErg5cC9wLQEdImknaMAt/qOE7AdvX0DcH61eYekK1oBbZ8MTKnvSKqWM7OMZwIeEuR5SctaCNjuVLN3T6qU8SoZI2D7ReC+Ksi28n+NpNePRMB2dMSXkt+4TgzRikWS1sn2SXHJ0safgWWSNk4U1PY5kr5J1fFF9foGtKInyRjhZgaBEJf3U7CFfcFLV7wS6H7rI4OSXdyf3Qkj5oWr8j0odyPa+sXJb04QiM72TDJOlXSwzr6H6GOSxuTZ9h3Am2nPUkmrejCiN6xJ9uVB4E7gjWScLmlvA4H7Ja0uBOpecYOkkO6B1fO6NwWBaK2fJs9HJMW4VW9+FbgnGceD9CSxRNLaHoy7gPXJvjIIxNDwbSU8AyRshz7cWgGeKOmPcgJ1Epv7+oHt+G6Yl3Dmd2VYD53h8xvQ3eyolLzeknRLZyhJfF3kuzNH6b4g6QPbc4CHgZsTyHcxPWUhivLL8lufYPc/JPlaSb9nB9sPAU8P29RjnydpS90LngMGJp1qY5RdqNjYINLzjt8Brm8gsVHSwvA7rBvavruM4PHtd2H0d+AzYHtX9xMFsH078ApwfI/foSh5SdHwxtbI80BDdqELQTwEK+bIEKlI4sv4iJWUK+7/IdBCsvP5F8YpYm542UnPAAAAAElFTkSuQmCC) no-repeat; background-size: 100% auto; -} */ -div.blocklyToolboxDiv > div.blocklyToolboxContents > div:nth-child(17) > div.blocklyTreeRow > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{ +} +div.blocklyToolboxDiv > div.blocklyToolboxContents > div:nth-child(19) > div.blocklyTreeRow > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{ background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAFMklEQVRYR8WXe4xcYxjGf+83s6qoal2DbFaiLrtBXKu1Z5qKP1QkzFlFNIK4Nto9sy5BxD0SBDtnWvdL2jQVseYMIlqCZudsq6UlIttFm7TZIGlR2qDWzHyvnNmLmdqOWSF7/vmSmffy5Pve73meT/gX39WpVQft0vjDwJVD6csOlOLdS9Kzfx5rORlrgut13wrmEUGMol9F+YIcr6gFe2fgz3piLDXHBGDurWtPLxULHwE7YsrVXRlnZdRsbnt4fklYAkyNxRtmdD1x9oZ6QYwJgOuF3wKHg5kR+Od8UtnE9VafCTYCty3wnaP+cwCuF64FpivamfMTt4zWIOnlnxSkA1gX+M7Z9YD42w7MWbhpwn7yY6NgG62xxwCHKroLyyKMfpNLJxprFU6m8v1YORrDQkEOBL431mxRTP9venD/ikXTBirzqwC47eF9CDcAR+6tiSo/ibBRhKBQlFejuIa4Xq6Kq0qzCFNqAPwO5fkg4zwwHDMCwE3lU6h0InwsynJUNpdMYWPpt1+2x/ed3CtiGsHeg3IMSBPCecAAaHQPJqC8D7oVYQuYh1Rtf/H3nS2x/Q44LGYbmhE9VoV5KGch2hGkE+nBGzT0uV7+U5CtMRO7rqtz5o7qAQsLwJeB75yUbA/PF+Eq4HJBChYrgsSBV1VZmss4K10v/AI4IfCdhso6czvWTC3Z0ougTYGfOG0PAOGvVootb6Rnb61MavNWtyn2dZB5oOcC1wp8pSLLRXR5FKsq80R1nsLxwEsgH4IuF8wlWf+cbGW9i1OrmozGewPf2X8EwNyONceWbGlTzGpL16LExsqEZCpMi+IBvUALIh27S7ueWbHogqphmrPwnQkTzaQFwGNAXxSrgp9LO6mqXViYby4Z6Y2Z2LSuzpmby0fQ1r52mkrha1HuymacR6p3IOxVaAb5TAw3ZDtb19e+BavPRe1jAqcLbMz6TkvVcaZ6Uqh2qsSbc+kZfRUzEL4nyhHZjHPyX3MRvhYRHVAIfGefeu51FHPF/HDK7n10+9BsdAW+c+lfNXs+ADsp8BNnVc3AJake16pmo7MO/NZXXC98GbgG1Z0YGQjSzuFRgtvefX+0BplZ5XVvn5sKt6E6EWQSUAbhpvKnobJBRW7PpVsfrwJQLl5mO/kBte8ikgG5DtXFiHwT+K3TopikF66K1pzvzK4JwOvZhOrRIuZ6xS4TeFTV/i5ibiuU5Li3Frd+NwqA7svAlMlFlKeyGWeB64UW4ROU9SAngj11sLH5DLQv8J2bo11RMbOGAYnaboyZg3Jm4DumLZWfrypPl/9X+0Dl7lUzoVcLgGxAtBnllHIh4XNV7cv5ifn/IYBxPIJxH0LXG8drOO5ENO5UPMQBo4tRKn+xquTU2jYx5oJ6xEitfUeMyYpoMptOvFHJF6OK0SCAmnL8h6Lrc35iZqUcK1o0GFU0kt0ROU56+TWCnLEnfdeW4xqGpGHilHWgJ4LeW21IdGDIUuxhSORBkL7C7p+m121IRnhezPX/ryWzL+yVCSMQo5lSirpTDYsx9OfSTlMtDUimwq1YGsWygLhMHpMp/Qd1W1f2c/Bc4Ds3jRbreuGzwI2RrwzSzvRa9UZ0o56g4ZhBieUQ1eKsXGZ2T2Vusn1Vq0i8G+GHYemup/aYXkYXeeH0GPQg7IhZrqp6mhmWokwtQeubvrOunuZ/k+N6kpJeeIfAw4KIRjZ88HHapKgq3J3znUfrqfOvjmA4KXnz+wdLfMIzwIVDv72txYH5uafO+3EszaPYPwFqrzdO7/dUhQAAAABJRU5ErkJggg==) no-repeat; background-size: 100% auto; } -div.blocklyToolboxDiv > div.blocklyToolboxContents > div:nth-child(17) > div.blocklyTreeRow.blocklyTreeSelected > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{ +div.blocklyToolboxDiv > div.blocklyToolboxContents > div:nth-child(19) > div.blocklyTreeRow.blocklyTreeSelected > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{ background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAADyElEQVRYR8WXZ4hdVRSFvxUsiNgrKqJgLAkqltgIBMUfKv6wKwSJYiyDETsqYokiqNh7xyBKsP8QScSCIGqsiCRjCShBhWisINhwyRr2G+/czLwikTlwefDu2Xuvs/c6a+8r/sOyvTFwHXBymT8GXC7pp0HdaVAD2xcC1wNTgE/Lfhfgb+BSSTcP4nMgALb3Ad4CfgBOkbQowWwfBjwKbAocKOn9fkEMCuBrYKsK8m4ziO0ZBW6lpG3XOADbbwP7A7dKumC8ALZvAc4Hlkg6oB8Qq2XA9rrA9vXsCGwB/ALcCXwlKe8mXLZXANsB5wAbAt8BXwD5f4Wk35vGYwDYvgo4A9imS4wfgWXAs8DC2ncScAwwDdiki+03wAOS5nf2jAKwfV7SC7wDPA4sr0DfAksrI1cAycoOwKFA5zTJ2svAl3Xaa+vE04EtC9hOwGxgv5RJ0m0B0QTwQTmYKyksH122/wQ+kbR7MX4OkFPn//hYq7KxIDfD9sfArpLWbvnJLXkoB5C0dxvAr8B0STlFM/ixwNOF/hDgtLr/yVKerJwsT/TgYeDVenecpGda/pK9pZLWHwVgO+n5vACkvk0ASdW5VYakNCy/t02mIu884EZgOL6A2yWltE1/4UlKOlXS8pES2J4KfAZcJikq1zTI5hh9GIJKeq8LyeIrWQqIiNYySQHS9Nfh2jRJw00OvARsLWmPzm7bTwLHp9aS1ukWuBUkNyHkDTeeknRCw+crwAaSQsYxJMw1Sr1mS3rC9iPAqcDPYbukKGBOePWIoTTyO9GyvRJYL8E6IGyHeJHpiyXdNAZAOY/arQIWA3cAc4G7SoBSpgB4rQAc3ANAOBVBOh1It7wB+A24CNhZUjTh3wyU8xMb4nK3pHm20+Wi+6n9bsBeFTicGJZ0dmVlVgPQ68DhwAxJU2wPAffU+/nN7LWVsBuApC5k3LMcfVQAhtYkgMkrge3JJaHtybuGky5Eky7FdQUnakZHAc8BaUpH9NmMXixRO1rS8y2VXL0ZFYBu7fiP6ICkg1rt+K9oE5C2m+Gk047fBPZty7ftru2420CypEToyj4HkmuqI2aG7G8gaeh8pPP/HMkenFAJC8R4Q2kaUnpChsrUsFsTykCTwTWzwUYDDaU9HKcMaaH3SzprvL227wPOzFwpKenvuQb9MEmL3RyYJemNFrtnAmlCqzqtu2f0djfsZWA7p0rgDK1zWp9mC+rTbKakZKuvNVAGiiOX1JdxbDsDbHiR65gv5PT9vtfAAArEZhlMgSMr0gvAkKTv+45cG/8Bsb0NP3292QgAAAAASUVORK5CYII=) no-repeat; background-size: 100% auto; } diff --git a/boards/default_src/python_mixpy/template.xml b/boards/default_src/python_mixpy/template.xml index 9d3eda1d..4af48a52 100644 --- a/boards/default_src/python_mixpy/template.xml +++ b/boards/default_src/python_mixpy/template.xml @@ -213,6 +213,13 @@ + + + + 18029 + + + @@ -382,6 +389,13 @@ + + + + 2 + + + @@ -894,6 +908,18 @@ + + + + mylist + + + + + 0 + + + @@ -1159,6 +1185,33 @@ + + + + mydict + + + + + results + + + + + 0 + + + + + location + + + + + name + + + @@ -2527,6 +2580,11 @@ df + + + 'a','b','c','d' + + x @@ -3516,6 +3574,30 @@ + + + + pca + + + + + 2 + + + + + + + pca + + + + + X + + + @@ -3561,6 +3643,18 @@ + + + + model + + + + + X + + + diff --git a/boards/default_src/python_pyodide/css/color_mixpy_python_advance.css b/boards/default_src/python_pyodide/css/color_mixpy_python_advance.css index 2a7c1a24..8a637ccd 100644 --- a/boards/default_src/python_pyodide/css/color_mixpy_python_advance.css +++ b/boards/default_src/python_pyodide/css/color_mixpy_python_advance.css @@ -134,35 +134,35 @@ div.blocklyToolboxDiv > div.blocklyToolboxContents > div:nth-child(15) > div.blo background:url('../../../../common/media/mark/turtle2.png') no-repeat; background-size: 100% auto; } -/* div.blocklyToolboxDiv > div.blocklyToolboxContents > div:nth-child(16) > div.blocklyTreeRow > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{ +div.blocklyToolboxDiv > div.blocklyToolboxContents > div:nth-child(16) > div.blocklyTreeRow > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{ background:url('../../../../common/media/mark/ai.png') no-repeat; background-size: 100% auto; } div.blocklyToolboxDiv > div.blocklyToolboxContents > div:nth-child(16) > div.blocklyTreeRow.blocklyTreeSelected > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{ background:url('../../../../common/media/mark/ai2.png') no-repeat; background-size: 100% auto; -} */ -div.blocklyToolboxDiv > div.blocklyToolboxContents > div:nth-child(16) > div.blocklyTreeRow > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{ +} +div.blocklyToolboxDiv > div.blocklyToolboxContents > div:nth-child(17) > div.blocklyTreeRow > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{ background:url('../../../../common/media/mark/data.png') no-repeat; background-size: 100% auto; } -div.blocklyToolboxDiv > div.blocklyToolboxContents > div:nth-child(16) > div.blocklyTreeRow.blocklyTreeSelected > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{ +div.blocklyToolboxDiv > div.blocklyToolboxContents > div:nth-child(17) > div.blocklyTreeRow.blocklyTreeSelected > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{ background:url('../../../../common/media/mark/data2.png') no-repeat; background-size: 100% auto; } -/* div.blocklyToolboxDiv > div.blocklyToolboxContents > div:nth-child(18) > div.blocklyTreeRow > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{ +div.blocklyToolboxDiv > div.blocklyToolboxContents > div:nth-child(18) > div.blocklyTreeRow > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{ background:url('../../../../common/media/mark/cv.png') no-repeat; background-size: 100% auto; } div.blocklyToolboxDiv > div.blocklyToolboxContents > div:nth-child(18) > div.blocklyTreeRow.blocklyTreeSelected > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{ background:url('../../../../common/media/mark/cv2.png') no-repeat; background-size: 100% auto; -} */ -div.blocklyToolboxDiv > div.blocklyToolboxContents > div:nth-child(17) > div.blocklyTreeRow > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{ +} +div.blocklyToolboxDiv > div.blocklyToolboxContents > div:nth-child(19) > div.blocklyTreeRow > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{ background:url('../../../../common/media/mark/algorithm.png') no-repeat; background-size: 100% auto; } -div.blocklyToolboxDiv > div.blocklyToolboxContents > div:nth-child(17) > div.blocklyTreeRow.blocklyTreeSelected > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{ +div.blocklyToolboxDiv > div.blocklyToolboxContents > div:nth-child(19) > div.blocklyTreeRow.blocklyTreeSelected > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{ background:url('../../../../common/media/mark/algorithm2.png') no-repeat; background-size: 100% auto; } \ No newline at end of file diff --git a/boards/default_src/python_pyodide/template.xml b/boards/default_src/python_pyodide/template.xml index 0a7d2f43..9a63d1ad 100644 --- a/boards/default_src/python_pyodide/template.xml +++ b/boards/default_src/python_pyodide/template.xml @@ -2263,7 +2263,7 @@ - + df1 @@ -2581,8 +2581,8 @@ - - 列名 + + 'a','b','c','d' @@ -3156,7 +3156,7 @@ - +
{{d.msg.loading}}